Ports using USE_PYTHON=distutils are now flavored. They will
automatically get flavors (py27, py34, py35, py36) depending on what
versions they support.
There is also a USE_PYTHON=flavors for ports that do not use distutils
but need FLAVORS to be set. A USE_PYTHON=noflavors can be set if
using distutils but flavors are not wanted.
A new USE_PYTHON=optsuffix that will add PYTHON_PKGNAMESUFFIX has been
added to cope with Python ports that did not have the Python
PKGNAMEPREFIX but are flavored.
USES=python now also exports a PY_FLAVOR variable that contains the
current python flavor. It can be used in dependency lines when the
port itself is not python flavored. For example, deskutils/calibre.
By default, all the flavors are generated. To only generate flavors
for the versions in PYTHON2_DEFAULT and PYTHON3_DEFAULT, define
BUILD_DEFAULT_PYTHON_FLAVORS in your make.conf.
In all the ports with Python dependencies, the *_DEPENDS entries MUST
end with the flavor so that the framework knows which to build/use.
This is done by appending '@${PY_FLAVOR}' after the origin (or
@${FLAVOR} if in a Python module with Python flavors, as the content
will be the same). For example:
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}six>0:devel/py-six@${PY_FLAVOR}
PR: 223071
Reviewed by: portmgr, python
Sponsored by: Absolight
Differential Revision: https://reviews.freebsd.org/D12464
To help with flavored ports, helpers are available. In these, replace <*>
with the flavor name.
*_PKGNAMEPREFIX *_PKGNAMESUFFIX *_PLIST *_DESCR will overwrite the variable.
*_CONFLICTS *_CONFLICTS_BUILD *_CONFLICTS_INSTALL *_PKG_DEPENDS
*_EXTRACT_DEPENDS *_PATCH_DEPENDS *_FETCH_DEPENDS *_BUILD_DEPENDS
*_LIB_DEPENDS *_RUN_DEPENDS *_TEST_DEPENDS will append to the variable.
Reviewed by: portmgr
Sponsored by: Absolight
Differential Revision: https://reviews.freebsd.org/D12483
- Enable FLAVORS.
- Make make describe flavors aware.
- Add a qa check for unique package names amongst flavors.
- Make MOVEDlint understand flavors.
- Add a bit of sanity check to make sure FLAVORS stay lowercase.
- Various fixes.
Reviewed by: portmgr
Sponsored by: Absolight
Differential Revision: https://reviews.freebsd.org/D12577
old FreeBSD make (pmake) and there are no more users of it left in
the ports tree.
Differential Revision: https://reviews.freebsd.org/D12634
Approved by: portmgr (bapt)
When defined it will create symlinks of some given binaries in a directory which
will be prepended to the PATH.
The syntax is the following:
BINARY_ALIAS= target1=source1 target2=source2
For example to have a "swig" binary in the path which will be pointing at
swig3.0 and a "sed" pointing at GNU sed: gsed
BINARY_ALIAS= swig=swig3.0 sed=gsed
Reviewed by: swills, adamw, mat
Approved by: swills (portmgr)
Differential Revision: https://reviews.freebsd.org/D12603
Using ninja instead of make (1) can lead to significant speed ups while building.
Therefore switch from having the ninja generator opt-in to having it opt-out.
Previously cmake-ports that wanted to use ninja could set
CMAKE_NINJA=yes
now, ports that do not work with ninja can set
cmake:<existing args>,noninja
Note, that needing this should be an exception and most often points to a broken
cmake of the port.
The ports using cmake were modified
* removed USES=gmake, if ninja is used
* removed MAKE_ARGS, if ninja is used
* added the cmake-argument noninja if necessary
PR: 219629
PR: 213331
Exp-run by: antoine
Reviewed by: rakuco
Differential Revision: https://reviews.freebsd.org/D10748
This uses will handling building software that uses the meson
build system. Expand the option framework to handle MESON options.
Approved by: portmgr (swills@)
Differential Revision: https://reviews.freebsd.org/D104091
* Update Qt5 to 5.7.1
* Move Qt4 binaries to lib/qt4/bin
* Move Qt5 libraries to lib/qt5/lib
By moving the libraries we should finally be able to get rid of the inplace
upgrade bug (see ports bugs 194088, 195105 and 198720): when Qt5's libraries
were lying in /usr/local/lib, which would often get added by pkgconfig to the
linker paths via dependencies, the already installed libraries were linked
against, instead of the ones that were being built. This forced us to make
sure, that -L${WRKSRC}/lib was always coming before -L/usr/local/lib in the
linker flags. With this change this should no longer be the case.
* Rename some ports to match the rest (foo-qtX -> qtX-foo)
* Depend on new port misc/qtchooser [see UPDATING & CHANGES]
There are several new Qt5 ports which all have been created by Marie Loise Nolden
<nolden@kde.org>. Thanks again.
PR: 216797
Exp-Run by: antoine
Reviewed by: rakuco, mat, groot_kde.org
Approved by: rakuco (mentor)
Differential Revision: https://reviews.freebsd.org/D9213
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
have cleanly defined licensing terms. Note that without clean
license allowing you to use and distribute the code it would be be
illegal to do so in many jurisdictions, so for ports with NONE
license no distfiles or packages are distributed.
While here, fix trailing whitespace in CHANGES.
Approved by: portmgr (bapt)
Differential Revision: D7816
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
This adds the possibility to use regular expressions for the makeplist
stage of the PLIST_SUB life.
From time to time, the values are too generic, and they get in the way of other
stuff.
This adds the possibility to have a `VAR_regex=regex` that will be used instead
of the `VAR=string` to search for possible replacements.
For example, in lang/perl5*, there is PERL_ARCH=mach, which will get
replaced in paths if a file is called, say "machine", will end up being
"%%PERL_ARCH%%ine". Adding PERL_ARCH_regex="\bmach\b" will ensure only
full words are replaced, so machine will stay machine, but "lib/mach/foo
"will still be replaced by "lib/%%PERL_ARCH%%/foo".
Reviewed by: bdrewery
Sponsored by: Absolight
Differential Revision: https://reviews.freebsd.org/D7335
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
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
dependencies that are not part of the port list of dependencies. It help
finds what is called proxy dependencies.
A is needed by B, and B is needed by C. If C also needs A, then it needs to
be registered, and this check will tell you to do so.
Right now, it is only reporting the problems, but if you add
PROXYDEPS_FATAL=yes to your environment, it will give an error and will force
you to fix the dependencies.
PR: 195203
Submitted by: yuri rawbw com (earlier version)
Sponsored by: Absolight
Differential Revision: https://reviews.freebsd.org/D6531
This is intended to support development and prototyping for ports
reproducible build efforts which require some concept of a "last
updated" time. It is being committed now so that timestamp entries
will be populated "for free" as port distfiles updates happen.
Submitted by: bapt (earlier version)
Reviewed by: bapt, bdrewery
Approved by: portmgr (bdrewery)
Differential Revision: https://reviews.freebsd.org/D6031
If CONFIGURE_OUTSOURCE is defined HAS_CONFIGURE invokes configure script
and builds the port out of source tree, under ${WRKDIR}/.build by default.
The feature is inspired by USES=cmake:outsource and USES=qmake:outsource.
PR: 208294
Exp-run by: antoine
Approved by: portmgr (mat)
Differential Revision: https://reviews.freebsd.org/D4157
GH_TUPLE allows one to put all the GH_{ACCOUNT,PROJECT,TAGNAME} into one
variable, in the form of account:project:tagname[:group]. It is helpful
when there are many submodules.
PR: 204772
With hat: portmgr
Sponsored by: Absolight
Differential Revision: https://reviews.freebsd.org/D4514
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
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
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