similar to MASTER_SITES/PATCH_SITES.
Some helpful variables are provided: WRKSRC_<group> for putting things in the
right place in post-extract, and DISTNAME_<group>/DISTFILE_<group> for use with
EXTRACT_ONLY.
PR: 200483
Differential Revision: https://reviews.freebsd.org/D2608
Submitted by: mat
With hat: portmgr
Exp run by: antoine
Sponsored by: Absolight
Simplify gnustep ports
Hook into the regular ports framework:
- LIB_DEPENDS for library dependencies
- Use regular USE_LDCONFIG
Reuse USES=objc (automatic)
USE_GNUSTEP is now a macro to set the dependencies and build feature needed.
Accepted arguments: back base build gui
Merge deskutils/preferencepanes into deskutils/systempreferences
The new GITHUB MASTER_SITE from r381618 now supports not setting GH_COMMIT and
only having GH_TAGNAME default to DISTVERSION.
All of these ports as-is.
With hat: portmgr
Using this new scheme allows only setting the _tag_ or _commit hash_ in
GH_TAGNAME and not having to know the hash for a tag. This scheme will
download a tarball that has a different checksum than before due to a changed
directory name for extraction.
The following MASTER_SITES are provided to retain the old checksum and
directory structure (that require GH_COMMIT):
GH -> GHL
GITHUB -> GITHUB_LEGACY
Differential Revision: https://reviews.freebsd.org/D748
Submitted by: amdmi3
Reviewed by: mat, swills, antoine, bdrewery
With hat: portmgr
split from from devel/qt4-linguist (similar to Qt 5 ports). These console
tools are often used for localization support in Qt ports, having them
standalone is quite useful. This work is based on Tobias Berner patch [1].
PR: 190929 [1]
Requested by: amdmi3, koobs
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
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)
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
This is the culmination of years of work and testing including work by jlh@.
This will enable SSP by default for all amd64 releases, and i386 releases
10.0 and over.
With hat: portmgr
Tested by: multiple exp-runs, CFT package repository, CFT ports
Discussed with: bapt, antoine
jail/chroot, a number of unexpected errors can occur.
1. autotools fixup may not run when needed. This could be avoided by always
running it [PR 177980, 177403].
2. Not having UNAME_r set will cause many unknown
errors. Many ports use OSREL (derived from UNAME_r) to determine the name
of files. This is usually also due to the port build itself using uname -r
to derive filenames or 'built for' messages. [PR 192449, 191943] Without
having these sanity checks it is very easy for users to get into
situations where "everything worked" until they touch a certain port that
reads uname(1) output or OSVERSION. It has always been necessary to define
all of the UNAME_ vars and OSVERSION (or have a proper sys/param.h
present), but many users do not know this.
Remove the fallback on the kernel for kern.osreldate as it easily gets the
answer wrong.
I have added sanity checks to ensure OSVERSION==OSREL==UNAME_r as these are the
most critical vars to have set properly.
Differential Revision: https://reviews.freebsd.org/D869
PR: 177980, 177403, 192449, 191943
Reviewed by: antoine, bapt, gjb
With hat: portmgr
Revise language and spelling of the more recent entries a bit,
sometimes advancing a line break by one or a few words,
and replace the word 'credentials' in the @dir-related entry.
(lthack, ltasneededhack and ltverhack) [1]
- Remove support for USE_AUTOTOOLS=libtool and USE_AUTOTOOLS=libltdl
PR: 188978 [1]
Approved by: portmgr (bapt)
Merge back bsd.pkgng.mk into bsd.port.mk
Add a note about @stopdaemon not being supported anymore
With hat: portmgr
Differential Revision: https://reviews.freebsd.org/D693
conflict in behaviour with the read-only COMPILER_FEATURES knob
- Fix the deprecated USE_PYTHON_BUILD and USE_PYTHON_RUN behaviour, which
usually should be mutually exclusive, but some ports include both knobs
Phabric: D581
Recommended by: danfe@, makc@
Reviewed by: danfe, wg, antoine
Approved by: portmgr
With hat: python@
Please use USES=python instead of USE_PYTHON.
USE_PYTHON=yes becomes USES=python
USE_PYTHON=2.7+ becomes USES=python:2.7+
USE_PYTHON_BUILD=3.3 becomes USES=python:3.3,build
...
A new PYTHON_FEATURES variable was added, which enables certain features for a
port and replaces some knobs at the same time;
PYTHON_FEATURES=distutils replaces USE_PYDISTUTILS
PYTHON_FEATURES=autoplist replaces PYDISTUTILS_AUTOPLIST
PYTHON_FEATURES=py3kplist replaces PYTHON_PY3K_PLIST_HACK
PYTHON_FEATURES=noegginfo replaces PYDISTUTILS_NOEGGINFO
PYTHON_FEATURES=concurrent replaces PYTHON_CONCURRENT_INSTALL
PYTHON_FEATURES=pythonprefix replaces USE_PYTHON_PREFIX
Some knobs have been deprecated and are to be removed in the near future:
PYTHON_MASTER_SITES - use MASTER_SITE_PYTHON instead
PYTHON_PKGNAMESUFFIX - use PYTHON_PKGNAMEPREFIX instead
PYDISTUTILS_INSTALLNOSINGLE - deprecated without replacement
Some knobs have been removed completely:
PYTHON_MASTER_SITE_SUBDIR
PYTHON_DISTNAME
PYTHON_WRKSRC
Several variables specific to the Python framework are no longer passed to the
build environment to avoid polluting dependency builds.
PYTHON_VERSION is not passed to .MAKEFLAGS anymore
PYTHON_DEFAULT_VERSION,
PYTHON_DEFAULT_PORTVERSION and
PYTHONBASE are not passed to the make environment anymore
The conversion required a couple of ports to be updated to fit the changes and
new requirements. Those included "bsd.python.mk" directly or contained checks
in places, for which the USES framework would fail to provide correct values.
Python modules directly using the upstream Python package (such as py-tkinter
or py-sqlite3) were updated to avoid using the now unnecessary and remmoved
knobs from "bsd.python.mk".
Phabric: D399
exp-run: 167368 192357
PR: 167368 192357
Reviewed by: antoine, wg
Exp-run award: antoine
With hat: python@
Approved by: portmgr
been removed from the Ports framework for Python software. The
PYEASYINSTALL_* knobs and support for USE_PYDISTUTILS=easy_install have
been removed.
Phabric: D299
With hat: python@
installation of ports for different python versions.
If set to yes, the knob indicates that the port can be installed for different
python versions at the same time. The port will use a unique prefix for
certain directories using USES=uniquefiles:dirs (see the uniquefiles.mk Uses
for details about the directories). Binaries receive an additional suffix,
based on ${PYTHON_VER}.
With hat: python@
Since FreeBSD 8.4 and FreeBSD 9.1 make(1) do support :tu and :tl as a
replacement for :U and :L (which has been marked as deprecated)
bmake which is the default on FreeBSD 10+ only support by default
:tu/:tl a hack has been added at the time to support :U and :L to ease
migration. This hack is now not necessary anymore
Note that this makes the ports tree incompatible with make(1) from
FreeBSD 8.3 or earlier
With hat: portmgr
exists, libtool will add all libraries libB.la refers to (dependency_libs
field) to the linker command line and store them in the dependency_libs
field of libA.la. So everything that subsequently links with libA will also
link to these extra libraries. This causes too much overlinking.
This commit modifies Mk/Uses/libtool.mk so it empties the dependency_libs
field in .la libraries during staging. However, because .la libraries have
very limited use when dependency_libs is empty it makes sense to completely
remove them during staging.
So with this commit USES=libtool is modified to remove .la libraries and a
new form (USES=libtool:keepla) is introduced in case they need to be kept
(dependency_libs is still emptied).
PORTREVISION is bumped on all ports with USES=libtool that install .la
libraries. Most ports are also changed to add :keepla because .la
libraries have to be kept around as long as there are dependent ports with
.la libraries that refer to them in their dependency_libs field. In most
cases :keepla can be removed again as soon as all dependent ports that
install .la libraries have some form of USES=libtool added to their
Makefile.
PR: ports/188759
Exp-run: bdrewery
Approved by: portmgr (bdrewery)
- Bug fixes:
makeplist/check-plist:
- Fix showing directories owned by RUN_DEPENDS/LIB_DEPENDS [1]
- Use proper "rmdir PATH" syntax, not "rmdir >/dev/null... PATH" which
pkg will not recognize.
- Never consider base /etc/mtree/BSD.usr.dist or LOCLABASE
Templates/BSD.local.dist as needing @dirrm handling.
check-plist:
- Fix showing PORTDOCS/PORTEXAMPLES files when the OPTIONS are not set.
makeplist will still suggest them.
- Fix showing files installed through unselected OPTIONS as orphans,
by considering "@comment file" to be ignored. [2]
- Fix @sample, @fc, @fcfontsdir, @fontsdir support
- Fix return status when orphans are found to be non-zero
- Add note when PREFIX=!LOCALBASE
- Be more clear when orphans/no orphans are found.
- Add a whitelist mechanism for globally approved ignores.
- Add *.bak/*.orig to orphan whitelist for now.
- Fix false-positive with dirs installed to /, such as with
archivers/dpkg creating /var/db/dpkg
- Fix false-positive with @dirrm ending in /, such as with
ports-mgmt/poudriere with a @dirrmtry share/zsh/
- There are likely still some false-positives. I fixed as many as I could
find. Please let me know of others.
* One in particular that is not easily fixable is installing a file into
a directory owned by another port where that other port is not a run-time
dependency. So the leaf port may create all of the parent dirs and never
clean them up. Cleaning them up is not proper unless no other package is
depending on them. This will be addressed by pkg(8) once pkg_install is
EOL, or sooner.
- Consider @dirrm of directories owned by run-time dependencies, or
/etc/mtree/* or Templates/BSD.local.dist (at LOCALBASE) as fatal errors.
These should not be removed in the plist. @comment lines are not
considered for this; they will not ignore an error.
===> Checking for directories owned by dependencies or MTREEs
Error: Owned by dependency: @dirrmtry share/locale/af/LC_MESSAGES
Error: Owned by dependency: @dirrmtry share/locale/af
Error: Owned by dependency: @dirrmtry %%PERL5_MAN3%%
- Detect files in plist that do not exist in the stagedir. Pkgng already did
this, but now we have it unified with this check. @comment lines are
not considered for this; they will not ignore an error.
===> Checking for items in pkg-plist which are not in STAGEDIR
Error: Missing: foo
Error: Missing: @dirrmtry bar
- Change orphaned output due to several new errors introduced:
===> Checking for items in STAGEDIR missing from pkg-plist
Error: Orphaned: foo
- Send errors to stderr
check_leftovers.sh:
- Prefer longer values for PLIST_SUB.
bsd.options.mk:
- Fix NOPORTDOCS/WITHOUT_NLS/NOPORTEXAMPLES not unsetting their respective
OPTIONS.
- Mark NOPORTDOCS/NOPORTEXAMPLES deprecated and hook them into the
OPTIONS_WARNING to tell users the new format.
- check-stagedir.sh refactoring:
- Switch to using new PLIST_SUB_SED
- Use ! instead of , in sed(1) regex to allow files/dirs with ','
- Rework PORTEXAMPLES/PORTDOCS handling so it acts on PLIST_SUB_SED'd
value and not absolutes. Also simplify the regex for these a bit to
allow reuse.
- No longer need DOCSDIRS/EXAMPLESDIR in env
- Wrap long lines
- Unset some vars in env when they are done being used to free space for
larger sed vars
- Cleanup redundant sed regexes
- Add a Scripts/plist_sub_sed_sort.sh to prefer longer values when substituting
over shorter values.
- To make check-plist ignore a file *as an orphan* do one of the following:
1. Install it
2. post-install: ${RM} ${STAGEDIR}file
3. Put the file behind an OPTION with a PLIST_SUB: %%OPTION%%file
4. Add to plist as a @comment [2]:
@comment file
@comment @dirrmtry dir
Reviewed by: mat (much earlier version)
Discussed with: mat, antoine, bapt, swills (various bits)
With hat: portmgr
PR: ports/185561 [1]
Reported By: Alexander Yerenkow <yerenkow@gmail.com> [1]
Tested with: pkg and pkg_install
Reported by: many (false-positives)
[2] This is a partial solution, we may still need a plist.ignore too. It
doesn't make much sense to add files in main pkg-plist we don't care about,
but maybe it does since you'll see and reconsider them being ignored
someday. @comment is used as all the OPTION PLIST_SUB deactivations use
@comment instead of something like @ignore.
This is so that 'make' followed by 'make deinstall install' will, by default,
have a much shorter period of files missing on the system as it is without
staging.
Discussed with: bapt
With hat: portmgr
It accepts a file (must end in .sample, this is not configurable):
@sample file.conf.sample
This will install file.conf.sample and copy it to file.conf. The file.conf
will be removed if it matches file.conf.sample on deinstall.
This replaces older patterns of:
@unexec if cmp -s %D/etc/pkgtools.conf %D/etc/pkgtools.conf.sample; then rm -f %D/etc/pkgtools.conf; fi
etc/pkgtools.conf.sample
@exec [ -f %B/pkgtools.conf ] || cp %B/%f %B/pkgtools.conf
[1] This somewhat obsoletes work in ports/157168 which added CONF_FILES,
but we have been moving towards more logic in pkg-plist where possible
and less magical macros. Though this thinking does clash with autoplist
ideas. We may still want CONF_FILES, which just drops a list of
@sample entries into the plist anyway.
- Add a Keywords/pkg_install.awk and hook it into generate-plist. This is
for pkg_install compatibility since it does not know how to read
Keywords/sample.yaml.
This file gives us a strategy to implement more keywords before
pkg_install is EOL.
Keywords are documented here:
bffc31420b
- This needs to be documented in PH and portlint support added still.
PR: ports/157168 [1]
Discussed with: bapt
Reviewed by: bapt
Requested by: many
With hat: portmgr
Alberto Villa (avilla@) has done all the hard work to create Qt 5 ports.
Trivial update from 5.2.0-beta1 to 5.2.1 by me.
Special thanks for Adriaan de Groot <groot@kde.org> for his assistance for
Qt-5.2.0 update.
Approved by: portmgr (bapt) (for Mk/bsd.port.mk)
${OPT}_${TYPE}_DEPENDS_OFF=<something> will automatically add:
${TYPE_DEPENDS}+=<something> in case OPT is 'off'
${OPT}_${FLAG}_OFF=<something> will automatically add:
${FLAG}+=<something> in case OPT is 'off'
With hat: portmgr
Sponsored by: Absolight
by adding a prefix or suffix to them.
Files listed in UNIQUE_PREFIX_FILES will receive the prefix
set via UNIQUE_PREFIX. The same applies to UNIQUE_SUFFIX_FILES,
but with the chosen UNIQUE_SUFFIX. UNIQUE_PREFIX and
UNIQUE_SUFFIX are set to PKGNAMEPREFIX and PKGNAMESUFFIX by
default.
The uniquefiles USES enables ports to name files in special
ways, e.g. by outlining that the port does not support X11
(-nox11). A binary named bin/foo thus can be easily renamed
to bin/foo-featureA via
USES= uniquefiles
UNIQUE_SUFFIX= -featureA
UNIQUE_SUFFIX_FILES= bin/foo
The uniquefiles USES automatically adjusts the plist at
installation time. There is no need to consider the prefix
or suffix in the pkg-plist file itself. If the original name
of the renamed file is bin/foo, this exact name should be put
into pkg-plist.
The dirs argument to USES=uniquefiles will cause certain
standard directories, such as DOCSDIR or EXAMPLESDIR to be
prepended with the UNIQUE_PREFIX. The change to the directories
will hapen prior to configuring or building the port, so that
the port Makefile as well as the port's build logic are aware
of the changed name.
Since the uniquefiles USES effectively manipulates the port's
installation and file layout, it will only be available for
stagedir-aware ports. Ports with NO_STAGE=yes will be unable
to use the uniquefiles USES.
Reviewed by: portmgr@
Approved by: portmgr@
bsd.python.mk
Ports need to use a designated python interpreter, whether this
is the default one chosen by the user (or provided by the system)
and pulled in via USE_PYTHON[_BUILD|_RUN]=yes or an explicit version
or version range pulled in via USE_PYTHON[_BUILD|_RUN]=X.Y does not
matter.
Ports should however not rely on 'python' at build or installation
time, whenever possible to avoid problems with building packages for
different python versions.
This change tries to raise the barrier for misbehaving ports and eases
package builds for different python versions.
Tested with: exp-run (ports/184591)
Reviewed by: wg@, koobs@
Supported by: wg@
With hat on: python@
USE_FORTRAN=yes can be replaced with USES=fortran or USES=fortran:gcc.
USE_FORTRAN=ifort can be replaced with USES=fortran:ifort.
USE_FORTRAN=f77 is deprecated and the version of gcc it depends
on (lang/gcc34) is scheduled to be removed.
Note that USE_FORTRAN=yes also makes GCC the C/C++ compiler while
USES=fortran only sets the Fortran compiler and can be used together
with Clang as C/C++ compiler.
twisted can be configured with the arguments run or build to replace
the previous USE_TWISTED_RUN and USE_TWISTED_BUILD knobs. The twisted
components can be added as comma-separated arguments. If you previously
wrote
USE_TWISTED= yes
USE_TWISTED= conch names
USE_TWISTED_RUN= yes
you now would write
USES= twisted
USES= twisted:conch,names
USES= twisted:run
The problem with the old method is that the libtool is configured to look
first in LOCALBASE for libraries to link to. Normaly this wouldn't cause
a problem. However if a port that builds a library with new API also builds
introspection files or say gtk bindings, then libtool will look first into
LOCALBASE and find the old library version for linking the introspection
files or gtk bindings. Due to the missing new API in old library the build
will fail with unresolved symbols.
The new ltverhack will patch the ltmain.sh and/or libtool files that where
bundled with the port. This libtool is correctly configured to first look
in for the just build libraries.
If the port bundled version of ltmain.sh and/or libtool aren't in ${WRKSRC}
then ltverhack_PATCH_FILES can be overwritten with there location in ${WRKSRC}.
As a bonus when using the new ltverhack configure will honor --disable-static
again. So please check your plist after converting.
While here shorten the number of tabs in the lthacks, ltverhack and
ltasneededhack PRE_PATCH components so they are just over 80 chars long.
Exp-run by: bdrewery@
PR: ports/183936
Obtained from: gnome dev repo
Supported arguments are:
- c++11-lang: the port needs a c++11 aware compiler what ever standard
library it uses, implies features
- c++11-lib: the port needs a c++11 standard library, implies features
- c11: the ports needs a c11 aware compiler implies features
- features: this will create a COMPILER_FEATURES variable which contains
the list of features ${CC} do support, implies env.
- env: the COMPILER_TYPE will be set to either gcc or clang.
By default the uses will try to use clang33 from ports when nothing in
base is relevant except if the user explicitly defines
FAVORITE_COMPILER=gcc in his make.conf
Please note that testing tinderbox prior to version: 4.0.1_1 is not able to
properly figure out the dependencies implied by this USES.
level to use. This allows multiple patches in 1 port to use different
PATCH_DIST_STRIP values without changing PATCH_DIST_STRIP.
Syntax: PATCHFILES= patch[:-pX][:distgroup]
PR: ports/168222
Submitted by: knu
With hat: portmgr
- old USE_ZOPE knob support was removed from bsd.python.mk
- update CHANGES and bsd.sanity.mk accordingly
- add ZOPE options knob and use it in lang/py-mx-base
The work is done by Marcus von Appen, but any problems are mine.
Submitted by: mva (python ML)
The ports tree is now staged by default. With pkgng the sequence hasn't
changed, the main difference is that creating package is now independent
from installing it. With pkg_install, the package is now created first
and make install, do install the package.
New macros:
- STAGEDIR: PATH to the directory where the port will be staged.
- NO_STAGE: Keep the old behaviour of the ports tree (aka no staging area)
Unsupported macro if NO_STAGE is not set:
- MAN* with staging man page compression and handling of hardlinks and
symlinks is automatically done in the stage. the manpages becomes then a
"normal" plist files and should be tracked in pkg-plist.
- MANCOMPRESSED the compress-man target is able to only compress when it
needed.
New target:
- stage: this installs everything into the stage directory
- makeplist: this will create a pkg-plist and print it to stdout. This is
a sample plist and it should always be _reviewed_ not directly used.
NOTE: with staging only what is in the plist will be installed, nothing more,
meaning a port staged cannot have leftovers exect directories left. It is
really important to double check the pkg-plist to make sure all the files
the maintainer want to package are in! make makeplist can help in that area.
The goal is to handle as quickly as possible a full removal of the NO_STAGE
support.
More features can be added once the full ports tree is converted to using the
staging area
Conversion notes:
- Remove NO_STAGE
- in {pre,do,post}-install
* Before any usage of ${PREFIX}, ${ETCDIR}, ${PORTSDIR}, ${PORTEXAMPLES}
prepend ${STAGEDIR}
* Remove any thing that is done by @exec or +INSTALL script it will be
done automatically when syncing packages
* Remove any code to show PKG-MESSAGE it will be done automatically when
syncing packages
* Directory creation should remain in post-install (in particular because
pkgng doesn't work like pkg_install in that area and pkgng ignores the
@exec mkdir but directly pack the directory even if empty)
- PORTDOCS/PORTEXAMPELS
To support PORTDOCS, PORTEXAMPLES most of the time there is no more need
for hacks. just add the right %%PORTDOCS%% or %%PORTEXAMPLES%% in your
plist then the given files from the stagedir will or will not sync
according to NOPORTDOCS and NOPORTEXAMPLES.
With hat: portmgr
Reviewed by: bdrewery
has issues with 'installworld' when WITH_SSP is defined. [1]
Keep WITH_SSP support for now since it has been announced as that
already.
- Remove redundant wording in UPDATING [2]
Suggested by: bapt [1]
Reported by: blakkheim on EFNet
With hat: portmgr
on FreeBSD 10, and amd64 on earlier versions.
SSP_UNSAFE is added to disable in a port if it fails to build, but
this should only be used in rare circumstances such as kernel modules.
Otherwise, the port may just be failing due to lack of respecting
LDFLAGS.
On FreeBSD 10, this uses an ldscript in /usr/lib/libc.so to pull in
libssp_nonshared.a to address issues linking on i386 [1].
On earlier FreeBSD versions the WITH_SSP knob will add -lssp_nonshared
to LDFLAGS on i386. This is not needed on amd64. However, several hundred
ports do not currently respect LDFLAGS, so this support is disabled currently
as it causes build failures if a dependency is looking for the stack_chk
symbols.
Many thanks to jlh@ for this as he had many years of patience in getting
all of the necessary pieces [1][2] in.
[1] http://svnweb.freebsd.org/base/head/lib/libc/libc.ldscript?revision=251668&view=markup
PR: ports/138228 [2]
Submitted by: jlh (bsd.ssp.mk based on)
Reviewed by: bapt
With hat: portmgr
exp-runs done: 37 over a month on 91i386,91amd64,10i386,10amd64
after r254273
- Fix a bunch of ports to properly work after this
- Mark converters/libiconv as IGNORE for systems with iconv in libc
Reviewed by: bapt
Approved by: portmgr (bapt)
Discussed with: bapt, bsam (who both contributed ideas and code)
from existing packages and not fallback on building from source.
This is useful for package building tools such as poudriere and tinderbox
to avoid building from source and confusing the build log, if a dependency
failed to build for some reason.
NOTE: USE_PACKAGE_DEPENDS has not changed here. It has always
reverted to source if the package was not present.
PR: ports/180725
Submitted by: crees
With hat: portmgr
Unfortunately, this also affects some ports using QT3 as a GUI toolkit.
Changes to infrastructure files:
- bsd.kde.mk : obsolete, remove
- bsd.qt.mk : note that a CONFLICTS_BUILD line can probably go after a while
- CHANGES : document the removals from bsd.port.mk
- KNOBS : remove KDE and QT (KDE4 and QT4 should be used instead)
- MOVED : add the removed ports
PR: ports/180745
Submitted by: rene
Approved by: portmgr (bapt)
Exp-run by: bapt
This uses accept 'env' as an argument for ports that do use their own or a different do-configure target.
Modify xmkmf so it accept IMAKECPPFLAGS as default flags for imake and pass it to the called imake.
Modify xorg-cf-files (the FreeBSD.cf configuration file) to allow CppCmd to be overwritten.
Pass CppCmd CcCmd and CplusplusCmd via command line to each call of imake via IMAKECPPFLAGS
Pass IMAKE_DEFINE with the above arguments to MAKE_ARGS so that imake spawned from Makefile generated by a previous
imake also inherit the defined CppCmd CcCmd and CplusplusCmd.
Make imake use devel/tradcpp all the time, so that when buidling with clang we do not depend on gcc's cpp.
Make imake respect CC and CXX
Make imake respect USE_GCC (if set imake will use gcc's cpp).
While here:
- Remove a couple of indefinite articles from comments
- Trim headers
- Fix a couple of ports to build with clang or use: USE_GCC=any
- Fix a now useless redefinition of the extraction chain
- Fix a typo in japanese/Wnn7-lib bundled imake template definitions
- Fix some XMKMF execution with no env specified
- Use options helper in x11/xautolock to simplify the port
OPTIONS_SUB=yes when set in a port, all the option names are automatically
added to the PLIST_SUB with "@comment " value in case the option is off and
empty value in case the options is on.
${OPT}_CONFIGURE_ENABLE=<aname> will automatically add:
CONFIGURE_ARGS+=--enable-<aname> in case OPT is activated
CONFIGURE_ARGS+=--disable-<aname> in case OPT is deactivated
${OPT}_CONFIGURE_ON=<something> will automatically add:
CONFIGURE_ARGS+=<something> in case OPT is activated
${OPT_CONFIGURE_OFF=<something> will automatically add:
CONFIGURE_ARGS+=<something> in case OPT is deactivated
${OPT}_CFLAGS will append the specified new flags to CFLAGS if OPT is 'on'
${OPT}_CXXFLAGS will append the specified new flags to CXXFLAGS if OPT is 'on'
${OPT}_LDFLAGS will append the specified new flags to LDFLAGS if OPT is 'on'
${OPT}_CONFIGURE_ENV will append the specified variables to CONFIGURE_ENV if
OPT is 'on'
${OPT}_MAKE_ENV will append the specified variables to MAKE_ENV if OPT is 'on'
${OPT}_USES will append the speficied uses to USES if OPT is 'on'
${OPT}_DISTFILES will append the specified distiles to DISTFILES if OPT in 'on'
Reviewed and tested by: bdrewery
as USE_DISPLAY it will handle the dependencies needed for a display. But it will also start and stop the Xfvb process during the requested phase the display it needed.
it takes 'install' as an implicit argument, but may also accept 'build'
use it to fix shebang on files specified by SHEBANG_FILES macro, by default it
proposes default values for bash, perl, php, python, ruby, it can be customized
and extended
It takes no arguments.
This deprecates USE_ICONV, please convert your ports.
USE_ICONV will be removed as soon as it is no more used in
the ports tree.
Approved by: portmgr (bapt)
This macros has been useless since cdrtools-cjk port has gone.
This macros also lead to badly handled dependencies assuming that the dependency
on cdrtools was most BUILD and RUN dependency. While most of the time it is
simply a RUN dependency and sometime a build one.
While here:
- Trim some headers
- Convert some ports to optionsng
- Convert some ports to USES= gettext
It can take 3 arguments:
build to add gettext into both RUN and BUILD DEPENDS
run to add gettext into RUN_DEPENDS
lib (default,implicit) to add gettext into LIB_DEPENDS
This deprecates USE_GETTEXT. Please convert your ports.
USE_GETTEXT will be removed as soon as it is no longer used in
the ports tree
Approved by: portmgr (bapt)
- Add CCACHE_DIR
The MAKE_ENV/CONFIGURE_ENV+= method of adding CCACHE_DIR
in /etc/make.conf does not work for many ports since they
overwrite using = instead of appending with +=. By adding
CCACHE_DIR into the ENV variables after reading in the port
the directory is properly set in the environment. Without
this, the ccache support would sometimes work but incorrectly
not respect the set CCACHE_DIR, potentially using 2 caches.
With hat: portmgr
It can take 3 arguments:
build (default,implicit) to add pkgconf into BUILD_DEPENDS
run to add pkgconf into RUN_DEPENDS
both to add pkgconf into both RUN and BUILD DEPENDS
This deprecates USE_PKGCONFIG, please convert your ports.
USE_PKGCONFIG will be removed as soon as it is no more used in
the ports tree
dialog4ports has been contributed by Ilya A. Arkhipov. It extends dialog(3) to
provide a mixed dialog widget allowing to represent all features provide by the
new options framework.
This allows the ports tree to not anymore depends on dialog(1) from base to configure
the options and be able to improve if needed on all supported plateforms at the same time.
Exp-run by: miwi
- convert all fuse ports to use the new macro
The macro makes sure sysutils/fusefs-libs gets installed and depending on
fuse being in base or not it installs sysutils/fusefs-kmod.
Approved by: portmgr (bapt)
OPTIONS_RADIO: a more user friendly way to allow selecting only 0 or 1 options
among a list of options
OPTIONS_GROUP: this macros should be used to group options by theme allowing the
user to select 0 or N options among a list of options
With hat: portmgr
Reviewed by: beat
- Document the mechanism in CHANGES
- Add www/tivoka (a JSON-RPC client/server library in PHP) which
uses the GitHub mechanism
Approved by: beat (portmgr) after exp-run
are no more self hosting so we are stuck with 0.25 version while pkgconf provide
the same set of features as 0.27 and a compatible frontend. A symlink to
pkg-config has been added for convenience and compatibility
This also introduces a new macro to use pkgconf in your ports:
USE_PKGCONFIG
it can take the following arguments:
- yes (meaning build only dep)
- build (meaning build only dep)
- run (meaning run only dep)
- both (meaning run and build dep)
From now USE_GNOME= pkgconfig is deprecated in favour of USE_PKGCONFIG
The old gnome macro has been modified to use pkgconf but still the sameway: run
and build dep to avoid large breakage.
While here fix some ports relying on pkg-config but not specifying it, fix some
ports broken because testing wrong .pc files, and fix ports using pkg-config
--version to determine pkg-config version instead of
pkg-config --modversion pkg-config like recommanded by pkg-config
With Hat: portmgr
Exp-runs by: bapt (pointhat-west), beat (pointyhat)
released in ~5yrs.
- WITH_SLANG2 is now no longer a valid ports knob
- WITH_SLANG implies devel/libslang2 now
- devel/libslang -> devel/libslang2 is a SHARED LIB bump
so bump PORTREVISION for affected ports
- Take MAINTAINER for most unmaintained ports in this chain
- some SF macro conversions
- BROKEN with devel/libslang2 and DEPRECATE
math/slsc (abandoned upstream)
- BROKEN with devel/libslang2
japanese/slirc
PR: ports/125255
Reviewed by: garga (libslang maintainer), portmgr (pav)
Exp Run by: pav
following way:
print/ghostscript-gnu -> print/ghostscript7
print/ghostscript-gnu-nox11 -> print/ghostscript7-nox11
print/ghostscript-gnu-commfont -> print/ghostscript7-commfont
print/ghostscript-gpl -> print/ghostscript8
print/ghostscript-gpl-nox11 -> print/ghostscript8-nox11
japanese/ghostscript-gnu-jpnfont -> print/ghostscript7-jpnfont
korean/ghostscript-gnu-korfont -> print/ghostscript7-korfont
* USE_GHOSTSCRIPT now supports a version number which the port
requires. The valid value is "7" or "8". If other value is
specified, value of WITH_GHOSTSCRIPT_VER is used.
* WITH_GHOSTSCRIPT_GNU has been removed in favor of
WITH_GHOSTSCRIPT_VER. The valid value of WITH_GHOSTSCRIPT_VER is
"7" or "8", and the default value is "8".
Approved by: portmgr (pav)