Separate file(1) and stat(1) output by a newline and read each line
individually to avoid losing spaces.
- Use <<-EOF with heredocs to avoid bad indent
- Add some more comments
- Quote filenames in output so it is less unclear
Spotted by: mandree
Reviewed by: antoine
With hat: portmgr
doesn't satisfy, prefer PYTHON2_DEFAULT or PYTHON3_DEFAULT over other
versions.
Previously, python34 was choosen despite python33 being the default python3.
Silence from: python
With hat: portmgr
autoconf, autoheader, automake. [1]
This should allow replacing custom pre-configure and run-autotools
targets that some ports have with USE_AUTOTOOLS.
- Set default LIBTOOLIZE_ARGS:
-i: install missing build scripts.
-c: copy files instead of linking them. This is needed for USES=libtool
to be able to patch them.
-f: force replacement of existing files. This ensures all files belong
to the same version.
database/vsqlite:
- Fix with new LIBTOOLIZE_ARGS.
- INSTALL_TARGET=install-strip.
- Drop :keepla.
Reported by: Nikola Kolev <koue@chaosophia.net> [1]
Exp-run: antoine
Approved by: portmgr (antoine)
Add WANT_PGSQL=client support
Do not test WANT_PGSQL if it is not defined
Fix a couple of typos makeing it unusable
add WANT_PGSQL=lib (default it nothing is specified)
only depends on library if no WANT_PGSQL is set or lib is explicitly
added to WANT_PGSQL
Since FreeBSD 8.4 and FreeBSD 9.1 make(1) do support :tu and :tl as a
replacement for :U and :L (which has been marked as deprecated)
bmake which is the default on FreeBSD 10+ only support by default
:tu/:tl a hack has been added at the time to support :U and :L to ease
migration. This hack is now not necessary anymore
Note that this makes the ports tree incompatible with make(1) from
FreeBSD 8.3 or earlier
With hat: portmgr
HOME=/dev/null to avoid staging violations. This will force
CCACHE_DIR=/root/.ccache when running as root, and otherwise
will force CCACHE_DIR to be manually set.
With hat: portmgr
PR: ports/186410 [textproc/xmlto build]
Reported by: mandree, Rainer Duffner <rainer@ultra-secure.de>
MFH: 2014Q2
- Update Firefox ESR to 24.5.0
- Update Thunderbird to 24.5.0
- Update NSS to 3.16
- Use port dependency for soundtouch library
- Require recent graphite2 version explicitly [1]
- Require gst-libav version that doesn't crash on seeking [2]
and doesn't error out on plugin load [3]
- Remove gstreamer note in pkg-message for www/firefox, [3] may still
happen with www/firefox-esr but only until it tracks esr31 (ca 2014-09-01)
- Fix USE_XPI in mail/thunderbird-i18n [4]
Security: http://www.vuxml.org/freebsd/985d4d6c-cfbd-11e3-a003-b4b52fce4ce8.html
PR: ports/187939 [1]
PR: ports/188133 [2]
PR: ports/181964 [3]
PR: ports/188984 [4]
Submitted by: Toomas Aas <toomas.aas@raad.tartu.ee> [1]
Submitted by: Jakub Lach <jakub_lach@mailplus.pl> [2]
Submitted by: Jan Beich [3] and this update!
Submitted by: Toni Ballesta <mustelator@yahoo.es> [4]
Approved by: portmgr (bdrewery, security update to non-staged port)
when doing plist checks. This could leak out if an unsupported format
was used such as 'rmdir -p' or 'rmdir dir1 dir2 dir3'
With hat: portmgr
Reported by: antoine
Pointyhat to: bdrewery
over java/openjdk8. java/openjdk8 is still in its infancy.
- Retire redundant _JAVA_PREFERRED_PORTS hack. We only have one preferred
port since r290539 and we want to keep it that way.
if not yet installed and WITH_PKGNG is set. Just skip the
vulnerabilities check as intended in r315599.
With hat: portmgr
Reported by: diizzy on EFNet
Pointyhat to: bdrewery (with interest)
exists, libtool will add all libraries libB.la refers to (dependency_libs
field) to the linker command line and store them in the dependency_libs
field of libA.la. So everything that subsequently links with libA will also
link to these extra libraries. This causes too much overlinking.
This commit modifies Mk/Uses/libtool.mk so it empties the dependency_libs
field in .la libraries during staging. However, because .la libraries have
very limited use when dependency_libs is empty it makes sense to completely
remove them during staging.
So with this commit USES=libtool is modified to remove .la libraries and a
new form (USES=libtool:keepla) is introduced in case they need to be kept
(dependency_libs is still emptied).
PORTREVISION is bumped on all ports with USES=libtool that install .la
libraries. Most ports are also changed to add :keepla because .la
libraries have to be kept around as long as there are dependent ports with
.la libraries that refer to them in their dependency_libs field. In most
cases :keepla can be removed again as soon as all dependent ports that
install .la libraries have some form of USES=libtool added to their
Makefile.
PR: ports/188759
Exp-run: bdrewery
Approved by: portmgr (bdrewery)
change the cwd for commented lines (such as %%OPTION%%file). Reset it
back to the normal on the first non-commented line.
- Sort files after stripping out @comment
With hat: portmgr
- Split dependency-owned check its own and make into a non-fatal warning.
This is not black-and-white. Python/Rubygem ports cleanup the lib dir
for every installed package, and for python/ruby-gems too. This is fine,
the extensions should not clean them up then; the error is valid here.
However, there's other frameworks which don't cleanup in the master package
and yield unexpected results. An example is that php does not cleanup
etc/php itself. Only extensions do. So if an extension depends on another
extension it will complain that the dependent extension owns etc/php,
so we remove from bsd.php.mk, now it's a leftover. The proper place is in the
php port itself, but it's unknown how many other cases there are like this.
So for now make this non-fatal and into a warning.
This is all mostly moot once pkg auto handles directories anyhow.
With hat: portmgr
Discussed with: antoine
- Bug fixes:
makeplist/check-plist:
- Fix showing directories owned by RUN_DEPENDS/LIB_DEPENDS [1]
- Use proper "rmdir PATH" syntax, not "rmdir >/dev/null... PATH" which
pkg will not recognize.
- Never consider base /etc/mtree/BSD.usr.dist or LOCLABASE
Templates/BSD.local.dist as needing @dirrm handling.
check-plist:
- Fix showing PORTDOCS/PORTEXAMPLES files when the OPTIONS are not set.
makeplist will still suggest them.
- Fix showing files installed through unselected OPTIONS as orphans,
by considering "@comment file" to be ignored. [2]
- Fix @sample, @fc, @fcfontsdir, @fontsdir support
- Fix return status when orphans are found to be non-zero
- Add note when PREFIX=!LOCALBASE
- Be more clear when orphans/no orphans are found.
- Add a whitelist mechanism for globally approved ignores.
- Add *.bak/*.orig to orphan whitelist for now.
- Fix false-positive with dirs installed to /, such as with
archivers/dpkg creating /var/db/dpkg
- Fix false-positive with @dirrm ending in /, such as with
ports-mgmt/poudriere with a @dirrmtry share/zsh/
- There are likely still some false-positives. I fixed as many as I could
find. Please let me know of others.
* One in particular that is not easily fixable is installing a file into
a directory owned by another port where that other port is not a run-time
dependency. So the leaf port may create all of the parent dirs and never
clean them up. Cleaning them up is not proper unless no other package is
depending on them. This will be addressed by pkg(8) once pkg_install is
EOL, or sooner.
- Consider @dirrm of directories owned by run-time dependencies, or
/etc/mtree/* or Templates/BSD.local.dist (at LOCALBASE) as fatal errors.
These should not be removed in the plist. @comment lines are not
considered for this; they will not ignore an error.
===> Checking for directories owned by dependencies or MTREEs
Error: Owned by dependency: @dirrmtry share/locale/af/LC_MESSAGES
Error: Owned by dependency: @dirrmtry share/locale/af
Error: Owned by dependency: @dirrmtry %%PERL5_MAN3%%
- Detect files in plist that do not exist in the stagedir. Pkgng already did
this, but now we have it unified with this check. @comment lines are
not considered for this; they will not ignore an error.
===> Checking for items in pkg-plist which are not in STAGEDIR
Error: Missing: foo
Error: Missing: @dirrmtry bar
- Change orphaned output due to several new errors introduced:
===> Checking for items in STAGEDIR missing from pkg-plist
Error: Orphaned: foo
- Send errors to stderr
check_leftovers.sh:
- Prefer longer values for PLIST_SUB.
bsd.options.mk:
- Fix NOPORTDOCS/WITHOUT_NLS/NOPORTEXAMPLES not unsetting their respective
OPTIONS.
- Mark NOPORTDOCS/NOPORTEXAMPLES deprecated and hook them into the
OPTIONS_WARNING to tell users the new format.
- check-stagedir.sh refactoring:
- Switch to using new PLIST_SUB_SED
- Use ! instead of , in sed(1) regex to allow files/dirs with ','
- Rework PORTEXAMPLES/PORTDOCS handling so it acts on PLIST_SUB_SED'd
value and not absolutes. Also simplify the regex for these a bit to
allow reuse.
- No longer need DOCSDIRS/EXAMPLESDIR in env
- Wrap long lines
- Unset some vars in env when they are done being used to free space for
larger sed vars
- Cleanup redundant sed regexes
- Add a Scripts/plist_sub_sed_sort.sh to prefer longer values when substituting
over shorter values.
- To make check-plist ignore a file *as an orphan* do one of the following:
1. Install it
2. post-install: ${RM} ${STAGEDIR}file
3. Put the file behind an OPTION with a PLIST_SUB: %%OPTION%%file
4. Add to plist as a @comment [2]:
@comment file
@comment @dirrmtry dir
Reviewed by: mat (much earlier version)
Discussed with: mat, antoine, bapt, swills (various bits)
With hat: portmgr
PR: ports/185561 [1]
Reported By: Alexander Yerenkow <yerenkow@gmail.com> [1]
Tested with: pkg and pkg_install
Reported by: many (false-positives)
[2] This is a partial solution, we may still need a plist.ignore too. It
doesn't make much sense to add files in main pkg-plist we don't care about,
but maybe it does since you'll see and reconsider them being ignored
someday. @comment is used as all the OPTION PLIST_SUB deactivations use
@comment instead of something like @ignore.
- Avoid a redundant 'test -d'
- Properly show %%PORTEXAMPLES%% %%PORTDOCS%% where needed
- Avoid some forking for always-ignored files
With hat: portmgr
This will contain all approved/whitelisted leftovers in a single
reference. It will also allow us to update the whitelist without
needing a new release of poudriere/tinderbox and forcing users
to update those tools.
Usage: env PORTSDIR=... check_leftovers.sh category/port
stdin:
- missing-file
+ new-file
M modified-file reason...
stdout:
same -/+/M format, but with files substituted, without approved
whitelisted files, and hides any directories already in plist.
- Add /var/qmail/queue to the list of whitelisted directories just as
/var/mail is. This queue directory contains mails in flight and may receive
or have mail removed during an upgrade.
Obtained from: Mostly poudriere
Reviewed by: antoine
With hat: portmgr
paths. This will be used for check-stagedir.sh and poudriere/tinderbox
leftover handling.
This version handles several flaws of other implementations:
- Remove VARS that are too generic
- Remove empty values
- Remove @comment values
- Remove quotes
- Replace . with \. for later sed(1) usage
- Handle values with spaces
- By default only use values 2+ characters long. Let this be overridable
with PLIST_SUB_SED_MIN.
Reviewed by: antoine, mat
With hat: portmgr
bug [1] requiring it to be even if creating from STAGEDIR. This is only done
when NO_STAGE is not set and for pkg_install.
This fixes the following error with 'make package' from stagedir:
pkg_create: couldn't resolve path for prefix: /var/qmail: No such file or directory
[1] This is due to base r231300 requiring the prefix to exist when
running pkg_create (which may not be true in staging). This was
fixed in r240682, but never made it to 9.1
With hat: portmgr
a zeising, kwm production, with help from dumbbell, bdrewery:
NEW XORG ON FREEBSD 9-STABLE AND 10-STABLE
This update switches over to use the new xorg stack by default on FreeBSD 9
and 10 stable, on osversions where vt(9) is available.
It is still possible to use the old stack by specifying WITHOUT_NEW_XORG in
/etc/make.conf .
FreeBSD 8-STABLE and released versions of FreeBSD still use
the old version.
A package repository with binary packages for new xorg will
be available soon.
This patch also contains updates of libxcb and related ports, pixman, as well
as some drivers and utilities.
Bump portrevisions for xf86-* ports, as well as virtualbox-ose-additions due
to xserver version change.
Apart from these updates, the way shared libraries are handled has been
changed for all xorg ports, as well as libxml2 and freetype, which means
ltverhack is gone and as a consequence shared libraries have been bumped.
The plan is that this change will make library bumps less likely in the
future.
All affected ports have had their portrevisions bumped as a consequence of
this.
Fix some issues where WITH_NEW_XORG weren't detected properly on CURRENT.
Update instructions, hardware support, and more notes can be found on
https://wiki.freebsd.org/Graphics
Thanks to: all testers, bdrewery and the FreeBSD x11@ team
exp-run by: bdrewery [1]
PR: ports/187602 [1]
Approved by: portmgr (bdrewery), core (jhb)
This is so that 'make' followed by 'make deinstall install' will, by default,
have a much shorter period of files missing on the system as it is without
staging.
Discussed with: bapt
With hat: portmgr
It accepts a file (must end in .sample, this is not configurable):
@sample file.conf.sample
This will install file.conf.sample and copy it to file.conf. The file.conf
will be removed if it matches file.conf.sample on deinstall.
This replaces older patterns of:
@unexec if cmp -s %D/etc/pkgtools.conf %D/etc/pkgtools.conf.sample; then rm -f %D/etc/pkgtools.conf; fi
etc/pkgtools.conf.sample
@exec [ -f %B/pkgtools.conf ] || cp %B/%f %B/pkgtools.conf
[1] This somewhat obsoletes work in ports/157168 which added CONF_FILES,
but we have been moving towards more logic in pkg-plist where possible
and less magical macros. Though this thinking does clash with autoplist
ideas. We may still want CONF_FILES, which just drops a list of
@sample entries into the plist anyway.
- Add a Keywords/pkg_install.awk and hook it into generate-plist. This is
for pkg_install compatibility since it does not know how to read
Keywords/sample.yaml.
This file gives us a strategy to implement more keywords before
pkg_install is EOL.
Keywords are documented here:
bffc31420b
- This needs to be documented in PH and portlint support added still.
PR: ports/157168 [1]
Discussed with: bapt
Reviewed by: bapt
Requested by: many
With hat: portmgr
Add support for matching additional pkgconfig libdir entries
that were found in Python's Makefile.pre.in.
It can also be used by other ports [1] by setting PATHFIX_MAKEFILEIN to the
appropriate filename in ${WRKSRC}.
If this file grows support for other pathfix'es beyond Makefile's and
autoconf sources, it may be worth renaming PATHFIX_MAKEFILEIN in future
to suit the broader scope.
[1] Examples: devel/ptlib, graphics/zathura (thanks antoine)
Reviewed by: antoine
Approved by: antoine (exp-run)
MFH: 2014Q2
The FreeBSD Python Team warmly welcomes Python 3.4 to the Ports tree:
- Add lang/python34
- Add devel/py-setuptools34
- Add Python 3.4.0 docs to lang/python-doc
Release Announcement and Major Features:
https://www.python.org/download/releases/3.4.0/
This also marks the next stage of a cleaner, much-closer-to-upstream
approach to Python on FreeBSD, that builds upon the hard work of the
entire FreeBSD Python team over the last year.
This port is built "entirely" from scratch, retiring as much of the
legacy, workarounds, patches and hacks from the existing Python
ports as possible.
Of particular note: static + shared dual-build is gone, as it was flaky
at best, grossly untested upstream and caused more issues than it
solved. It is replaced by a shared build by default. The static python
library remains installed and usable.
Major changes in this structure are:
- Replace dual static and shared in-tree build with shared-only.
- Use options helpers
- Replace plat-freebsd* hacks with a lighter weight alternative
- Strip all libraries and shared extensions
- Only retain patches that are absolutely necessary
- Replace static disabled_module_list with one from upstream
- Retain NIS and sparc64 workarounds from python33
- Deprecate SEM option, no longer optional.
- Deprecate PTH option, no longer maintained or supported upstream
- Deprecate FPECTL option, no longer maintained or supported upstream
- Add upstream issue references & breadcrumb annotations where possible
Tested by: many (Special thanks to Andrew Berg)
Reviewed by: xmj, nemysis, antoine
Simplify what need to be defined by directly using the cc in the sysroot instead of the one in LOCALBASE/bin
which might call ${LOCALBASE}/bin/ld instead of the cross build ld (same for as) if binutils from ports is installed and a build system messes up with the CFLAGS
This means that files referrencing stagedir or linked to stagedir will
now be fatal errors as intended.
- Stop polluting global namespace with IFS changes
- Speedup find(1) -exec usage by execing far less
- Ignore known false-positive/harmless stagedir files in paths() [2]
Reported by: eadler [1]
Discussed with: antoine [2]
With hat: portmgr
KDE ports:
- Convert to USES=tar:xz
devel/p5-perlqt, multimedia/kdemultimedia4-ffmpegthumbs:
- Convert LIB_DEPENDS to new style
devel/p5-perlqt, devel/p5-perlkde:
- Don't remove directories installed by perl port
net/kdnssd:
- moved to net/zeroconf-ioslave (renamed upstream)
x11/kdelibs4:
- Clean up non-standard shared mime files and directories after deinstall
The area51 repository features commits by Alonso Schaich
<alonsoschaich@fastmail.fm> and makc.
with simple ports for now, lots of improvements are pending
cd devel/pkgconf; make X_BUILD_FOR=armv6-freebsd10.0 package
Will create a armv6 ready package
Note that right now the generated package does not have the proper ABI defined
But the content is the right one
not match LOCALBASE. This is needed for qmail ports where they install
to a different PREFIX (/var/qmail), but only the main qmail port should
remove and own the dir. Otherwise permissions are incorrectly set when
using staging.
With hat: portmgr
This will silence warnings from pkg about files already removed by "ocamlfind remove" during "pkg remove".
Note: I am not convinced that running "ocamlfind remove" during uninstall is necessary as all files are tracked.
-DLIBICONV_PLUG from USES=iconv and always use libc iconv when it is
available.
- Remove the iconv dependency from Qt5. It uses icu instead.
PR: ports/186707
Approved by: kde (makc)
If that fails, copy it. This fixes packaging as non-root when not able to
write to the PACKAGES dir which causes the following warning:
pkg-static: archive_write_open_filename(/usr/ports/packages/All/myport-1.2.3.txz): Bad file descriptor
We do the same thing for pkg_install already.
With hat: portmgr
- Update Firefox ESR to 24.4.0
- Update Thunderbird to 24.4.0
- Update NSPR to 4.10.4
- Update NSS to 3.15.5
- Switch GSTREAMER option for non-esr ports to depend on
multimedia/gstreamer1 [2]
- Switch to Uses/compiler.mk, defaults to lang/gcc47 on 8.x and 9.x
- Use port dependencies for libogg, libvorbis, libopus, harfbuzz, graphite2
- Enable readahead in url-classifier, asmjs, download resume like on Linux
- Build www/firefox and www/seamonkey faster using unified compilation
- Unbreak build on sparc64 [1]
- Workaround OPTIMIZED_CFLAGS startup crash on 8.x and 9.x
- OPTIMIZED_CFLAGS is enabled by default
- A few DEBUG build fixes
- Add clang 3.2/3.3/3.4 workarounds for i386
- Mention known GSTREAMER issue in pkg-message
Submitted by: Jan Beich
PR: ports/186580 [1]
Requested by: kwm [2]
Security: http://www.vuxml.org/freebsd/610de647-af8d-11e3-a25b-b4b52fce4ce8.html
GCC 4.6.4 to GCC 4.7.3. This entails updating the lang/gcc port as
well as changing the default in Mk/bsd.default-versions.mk.
This adds powerpc64 as a supported architecture (and removes ia64,
though it can be supported by manually installing lang/gcc48).
New binaries %%GNU_HOST%%-gcc-ar47, %%GNU_HOST%%-gcc-nm47, and
%%GNU_HOST%%-gcc-ranlib47 are provided to support link-time
optimization (LTO) which scales significantly better.
And it adds support for indirect functions (IFUNCS), experimental
support for transactional memory in the compiler as well as a supporting
run-time library called libitm, a new string length optimization pass,
and support for atomic operations specifying the C++11/C11 memory model.
Version 3.1 of the OpenMP specification is now supported for the C,
C++, and Fortran compilers.
GCC accepts the options -std=c11 and -std=gnu11 for the C11 revision
of the ISO C standard which inlcude support for unicode strings,
nonreturning functions (_Noreturn and <stdnoreturn.h>), alignment
support (_Alignas, _Alignof, max_align_t, <stdalign.h>), and a
__builtin_complex built-in function.
The C++ frontend now accepts the -std=c++11, -std=gnu++11, and
-Wc++11-compat options and implements many C++11 features of the
language including extended friends syntax, explicit override
control, non-static data member initializers, user-defined literals,
alias declarations, delegating constructors, atomic classes, and more.
The C++ standard library and Fortran frontend have received many
improvements. See http://gcc.gnu.org/gcc-4.7/changes.html for an
extense list of changes; http://gcc.gnu.org/gcc-4.7/porting_to.html
for information on how to port to that new version.
PR: 182136
Supported by: Christoph Moench-Tegeder <cmt@burggraben.net> (fixing many ports)
Tested by: bdrewery (two -exp runs)
Currently the Ada framework uses a single compiler based on gcc47.
Soon this compiler will be updated to the gcc49 base, but not all Ada
ports are currently happy about this.
This update to ada.mk induces the ARGS of "47" which causes the port to
use the newly-created lang/gcc47-aux port which is currently a clone
of lang/gcc-aux. When the latter is updated, the Ada Framework will
use it except for those ports that feature "USES+= ada:47"
deskutils/kdepim4:
- Add depedency on coreutils, kleopatra needs md5sum and sha1sum programs [1]
misc/kdehier4:
- add tests directory (r343428 commit to Templates/BSD.local.dist)
security/kwallet:
- moved to security/kwalletmanager (renamed upstream)
x11/kdelibs:
- remove workaround, which is not needed after global fix in
Mk/bsd.kde4.mk (r315373)
PR: ports/187259 [1]
Submitted by: Tobias Berner <tcberner@gmail.com>
Alberto Villa (avilla@) has done all the hard work to create Qt 5 ports.
Trivial update from 5.2.0-beta1 to 5.2.1 by me.
Special thanks for Adriaan de Groot <groot@kde.org> for his assistance for
Qt-5.2.0 update.
Approved by: portmgr (bapt) (for Mk/bsd.port.mk)
version calls "gcc" in two places. Replace that with $CC.
- r346193 added -B${LOCALBASE}/bin in Uses/fortran.mk, just like
compiler.mk, but libtool doesn't recognise this flag and discards it.
Patch ltmain.sh so it passes the flag to the linker unmodified.
This only works on libtool 2.x for now, but that's good enough to fix
the PRs below and a linker error in math/octave on FreeBSD/i386 8.x.
(When those ports set USES=libtool.)
PR: ports/186946, ports/187000
Approved by: bapt