and `/usr/bin/env python') as invalid, because ports always depend on specific
version of python (e.g. python2 or python3), and generic `python'
which is link to either of them may point to incorrect version or
be not available at all (since it's installed by separate optional
python metaport)
Approved by: portmgr (mat), python (sunpoet)
Differential Revision: D9332
and www. Scripts (with possibly incorrect shebangs) may be located
anywhere in ${PREFIX}, including, for instance, lib/ (multimedia/lives):
Error: '/usr/bin/perl' is an invalid shebang you need USES=shebangfix for 'lib/lives/plugins/effects/rendered/colour_replace'
and ${DATADIR}/ (databases/cego):
Error: '/bin/bash' is an invalid shebang you need USES=shebangfix for 'share/cego/cgbackup'
There may be some more false positives, but broken scripts are much
more severe problem. There's also whitelist mechanism which lets
you ignore shebangs for certain kinds of files (like .pm) which may
be extended to fix FPs
Approved by: portmgr (swills)
Differential Revision: D8923
This was causing excessive 'uname -s' executions during Poudriere dependency
calculations. The reasoning is due to HAVE_COMPAT_IA32_KERN having a newline
quoted at the end of it as '\ ' by bmake:
# make -f Mk/bsd.port.mk -V 'HAVE_COMPAT_IA32_KERN=${HAVE_COMPAT_IA32_KERN:Q}' | cat -v
HAVE_COMPAT_IA32_KERN=YES\
This resulted in the following being executed:
export HAVE_COMPAT_IA32_KERN="YES OPSYS=FreeBSD"
With hat: portmgr
from ports, remove the symlink dance with libGL/libEGL/libgles and the
nvidia-driver ports.
* Revert libGL/libEGL/libglesv2 ports to normal.
* Rename the conflicting libraries from the nvidia-driver ports with a
-NVIDIA prefix and install a libmap.conf file to map to these versions.
* Remove the special case from Mk/Scripts/qa.sh for libGL and libEGL.
* Sadly the symlink dance between nvidia-driver and xorg-server for glx.so
need to stay, due to xorg-server opening that file with dlopen(3).
Approved by: portmgr@ (mat@ (prio version))
Differential Revision: https://reviews.freebsd.org/D7848
be doing at the time.
When fetching, the code was looking for a distfile in either its
DIST_SUBDIR or the main DISTDIR, which was ok. Until a port
(devel/cargo) moves one of its distfile
(cargo-nightly-x86_64-unknown-freebsd.tar.gz) into a subdirectory.
do-fetch would see the distfile in DISTDIR and say, ok, it's there, and
checksum would not see it in its subdirectory and fail.
1: phabricator's blame mode is really, really, great to unroll history.
PR: 216442
Submitted by: mat
Reported by: Bob Willcox, dhw (on ports)
Exp-run by: antoine
Sponsored by: Absolight
Differential Revision: https://reviews.freebsd.org/D9318
Sometime, Perl ports names do not map to the modules they provide
easily, and it makes it impossible to check for the existence of those
modules in Perl core.
Sponsored by: Absolight
locale set by the user. Add LANG=C and LC_ALL=C at the beginning of
bsd.port.mk and export them so all commands are executed with the C locale.
LC_ALL=C overrides all other LC_* variables. LANG is used by setlocale(3)
as default value for LC_* variables, so normally it isn't used when LC_ALL
is set, but there's code out there that looks at LANG directly so it's safer
to set it as well. The only commands not captured by this are !=
assignments before any inclusion of bsd.port.*mk.
Introduce USE_LOCALE=<locale> that adds LANG=<locale> and LC_ALL=<locale> to
CONFIGURE_ENV and MAKE_ENV so upstream build systems can be executed with a
different locale (e.g. USE_LOCALE=en_US.UTF-8).
PR: 215882
Exp-run by: antoine
Approved by: portmgr (antoine)
KDE Frameworks is a collection of libraries and software frameworks by KDE
that serve as technological foundation for KDE Plasma 5 and KDE Applications
distributed under the GNU Lesser General Public License (LGPL) [1].
The work is based on what we have in the KDE testing repo [2].
This is the next big step in updating the KDE Desktop and its Applications
to anything less dusty.
With this change, `USES=kde:5` is now a valid option. Ports that need to depend
on KDE Framework can now set:
USES=kde:5
USE_KDE=<framework1> <framework2> ... <frameworkX>
For example: www/qupzilla-qt5 can depend on sysutils/kf5-kwallet via:
KWALLET_USE= KDE=wallet
I would like to thank Raphael and Adriaan for reviewing the ports in the testing
repo :)
[1] https://en.wikipedia.org/wiki/KDE_Frameworks
[2] http://src.mouf.net/area51/log/branches/plasma5
Reviewed by: rakuco, mat, groot_kde.org
Approved by: rakuco (maintainer)
Differential Revision: https://reviews.freebsd.org/D8329
This happens when the UID/GID doesn't match the expected number from
UIDs/GIDs.
https://github.com/freebsd/pkg/issues/1485 has more details.
With hat: portmgr
Discussed with: bapt, mat
This will use Module::CoreList to tell you if a dependency you added can
be removed, or only conditionally added.
Approved by: bapt
Sponsored by: Absolight
Differential Revision: https://reviews.freebsd.org/D7832
- shebang check: skip scripts in LINUXBASE. Things like /bin/bash are
valid in a Linux context. Also, these scripts usually only work with
a Linux shell so it doesn't make sense to try to make them work from a
FreeBSD shell.
- prefixvar check: allow LINUXBASE/var.
- proxydeps check: only test FreeBSD ELF files because ldd(1) doesn't
work with other ELF files.
PR: 212419
Submitted by: tijl
Sponsored by: Absolight
Mk/Uses/linux.mk.
- Replace USE_LINUX=yes with USES+=linux and USE_LINUX=(.*) with
USES+=linux:\1 in all ports.
- Replace USE_LINUX_APPS with USE_LINUX in all ports.
- Use INSTALL_SCRIPT instead of INSTALL_PROGRAM to install scripts in some
ports.
- When USE_LINUX_RPM is defined, simplify the way DISTFILES and EXTRACT_ONLY
are defined.
- Remove BRANDELF_DIRS and BRANDELF_FILES handling. In the very rare cases
that it is still necessary ports can run ${BRANDELF} from post-patch.
- Remove AUTOMATIC_PLIST handling. Only one port used it.
- Fix Linux MASTER_SITES.
- Replace OVERRIDE_LINUX_BASE_PORT and OVERRIDE_LINUX_NONBASE_PORTS with
default versions framework.
- bsd.port.mk:
- Move Linux related bits to Uses/linux.mk, except USE_LINUX_PREFIX.
- Put USE_LINUX_PREFIX handling after USES processing.
- Define DOCSDIR, DATADIR, etc. after handling USE_LINUX_PREFIX so it can
give these variables a different default value.
- When a package needs to run Linux ldconfig check before installation if
Linux support is enabled.
- emulators/linux_base-*:
- Use USES=linux and remove duplication.
- Remove files/lp. FreeBSD or CUPS lp(1) should work.
- Remove files/yp.conf. No longer seems to be used.
- Remove pkg-deinstall and move pkg-install into pkg-plist.
- Update pkg-descr and pkg-message.
- Fix handling of ldconfig cache in pkg-plist.
- devel/fb-adb: Use a Linux shell to run a Linux script but patch the script
to use FreeBSD mkdir so mkdir -p $path creates $path and not
/compat/linux/$path.
PR: 211645
Exp-run by: antoine
Approved by: portmgr (antoine)
If a port provides .so.X files, they have to have a SONAME for them to
work correctly.
While there, incorporate a reverse soname checks in proxydeps.
A port that needs a .so.X from another port which does not have a
SONAME.
Reviewed by: bapt
Sponsored by: Absolight
Differential Revision: https://reviews.freebsd.org/D7454
Lots of KDE components are providing libraries, and they were,
strangely, written as BUILD_ or RUN_DEPENDS, with a full path to the
library. Change this so that if a component is needed at both build,
and, run-time, then it gets a LIB_DEPENDS.
Reviewed by: rakuco, tcberner
Sponsored by: Absolight
Differential Revision: https://reviews.freebsd.org/D7625
It turns out, some people, instead of setting DISTDIR, replace it with a
symlink pointing to where DISTDIR should be pointing.
And mkdir -p <symlink> fails.
PR: 211623
Reported by: Harald Schmalzbauer
Sponsored by: Absolight
This is done after the port has been built, so it is already building,
so it does not need to be added a BUILD_DEPENDS on gettext-tools.
Discussed with: dumbbell
Sponsored by: Absolight
Add a qa hint about needing, or not, USES=ssl.
Fix ports doing silly things, like including bsd.openssl.mk directly.
PR: 210322
Submitted by: mat
Exp-run by: antoine
Sponsored by: Absolight
Differential Revision: https://reviews.freebsd.org/D6866
Turns out that env(1) knows how to parse a properly quoted string
using -S "string", it makes the double eval used for the fetch
command to be unnecessary.
This is because running:
eval "foo $(escape $bar)"
is silly when this works:
foo $bar
So remove escaping and quoting, and sillyness.
PR: 210198
Submitted by: mat
Exp-run by: antoine
Sponsored by: The FreeBSD Foundation, Absolight
Differential Revision: https://reviews.freebsd.org/D6779
Turns out that the DEFAULT, and other groups sites were handled in
a different way, ending up having the same code twice, but in
slightly different places.
PR: 210198
Submitted by: mat
Exp-run by: antoine
Sponsored by: The FreeBSD Foundation, Absolight
Differential Revision: https://reviews.freebsd.org/D6779