Commit graph

17 commits

Author SHA1 Message Date
Mathieu Arnold
258800dd7b SC2046: Quote this to prevent word splitting.
When command expansions are unquoted, word splitting and globbing will
occur. This often manifests itself by breaking when filenames contain
spaces.

Trying to fix it by adding quotes or escapes to the data will not work.
Instead, quote the command substitution itself.

If the command substitution outputs multiple pieces of data, use a loop
instead.

Add an exception when using set -- where splitting is intended.

PR:             227109
Submitted by:   mat
Exp-run by:	antoine
Sponsored by:   Absolight
2018-06-08 09:26:20 +00:00
Mathieu Arnold
c71660dad5 SC2068: Double quote array expansions to avoid re-splitting elements.
Double quotes around $@ prevents globbing and word splitting of
individual elements, while still expanding to multiple separate
arguments.

Add exceptions when splitting is the intended behavior.

PR:		227109
Submitted by:	mat
Sponsored by:	Absolight
2018-06-01 16:20:26 +00:00
Bryan Drewery
6339d61d4f Allow passing -DDEPENDS_SHOW_FLAVOR to list flavors for dependency lists.
Submitted by:	se (based on D13535)
With hat:	portmgr
2018-01-24 18:54:57 +00:00
Bryan Drewery
a45f79495a Fix typo in r458054.
Reported by:	antoine
Approved by:	portmgr (implicit)
MFH:		2018Q1
2018-01-04 20:01:46 +00:00
Bryan Drewery
37aedfab77 Fix some *-list targets not properly passing FLAVOR down the chain.
Approved by:	portmgr (implicit)
MFH:		2018Q1
2018-01-04 19:58:18 +00:00
Mathieu Arnold
e2e97eb2bc Implement basic flavors.
**Do not start migrating any ports, a hook will prevent it**

This has been a long awaiting feature, most of the work has been done by
bapt, bdrewery and antoine, I am just the one actually doing the commit.

All this informations, and more to come are in the first link to our wiki
in the bottom block. A roadmap is in the second link.

To define a different flavors in a port, before any include, set:

FLAVORS=  flavor1 flavor2 [...]

The first flavor in the list will be the default.

You can then check for flavors after includ'ing bsd.port.options.mk with:

.if ${FLAVOR} == flavor2
[some stuff]
.endif

To build flavor2, simply run:

make FLAVOR=flavor2

To depend on a specific flavor, write @<flavor> at the end of the depend
string, like:

RUN_DEPENDS=	something:origin@foo

Submitted by:	bapt, bdrewery, antoine
Reviewed by:	portmgr
More infos:	https://wiki.freebsd.org/Ports/FlavorsMigration
Todo List:	https://wiki.freebsd.org/Ports/FlavorsAndSubPackages
With hat:	portmgr
Differential Revision: https://reviews.freebsd.org/D10327
2017-09-26 14:14:44 +00:00
Mathieu Arnold
1ce1ab6ba3 Make make clean be recursive again.
PR:		213188
Submitted by:	tijl
Exp-run by:	antoine
Sponsored by:	Absolight
2016-10-18 15:27:25 +00:00
Mathieu Arnold
d131b524b1 typo.
Submitted by:	wblock
Sponsored by:	Absolight
2016-08-17 08:55:35 +00:00
Mathieu Arnold
38efae9d84 Unbreak make missing.
Sponsored by:	Absolight
Differential Revision:	https://reviews.freebsd.org/D7504
2016-08-17 08:54:43 +00:00
Mathieu Arnold
f69e8567aa Ease debugging of Mk/Scripts scripts.
Sponsored by:	Absolight
Differential Revision:	https://reviews.freebsd.org/D6474
2016-05-20 19:01:59 +00:00
Bryan Drewery
baf3ba05d0 Use normal PORTSDIR rather than dp_PORTSDIR so it is passed around properly.
This fixes errors when PORTSDIR is not set and /usr/ports is not used.  The
/usr/share/bsd.port.mk logic will auto set PORTSDIR, but this was not being
passed into children in the dependency scripts.

With hat:	portmgr
Reported by:	bapt
2015-12-04 22:18:29 +00:00
Bryan Drewery
278dd71cd6 - Combine clean-depends-list.sh into depends-list.sh
- Refactor how depends-list.sh is called from bsd.port.mk for each variant.

With hat:	portmgr
2015-10-19 19:23:53 +00:00
Bryan Drewery
670c3111ae The command environment from r399703 is only needed if recursing.
With hat:	portmgr
2015-10-19 18:41:01 +00:00
Bryan Drewery
92b545ba81 When listing dependencies, export the common command execution results.
In some basic benchmarks this sped up 'all-depends-list' about 20%.  x11/kde4
went from 52 seconds to 41 seconds.  More improvement is expected once
more command executions are cached in the 'export_ports_env' function.

With hat:	portmgr
2015-10-19 18:01:56 +00:00
Bryan Drewery
a1a7117c83 Shift any arguments eaten up from getopts. This script takes no arguments
yet.

With hat:	portmgr
2015-10-09 18:09:02 +00:00
Bryan Drewery
78aeec8db1 Unify depends-list.sh and all-depends-list.sh into one script, depends-list.sh.
With hat:	portmgr
2015-10-09 18:00:44 +00:00
Dmitry Marakasov
5c57225987 Implemented complete support for test target.
You can now `make test' on any port to run test sequence, no-op by default.
If a port defines TEST_TARGET, it'll run sub-make with specified target,
usually `check' or `test', useful if upstream supports that. The port may
instead define custom do-test target, as well as usual satellite targets:

  {pre,do,post}-test, {pre,do,post}-test-OPT, {pre,do,post}-test-OPT-off

`make test' builds and stages port first, so test may use both WRKDIR and
STAGEDIR, and both BUILD and RUN depends are available for test target.
Additionally, TEST_DEPENDS is now properly supported and may be used to
define additional depends specifically for testing.

Framework may define default tests for specific cases. For instance,
perl5.mk and cran.mk already provide default test target on their own.

This commit also converts my ports which have tests to this new framework.

Approved by:	portmgr (bapt)
Differential Revision:	D3680
2015-09-28 17:20:42 +00:00