X-Git-Url: https://git.proxmox.com/?p=pve-firmware.git;a=blobdiff_plain;f=Makefile;h=26837f4eccf639cd32aa49d1fd8cad3c59391b1c;hp=c0d3ba8b9cff1c249edf811d937d394cf95f8051;hb=HEAD;hpb=c91c823a10404dd19bf671451f998334603063ee diff --git a/Makefile b/Makefile index c0d3ba8..4999601 100644 --- a/Makefile +++ b/Makefile @@ -1,41 +1,66 @@ include /usr/share/dpkg/pkg-info.mk -FW_DEB=pve-firmware_${DEB_VERSION}_all.deb +PACKAGE = pve-firmware -GITVERSION:=$(shell git rev-parse HEAD) +BUILDDIR ?= $(PACKAGE)-$(DEB_VERSION_UPSTREAM) +ORIG_SRC_TAR=$(PACKAGE)_$(DEB_VERSION_UPSTREAM).orig.tar.gz -export SOURCE_DATE_EPOCH ?= $(shell dpkg-parsechangelog -STimestamp) - -DEBS=${FW_DEB} +DSC=$(PACKAGE)_$(DEB_VERSION_UPSTREAM_REVISION).dsc +FW_DEB=$(PACKAGE)_$(DEB_VERSION)_all.deb +DEBS=$(FW_DEB) .PHONY: deb -deb: ${DEBS} +deb: $(DEBS) + +$(FW_DEB): $(BUILDDIR) + cd $(BUILDDIR); dpkg-buildpackage -b -us -uc + +.PHONY: dsc +dsc: + $(MAKE) clean + $(MAKE) $(DSC) + lintian $(DSC) -${FW_DEB}: fwdata - cp -a debian fwdata - echo "git clone git://git.proxmox.com/git/pve-firmware.git\\ngit checkout ${GITVERSION}" >fwdata/debian/SOURCE - cd fwdata; dpkg-buildpackage -b -us -uc +$(DSC): $(ORIG_SRC_TAR) $(BUILDDIR) + cd $(BUILDDIR); dpkg-buildpackage -S -us -uc -d +sbuild: $(DSC) + sbuild $(DSC) + +# NOTE: when collapsing FW lists keep major.minor still separated, so we can sunset the older ones +# without user impact safely. The last oldstable list needs to be kept avoid breakage on upgrade .PHONY: fw.list -fw.list: fwlist-5.4.86-1-pve -fw.list: fwlist-5.11.0-1-pve -fw.list: fwlist-5.11.21-1-pve -fw.list: fwlist-5.11.22-4-pve -fw.list: fwlist-5.13.14-1-pve -fw.list: fwlist-5.13.19-1-pve - sort -u $^ > $@ - -fwdata: linux-firmware.git/WHENCE dvb-firmware.git/README fw.list - rm -rf fwdata fwdata.tmp - mkdir -p fwdata.tmp/lib/firmware - cd linux-firmware.git; ./copy-firmware.sh -v ../fwdata.tmp/lib/firmware/ - ./assemble-firmware.pl fw.list fwdata.tmp/lib/firmware - find fwdata.tmp/lib/firmware -empty -type d -delete - install -d fwdata.tmp/usr/share/doc/pve-firmware - cp linux-firmware.git/WHENCE fwdata.tmp/usr/share/doc/pve-firmware/README - install -d fwdata.tmp/usr/share/doc/pve-firmware/licenses - cp linux-firmware.git/LICEN[CS]E* fwdata.tmp/usr/share/doc/pve-firmware/licenses - mv fwdata.tmp fwdata +fw.list: fwlist-5.15.x.y-pve +fw.list: fwlist-iwlwifi-extra +fw.list: fwlist-6.2.2-1-pve +fw.list: fwlist-6.2.6-1-pve +fw.list: fwlist-6.2.16-11-pve +fw.list: fwlist-6.5.3-1-pve +fw.list: fwlist-6.8.1-1-pve + rm -f $@.tmp $@ + sort -u $^ > $@.tmp + mv $@.tmp $@ + +$(ORIG_SRC_TAR): $(BUILDDIR) + tar czf $(ORIG_SRC_TAR) --exclude="$(BUILDDIR)/debian" $(BUILDDIR) + +$(BUILDDIR): linux-firmware.git/WHENCE dvb-firmware.git/README fw.list + rm -rf $@ $@.tmp + mkdir -p $@.tmp/lib/firmware + cp -a debian $@.tmp + echo "git clone git://git.proxmox.com/git/pve-firmware.git\\ngit checkout $$(git rev-parse HEAD)" >$@.tmp/debian/SOURCE + cd linux-firmware.git; ./copy-firmware.sh -v ../$@.tmp/lib/firmware/ + ./assemble-firmware.pl fw.list $@.tmp/lib/firmware + find $@.tmp/lib/firmware -empty -type d -delete + install -d $@.tmp/usr/share/doc/pve-firmware + cp linux-firmware.git/WHENCE $@.tmp/usr/share/doc/pve-firmware/README + install -d $@.tmp/usr/share/doc/pve-firmware/licenses + cp linux-firmware.git/LICEN[CS]E* $@.tmp/usr/share/doc/pve-firmware/licenses + # we only compress big ones that almost definitively ain't required in the initrd + # or are so big and unbuyable (netronome...) + cd $@.tmp/lib/firmware; find . -type f \( -name 'i[wb][lt]*' -o -path '*/netronome/*' \) -print0 | xargs -0 -n1 -P0 -- xz -C crc32 + cd $@.tmp/lib/firmware; find . -xtype l -print0 | xargs -0 -n1 -P0 -- sh -c 'ln -sf "$$(readlink "$$0").xz" "$$0"; mv "$$0" "$$0.xz"' + mv $@.tmp $@ # upgrade to current master .PHONY: update_modules @@ -48,9 +73,11 @@ submodule dvb-firmware.git/README linux-firmware.git/WHENCE: test -f "linux-firmware.git/WHENCE" || git submodule update --init .PHONY: upload -upload: ${DEBS} - tar cf - ${DEBS} | ssh repoman@repo.proxmox.com -- upload --product pve,pmg,pbs --dist bullseye +upload: UPLOAD_DIST ?= $(DEB_DISTRIBUTION) +upload: $(DEBS) + tar cf - $(DEBS) | ssh repoman@repo.proxmox.com -- upload --product pve,pmg,pbs --dist $(UPLOAD_DIST) .PHONY: clean clean: - rm -rf fwdata fw.list *.deb *.buildinfo *.dsc *.changes + rm -rf $(PACKAGE)-[0-9]*/ + rm -f $(PACKAGE)*.tar* *.deb *.dsc *.changes *.dsc *.buildinfo *.build