firmware: de-dup firmware list parsing
Edit: There were four copies of the same logic to keep in sync; Originally this patch deduplicated each file, but leaving a copy of the new function in each, thus reducing the duplication but not eliminating it. A later patch moved it into a shared function file following further enhancements to the code in question. This has since been revised to have the function moved to a shared file here, which simplifies and gives a cleaner diff. Gbp-Dch: Short Closes: #952908
This commit is contained in:
parent
4933beffce
commit
aa745de0bb
|
@ -0,0 +1,37 @@
|
|||
#!/bin/sh
|
||||
|
||||
## live-build(7) - System Build Scripts
|
||||
## Copyright (C) 2006-2015 Daniel Baumann <mail@daniel-baumann.ch>
|
||||
##
|
||||
## This program comes with ABSOLUTELY NO WARRANTY; for details see COPYING.
|
||||
## This is free software, and you are welcome to redistribute it
|
||||
## under certain conditions; see COPYING for details.
|
||||
|
||||
# Updates FIRMWARE_PACKAGES with list of packages determined from specified
|
||||
# archive areas of specified distro, based upon reading archive content file.
|
||||
#
|
||||
# Shared by chroot_firmware and installer_debian-installer
|
||||
#
|
||||
# Assumption: firmware packages install files into /lib/firmware
|
||||
Firmware_List_From_Contents () {
|
||||
local MIRROR_CHROOT="${1}"
|
||||
local DISTRO_CHROOT="${2}"
|
||||
local ARCHIVE_AREAS="${3}"
|
||||
|
||||
local CONTENTS_FILE="cache/contents.chroot/contents.${DISTRO_CHROOT}.${LB_ARCHITECTURES}"
|
||||
|
||||
# Ensure fresh
|
||||
rm -f "${CONTENTS_FILE}"
|
||||
|
||||
for _ARCHIVE_AREA in ${ARCHIVE_AREAS}
|
||||
do
|
||||
local CONTENTS_URL="${MIRROR_CHROOT}/dists/${DISTRO_CHROOT}/${_ARCHIVE_AREA}/Contents-${LB_ARCHITECTURES}.gz"
|
||||
|
||||
wget ${WGET_OPTIONS} "${CONTENTS_URL}" -O - | gunzip -c >> "${CONTENTS_FILE}"
|
||||
done
|
||||
|
||||
FIRMWARE_PACKAGES="${FIRMWARE_PACKAGES} $(awk '/^lib\/firmware/ { print $2 }' "${CONTENTS_FILE}" | sort -u)"
|
||||
|
||||
# Don't waste disk space preserving since always getting fresh
|
||||
rm -f "${CONTENTS_FILE}"
|
||||
}
|
|
@ -52,25 +52,13 @@ Check_package host /usr/bin/wget wget
|
|||
#esac
|
||||
|
||||
# Include firmware packages
|
||||
# Assumption: firmware packages install files into /lib/firmware
|
||||
|
||||
# Get all firmware packages names
|
||||
mkdir -p cache/contents.chroot
|
||||
|
||||
FIRMWARE_PACKAGES=""
|
||||
|
||||
CONTENTS_FILE="cache/contents.chroot/contents.${LB_PARENT_DISTRIBUTION_CHROOT}.${LB_ARCHITECTURES}"
|
||||
|
||||
rm -f "${CONTENTS_FILE}"
|
||||
|
||||
for _PARENT_ARCHIVE_AREA in ${LB_PARENT_ARCHIVE_AREAS}
|
||||
do
|
||||
CONTENTS_URL="${LB_PARENT_MIRROR_CHROOT}/dists/${LB_PARENT_DISTRIBUTION_CHROOT}/${_PARENT_ARCHIVE_AREA}/Contents-${LB_ARCHITECTURES}.gz"
|
||||
|
||||
wget ${WGET_OPTIONS} "${CONTENTS_URL}" -O - | gunzip -c >> "${CONTENTS_FILE}"
|
||||
done
|
||||
|
||||
FIRMWARE_PACKAGES="${FIRMWARE_PACKAGES} $(awk '/^lib\/firmware/ { print $2 }' "${CONTENTS_FILE}" | sort -u)"
|
||||
Firmware_List_From_Contents "${LB_PARENT_MIRROR_CHROOT}" "${LB_PARENT_DISTRIBUTION_CHROOT}" "${LB_PARENT_ARCHIVE_AREAS}"
|
||||
|
||||
if echo ${LB_PARENT_ARCHIVE_AREAS} | grep -qs "non-free"
|
||||
then
|
||||
|
@ -93,22 +81,9 @@ if [ "${LB_DERIVATIVE}" = "true" ]
|
|||
then
|
||||
# FIXME: account for the fact that PARENT_DISTRIBUTION and DISTRIBUTION might be the same (to not have overlapping cache files for contents).
|
||||
|
||||
CONTENTS_FILE="cache/contents.chroot/contents.${LB_DISTRIBUTION_CHROOT}.${LB_ARCHITECTURES}"
|
||||
|
||||
rm -f "${CONTENTS_FILE}"
|
||||
|
||||
for _ARCHIVE_AREA in ${LB_ARCHIVE_AREAS}
|
||||
do
|
||||
CONTENTS_URL="${LB_MIRROR_CHROOT}/dists/${LB_DISTRIBUTION_CHROOT}/${_ARCHIVE_AREA}/Contents-${LB_ARCHITECTURES}.gz"
|
||||
|
||||
wget ${WGET_OPTIONS} "${CONTENTS_URL}" -O - | gunzip -c >> "${CONTENTS_FILE}"
|
||||
done
|
||||
|
||||
FIRMWARE_PACKAGES="${FIRMWARE_PACKAGES} $(awk '/^lib\/firmware/ { print $2 }' "${CONTENTS_FILE}" | sort -u)"
|
||||
Firmware_List_From_Contents "${LB_MIRROR_CHROOT}" "${LB_DISTRIBUTION_CHROOT}" "${LB_ARCHIVE_AREAS}"
|
||||
fi
|
||||
|
||||
rm -f "${CONTENTS_FILE}"
|
||||
|
||||
# Drop section and keep package names only
|
||||
for _PACKAGE in ${FIRMWARE_PACKAGES}
|
||||
do
|
||||
|
|
|
@ -337,28 +337,16 @@ then
|
|||
DI_PACKAGES="${DI_PACKAGES} console-setup keyboard-configuration kbd"
|
||||
;;
|
||||
esac
|
||||
|
||||
# Include firmware packages
|
||||
if [ "${LB_FIRMWARE_BINARY}" = "true" ]
|
||||
then
|
||||
# Assumption: firmware packages install files into /lib/firmware
|
||||
|
||||
# Get all firmware packages names
|
||||
mkdir -p cache/contents.binary
|
||||
|
||||
FIRMWARE_PACKAGES=""
|
||||
|
||||
CONTENTS_FILE="cache/contents.chroot/contents.${LB_PARENT_DISTRIBUTION_CHROOT}.${LB_ARCHITECTURES}"
|
||||
|
||||
rm -f "${CONTENTS_FILE}"
|
||||
|
||||
for _PARENT_ARCHIVE_AREA in ${LB_PARENT_ARCHIVE_AREAS}
|
||||
do
|
||||
CONTENTS_URL="${LB_PARENT_MIRROR_CHROOT}/dists/${LB_PARENT_DISTRIBUTION_CHROOT}/${_PARENT_ARCHIVE_AREA}/Contents-${LB_ARCHITECTURES}.gz"
|
||||
|
||||
wget ${WGET_OPTIONS} "${CONTENTS_URL}" -O - | gunzip -c >> "${CONTENTS_FILE}"
|
||||
done
|
||||
|
||||
FIRMWARE_PACKAGES="${FIRMWARE_PACKAGES} $(awk '/^lib\/firmware/ { print $2 }' "${CONTENTS_FILE}" | sort -u)"
|
||||
Firmware_List_From_Contents "${LB_PARENT_MIRROR_CHROOT}" "${LB_PARENT_DISTRIBUTION_CHROOT}" "${LB_PARENT_ARCHIVE_AREAS}"
|
||||
|
||||
if echo ${LB_PARENT_ARCHIVE_AREAS} | grep -qs "non-free"
|
||||
then
|
||||
|
@ -381,22 +369,9 @@ then
|
|||
then
|
||||
# FIXME: account for the fact that PARENT_DISTRIBUTION and DISTRIBUTION might be the same (to not have overlapping cache files for contents).
|
||||
|
||||
CONTENTS_FILE="cache/contents.chroot/contents.${LB_DISTRIBUTION_CHROOT}.${LB_ARCHITECTURES}"
|
||||
|
||||
rm -f "${CONTENTS_FILE}"
|
||||
|
||||
for _ARCHIVE_AREA in ${LB_ARCHIVE_AREAS}
|
||||
do
|
||||
CONTENTS_URL="${LB_MIRROR_CHROOT}/dists/${LB_DISTRIBUTION_CHROOT}/${_ARCHIVE_AREA}/Contents-${LB_ARCHITECTURES}.gz"
|
||||
|
||||
wget ${WGET_OPTIONS} "${CONTENTS_URL}" -O - | gunzip -c >> "${CONTENTS_FILE}"
|
||||
done
|
||||
|
||||
FIRMWARE_PACKAGES="${FIRMWARE_PACKAGES} $(awk '/^lib\/firmware/ { print $2 }' "${CONTENTS_FILE}" | sort -u)"
|
||||
Firmware_List_From_Contents "${LB_MIRROR_CHROOT}" "${LB_DISTRIBUTION_CHROOT}" "${LB_ARCHIVE_AREAS}"
|
||||
fi
|
||||
|
||||
rm -f "${CONTENTS_FILE}"
|
||||
|
||||
# Drop section and keep package names only
|
||||
for _PACKAGE in ${FIRMWARE_PACKAGES}
|
||||
do
|
||||
|
|
Loading…
Reference in New Issue