Commit Graph

373 Commits

Author SHA1 Message Date
Tijl Coosemans 572f236169 Mk/*: Build with a clean environment
Both our make and gmake use the MAKEFLAGS environment variable but the
values aren't compatible and the latest version of gmake complains about
that.  To rule out that any environment variable can cause problems like
this, add a new command SETENVI=/usr/bin/env -i that clears the
environment, and use it to run upstream build systems with a clean
environment.

Introduce a new variable WRK_ENV that contains the environment to use
with SETENVI in all targets that run upstream build commands.  Variables
that are common between CONFIGURE_ENV and MAKE_ENV could be moved to
WRK_ENV but for now it just contains a minimal environment:

HOME=${WRKDIR}: Fixes USES=elixir ports that were using the user's HOME.
OSVERSION: For cross building; determines the output of uname -K and
getosreldate(3); affects net/freebsd-telnetd for example.
PATH: Fixes USES=gem ports that were using the user's PATH.
PWD=$${PWD}: Preserve current working directory; affects USES=go ports.
TERM: To preserve colored output to terminals.
TMPDIR: For users who define that.
UNAME_*: For cross building; determines the output of uname(1); affects
lang/python* for example.

This commit deals with everything under Mk/.  Ports that have their own
targets running upstream build commands can switch to SETENVI later.

The ports tree adds its definition of ARCH to the MAKEFLAGS environment
variable, which is interpreted by sub-makes as command line arguments,
which means that any definition of ARCH in upstream makefiles was
overridden.  The following ports required fixes now that this is no
longer the case.

games/iortcw, games/q3cellshading, games/tremulous:
These use Quake 3 engine code.  Fix use of ARCH.  Reduce diff between
FreeBSD code and Linux code.

games/legesmotus:
Remove ARCH related patches.

lang/ocaml:
Patch configure script so it detects amd64 correctly.  Also make the
powerpc case consistent with the other architectures.  This also affects
other ocaml ports like devel/ocaml-ocamlbuild and math/ocaml-num that
include a Makefile.config installed by lang/ocaml.  While here, use
SETENVI in check-test target.

net/libnatpmp:
Use of upstream definition of ARCH triggers installation in PREFIX/lib64
on amd64.  Disable this.

PR:		276478
Approved by:	portmgr (antoine)
Exp-run by:	antoine
2024-02-29 21:21:37 +01:00
Baptiste Daroussin 5c475f0e7b MAN?PREFIX: undefine those variables
MAN?PREFIX where confusing (people kept messing around with them)
did not bring any real value or functionnality.

Reviewed by:		portmgr (mat)
Approved by:		portmgr (mat)
Differential Revision:	https://reviews.freebsd.org/D43392
2024-01-11 09:02:11 +01:00
Po-Chuan Hsieh 0bda50678e
CHANGES: Document the transition from USES=pycryptography* to USE_PYTHON=cryptography*
PR:		273727
2023-09-30 09:14:06 +08:00
Tobias C. Berner 4df0e66a36 llvm.mk: add export/noexport to handle CC/CXX/CPP exports
Reviewed by:	bofh
Differential Revision:	https://reviews.freebsd.org/D37747
2023-09-13 07:16:58 +02:00
Jason E. Hale 3b2ff2ef19 Mk: Add Uses/ebur128.mk
Handles dependencies for the chosen implementation of libebur128 set
via DEFAULT_VERSIONS: audio/libebur128 (legacy) and audio/ebur128
(rust).

PR:		272843
2023-08-21 10:24:20 -04:00
Andrew "RhodiumToad" Gierth 94218d3a91 Mk/Uses: Add guile.mk
This patch adds USES=guile[:options], a framework to permit the
concurrent installation of different guile versions, allowing
ports to specify which guile they need.

lang/guile is now a meta-port, installing the default guile version;
guile 3 is now shipped in lang/guile3.

A new port lang/guile-aclocal holds the guile.m4 file from guile3
to permit ports written against guile1 or guile2 to avoid conflicts.

PR:		260960
Reported by:	Martin Neubauer <m.ne@gmx.net>
Approved by:	bofh
Differential Revision:	https://reviews.freebsd.org/D40194
2023-07-31 01:59:04 +03:00
Tobias C. Berner 7bb64b89d0 framework: add Mk/Uses/pycryptography
With the added new DEFAULT_VERSION "PYCRYPTOGRAHY_DEFAULT=rust|legacy"
it is important to transparently depend on the right one.

This is the job of this new uses.

So instead of manually adding dependency lines like

	RUN_DEPENDS=${PYTHON_PKGNAMEPREFIX}cryptography>0:security/py-cryptography@${PY_FLAVOR}

this should now be

	USES=pycryptography:run

Supported arguments: <none>,build,run,test
If no argument is given, it defaults to 'build,run'.

A future commit will update to security/py-cryptography will introduce a
rust dependency.

PR:		254853
2023-07-22 09:46:38 +02:00
Felix Palmen 16bde072b1 bsd.sites.mk: Support tag names with USE_GITLAB
Since quite some time, it's possible to download generated tarballs from
gitlab for a tag name without knowing the corresponding git hash. This
is preferable because you have a single source of truth about the
software version.

Support this by replacing GL_COMMIT with GL_TAGNAME which also accepts a
commit hash, similar to USE_GITHUB. Unfortunately, there's a catch, the
DISTFILE must be named exactly: ${GL_PROJECT}-${GL_TAGNAME}.tar.bz2,
otherwise it extracts in a directory that contains the commit hash. So,
we can't add the gitlab account or the revision suffix to make it work.

Therefore, detect whether GL_TAGNAME contains a commit hash, and if it
does, use the old behavior of deriving DISTNAME and DISTFILES.

Document in CHANGES, also add a DEV_WARNING similar to USE_GITHUB when
there's an URL in MASTER_SITES that looks like a gitlab URL. With
support for tags, there shouldn't be any reason left to hardcode such an
URL in MASTER_SITES.

PR:			248967
Approved by:		portmgr (tcberner, mentor)
Differential Revision:	https://reviews.freebsd.org/D37077
2023-07-12 20:55:08 +02:00
Mateusz Piotrowski 349b11cfc8 framework: Implement fetch-url-recursive-list and fetch-urlall-recursive-list
The recursive variants of fetch-url-list and fetch-urlall-list provide
a stable interface to a list of all the to-be-accessed URLs. That is
quite handy, e.g., when a list like that is necessary to implement
security policies.

Reviewed by:	pizzamig
Approved by:	portmgr (pizzamig)
Sponsored by:	Klara Inc.
Differential Revision: https://reviews.freebsd.org/D40810
2023-07-12 16:19:10 +02:00
Felix Palmen be67c1c353 Mk/Uses/magick.mk: Fix DEFAULT_VERSION handling
Handle fallback for version and flavor separately, also add several
sanity checks.

This fixes creating broken *_DEPENDS for ports using it without
arguments when a -nox11 version is requested in DEFAULT_VERSIONS like
e.g. this resulting from "imagemagick=7-nox11":
libMagick++-7-nox11.so:graphics/ImageMagick7-nox11

Approved by:		tcberner (mentor)
Differential Revision:	https://reviews.freebsd.org/D39424
2023-04-30 13:10:39 +02:00
Matthias Andree a9d9d3a427 lang/python: Revert "add bytecode trigger"
This reverts commit c17ddfbf66.

This causes breakage on several ports, and the next iteration
requires a full exp-run. See:

Differential Revision: https://reviews.freebsd.org/D34739
2023-02-27 22:04:52 +01:00
Charlie Li c17ddfbf66
lang/python: add bytecode trigger
Facilitates compiling, writing and removing bytecode files (.pyc)
in site-packages after all pkg transactions have been completed.

Technical details: https://wiki.freebsd.org/Python/CompiledPackages

Fixes reports of Python port builds as root failing on filesystem
violations due to bytecode file writes where the port did not include
them in the package.

For those ports/packages that currently package bytecode, some
checksum mismatches on those files may occur. This is harmless and
will be rectified, in large as part of a USE_PYTHON=distutils
overhaul to reduce churn.

While here, implement a long-standing todo item of letting lang/python
ports use python.mk bits. Not only does this obviate duplicate
variables in each Makefile, but SUB_LIST (also added) is used for
these triggers.

Co-authored by: tcberner
Approved by: tcberner (mentor)
Differential Revision: https://reviews.freebsd.org/D34739
2023-02-15 16:35:07 -05:00
Charlie Li cc8a1878e0
python.mk: introduce USE_PYTHON=pep517 for PEP-517 support
USE_PYTHON=pep517 takes no arguments. Operation is similar to
USE_PYTHON=distutils, although the build backend specified in
pyproject.toml is to be specified in BUILD_DEPENDS explicitly. A
usage guide and implementation primer is available at:
	https://wiki.freebsd.org/Python/PEP-517

With hat: python
Approved by: fluffy (mentor)
Co-authored by: yuri
PR: 255722
Differential Revision: https://reviews.freebsd.org/D36290
2023-01-11 00:22:16 -05:00
Tobias C. Berner 2b3e37f30c framework: Add new USES=llvm to more easily depend on one an llvm port
USES=llvm supports two kinds of arguments:

* mode
	<none>:		defaults to build
	build:		add a BUILD_DEPENDS on chosen llvm-port
	run:		add a RUN_DEPENDS on chosen llvm-port
	lib:		add a LIB_DEPENDS on chosen llvm-port

* version
	<none>:		defaults to ${LLVM_DEFAULT}
	number:		use explicitly the specified version
	min=number:	use specified min if ${LLVM_DEFAULT} is lower
	max=number:	use specified max if ${LLVM_DEFAULT} is higher

An example usage might be:
	USES=	llvm
  or
	USES=	llvm:13,build
  or
	USES=	llvm:min=14,lib

The following variables are exposed to be used in the ports tree at the moment:
	* LLVM_VERSION  version chosen from the arguments to llvm.mk
	* LLVM_PORT     chosen llvm port
	* LLVM_CONFIG   llvm-config of the chosen port
	* LLVM_LIBLLVM  libLLVM.so of the chosen port
	* LLVM_PREFIX   installation prefix of the chosen port

Reviewed by:		manu, bapt
Differential Revision:	https://reviews.freebsd.org/D37728
2022-12-17 21:20:28 +01:00
Baptiste Daroussin ee697f183b CHANGES: document the 3 new features 2022-10-26 10:34:03 +02:00
Adam Weinberger 537a051cf5 CHANGES: Add a note for USES=luajit 2022-10-14 11:16:22 -06:00
Felix Palmen ddae4e92d8 Mk/Uses: always use colon for build/run suffix
Most USES use a colon for build/run(/test) suffixes. Change kde.mk,
qt.mk and pyqt.mk to do the same, and update all ports using that.

Document in CHANGES.

PR:			266034
Exp-run by:		antoine
Approved by:		tcberner (mentor)
Differential Revision:	https://reviews.freebsd.org/D36349
2022-09-11 12:20:14 +02:00
Stefan Eßer 9f4ff63512 CHANGES: document move of WWW from pkg-descr files to Makefiles
Approved by:	portmgr (implicit)
2022-09-08 00:02:34 +02:00
Tobias C. Berner da71ecd25f CHANGES: document how to use vala.mk 2022-08-26 19:02:28 +02:00
Tobias C. Berner f53336cefc CHANGES: add some pointers on how-to use Qt 6 in the tree 2022-08-21 19:31:46 +02:00
Tobias C. Berner 2fc48fb6f7 CHANGES: document removal of 'Created by' lines.
Differential Revision:	https://reviews.freebsd.org/D35023
With hat:	portmgr
2022-07-20 15:09:23 +02:00
Tobias C. Berner ca3f925d6e framework: convert bsd.gstreamer.mk to Uses/gstreamer.mk
- 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
2022-04-30 10:03:20 +02:00
Dmitry Marakasov b731fff69c Mk/Uses: Add pytest.mk
Add USES=pytest, a standardized pytest entry point.

This knob adds dependency on pytest and defines do-test target which
calls it "the right way" (respecting TEST_ENV, with proper verbosity,
additional info on skipped tests, and resetting addopts which may
be set by upstream and introduce unwanted options). This allows to
remove duplicate (and in many cases not completely correct) do-test
targets from a lot of pytest consumer ports.

Additionally, it adds PYTEST_IGNORED_TESTS (to list tests which
fail and are expected to fail) and PYTEST_BROKEN_TESTS (to list
tests which fail and needs to be fixed). Both knobs lead to
listed tests being skipped, which is believed to be better than
always failing `test` target, allowing to monitor status of other
tests and better document known failures.

Possible room for improvement:
- Support for pytest plugins (add dependencies and disallow pytest
  from using unlisted plugins which often cause breakages)
- Treat PYTEST_BROKEN_TESTS as xfail to catch the cases when tests
  are fixed.

  Both items seem to require support on pytest side though.

Reviewed by:		tcberner
Differential Revision:	https://reviews.freebsd.org/D34693
2022-04-18 13:32:16 +03:00
Joseph Mingrone 2f029030fe
CHANGES: Document USES=elfctl
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D34125
2022-02-18 15:06:53 -04:00
Loïc Bartoletti 4f0a5e1540 PyQt: Update sip to 6.5.0, reintroduce sip4 and simplify PyQt framework.
SIP:
As mentioned in the update from sip to sip5, this is a transitional version
to remove what is deprecated in sip4.
Sip6 completely removes the deprecated parts.
Unfortunately, some ports — mostly cura things — can not use sip6, so we
reintroduce sip4.

PyQt:
At the same time, we took the opportunity to simplify PyQT and propose only one
package as for devel/pyside2. */py-qt5-* have been merged — excepted chart,
networkauth and webengine — into devel/py-qt5-pyqt.

This allows us to be in adequacy with the packages that the author of these
libraries proposes, namely:

PyQt - devel/py-qt5-pyqt
PyQt-Charts - x11-toolkits/py-qt5-chart
PyQt-NetworkAuth – net/py-qt5-networkauth
PyQt-WebEngine – www/py-qt5-webengine
SIP – devel/py-sip
py-sip - devel/py-qt5-sip
PyQt-builder - devel/py-qtbuilder
Qscintilla - devel/py-qt5-qscintilla2

Reviewed by:	diizzy, kde
Tested by:	kai, rhurlin, arrowd, madpilot
Approved by:	makc, tcberner, kde
Differential Revision:	https://reviews.freebsd.org/D33237
Exp-run by:	antoine
2022-01-27 07:12:26 +01:00
Tobias Kortkamp cca7576243
CHANGES: Catch up to fca135644f 2022-01-17 14:20:25 +01:00
Stefan Eßer 35a26791f4 CHANGES: CPU_AND, CPU_OR, CPU_XOR parameters changed
The CPU_AND, CPU_ANDNOT, CPU_OR, and CPU_XOR macros have been modified
to support programs that have been written for GLIBC.

Describe the changes required to have ports support both the previous
FreeBSD conventions and the new GLIBC compatible parameter list.

MFH:		2022Q1
2022-01-14 20:47:11 +01:00
Tobias C. Berner 45526ecbee framework: Add new USES 'magick' for graphics/ImageMagick*
A new USES has been added to depend on ImageMagick.

	USES=magick

adds a LIB_DEPENDS on graphics/ImageMagick${IMAGEMAGICK_DEFAULT}.

If a specific version is required, use for example

	USES=magick:6        resp.     USES=magick:7

If only a build, run or test is required, use for example

	USES=magick:build    resp.     USES=magick:6,build,test

If a dependency on the nox11 flavor is required, use for example

	USES=magick:nox11    resp.     USES=magick:7,nox11,run,test

See magick.mk for more details on the available flags.

The tree has been completely converted to make use of this.

Approved by:	bapt
Differential Revision: https://reviews.freebsd.org/D32754
2021-12-11 14:50:53 +01:00
Ruslan Makhmatkhanov 625b44fe25 CHANGES: Fix typo 2021-11-22 11:50:20 +03:00
Baptiste Daroussin bcb098e384 fetchindex: make compression format configurable
Add INDEX_COMPRESSION_FORMAT as a variable a user can overwrite via
/etc/make.conf to allow the compression format used for INDEX to be
changed. Available compression formats are: bz2, xz and zst for now.

While here change the default compression format to be .xz (the
smallest), for environement where performance of unxz matters it can
switched to zst.

bz2 format is kept for compatibility with existing tooling.

In order to simplify the code, bsdcat(1) is now used for uncompressing
instead detecting the compression format manually and switch the
decompression tool manually

Note the bzip2 compression format is now considered as deprecated
2021-11-22 09:18:15 +01:00
Baptiste Daroussin bf0d51503b CHANGES: Add missing empty line 2021-10-10 21:45:09 +02:00
Baptiste Daroussin 00e6acceae CHANGES: document recent changes
USES=triggers and the removal INSTALLS_ICONS changes are now documented
2021-10-10 21:45:09 +02:00
Xin LI 974e13b501 net/openldap24-server: Make SASL permanent for OpenLDAP port.
PR:		ports/257374
Reviewed by:	obrien
Approved by:	portmgr (exp-run by antoine)
Differential Revision: https://reviews.freebsd.org/D31301
2021-08-01 01:32:35 -07:00
Tobias C. Berner 5c8adda949 multimedia/{py-,}mlt{-qt5,}: rename to multimedia/{py-,}mlt6{-qt5,}:
- To make it possible to easily import mlt-7 move the current port to
  a versioned directory.

- Add Mk/Uses/mlt.mk to make it easily possible to depend on a given mlt
  version:

  	USES=mlt:6

  will get you a dependency on multimedia/mlt6, while

	USES=mlt:7

  will get you a dependency on the soon to be added multimedia/mlt7

- Switch the port to use cmake as a build system
- While here, provide some more options to make it possible to have
  a leaner package if required

- Bump consumers after rename of the dependency
2021-07-30 20:14:36 +02:00
Mathieu Arnold 5e7bdbf4c1
CHANGES: Document the prepare-commit-msg hook.
(Side note, this commit message was created with it, and the "CHANGES:"
 was already available.)
2021-06-09 12:47:55 +02:00
Dmitry Marakasov 0729af4255 Mk: switch PYTHON_REL to 5 digits to support python 3.10.x
PR:		255013
Differential Revision:	https://reviews.freebsd.org/D29418
Exp-run by:	antoine
Approved by:	wen@, no objection from python@ or portmgr@
2021-05-25 16:55:43 +03:00
Matthias Andree 0e15b5e947 CHANGES: fix typo
fix trailing semicolon to colon on 20210327 date tag
2021-05-22 09:49:06 +02:00
Mathieu Arnold 5d33e04596
framework: Remove $FreeBSD$
Where appropriate fiddle with a few other things.
2021-04-06 16:27:10 +02:00
Baptiste Daroussin 0c5383c3b0 Add a new @touch keyword
it takes 1 pr N arguments, it creates each of the said files
if they do not exist yet

As it is using lua, it means it has the bonus of being cross installable,
rootdir friendly and sandboxed.

Reviewed by:	mat, manu
Differential Revision:	https://reviews.freebsd.org/D29426
2021-03-27 22:18:28 +00:00
Dmitry Marakasov 9d7d7e2ffc Fix indentation 2020-12-02 13:10:47 +00:00
Tobias C. Berner 9578fbc72f Add new default-version variant for librsvg2
New default version for librsvg2.

  Current versions of graphics/librsvg2 are using parts written in rust.
  For architectures that do not have support for rust, and for people
  who prefer not to have, or are not able to compile rust software due
  to hardware limitations, the version can be chosen via this new flag.

  The default on almost all architectures is rust.

  If you prefer no to use rust, add the following to your make.conf:

        DEFAULT_VERSIONS+=librsvg2=legacy

This makes the change committed in r554733 a bit more flexible for people
who are opposed to oxidation.

PR:		251014
Exp-run by:	antoine
2020-11-20 19:02:42 +00:00
Adam Weinberger db15051ca5 Add education virtual category
PR:		248402
Submitted by:	PauAmma
2020-11-20 07:16:06 +00:00
Baptiste Daroussin 6356d8c7e8 Patents are a complicated topic, and their regulation varies depending on
jurisdiction. Patents  are not necessarily related to the license and so
should not be connected to the license framework.

As a project we will officially remove all patent limitations within the
ports tree and leave it to the user or consumer to deal with their local
legislation to determine if they can use the software without legal
restrictions.

Approved by:	core
2020-11-12 16:11:37 +00:00
Mateusz Piotrowski 7036023b2a Do some wordsmithing on the 20201022 entry about Lua @shell. 2020-11-09 14:23:29 +00:00
Mateusz Piotrowski d1682723a1 Fix a typo in the 20150926 entry about @*exec keywords 2020-11-09 13:43:03 +00:00
Baptiste Daroussin 445c660582 Document the addition of @rmempty 2020-10-22 08:22:21 +00:00
Baptiste Daroussin da00cfe67e Fix typos and formatting 2020-10-22 08:09:05 +00:00
Baptiste Daroussin 945a9231f4 Document the @shell rewrite in lua 2020-10-22 08:08:17 +00:00
Danilo G. Baio dd3c7e0af3 Typo 2020-10-02 00:01:07 +00:00
Emmanuel Vadot ebad8741c0 Document the @sample keyword switch to lua. 2020-10-01 20:15:33 +00:00