diff --git a/rpm/Makefile b/rpm/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..8b85814204cc941be29bfe65a8410c61930526b2 --- /dev/null +++ b/rpm/Makefile @@ -0,0 +1,40 @@ +PWD = $(shell pwd) +VERSION = 1.0-1 +GPG_HEADLESS = --openpgp --decrypt --no-auto-check-trustdb --batch --no-tty --status-fd 1 + +RPM_ROOT = example +RPM_ARCH = noarch +SPEC_FILES = $(wildcard $(RPM_ROOT)/SPECS/*.spec) +RPM_PACKAGE = $(join $(addsuffix ../RPMS/$(RPM_ARCH)/, $(dir $(SPEC_FILES))), $(notdir $(SPEC_FILES:.spec=-$(VERSION).$(RPM_ARCH).rpm))) + +META_ROOT = meta + +default: all + +$(RPM_PACKAGE): $(SPEC_FILES) + cd $(RPM_ROOT); rpmbuild --define "%_topdir $(PWD)/$(RPM_ROOT)" -v -ba SPECS/$(shell basename $<) + +all: $(RPM_PACKAGE) repodata/repomd.xml trash + @for rpm in $(RPM_PACKAGE); do rpm -Kv "$(RPM_PACKAGE)" 2>&1 | grep -q "NOKEY" || echo "UNSIGNED `basename $(RPM_PACKAGE)`"; done + @#ls -1 $(META_DATA) + +rpm: $(RPM_PACKAGE) + +repodata/repomd.xml: $(RPM_PACKAGE) + @for pkg in $(RPM_PACKAGE); do rpm=`readlink -m $$pkg`; ln -s -f $$rpm $(META_ROOT)/`basename $$rpm`; done + cd $(META_ROOT); ./stubrepo-rpm.sh *.rpm + +meta: repodata/repomd.xml + +trash: + cd $(RPM_ROOT)/; rm -rf BUILD BUILDROOT SRPMS + cd $(META_ROOT)/; rm -f repodata/*sqlite.bz2 repodata/*.xml.gz + +clean: trash + rm -f $(META_ROOT)/Packages $(META_ROOT)/Packages.gz + rm -f $(META_ROOT)/repodata/repomd.xml + rm -f $(META_ROOT)/repodata/repomd.xml.asc $(META_ROOT)/repodata/repomd.xml.key + rm -f $(META_ROOT)/*.rpm + rm -f $(RPM_ROOT)/RPMS/*/*.rpm + +.PHONY: all default rpm meta trash clean diff --git a/rpm/example/SPECS/example.spec b/rpm/example/SPECS/example.spec new file mode 100644 index 0000000000000000000000000000000000000000..5462320cc415f833e67636f3e676d7d38d39fd09 --- /dev/null +++ b/rpm/example/SPECS/example.spec @@ -0,0 +1,16 @@ +%global _enable_debug_package 0 +%global debug_package %{nil} +%global __os_install_post /usr/lib/rpm/brp-compress %{nil} + +Name: example +Version: 1.0 +Release: 1 +License: None +BuildArch: noarch +Summary: Unit test for RPM packaging +AutoReq: 0 + +%description +Example package for test of RPM package signing + +%files diff --git a/rpm/meta/stubrepo-rpm.sh b/rpm/meta/stubrepo-rpm.sh new file mode 100755 index 0000000000000000000000000000000000000000..89504a704cf9b0165bc71436b8ddf527cd05d099 --- /dev/null +++ b/rpm/meta/stubrepo-rpm.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +err() { echo "ERROR: $*"; exit 1; } + +rpm_metadata() { + repomd="repodata/repomd.xml" + echo ">>> createrepo_c -v --database $PWD" + createrepo_c -v --database "$PWD" +} + +if [[ -z $1 ]] || [[ ! -f $1 ]]; then + err "USAGE: $0 [*.rpm]" +fi + +if [[ ! -f "repodata/repomd.xml" ]]; then + rpm_metadata +fi + +### END ###