You can now set the default version of Varnish with DEFAULT_VERSIONS to
build Varnish and its modules against your desired Varnish release
train.
The default version of Varnish throughout the ports tree will remain as
www/varnish4 until at least 2017Q1 when it will be changed in HEAD to be
www/varnish5. This should allow plenty of time for migration and for
stabilization of the changes in Varnish 5.x.
Submitted by: vanilla
With this change, math/R, math/libRmath, and all cran ports can share one
list of sites.
Reviewed by: mat
Approved by: swills (mentor)
Differential Revision: https://reviews.freebsd.org/D8328
Mk/Uses/linux.mk changes:
- Add support for architecture neutral (noarch) distfiles.
- Add support for 64-bit only ports: set IGNORE on i386 and don't install
32-bit compat libraries on amd64.
Submitted by: Piotr Kubaj <pkubaj@anongoth.pl>
Differential Revision: https://reviews.freebsd.org/D7886
A lot of KDE Ports share MASTERSITES, LICENSE and so one, as they are
released as a bundle upstream, however, there was not really a clean
way to share this information.
Using these new categories, we can simplify the Makefiles for the diverse
KDE ports.
At the moment we support the virtual category
* kde-kde4
In the future, this will be extended to
* kde-frameworks
* kde-plasma
* kde-applications
PR: 213406
Differential Revision: https://reviews.freebsd.org/D7645
Exp-run by : antoine
Reviewed by: mat, rakuco
Approved by: portmgr (mat), rakuco (mentor)
Some cmake projects use LIB_DESTINATION/pkgconfig to install the pc-files.
For example:
* deskutils/libstreamanalyzer
* sysutils/polkit-qt{,5}
* x11-toolkits/attica
By adding this, we can convert these ports to use pathfix instead of an
uncessessary patch-foo or confusing sed call.
Reviewed by: mat
Approved by: portmgr (mat), mat (mentor)
Differential Revision: https://reviews.freebsd.org/D8141
SeaMonkey now uses FFmpeg directly rather than via GStreamer for H.264
and MP3 playback as part of HTML5. Note, FFmpeg 3.x is unsupported[1].
Changes: http://www.seamonkey-project.org/news#2016-03-14
PR: 210931
Submitted by: net@arrishq.net (based on)
Security: 2c2d1c39-1396-459a-91f5-ca03ee7c64c6
MFH: 2016Q3
[1] SeaMonkey 2.40 is based on Firefox 43 codebase but Firefox 45
is the earliest to have the fix. Backporting maybe tricky:
https://bugzilla.mozilla.org/show_bug.cgi?id=1232268
USES=localbase:ldflags can be used to set LDFLAGS. Normally LDFLAGS
appears too early on the command line causing some ports to link with
their own libraries in LOCALBASE (if installed) instead of WRKSRC.
Also make use of _USES_POST so -L${LOCALBASE}/lib is added as late as
possible after anything a port Makefile might set. Use _USES_POST
instead of .include in libedit.mk and libarchive.mk so things like
'USES=libedit localbase:ldflags' work correctly.
Fix some issues with LIBS in some ports.
Switch ports that don't support LIBS to localbase:ldflags.
PR: 212987
Exp-run by: antoine
Approved by: portmgr (antoine)
hide actual commands executed and only show short summary line (like
"CC foo.c"). CMake and ninja enable this by default, some autotools
using ports do as well. This is unacceptable because we need complete
build logs at any time, so we now switch to verbose build logs
unconditionally. Note that this change deliberately affects ALL
builds and not only package builds on cluster, because we need to
be sure that user experiencing failure can always provide informative
build log regardless of settings and without rerunning the build.
Change summary:
- Always do verbose builds for cmake, ninja and GNU configure (the
latter includes check if --disable-silent-rules is actually supported
by the configure script; there are isolated cases when it's not true)
- Remove CMAKE_VERBOSE, NINJA_VERBOSE and
CONFIGURE_ARGS=--disable-silent-rules from all ports which set them
for this is no longer needed
- Revert hacks for --disable-silent-rules support priorly committed
to biology/ncbi-blast+ and net-p2p/mldonkey - no longer needed as well
Submitted by: amdmi3
Reviewed by: mat
Exp-run by: antoine
Approved by: portmgr (mat, antoine)
Differential Revision: D7534
There are three cases here:
1) USES=ncurses or USES=ncurses:base and devel/ncurses is not present:
use base, no need to add rpath as there is only one libncurses.so
present, in /usr/lib
2) USES=ncurses and devel/ncurses is present or USES=ncurses:port: use
ports, and add rpath to LOCALBASE/lib so that the right one is picked
3) USES=ncurses:base and devel/ncurses is present fail (it would warrant
using -rpath /usr/lib, but it error's out during the sanity stage)
PR: 211592
Reported by: koobs (and many others)
Reviewed by: bapt
Sponsored by: Absolight
Differential Revision: https://reviews.freebsd.org/D7459
Bump PORTREVISION to account for slightly different behavior in other
gecko@ ports and to get a discrete regression window.
Changes: https://www.mozilla.org/firefox/49.0/releasenotes/
PR: 211792
Submitted by: Jochen Neumeister <joneum@bsdproject.de> (based on)
Security: 2c57c47e-8bb3-4694-83c8-9fc3abad3964
MFH: 2016Q3
*_DEPENDS. Helper variables derived from the loop variable aren't
expanded causing *_DEPENDS to be incorrect.
- Bump all ports with more than one value in USE_LINUX.
PR: 211645
Reported by: jkim
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)
R warns if it detects .o or .so objects in the source directory, when
running tests. Remove the offending files before running the test.
Take maintainership [1]
PR: 212134
Approved by: wen [1]
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
Plasma5 ports
At the moment KDE ports use bsd.kde4.mk to handle their dependencies. When
working on the ports for KDE Frameworks and Plasma5 it seemed to be more
reasonable to create a new kde.mk instead of adding an bsd.kde5.mk.
The kde.mk in this review is a stripped down version of the one we are using in
the KDE Test repositories plasma5 branch [1] to only contain the parts relevant
to the current KDE4 ports in the portstree [2].
Changes to the KDE Ports needed by this:
Replace USE_KDE4 by USE_KDE [3]
Add USES=kde:4 [4]
[1] http://src.mouf.net/area51/view/branches/plasma5/KDE/Mk/Uses/kde.mk
[2] The version in the plasma5 branch also handles frameworks/plasma5 and
handles MASTER_SITES via a KDE_DIST variable similar to bsd.qt.mk for Qt
Ports -- I chose to leave this out for now, as the diff is already large
enough.
[3] I chose USE_KDE instead of USE_KDE4, USE_KDE5, USE_KDEX as the version we
want is already specified as argument to kde:<arg>
[4] For KDE Frameworks and Plasma5 ports this would be kde:5
PR: 210667
Approved by: portmgr, mat (mentor), rakuco (mentor)
Reviewed by: mat, rakuco
Differential Revision: https://reviews.freebsd.org/D6961
The "8" refers to FreeBSD 8.x which is no longer supported by the
ports tree. It's never been used (to my knowledge) so just remove the
option altogether.
Due to the change in r419666 USE_GCC is not conditionally set, however it
was bringing in the dependencies for fortran (silently). Explicitly bring
in the dependencies for fortran.
Also, add a target to strip the compiled shared library.
PR: 211891
Reviewed by: mat
Approved by: wen
The upcoming KDE Frameworks ports need grantlee5
* Add devel/grantlee5 and move installed headers into a subdirectory include/grantlee5
* Move header files from devel/grantlee into a subdirectory
include/grantlee4
to make sure ports do not pick up the wrong headers
* Add Uses/grantlee.mk to handle the PLIST_SUB and LIB_DEEPENDS needed
by ports using grantlee (before we set the PLIST_SUB manual in very
of the depending ports, which now should not be needed anymore).
* The ports depending on devel/grantlee have been modified from
LIB_DEPENDS=libgrantlee_gui.so:devel/grantlee
to
USES=grantlee:4
as this does not affect the package no version bumped was made.
Reviewed by: mat, rakuco
Approved by: rakuco (mentor)
Differential Revision: https://reviews.freebsd.org/D7434
file, so the order remains the same.
Every PHP (or Zend) extension now installs its own .ini file in
/usr/local/etc/php. A PHP extension will be automatically activated
when installed. The order into which extensions are loaded is
automatically guessed. In some very rare cases, the guess will be
wrong, and PHP_MOD_PRIO will need to be set. Refer to the USES=php
section of the Porter's Handbook for more information.
Convert ports touching etc/php/extensions.ini manually, or telling the
OP to do it.
And finally, bump PORTREVISION for all php extensions.
PR: 210697
Submitted by: mat
Sponsored by: Absolight
Differential Revision: https://reviews.freebsd.org/D7022
The variable defined in it are now always available after including
bsd.port.pre.mk.
PR: 210666
Submitted by: mat
Exp-run by: antoine
Sponsored by: Absolight
Differential Revision: https://reviews.freebsd.org/D6933
- If a port links to libtk then it will always also link to libtcl. Include
libtcl in the LIB_DEPENDS when linking to libtk.
- Fix indentation of '.if' statements
PR: 211261
Approved by: gahr
MFH: 2016Q3
print/texinfo which requires gmake. To break this circular dependency
gmake-lite was introduced. This can be removed now as well.
PR: 210623
Reviewed by: bapt
Exp-run by: antoine
Approved by: portmgr (antoine)
postgresql-9.0.x was declared EoL in September 2015.
Summary:
Remove 9.0 from the list of postgresql versions available in ports
Disconnect postgresql90 ports from the build
Remove postgresql90-pgtcl port
Remove postgresql90-client port
Move the master postgreslXY-plperl makefile to postgresql95-plperl/Makefile.
Adjust include lines in other postgresqlXY-plperl ports
Delete postgresql90-plperl
Move the master postgreslXY-plpython/{Makefile,pkg-descr} to
postgresl95-plpython/{Makefile,pkg-descr}
Adjust all other postgresqlXY-plpython/Makefile to include the new master
Remove postgresql90-server
Reviewers: jgh, girgen, #portmgr, O5 Ports Framework, bapt, crees
Reviewed By: #portmgr, O5 Ports Framework, bapt, crees
Subscribers: mat
Differential Revision: https://reviews.freebsd.org/D6898
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
PYTHON_ABIVER/PYTHON_INCLUDEDIR, when they use default options for
lang/python3x, by providing a reasonable default value to PYTHON_ABIVER
With hat: portmgr
the default when WANT_PGSQL is not defined). Compare to
WANT_PGSQL=client which only adds a RUN_DEPENDS on
postgresqlXY-client. 'client' can be part of a list of different
components, but 'lib' is ignored if any other terms are specified,
which seems an arbitrary and incorrect restriction.
WANT_PGSQL=lib allows expressing that the port links against
libpq.so.X rather than just needing one of the client programs like
psql(1) at runtime. However, other than that there is little
practical difference between 'lib' and 'client' on the resulting pkg.
Approved by: crees (pgsql@)
Sponsored by: https://reviews.freebsd.org/D6893
[1] Add "compiles" argument to cran to allow R-cran ports need to compile
code to bring in the correct compiler dependencies. Also, ensure
consistency between the compiler selected by the R port and the R-cran ports.
[2] Migrate R-cran ports that manually specify the compiler to
USES=cran,compiles.
PR: 210343
Approved by: wen (1), portmgr (2, blanket)
Turns out that the conversion to USES was broken, and did not take the
DEFAULT_VERSIONS=bdb=foo into account.
PR: 210149
Submitted by: mat
Exp-run by: antoine
Sponsored by: The FreeBSD Foundation, Absolight
Fix the few users of both the MySQL client and server.
PR: 209762
Submitted by: mat
Exp-run by: antoine
Sponsored by: Absolight
Differential Revision: https://reviews.freebsd.org/D6575
README.pod is no longer manified into a README.3, as the README.pod is
installed and can be read with perldoc, remove the README.3 files that
may be generated.
With hat: perl@
Sponsored by: Absolight
The lang/gcc-aux port has recently been removed, so the previously legal
"49" argument is no longer so. Adjust ada.mk accordingly by removing
reference to option 49 and lang/gcc-aux.
Changes submitted by gahr@:
Enable a new TCL option, adding a pkgIndex.tcl file.
Modernize Makefile. [1]
Changes by mandree@:
Fix installation of TCL API docs if TCL option is enabled.
Update to new upstream release 6.2.23.
Install the upgrade61.sh script if SQL option is enabled, with
additional fixes distributed as a patch to avoid licensing concerns.
Add an UPDATING entry.
Add changes in Mk/Uses/bdb.mk.
db5 parts of PR 208740 to be committed in a separate transaction later.
PR: 208740
Submitted by: gahr@
iconv(3) is used. Adding it only when LOCALBASE/include/iconv.h exists is
not enough because this is tested before dependencies are installed and
they may pull in converters/libiconv.
PR: 209302
Exp-run by: antoine
Approved by: portmgr (antoine)
GCC 6.1 was released this week. The Ada Framework in FreeBSD ports has
been based on GCC 5.3 GNAT although GCC 6.x has been supported for awhile
via the ADA_DEFAULT option in make.conf.
Now that GCC 6 has been officially released, switch to it by default.
People can maintain the old foundation by putting "ADA_DEFAULT=5" in
/etc/make.conf.
Libraries built by one GNAT are unusable by another, so almost every Ada
port has been bumped as a result. Noticable exceptions are dns/ironsides
which fails to build on gcc6 (thus USES=ada:5 is set) and cad/ghdl which
needs additional testing as it may require gcc5 on FreeBSD (DragonFly
uses the LLVM backend only).
* Check for valid args to USES=gem
* Make autoplist default, allowing it to be specified (which is a no-op), or
turned off
* Add sanity checks for USE_RUBYGEMS RUBYGEM_AUTOPLIST
Requested by: mat
Discussed with: mat
Also, USE_MYSQL can't happen after bsd.port.pre.mk because it is a USES.
PR: 208971
Submitted by: mat
Exp-run by: antoine
With hat: portmgr
Sponsored by: Absolight
Differential Revision: https://reviews.freebsd.org/D5951
Also:
- Deorbit WANT_BDB_VER, one can use USES=bdb:<ver> instead.
- USE_BDB can't happen after bsd.port.pre.mk because it is a USES.
PR: 208971
Submitted by: mat
Exp-run by: antoine
With hat: portmgr
Sponsored by: Absolight
Differential Revision: https://reviews.freebsd.org/D5951
with parsing comments.
Several users reported a problem building security/gnutls because
hogweed.pc (provided by security/nettle) contains the following line:
Requires: # nettle
Older versions of pkgconf try to look for a package named "#" and fail.
It is left as an exercise to the reader to reorder some of those targets
to fix some small problems, and to add a comment about why each target
is ran when it is ran.
Sponsored by: Absolight
Differential Revision: https://reviews.freebsd.org/D5717
Quoting https://tcl.tk/doc/tea:
"The Tcl Extension Architecture, or TEA, by John Ousterhout and others, is a
set of guidelines and techniques for the distribution, configuration,
compilation, and installation of Tcl extensions. TEA also provides a set of
utilities that operate accordingly. Many Tcl extensions leverage the TEA
utilities, which are designed to be easily customizable."
To facilitate the porting of TEA-based extensions, I have added the new "tea"
argument to USES=tcl. This argument prepares the autoconf environment by
setting GNU_CONFIGURE and sets some commonly used CONFIGURE_ARGS. Also, it
tries to figure out the correct extension name, sets TCL_PKG accordingly, and
adds it to PLIST_SUB.
I have modified a few ports to take advantage of this. More will come.
Right now, ironsides emits a STORAGE ERROR during building with
lang/gcc6-aux. It's unclear if the problem lies with compiler or with
ironsides. For now, limit building it with gcc5-aux (the default).
The USES=ada:5 setting wasn't supported, but it should have been. This
has also been fixed.
By default, it tries to take advantage of libarchive and falls back to p7zip.
Extracting only selected few DISTFILES is also supported via :partial argument.
Approved by: portmgr (bapt)
Differential Revision: https://reviews.freebsd.org/D4190
changed the license to the AGPL 3 in version 9.07 so print/ghostscript9-base
is stuck at 9.06 which is almost 4 years old now.
Fix the logic in Uses/ghostscript.mk so "agpl" is treated as a real version
on its own instead of as a variant of other versions.
Fix print/ghostscript9-agpl-base to install eps2write.
Update math/asymptote to 2.37 to support newer Ghostscript.
PR: 208159
Exp-run by: antoine
Approved by: portmgr (antoine)
Prepare www/firefox a bit for ESR45:
- [e10s] Make layers.progressive-paint;true work at least on 11.0-CURRENT
- Chase bundled versions for system dependencies
- Drop unused/broken system opus and speex support
Changes: https://www.mozilla.org/firefox/45.0/releasenotes/
Changes: https://www.mozilla.org/firefox/38.7.0/releasenotes/
Security: 2225c5b4-1e5a-44fc-9920-b3201c384a15
MFH: 2016Q1 (release candidate)
The PYTHON_NO_DEPENDS only really makes sense in meta ports, where passing
the PYTHON_VERSION doesn't make sense. The ports listed will pick up
USES+=python and the default version as needed.
This fixes depending on both lang/python2 and lang/python3 in a meta package.
R no longer accepts the --no-rebuild-vignettes argument, instead requiring
the --no-build-vignettes (only used if pdflatex is not installed).
PR: 207154
Approved by: wen (maintainer)
MFH: 2016Q1
To use the GNOME or MATE components activate it by adding gnome
or mate to USES. The usage of USE_GNOME/INSTALL_ICONS and for
example GLIB_SCHEMAS has stayed the same.
Like with USES, the use of USE_GNOME and so after bsd.port.pre.mk
is now forbidden. And adapt ports that where still doing that.
Exp-runs done by: antoine@
PR: 205432
Reviewed by: antoine@, mat@
Approved by: portmgr (antoine@)
Differential Revision: https://reviews.freebsd.org/D3653
This is particularly useful if a port only needs to build a subdirectory of
the source tree (in which case they can set BUILD_WRKSRC to
"${CONFIGURE_WRKSRC}/foo/bar").
The USES= fragments are not supposed to modify OPTIONS_* because they are
loaded after bsd.options.mk.
In the particular case of drupal, this resulted in SELECTED_OPTIONS and
DESELECTED_OPTIONS being incorrect. A second problem was that the "="
was used for assignment rather than "?=", meaning that any port with
USES=drupal got their options overwritten at some point (this included
the main www/drupal6 and www/drupal7 ports).
This commit adds OPTIONS_DEFINE=DOCS to almost every port that had set
USES=drupal to correct the mistake of setting options in Mk/Uses.
PR: 206060
sqlite and firebird handling code has been extracted from bsd.databases.mk
add an entry in bsd.sanity.mk to mark USE_SQLITE and USE_FIREBIRD as deprecated
"clang version 3.8.0 (trunk 256945) (based on LLVM 3.8.0svn)" was giving
"38 38" was a result. Now duplicates for fmake are trimmed and only the first
version found is used for bmake using its :tW.
With hat: portmgr
In collaboration with: dim
already had USES=pathfix, although it did nothing. For those ports, I
either removed it as they were handling the pkgconfig files differently
or I removed patches and substitutions that accomplished the same thing
as pathfix.
Differential Revision: https://reviews.freebsd.org/D850
Reviewed by: antoine, bapt, tijl
Approved by: portmgr (bapt)
Some ports may need to use Python for their testing suite but otherwise
do not need it at all (ie, not for build or run). This patch adds
support for the test argument to be used in the USES clause, such as
python:3.2+,test. This enables the relevant Python environment and
modifies TEST_DEPENDS as necessary.
For non-Python ports that use Python as their testing suite, add
python:<ver>,test as required to the USES clause.
PR: 205616
Submitted by: Brendan Molloy <brendan+freebsd bbqsrc net>
Reviewed by: mat, miwi, koobs, antoine
Approved by: koobs (python)
Differential Revision: https://reviews.freebsd.org/D4711
There are some inefficiencies in python.mk that significantly slow down
full tree scanning. The use of bmake to obtain the current version of
a specific python is responsible for the majority of the slow done.
This commit splits out the PYTHON_PORTVERSION definition (which is the
same as the lang/python* PORTVERSION) into separate files. With this
change, python.mk can simple include the makefile fragment instead of
spawning a new instance of make.
Different Revision: https://reviews.freebsd.org/D4660
Approved by: antoine (python), mva (python)
This is another shot at fixing the linkage problems that have plagued our
users particularly when upgrading from Qt 5.x to 5.(x+1). Quick recap: in
Qt5, qmake will by default pass QMAKE_LIBDIR to the linker before other
directories such as ${WRKSRC}/lib, which is where the port's libraries are
built. When a user is upgrading Qt, we can end up with the following linker
line:
c++ -o SomeBinary -lfoo1 -L/usr/local/lib -L${WRKSRC}/lib -lfoo2 -lfoo3
If libfoo2.so is being built by the port and an older version is currently
installed on the system, /usr/local/lib/libfoo2.so will be picked up instead
of the newly-built ${WRKSRC}/lib/libfoo2.so. At best things just work, at
worst SomeBinary needs some new symbol that is not present in the old
libfoo2.so and linking fails. Case in point: bug 198720.
The previous approach, adopted when fixing bug 194088, was to stop setting
QMAKE_{INC,LIB}DIR in the FreeBSD mkspecs and set the CPATH and LIBRARY_PATH
environment variables in Uses/qmake.mk. This way we just did not pass
-L/usr/local/lib to the linker at all and things mostly worked. However,
people using Qt to build their own software without the ports tree were out
of luck, as they would then need need to deal with passing
/usr/local/{include,lib} to the compiler/linker themselves (bug 195105). Not
only that, but if a dependency mentioned /usr/local/lib we would still have
problems anyway (in bug 198720, the GStreamer pkg-config files contain
-L/usr/local/lib, for example).
We now solve the issue by setting the QMAKE_LIBDIR_FLAGS variable in
.qmake.cache to ${WRKSRC}/lib instead. qmake appends the value of
QMAKE_LIBDIR to QMAKE_LIBDIR_FLAGS, so we are always sure -L${WRKSRC}/lib
will come before -L/usr/local/lib in the linker options. Moreover, qmake is
smart enough to automatically call sed(1) and remove references to
${WRKSRC}/lib from .prl and .pc files when installing them.
PR: 194088
PR: 195105
PR: 198720
MFH: 2015Q4
Add the required bits to Uses/pyqt.mk along with all the PyQt5 ports.
Thankfully this commit is mostly adding new ports, as the hard work was
already done in r403297 and r403662.
Huge kudos to Tobias Berner <tcberner@gmail.com> and, most importantly,
Guido Falsi (madpilot@) for their initial work on these ports (see D2910 in
Phabricator for an earlier version of the PyQt5 patch set).
PR: 204672
Bring in some long overdue updates, some of which are required for us to
later land the PyQt5 ports.
One big change with this update is that the PyQt4 ports now install their
.sip files into share/py-sip/PyQt4 instead of share/py-sip. This way we do
not end up with directories like share/py-sip/QtCore, which are especially
confusing once PyQt5 lands and starts installing files with the same names.
Other noteworthy items:
- PORTREVISION has been bumped on ports depending on devel/qscintilla2
because libqscintilla2.so's SOVERSION has changed.
- graphics/seexpr has been converted to USE_PYQT, as the file it used to
define a build-time dependency on x11-toolkits/py-qt4-gui has moved.
Once again, big thanks to Tobias Berner <tcberner@gmail.com> and Guido Falsi
(madpilot@) for their initial work on these ports as part of the effort to
land PyQt5 into the tree (see D2910 in Phabricator for an earlier version of
the PyQt5 patch set).
PR: 205143
In preparation for landing PyQt5 ports, generalize devel/py-qt4's
bsd.pyqt.mk and make it a proper file in Uses/.
Ports wishing to depend on PyQt4 ports can now do the following:
USES= pyqt:4
USE_PYQT= foo bar_build baz_run
Other changes include the renaming of the PYQT4_DIST variable to PYQT_DIST
and the introduction of the PYQT_SIPDIR plist substitution variable. The
rest of the contents of Uses/pyqt.mk are pretty much identical to what we
had in bsd.pyqt.mk with additional processing of USE_PYQT.
Even though this patch touches files in many different ports, the goal is
for it to be a no-op from an end-user perspective (so that the basic
infrastructure is landed before the other, riskier changes): no dependencies
have been changed, PyQt/SIP/QScintilla have not been upgraded and the plists
should remain exactly the same, since PYQT_SIPDIR currently contains the
same value that used to be hardcoded in the plists.
Huge thanks to Guido Falsi (madpilot@) for spearheading most of the work: he
took the initiative to work on PyQt5 and sent D2910 to Phabricator with the
original version of this patch. Tobias Berner (tcberner@gmail.com) later
applied it to kde@'s experimental area51 repositories and did some more work
on it.
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
- 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
These were FreeBSD specific aliases for libiconv(), libiconv_open() and
libiconv_close() that are now also provided by libc which complicates
writing configure tests that work correctly when both libc iconv and
libiconv are available.
Also, because the libiconv iconv.h header redefines iconv* to libiconv*
correct use of the header implies that the aliases aren't used.
The following ports needed fixes because there was something wrong with
the way they tried to detect or use iconv:
audio/deadbeef: Remove LIBICONV_PLUG from a source file. It's a
compile-time option and should not be set in source code.
comms/hidapi: Use standard AM_ICONV configure macro to look for iconv.
deskutils/fbreader: Let ports framework deal with LIBICONV_PLUG.
deskutils/ljclive: Override configure test for iconv.
deskutils/owncloudclient: Add USES=iconv and patch test for iconv.
devel/aegis: Bump PORTREVISION because it no longer uses libiconv.
devel/libexplain: Add USES=iconv and override test for iconv.
devel/sdl20: Override configure test for iconv.
emulators/vmw: Replace OSVERSION checks with ICONV_LIB checks and include
<iconv.h> instead of <sys/iconv.h>.
irc/scrollz: Override configure test for iconv.
japanese/chasen-base: Override configure test for iconv and patch
configure so it no longer adds -liconv to linker flags just because it
happens to be installed.
japanses/eb: Patch configure test for iconv.
japanses/eblook: Override configure test for iconv.
java/jikes: Override configure test for iconv.
multimedia/transcode: Bump PORTREVISION because only one plugin links with
libiconv now.
net/c3270: Override configure test for iconv.
net/samba4*: Bump PORTREVISION because it no longer uses libiconv. The
configure script will always add -liconv to the linker flags when it
happens to be installed which would be wrong but later on binaries are
linked with -Wl,--as-needed and the linker discards -liconv because it
finds iconv*() functions in libc now and no longer in libiconv.
net-mgmt/icinga-*: Remove dependency on iconv.
net-mgmt/netxms: Patch configure so it no longer adds -liconv to linker
flags just because it happens to be installed.
net/asterisk11: Patch configure so it no longer adds -liconv to linker
flags just because it happens to be installed.
net-p2p/transmission-*: Override configure test for iconv.
www/htmlcxx: Override configure test for iconv.
www/httrack: Override configure test for iconv.
www/xapian-omega: Override configure test for iconv.
x11/mrxvt(-devel): Add USES=iconv and override configure test for iconv.
x11/x3270: Override configure test for iconv.
x11-wm/jwm: Override configure test for iconv.
PR: 202838
Exp-run by: antoine
Approved by: portmgr (antoine)
This database contains compiled terminfo entries and is merged from
a large part which comes with ncurses themselves and compiled
.terminfo files installed by other ports (currently only rxvt-unicode
and jfbterm)
- Now the database is always kept up to date, regardless of port
installation order (both ncurses installed before .terminfo files
and the other way around work as expected)
- All affected ports now support clean deinstallation and do not
produce stage-qa errors
- Affected ports are simplified, as they now only need to define
USES=terminfo
- rxvt-unicode no longer pulls in ncurses: the dependency is not
really needed for anything beside updating it's own database
- The patch contains Q/A test to check whether a port needs, or
needs not USES=terminfo
Approved by: portmgr (mat, bapt)
Differential Revision: D3747
perl5's do-test: target should only be enabled when USE_PERL5=configure
or USE_PERL5=modbuild* are used, otherwise it'll end up being empty
and will prevent other tests from running.
Remove NO_PERL5_TEST as it isn't really needed after this fix.
Approved by: mat, sunpoet
Differential Revision: D3830
You can now `make test' on any port to run test sequence, no-op by default.
If a port defines TEST_TARGET, it'll run sub-make with specified target,
usually `check' or `test', useful if upstream supports that. The port may
instead define custom do-test target, as well as usual satellite targets:
{pre,do,post}-test, {pre,do,post}-test-OPT, {pre,do,post}-test-OPT-off
`make test' builds and stages port first, so test may use both WRKDIR and
STAGEDIR, and both BUILD and RUN depends are available for test target.
Additionally, TEST_DEPENDS is now properly supported and may be used to
define additional depends specifically for testing.
Framework may define default tests for specific cases. For instance,
perl5.mk and cran.mk already provide default test target on their own.
This commit also converts my ports which have tests to this new framework.
Approved by: portmgr (bapt)
Differential Revision: D3680
Some ports were already installing in the System domain, for these just remove the Makefile lines explicitly specifying the install domain.
The rest are installed in the Local domain, remove any overrides, update their pkg-plists and any explicit paths in the Makefiles and then bump port revision.
Approved by: bapt (mentor)
Differential Revision: https://reviews.freebsd.org/D2977
This package has been included into python standard library since python 2.2 or
2.0, but some of our ports used apis not available in stock python xml package.
Now all the issue are fixed and we can finally remove this port.
It is dead upstream and because of it's invasive nature it may break innocent
ports while installed (there were known issues for Eric and Docutils), so it was
removed in most distributions years ago. There is comprehensive summary on
reasons why PyXML was removed at Fedora Project [1]. The same reasons are also
applicable to our tree.
[1] https://fedoraproject.org/wiki/Features/RemovePyXML
According to upstream, this is the last planned Qt4 release.
A list of changes since 4.8.6 can be found here:
<http://download.qt.io/official_releases/qt/4.8/4.8.7/changes-4.8.7>
Porting notes and changes:
- Remove several patches that have been upstreamed.
- Make Uses/qmake.mk pass the contents of LIBS to the qmake environment. [1]
- Repurpose devel/qt4/files/extrapatch-src-corelib-global-qglobal.h now the
original patch is part of the release (curiously enough, the original
patch was never actually used, as the ?= assignment in r362837 after
r362770 was never possible).
This works around the way compiler support for C++11 features is detected
in Qt 4.8.7: while it originally only uses the compiler to determine if
something is supported or not, the initializer lists feature also depends
on the C++ standard library being used. It's a problem in FreeBSD 9.x,
where USES=compiler:c++0x or USES=compiler:c++11-lang means we will use
clang to build a port but use libstdc++ from base (GCC 4.2). The latter
obviously does not support initializer lists, and the build fails because
Qt tries to include headers that do not exist (<initializer_list>).
Since detecting libstdc++'s version is not trivial (we need to include a
non-lightweight header like cstdio and then check for __GLIBCXX__), we
just enable Q_COMPILER_INITIALIZER_LISTS support only when libc++ is used
(there should be no reason for someone to be using clang with GCC 4.8's
libstdc++, for example).
x11/kdelibs4's FindQt4.cmake had to include a backported change from the
upstream FindQt4.cmake in CMake itself to use a C++ compiler to detect
flags like Q_WS_X11, otherwise the inclusion of <ciso646> in qglobal.h
makes the build fail.
This patch contains changes by me, makc@ and alonso@.
PR: 202552 [1]
PR: 202808 [exp-run]
Submitted by: pawel@ [1]
First, this prevents ports which use strict -Werror settings from
build failures in third party headers (real life example is
devel/pructl which uses -Werror -Weverything and fails in libedit
header on actually harmless padding warning).
Second, this prevents ports which install headers from picking up
their own headers from LOCALBASE instead of using ones from WRKDIR,
which leads to any kind of problems when upgrading via ports.
PR: 203101
Approved by: bapt
Differential Revision: D3618
- Move Perl's man1 files along with its man3 files.
- Move where Perl installs its modules man1 pages.
- Convert the ports installing man1 pages.
- Make different Perl versions installable at the same time.
Though you should note that only the default version can be used to
install Perl modules, and the non default Perl versions cannot use the
modules installed via ports if they contain .so as they are installed
in a version specific directory.
Reviewed by: bapt (the Mk bits)
Exp-run by: antoine
Sponsored by: Absolight
Differential Revision: https://reviews.freebsd.org/D3542
Modify the PYTHON_REL variable assignment in python.mk so that it
can support PORTVERSION's that have non-integer suffixes such as
the current lang/python35 version (PORTVERSION currently 3.5.0.r3).
Currently, ports that use PYTHON_REL while DEFAULT_VERSIONS is set to
3.5, fail to build with the following make error:
make: "/usr/ports/Mk/Uses/python.mk" line 503:
warning: String comparison operator should be either == or !=
make: "/usr/ports/Mk/Uses/python.mk" line 503:
Malformed conditional (${PYTHON_REL} >= 3200 && defined(_PYTHON_FEATURE_PY3KPLIST))
This is caused by a non-integer value ("r3") in PYTHON_REL.
While I'm here, add a comment block to be clear on what we
(currently) want to achieve.
PR: 203093
Reported by: Andrew Berg (aberg010 my.hennepintech.edu)
Reviewed by: antoine
MFH: 2015Q3
Differential Revision: https://reviews.freebsd.org/D3662
They controls whether fc-cache and/or mkfontdir run in
post-{,de}install targets.
japanese/font-* use manually generates fonts.dir entries to utilize
special modifiers which are useful for CJK fonts. Because mkfontdir
does not understand and silently remove them from fonts.dir,
options like fonts:fc or fonts:none is required.
Approved by: portmgr (bapt)
rebar3 has the uncontrollable urge to write some stuff into the user's
HOME, even if just an empty directory. Redirect HOME to WRKDIR so that it
at least shoots a blank and does not bump into build_fs_violation checks.
This fixes devel/erlang-bbmustache and www/erlang-hackney.
FreeBSD welcomes Python 3.5 (early, pre-release) to the Ports tree,
with 3.5.0 release candidate 3!
Please test this port and Python 3.5 profusely. If you notice issues,
please report them upstream at: https://bugs.python.org to ensure a
robust upcoming 3.5.0 release.
Whats New in Python 3.5:
* https://docs.python.org/3.5/whatsnew/3.5.html
Python 3.5 Release Schedule (PEP 478)
* http://www.python.org/dev/peps/pep-0478
Note: This port retires an old fcntlmodule.c patch, possibly
temporarily. User impact *should* be zero. For more information
see: https://bugs.python.org/issue25026
Requested by: Webair Inc :)
The way we deal with iconv in base and ports across different FreeBSD
releases is complicated: 9.x does not have iconv.h in base, 10.1 has it with
a different prototype for iconv(3) and later versions have the right
iconv(3) prototype. And, in some cases (USES=iconv:{translit,wchar_t}), we
must always use the libiconv port.
This is why there are so many checks in Uses/iconv.mk: we need to know the
situation we currently have in order to decide whether to pull iconv from
converters/libiconv, whether to just use its header (and pull the library
from base) or whether to use everything from base.
r384038 adjusted several CMake-based ports, but did so in a way that was not
very scalable and required a few intrusive patches to some ports. Most ports
that have both USES=cmake and USES=iconv use variations of FindIconv.cmake
that behave similarly. This change passes the header and library values we
really want to use to CMake using the most common variable names, bypassing
the calls to find_path() and find_library() that would sometimes end up
finding the wrong file. The few ports that use different variable names have
had their Makefiles adjusted (we manually pass the values we want via
CMAKE_ARGS).
Other changes:
- chinese/fcitx: Explicitly set LIBICONV_LIBC_HAS_ICONV_OPEN=OFF as we
always want the version from ports because of USES=iconv:wchar_t.
- editors/calligra: Explicitly use iconv:translit because Kexi needs it.
- irc/weechat and irc/weechat-devel: The FindIconv.cmake patches could not
be entirely removed because the check_library_exists() calls are wrong.
Sent upstream: https://github.com/weechat/weechat/pull/513
- textproc/ctpp2: Use iconv:translit when the TRANSLITERATE option is used.
PORTREVISION has been bumped in editors/calligra and textproc/ctpp2 because
their dependency list has changed in 10.2 and later as the ports version is
always used now.
PR: 202798
Reviewed by: antoine, tijl
Approved by: portmgr (antoine)
* print/ghostscript{7,8,9,9-agpl}-base
Installs Ghostscript binary, libgs, and related files.
These ports do not depend on X11 libraries (i.e. x11* devices
are not available). USES=ghostscript will set dependency on
one of them depending on GHOSTSCRIPT_DEFAULT.
The default device is set to "display" or "bbox".
* print/ghostscript{7,8,9,9-agpl}-x11
Installs a shared library which provides X11 support to
the installed Ghostscript binaries. x11* devices will be
enabled when the library is available.
This depends on *-base (RUN_DEPENDS). USES=ghostscript:x11
will set dependency on one of them.
- Fix integer overflow reported as CVE-2015-3228.
- Update Uses/ghostscript.mk:
* Add x11 keyword. nox11 keyword is now obsolete.
* Use packagename in *_DEPENDS line to prevent relationship between
-base and -x11 packages from being broken.
- Fix x11/nox11 keyword and bump PORTREVISION in ports using
USES=ghostscript to update dependency of pre-compiled packages.
When USE'ing localbase.mk, make sure CMake is also aware that it is supposed
to give preference to ${LOCALBASE} when looking for files and libraries.
This is going to be a requirement once CMake is updated to 3.3.x, as
starting with this version it will by default use the PATH environment
variable (stripping the "/bin" or "/sbin" parts of each entry) to determine
where to find files and libraries. Since in most cases /usr will come before
/usr/local, it will find base's libarchive and fail at the configuration
stage on older FreeBSD releases.
Approved by: portmgr (antoine)
Differential Revision: https://reviews.freebsd.org/D3361
Instead of defining a variable that is almost always based on CONFIGURE_ENV,
just use CONFIGURE_ENV directly.
This also matches the behavior of other ports that do not use autotools (so
most ports can just worry about CONFIGURE_ENV). Additionally, the fact that
we do not use ?= means we do not have problems if another file in Uses/
needs to set CONFIGURE_ENV (with CMAKE_ENV, the order of the arguments to
USES would matter).
Ports which set CMAKE_ENV have been adjusted accordingly. In most cases,
CMAKE_ENV was just replaced with CONFIGURE_ENV, the exceptions being:
* databases/sqliteman: CMAKE_ENV line removed; setting QMAKESPEC there has
no effect on the build system.
* devel/freeocl: CMAKE_ENV line removed; FREEOCL_CXX_COMPILER is already
retrieved from the CMAKE_CXX_COMPILER variable in the build
system.
* graphics/openimageio: CMAKE_ENV line removed; setting Qt variables there
has no effect on the build system.
Reviewed by: makc
Differential Revision: https://reviews.freebsd.org/D3403
The targets now have priority assigned to them, and, when the dependency
ordering magic is done at the end of bsd.port.mk, they are sorted
according to their priority.
This allows USES to add targets easily and have them run whenever they
want without touching bsd.port.mk.
To add a target that runs just before post-configure run, do:
_USES_configure+= 695:my-post-configure
my-post-configure:
do something
To fine tune when the target is ran, look at the values in the *_SEQ
variables at the end of bsd.port.mk, and the other USES.
Allow ports Makefiles to override the priority of targets with the
TARGET_ORDER_OVERRIDE variable. For example, to get post-install
running earlier, (its default is 700) do:
TARGET_ORDER_OVERRIDE= 650:post-install
While there, add options target helpers for the do-* targets when they
exist.
Reviewed by: antoine, bapt
Exp-run by: antoine
Sponsored by: Absolight
Differential Revision: https://reviews.freebsd.org/D3099
symlink itself, and this would cause problem for portsnap builder
(addressed differently by including the header file).
Make the test more consistent with port version of ncurses by checking
the shared library instead. (the location is the same on all supported
versions of FreeBSD).
Approved by: portmgr (bapt)
Differential Revision: https://reviews.freebsd.org/D3326
<file> on ELF systems, but this doesn't really do what -export-symbols is
meant to do. On GNU ELF systems it converts <file> to a simple version
script first and then uses -version-script instead of -retain-symbols-file.
Let USES=libtool patch libtool scripts to do this on all systems with GNU
ld(1).
Bump PORTREVISION on all ports where the build log contains -export-symbols.
audio/calf: This port builds a module that now exports only one function,
but it also builds a number of executables that link to this module and
expect to see other functions. Because it's already a bit dodgy to link to
a module (libtool warns about this) let the module continue to export only
one function and instead build an ordinary library from the same source that
the executables can link to. Fix a number of other issues in the same
Makefile.am and clean up the port Makefile.
japanese/scim-honoka: Tries to hide all symbols that start with an
underscore, but because this library is written in C++ all symbols start
with _Z so it ends up hiding everything. Just don't hide anything at all
like the textproc/scim configure script does.
multimedia/schroedinger: Apply an upstream patch.
textproc/scim-input-pad: Same as japanese/scim-honoka.
PR: 201922
Approved by: portmgr (antoine)
Exp-run by: antoine