Commit graph

9439 commits

Author SHA1 Message Date
jperkin
3a6695c335 check-shlibs-macho.awk: Revert revision 1.3.
It completely broke the checks, resulting in broken binary packages
being shipped, e.g. https://github.com/joyent/pkgsrc/issues/104
2018-05-25 09:26:49 +00:00
wiz
b621cbd744 mk/compiler/gcc.mk: move _GCC_LDFLAGS setting for relro.
At the previous location it was overridden if a gcc from pkgsrc was used.

Problem found by bacon@
2018-05-24 05:47:21 +00:00
maya
78432ca7c3 Describe some of the security mitigation flags and their impact 2018-05-23 11:26:54 +00:00
jperkin
d8bb1d8957 mk: Fix GCC PKGPATH matches. 2018-05-23 10:17:58 +00:00
jperkin
512dfdee29 mk: Add USE_PKGSRC_GCC_RUNTIME gcc7-libs support. 2018-05-23 08:11:59 +00:00
adam
8276c64ad4 Removed postgresql92 support 2018-05-21 08:07:49 +00:00
rillig
db16752718 mk/*: improve documentation for "make help" 2018-05-16 21:23:02 +00:00
triaxx
e5992a1552 Add dante option used by mail/fetchmail 2018-05-16 13:30:53 +00:00
wiz
2dcfcfb7b3 *: remove references to obsolete DragonFly/i386 2018-04-30 10:41:35 +00:00
rillig
ce6481904d mk/tools/create.mk: revert filtering duplicate tool names
The "split" program is not managed by the tools framework. It just has a
wrapper that is placed into the same directory. This is confusing since
intuitively, "split" is a tool like many others.

The "duplicate script for target" warning from Make is therefore correct,
albeit obscure.

Currently, neither the pkgsrc infrastructure nor pkglint check for
allowed tool names.
2018-04-27 20:53:14 +00:00
rillig
6357c6f5e5 mk/tools/create.mk: sort tools before creating the wrapper targets
The TOOLS_CREATE variable is only ever appended to, without checking for
duplicates. In some rare cases, this produces warnings about
doubly-defined make targets. An example is adding USE_TOOLS+=strip to
pkgtools/pkglint:

".../mk/tools/create.mk" line 149: warning:
    duplicate script for target ".../work/.tools/bin/strip" ignored

The above line number 149 is zero-based, which in reality means the
duplicate definition is in line 150.
2018-04-27 20:16:36 +00:00
wiz
7b5eba52e9 mk: Describe tiff option. 2018-04-27 14:26:32 +00:00
wiz
f367007762 *: gd.tuwien.ac.at/ftp.tuwien.ac.at is gone, remove it from various mastersites 2018-04-21 13:38:04 +00:00
adam
8e731eb460 Print a message if REPLACE_INTERPRETER does not change anything (similar to SUBST_) 2018-04-17 09:31:41 +00:00
rillig
81c4fbd48d mk/fetch: add documentation for show-all-github 2018-04-08 20:39:47 +00:00
chuck
a655dc59c4 add support for CMAKE_PKGSRC_BUILD_FLAGS
CMAKE_PKGSRC_BUILD_FLAGS
     If set to yes, disable compiler optimization flags associated
     with the CMAKE_BUILD_TYPE setting (for pkgsrc these come in from
     the user via variables like CFLAGS).  The default is yes, but you can
     set it to no for pkgsrc packages that do not use a compiler to avoid
     cmake "Manually-specified variables were not used by the project"
     warnings associated with this variable.
2018-04-08 19:11:27 +00:00
jaapb
19c74901a0 Updated OPAM to use opaline instead of opam-installer 2018-04-07 10:35:01 +00:00
triaxx
0ea3f55391 Wrong place to patch readelf 2018-03-23 04:31:53 +00:00
triaxx
317bd14dc5 Fix wrong parsing due to localized readelf on Linux
Linux version of readelf (at least on Arch) translates output
(e.g. "Shared library") and makes the script broken.
2018-03-22 09:37:17 +00:00
dholland
702361dd1b Add more diagnostic info for when packages are forced to non-builtin.
The voodoo that checks this now keeps track of which packages caused
what, and in addition to the list FORCED_PKGSRC of packages that have
been forced to non-builtin, it also produces a list FORCED_PKGSRC_REASONS
of the form pkg:causing-pkg{,causing-pkg...}.

(which means that USE_BUILTIN.pkg has been set to no because
USE_BUILTIN.causing-pkg is set to no.)

This could probably just be one list but I'm not sure if anything is
relying on the format of the current FORCED_PKGSRC.
2018-03-19 03:53:29 +00:00
rillig
0e0d2af856 mk/configure/replace-interpreter.mk: document variables for show-all 2018-03-11 15:07:45 +00:00
rillig
ea32a33dbd mk/configure/replace-interpreter: add "make help" keywords 2018-03-11 14:59:14 +00:00
rillig
3ea36ec82f mk/plist: make print-PLIST discoverable by "make help"
Because print-PLIST uses mixed case (unlike most of the other make
targets), it is not found by the keyword search of "make help".
2018-03-11 14:53:10 +00:00
rillig
c060c9bc20 mk/help: run "make help" through the pager by default 2018-03-11 14:50:49 +00:00
rillig
afd12090f3 mk/tools/autoconf.mk: improve documentation for autoreconf 2018-03-09 21:51:20 +00:00
wiz
380b6ec244 xorgproto: use xorgproto instead of separate *proto packages
Remove now obsolete packages.
2018-03-07 11:57:28 +00:00
rillig
7e49fb99d5 mk/help: sort keywords 2018-03-07 00:14:57 +00:00
rillig
03ae6d7a54 mk/help: ignore topics in lines that are indented by at least 2 tabs
The variable names are typically mentioned in one of these styles:

# Package-settable variables:
#
# VARNAME
#	Description

# Package-settable variables:
#
#	VARNAME
#		Description

Lines that are indented with two tabs contain text. And if one of these
lines starts with a variable name, it is just a coincidence. A practical
example of this happening is in mk/misc/developer.mk 1.24, where PKGNAME
starts a line of description.
2018-03-06 23:49:37 +00:00
rjs
014d98c2ce Describe bluray option. 2018-03-05 21:18:12 +00:00
rillig
cb09d12497 mk/check/check-relro.mk: explain what RELRO means 2018-03-04 20:45:19 +00:00
wiz
39d5ed7e0b mk/pkgconfig-builtin.mk: use more recent package in example in comment 2018-03-02 15:15:10 +00:00
khorben
48a848d0cd Default to devel/libusb-compat for libusb 0.1
No objection on tech-pkg@

Tested on NetBSD/amd64.
2018-02-27 23:43:21 +00:00
rillig
d77131ac6a mk/misc/show.mk: document the show-all-* targets 2018-02-26 22:51:42 +00:00
wiz
14951f1d12 mk: bump mysql default to 57. 2018-02-20 13:21:45 +00:00
rillig
a90fa290b9 mk/internal/locking.mk: improve documentation for "make help" 2018-02-19 13:00:10 +00:00
rillig
50392d258e mk/license.mk: drop the selfmade license guessing code in favor of ninka 2018-02-19 12:58:51 +00:00
maya
192d0ba9af Reorder MASTER_SITES_GNU:
- Put the main mirror at the lowest priority. it seems to be struggling.
- Add two mirrors that seem decent at the highest priority.
2018-02-18 19:31:56 +00:00
khorben
47bb455c2d Import global switch for libusb's implementation [1/2]
This switch is meant to be used by packages requiring an implementation of the
former libusb (as in devel/libusb). The original implementation can be
chosen by setting LIBUSB_TYPE to "native".

The alternative implementation libusb-compat (as in devel/libusb-compat) wraps
libusb1 (in devel/libusb1). This implementation can be chosen by setting
LIBUSB_TYPE to "compat". On NetBSD, it has the advantage of not requiring root
privileges to locate and use USB devices without a kernel driver.

This first part only imports the switch framework itself.
2018-02-10 13:45:45 +00:00
triaxx
3417f2b33b Fix an inconsistency for package database directory.
The pkgdb variable generated for pbulk.conf is ${PREFIX}/var/db/pkg but
bootstrap generates by default PKG_DBDIR=${PREFIX}/pkgdb.
This fix add a common PKGDBDIR variable used for both pbulk.conf and
bootstrapkit.
2018-02-08 12:59:28 +00:00
kamil
2b3365c02a Append happy to the DEFAULT_ACCEPTABLE_LICENSES list
happy is DFSG, not evaluated by OSI/FSF

No objections from <Greg Troxel>
2018-02-03 17:38:13 +00:00
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
wiz
8444b9a444 Comment out debug printf. 2017-10-06 14:46:21 +00:00
jlam
2c5ffee9f0 reduce-depends.awk: Also reduce "exact match" and "any version".
Also reduce patterns of the form:

	pkg-version	(exact match)
	pkg-[0-9]*	(fnmatch pattern matching any version)
2017-10-04 04:13:12 +00:00
jlam
c47bf45c32 reduce-depends.awk: Match version strings containing tilde (~). 2017-10-04 04:13:00 +00:00
jperkin
45f7f890ca mk: Disable SSP checks on systems where it is provided in libc.
The currently implementation of SSP checks simply look for a DT_NEEDED
dependency on libssp, and doesn't yet have a way to check for it being
enabled when it is done via libc.
2017-10-03 13:18:00 +00:00
jperkin
1605dd1b43 mk: Add support for SSP checks. 2017-10-03 09:43:06 +00:00
jperkin
8dbb87e55a mk: Fix SSP detection when using pkgsrc GCC.
We can't rely on _GCC_VERSION as an accurate indicator of the GCC version,
as when using a pkgsrc GCC it will be set to 0 until the pkgsrc GCC is
available and we can detect its version.  Instead, move the logic later to
after CC_VERSION is set and use that instead.
2017-10-03 09:38:16 +00:00
schmonz
9fee74596e Document "daemontools-moresignals" option. 2017-10-03 00:36:05 +00:00
wiz
bece876d09 mk: check for installed files that are not in PLIST by default
Previously, this was only enabled with PKG_DEVELOPER.

Ok kamil@ jperkin@
2017-10-02 14:14:04 +00:00
jlam
6b7428c49d reduce-depends.awk: Avoid "delete array" statement for portability.
POSIX awk doesn't allow "delete array" to delete an entire array.
For portability, one must delete each element of the array.
2017-10-01 22:58:19 +00:00
jlam
aca4516d1d reduce-depends.awk: Avoid gensub() for portability. 2017-10-01 17:57:18 +00:00