Commit graph

20 commits

Author SHA1 Message Date
Gleb Popov
b2f07f85ad Framework: Allow setting the 'vital' flag from a port
Approved by:	bapt
Differential Revision: https://reviews.freebsd.org/D48697
Sponsored by:	Future Crew, LLC
2025-01-28 15:02:38 +03:00
Baptiste Daroussin
c501f81fa7 Mk: depulicate WWW information
Stop duplication the WWW informations within the packages

Since september 2022 the WWW lines has been moved from pkg-descr
to Makefile, however the ports tree continued to push this info
at the end of pkg-descr automatically, which is a duplicated
information.

Differential Revision:	https://reviews.freebsd.org/D41523
Reviewed by:		mat
2023-08-21 17:50:16 +02:00
Bryan Drewery
f0191973ea Mk/Scripts: Fix potential error creating .metadir/+DESC
In some builds it could be possible that pkg-descr is not writable.
We could either install -m 0644 the file over or just let sh create
it.

This change also opens the destination file only once now.

Fixes: ddd0e820c
2022-12-13 21:11:01 -08:00
Stefan Eßer
45530097ae Mk/bsd.port.mk: support multiple URLs in WWW
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
2022-09-21 13:23:44 +02:00
Stefan Eßer
0d7e17c121 Mk/Scripts: protect URL string by enclosing it quotes
The format of the manifest file does not allow commas in values.
Since URLs may include commas, they need to be protected against
interpretation of these commas as field separators.

This update unbreaks the package generation for ports that have
a comma in the URL.

Approved by:	portmgr (implcit)
2022-09-09 18:46:47 +02:00
Stefan Eßer
ddd0e820c8 Mk/bsd.ports.mk: Add suppport for WWW in Makefiles
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
2022-09-07 21:32:54 +02:00
Guangyuan Yang
de745e3b9f Mk/*: Update the link about adopting ports
Approved by:	rene (portmgr), lwhsu (mentor)
Differential Revision:	https://reviews.freebsd.org/D30744
2021-06-20 19:29:13 -04: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
6b1ccfbb27 Remove upgrade script
It never actually really have been a thing, and can be done
directly in install/deinstall scripts

Reviewed by:	mat (portmgr)
Differential Revision:	https://reviews.freebsd.org/D29427
2021-03-29 07:42:20 +00:00
Mathieu Arnold
47b1e9c0c2 Ignore grep return value.
Most of the time, we use grep in a test, where its return value is
important.  In this instance, it is only used for filtering, and we do
not care about its return value, so ignore it.

PR:             250723
Exp-run by:     antoine
Differential Revision:  https://reviews.freebsd.org/D27007
2020-11-11 13:30:03 +00:00
Mathieu Arnold
f916081e1c Add set pipefail in most framework scripts.
set pipefail changes the pipeline return status from being the return
status of the last command to the last non 0 exit status of any command
in the pipeline.  This is needed to make sure all the commands in a
pipeline did actually return a non 0 status and not only the last one.

PR:		250723
Exp-run by:	antoine
Reviewed by:	bapt
Approved by:	bapt
Differential Revision:	https://reviews.freebsd.org/D27007
2020-11-11 13:29:52 +00:00
Mathieu Arnold
aeda355b1b Backout r554139. 2020-11-05 16:51:30 +00:00
Mathieu Arnold
e9b2078c6c Add set pipefail in most framework scripts.
set pipefail changes the pipeline return status from being the return
status of the last command to the last non 0 exit status of any command
in the pipeline.  This is needed to make sure all the commands in a
pipeline did actually return a non 0 status and not only the last one.
2020-11-05 16:42:35 +00:00
Baptiste Daroussin
86dce8416e Allow lua scripts in the framworks.
Bump the minimum required pkg version to a version that accepts
properly lua scripts

Lua script offers the advantages over shell scripts that they are
running in a capsicum sandbox and they are natively rootdir friendly

Reviewed by:		portmgr (mat)
Differential Revision:	https://reviews.freebsd.org/D21433
2020-04-29 14:01:05 +00:00
Mathieu Arnold
b174453dcd If pkg-message is not a UCL file, assume the message is "install" only.
Reviewed by:	adamw
Differential Revision:	https://reviews.freebsd.org/D21262
2019-08-19 12:18:16 +00:00
Mathieu Arnold
bd94d2c38d Use UCL for pkg-message
Remain backward compatible but use ucl for the pkg-messages, which allows to:
- append messages one after the other
- only print message on delete, install, upgrade from a version to another

If pkg-message starts with a [ we consider it should be a valid ucl file

The format is the following:
[
{ message: "Always print" },
{ message: "package being removed", type: remove },
{ message: "package being installed", type: install },
{ message: "package is being upgraded", type: upgrade },
{ message: "Upgrading from lower than 1.0", maximum_version: "1.0", type: upgrade },
{ message: "Upgrading from higher than 1.0", minimum_version: "1.0", type: upgrade  },
{ message: "Upgrading from >1.0 < 3.0", maximum_version: "3.0", minimum_version: "1.0",
]

Because it is ucl one can use some sugar like:
[
{ message = <<EOD
formatted
message 'with fancy things'
EOD
},
}

Submitted by:	bapt
Reviewed by:	bapt, mat
Differential Revision:	https://reviews.freebsd.org/D19310
2019-06-03 12:57:44 +00:00
Mathieu Arnold
bf064c8390 SC2006: Use $(..) instead of legacy ...
Backtick command substitution `STATEMENT` is legacy syntax with several
issues.

 - It has a series of undefined behaviors related to quoting in POSIX.
 - It imposes a custom escaping mode with surprising results.
 - It's exceptionally hard to nest.

$(STATEMENT) command substitution has none of these problems, and is
therefore strongly encouraged.

PR:		227109
Submitted by:	mat
Sponsored by:	Absolight
2018-06-01 16:20:54 +00:00
Bryan Drewery
6120a2f751 Exec less rm(1) for existing files.
Reported by:	mjg
Approved by:	portmgr (implicit)
2017-07-28 20:30:44 +00:00
Mathieu Arnold
b79eed7e66 Add a PKGMESSAGES variable that allows the framework to have more than
one PKGMESSAGE file.

This allows the framework to add messages to ports, without touching
their PKGMESSAGE file.

Sponsored by:	Absolight
2016-08-03 12:45:30 +00:00
Mathieu Arnold
5f1b1ae084 Extract create-manifest.
PR:		210198
Submitted by:	mat
Exp-run by:	antoine
Sponsored by:	The FreeBSD Foundation, Absolight
Differential Revision:	https://reviews.freebsd.org/D6779
2016-06-19 11:25:39 +00:00