Manages a local copy of the HardenedBSD ports tree
Find a file
0x1eef 4aaa685b3d Switch branch in 'portzap pull'
This commit covers a few changes:

* The 'portzap pull' command now switches to '$PORTZAP_BRANCH'
  if 'git branch --show-current' returns a different branch.

* The 'portzap pull' command fixes permissions and ownership on
  '/home/_portzap/ports/.git' before running any git commands. The
  owner and permissions can change by interacting with the
  git repository directly, as a user other than '_portzap'.

* doas.conf has been changed to be slightly more strict
2024-04-19 04:15:12 -03:00
.github/workflows Add shellcheck target 2024-04-02 13:40:16 -03:00
bin Add -v switch 2024-04-18 20:21:01 -03:00
libexec/portzap Switch branch in 'portzap pull' 2024-04-19 04:15:12 -03:00
man/man8 Fix portzap.8 2024-04-18 17:08:30 -03:00
share/portzap Switch branch in 'portzap pull' 2024-04-19 04:15:12 -03:00
.projectile Add HardenedBSD source 2023-01-29 07:48:09 -03:00
LICENSE License = 0BSD 2023-03-11 22:15:49 -03:00
Makefile Delegate 'portzap clone|pull' to the _portzap user (via doas) 2024-04-07 20:37:52 -03:00
README.md README: update 2024-04-18 21:31:54 -03:00

About

portzap is a utility that manages a local copy of the hardenedbsd ports tree. The copy of the ports tree is maintained by members of the _portzap group, and the copy of the ports tree can be installed to /usr/ports by root.

Examples

CLI

# Clone the hardenedbsd ports tree into /home/_portzap/ports/.
# This command is delegated to the '_portzap' user.
$ portzap clone

# Pull updates into /home/_portzap/ports/.
# This command is delegated to the '_portzap' user.
$ portzap pull

# Start over: erase /usr/ports/ and /home/_portzap/ports/.
# This command is delegated to the '_portzap' user.
$ portzap erase

# Install /home/_portzap/ports/ into /usr/ports/.
# This command requires root privileges.
# portzap install

# Add the portzap user, group and home directory.
# This command requires root privileges.
# portzap setup

ENVIRONMENT

  • $PORTZAP_GITURL
    The URL to a git repository.
    Default: https://git.hardenedbsd.org/hardenedbsd/ports.git.

  • $PORTZAP_BRANCH
    The git branch to clone and pull updates from.
    Default: hardenedbsd/main.

  • $PORTZAP_INSTALLDIR
    The directory where the ports collection will be installed.
    Default: /usr/ports/.

Install

Port

portzap is available as a hardenedbsd port.
pkg install portzap should work too but expect slower updates.

Source

The most recent version of portzap can be installed directly via git:

$ git clone https://github.com/0x1eef/portzap.git
$ cd portzap
# make install
# portzap setup
# pw groupmod -n _portzap -m <user>

Requirements

  • doas (pkg install doas)
  • git (pkg install git)

Sources

License

BSD Zero Clause.
See LICENSE.