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 '