Commit Graph

320 Commits

Author SHA1 Message Date
Bryan Drewery
a4ecca97c2 Support OVERLAY dir passed in from Poudriere. 2020-05-04 18:27:51 +00:00
Mathieu Arnold
0c93135004 When one patch fails, continue with appling patches.
This makes the process of make patch, fix fallout, make makepatch much
easier as only one iteration is required.

While there, refactor things around, and streamline messages passed
between functions.

PR:		244626
Reported by:	cem
2020-04-30 14:48:22 +00:00
Mathieu Arnold
634e7a24f5 Lower case local variable. 2020-04-30 14:47:59 +00:00
Baptiste Daroussin
86dce8416e Allow lua scripts in the framworks.
Bump the minimum required pkg version to a version that accepts
properly lua scripts

Lua script offers the advantages over shell scripts that they are
running in a capsicum sandbox and they are natively rootdir friendly

Reviewed by:		portmgr (mat)
Differential Revision:	https://reviews.freebsd.org/D21433
2020-04-29 14:01:05 +00:00
Emmanuel Vadot
ab88b482cc users-groups-install: Make it pkg -r friendly
The generated pre-install scripts isn't pkg -r friendly for all
ports that have USERS/GROUPS with an homedir, fix that.

Reviewed by:	bapt
Approved by:	portmgr (bapt)
Differential Revision:	https://reviews.freebsd.org/D24531
2020-04-23 18:06:47 +00:00
Bryan Drewery
b74622b8ed Don't show private variable name in user message. 2020-04-10 23:28:56 +00:00
Mathieu Arnold
f5e4ea9e14 Unbreak make makepatch.
The glob in `find ./*` is handled by the shell and actually sorts the
files, so one needs to to ask find to sort the result, using `find -s`.

`find ./* -maxdepth 0` is not equivalent to `find . -maxdepth 0`, the
depth increases by one as `./x` is on level deeper than `.`.

Pointy hat:	bdrewery
2020-01-23 08:55:25 +00:00
Bryan Drewery
ed09885fec find(1) doesn't need a glob to search for patches.
This change also avoids cmdline length errors and other subst
parsing issues that were previously targeted.

Sponsored by:	DellEMC
2020-01-21 20:36:14 +00:00
Tobias Kortkamp
83096313be lang/rust: Add COMPAT_FREEBSD11 canary
This attempts to provide a nicer error message for the subset of
users who build their own kernels without COMPAT_FREEBSD11 and then
attempt to build lang/rust.  The Rust ecosystem currently uses
pre-ino64 syscalls, so building lang/rust without COMPAT_FREEBSD11
is not going to work.

The error message for this is non-obvious and there is a new bug
for this at least every 1-2 months.  Hopefully this will improve
the situation a little.

Cargo and Gecko ports are similarly affected, so add the pre-build
check to them too.

Reviewed by:	jbeich, mikael.urankar@gmail.com
Tested by:	madpilot (negative case)
Approved by:	gecko (jbeich)
Differential Revision:	https://reviews.freebsd.org/D23100
2020-01-13 18:36:04 +00:00
Steve Wills
0a82a7c091 Add QA warning about useless REINPLACE_CMD
Reviewed by:	mat, bdrewery, tobik
Approved by:	mat
Differential Revision:	https://reviews.freebsd.org/D22174
2020-01-09 13:01:45 +00:00
Baptiste Daroussin
c2ca919129 Garbage collect libgnomeprint 2019-12-26 21:46:02 +00:00
Tobias Kortkamp
bb415dbba6 Mk/Uses/cargo.mk: Support new Cargo.lock format
The new format [1,2] dropped the [metadata] table.  As a consequence
our cargo-crates.awk script no longer outputs CARGO_CRATES.  We can
get the crate list from the various [[package]] tables instead.
This should work with the new as well as the old format.

[1] https://github.com/rust-lang/cargo/pull/7070
[2] https://github.com/rust-lang/cargo/pull/7579

PR:		242416
Reported by:	jbeich
2019-12-05 06:42:22 +00:00
Bryan Drewery
19aa5ff42e generate-symbols: Need @dir entries if PREFIX!=LOCALBASE.
- makeplist/check-plist: Don't suggest or complain about @dir entries
  for debug symbols added by this script. Same as is done for the
  debug symbols themselves.

Sponsored by:	DellEMC
2019-11-07 20:49:17 +00:00
Li-Wen Hsu
a7dfc7e583 Retire the palm category (1999-2019)
Reviewed by:	mat
Approved by:	portmgr (mat)
Differential Revision:	https://reviews.freebsd.org/D22222
2019-11-04 11:57:46 +00:00
Baptiste Daroussin
a472a290be Add make to the list of allowed shebang
PR:		228874
Reported by:	jwb
2019-09-06 08:57:12 +00:00
Baptiste Daroussin
7610a280b5 Add support for overlays
overlays are a way to help users to integrate their own ports tree
with the official ports tree without having to maintain clone of the
official tree and remerge on regular basis.

The ports tree will lookup in the overlays (in the order the are listed in
OVERLAY variable) for the dependencies and the USES. It will use the first
found.

in order to use it the user have to declare his overlays that way in their
make.conf:
OVERLAYS= overlay1 overlay2 overlay3

Reviewed by:	manu
Approved by:	swills
Differential Revision:	https://reviews.freebsd.org/D21468
2019-09-03 14:36:00 +00:00
Rene Ladan
85ce2bc6f6 Remove USES=pure and its QA check now that lang/pure has been removed. 2019-09-01 15:54:18 +00:00
Baptiste Daroussin
9ea8668beb Prevent globbing before validating env vars.
Submitted by:	dillon
Obtained from:	dports (dragonfly)
2019-08-27 08:52:28 +00:00
Mathieu Arnold
55b249bab3 Add a QA check warning porters about non UCL pkg-message files.
Reviewed by:	adamw
Differential Revision:	https://reviews.freebsd.org/D21262
2019-08-19 12:18:21 +00:00
Mathieu Arnold
b174453dcd If pkg-message is not a UCL file, assume the message is "install" only.
Reviewed by:	adamw
Differential Revision:	https://reviews.freebsd.org/D21262
2019-08-19 12:18:16 +00:00
Koichiro Iwao
222e095f2a Implement new virtual category: net-vpn for VPN related ports
based on discussion at ports@ [1]. As VPN softwares are put in different
physical category net and security. This is a little bit confusing. Let's
give them new virtual category net-vpn.

[1] https://lists.freebsd.org/pipermail/freebsd-ports/2019-April/115915.html

PR:		239395
Submitted by:	myself
Approved by:	portmgr (mat)
Differential Revision:	https://reviews.freebsd.org/D21174
2019-08-14 03:26:09 +00:00
Mathieu Arnold
13a7d55681 Force ports depending on a fetch target to actually run checksum.
This prevents an improbable MITM attack on dependencies where the target
is "fetch" and the port is built manuallt.  (Which means a port depends
on a dependency being fetched, but not built or anything else.)  In this
case, as the target is only "fetch", the distribution files of the
dependency are not checked against the dependency's distinfo file.  One
could, in theory, impersonate the dependency's master site and provide a
malicious distribution file.

The ports that could in theory be affected are russian/gd, ukrainian/gd,
and ukrainian/webalizer.  They are only affected when building manually,
as when building with poudriere, the *-depends target do not have
network access, and the build would fail if the distribution files are
not already present.  (From the dependencies being built normally, where
checksum would have ran.)

The detail is described here:
https://www.reddit.com/r/BSD/comments/br62hm/freebsd_cryptographic_bypass_and_mitmbased/

Reported by:	emaste (on IRC)
Reviewed by:	swills emaste antoine
MFH:		2019Q3
Differential Revision:	https://reviews.freebsd.org/D21230
2019-08-13 10:31:18 +00:00
Tobias Kortkamp
ee15f75b1e Mk/Uses/cargo.mk: cargo-crates to flag unknown git hosts
To avoid some head scratching print a warning instead of being
silent when encountering unhandled git hosts.
2019-08-07 10:37:10 +00:00
Tobias Kortkamp
076bb3ef0b Mk/Uses/cargo.mk: Add support for CARGO_USE_GITLAB/GL_TUPLE to cargo-crates 2019-08-06 08:12:39 +00:00
Tobias Kortkamp
2cb86a796d Assign cargo-crates.awk to rust@ too same as USES=cargo 2019-08-06 06:44:48 +00:00
Tobias Kortkamp
f06ec8723e Mk/Uses/cargo.mk: Fix cargo-crates to not output identical GH_TUPLE entries
For example, in audio/spotifyd some crates have their sources on
GitHub instead of crates.io and share the same repository and commit
in Cargo.lock like

[[package]]
name = "librespot"
source = "git+https://github.com/librespot-org/librespot.git#4e3576ba7c6146cf68e1953daeec929d619b26b1"

[[package]]
name = "librespot-audio"
source = "git+https://github.com/librespot-org/librespot.git#4e3576ba7c6146cf68e1953daeec929d619b26b1"

Based on this cargo-crates.awk would naively generate multiple
identical entries like

librespot-org:librespot:4e3576ba7c6146cf68e1953daeec929d619b26b1:librespot
librespot-org:librespot:4e3576ba7c6146cf68e1953daeec929d619b26b1:librespotaudio

This adds a lot of extra noise to the port and distinfo and is not
really needed for anything.
2019-08-06 06:43:43 +00:00
Mathieu Arnold
c5f7a50a9d Fix fetch-list when running as a user.
The fetch-list target is used to generate a shell script that will more
or less replicates what do-fetch does. It allows one to do most things
as a regular user, and generate that script to run, say, on another
machine, if the one where you build things does not have access to the
internet, or has much slower access.

It was failing when DISTDIR was not writable by the current user, and
the port had a distribution file with a path in it. (Not using
DIST_SUBDIR, something else, like lang/rust does.) It was failing
because it was trying to create that subdirectory unconditionally,
instead of only creating the subdirectory if actually had to.  This also
fixes the bug that the generated script did not have the appropriate
mkdirs for those directories.

PR:		239293
Submitted by:	tobik (earlier version)
Reported by:	Ruslan Garipov
Differential Revision:	https://reviews.freebsd.org/D21112
2019-07-31 10:10:35 +00:00
Bryan Drewery
51409ae5ed Don't try splitting symbols out of .a archives.
Sponsored by:	DellEMC
2019-07-13 17:32:14 +00:00
Bryan Drewery
d64353f33f Fix handling of ports with *1* file.
Reported by:	glebius
Sponsored by:	DellEMC
2019-07-10 16:18:32 +00:00
Bryan Drewery
245e0379ee Reduce code duplication from r504140.
Suggested by:	cem
Sponsored by:	DellEMC
2019-06-30 23:02:44 +00:00
Bryan Drewery
9ba153d1d4 generate-symbols: Commit a working version.
This file originated from Isilon's codebase. When I upstreamed it
originally I refactored it to a broken version. This is now the
working version.

Debug files are purposely moved to LOCALBASE/lib/debug regardless
of what PREFIX is.

Sponsored by:	DellEMC
2019-06-26 01:19:00 +00:00
Bryan Drewery
6e992e91cb Revert r505129: I still have the wrong version. 2019-06-26 01:07:41 +00:00
Bryan Drewery
9ec378268c Allow generate-symbols.sh to actually work.
It splits out symbols to PREFIX as well not LOCALBASE. Fix
check-stagedir.sh for that.
2019-06-26 00:44:55 +00:00
Bryan Drewery
5211362c14 parse_plist: Avoid excess fork+exec inside the loop for stripping (mode) lines.
Need to do it still after stripping away @comment though.
The @dir handling could probably be improved as well somehow.
2019-06-13 22:22:06 +00:00
Bryan Drewery
6ced1c7607 Speedup ELF file detection almost 100%.
This uses the same pattern we have in qa.sh.  Rather than using file(1),
which reads the whole file and does too much magic, use readelf(1) which
bails out if the file lacks the proper ELF headers.

(This file is not yet used by anything)

Sponsored by:	DellEMC
2019-06-11 22:56:32 +00:00
Mathieu Arnold
bd94d2c38d Use UCL for pkg-message
Remain backward compatible but use ucl for the pkg-messages, which allows to:
- append messages one after the other
- only print message on delete, install, upgrade from a version to another

If pkg-message starts with a [ we consider it should be a valid ucl file

The format is the following:
[
{ message: "Always print" },
{ message: "package being removed", type: remove },
{ message: "package being installed", type: install },
{ message: "package is being upgraded", type: upgrade },
{ message: "Upgrading from lower than 1.0", maximum_version: "1.0", type: upgrade },
{ message: "Upgrading from higher than 1.0", minimum_version: "1.0", type: upgrade  },
{ message: "Upgrading from >1.0 < 3.0", maximum_version: "3.0", minimum_version: "1.0",
]

Because it is ucl one can use some sugar like:
[
{ message = <<EOD
formatted
message 'with fancy things'
EOD
},
}

Submitted by:	bapt
Reviewed by:	bapt, mat
Differential Revision:	https://reviews.freebsd.org/D19310
2019-06-03 12:57:44 +00:00
Antoine Brodin
fa22bcefd1 Add lang/julia to the blacklist of ports that other ports must not depend upon.
With hat:	portmgr
2019-05-28 09:44:05 +00:00
Baptiste Daroussin
127e896f23 Improve vulnerability checking
Use the return value of the pkg audit command instead of parsing its output
The output will change in the next version of pkg

Approved by:	mat (portmgr)
Reviewed by:	mat (portmgr)
Differential Revision:	https://reviews.freebsd.org/D20376
2019-05-27 13:02:05 +00:00
Mathieu Arnold
7551edfa4b Have makepatch ignore "C function prototype".
This will reduce the churn when base system diff subtly changes what is
put in that field.
2019-05-20 13:04:03 +00:00
Rene Ladan
dfd801cad1 Remove esound support from the ports tree, as audio/esound expired. 2019-05-08 12:54:13 +00:00
Tobias C. Berner
c5584049b0 qa.sh: update KDE components
- synchronize the list of components
- update the comment on how to generate the components for the now kde- prefixed names
- remove the now unnecessary part about Qt4

Reviewed by:	yuri
Approved by:	portmgr (rene)
Differential Revision:	https://reviews.freebsd.org/D19894
2019-04-13 17:05:45 +00:00
Mathieu Arnold
a29c880f74 Add a blacklist of ports that other ports must not depend upon.
Those ports are meta ports, and are only there to improve the user's
experience, in which, if they want, say, python or gcc, they do not have
to figure out what version they should be installing, they simply
install python or gcc.

Reviewed by:	antoine
Approved by:	adamw
Differential Revision:	https://reviews.freebsd.org/D19562
2019-03-18 15:59:13 +00:00
Bryan Drewery
f4320c83f5 Respect UID_FILES.
Reported by:	dvl
Tested by:	dvl
Approved by:	portmgr (implicit)
2019-03-09 18:38:18 +00:00
Antoine Brodin
ab1485c33a Fix leftover detection when ccache is not used
With hat:	portmgr
2019-03-01 20:26:11 +00:00
Tobias Kortkamp
69fbf6bed7 Mk/Scripts/qa.sh: Remove glib12 and gtk12
Approved by:	portmgr (bapt)
Differential Revision:	https://reviews.freebsd.org/D19055
2019-02-01 16:43:37 +00:00
Mathieu Arnold
3642a3436f Fix proxydeps QA check when multiple flavor of a package are installed.
Previously it would do this:

$ pkg which -q -o /usr/local/lib/libphonon4qt5.so
multimedia/phonon
$ pkg pkg annotate -q -S multimedia/phonon flavor
qt4
qt5

And that would break things in an interesting way.

This changes makes it use the package name of the required file, which
is unique.

Note that this problem would probably only ever happen on a live system.
I was not able to find a single port that would trigger this it in a
clean environment (poudriere testport).

PR:		231332
Submitted by:	dbn
2019-01-11 12:50:51 +00:00
Mathieu Arnold
dc820c0194 Remove obsolete qa check. 2018-12-17 14:29:41 +00:00
Gerald Pfeifer
c906745e9d Add share/info/*/dir to those files in STAGEDIR to ignore when checking
for orphans, i.e., files in STAGEDIR that are not covered by plist.

This is a follow-up to revision 484628 after which texinfo files are
now installed into ${PREFIX}/share/info. (A file "dir" is then created
and maintained by the tooling.)

Approved by:	portmgr (antoine)
2018-11-10 23:55:42 +00:00
Mathieu Arnold
35326f1a97 security/openssl-devel was removed, but there is a security/openssl111 now. 2018-11-10 10:09:48 +00:00
Antoine Brodin
32617460e5 Use full path to file(1) from base as sysutils/file is buggy
PR:		231554
2018-10-06 08:19:19 +00:00