2007-08-02 13:27:19 +00:00
|
|
|
UPLOAD_SH = $(MOD_SCRIPT_DIR)/upload.sh
|
|
|
|
|
|
|
|
|
|
ifeq ($(RPM_PROJECT),)
|
2007-08-15 23:00:18 +00:00
|
|
|
RPM_PROJECT ?= $(PROJECT)
|
2007-08-02 13:27:19 +00:00
|
|
|
endif
|
|
|
|
|
|
2007-08-15 14:15:37 +00:00
|
|
|
MKSPEC_SH ?= $(MOD_SCRIPT_DIR)/mkspec_wrapper.sh $(TOPDIR)/make/mkspec.sh
|
2007-08-02 13:27:19 +00:00
|
|
|
FTP_SRC_GROUP ?= $(shell id -g)
|
|
|
|
|
FTP_SRC_USER ?= $(shell whoami)
|
|
|
|
|
FTP_RUN_GROUP ?= $(shell id -g)
|
|
|
|
|
FTP_RUN_USER ?= $(shell whoami)
|
|
|
|
|
FTP_DEV_GROUP ?= $(shell id -g)
|
|
|
|
|
FTP_DEV_USER ?= $(shell whoami)
|
|
|
|
|
FTP_HOST ?= ftp.jannet.de
|
|
|
|
|
FTP_FILE_MODE ?= 644
|
|
|
|
|
FTP_DIR_MODE ?= 755
|
|
|
|
|
FTP_HOST ?= ftp.jannet.de
|
|
|
|
|
FTP_HOST_LOGIN ?= root
|
2007-06-16 17:55:39 +00:00
|
|
|
RPM_PROJECT ?= $(PROJECT)
|
2007-08-15 23:00:18 +00:00
|
|
|
RPM_VERSION ?= $(DIST_VERSION)
|
2007-08-14 15:32:33 +00:00
|
|
|
RPM_ARCH ?= i586
|
2007-08-14 12:48:42 +00:00
|
|
|
RPMBUILD ?= rpmbuild
|
2005-10-17 11:42:36 +00:00
|
|
|
|
|
|
|
|
include $(MODDIR)/make/tag-defs.mk
|
2002-07-10 12:24:05 +00:00
|
|
|
|
2007-08-22 17:02:54 +00:00
|
|
|
DIST_DIR = dist
|
|
|
|
|
DIST_SRC_DIR = $(DIST_DIR)/src/$(RPM_PROJECT)-$(RPM_VERSION)
|
|
|
|
|
DIST_PCKG_DIR = $(DIST_DIR)/pckg
|
2007-08-16 20:36:38 +00:00
|
|
|
#DIST_FILE = $(DIST_PCKG_DIR)/$(PROJECT)-$(DIST_VERSION).tar.gz
|
2002-07-01 18:26:01 +00:00
|
|
|
|
2007-06-16 17:55:39 +00:00
|
|
|
PCKG_TAR ?= $(RPM_PROJECT)-$(RPM_VERSION).tar.gz
|
2007-08-14 15:32:33 +00:00
|
|
|
PCKG_RPM_RUN_I386 ?= $(RPM_PROJECT)-run-$(RPM_VERSION).$(RPM_ARCH).rpm
|
|
|
|
|
PCKG_RPM_DEVEL_I386 ?= $(RPM_PROJECT)-devel-$(RPM_VERSION).$(RPM_ARCH).rpm
|
2007-06-16 17:55:39 +00:00
|
|
|
PCKG_RPM_SRC ?= $(RPM_PROJECT)-$(RPM_VERSION).src.rpm
|
|
|
|
|
|
2005-10-17 11:42:36 +00:00
|
|
|
include $(MODDIR)/make/upload-defs.mk
|
2002-07-01 18:26:01 +00:00
|
|
|
|
|
|
|
|
DIST_FILES = $(shell echo $(REMOTE_TARGETS) | sed 's/\b.*\///g; s/:.*\b//g')
|
2007-08-21 18:34:36 +00:00
|
|
|
GENERATED = $(sort $(shell find . -name '*.in' | \
|
|
|
|
|
sed "s/\.in$$//; s%$(DIST_SRC_DIR)%%; s%^[./]*%%"))
|
2007-08-14 15:32:33 +00:00
|
|
|
RPMS_DIR = /usr/src/packages/RPMS/$(RPM_ARCH)
|
2002-07-01 18:26:01 +00:00
|
|
|
SRPMS_DIR = /usr/src/packages/SRPMS
|
2004-11-29 21:56:13 +00:00
|
|
|
DIST_DIRS = $(DIST_SRC_DIR) $(DIST_PCKG_DIR)
|
|
|
|
|
DIST_PCKG_RPM = $(DIST_PCKG_DIR)/$(PCKG_RPM_RUN_I386) $(DIST_PCKG_DIR)/$(PCKG_RPM_DEVEL_I386)
|
2007-08-27 14:33:49 +00:00
|
|
|
RPM_REQUIRES_DEVEL += $(RPM_PROJECT)-run = $(RPM_VERSION)
|
2002-06-10 14:28:18 +00:00
|
|
|
|
2007-08-22 14:42:39 +00:00
|
|
|
unexport RPM_VERSION VERSION DIST_SRC_DIR
|
|
|
|
|
|
2005-10-17 11:42:36 +00:00
|
|
|
include $(MODDIR)/make/tag-rules.mk
|
|
|
|
|
include $(MODDIR)/make/upload-rules.mk
|
|
|
|
|
|
2007-06-16 18:58:19 +00:00
|
|
|
all:
|
2007-08-14 12:48:42 +00:00
|
|
|
install:
|
|
|
|
|
clean: rpm-clean
|
|
|
|
|
distclean: rpm-clean
|
|
|
|
|
|
2007-06-16 18:58:19 +00:00
|
|
|
tgz: $(PCKG_TAR)
|
|
|
|
|
ftag: ftag.dist
|
|
|
|
|
|
2007-08-14 12:48:42 +00:00
|
|
|
rpm-upload-stable: rpm-upload-STABLE.dist
|
|
|
|
|
rpm-upload-rc: rpm-upload-RC.dist
|
2007-08-23 17:55:13 +00:00
|
|
|
|
2007-08-14 12:48:42 +00:00
|
|
|
rpm-clean: clean.rpm
|
2007-08-22 12:20:12 +00:00
|
|
|
rpm-uninstall: config rpmuninstall.dist
|
2007-08-24 20:14:21 +00:00
|
|
|
rpm-build: config rpmbuild.dist
|
2007-08-22 12:20:12 +00:00
|
|
|
rpm-install: config rpminstall.dist
|
2007-08-21 19:56:26 +00:00
|
|
|
rpm-reinstall: rpm-uninstall rpm-clean rpm-install
|
|
|
|
|
|
2007-08-14 12:48:42 +00:00
|
|
|
clean.rpm:
|
2007-08-22 17:02:54 +00:00
|
|
|
rm -rf $(DIST_DIR) *.dist
|
2002-06-10 14:28:18 +00:00
|
|
|
|
2002-07-01 18:26:01 +00:00
|
|
|
cpmod.dist:
|
2007-08-24 20:26:27 +00:00
|
|
|
mkdir -p $(DIST_SRC_DIR)
|
|
|
|
|
$(cvs_files) | cpio -o -H newc | ( cd $(DIST_SRC_DIR); cpio --make-directories -i)
|
2002-07-01 18:26:01 +00:00
|
|
|
touch $@
|
2002-06-10 14:28:18 +00:00
|
|
|
|
2002-07-01 18:26:01 +00:00
|
|
|
cpfiles.dist:
|
|
|
|
|
mkdir -p $(DIST_SRC_DIR)
|
2007-08-16 18:05:20 +00:00
|
|
|
cp $(wildcard Makefile configure.ac.tmpl) $(DIST_SRC_DIR)
|
2007-08-18 20:32:59 +00:00
|
|
|
sh $(MKSPEC_SH) -V $(RPM_VERSION) -S $(notdir $(PCKG_TAR)) -N $(RPM_PROJECT) \
|
|
|
|
|
-R "$(RPM_REQUIRES_RUN)" -D "$(RPM_REQUIRES_DEVEL)" -P $(PROJECT) \
|
2002-07-10 16:15:46 +00:00
|
|
|
> $(DIST_SRC_DIR)/$(RPM_PROJECT)-$(RPM_VERSION).spec
|
2002-07-10 12:24:05 +00:00
|
|
|
echo $(RPM_VERSION) > $(DIST_SRC_DIR)/VERSION
|
2002-07-01 18:26:01 +00:00
|
|
|
touch $@
|
2002-06-10 14:28:18 +00:00
|
|
|
|
2002-07-01 18:26:01 +00:00
|
|
|
%.tar.gz: cpfiles.dist cpmod.dist
|
|
|
|
|
mkdir -p $(DIST_PCKG_DIR)
|
2007-08-22 12:20:12 +00:00
|
|
|
tar --anchored $(addprefix --exclude=,$(GENERATED)) \
|
2007-08-14 12:48:42 +00:00
|
|
|
-czvf $@ -C $(dir $(DIST_SRC_DIR)) $(notdir $(DIST_SRC_DIR))
|
2004-07-29 11:38:49 +00:00
|
|
|
|
2002-07-01 18:26:01 +00:00
|
|
|
%.src.rpm: %.tar.gz
|
2007-08-14 15:32:33 +00:00
|
|
|
$(RPMBUILD) -ts $<
|
2002-07-01 18:26:01 +00:00
|
|
|
cp $(SRPMS_DIR)/$(notdir $@) $@
|
2002-06-10 14:28:18 +00:00
|
|
|
|
2004-11-29 21:56:13 +00:00
|
|
|
$(DIST_PCKG_RPM): $(DIST_PCKG_DIR)/$(PCKG_TAR)
|
2007-08-14 12:48:42 +00:00
|
|
|
if [ $< -nt $(RPMS_DIR)/$(notdir $@) ]; then $(RPMBUILD) -tb $<; fi
|
2002-06-10 14:28:18 +00:00
|
|
|
cp $(RPMS_DIR)/$(notdir $@) $@
|
|
|
|
|
|
2002-07-03 20:33:20 +00:00
|
|
|
$(DIST_PCKG_DIR)/CURRENT_%: $(TOPDIR)/VERSION
|
2002-07-01 18:26:01 +00:00
|
|
|
echo $(CURRENT_$*) > $@
|
|
|
|
|
|
2007-08-24 20:14:21 +00:00
|
|
|
rpmbuild.dist: $(DIST_PCKG_RPM) $(DIST_FILES)
|
|
|
|
|
touch $@
|
2002-06-10 14:28:18 +00:00
|
|
|
|
2004-11-29 21:56:13 +00:00
|
|
|
rpminstall.dist: $(DIST_PCKG_RPM)
|
2007-08-18 20:32:59 +00:00
|
|
|
@set -e; for p in $^; do \
|
2007-08-16 18:05:20 +00:00
|
|
|
if ! /bin/rpm -q `basename $$p | sed "s/\.$(RPM_ARCH)\.rpm//"` > /dev/null 2>&1 ; then \
|
2007-08-18 20:32:59 +00:00
|
|
|
echo + installing $$p ;\
|
2007-08-16 18:05:20 +00:00
|
|
|
sudo /bin/rpm -U $$p; \
|
|
|
|
|
fi; \
|
|
|
|
|
done
|
2004-11-29 21:56:13 +00:00
|
|
|
touch $@
|
|
|
|
|
|
2007-08-17 10:43:45 +00:00
|
|
|
rpmuninstall.dist:
|
2007-08-18 20:32:59 +00:00
|
|
|
@set -e; for s in devel run; do \
|
2007-08-16 18:05:20 +00:00
|
|
|
if /bin/rpm -q $(RPM_PROJECT)-$$s > /dev/null 2>&1 ; then \
|
2007-08-18 20:32:59 +00:00
|
|
|
echo + removing $(RPM_PROJECT)-$$s ;\
|
2007-08-16 18:05:20 +00:00
|
|
|
sudo /bin/rpm -e $(RPM_PROJECT)-$$s --nodeps; \
|
|
|
|
|
fi; \
|
|
|
|
|
done
|
2007-08-18 20:32:59 +00:00
|
|
|
rm -f rpminstall.dist
|
2007-08-16 18:05:20 +00:00
|
|
|
|
2007-08-14 12:48:42 +00:00
|
|
|
upload-%.dist: %_$(PROJECT_CAPNAME)_RPM_RUN_I386
|
2007-06-16 18:58:19 +00:00
|
|
|
cvs commit $<
|
|
|
|
|
$(UPLOAD_SH) $< $(REMOTE_TARGET_PREFIX)$(PCKG_ROOT)/$<:640:750:$(FTP_RUN_USER).$(FTP_RUN_GROUP)
|
|
|
|
|
touch $@
|
|
|
|
|
|
2007-08-16 18:05:20 +00:00
|
|
|
update-repo.dist: upload.dist
|
2007-08-23 10:57:38 +00:00
|
|
|
$(CVS_RSH) -l root $(FTP_HOST) /etc/cron.hourly/create_packet_descriptions.sh
|
2007-08-16 18:05:20 +00:00
|
|
|
touch $@
|
2007-08-21 18:34:36 +00:00
|
|
|
|
2007-08-22 11:37:55 +00:00
|
|
|
# ------ hash stuff
|
2007-08-21 18:34:36 +00:00
|
|
|
|
2007-08-22 21:34:05 +00:00
|
|
|
CHECK_CVS_SYNC_BEFORE_RPM_RELEASE ?= true
|
2007-08-22 12:31:14 +00:00
|
|
|
|
|
|
|
|
define check_cvs_sync
|
|
|
|
|
echo + checking cvs ;\
|
|
|
|
|
cvs status > cvs_status.tmp 2>&1;\
|
|
|
|
|
if [ $$? != 0 ]; then \
|
|
|
|
|
cat cvs_status.tmp ;\
|
|
|
|
|
echo -e "\n======== cvs status failed, giving up." >&2 ;\
|
|
|
|
|
exit 1 ;\
|
|
|
|
|
fi ;\
|
|
|
|
|
if grep -qi "locally modified" cvs_status.tmp; then \
|
|
|
|
|
echo + cvs copy has locally modified files, giving up >&2 ;\
|
|
|
|
|
exit 1 ;\
|
|
|
|
|
fi ;\
|
|
|
|
|
if grep -qi "needs" cvs_status.tmp; then \
|
|
|
|
|
echo + cvs copy is out-of-date, giving up >&2 ;\
|
|
|
|
|
exit 1 ;\
|
|
|
|
|
fi
|
|
|
|
|
endef
|
2007-08-22 11:37:55 +00:00
|
|
|
|
|
|
|
|
define increase_build_number
|
2007-08-22 12:31:14 +00:00
|
|
|
if [ "$(CHECK_CVS_SYNC_BEFORE_RPM_RELEASE)" = true ]; then \
|
|
|
|
|
$(check_cvs_sync) ;\
|
2007-08-22 11:37:55 +00:00
|
|
|
fi ;\
|
|
|
|
|
echo $(MAJOR_MINOR_RELEASE)-$(shell expr $(BUILD_NUMBER) + 1)-dev | tee VERSION ;\
|
|
|
|
|
echo $(HASH) > HASH ;\
|
|
|
|
|
if ! grep -q HASH CVS/Entries; then \
|
2007-08-22 12:20:12 +00:00
|
|
|
cvs add HASH ;\
|
2007-08-22 11:37:55 +00:00
|
|
|
fi ;\
|
2007-08-22 12:20:12 +00:00
|
|
|
cvs commit -m "o $(VERSION)" HASH VERSION
|
2007-08-22 11:37:55 +00:00
|
|
|
endef
|
|
|
|
|
|
|
|
|
|
HASH = $(shell $(cvs_files) | grep -v "CHANGES\|VERSION\|HASH\|MD5SUMS" | xargs md5sum | md5sum | sed 's/ .*//')
|
2007-08-22 12:20:12 +00:00
|
|
|
LAST_RPM_VERSION = $(shell cat $(TOPDIR)/LAST_RPM_VERSION 2>/dev/null)
|
2007-08-22 11:37:55 +00:00
|
|
|
|
|
|
|
|
md5:
|
|
|
|
|
echo $(HASH) > HASH
|
|
|
|
|
|
|
|
|
|
rpm-update-release:
|
|
|
|
|
@if [ "`cat HASH`" != "$(HASH)" ]; then \
|
|
|
|
|
echo + source was modified ;\
|
|
|
|
|
$(increase_build_number) ;\
|
|
|
|
|
else \
|
2007-08-22 12:20:12 +00:00
|
|
|
echo + source is unmodified ;\
|
2007-08-22 11:37:55 +00:00
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
rpm-check-release:
|
|
|
|
|
@if [ "`cat HASH`" != "$(HASH)" ]; then \
|
|
|
|
|
echo + source was modified ;\
|
|
|
|
|
else \
|
2007-08-22 12:20:12 +00:00
|
|
|
echo + source is unmodified ;\
|
2007-08-22 11:37:55 +00:00
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
rpm-release: rpm-update-release
|
2007-08-22 12:20:12 +00:00
|
|
|
@if [ "$(VERSION)" != "$(LAST_RPM_VERSION)" ]; then \
|
2007-08-22 12:31:14 +00:00
|
|
|
$(check_cvs_sync) ;\
|
2007-08-22 14:42:39 +00:00
|
|
|
echo "+ version $(VERSION) doesn't match latest released rpm version "\
|
|
|
|
|
"$(LAST_RPM_VERSION), building a new release" ;\
|
2007-08-23 02:21:43 +00:00
|
|
|
make rpm-clean update-repo.dist || exit 1;\
|
2007-08-22 11:37:55 +00:00
|
|
|
cp VERSION LAST_RPM_VERSION ;\
|
2007-08-22 12:20:12 +00:00
|
|
|
if ! grep -q LAST_RPM_VERSION CVS/Entries; then \
|
2007-08-22 11:37:55 +00:00
|
|
|
cvs add LAST_RPM_VERSION ;\
|
|
|
|
|
fi ;\
|
2007-08-22 12:20:12 +00:00
|
|
|
cvs commit -m "o $(VERSION)" LAST_RPM_VERSION ;\
|
|
|
|
|
else \
|
|
|
|
|
echo "+ version matches latest released rpm version" ;\
|
2007-08-22 11:37:55 +00:00
|
|
|
fi
|
|
|
|
|
|