The former respects cpuset, while the latter does not.
$ cpuset -l 1 -- make -V MAKE_JOBS_NUMBER
1
As nproc is newly introduced, keep the previous variant as a fallback
for the time being.
Differential Revision: https://reviews.freebsd.org/D38457
Convert the USE_LDAP=yes to USES=ldap and adds the following features:
- Adds the argument USES=ldap:server to add openldap2{4|5|6}-server as
RUN_DEPENDS
- Adds the argument USES=ldap<version> and replaces WANT_OPENLDAP_VER
- Adds OPENLDAP versions in bsd.default-versions.mk
- Adds USE_OPENLDAP/WANT_OPENLDAP_VER in Mk/bsd.sanity.mk
- Changes consumers to use the features
Reviewed by: delphij
Approved by: portmgr
Differential Revision: https://reviews.freebsd.org/D38233
Switch from Mk/bsd.ruby.mk to Mk/Uses/ruby.mk
Notable changes are.
- Mk/bsd.ruby.mk is moved to Mk/Uses/ruby.mk.
- USE_RUBY=yes is replaced with USES=ruby.
- USE_RUBY_EXTCONF is replaced with USES=ruby:extconf.
- USE_RUBY_RDOC is replaced with USES=ruby:rdoc.
- USE_RUBY_SETUP is replaces with USES=ruby:setup.
- RUBY_NO_BUILD_DEPENDS and RUBY_NO_RUN_DEPENDS are replaced with
USES=ruby:{build,none,run}.
- RUBY_REQUIRE isn't used anywhere, so removed.
- USES=gem now implies USES=ruby.
This is mainly the work of yasu@ at https://reviews.freebsd.org/D27863
I have just made some cosmetic changes and ran exp-run to test that the
tree is not in a BROKEN state.
Approved by: portmgr
Differential Revision: https://reviews.freebsd.org/D37925
Add check to detect colon in .CURDIR, because it's not supported
this patch detects the colon and shows a proper error message
Reviewed By: #portmgr, tcberner
Differential Revision: https://reviews.freebsd.org/D37500
This disables bsd.sanity.mk when PACKAGE_BUILDING is set such that it
only is loaded during 'make [all]' or 'make check-sanity'. It is assumed the
package tool will manually call the target if it wants the check. Otherwise
we get redundant logic and filesystem lookups from this file for every other
build target.
Prodded by: mjg
- Update all the consumers to use USES=tex
- USE_TEX=yes is the old way of writing USES=tex which has been removed
and replaced in all ports
- Almost all of the USE_TEX features remains unchanged
- Some consumers had the same variables defined both in the mk
infrastructure and also in the ports which have been removed from the
ports as those are redundant.
In case any of the consumers are failing to build please make sure that
the nexessary USES=tex is there. Unlike previous USE_TEX=yes will no
longer load the required VARS for tex and related dependencies.
Reviewed by: portmgr
Approved by: portmgr (blanket)
As usual with features, this can be activated/deactivated via
WITH/WITHOUT_<feature>
Each port can individually mark itself as not supporting the feature
via <feature>_UNSAFE=
Save an invocation of id(1) by using the built-in .MAKE.UID variable
instead. Check availability of .MAKE.UID first, since older versions
of bmake (12.x) don't have it yet.
PR: 266942
Approved by: bapt
People should use 'make makepatch' instead which creates patches
with the expected filename and header.
Differential Revision: https://reviews.freebsd.org/D36767
The WWW macro was supposewd to hold only one URL pointing to the most
useful starting point for a user searching for additional information,
configuration examples, etc.
Some port maintainers have set the WWW macro to a list of URLs,
breaking assumptions by scripts and tools in the ports system and of
external users of the ports system.
This change allows WWW to hold a list of URLs by only considering the
first list element in places where only a single URL is supported.
This mirrors the previous behavior of only using the first line tagged
with "WWW: " in the pkg-descr file.
Approved by: portmgr (tcberner)
Differential Revision: https://reviews.freebsd.org/D36558
Maintainers should set WWW to a website with useful information for
users of the package.
The first MASTER_SITE of the port had been considered to be a useful
default value for the WWW variable.
It has been found not to be a generally useful URL though, therefore
stop providing a default value for WWW.
Approved by: portmgr (tcberner)
The contents of COMMENT will be adequately protected against
interpretation by the shell due to the :Q modifier.
This access to the COMMENT variable should therefore not be enclosed
in double quotes.
Approved by: portmgr (implicit)
Expect the project website or other relevant URL of a port to be
specified in a WWW macro in its Makefile.
This information used to be available in WWW: lines at the end of
each port's pkg-descr file. By moving it into the Makefile, this
value is easier to access, verify, and maintain.
A WWW: line is added to the "desc" element of package manifests
based on the WWW macro value by the create-manifest.sh script.
This restores the previous contents of this line in the manifest
(as e.g. expected by the Freshports website).
The ports-mgmt/portlint port has been updated in commit 9800743f0
(version 2.19.13) to support the planned introduction of WWW in
port Makefiles.
Approved by: portmgr (tcberner)
Differential Revision: https://reviews.freebsd.org/D36434
- Mk/bsd.port.mk: mark 13.0 as unsupported
- Tools/scripts/portsearch: Drop support for FreeBSD <= 4
- archivers/zstd: revert "Fix build on FreeBSD 13.0"
- deskutils/xdg-desktop-portal: remove check for 13.0
- devel/libpeas: remove outdated comment
- editors/imhex: remove compatibility for 13.0
- editors/libreoffice: remove compatibility for 13.0
- editors/openoffice-4: remove compatibility for 13.0
- editors/openoffice-devel: remove compatibility for 13.0
- emulators/linux_base-c7: remove compatiblity for 13.0
- graphics/drm-kmod: remove detection for 13.0
- graphics/gpu-firmware-amd-kmod: do not check 13.0 anymore
- graphics/linux-c7-libdrm: remove support for 13.0
- math/igraph: remove support for 13.0
- net/asterisk16: drop support for ancient FreeBSD versions
- net/asterisk18: drop support for ancient FreeBSD versions
- security/openssl*: drop now obsolete patches
- sysutils/bhyve+: drop support for FreeBSD 13.0
- sysutils/ebsnvme-id: drop support for FreeBSD 13.0
- sysutils/openzfs: remove detection of FreeBSD 13.0
- sysutils/openzfs-kmod: drop detection of FreeBSD 13.0
- www/firefox: generalize pkg-message a bit regarding hgame(4)
- x11/xorg-cf-files: remove support for FreeBSD < 6 (yes, pre-2008)
While here, regenerate patches for:
- x11/xorg-cf-files
- net/asterisk16
- net/asterisk18
While here, remove a stale $Id$ from Tools/scripts/portsearch
Differential Revision: https://reviews.freebsd.org/D36233
Reviewed by: office (fluffy), x11 (manu), arrowd, brnrd, cperciva, freqlabs, imp, jbeich, madpilot, nobutaka
Until now, the check of the CONFLICTS_INSTALL was done during the sanity
check, meaning very early in the package building process.
this makes it painful in 2 cases:
1. a port depend at build time on the extraction of this port, it will print
its warning message along with the default timer, while we will never reach
the said conflict at all.
2. since the ports tree has been staged, one can even go up to create a valid
package even if a locally conflicting package is locally installed.
This change make the check and print of the conflicts only happen during the
install phase, the same way the ports tree checks if a previous version is
already installed.
PR: 213890
Discussed with: tcberner
Reviewed by: tcberner
Differential Revision: https://reviews.freebsd.org/D36355
Make the definition of WITH_ variable (end user actionable) a define
via a generic code
Move the WITH_DEBUG code into its own file Features/debug.mk
Replace USE_LTO into WITH_LTO and move it into Features/lto.mk
Move WITH_SSP into its own Features/ssp.mk
Add a variable to defined which one are activated by default (here SSP)
Reviewed by: portmgr (tcberner)
Differential Revision: https://reviews.freebsd.org/D35873
The base system started to provide certain pkgconfig files for
components it provides. This new variable allows ports to prefer base
components explicitly using for example
PKGCONFIG_BASE=foo
This will create a symlink of /usr/libdata/pkgconfig/foo.pc to
${WKRDIR}/.pkgconfig and adding said path to pkgconfigs search path.
This allows us to switch easily between base and port implementation
of different components (say openssl) by simply defining the appropriate
variable in (say ssl.mk).
Reviewed by: bapt
Differential Revision: https://reviews.freebsd.org/D35494
FORCE_POST was a temporary solution when migrating from pkg_tools to
pkg now that everything can directly enforce when it is executed, it is
not needed anymore (and actually pkg is not looking for it anymore)
This change allow a ports to have
<flavor>_IGNORE_<OPSYS>_{OSREL,OSREL:R} in their makefile so we
can ignore on specific FreeBSD version.
Approved by: bapt
Reviewed by: bapt
Sponsored by: Beckhoff Automation GmbH & Co. KG
Stop creating the "transitionning" backward compatibility symlink
for packages, 9 month passed since we switched to .pkg
Only create the backward compatible symlinks for the bootstrap and
its signature when the compression format is txz. The old bootstrap may
only be looking for those. This should be removed once 13.0-RELEASE is EOLed
The packages are switched from XZ to ZSTD compression, the compression level
is set at the maximum possible because it creates packages which are closed
in size between XZ and ZSTD, the compression time is close as well,
but decompression time is way bigger.
Exp-run: antoine
Differential revision: https://reviews.freebsd.org/D35095
- convert bsd.gstreamer.mk to Uses/gstreamer.mk
- convert ports tree to make use of USES=gstreamer
- remove duplicate dependency lines from the tree
Differential Revision: https://reviews.freebsd.org/D35097
I had added support for the specification of a condition and package
name patterns to Version 1.17.2 of the pkg command. This change allows
to simplify the conflicts checks: instead of listing all packages that
match a name pattern and then apply a filter to select the relevant
values, the filter condition is now passed to the pkg command.
This update includes a change to the semantics of the conflicts check
which aligns the output with current package naming practices:
After the introduction of flavors a "same origin exclusion" was
introduced, which removed packages from the conflicts list when
they shared the same origin (without considering the flavor).
This was required to allow the installation of e.g. python modules
for different interpreter versions (which typically use interpreter
version specific sub-directories to store their files), at a time
when there was no strict requirement to have non-colliding package
base names.
The "same origin exclusion" is wrong for ports with conflicting
flavors, e.g. devel/git where only one flavor may be installed at
any time - but the conflict is ignored due to the same origin of
all the different git packages.
Since all packages are now required to have a distinct base name
(e.g. by using a prefix like "py38-" instead of the prior "py-"),
a "same package base name exclusion" can be used to make the
conflicts check stricter and to correctly report the conflict if
for example some git flavor is installed and the installation of
another one is attempted.
An update of the documentation of the CONFLICTS* variables that
describes the "same package base name exclusion" has been committed to
the porter's handbook.
The Makefiles of many flavored ports could be simplified as described
in review D31303 (https://reviews.freebsd.org/D31303), since the
complexity of those definitions results from the exclusion of the
currently built package base name from the CONFLICTS definition,
which was unneeded before (due to the "same origin exclusion",
which made all these CONFLICTS definitions void, anyway) and is now
correctly dealt with after this commit (due to the "same package
base name exclusion").
This patch has been first put up for review in October of 2021, with
a comment that it should not be applied before pkg-1.17.2 (or newer)
can be assumed to be generally used.
Bapt@ accepted the change but later requested the MINIMAL_PKG_VERSION
to be adjusted to require pkg-1.17.2 (as included in this commit).
Due to recent white-space changes in bsd.port.mk the latest patch
uploaded for review does no longer cleanly apply. This commit contains
an updated version that matches the white-space changes (indentation
of .if / .else / .endif and other elements).
[This change had previously been applied as commit e03f85dbc9, but
during a last minute white space adjustment 1 line had been lost.
This commit applies the change as has been accepted in the review,
updated to match the recent white-space changes.]
Approved by: portmgr (bapt)
Differential Revision: https://reviews.freebsd.org/D32694
While adjusting for white-space changes one .if conditon has been
lost.
Revert and re-apply in a follow-up commit with the missing line
restored.
Approved by: portmgr (implicit)
I had added support for the specification of a condition and package
name patterns to Version 1.17.2 of the pkg command. This change allows
to simplify the conflicts checks: instead of listing all packages that
match a name pattern and then apply a filter to select the relevant
values, the filter condition is now passed to the pkg command.
This update includes a change to the semantics of the conflicts check
which aligns the output with current package naming practices:
After the introduction of flavors a "same origin exclusion" was
introduced, which removed packages from the conflicts list when
they shared the same origin (without considering the flavor).
This was required to allow the installation of e.g. python modules
for different interpreter versions (which typically use interpreter
version specific sub-directories to store their files), at a time
when there was no strict requirement to have non-colliding package
base names.
The "same origin exclusion" is wrong for ports with conflicting
flavors, e.g. devel/git where only one flavor may be installed at
any time - but the conflict is ignored due to the same origin of
all the different git packages.
Since all packages are now required to have a distinct base name
(e.g. by using a prefix like "py38-" instead of the prior "py-"),
a "same package base name exclusion" can be used to make the
conflicts check stricter and to correctly report the conflict if
for example some git flavor is installed and the installation of
another one is attempted.
An update of the documentation of the CONFLICTS* variables that
describes the "same package base name exclusion" has been committed to
the porter's handbook.
The Makefiles of many flavored ports could be simplified as described
in review D31303 (https://reviews.freebsd.org/D31303), since the
complexity of those definitions results from the exclusion of the
currently built package base name from the CONFLICTS definition,
which was unneeded before (due to the "same origin exclusion",
which made all these CONFLICTS definitions void, anyway) and is now
correctly dealt with after this commit (due to the "same package
base name exclusion").
This patch has been first put up for review in October of 2021, with
a comment that it should not be applied before pkg-1.17.2 (or newer)
can be assumed to be generally used.
Bapt@ accepted the change but later requested the MINIMAL_PKG_VERSION
to be adjusted to require pkg-1.17.2 (as included in this commit).
Due to recent white-space changes in bsd.port.mk the latest patch
uploaded for review does no longer cleanly apply. This commit contains
an updated version that matches the white-space changes (indentation
of .if / .else / .endif and other elements).
Approved by: portmgr (bapt)
Differential Revision: https://reviews.freebsd.org/D32694
Run Tools/scripts/indent_make_if.pl on all of Mk.
These white space changes contribute greatly to the readability of those files.
As we have a version control system, finding out the reasons for the changes
prior to these white space changes is still easily possible
Differential Revision: https://reviews.freebsd.org/D35024
Reviewed by: portmgr (rene, bapt)
- Mk/bsd.port.mk: bump minimal FreeBSD version to 12.3,
update an example
- sysutils/lsof: drop support for ancient FreeBSD releases.
- multimedia/ustreamer: remove inline patch for 12.2
- x11/wayland-logout: remove support for FreeBSD < 12.3
- sysutils/bhyve+: remove support for FreeBSD 12.2
- databases/clickhouse: remove support for FreeBSD 12.2
- databases/mariadb106-server: remove support for FreeBSD 12.2
- devel/cvsd: no need to test for FreeBSD >=5 anymore
- devel/imake: no need to support a.out anymore
- japanese/kterm: no need to support FreeBSD <= 9
- math/igraph: remove support for FreeBSD 12.2
- net/onedrive: remove support for FreeBSD 12.2
- security/ipsec-tools: no need to test for FreeBSD >= 11
- emulators/rpcs3: Revert "emulators/rpcs3: unbreak on FreeBSD 12.2 after 49f593b2f77f"
Reviewed by: brnrd, fluffy, jbeich, ler, yuri, x11 (zeising)
Approved by: portmgr (implicit)
Differential Revision: https://reviews.freebsd.org/D34523
gdk-pixbuf2 uses a cache of its loadable modules, which is updated by
${RREFIX}/bin/gdk-pixbuf-query-loaders and stored in
${PREFIX}/lib/gdk-pixbuf-2.0/${GTK2_VERSION}/loaders.
Remove the pre-existing @exec and @postexec commands in the ports
providing such modules, and add a trigger in graphics/gdk-pixbuf2
to do this automatically.
Reviewed by: bapt
Differential Revision: https://reviews.freebsd.org/D34679
It is probably better that DragonFlyBSD adds their own minimum
version check. Our check was already severely outdated, it
checked for at least version 4.4 while version 6.2 is contemporary.
Discussed with: portmgr
The change introduced in bug 256301 (review D30579), which prevents
child make processes from receiving an empty FLAVOR variable when
FLAVOR should be unset, has the side effect of allowing any FLAVOR
already in the parent make process environment to propagate to the
child.
This revision prevents the FLAVOR from the parent make from
incorrectly propagating to the child during a recursive make.
Additionally, use "flavored" CURDIR in recursive_dirs variable
so that a correct FLAVOR is used for the top-most port as well.
Reviewed by: bapt
Approved by: bapt
Differential Revision: https://reviews.freebsd.org/D32324
* The value of PKGVERSION described in comment is different from real
one. And it is difficult to explain it briefly. So replace it with
brief explanation what the variable means.
PR: 259511
Approved by: portmgr (bapt)
Instead of hardcoding the 10s delay for the conflicts warning, add
a new variable CONFLICT_WARNING_WAIT the same way we have WARNING_WAIT
and DEV_WARNING_WAIT
PR: 248548
fba040e62b broke makesum for ports
that conditionally override MASTER_SITES in a make(makesum)
block to simplify maintenance like lang/python-doc-html or
devel/freebsd-sysroot where it is impractical to just statically
list all possible MASTER_SITES. It also broke USES=linux ports
that do the same for DISTFILES.
The breakage with DISTFILES was fixed in
50d2c82e01 by explicitly passing
it to the sub-make fetch. Do the same with MASTER_SITES and
PATCH_SITES so we do not have to workaround this with .MAKEFLAGS
or .export.
PR: 249537
Approved by: portmgr (implicit)
If defined, for each flavors it will create for the non active one:
PLIST_SUB= FLAVORNAME="@comment " NO_FLAVOUNAME=""
and for the active one:
PLIST_SUB= FLAVORNAME="" NO_FLAVOUNAME="@comment "
Same for SUB_LIST
Reviewed by: manu, bdrewery, mat
Differential Revision: https://reviews.freebsd.org/D32495
This adds XDG_CACHE_HOME to the set of XDG_* variables exported in
CONFIGURE_ENV and MAKE_ENV.
Without XDG_CACHE_HOME in the environment some software (for ex.
https://github.com/coursier/coursier) falls back to using
/home/{user}/.cache during the build and writes outside the working
directory.
XDG_CACHE_HOME is described in the XDG Base Directory Specification:
https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html
PR: 255600
Exp-run by: antoine
It's well known that LTO provides both performance and size benefits for
binaries.
Add preliminary, opt-in support for global LTO enforcement to ports. Ports that
provide LTO option on their own and the ones that don't work with LTO will need
to set LTO_UNSAFE in the future.
PR: 258536