Commit graph

9349 commits

Author SHA1 Message Date
triaxx
3790b6da3c Remove useless options for duplicity 2018-01-26 14:55:31 +00:00
jperkin
0a552fe622 mk/compiler.mk: Support gnu++03 and c++03 in USE_LANGUAGES.
These can be used by packages when building with a compiler which defaults
to a newer standard than the source supports (e.g. namespace issues).
2018-01-26 13:14:35 +00:00
joerg
6abe02f428 Don't include TEST_DEPENDS in the normal dependency reduction run. 2018-01-25 00:34:27 +00:00
joerg
bc9e00d767 Fix spelling, it is PKGSRC_RUN_TEST. 2018-01-25 00:33:56 +00:00
leot
b637c0c04c mk/tools/replace.mk: Add support for `:test' to add tools to TEST_DEPENDS
With this change is now possible to mark tools only needed for testing via:

 USE_TOOLS+= <tool>:test

Discussed with <joerg>
2018-01-24 13:30:04 +00:00
jperkin
dc208e1a90 mk: Introduce *_SUPPORTED variables for security features.
Using variables such as PKGSRC_USE_SSP in package Makefiles to disable SSP does
not work due to the parsing order in bsd.prefs.mk.  Even if it did, it's not a
good idea to mix user and package settable variables, and would cause issues in
complex packages where bsd.prefs.mk is included early (e.g. Makefile.common).

Packages can now set {MKPIE,MKREPRO,FORTIFY,RELRO,SSP,STACK_CHECK}_SUPPORTED=no
to correctly disable security features if necessary.
2018-01-15 09:35:45 +00:00
joerg
dbaa510884 Add missing empty TEST_DEPENDS for the bootstrap case. 2018-01-14 10:47:43 +00:00
joerg
e97fae9138 Introduce TEST_DEPENDS.
Place them in ALL_DEPENDS iff PKGSRC_RUN_TESTS is set, so that bulk
builds will pick them up.
2018-01-13 12:48:56 +00:00
alnsn
cbe853ca6d Add FETCH_PROXY and FETCH_PROXY.{ftp,http,https}. 2018-01-11 08:54:37 +00:00
jaapb
46d4f8ee72 Added 'lwt' option. 2018-01-10 16:35:18 +00:00
rillig
f650479ce5 In guess-license, use ninka for determining the licenses.
Ninka can be installed from wip/ninka and analyzes each file individually,
thereby providing a much more detailed analysis than the ad-hoc method that
only looks at some COPYING files.

If Ninka is not installed, the naive fallback continues to be used.
2018-01-07 19:44:31 +00:00
rillig
06317929ae Improved documentation for "make help".
The check for target(help) prevents a warning when "make help" is run from
a category directory.
2018-01-07 11:23:37 +00:00
rillig
3924951144 Improved license detection for the guess-license target.
Before, the first file that looked like a license file was considered.
The others were completely ignored. This led to a wrong license for
cross/arm-none-eabi-gcc. To prevent these cases in the future, the license
is only guessed if there is exactly one file with a typical license name.

This approach is still naive, but at least a little more precise. Replacing
the guess-license with a determine-licenses is much more complicated
though, since each source code file may have its own license declared, and
handling all these special cases leads to very complex license expressions
(like "gnu-gpl-v3 for all files, except for special.c, which is apache-2.0
or mit). This is very hard to do correctly.
2018-01-05 07:54:39 +00:00
rillig
9ef5587f5c Improved guess-license for practical use. 2018-01-03 00:41:37 +00:00
rillig
2fb1eb3659 Added the guess-license target.
It compares the license file from the package with the available licenses
in licenses/ and shows the diff to the best match.

This will hopefully make it easier for package authors to include the
LICENSE variable in the package Makefile. This variable being missing is
one of the most frequent error messages from pkglint (4187 out of 20044).
2018-01-02 22:40:32 +00:00
rillig
1cba6ef059 Allow package developers to easily see and check the SUBST changes. 2018-01-02 21:18:48 +00:00
maya
7cfd815255 Remove traces of crypto restrictions.
ok for idea riastradh
2018-01-02 05:49:44 +00:00
maya
061d4eea80 Remove crypto restrictions from kerberos users. 2018-01-02 05:39:00 +00:00
rillig
a63e53443e Added more keywords for "make help". 2018-01-02 01:01:42 +00:00
wiz
67ea766c4c apache22: remove, it was eol'd in June 2017
Remove packages that only work with apache22.
Remove apache22 references.
2018-01-01 10:23:04 +00:00
wiz
190c209fdf mk/configure/cmake.mk: Fix typos in comments. 2017-12-27 18:56:27 +00:00
wiz
79497474b9 mk: Describe new fossil options. 2017-12-23 21:12:13 +00:00
adam
bef2acf7aa Removed unused vatnumber-suds option name 2017-12-13 14:24:30 +00:00
wiz
75e48a20b0 *: remove ftp.kddlabs.co.jp, does not provide ftp service 2017-12-03 11:09:46 +00:00
wiz
e9d95506d5 mk: Remove ftp.kddlabs.co.jp from sites, does not provide ftp service 2017-12-03 11:01:19 +00:00
joerg
4a1e17bcfc Revert gnu-config/missing, new version loops. 2017-12-03 00:10:46 +00:00
sevan
a04e51058d Sync with upstream 2017-12-01 20:48:40 +00:00
khorben
fd7a4f25a3 Also append the CFLAGS for MKPIE for c++(1)
From spz@, thanks!
2017-11-29 22:55:15 +00:00
bsiegert
25d59f2644 Add /usr/local for include and libdir on ChromeOS.
Third-party (i.e. non-pkgsrc) C toolchains (I am using chromebrew)
install to /usr/local, as that is where you can have write access.
With this, a bootstrap on ChromeOS finishes successfully.
2017-11-21 19:16:47 +00:00
leot
104096936c mk/defaults/options.description: add `oauth' PKG_OPTION
This is used by mail/nmh and probably can be useful also for other packages.
2017-11-21 10:34:32 +00:00
minskim
51312b8775 Escape whitespace in PKG_JAVA_HOME when setting JAVA_HOME 2017-11-20 17:17:50 +00:00
khorben
5535fa5372 Really use the parent sink for ld(1) 2017-11-16 02:43:51 +00:00
khorben
e6f2bb8178 Introduce a command sink for ld(1) with MKPIE
When not using cwrappers, so far PKGSRC_MKPIE was only automatically
applied when linking using gcc(1) (when enabled). This is now also the
case for packages using ld(1) to link executables.
2017-11-16 02:16:56 +00:00
khorben
0f9d009bd0 Recognize more situations where not linking executables
This is only relevant for PKGSRC_MKPIE. It partly reflects a fix that
was committed to the cwrappers for MKPIE, where the "-pie" flag was
automatically added in spite of the linker not actually creating an
executable.
2017-11-16 00:40:07 +00:00
khorben
edf994459b Obtain the MKPIE flags from the environment
This solves an issue with the command sink component of the MKPIE
wrapper for GCC, where the contents of the _MKPIE_CFLAGS.gcc and
_MKPIE_LDFLAGS.gcc variables was guessed. It is now communicated to
cmd-sink-mkpie-gcc through the environment instead.
2017-11-16 00:36:10 +00:00
khorben
38179c5558 Let the MKPIE command sink for GCC re-use the generic command sink
The cmd-sink-mkpie-gcc component for PKGSRC_MKPIE support on GCC was
lagging behind the generic one. This makes sure it cannot happen again,
by invoking the generic sink right away.
2017-11-16 00:31:47 +00:00
khorben
542893c887 Revert "Always add "-fPIC" when linking with PKGSRC_MKPIE"
It seems to break emulators/qemu.
2017-11-15 19:04:24 +00:00
khorben
32a7cecedb Look for ar(1) in $_ORIG_PATH with PKGSRC_MKREPRO
This no longer hard-codes the path to ar(1) as /usr/bin/ar. It is not
possible to use the original value of $TOOLS_PATH.ar as it is usually
not set.
2017-11-12 16:41:40 +00:00
khorben
42bd86cfb0 Add initial support for building packages reproducibly
It currently tackles two problems:
- gcc(1) hard-coding full paths in debugging information (with one
  caveat at the moment)
- ar(1) hard-coding user IDs in archive headers

This allows packages built from the same tree and options to produce
identical results bit by bit. This option should be combined with ASLR
and PKGSRC_MKPIE to avoid predictable address offsets for attackers
attempting to exploit security vulnerabilities.

This is still disabled by default, and only supports NetBSD so far.

As discussed on tech-pkg@
2017-11-12 13:34:14 +00:00
tnn
e5b08a6647 define MASTER_SITE_CRATESIO (for downloading rust crates) 2017-11-08 11:58:02 +00:00
khorben
ae8efeb19b Configure "append_executable" adequately for cwrappers
Match cwrappers' expectations and place an argument per line in the
configuration. Tokenize the arguments when writing the configuration
instead of inside cwrappers.

This should fix PKGSRC_MKPIE.
2017-11-08 03:52:50 +00:00
khorben
24807e5120 Always add "-fPIC" when linking with PKGSRC_MKPIE
This makes sure a simple "cc -o hello hello.c" will still build a valid
executable. It does not let us detect when CFLAGS or LDFLAGS are
ignored anymore, but it is legitimate for packages to expect it to work
without any additional parameter.

ld(1) does not expect "-fPIC" but it seems to be ignored by our wrappers
in this case, so no disruption is expected there.
2017-11-07 16:57:58 +00:00
bsiegert
60ec14b08f Support OS_VARIANT on Linux, support ChromeOS.
This adds a detection for Chrome OS and Chromium OS based on /etc/lsb-release,
which sets LOWER_VENDOR, like for other Linux distros. It also sets OS_VARIANT
to the value of LOWER_VENDOR, so we can have conditionals for ChromeOS. It is
missing some things that are silently assumed to be part of Linux base
systems, such as POSIX attr support, NIS and more.

ok jperkin@
2017-11-03 18:07:40 +00:00
khorben
7b8b0022a0 Typo 2017-11-01 15:29:09 +00:00
rillig
06a71adf6e Improved index generation for "make help".
The index is sorted alphabetically and mentioned in a plain "make help"
call.
2017-10-31 16:24:42 +00:00
schmonz
ab23fea1c7 Remove QMAIL_QFILTER_TMPDIR knob, no longer needed. 2017-10-28 15:56:48 +00:00
schmonz
03bd31b7e8 Move mail/nullmailer defaults to mk/defaults/mk.conf. 2017-10-28 04:46:35 +00:00
adam
f58d525a43 Added support for PostgreSQL 10.0 2017-10-23 20:34:27 +00:00
jaapb
c13eafcd7e Modified file so that opam automatically uses findlib 2017-10-17 09:42:52 +00:00
jperkin
5e65a78af3 mk/platform: Remove unsupported Darwin/SunOS linker arguments. 2017-10-10 13:57:23 +00:00