From 1d6967e7a7ab3484001664a638e2bc976446af05 Mon Sep 17 00:00:00 2001 From: Gordon GECOS Date: Sat, 3 Aug 2024 09:15:29 -0400 Subject: init --- .gitignore | 2 ++ Makefile | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 .gitignore create mode 100644 Makefile diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d74def1 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +*.deb +wget-log.txt diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..a364f88 --- /dev/null +++ b/Makefile @@ -0,0 +1,49 @@ +SHELL = bash + +snapshot_uri_base = https://snapshot.debian.org/package + +kernel_version != uname -r +kernel_package_name != dpkg -S /boot/vmlinuz-$(kernel_version) | sed 's/:.*//' +kernel_package_version != dpkg-query --showformat='$${Version}\n' -W "$(kernel_package_name)" +kernel_source_package != dpkg-query --showformat='$${source:Package}\n' -W "$(kernel_package_name)" +arch != dpkg-architecture -q DEB_HOST_ARCH + +want_version = ${kernel_package_version} +want_package = linux-image-${arch} +wantvencoded != sed 's/-/%2B/g' <<< "${want_version}" +snapshot_uri = ${snapshot_uri_base}/${kernel_source_package}/${wantvencoded}/\#${want_package}_${want_version} +want_filename = ${want_package}_${want_version}_${arch}.deb + +sudo != [ $$(id -u) = 0 ] || echo sudo +dpkg := $(sudo) dpkg + +ifeq (,$(shell command -v hxprintlinks)) +$(shell $(sudo) apt install html-xml-utils >&2) +endif + +ifeq (,$(shell command -v wget)) +$(shell $(sudo) apt install wget >&2) +endif + +wanted_deb_uri != hxprintlinks "${snapshot_uri}" | \ + hxcopy -i "${snapshot_uri_base}" -o . | \ + hxclean | \ + hxselect -c -s '\n' 'a::attr(href)' | \ + grep -Fw -e '${want_filename}' | \ + head -1 + +.PHONY: install +install: ${want_filename} + ${dpkg} -E -i $^ + echo "${want_package} hold" | ${dpkg} --set-selections + +${want_filename}: + flock wget-log.txt \ + wget -a wget-log.txt --show-progress -c '${wanted_deb_uri}' -O $@.partial + mv -T -- $@.partial $@ + +info: + : '${want_package}' '${want_version}' + : '${want_filename}' + : '${wanted_deb_uri}' + dpkg -l linux-image\* | grep '^.i ' -- cgit v1.2.3