- 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
Refactor all the fetch code so that there are not 6 slightly different
versions of it but one that does it all.
The targets that have been extracted are:
- check-vulnerable
- do-fetch
- fetch-list
- fetch-url-list-int
- fetch-urlall-list
- checksum.
- makesum.
- check-checksum-algorithms
Run the fetch code directly from make makesum instead of calling make
fetch, this is because some port change the options with OPTIONS_*_FORCE
when make(makesum) to be able to add all distfiles in one go, which was
a nice, non working, idea.
PR: 208916
Submitted by: mat
Exp-run by: antoine
With hat: portmgr
Sponsored by: Absolight
Differential Revision: https://reviews.freebsd.org/D5997
dependencies that are not part of the port list of dependencies. It help
finds what is called proxy dependencies.
A is needed by B, and B is needed by C. If C also needs A, then it needs to
be registered, and this check will tell you to do so.
Right now, it is only reporting the problems, but if you add
PROXYDEPS_FATAL=yes to your environment, it will give an error and will force
you to fix the dependencies.
PR: 195203
Submitted by: yuri rawbw com (earlier version)
Sponsored by: Absolight
Differential Revision: https://reviews.freebsd.org/D6531
This adds a few features:
- it checks that the UID line has the right number of fields [1]
- it tells the user that there are groups that he may want to remove [2]
PR: 208800, 173318 [1], 157546 [2]
Submitted by: mat
Sponsored by: Absolight
Differential Revision: https://reviews.freebsd.org/D5939
Put ${PATCH_WRSKRC} within quotes so that expanding it works properly when it
contains spaces. This is required for `make makepatch' to work with
audio/quimup or any other port that has WRKSRC with spaces. Before the patch:
% make -dl makepatch
cd: too many arguments
cd: too many arguments
and the port would be left with an empty files/ directory.
Reviewed by: marino
Approved by: portmgr (mat)
Differential Revision: https://reviews.freebsd.org/D5011
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
There were two issues with the new smart_makepatch script.
1) use of "local" declaration
All function variables were declared "local" during the review. This
caused the script to break, at least on FreeBSD 9.2. Given that it's
not being seen on 9.3R or later, it might be a bug in Bourne shell that
has since been fixed.
e.g. This resulted in stderr error on second iteration:
local contains=$(grep "^+++ " ${existing_patch} | awk '{x++; print x}')
however, this works fine:
local contains
contains=$(grep "^+++ " ${existing_patch} | awk '{x++; print x}')
To be safe, all local variables are assigned with $(<shell cmd>) on
separate lines now.
2) The comment extraction was flawed for files that contain multiple
patches. It was not counting the hunk lines properly which caused some
portion of a patch to be considered as a comment for the next patch. The
hunk traversal algorithm has been fixed.
Since 1) involved the introduction of local declarations that broke the
script and since only Scripts/smart_makepatch.sh is touched, I will
piggy-back on the original approval. The fix was tested with devel/nspr,
the port listed in the PR, which uses multi-patch files.
Approved by: portmgr
Differential Revision: D4136
PR: 204725
This update to the "makepatch" target adds the following enhancements:
1) Conserves comments
If the existing patch has comments, they will be transferred to the
regenerated patch.
2) Supports multiple patches per file
If the patch file contains concatenated patches, the makepatch
target will keep these patches together. It may change the order
of the patches the first time, but every time after the multi-patch
will be assembled in the same order.
Behavioral changes:
A) The "old" patches are not overwritten, but rather archived at:
${WRKDIR}/makepatch-tmp/archived-patches
B) Any patch that was not replaced or renamed is deleted by makepatch
(but it is archived first, see paragraph above)
C) There regeneration messages for the user will show them which patches
are using "legacy" names formats.
D) Makepatch will do a great job at "cleaning" git patches; it removes
lines starting with "diff" and "index" in the comments section.
Notes:
E) Should a source file be modified by multiple patches (e.g. two separate
multi-patches), a composite patch will be generated. In the above
example of two multi-patches, one would get the full patch and the
other no longer patch the source file.
Approved by: portmgr (mat)
Differential Revision: D4136
satisfied and needed to be installed. This restores older behavior of
allowing a partial checkout where dependencies are already installed. [1]
- Delay fatal errors show that all can be shown at once.
With hat: portmgr
Reported by: lev [1]