| # Customise the following variable as Make parameters |
| # to produce a yum.repo for a VENDOR distribution |
| # Default values are pointing to GerritForge (www.gerritforge.com) |
| VERSION=1 |
| RELEASE=3 |
| VENDOR=GerritForge |
| VENDOR_LC=$(shell echo $(VENDOR) | tr A-Z a-z) |
| WEB_URL=http://$(VENDOR_LC).com |
| MIRROR_URL=http://mirrorlist.$(VENDOR_LC).com/yum |
| |
| # Vendor PGP Certificate (default GerritForge) |
| PGP_USER=info@$(VENDOR_LC).com |
| |
| ### END OF VARIABLES THAT CAN BE OVERRIDDEN ### |
| |
| # Yum repo definition |
| define YUM_REPO |
| [$(VENDOR_LC)] |
| name=$(VENDOR) repository for Gerrit Code Review |
| mirrorlist=$(MIRROR_URL) |
| enabled=1 |
| gpgcheck=1 |
| gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-$(VENDOR) |
| endef |
| export YUM_REPO |
| |
| CATEGORY=Development |
| SUMMARY=$(VENDOR) repository |
| BUILD_ARCH=noarch |
| LICENSE=Apache 2.0 |
| NAME=$(VENDOR_LC)-repo |
| RPM_OUT=client/$(VENDOR_LC)-repo-$(VERSION)-$(RELEASE).$(BUILD_ARCH).rpm |
| |
| all: client server |
| |
| client: $(RPM_OUT) |
| |
| prepare: |
| -mkdir -p client etc/yum.repos.d etc/pki/rpm-gpg server |
| echo "$$YUM_REPO" > etc/yum.repos.d/$(VENDOR).repo |
| gpg --yes --armor --output etc/pki/rpm-gpg/RPM-GPG-KEY-$(VENDOR) --export $(PGP_USER) |
| |
| clean: |
| -rm -Rf client etc server |
| |
| $(RPM_OUT): $(SRCS) prepare |
| fpm -t rpm -p $@ -s dir \ |
| -f -n $(NAME) -v $(VERSION) --iteration $(RELEASE) --category $(CATEGORY) \ |
| --description "$(SUMMARY)" --url $(WEB_URL) --license "$(LICENSE)" --vendor "$(VENDOR)" \ |
| --rpm-user root --rpm-group root \ |
| --verbose etc |
| |
| server: |
| echo "%_signature gpg" > ~/.rpmmacros |
| echo "%_gpg_name $(PGP_USER)" >> ~/.rpmmacros |
| echo '%__gpg_sign_cmd %{__gpg} \ |
| gpg --force-v3-sigs --digest-algo=sha1 --batch --no-verbose --no-armor \ |
| --passphrase-fd 3 --no-secmem-warning -u "%{_gpg_name}" \ |
| -sbo %{__signature_filename} %{__plaintext_filename}' >> ~/.rpmmacros |
| rpm --addsign server/*rpm |
| createrepo --checksum sha server/. |
| |
| .PHONY: clean prepare server |