Commit graph

306 commits

Author SHA1 Message Date
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
Sunpoet Po-Chuan Hsieh
6dd23db065 Fix typo
Differential Revision:	https://reviews.freebsd.org/D17263
Approved by:	bapt (portmgr)
2018-09-22 16:45:47 +00:00
Mathieu Arnold
a48e2eda88 Extract PLIST_SUB substitutions into a sed script.
This fixes PLIST_SUB being too big and PLIST_SUB_SED getting bigger than
_POSIX2_LINE_MAX.

PR:		222355
Reported by:	asomers
Reviewed by:	asomers, mfechner
Sponsored by:	Absolight
Differential Revision:	 https://reviews.freebsd.org/D14014
2018-07-26 11:09:46 +00:00
Mathieu Arnold
7256d8f2f7 Tell people who disabled LICENSE processing that it then cannot be
checked.

Reported by:	mfechner
Approved by:	bapt
Sponsored by:	Absolight
Differential Revision:	https://reviews.freebsd.org/D16450
2018-07-26 10:37:36 +00:00
Mathieu Arnold
1e5af0bf74 Have the license qa check actually work.
Pointy hat:	mat
Sponsored by:	Absolight
2018-07-18 11:33:24 +00:00
Mathieu Arnold
f305cacf3a Add a license qa check to tell porters when their ports will be mostly
useless.

Reviewed by:	antoine
Sponsored by:	Absolight
Differential Revision:	https://reviews.freebsd.org/D16103
2018-07-18 11:13:06 +00:00
Mathieu Arnold
1ac9d4e91f Convert to readelf.
objdump is being removed from HEAD, make sure everything still works
when this happens.

PR:		229049
Reported by:	emaste
Sponsored by:	Absolight
Differential Revision:	https://reviews.freebsd.org/D15904
2018-06-30 08:37:33 +00:00
Mathieu Arnold
c0e3ff3da9 Remove dead code.
Sponsored by:	Absolight
2018-06-30 08:36:50 +00:00
Tobias C. Berner
b1a1d38bf9 Replace bsd.qt.mk by Uses/qt.mk and Uses/qt-dist.mk
From now on, ports that depend on Qt4 will have to set
	USES=		qt:4
	USE_QT=		foo bar
ports depending on Qt5 will use
	USES=		qt:5
	USE_QT=		foo bar

PR:		229225
Exp-run by:	antoine
Reviewed by:	mat
Approved by:	portmgr (antoine)
Differential Revision:	→https://reviews.freebsd.org/D15540
2018-06-28 17:39:53 +00:00
Mathieu Arnold
b19fe1e937 SC1004: This backslash+linefeed is literal. Break outside single quotes if you just want to break the line.
You have a single quoted string containing a backslash followed by a
linefeed (newline). Unlike double quotes or unquoted strings, this has
no special meaning. The string will contain a literal backslash and a
linefeed.

If you wanted to break the line but not add a linefeed to the string,
stop the single quote, break the line, and reopen it.

PR:             227109
Submitted by:   mat
Sponsored by:   Absolight
2018-06-08 09:26:41 +00:00
Mathieu Arnold
49b7fa03ac SC2035: Use ./*glob* or -- *glob* so names with dashes won't become options.
Since files and arguments are strings passed the same way, programs
can't properly determine which is which, and rely on dashes to determine
what's what.

A file named -f (touch -- -f) will not be deleted by the problematic
code. It will instead be interpreted as a command line option, and rm
will even report success.

Using ./* will instead cause the glob to be expanded into ./-f, which no
program will treat as an option.

It is not possible to use `-f *` because -f only forces the next
argument to be a directory, a later directory named -delete would mess
things up.

PR:             227109
Submitted by:   mat
Sponsored by:   Absolight
2018-06-08 09:26:38 +00:00
Mathieu Arnold
b234bfd716 SC2162: read without -r will mangle backslashes.
By default, read will interpret backslashes before spaces and line
feeds, and otherwise strip them. This is rarely expected or desired.

Normally you just want to read data, which is what read -r does. You
should always use -r unless you have a good reason not to.

PR:             227109
Submitted by:   mat
Sponsored by:   Absolight
2018-06-08 09:26:34 +00:00
Mathieu Arnold
ac5e64ba02 SC2015: Note that A && B || C is not if-then-else. C may run when A is true.
It's common to use A && B to run B when A is true, and A || C to run C
when A is false.

However, combining them into A && B || C is not the same as if A then B
else C.

In this case, if A is true but B is false, C will run.

If an if clause is used instead, this problem is avoided.

PR:             227109
Submitted by:   mat
Sponsored by:   Absolight
2018-06-08 09:26:31 +00:00
Mathieu Arnold
e2bee271c6 Don't exec with a pipe afterwards, it is weird.
PR:             227109
Submitted by:   mat
Sponsored by:   Absolight
2018-06-08 09:26:28 +00:00
Mathieu Arnold
52abedae74 SC2185: Some finds don't have a default path. Specify '.' explicitly.
(false positive, split flags to avoid triggering it.)

PR:             227109
Submitted by:   mat
Sponsored by:   Absolight
2018-06-08 09:26:25 +00:00