Add support for FLAVORs (trade-off between slowness and functionality.
This commit is contained in:
parent
0596c76c90
commit
29bb76c04a
2 changed files with 26 additions and 4 deletions
|
@ -2,7 +2,10 @@
|
||||||
|
|
||||||
## Description
|
## 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>
|
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.
|
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
|
## Usage
|
||||||
No command line arguments.Simply run it as a bourne shell script.<br>
|
No command line arguments.Simply run it as a bourne shell script.<br>
|
||||||
|
@ -14,8 +17,9 @@ You need to edit the script and set variables in it.
|
||||||
|
|
||||||
### Variables for configuration
|
### Variables for configuration
|
||||||
#### BLOCKLISTS
|
#### BLOCKLISTS
|
||||||
ports origins you want to block from building.<br>
|
Origins of ports you want to block from building.<br>
|
||||||
Each origins must be the form poudriere can accept.<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.
|
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.
|
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.
|
||||||
|
|
|
@ -40,6 +40,8 @@ TMPFILE=${LISTFILE}-`id -u`-`date "+%Y%m%d%H%M%S"`
|
||||||
echo Output = ${LISTDIR}/${LISTFILE}
|
echo Output = ${LISTDIR}/${LISTFILE}
|
||||||
echo Temporary = ${TMPDIR}/${TMPFILE}
|
echo Temporary = ${TMPDIR}/${TMPFILE}
|
||||||
|
|
||||||
|
# End configurations section.
|
||||||
|
|
||||||
|
|
||||||
# Cleanup old lists if exists, and rotate list.
|
# Cleanup old lists if exists, and rotate list.
|
||||||
|
|
||||||
|
@ -50,15 +52,31 @@ if [ -f ${LISTDIR}/${LISTFILE}.old ] ; then chmod 666 ${LISTDIR}/${LISTFILE}.old
|
||||||
|
|
||||||
# Regenerate list with newly installed ports.
|
# Regenerate list with newly installed ports.
|
||||||
|
|
||||||
for PORT in `pkg query -a %n` ; do
|
for PACKAGE in `pkg query -a %n` ; do
|
||||||
|
PORT=`pkg query %o ${PACKAGE}`
|
||||||
|
FLAVOR=`pkg info -A ${PACKAGE} | fgrep "flavor" | cut -f 4 -w`
|
||||||
FLG=NO
|
FLG=NO
|
||||||
for NONEED in ${BLOCKLISTS} ; do
|
for NONEED in ${BLOCKLISTS} ; do
|
||||||
|
if [ -n ${FLAVOR} ] ; then
|
||||||
|
if [ ${PORT}@${FLAVOR} = ${NONEED} ] ; then FLG="YES" ; fi
|
||||||
|
fi
|
||||||
if [ ${PORT} = ${NONEED} ] ; then FLG="YES" ; fi
|
if [ ${PORT} = ${NONEED} ] ; then FLG="YES" ; fi
|
||||||
done
|
done
|
||||||
fgrep "${PORT}\|\|" ${PORTSDIR}/MOVED > /dev/null
|
fgrep "${PORT}\|\|" ${PORTSDIR}/MOVED > /dev/null
|
||||||
RET=$?
|
RET=$?
|
||||||
if [ 0 -eq $((RET)) ] ; then FLG="YES" ; fi
|
if [ 0 -eq $((RET)) ] ; then FLG="YES" ; fi
|
||||||
if [ "NO" = ${FLG} ] ; then echo ${PORT} >> ${TMPDIR}/${TMPFILE} ; fi
|
if [ -n ${FLAVOR} ] ; then
|
||||||
|
fgrep "${PORT}@${FLAVOR}\|\|" ${PORTSDIR}/MOVED > /dev/null
|
||||||
|
RET=$?
|
||||||
|
if [ 0 -eq $((RET)) ] ; then FLG="YES" ; fi
|
||||||
|
fi
|
||||||
|
if [ "NO" = ${FLG} ] ; then
|
||||||
|
if [ -z ${FLAVOR} ] ; then
|
||||||
|
echo ${PORT} >> ${TMPDIR}/${TMPFILE}
|
||||||
|
else
|
||||||
|
echo ${PORT}@${FLAVOR} >> ${TMPDIR}/${TMPFILE}
|
||||||
|
fi
|
||||||
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
sort ${TMPDIR}/${LISTFILE} | uniq > ${LISTDIR}/${LISTFILE}
|
sort ${TMPDIR}/${LISTFILE} | uniq > ${LISTDIR}/${LISTFILE}
|
||||||
|
|
Loading…
Reference in a new issue