summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitmodules3
-rw-r--r--GNUmakefile2
m---------git-rpm0
-rw-r--r--git-rpm.mk181
4 files changed, 4 insertions, 182 deletions
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000..0ccfef1
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "git-rpm"]
+ path = git-rpm
+ url = git://fedorapeople.org/~ndim/git-rpm.git
diff --git a/GNUmakefile b/GNUmakefile
index 7dca9a7..763cc33 100644
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -1,2 +1,2 @@
NAME := phoronix-test-suite
-include git-rpm.mk
+include git-rpm/git-rpm.mk
diff --git a/git-rpm b/git-rpm
new file mode 160000
+Subproject 48dc20f325e548fa62eeb82c16d859d35dc4a5a
diff --git a/git-rpm.mk b/git-rpm.mk
deleted file mode 100644
index a469995..0000000
--- a/git-rpm.mk
+++ /dev/null
@@ -1,181 +0,0 @@
-# How to use this file:
-# 0. run "git init"
-# 1. copy this file as git-rpm.mk
-# 2. create GNUmakefile with contents like
-# NAME = mypkg
-# include git-rpm.mk
-# 3. run "make mkdir" to created the upload directory on the web server
-# 4. write mypkg.spec, patches, Source: files, etc.
-# 5. run "make" for a test build of the rpm files
-# 6. if you do not like the result, go to 4
-# 7. make sure NVR and %changelog are updated
-# 8. Make sure you have "git commit"ed all your changes before
-# 9. run "make tag" tag the current release
-# 10. run "make upload" to upload the built rpm files to your webspace
-#
-# Settings best defined in ~/.git-rpm-settings.mk, but with potentially
-# useful defaults:
-# 1. RSYNC_USER and RSYNC_HOST or RSYNC_USHO
-# 2. RSYNC_ROOT
-#
-# Benefits:
-# 1. Reproducible local rpm builds:
-# $ make
-# 2. Automatic generation of text reports (rpmlint, rpm content list):
-# $ make check
-# 3. Easy versioning of NVRs using git tags
-# $ make tag
-# 4. Easy upload via rsync/ssh to NVR specific places, nice for package review
-# $ make upload
-
-RPMDIRS = rpm-build rpm-dist
-UPLOAD_FILES =
-
-OPTS =
-OPTS += --define "_sourcedir $${PWD}"
-OPTS += --define "_builddir $${PWD}/rpm-build"
-OPTS += --define "_srcrpmdir $${PWD}/rpm-dist" --define "_rpmdir $${PWD}/rpm-dist"
-
-NAME ?= packagename-to-be-defined
-
-SPEC = $(NAME).spec
-
-RPM_VERSION := $(shell rpm -q --specfile $(SPEC) --queryformat '%{VERSION}\n' | sed '1q')
-RPM_RELEASE := $(shell rpm -q --specfile $(SPEC) --queryformat '%{RELEASE}\n' | sed '1q')
-RPM_ARCH := $(shell rpm -q --specfile $(SPEC) --queryformat '%{ARCH}\n' | sed '1q')
-
-NVR = $(NAME)-$(RPM_VERSION)-$(RPM_RELEASE)
-
-SRPM = rpm-dist/$(NVR).src.rpm
-BRPM = rpm-dist/$(RPM_ARCH)/$(NVR).$(RPM_ARCH).rpm
-
--include $(HOME)/.git-rpm-settings.mk
-RSYNC_USER ?= $(USER)
-RSYNC_HOST ?= fedorapeople.org
-RSYNC_USHO ?= $(RSYNC_USER)@$(RSYNC_HOST)
-RSYNC_ROOT ?= public_html/packages
-RSYNC_DIR = $(RSYNC_ROOT)/$(NAME)/$(RPM_VERSION)-$(RPM_RELEASE)
-
-SOURCE_FILES = $(shell spectool --lf $(SPEC) | cut -d' ' -f2 | xargs -l basename)
-
-.PHONY: all
-all: build
-build: rpm check
-
-.PHONY: sources
-sources:
- spectool -g $(SPEC)
-
-.PHONY: srpm
-srpm: $(SRPM)
-
-clog: $(SPEC)
- rpm -q --specfile $(SPEC) --changelog | sed '1n; /^\*/,$$d' > $@
- cat $@
-
-UPLOAD_FILES += $(NVR)/$(NVR).src.rpm
-$(SRPM): $(SPEC) $(SOURCE_FILES)
- mkdir -p $(RPMDIRS)
- rpmbuild $(OPTS) -bs $(SPEC)
-$(NVR)/$(NVR).src.rpm: $(SRPM)
- mkdir -p $(NVR)
- cp -p $< $@
-
-.PHONY: rpm
-rpm: $(BRPM)
-
-UPLOAD_FILES += $(NVR)/build.log
-$(BRPM) rpm-build/$(NVR).buildlog: $(SPEC) $(SOURCE_FILES)
- mkdir -p $(RPMDIRS)
- rpmbuild $(OPTS) -ba $(SPEC) 2>&1 | tee rpm-build/$(NVR).buildlog
-
-$(NVR)/build.log: rpm-build/$(NVR).buildlog
- mkdir -p $(NVR)
- sed "s|$(USER)|build|g" < $< > $@
-
-.PHONY: check
-check: $(NVR)/rpmlint.txt $(NVR)/filelist.txt
-
-UPLOAD_FILES += $(NVR)/rpmlint.txt
-$(NVR)/rpmlint.txt: $(BRPM)
- mkdir -p $(NVR)
- rpmlint -i $(SPEC) $(SRPM) $(BRPM) 2>&1 | tee $@
-
-UPLOAD_FILES += $(NVR)/filelist.txt
-$(NVR)/filelist.txt: rpm-build/$(NVR).buildlog
- mkdir -p $(NVR)
- for pkg in rpm-dist/$(NVR).src.rpm rpm-dist/$(RPM_ARCH)/$(NAME)*-$(RPM_VERSION)-$(RPM_RELEASE).$(RPM_ARCH).rpm; do \
- echo "## $$(basename "$$pkg")"; \
- rpm -qpl --scripts "$$pkg"; \
- echo; \
- done > $@.new
- cp $@.new $@ && rm -f $@.new
-
-.PHONY: mkdir
-mkdir:
- ssh $(RSYNC_USHO) mkdir -p $(RSYNC_ROOT)/$(NAME)
-
-.PHONY: upload
-upload: $(NVR)
-
-UPLOAD_FILES += $(NVR)/$(SPEC)
-$(NVR)/$(SPEC): $(SPEC)
- mkdir -p $(NVR)
- cp -p $< $@
-
-UPLOAD_FILES += $(foreach p, $(SOURCE_FILES), $(NVR)/$(p))
-$(NVR)/%: %
- mkdir -p $(NVR)
- cp -p $< $@
-
-$(NVR): $(UPLOAD_FILES)
- mkdir -p $(NVR)
- rsync -avz --delete $(NVR)/ $(RSYNC_USHO):$(RSYNC_DIR)/
- touch $@
-
-.PHONY: clean
-clean:
- rm -rf $(RPMDIRS)
-
-.PHONY: tag
-tag: clog
- @echo "List of git tags:"; git tag -n20
- @echo "Really add git tag $(NVR)? Ctrl-C to abort, Enter to continue"; read
- git tag -a -F clog $(NVR)
-
-WORKDIR ?= $(PWD)
-MOCKDIR ?= $(WORKDIR)
-MOCKCFG ?= fedora-$(shell echo $(RPM_RELEASE) | sed -n 's/.*\.fc\([1-9][0-9]*\)$$/\1/p')-$(RPM_ARCH)
-MOCKRESULTDIR ?= $(MOCKDIR)/$(NVR).mock
-
-SCRATCHBUILD_KOJI_TAG = dist-f10
-
-.PHONY: scratch-build
-scratch-build: $(SRPM)
- /usr/bin/koji build --scratch $(SCRATCHBUILD_KOJI_TAG) $(SRPM)
-
-.PHONY: mock-build
-mock-build: $(MOCKRESULTDIR)
-
-$(MOCKRESULTDIR): $(SRPM)
- mock $(MOCKARGS) -r $(MOCKCFG) --resultdir=$(MOCKRESULTDIR) rebuild $(SRPM)
-
-.PHONY: help
-help:
- @echo "NVR: $(NVR)"
- @echo "Mock config: $(MOCKCFG)"
- @echo "Mock result dir: $(MOCKRESULTDIR)"
- @echo "Source RPM: $(SRPM)"
- @echo "Targets:"
- @echo " build build the RPM package(s) locally"
- @echo " scratch-build build scratch RPM via Fedora's koji"
- @echo " mock-build build RPM in local mock chroot"
- @echo " sources download all source files"
- @echo " srpm build SRPM package locally"
-
-# Package specific rules, best put into package specific GNUmakefile
-
-#$(NAME)-$(RPM_VERSION)-buildfixes.patch: $(wildcard $(NAME)-$(RPM_VERSION)/* $(NAME)-$(RPM_VERSION)-buildfixes/*)
-# diff -ru $(NAME)-$(RPM_VERSION) $(NAME)-$(RPM_VERSION)-buildfixes > $@;:
-
-# End of file.