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
- Remove out-of-tree build (in favor of D4157)
- Remove custom do-install (config/nsinstall works fine) [1]
- Convert to new testing framework
- Refresh patches with |make makepatch| but leave damage out [2]
[1] Requires PORTREVISION per new entry in plist and DEBUG builds
no longer embedding WRKDIR in source file name
[2] Here's a list with * indicating severity:
*** Lost original ptthread.c hunk from patch-bug301986
*** Mixed patch-bug782111 into patch-bug301986
** Duplicated context lines
* Wrong timestamps with USES=pathfix
- MariaDB is based on the vulnerable MySQL 5.1 version
- No new versions since 2013
- Simplify Mk/bsd.databases.mk
Reviewed by: koobs (mentor), feld
Approved by: koobs (mentor)
Differential Revision: https://reviews.freebsd.org/D4099
typically pipe it through ${FMT} 75 79 command to ensure that if it gets
overly long, it would be wrapped nicely. Do the same when outputting IGNORE
message which often gets very long. While here, add missing section number
in sed(1) references in comments.
Differential Revision: D4116
Approved by: portmgr (bapt)
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]
Test target doesn't produce anything and nothing depends on it.
Also it's often useful to run tests multiple times in a row, so
having a cookie which remembers that the tests were already ran
and inhibits subsequent test runs is needless. It also eliminates
the need for retest target.
Approved by: portmgr (mat)
Differential Revision: D3875
Make it depend on stage, and point people to adding DEVELOPER=yes to
their environment.
Discussed with: bapt
Sponsored by: Absolight
Differential Revision: https://reviews.freebsd.org/D4082
WANT_SDL/HAVE_SDL macros allowed a port to check which SDL components
are installed. This goes against the policy of avoiding automatic
dependencies, and there are actually no cases in the portstree where
these knobs are used properly, so axe them out.
Approved by: portmgr (mat)
Differential Revision: D4093
Right now, NO_WRKSUBDIR means that the extraction does not produce a
subdirectory, and that everything goes straight into WRKDIR. It is
problematic, because during the build of a port, quite a few files are
created in there, and then, a stage directory, where everything is
installed, and then a pkg directory where the package is created, and
those often conflict, or get in the way, of the building process.
With this, NO_WRKSUBDIR will extract the distfiles directly into WRKSRC
instead of WRKDIR. In this case, WRKSRC is artificial and is based on
PKGNAME and not DISTNAME, mitigate conflicts with rc files.
PR: 204056
Submitted by: mat
Reviewed by: bapt
Exp-run: antoine
Sponsored by: Absolight
Differential Revision: https://reviews.freebsd.org/D2735
due to $PW not being set. This only occurred when just a user was being
created without a group. Solve this by setting $PW outside of the group
creation and above both the user and group creation parts.
PR: 203489
Reviewed by: bapt
Approved by: portmgr (bapt)
Approved by: bdrewery (mentor)
PEP-449 [1] describes the 'Removal of the PyPI Mirror Auto Discovery and
Naming Scheme'.
The main elements of this (Accepted) proposal are:
Removal of [a-z].pypi.python.org DNS CNAMES
Replacing individual mirrors with a single Geo-aware CDN service
Previous revisions 365159, 347895, 342514 deprecated several individual
mirrors and *.pypi.python.org aliases. The following changes (Part III)
completes the (PEP-449 compatibility) transition:
Remove pypi.crate.io (NXDOMAIN)
Remove pypi.python.jp (Outdated, Broken for DISTNAMEs w/ hyphens
Switch to TLS (HTTPS) MASTER_SITE by default
Leave a non-TLS (HTTP) MASTER_SITE for fallback (proxy environments)
This change is also likely to fix PyPI (CHEESESHOP) update detection in
Portscout, at least until upcoming changes for the portscout port add a
dedicated sitehandler for it (and GitHub).
[1] https://www.python.org/dev/peps/pep-0449/
MFH: 2015Q4
Differential Revision: https://reviews.freebsd.org/D3972
PKG_ROOTDIR is set. This will enable help support pkg cross installs.
PR: 203489
Reviewed by: bapt
Approved by: portmgr (bapt)
Approved by: bdrewery (mentor)
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
This is only missing the bsd.port.mk pieces to hook it up fully. A blocker
for hooking that up has been sub-packages, even though some implementation
could be made without them. For now just commit what I have so it is not
forgotten.
Obtained from: OneFS
Sponsored by: EMC / Isilon Storage Division
With hat: portmgr
This has been slightly faster in my tests since readelf(1) will fail on the
file much quicker if it doesn't find the ELF headers. This also more directly
finds the symbol table.
With hat: portmgr
- Support multiple values in *_OLD_CMD, i.e. we can now fix both "/usr/bin/python" and "/usr/bin/env python" at the same time
- Default *_OLD_CMD values are now always appended, so you don't need to specify them in individual ports
- Add lua support (depends on USES=lua)
- Add more default values, such as "/usr/bin/env foo" for python, perl, bash, ruby and lua
- Shebangfix now matches whole words, e.g. we will no longer (erroneously) replace "/usr/bin/perl5.005" with "${perl_CMD}5.005" (but "/usr/bin/perl -tt" is still (correctly) replaced with "${perl_CMD} -tt")
Note that *_OLD_CMD items containing spaces must now be quoted (e.g. perl_OLD_CMD=/bin/perl /usr/bin/perl "/usr/bin/env perl")
Update shebangfix usage according to new rules in many ports:
- Remove *_OLD_CMD for patterns now replaced by default
- Quote custom *_OLD_CMD which contain spaces
Fix shebangfix usage in many ports (irrelevant to infrastructure change):
- Remove redundant SHEBANG_LANG (no need to duplicate default langs)
- Remove redundant *_CMD (such as python_CMD=${LOCALBASE}/bin/python${PYTHON_VER} when USES=python is present)
- Never use *_OLD_CMD in REINPLACE_CMD matchers, these should always look for exact string
Approved by: portmgr (bapt)
Differential Revision: D3756
Modify make describe to automatically prepend ${PORTSDIR} if the path for the
port is not absolute
Checked with poudriere, portmaster, portupgrade
PR: 203685
Exp-run by: antoine
Differential Revision: https://reviews.freebsd.org/D3866
Update fontproto to 2.1.3.
Update libXfont to 1.5.1.
Update xf86-input-keyboard 1.8.1.
Update xf86-input-vmmouse to 13.1.0.
Update xf86-input-void to 1.4.1.
Update xf86-video-chips to 1.2.6.
Update xf86-video-cirrus to 1.5.3.
Update xf86-video-mach64 to 6.9.5.
Update xf86-video-neomagic to 1.2.9.
Update xf86-video-r128 to 6.10.0.
Update xf86-video-s3virge to 1.10.7.
Update xf86-video-savage to 2.3.8.
Update xf86-video-siliconmotion to 1.7.8.
Update xf86-video-sis to 0.10.8.
Update xf86-video-trident to 1.3.7.
Update xf86-video-vesa to 2.3.4.
* All other xf86-* drivers where bump and/or patched to allow them to
compile and work with the new xorg-server.
* The ATI-ums driver is removed because the API it depends on was
removed from the xorg-server.
* Add patch to sunffb to make the lack of XAA non-fatal
(not build/run tested due to lack of hardware).
* Remove the extra patches in xorg-server for arm. The code seems to
support it now natively. Please file a bug if this is not the case.
* Update the xorg-server support in virtualbox-ose-additions for vboxmouse. [1]
Submitted by: jkim@ [1]
Obtained from: Graphics devel repo
This will be useful in Poudriere to avoid needless fork/exec for every
port when gathering dependencies.
Example usage:
MAKE=make sh -c '. Mk/Scripts/functions.sh; export_index_env; export PACKAGE_BUILDING=1; truss -f make -C sysutils/zfstools -V BUILD_DEPENDS 2>&1' | grep exec
This eliminates 14 exec/fork calls for this example, when PACKAGE_BUILDING
is also set during -V.
Care should be taken with UID not being passed down into actual builds as it
may conflict with non-root builds.
With hat: portmgr
Package building always builds Pkg first. If someone downgrades their
pkg locally this change will hurt them, but then they are already
running an unsupported configuration.
With hat: portmgr