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
This also fixes an issue that user-defined OPTIONS_UNSET was overridden.
- Loosen up depdendency a bit by using a binary instead of a package name.
PR: 201864
- Add "agpl" to GHOSTSCRIPT_DEFAULT. GHOSTSCRIPT_DEFAULT="9 agpl" is valid
for print/ghostscript9-agpl.
- Fix GHOSTSCRIPT_DEFAULT validation when using fmake.
localbase: mostly a non user one which enforce the compiler related flags to
lookup in localbase first to find libraries, designed to be used in
other USES
libarchive: to be used each time one is using libarchive from ports. It is
necessary to simplify work for porters dealing with different
versions of libarchive from base and different ways libarchive can
be linked in base (with libmd and/or libcrypto) only dealing with
one libarchive over all the ports tree is easier
libedit: enforce using libedit from ports for the same reasons as for
libarchive
Same things will happen for other base libraries which collides with ports
version later.
Note to self, if patch is lying around for a bit:
1) don't leave experimental code in there.
2) don't assume you didn't muck around with it and perhaps forgot you did so?
Pointyhat to: kwm@
ELIXIR_LIB_ROOT is the default Elixir library path in LOCALBASE.
If MIX_REWRITE is defined, all optional dependencies will be stripped
out (test, doc, etc.), while all required libs will be converted to
actual code paths in ELIXIR_LIB_ROOT.
For example, it will turn the following dependency definitions:
defp deps do
[
{ :inflex, "~> 1.0" },
{ :estree, "~> 2.0" },
{ :shouldi, only: :test },
{ :earmark, "~> 0.1", only: :dev },
{ :ex_doc, "~> 0.7", only: :dev }
]
end
into these:
defp deps do
[
{ :inflex, path: "/usr/local/lib/elixir/lib/inflex", compile: false },
{ :estree, path: "/usr/local/lib/elixir/lib/estree", compile: false },
]
end
Setting MIX_REWRITE allows escriptize to bundle all dependencies in the
script, else it will not be able to pull them from the usual code path.
It already works for all Elixir ports and should make patches to mix.exs
unnecessary, but for now the default is off.
Sneak in a whitespace fix while I'm here.
The transition from gcc-aux to gcc5-aux in the Ada framework has been
blocked by the inability to build gtkada3 and, once resolved, GPS (due
to tight locking with compiler).
A few days ago, Adacore made their annual release of their main libre
products, include GPS. However, some products were tightly coupled with
the recent compilers, so in order to upgrade, the compiler had to be
switched and dependencies require many ports to be upgraded at once:
* lang/asis
* devel/gnatcoll
* devel/gps
* x11-toolkits/gtkada3
* www/aws
* www/aws-demos
While the version upgrades were modest in most cases (gps, gtkada3), the
amount of work put into each port was significant. There are too many
improvements to mention here. A few include the removal of dynamic
package lists and incorporating gnatcoll into gps to avoid building it
twice. A private "exp-run" was done all on all 50+ Ada ports to ensure
they still build.
Also, a new argument was added to Uses/ada.mk, "run", that pulls in the
GNAT compiler as a run depends. This was necessary for GPS that will
not launch correctly without the compiler in place.
for CMake based ports. By default CMake picks up the highest
available version of Python package, therefore ports which use CMake
may fail to build or link to different Python library than one could
expect (e.g. bugs 199685, 200518).
In essence this commit reverts r366996.
PR: 168159
Exp-run by: antoine
Approved by: mva
Make output messaging clearer about what uniquefiles is doing
especially with regard to moving and linking (default links).
- Add "action" prefix (Move, Link) to operations performed
- Use the form "Creating unique files" for the stage summary
- Be clear that we're processing files that *need* prefixes or
suffixes, and not moving files that *have* prefixes or suffixes"
Differential Revision: https://reviews.freebsd.org/D2706
Reviewed by: mat
Approved by: mat (portmgr)
conversion in r364450. This feature is still very useful for meta packages
to be able to easily depend on py-* packages using the correct PY_* vars.
For the sake of POLA retain the same name so previously working ports just work.
Add an XFCE SITE_SUBDIR abbreviation and use it forf or the xfce ports,
which removes the need to set MASTER_SITE_SUBDIR in any of them.
This fixes ports that have USES=xfce but do not use the XFCE MASTER_SITE,
namely sysutils/xfce4-bsdcpufreq-plugin.
With hat: portmgr