Files
espos-kernel-metapackage/scripts/build-metapackage
T

76 lines
2.4 KiB
Bash
Executable File

#!/bin/sh
set -eu
umask 022
artifact_dir=${1:-kernel-artifacts}
output_dir=${2:-dist}
metadata_file=$(mktemp)
staging_dir=$(mktemp -d)
trap 'rm -f "$metadata_file"; rm -rf "$staging_dir"' EXIT HUP INT TERM
"$(dirname "$0")/detect-kernel-packages" "$artifact_dir" > "$metadata_file"
. "$metadata_file"
case "$METAPACKAGE_VERSION" in
*[!0-9A-Za-z.+:~-]*|'')
echo "Versión Debian no válida: $METAPACKAGE_VERSION" >&2
exit 1
;;
esac
mkdir -p "$staging_dir/DEBIAN" "$staging_dir/usr/share/doc/espos-kernel" "$output_dir"
cat > "$staging_dir/DEBIAN/control" <<EOF
Package: espos-kernel
Version: $METAPACKAGE_VERSION
Architecture: all
Maintainer: espOS Project <danilacasito8@gmail.com>
Depends: $IMAGE_PACKAGE, $HEADERS_PACKAGE
Section: kernel
Priority: optional
Description: espOS kernel metapackage
This metapackage installs the current espOS kernel image and headers.
EOF
cat > "$staging_dir/usr/share/doc/espos-kernel/copyright" <<'EOF'
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: espos-kernel
Source: https://github.com/esposlinux/espos-kernel-metapackage
Files: *
Copyright: 2026 espOS Project
License: GPL-2+
This package may be redistributed and/or modified under the terms of the GNU
General Public License version 2 or (at your option) any later version.
EOF
if [ -n "${SOURCE_DATE_EPOCH:-}" ]; then
build_date=$(date -u -R -d "@$SOURCE_DATE_EPOCH")
else
build_date=$(date -R)
fi
cat > "$staging_dir/usr/share/doc/espos-kernel/changelog.Debian" <<EOF
espos-kernel ($METAPACKAGE_VERSION) espos-unstable; urgency=medium
* Automatically generated metapackage for espOS kernel $KERNEL_VERSION.
-- espOS Project <danilacasito8@gmail.com> $build_date
EOF
gzip -9n "$staging_dir/usr/share/doc/espos-kernel/changelog.Debian"
find "$staging_dir" -type d -exec chmod 0755 {} +
find "$staging_dir" -type f -exec chmod 0644 {} +
chmod 0755 "$staging_dir/DEBIAN"
package_file="$output_dir/espos-kernel_${METAPACKAGE_VERSION}_all.deb"
dpkg-deb --root-owner-group --build "$staging_dir" "$package_file"
test "$(dpkg-deb -f "$package_file" Package)" = espos-kernel
test "$(dpkg-deb -f "$package_file" Architecture)" = all
test "$(dpkg-deb -f "$package_file" Version)" = "$METAPACKAGE_VERSION"
test "$(dpkg-deb -f "$package_file" Depends)" = "$IMAGE_PACKAGE, $HEADERS_PACKAGE"
printf 'Creado %s para kernel %s\n' "$package_file" "$KERNEL_VERSION"