GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
PORTEDIT(1) FreeBSD General Commands Manual PORTEDIT(1)

portedit
edit and refactor FreeBSD Ports Collection Makefiles

portedit apply list

portedit apply edit [-D[context]] [-diuU] [-w wrapcol] [Makefile]

portedit bump-revision [-D[context]] [-diuU] [-w wrapcol] [Makefile]

portedit bump-epoch [-D[context]] [-diuU] [-w wrapcol] [Makefile]

portedit get variable-regexp [Makefile]

portedit merge [-D[context]] [-diuU] [-w wrapcol] [-e expr] [Makefile]

portedit sanitize-append [-D[context]] [-diuU] [-w wrapcol] [Makefile]

portedit set-version [-D[context]] [-diuU] [-w wrapcol] version [Makefile]

portedit unknown-targets [Makefile]

portedit unknown-vars [Makefile]

portedit is a tool for editing and refactoring FreeBSD Ports Collection Makefiles.

If the optional Makefile argument is not given, the Makefile will be read from stdin.

The following options are shared between the bump-epoch, bump-revision, merge, sanitize-append, set-version commands and portfmt(1).

[context]
Output a unified diff from the original to the formatted version. This can optionally be followed by the number of context lines. It defaults to 3 lines of context. For full context use 0.
Dump the AST to stdout. This is only useful for debugging purposes.
Format Makefile in-place instead of writing the result to stdout.
Leave variables unsorted.
Always sort variables.
wrapcol
Sets the wrapping column to wrapcol (default: 80). This is a goal not a hard value. It will be ignored for several variables like COMMENT, DISTFILES, MASTER_SITES, etc.

With a value of -1 it is ignored for all variables. Variables with wrapped tokens over multiple lines will be concatenated onto a single line.

portedit apply list

List all available edits.

portedit apply edit [-D[context]] [-diuU] [-w wrapcol] [Makefile]

Run the selected edit.

portedit bump-epoch [-D[context]] [-diuU] [-w wrapcol] [Makefile]

Same as bump-revision but for PORTEPOCH.

portedit bump-revision [-D[context]] [-diuU] [-w wrapcol] [Makefile]

Increments PORTREVISION by one. It will be inserted if not already present in the Makefile. If PORTREVISION is not currently in the right place it will be moved as part of the operation.

portedit get variable-regexp [Makefile]

Returns the raw tokens of a variable matching the extended regular expression (see re_format(7)) variable-regexp.

portedit merge [-D[context]] [-diuU] [-w wrapcol] [-e expr] [Makefile]

Merges files in make(1) syntax into Makefile. The input is read from stdin in the normal case, but one or more -e can be used to specify the input instead. Each -e is treated as if it would be an input line.

This is currently limited to variables only. Conditionals and targets are ignored.

The != modifier is overloaded to delete variables. += will append to the specified variable. No deduplication of tokens happens yet.

Variables in the target Makefile should be in the order as suggested by portclippy(1) for best results when inserting new variables.

portedit sanitize-append [-D[context]] [-diuU] [-w wrapcol] [Makefile]

Sanitize += in Makefiles before bsd.port.options.mk or bsd.port.pre.mk. This prevents leaking variable values from the build environment. CXXFLAGS, CFLAGS, LDFLAGS, RUSTFLAGS will not be sanitized since users might want to set optimization flags that affect port builds in their environment.

portedit set-version [-D[context]] [-diuU] [-w wrapcol] version [Makefile]

Sets the port version. If the port currently has PORTVERSION it will be used again for the new version. Otherwise it defaults to DISTVERSION.

PORTREVISION will be removed (reset to 0). However special care is taken for slave ports where PORTREVISION will not be removed and will be set to 0 explicitly to prevent inheriting the revision from the master port.

It tries to be smart based on the format of version.

If version starts with the current value of DISTVERSIONPREFIX or ends with the current value of DISTVERSIONSUFFIX, it will be trimmed accordingly to set DISTVERSION or PORTVERSION correctly.

If version is in the format as returned by git describe --tags, DISTVERSION{PREFIX,SUFFIX} will be set accordingly.

portedit unknown-targets [Makefile]

List targets that are not known to portedit or portclippy(1).

portedit unknown-vars [Makefile]

List variables that are not known to portedit or portclippy(1).

The following environment variables affect the execution of portedit:
If defined portedit will output text with ANSI colors even when stdout is not a tty or NO_COLOR is set.
If defined colors will be disabled.

portedit will exit with one of the following values:
0
Success.
1
An error occurred.
2
There were changes when compared to the original file. Only possible with -D.

Append pkgconfig to USES and delete MASTER_SITES:
$ printf 'USES+=pkgconfig\nMASTER_SITES!=' | portedit merge -i Makefile

Or alternatively using -e:

$ portedit merge -i -e 'USES+=pkgconfig' -e 'MASTER_SITES!=' Makefile

During maintainance of USES=cargo ports we have to regenerate CARGO_CRATES and related variables based on output of make cargo-crates. We can merge the output of this command into our Makefile with portedit merge:

$ make cargo-crates
CARGO_CRATES=	# ...
$ make cargo-crates | portedit merge -i Makefile

We have to run make cargo-crates twice since the first time the output might not be clean and might contain framework messages.

A port that is using a versioning scheme that is derived from git describe --tags might have

DISTVERSIONPREFIX=	v
DISTVERSION=	0.9.2-259
DISTVERSIONSUFFIX=	-gc07c115

To update it we can run

$ portedit set-version -i v0.9.2-279-gc23f123

The triple will have been updated accordingly:

DISTVERSIONPREFIX=	v
DISTVERSION=	0.9.2-279
DISTVERSIONSUFFIX=	-gc23f123

portclippy(1), portfmt(1)

Tobias Kortkamp <tobik@FreeBSD.org>
September 19, 2021 FreeBSD 13.1-RELEASE

Search for    or go to Top of page |  Section 1 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.