Two empty directories weren't listed in pkg-plist, causing this port
not to pass poudriere QA checks. My interpretation is that these
directories were never packaged, and they should not be packaged, so
let's simply remove them from stagedir. This alse means we don't have
to bump the port.
Approved by: just fix it
These ports contain applications that are enabled by specific options in
lang/erlang, but carry significant dependencies (X11 and Java).
Now these applications can be installed separately, and people using the
stock packages will be able to install X11 and Java support without
recompiling lang/erlang.
The JAVA and WX options of lang/erlang will probably be phased out in the
future.
- Sort OPTIONS_DEFINE and OPTIONS_DEFAULT.
- Create SKIP files for applications disabled by port options.
- Remove disabled applications from ${STAGEDIR}.
- Check if dtraceall is actually loaded when DTRACE is enabled.
The goals of ShellCheck are:
* To point out and clarify typical beginner's syntax issues, that causes
a shell to give cryptic error messages.
* To point out and clarify typical intermediate level semantic problems,
that causes a shell to behave strangely and counter-intuitively.
* To point out subtle caveats, corner cases and pitfalls, that may cause
an advanced user's otherwise working script to fail under future
circumstances.
WWW: http://www.shellcheck.net/
PR: 197302
Submitted by: luca.pizzamiglio@gmail.com
Obtained from: FreeBSD Haskell
More testing needs to be done on arm to see if our dtrace support is
compatible with what ruby needs. PowerPC may work as well, but needs
more testing.
Reviewed by: swills
As per lang/python27 (r377581):
- Add BROKEN for i386 without LIBFFI option, and add upstream
issue references.
While I'm here, clean up after the LIBFFI option addition:
- Sort options variables: OPTIONS_* and *_DESC
- Use OPTIONS helpers
- Reduce diffs between lang/python* ports
As per lang/python27 (r377581):
- Add BROKEN for i386 without LIBFFI option, and add upstream
issue references.
While I'm here, clean up after the LIBFFI option addition:
- Sort options variables: OPTIONS_* and *_DESC
- Use OPTIONS helpers
- Reduce diffs between lang/python* ports
Changes:
* Improved warmup time.
* Improved hitted code performance (+10% compared to v2.4).
* Passing objects between C and PyPy has been improved.
* Integrated numpy support gains GenericUfunc API.
* Dictionaries are ordered by default.
* More careful handling of errno.
from ports is able to handle unicode. Make sure that ruby does not provides its
own function to read the input but let libedit do it itself.
This allows the binary package to by default not be "tainted" by the readline
license.
Differential Revision: https://reviews.freebsd.org/D1547
Reviewed by: swills
Approved by: ruby (swills)
This module is an implementation of the "Promise/A+" pattern for
asynchronous programming. Promises are meant to be a way to
better deal with the resulting callback spaghetti that can often
result in asynchronous programs.
The bad news:
1. gcc is still required -- clang can build the binaries, but
some self-tests will fail, unless all optimization was
disabled. This is, probably, due to some suspect code in
bytenumb.c -- would be good to investigate.
2. Building this port in parallel is still not possible -- the
Makefile is too convoluted and same sources are recompiled
multiple times with different #defines set.
The good news:
1. Resolve a large number of warnings.
2. Fix build on ia64 and sparc64 (tested on pluto and flame
respectively). Other platforms (alpha, powerpc?) have a
better chance of working now...
libgcj-5.0.pc is now properly called libgcj-5.pc; adjust pkg-plist.
libffi is broken on FreeBSD i386 since 2015-01-11, cf.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64779, so disable it
for the time being.
- Added LICENSE (EGENIX)
- Changed MASTER_SITES from https to http to support downloading from behind proxy
Differential Revision: https://reviews.freebsd.org/D1635
Approved by: bapt(mentor)
Investigating the comment regarding a 'configure script bug' lead me
to a bug which manifested itself in 'm' not being added to ABIFLAGS
when PYMALLOC was enabled, not the inability to set
--without-pymalloc using PYMALLOC_CONFIGURE_WITH (options helpers).
The incorrect ABIFLAGS caused packaging failures with default options, so
I'm not sure how this wasn't picked up earlier:
Error: Orphaned: include/python3.2u/<file>
<snip>
Error: Missing: include/python3.2mu/<file>
- Backport an upstream commit [1] to correct the configure bug that never
made it to the 3.2 branch.
- Use options helpers for PYMALLOC accordingly
While I'm here, clean up after the LIBFFI option addition:
- Sort options variables: OPTIONS_* and *_DESC
- Use OPTIONS helpers
[1] https://hg.python.org/cpython/raw-rev/d158b0a78390
Approved by: python
- Fix packaging for mips64 (Reported by: sbruno)
mips64 is also not a 32-bit ${ARCH}, so add it to the list of
architectures for which imageop.so and dl.so aren't packaged:
%%32BIT_ONLY%%lib/python2.7/lib-dynload/dl.so
%%32BIT_ONLY%%lib/python2.7/lib-dynload/imageop.so
Both dl and imageop have been removed in Python 3.x [1][2][3][4]
Thanks jhibbits@ for his help testing.
- Add BROKEN for i386 without LIBFFI option, and add upstream
issue references.
While I'm here, clean up after the LIBFFI option addition:
- Sort options variables: OPTIONS_* and *_DESC
- Use OPTIONS helpers
References:
[1] The :mod:`imageop` module has been removed in Python 3.0.
[2] dl Added: https://hg.python.org/cpython/file/aac1ee966f56/setup.py
[3] dl Removed: https://hg.python.org/cpython/file/859ff5c7c60a/setup.py
[4] PEP-3108: https://www.python.org/dev/peps/pep-3108/
Approved by: python
There were several substitions like "${XXX:S/$/.something/} which is the
equivalent of appending, e.g. "${XXX}.something".
So for the sake of comprehension, change these to appends, and also just
hardcode ".tar.gz" instead of using ${EXTRACT_SUFX} for the same reason.
Since the distfiles are being manually defined, there's no real purpose
to have a variable in the name, and if the EXTRACT_SUFX changes for any
reason (say a new distfile with a different suffix requiring USES+=tar),
then the code actually breaks. These changes make the code easier to
read, comprehend, and arguably makes the port more robust.
The googlecode URL only provides 2.6.0 and 2.6.2 versions of the man pages
and bootstrap compiler, but not the current 2.6.4, so remove those urls.
While here, simplify the LOCAL distcache site urls. The substition is not
necessary.
The Free Pascal Compiler port currently mandates that the bootstrap
compiler be the same version of the compiler being built. This means that
every update requires a new bootstrap compiler to be generated before the
update. This goes against the philosophy of a bootstrap compiler, which
aims to allow older compilers to build self-hosting modern compilers. FPC
is capable of this, but the feature wasn't being leveraged.
There are a lot of changes in this commit, but I believe the resulting
compiler is the same as before the commit, thus PORTREVISION has not been
bumped. Changes include:
* Add DragonFly bootstrap compiler 2.6.4 to list of distfiles
* use OPSYS to make builds generic between FreeBSD and DragonFly
* Add FREEBSD PLIST variable as FreeBSD builds an extra unit
* Create the framework to have a bootstrap compiler of an older version
than the current version (BOOTVER variable)
* split PP variable out of MAKE_ARGS and use NEWPPC or BOOTPPC to
specify PP uniquely (required when bootstrap version is different)
* wrap compound command with parenthesis
* Use options lists on TAR man page (xfz without hyphen is legacy)
* unmask installation commands
* respect 80-column limits, wrapping as necessary
* bring in some dports-specific changes that have no effect on port
to eliminate dports patch files
future work:
When version 3.0 is released, the new fpc make program will be built
which will have some moderate impacts to the build process and it
will use a "bootstrap" target.
The intention is to continue using the 2.6.4 bootstrap compilers to
build the upcoming 3.0 compiler when it is released. New bootstrap
compilers will not be generated until the existing bootstrap compilers
are unable to bootstrap the upcoming release.
The large patch is the same as the one from r376266.
The second patch is a temporary fix for the bootstrap failure on all
ARM targets. This fix will be hopefully soon applied to gcc-4.9.x upstream.
Thanks again to Sean Bruno for testing and Gerald for approving.
Approved by: gerald (maintainer)
The larger part of the patch is a backport from gcc trunk which is sent
upstream for approval.
Thanks to Sean Bruno for testing, Andrew Turner for explaining me fine details
and Gerald for approving.
Approved by: gerald (maintainer)
Changes:
- src/sexp.c (do_vsexp_sscan): Return error for invalid args.
- cipher/md.c (_gcry_md_info): Fix a segv in case of calling
with wrong parameters.
- cipher/primegen.c (_gcry_generate_elg_prime): Change to return an
error code, possible NULL deref in call to prime generator.
- cipher/dsa.c (generate): Take care of new return code.
- cipher/elgamal.c (generate): Change to return an error code. Take
care of _gcry_generate_elg_prime return code.
- ecc: Support the non-standard 0x40 compression flag for EdDSA.
- mpi: Extend the internal mpi_get_buffer.
- mpi: Fix regression for powerpc-apple-darwin detection.
- Fix bug inhibiting the use of the sentinel attribute in src/gcrypt.h.in
- Fix building for the x32 target without asm modules in
mpi/generic/mpi-asm-defs.h: Use a fixed value for the x32 ABI.
- Fix ARM assembly when building __PIC__
- mpi: Fix a subtle bug setting spurious bits with in mpi_set_bit.
* mpi/mpi-bit.c (_gcry_mpi_set_bit, _gcry_mpi_set_highbit): Clear
allocated but not used bits before resizing.
* tests/t-mpi-bits.c (set_bit_with_resize): New.
- Use internal malloc function in fips.c.
* src/fips.c (check_binary_integrity): s/gcry_malloc/xtrymalloc/.
- pubkey: Re-map all deprecated RSA algo numbers.
- cipher: Fix possible NULL dereference in cipher/md.c for being NULL.
- Fix ARMv6 detection when CFLAGS modify target CPU architecture.
PR: 193264
Approved by: cpm@fbsd.es (maintainer)
Update totem to 3.14 now that we have gstreamer 1.4 and minor gnome updates.
Update evolution suite to 3.12.9.
Make sure gtk30 pulls in adwait-icon-theme, since it now the default theme [3].
PR: 195290 [1], 195289 [2], 195455 [3]
Obtained from: gnome devel repo
script to assume the BUILD_CONFIG is set to bootstrap-debug, instead of
letting it auto-detect.
With clang 3.5.0 this auto-detection can fail, due to a discrepancy [1]
[2] in its debug information, when objects are produced with and without
-g. When the auto-detection fails, gcc will compare objects with full
debug information during the stage comparisons, and this sometimes
causes those stage comparisons to fail unexpectedly.
[1] http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20141222/250134.html
[2] http://llvm.org/PR22046
Approved by: gerald (maintainer)
The FreeBSD Python team welcomes Python 2.7.9 to the Ports tree!
Announcement: https://www.python.org/downloads/release/python-279/
Changelog: http://hg.python.org/cpython/raw-file/v2.7.9/Misc/NEWS
Important changes for this release:
- The entirety of Python 3.4's ssl module has been backported for Python
2.7.9. See PEP 466 for justification.
- HTTPS certificate validation using the system's certificate store is
now enabled by default. See PEP 476 for details.
- SSLv3 has been disabled by default in httplib and its reverse
dependencies due to the POODLE attack.
- The ensurepip module module has been backported, which provides the
pip package manager in every Python 2.7 installation. See PEP 477.
- While updating, try to improve the NIS detection for FreeBSD
PR: 193650
Differential Revision: https://reviews.freebsd.org/D1323
Reviewed by: koobs
With hat: python
Mark pure as BROKEN by this removal. It should be updated to a recent
release that supports llvm 3.5, but has seen no substantive updates in
over a year.
It makes upgrading from one Perl major version to another way easier. For
binary package users, it means pkg upgrade will detect the libperl.so.x.yy
change, and reinstall the affected packages. For users using ports, it will
save rebuild time as it's easier to detect what ports really need to be
rebuilt.
PR: 195821
Differential Revision: https://reviews.freebsd.org/D1241
Submitted by: mat
Reviewed by: antoine, bdrewery
Exp-run by: antoine
With hat: perl
Sponsored by: Absolight
It was never converted to pkg, and starting with Perl 5.18 gives out
annoying warnings.
Differential Revision: https://reviews.freebsd.org/D1318
Reviewed by: swills
With hat: perl
Sponsored by: Absolight
the 32 ports that still use it. Bump PORTREVISION on their dependent
ports except the ones that depend on these:
audio/libogg
audio/libvorbis
devel/pcre
ftp/curl
graphics/jpeg
graphics/libart_lgpl
graphics/tiff
textproc/expat2
textproc/libxslt
In these cases the same trick as in the recent gettext update is used.
The ports install a symlink with the old library version. When enough
of their dependent ports have had regular updates the remaining ones can
get a PORTREVISION bump and the links can be removed.
Also remove the devel/pcre dependency from USE_GNOME=glib20. It causes
over 2200 packages to depend on devel/pcre while less than 200 actually
link with it. The glib20 package still depends on devel/pcre so this
should not make a difference for ports with USE_GNOME=glib20. Also,
libdata/pkgconfig/glib-2.0.pc lists pcre as a private library so
USE_GNOME=glib20 should not propagate it.
PR: 195724
Exp-run by: antoine
Approved by: portmgr (antoine)
Changes:
* Carry across _sqlite.py fix from lang/pypy
* Strip cffi shared libraries (from lang/pypy)
Change Log:
- Various fsencode PEP 383 related fixes to the posix module (readlink, uname,
ttyname and ctermid) and improved locale handling
- Fixed a couple different crashes related to parsing Python 3 source code
- internal refactoring in string and GIL handling which led to significant
speedups
- improved handling of multiple objects (like sockets) in long-running
programs. They are collected and released more efficiently, reducing memory
use. In simpler terms - we closed what looked like a memory leak
Release update for further testing by community.
Change Log:
- Reduced internal copying of bytearray operations
- Tweak the internal structure of StringBuilder to speed up large string
handling, which becomes advantageous on large programs at the cost of
slightly slower small benchmark type programs.
- Move to a mixed polling and mutex GIL model that make mutlithreaded jitted
code run much faster
- Remove ctypes pythonapi and ctypes.PyDLL, which never worked on PyPy
- Fix performance regression on ufunc(<scalar>, <scalar>) in numpy
- Classes in the ast module are now distinct from structures used by the
compiler, which simplifies and speeds up translation of our source code to
the PyPy binary interpreter
- Upgrade stdlib from 2.7.5 to 2.7.8
PLIST_SUB and SUB_LIST, finish making sure the MANPATH are valid all around.
Differential Revision: https://reviews.freebsd.org/D1254
Sponsored by: Absolight
2014-11-30 ports-mgmt/pkg-plist: Generate incorrect plists
2014-11-30 sysutils/rubygem-hiera-puppet: Has been incorporated into hiera
2014-11-30 sysutils/rubygem-hiera-json: Has been incorporated into hiera
2014-11-30 databases/memcachedb: Depends on deprecated Berkeley DB version, needs porting to DB_SITE
2014-12-01 games/djgame2: Online servers gone, game is not playable
2014-12-01 devel/creduce: Unmaintained and depends on ancient LLVM 3.2
2014-12-01 lang/clay: No development since July 2013, depends on obsolete clang-3.2
first contains runtime libraries such as libintl and the latter contains
developer tools such as msgfmt. Ports that use gettext will usually need
a LIB_DEPENDS on gettext-runtime and a BUILD_DEPENDS on gettext-tools.
USES=gettext-runtime can be used to set a LIB/BUILD/RUN_DEPENDS on
devel/gettext-runtime and USES=gettext-tools can be used to set a
BUILD/RUN_DEPENDS on devel/gettext-tools. USES=gettext is now the same
as "USES=gettext-runtime gettext-tools" meaning a LIB_DEPENDS on
devel/gettext-runtime and a BUILD_DEPENDS on devel/gettext-tools.
Update gettext to 0.19.3.
Remove :oldver from converters/libiconv and devel/gettext-runtime. Leave
symlinks with the old library versions to avoid the need to bump
PORTREVISION on a large number of dependent ports. When most of the
dependent ports have had normal version updates, PORTREVISION can be
bumped on the remaining ones (low number) and the links can be removed.
Fix some ports that installed files in lib/locale instead of share/locale.
PR: 194038
Reviewed by: bapt
Exp-run: antoine
Approved by: portmgr (antoine)
2014-11-26 vietnamese/vnlpr: Broken for more than 6 months
2014-11-26 devel/fsmgenerator: Broken for more than 6 months
2014-11-26 graphics/multiraw: Depends on broken and deprecated graphics/dcraw-m
2014-11-26 news/fidogate-ds: Broken for more than 6 months
2014-11-26 net/py-yadis: Broken for more than 6 months
2014-11-26 textproc/ruby-diff: Broken for more than 6 months
2014-11-26 audio/cowbell: Broken for more than 6 months
2014-11-26 lang/ironpython: Broken for more than 6 months
2014-11-26 www/dpsearch: Broken for more than 6 months
2014-11-26 multimedia/y4mscaler: Broken for more than 6 months
2014-11-26 devel/rubygem-dep_selector: Broken for more than 6 months
compact footprint.
Duktape is easy to integrate into a C/C++ project: add duktape.c and duktape.h
to your build, and use the Duktape API to call Ecmascript functions from C code
and vice versa.
Main features:
* Embeddable, portable, compact; about 210kB code, 80kB memory, 40kLoC source
(excluding comments etc)
* Ecmascript E5/E5.1 compliant, some features borrowed
from E6 draft
* Built-in regular expression engine
* Built-in Unicode support
* Minimal platform dependencies
* Combined reference counting and mark-and-sweep garbage collection with
finalization
* Custom features like coroutines, built-in logging framework, and built-in
CommonJS-based module loading framework
* Property virtualization using a subset of Ecmascript E6 Proxy object
* Liberal license (MIT)
Recent gcc creates debug information in dwarf4 format, something that
the base version of addr2line on FreeBSD cannot understand. When the
compiler requires binutils from ports to build, then ensure the
symbolic tracing code also uses addr2line from the same binutils (which
is already available due to RUN_DEPENDS requirements). Since DragonFly
3.6 and lower are no longer officially supported, this change only
affects FreeBSD, but it affects all supported releases. The conditional
code for DragonFly 3.6 has been removed while here.
Reported by: Natacha Porte
PR: 195465
automatically added to the plists.
- Add soname to libperl.so and rename it to libperl.so.PERL_VER, for instance
libperl.so.5.18. To keep software linked with it working, provide a
libperl.so symlink.
- Rollback Perl's man page location change, it creates conflicts for the few
modules that ship with Perl and are in the ports tree.
Sponsored by: Absolight
Before, we had:
site_perl : lib/perl5/site_perl/5.18
site_perl/perl_arch : lib/perl5/site_perl/5.18/mach
perl_man3 : lib/perl5/5.18/man/man3
Now we have:
site_perl : lib/perl5/site_perl
site_arch : lib/perl5/site_perl/mach/5.18
perl_man3 : lib/perl5/site_perl/man/man3
Modules without any .so will be installed at the same place regardless of the
Perl version, minimizing the upgrade when the major Perl version is changed.
It uses a version dependent directory for modules with compiled bits.
As PERL_ARCH is no longer needed in plists, it has been removed from
PLIST_SUB.
The USE_PERL5=fixpacklist keyword is removed, the .packlist file is now
always removed, as is perllocal.pod.
The old site_perl and site_perl/arch directories have been kept in the
default Perl @INC for all Perl ports, and will be phased out as these old
Perl versions expire.
PR: 194969
Differential Revision: https://reviews.freebsd.org/D1019
Exp-run by: antoine
Reviewed by: perl@
Approved by: portmgr
- Update x11-toolkits/elementary to 1.12.0
- Update x11-wm/enlightenment to 0.19.1
- Update graphics/evas_generic_loaders-* to 1.12.0
- Update devel/e_dbus to 1.7.10
- Update benchmarks/expedite to 1.7.10
- Move some of x11-wm/e17-module-* to x11-wm/e-module-*
and update to recent snapshots
- Add multimedia/emotion_generic_players-vlc
- Add multimedia/rage
Reviewed by: crees, antoine
- Remove BROKEN on ia64 statement, it was never a first-class architecture
and was officially killed in -CURRENT recently
- Do not manually strip *.so files in pre-install target, they're already
installed stripped
- Allow staging as regular user (or stripping fails due to BINMODE == 555)
- Remove unneeded (and thus confusing) global suffixes in REINPLACE_CMD's
- Fix bogus whitespace on Makefile line 17, sort and wrap long USES line
Gnome 3.14.1 and Cinnamon 2.2.16 are supported on FreeBSD 9.3-RELEASE and up.
This commit removes the old GNOME 2 desktop, bindings and some ports that
can't be compiled. A few ports where updated to more recent versions to
allow them to compile with this update.
Apart from updating ports to newer versions
GDM is more integrated with gnome-shell now, and handles several things for
the GNOME desktop such as screen locking. If you want to use GNOME 3 via
startx, you will have to add your own lock screen/screensaver. For example xscreensaver
can be used for sessions started without GDM.
Shell Extensions can be installed via https://extensions.gnome.org/ , we have
ported a few that can't be installed via this way.
The old gnome-utils and gnome-games ports where split up into single ports
and where converted to meta-ports.
gnome-terminal requires a UTF-8 locale to run, gdm handles this already, but
if you use startx you need to do this yourself.
Upgrade instructions:
Delete the old and conflicting packages:
# pkg delete clutter gnome-utils gnome-panel gnome-keyring vala-vapigen \
guile gcalctool gnome-media libgnomekbd
# pkg delete gnome-screensaver gnome-applets bug-buddy evolution-exchange \
evolution-webcal gnome-system-tools seahorse-plugins gnome-control-center
For package users the following lines will be enough:
# pkg upgrade
# pkg install gnome3
For ports users should do the following:
# portmaster -a
# portmaster x11/gnome3
We are currently aware of two issues. The first issue is a bug in the
file monitoring code in the glib20 port. This bug causes glib programs
to crash when files in a monitored directory are added or removed.
Upstream is aware of the problem, but since the problem is quite complex
there is no solution yet. This problem isn't restricted to BSD.
The second issue is that on certain video cards totem will display a
purple/pink overlay on the video. It not clear yet where the issues
comes from.
Major thanks goes to Gustau Perez for being a driving force behind getting
GNOME 3 up to speed again. Also thanks to Antoine Brodin for running the exp-runs.
This update was also made possible by:
Joe Maloney
Kris Moore
Beeblebrox
Ryan Lortie
Antoine Jacoutot
and everyone I missed
I don't know why spl builds on clang but fails on gcc due to a flex
precedence issue. Rather, I don't know why the flex issue doesn't affect
clang. There was a patch provided by a fork nearly four years ago that
fixes the gcc build nicely. The bitbucket issue warns that more eyes
should review the fix though.
Issue 1: roman number II interpreted as I
https://bitbucket.org/kcartmell/marlowe/issue/1/
automatically handled by the combination of the Cabal and the pkg(8)
frameworks
Issue raised by: antoine
Discussed with: ashish
Obtained from: FreeBSD Haskell
This backports changes from pypy-devel. Although that port has not gone
through standard QA, there have not been any complaints in the months that
it has been available under pypy-devel.
devel/hs-BoundedChan Channels with bounded sizes
devel/hs-bytestring-lexing Parse and produce literals from bytestrings
databases/hs-hedis Haskell API for Redis
PR: 194299
Submitted by: martin@sugioarto.com
Obtained from: FreeBSD Haskell
While here, set the DIST_SUBDIR to something unique since the distfile
has the same name between versions. Also reset maintainship as
Hiro doesn't use nawk on FreeBSD and updates are infrequent.
PR: 187543
Submitted by: Pedro Giffuni
Tweaks by: marino@
Proudly presented by the KDE on FreeBSD team, with several guest stars.
This update took way longer than initially expected due to us previously
accumulating assumptions and changes to Qt's build system that finally bit
us back with the 5.3 release series, so we had to do a fair amount of
cleanup.
New ports:
- comms/qt5-serialport: Qt functions to access serial ports, originally
based on work by Fernando Apesteguia. [1]
- devel/qt5-qdoc: Qt documentation generator, the Qt5 equivalent of
devel/qt4-qdoc3. Originally worked on by Tobias Berner.
It had already been half-split from devel/qt5-buildtools,
we just needed to finish the work.
Dead ports:
- devel/qt5-qmldevtools: Merged into lang/qt5-qml.
Minor changes:
- devel/qt5: Add x11/qt5-x11extras and the new ports to the dependency list.
- graphics/qt5-imageformats: The port now supports the JPEG2000, WEBP,
Direct Draw Surface and ICNS formats.
- multimedia/qt5-multimedia: The ALSA and PULSEAUDIO options are now
mutually exclusive due to changes introduced in
Qt 5.3.0 (the ALSA code is now a proper plugin
that is only built if PulseAudio is not used).
- x11/qt5-x11extras: Add USE_LDCONFIG since the port installs a shared
library.
The big changes:
- bsd.qt.mk: Set QMAKESPEC instead of QMAKEPATH. [3]
QMAKEPATH does much more than we want now that we call qmake from the top
of ${WRKSRC}. qmake uses QMAKEPATH when evaluating the QMAKE_MKSPECS
property, which is in turn used by qt_config.pri to load the .pri files in
mkspecs/modules.
In practice, this means that if people have an older Qt installation those
files will be used and QT_CONFIG will have values such as "gui" even if
one is building a port like textproc/qt5-xml, which passes -no-gui to the
configure script. Consequently, unintended code paths may be enabled or
the configuration step can just fail if the .pro files expect values that
are not present in the system-wide, older .pri files.
We avoid all those problems if we use QMAKESPEC, as qmake does not take
its value into account when evaluating the QMAKE_MKSPECS property and will
only parse the files in the mkspec's directory (mkspecs/freebsd-clang, for
example, instead of all the files in mkspecs).
- Stop explicitly passing ${LOCALBASE} to the compiler. [3]
qmake's behavior has changed in Qt 5, and the paths set in QMAKE_INCDIR
and QMAKE_LIBDIR in the mkspecs are passed before any others, such as the
ones in the build directory themselves.
In practice, this means that we end up with linker calls like this:
c++ -o libfoo.so foo.o bar.o -L/usr/local/lib -L/wrkdir/build/lib
-lQt5Gui -lQt5Core
So if one already has Qt installed in the system, the older, already
present version of the libraries in /usr/local/lib will be used instead of
the newly-built ones in /wrkdir/build/lib.
QTBUG-40825 discusses this behavior upstream, but there has been no
agreement on a solution yet.
For now, the solution adopted is to make the compiler and the linker aware
of those paths but only try them last after all others, and this is
achieved by setting the CPATH and LIBRARY_PATH environment variables when
qmake is being used.
In addition to setting them in CONFIGURE_ENV and MAKE_ENV, we also need to
stop changing QMAKE_INCDIR and QMAKE_LIBDIR as well as filter those paths
from the pkg-config calls qtbase's configure script makes.
- Call qmake from the root of the ${WRKSRC}.
In Qt 5.3, Qt's build infrastructure has undergone some changes that make
our previous approach of calling qmake from the directories we want to
build stop working. Things would break even more in Qt 5.4, in which
qtbase's configure script does not accept the -process, -fully-process and
-dont-process arguments anymore (it always behaves as if -process had been
used).
Bite the bullet and start calling qmake from ${WRKSRC}. The largest part of
this change involves changing lines in Makefiles from
WRKSRC_SUBDIR= foo/bar
to
BUILD_WRKSRC= ${WRKSRC}/foo/bar
INSTALL_WRKSRC= ${WRKSRC}/foo/bar
as well as adding patches to .pro files to avoid entering other
subdirectories and removing post-configure targets that are not necessary
anymore.
Since qmake needs to be called from the top of ${WRKSRC} anyway, we can
also simplify the configuration process for the qtbase ports a little.
Looking at r10019 it is not clear why we started calling qmake in the
pre-configure target in addition to the post-configure one (while also
skipping it in do-configure), but we can now drop this call since letting
configure behave as if -process had been passed means it will call qmake
on its own and overwrite the files generated by the pre-configure call. We
still need to call qmake in post-configure though, as the configure script
does not pass -recursive when calling qmake and we need to be able to call
make from any subdirectory when building.
PR: 194762 [1]
PR: 194566 # exp-run with base GCC and clang
PR: 194088 [3]
Any port that writes to Environment.SpecialFolder.Personal during build
or when running tests may end up with files outside of the stage area that
aren't cleaned up by the ports framework. The issue lies with Mono
looking in /etc/passwd first and only if no entry found there in $HOME.
This PR was an unnoticed prerequisite for the new port games/openra.
Patch based on discussion in https://github.com/mono/mono/pull/371
PR: 193426
Submitted by: Jan Beich
Approved by: maintainer timeout (8 weeks)
Many of the ports based on gcc-aux sources have a central location
defining their PORTREVISION to make it easy to reset all them all when
the base version is updated. lang/gnat_util should have had, but did not
and as a result the PORTREVISION didn't get reset at all. Centralize
it for the future.