Skip to content

Commit

Permalink
Merge pull request #237 from grml/mika/non-free-info
Browse files Browse the repository at this point in the history
scripts/GRMLBASE/95-package-information: get non-free info also without aptitude
  • Loading branch information
mika authored Dec 19, 2024
2 parents 17bf9e7 + d6d3743 commit 647a3af
Showing 1 changed file with 37 additions and 33 deletions.
70 changes: 37 additions & 33 deletions etc/grml/fai/config/scripts/GRMLBASE/95-package-information
Original file line number Diff line number Diff line change
Expand Up @@ -6,44 +6,48 @@
# License: This file is licensed under the GPL v2 or any later version.
################################################################################

set -u
set -e
set -eu -o pipefail

# FAI sets $target, but shellcheck does not know that.
target=${target:?}

if ! [ -w "$LOGDIR" ] ; then
echo "Error: can not write to ${LOGDIR}. Exiting.">&2
exit 1
else
# store package list for the build process logs as well:
COLUMNS=200 $ROOTCMD dpkg --list > "${LOGDIR}"/dpkg.list
COLUMNS=200 $ROOTCMD dpkg --get-selections > "${LOGDIR}"/dpkg.selections
# store list of packages sorted by size:
if [ -x "$target"/usr/bin/dpkg-query ] ; then
# shellcheck disable=SC2016 # Embedded $ is correct.
$ROOTCMD dpkg-query -W --showformat='${Package}\t${Installed-Size}\n' > \
"${LOGDIR}"/packages.size
fi
# store a list of non-free packages and their licenses
if $ROOTCMD test -x /usr/bin/aptitude ; then
echo "The following packages from the Debian non-free section are included in this release" \
> "${LOGDIR}"/nonfree-licenses.txt
echo >> "${LOGDIR}"/nonfree-licenses.txt
for pkg in $($ROOTCMD aptitude search '~i ~snon-free' -F '%p') ; do
echo "Package: ${pkg}" >> "${LOGDIR}"/nonfree-licenses.txt
echo "========================================================================" \
>> "${LOGDIR}"/nonfree-licenses.txt
if $ROOTCMD test -r "/usr/share/doc/${pkg}/copyright" ; then
$ROOTCMD cat "/usr/share/doc/${pkg}/copyright" >> "${LOGDIR}"/nonfree-licenses.txt
else
echo "${pkg} does not provide a copyright file" >> "${LOGDIR}"/nonfree-licenses.txt
fi
echo >> "${LOGDIR}"/nonfree-licenses.txt
done
gzip -9 "${LOGDIR}"/nonfree-licenses.txt
fi
if ! [ -w "${LOGDIR}" ] ; then
echo "Error: can not write to ${LOGDIR}. Exiting.">&2
exit 1
fi

# store package list:
COLUMNS=200 $ROOTCMD dpkg --list > "${LOGDIR}"/dpkg.list
COLUMNS=200 $ROOTCMD dpkg --get-selections > "${LOGDIR}"/dpkg.selections

# store list of packages sorted by size:
if [ -x "$target"/usr/bin/dpkg-query ] ; then
# shellcheck disable=SC2016 # Embedded $ is correct.
$ROOTCMD dpkg-query -W --showformat='${Package}\t${Installed-Size}\n' > \
"${LOGDIR}"/packages.size
fi

# store a list of non-free packages and their licenses
echo "The following packages from the Debian non-free section are included in this release" \
> "${LOGDIR}"/nonfree-licenses.txt
echo >> "${LOGDIR}"/nonfree-licenses.txt

# copyright information for non-free packages
non_free_pkgs=$($ROOTCMD apt-cache show '~i' | awk '/^Package: / {pkg=$2} /^Section: non-free/ {print pkg}')

for pkg in ${non_free_pkgs:-} ; do
echo "Package: ${pkg}" >> "${LOGDIR}"/nonfree-licenses.txt
echo "========================================================================" \
>> "${LOGDIR}"/nonfree-licenses.txt
if $ROOTCMD test -r "/usr/share/doc/${pkg}/copyright" ; then
$ROOTCMD cat "/usr/share/doc/${pkg}/copyright" >> "${LOGDIR}"/nonfree-licenses.txt
else
echo "${pkg} does not provide a copyright file" >> "${LOGDIR}"/nonfree-licenses.txt
fi
echo >> "${LOGDIR}"/nonfree-licenses.txt
done

gzip -9 "${LOGDIR}"/nonfree-licenses.txt

## END OF FILE #################################################################
# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=2

0 comments on commit 647a3af

Please sign in to comment.