sh_scripts/poudlist-all/README.md

47 lines
2.3 KiB
Markdown

# poudlist-all.sh
## Description
A small script to generate a list of all ports installed, excluding leaf ports which you don't want to be rebuilt in conjunction of others.<br>
The author created this script because `poudriere bulk -a -j jailname` forces rebuilding ALL ports, which any of ports they depends on are updated, regardless it's too time-consuming or not.<br>
This script recognizes FLAVORS.
The logic to support FLAVORs are tricky, as pkg does not support providing to list all installed ports as category/origin[@flavor] format.<br>
Currently, flavors of individual ports installed is listed only in annotations with other entries.
## Usage
No command line arguments.Simply run it as a bourne shell script.<br>
Once the resulting list is generated (default: /poudriere/pkglist.all), you can run `poudriere bulk -f /poudriere/pkglist.all -j jailname` and rebuild too huge monster leaves once it finishes.
## Configuing the script
No configuration files are supported.<br>
You need to edit the script and set variables in it.
### Variables for configuration
#### BLOCKLISTS
Origins of ports you want to block from building.<br>
Each origins must be the form poudriere can accept.<br>
For ports having flavors, if you want to block specific flavor only, you can specify the flavor by adding @flavor like `textproc/fcitx5-qt@qt6`. Otherwise, all flavors installed for the origin are blocked from listing.<br>
Note that poudriere does not block building listed ports if it is depended upon by any non-listed ports.
Beware! If the origin is NOT a leaf ports, you must specify ALL origins of the ports/pkgs which depends on it, for example, japanese/libreoffice as the actual leaf of editors/libreoffice must be specified in conjunction with editors/libreoffice.
#### PORTSDIR
The directory where ports tree to be used exists.<br>
Default is where vanilla FreeBSD expects: /usr/ports
#### LISTDIR
The directory where the list is generated.<br>
Default is: /poudriere
#### LISTFILE
The file name of the list to be generated.<br>
Default is: pkglist.all
#### TMPDIR
The directory where temporary working file is generated.<br>
Requires Read/Write permission for the user running this script.
#### TMPFILE
The file name of the temporary working file to be used.<br>
Default is the string of LISTFILE appended uid, date and time.<br>
So would be no need to modify.