make: Replace RPM -> PKG

jw-pkg supports more than RPM-based package managers, but for
historic reasons, lots of its Makefile variables still have "RPM" in
their names. This is misleading. Replace "RPM" in variable names by
the more generic "PKG" where appropriate.

Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
Jan Lindemann 2026-03-16 13:51:11 +01:00
commit c893584e5e
10 changed files with 118 additions and 122 deletions

View file

@ -1,5 +1,5 @@
TOPDIR = . TOPDIR = .
RPM_UPLOAD_URLPREFIX ?= rsync_ssh://$(JANWARE_USER)@pkg.janware.com:/srv/dav/pub/packages/jw-foss/$(RPM_UPLOAD_OS_NAME)/$(RPM_UPLOAD_OS_VERSION) PKG_UPLOAD_URLPREFIX ?= rsync_ssh://$(JANWARE_USER)@pkg.janware.com:/srv/dav/pub/packages/jw-foss/$(PKG_UPLOAD_OS_NAME)/$(PKG_UPLOAD_OS_VERSION)
include $(TOPDIR)/make/proj.mk include $(TOPDIR)/make/proj.mk
include $(JWBDIR)/make/topdir.mk include $(JWBDIR)/make/topdir.mk

View file

@ -727,8 +727,8 @@ FINAL_CPPFLAGS += $(LOCAL_CPPFLAGS) $(PROJECT_INCLUDE) $(PROJECT_CP
FINAL_CXXFLAGS += $(LOCAL_CXXFLAGS) $(PROJECT_CXXFLAGS) $(COMPILER_CXXFLAGS) $(FINAL_INCLUDE) FINAL_CXXFLAGS += $(LOCAL_CXXFLAGS) $(PROJECT_CXXFLAGS) $(COMPILER_CXXFLAGS) $(FINAL_INCLUDE)
FINAL_LDFLAGS += $(LOCAL_LDFLAGS) $(PROJECTLIB_LDFLAGS) $(PROJECT_LDFLAGS) $(COMPILER_LDFLAGS) $(FINAL_LPPFLAGS) $(FINAL_LIBFLAGS) FINAL_LDFLAGS += $(LOCAL_LDFLAGS) $(PROJECTLIB_LDFLAGS) $(PROJECT_LDFLAGS) $(COMPILER_LDFLAGS) $(FINAL_LPPFLAGS) $(FINAL_LIBFLAGS)
#RPM_REQUIRES = $(shell $(ECHO) "$(RPM_REQUIRES_RUN) $(RPM_REQUIRES_DEVEL)" | $(add_flavour_prefix)) #PKG_REQUIRES = $(shell $(ECHO) "$(PKG_REQUIRES_RUN) $(PKG_REQUIRES_DEVEL)" | $(add_flavour_prefix))
RPM_REQUIRES += $(RPM_REQUIRES_RUN) $(RPM_REQUIRES_DEVEL) PKG_REQUIRES += $(PKG_REQUIRES_RUN) $(PKG_REQUIRES_DEVEL)
REAL_CFLAGS ?= $(FINAL_CFLAGS) REAL_CFLAGS ?= $(FINAL_CFLAGS)
REAL_CPPFLAGS ?= $(FINAL_CPPFLAGS) REAL_CPPFLAGS ?= $(FINAL_CPPFLAGS)

View file

@ -205,12 +205,12 @@ endif
ifeq ($(PKG_FORMAT),debian) ifeq ($(PKG_FORMAT),debian)
RPM ?= /bin/bash $(JWB_SCRIPT_DIR)/dpm.sh RPM ?= /bin/bash $(JWB_SCRIPT_DIR)/dpm.sh
RPM_ARCH := $(shell dpkg --print-architecture) PKG_ARCH := $(shell dpkg --print-architecture)
RPM_SUFFIX ?= deb PKG_SUFFIX ?= deb
else else
RPM ?= /bin/rpm RPM ?= /bin/rpm
RPM_ARCH ?= $(TARGET_ARCH) PKG_ARCH ?= $(TARGET_ARCH)
RPM_SUFFIX ?= rpm PKG_SUFFIX ?= rpm
endif endif
ifeq ($(PKG_FORMAT),debian) ifeq ($(PKG_FORMAT),debian)

View file

@ -72,8 +72,8 @@ $(LOCAL_PKG_CONFIG): $(PROJECT_DESCR_FILE) $(JWBDIR)/make/make.mk
-v $(DIST_VERSION) \ -v $(DIST_VERSION) \
-p $(PROJECT_DIRPATH) \ -p $(PROJECT_DIRPATH) \
-V $(shell echo $(PROJECT) | tr a-z- A-Z_)_DIR=$(PROJECT_DIRPATH) \ -V $(shell echo $(PROJECT) | tr a-z- A-Z_)_DIR=$(PROJECT_DIRPATH) \
-r "$(RPM_REQUIRES_RUN)" \ -r "$(PKG_REQUIRES_RUN)" \
-R "$(RPM_REQUIRES_DEVEL)" \ -R "$(PKG_REQUIRES_DEVEL)" \
-l "-L$(PROJECT_DIRPATH)/lib -l$(LIBNAME)" \ -l "-L$(PROJECT_DIRPATH)/lib -l$(LIBNAME)" \
$(CREATE_PKG_CONFIG_OPTS) \ $(CREATE_PKG_CONFIG_OPTS) \
> $@.tmp > $@.tmp

335
make/pkg-dist.mk Normal file
View file

@ -0,0 +1,335 @@
PKG_PROJECT ?= $(FLAVOUR_PREFIX)$(PROJECT)
ifeq ($(filter pkg-%,$(MAKECMDGOALS)),)
# also to be used from proj.mk, typically
BUILD_PROJECT_PACKAGE = false
endif
PKG_VERSION ?= $(DIST_VERSION)
ifneq ($(BUILD_PROJECT_PACKAGE),false)
UPLOAD_SH = $(JWB_SCRIPT_DIR)/upload.sh
LOCAL_MKSPEC_SH ?= $(TOPDIR)/make/mkspec.sh
MKSPEC_SH ?= $(JWB_SCRIPT_DIR)/mkspec-wrapper.sh $(LOCAL_MKSPEC_SH)
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 ?= pkg.janware.com
FTP_FILE_MODE ?= 644
FTP_DIR_MODE ?= 755
FTP_HOST_LOGIN ?= root
RELEASES_FILE = $(TOPDIR)/RELEASES$(FLAVOUR_SUFFIX)
RELEASES ?= $(shell $(PKG_SH_EXE) version \
-p $(OS_NAME_VERSION)/$(PKG_ARCH) $(RELEASES_FILE) read | $(SED) 's/-dev//')
PKG_CHECK_VCS_SYNC_BEFORE_RELEASE ?= true
HASH = $(shell $(cvs_files) -z | \
grep -vz "CHANGES\|VERSION\|HASH\|MD5SUMS\|RELEASES" | \
xargs -0 md5sum | md5sum | $(SED) 's/ .*//')
LOCAL_REPO ?= /srv/dav/pub/local/packages/suse/$(OS_NAME_VERSION)
PACKAGE_VCS_FILES ?= false
ifeq ($(PACKAGE_VCS_FILES),true)
PKG_SH_BUILD_OPTS += --include-vcs-files
endif
include $(JWBDIR)/make/tag-defs.mk
DIST_DIR = dist
DIST_SRC_DIR = $(DIST_DIR)/src/$(PKG_PROJECT)-$(PKG_VERSION)
DIST_PCKG_DIR = $(DIST_DIR)/pckg
UPLOAD_SRC_DIR = $(DIST_PCKG_DIR)
PCKG_TAR ?= $(PKG_PROJECT)-$(PKG_VERSION).tar.gz
ifeq ($(PKG_FORMAT),debian)
# too bad: debian Requires: somepkg = 1.2.3 isn't satisfied by somepkg-1.2.3-5
PROJ_QUERY_PKG_REQUIRES_EXTRA_ARGS = --syntax debian
PKG_RUN_X86 ?= $(PKG_PROJECT)-run_$(PKG_VERSION)_$(PKG_ARCH).deb
ifeq ($(CREATE_DEVEL),true)
PKG_DEVEL_X86 ?= $(PKG_PROJECT)-devel_$(PKG_VERSION)_$(PKG_ARCH).deb
endif
else
PKG_RUN_X86 ?= $(PKG_PROJECT)-run-$(PKG_VERSION).$(PKG_ARCH).rpm
ifeq ($(CREATE_DEVEL),true)
PKG_DEVEL_X86 ?= $(PKG_PROJECT)-devel-$(PKG_VERSION).$(PKG_ARCH).rpm
endif
endif
DIST_FILES = $(shell echo $(REMOTE_TARGETS) | $(SED) 's/\b.*\///g; s/:.*\b//g')
GENERATED = $(sort $(shell find . -name '*.in' | \
$(SED) "s/\.in$$//; s%$(DIST_SRC_DIR)%%; s%^[./]*%%"))
ifeq ($(PKG_FORMAT),debian)
PKG_DIR_BINARY = $(TOPDIR)/dist/src
else
ifeq ($(BUILD_USER),root)
PKG_DIR_BUILD = /usr/src/packages
else
PKG_DIR_BUILD = $(HOME)/rpmbuild
endif
PKG_DIR_BINARY = $(PKG_DIR_BUILD)/RPMS/$(PKG_ARCH)
endif
DIST_DIRS = $(DIST_SRC_DIR) $(DIST_PCKG_DIR)
BINARY_PKG = $(DIST_PCKG_DIR)/$(PKG_RUN_X86)
ifeq ($(CREATE_DEVEL),true)
BINARY_PKG += $(DIST_PCKG_DIR)/$(PKG_DEVEL_X86)
endif
PKG_REQUIRES_BUILD += $(call proj_query, pkg-requires --dont-expand-version-macros $(PROJ_QUERY_PKG_REQUIRES_EXTRA_ARGS) build $(PROJECT))
PKG_REQUIRES_RUN += $(call proj_query, pkg-requires --dont-expand-version-macros $(PROJ_QUERY_PKG_REQUIRES_EXTRA_ARGS) run $(PROJECT))
PKG_REQUIRES_DEVEL += $(call proj_query, pkg-requires --dont-expand-version-macros $(PROJ_QUERY_PKG_REQUIRES_EXTRA_ARGS) devel $(PROJECT))
PKG_CONFLICTS_RUN += $(call proj_query, pkg-conflicts --dont-expand-version-macros $(PROJ_QUERY_PKG_CONFLICTS_EXTRA_ARGS) run $(PROJECT))
PKG_CONFLICTS_DEVEL += $(call proj_query, pkg-conflicts --dont-expand-version-macros $(PROJ_QUERY_PKG_CONFLICTS_EXTRA_ARGS) devel $(PROJECT))
PKG_PROVIDES_RUN += $(call proj_query, pkg-provides --dont-expand-version-macros $(PROJ_QUERY_PKG_PROVIDES_EXTRA_ARGS) run $(PROJECT))
PKG_PROVIDES_DEVEL += $(call proj_query, pkg-provides --dont-expand-version-macros $(PROJ_QUERY_PKG_PROVIDES_EXTRA_ARGS) devel $(PROJECT))
PKG_UPLOAD_OS_NAME = $(shell echo $(OS_NAME_VERSION) | sed 's/-.*//')
PKG_UPLOAD_OS_VERSION = $(shell echo $(OS_NAME_VERSION) | sed 's/[^-]\+-//')
PKG_UPLOAD_URLPREFIX ?= rsync_ssh://root@pkg.janware.com:/srv/dav/pub/packages/linux/$(PKG_UPLOAD_OS_NAME)/$(PKG_UPLOAD_OS_VERSION)
PKG_UPLOAD_USER ?= $(shell id -un)
PKG_UPLOAD_GROUP ?= $(shell id -gn)
PKG_UPLOAD_FILE_ATTRIB ?= 644:755:$(PKG_UPLOAD_USER).$(PKG_UPLOAD_GROUP)
unexport PKG_VERSION VERSION DIST_SRC_DIR
include $(JWBDIR)/make/tag-rules.mk
include $(JWBDIR)/make/upload-rules.mk
PKG_SH = $(PKG_SH_EXE) \
-N $(PKG_PROJECT) -P $(PROJECT) \
-R "$(PKG_REQUIRES_RUN)" -D "$(PKG_REQUIRES_DEVEL)" \
-X "$(PKG_CONFLICTS_RUN)" -Y "$(PKG_CONFLICTS_DEVEL)" \
--provides-run "$(PKG_PROVIDES_RUN)" --provides-devel "$(PKG_PROVIDES_DEVEL)" \
-m $(JWB_SCRIPT_DIR) -a $(PKG_ARCH) -p $(DIST_PCKG_DIR) -F $(PKG_FORMAT) \
-B $(PKG_UPLOAD_URLPREFIX) -A $(PKG_UPLOAD_FILE_ATTRIB)
all:
install:
clean: pkg-clean
distclean: pkg-clean
pkg-tgz: $(DIST_PCKG_DIR)/$(PCKG_TAR)
ftag: ftag.dist
pkg-upload-stable: pkg-upload-STABLE.dist
pkg-upload-rc: pkg-upload-RC.dist
pkg-clean: clean.rpm
pkg-uninstall: config pkguninstall.dist
pkg-build: pkg-build.dist
pkg-install: config pkg-build pkginstall.dist
pkg-build-install: pkg-build pkg-install
pkg-reinstall: pkg-uninstall pkg-install
pkg-rebuild: pkg-clean pkg-build
pkg-update: pkgupdate.dist
pkg-upload-local: pkg-upload-local.dist
clean.rpm:
$(RM) -rf $(DIST_DIR) *.dist make/.cache-project.mk
pkg-build.dist: $(VERSION_FILE)
$(PKG_SH) build $(PKG_SH_BUILD_OPTS)
touch $@
pkg-update-local-repo:
for a in src i386 i586 i686 x86_64; do \
if ls dist/*/*.$$a.rpm >/dev/null 2>&1; then \
sudo install -m 644 dist/pckg/*.$$a.rpm $(LOCAL_REPO)/rpm/$$a/ ;\
fi ;\
done
sudo sh $(LOCAL_REPO)/update.sh
src-dir.dist:
mkdir -p $(DIST_SRC_DIR)
touch $@
pkginstall.dist: pkg-build.dist
$(Q)set -e; for p in $(BINARY_PKG); do \
if ! $(RPM) -q `basename $$p | $(SED) "s/[._]$(PKG_ARCH)\.$(PKG_SUFFIX)//; s/_\([0-9.-]\+\)$$/-\1/"` > /dev/null 2>&1 ; then \
echo + installing $$p ;\
sudo $(RPM) -U $$(realpath $$p); \
fi; \
done
touch $@
pkguninstall.dist:
$(Q)set -e; for s in devel run; do \
if $(RPM) -q $(PKG_PROJECT)-$$s > /dev/null 2>&1 ; then \
echo + removing $(PKG_PROJECT)-$$s ;\
sudo $(RPM) -e $(PKG_PROJECT)-$$s --nodeps --allmatches; \
fi; \
done
$(RM) -f pkginstall.dist
upload-%.dist: %_$(PROJECT_CAPNAME)_RPM_RUN_I386
cvs commit $<
$(UPLOAD_SH) $< $(REMOTE_TARGET_PREFIX)$(PCKG_ROOT)/$<:640:750:$(FTP_RUN_USER).$(FTP_RUN_GROUP)
touch $@
update-repo.dist: upload.dist
$(CVS_RSH) -l root $(FTP_HOST) $(UPDATE_REPO_SH)
touch $@
# ------ hash stuff
ifeq ($(wildcard $(TOPDIR)/.git),)
SCM_COMMIT = cvs commit
SCM_ADD = cvs add
SCM_PUSH =
SCM_PULL = cvs update -dP
define check_scm_sync
echo + checking cvs ;\
$(SCM_PULL) ;\
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
else
SCM_COMMIT = git commit
SCM_ADD = git add
SCM_PUSH = git push
SCM_PULL = make git-get-maintainer
define check_scm_sync
echo + checking git ;\
$(SCM_PULL) || {\
echo "$(SCM_PULL) failed, giving up" ;\
exit 1 ;\
} ;\
git status -s > git_status.tmp 2>&1 ;\
if [ $$? != 0 ]; then \
$(CAT) git_status.tmp ;\
echo -e "\n======== git status failed, giving up." >&2 ;\
exit 1 ;\
fi ;\
if grep -qi "^ *M " git_status.tmp; then \
echo + git copy has locally modified files, giving up >&2 ;\
exit 1 ;\
fi
endef
endif
define increase_build_number
if [ "$(PKG_CHECK_VCS_SYNC_BEFORE_RELEASE)" = true ]; then \
$(check_scm_sync) ;\
fi ;\
if [ "$(RELEASES)" != "$(PKG_VERSION)" ]; then \
echo "+ no need to increase build number of $(PKG_VERSION), last rpm has $(RELEASES)" ;\
exit 0 ;\
fi ;\
echo -n "+ increasing build number to " ;\
echo $(MAJOR_MINOR_RELEASE)-$(shell expr $(BUILD_NUMBER) + 1)-dev | tee VERSION ;\
echo $(HASH) > HASH ;\
if ! /bin/bash $(JWB_SCRIPT_DIR)/scm.sh ls-files | grep -q '^HASH$$'; then \
$(SCM_ADD) HASH ;\
fi ;\
$(SCM_COMMIT) -m "$(MAJOR_MINOR_RELEASE)-$(shell expr $(BUILD_NUMBER) + 1)-dev" HASH VERSION
$(SCM_PUSH)
endef
define check_reinstall_old
(true $(addprefix && test -f ,$(DIST_PCKG_RPM)) && make pkg-uninstall && make pkg-install)
endef
md5:
echo $(HASH) > HASH
pkg-next-build:
$(Q)$(increase_build_number)
try-reinstall:
$(check_reinstall_old)
pkg-update-release:
$(Q)if [ "`$(CAT) HASH`" != "$(HASH)" ]; then \
echo + source was modified ;\
$(increase_build_number) ;\
elif ! $(check_reinstall_old); then \
echo "+ old rpm is uninstallable" ;\
$(increase_build_number) ;\
fi
pkg-check-release:
$(Q)if [ "`$(CAT) HASH`" != "$(HASH)" ]; then \
echo + source was modified ;\
else \
echo + source is unmodified ;\
fi
pkg-release: pkg-release-reinstall
pkg-rebuild-reinstall: pkg-clean pkg-build pkg-reinstall
pkg-release-update-version:
$(PKG_SH) update-version
pkg-release-reinstall: get-maintainer get-official pkg-release-update-version
$(PKG_SH) release $(PKG_SH_BUILD_OPTS)
ifneq ($(TARGET_HOST),)
pkg-remote-install:
scp $(addprefix dist/pckg/,$(PKG_RUN_X86) $(PKG_DEVEL_X86)) root@$(TARGET_HOST):/tmp/
ssh -l root $(TARGET_HOST) rpm -U --force $(addprefix /tmp/,$(PKG_RUN_X86) $(PKG_DEVEL_X86))
pkg-remote-install-run:
scp $(addprefix dist/pckg/,$(PKG_RUN_X86)) root@$(TARGET_HOST):/tmp/
ssh -l root $(TARGET_HOST) rpm -U --force $(addprefix /tmp/,$(PKG_RUN_X86))
ssh-remote:
ssh -l root $(TARGET_HOST)
endif
pkg-requires:
@echo "PKG_REQUIRES_BUILD = $(PKG_REQUIRES_BUILD)"
@echo "PKG_REQUIRES_RUN = $(PKG_REQUIRES_RUN)"
@echo "PKG_REQUIRES_DEVEL = $(PKG_REQUIRES_DEVEL)"
@echo "PKG_CONFLICTS_RUN = $(PKG_CONFLICTS_RUN)"
@echo "PKG_CONFLICTS_DEVEL = $(PKG_CONFLICTS_DEVEL)"
@echo "PKG_PROVIDES_RUN = $(PKG_PROVIDES_RUN)"
@echo "PKG_PROVIDES_DEVEL = $(PKG_PROVIDES_DEVEL)"
else # ifneq ($(BUILD_PROJECT_PACKAGE),false)
pkg-build \
pkg-check-release \
pkg-clean \
pkg-install \
pkg-next-build \
pkg-rebuild \
pkg-rebuild-reinstall \
pkg-reinstall \
pkg-release \
pkg-release-reinstall \
pkg-remote-install \
pkg-remote-install-run \
pkg-uninstall \
pkg-update \
pkg-update-local-repo \
pkg-update-release \
pkg-upload-local \
pkg-upload-local.dist \
pkg-upload-rc \
pkg-upload-stable:
@echo "This project doesn't support building packages, ignoring request to $(patsubst pkg-%,%,$@)."
endif # ifneq ($(BUILD_PROJECT_PACKAGE),false)
echo: echo-pkg
echo-dist:
@echo "TARGET_HOST = $(TARGET_HOST)"

View file

@ -6,7 +6,7 @@ JWBDIR ?= $(TOPDIR)
JANWARE_WIKI = priv JANWARE_WIKI = priv
JANWARE_URL_DOC_PROJECT ?= https://janware.com/wiki/pub/en/sw/build/cheat_sheet JANWARE_URL_DOC_PROJECT ?= https://janware.com/wiki/pub/en/sw/build/cheat_sheet
# rpmdist.mk variable overrides # pkg-dist.mk variable overrides
FTP_SRC_GROUP = ytsrc FTP_SRC_GROUP = ytsrc
FTP_RUN_GROUP = ytrun FTP_RUN_GROUP = ytrun
FTP_DEV_GROUP = ytdev FTP_DEV_GROUP = ytdev

View file

@ -7,7 +7,7 @@ else ifeq ($(VCS),git)
endif endif
WD_PKG_DIR = dist/wd WD_PKG_DIR = dist/wd
WD_PKG_BASE_NAME = $(RPM_PROJECT)$(WD_PKG_VCS_SUFFIX)-$(RPM_VERSION) WD_PKG_BASE_NAME = $(PKG_PROJECT)$(WD_PKG_VCS_SUFFIX)-$(PKG_VERSION)
WD_PKG = $(WD_PKG_BASE_NAME).tar.bz2 WD_PKG = $(WD_PKG_BASE_NAME).tar.bz2
WD_PKG_PATH = $(WD_PKG_DIR)/$(WD_PKG) WD_PKG_PATH = $(WD_PKG_DIR)/$(WD_PKG)

View file

@ -61,7 +61,7 @@ ifneq ($(SUBDIRS_TO_ITERATE),)
endif endif
include $(JWBDIR)/make/dirs.mk include $(JWBDIR)/make/dirs.mk
include $(JWBDIR)/make/rpmdist.mk include $(JWBDIR)/make/pkg-dist.mk
include $(JWBDIR)/make/rules.mk include $(JWBDIR)/make/rules.mk
include $(JWBDIR)/make/doc-rules.mk include $(JWBDIR)/make/doc-rules.mk
include $(JWBDIR)/make/list-files.mk include $(JWBDIR)/make/list-files.mk
@ -140,7 +140,7 @@ git-init: git-init.done $(GIT_DESCR)
git-init-from-cvs: git-init git-init-from-cvs: git-init
$(LIST_VCS_FILES) -f | xargs git add $(LIST_VCS_FILES) -f | xargs git add
git commit -m "First commit of $(RPM_VERSION)" git commit -m "First commit of $(PKG_VERSION)"
git-config: git-config:
git config --global user.name || git config --global user.name "$(FULL_NAME)" git config --global user.name || git config --global user.name "$(FULL_NAME)"
@ -171,7 +171,7 @@ projects-%:
$(PYTHON) $(JWB_SCRIPT_DIR)/jw-pkg.py projects build $* $(PROJECT) $(PYTHON) $(JWB_SCRIPT_DIR)/jw-pkg.py projects build $* $(PROJECT)
install-deps-devel: install-deps-devel:
sudo zypper in $(shell echo $(RPM_REQUIRES_DEVEL) | sed "s/ *= */-/g; s/ [^ ]\+-__NEXT_VERSION__//") sudo zypper in $(shell echo $(PKG_REQUIRES_DEVEL) | sed "s/ *= */-/g; s/ [^ ]\+-__NEXT_VERSION__//")
streamline: streamline:
$(STREAMLINE_PROJECT) $(STREAMLINE_PROJECT)

View file

@ -19,9 +19,6 @@ append()
#set -x #set -x
MYNAME=`basename $0` MYNAME=`basename $0`
ID=`whoami`
[ ! "$INSTALL_LOG" ] && INSTALL_LOG=/tmp/rpmbuild-$ID/install.log
eval set -- `getopt -l "provides-run:" -l "provides-devel:" -o "P:T:V:S:N:hR:D:X:Y:d:" -- "$@"` eval set -- `getopt -l "provides-run:" -l "provides-devel:" -o "P:T:V:S:N:hR:D:X:Y:d:" -- "$@"`
while [ "$1" != -- ]; do while [ "$1" != -- ]; do
@ -78,6 +75,9 @@ shift
done done
shift shift
ID=`whoami`
[ ! "$INSTALL_LOG" ] && INSTALL_LOG=/tmp/pkg-build-$ID-$NAME/install.log
MKSPEC_SH="$1" MKSPEC_SH="$1"
shift shift

View file

@ -67,7 +67,7 @@ scm_commit()
platform() platform()
{ {
echo `get_os`/$RPM_ARCH echo `get_os`/$PKG_ARCH
} }
abspath() abspath()
@ -175,22 +175,22 @@ check_next_version()
local v=`read_map $TOPDIR/VERSION | sed 's/-dev//'` local v=`read_map $TOPDIR/VERSION | sed 's/-dev//'`
local n=`read_map -n $TOPDIR/RELEASES | sed 's/-dev//'` local n=`read_map -n $TOPDIR/RELEASES | sed 's/-dev//'`
if [ "$n" != "$v" ]; then if [ "$n" != "$v" ]; then
echo "+ $RPM_PROJECT version is already at $v, no need to increase for release" >&2 echo "+ $PKG_PROJECT version is already at $v, no need to increase for release" >&2
echo $v echo $v
return return
fi fi
local h=`calculate_hash` local h=`calculate_hash`
if [ ! -f $TOPDIR/HASH ]; then if [ ! -f $TOPDIR/HASH ]; then
echo "+ $RPM_PROJECT has no HASH file, needs release" >&2 echo "+ $PKG_PROJECT has no HASH file, needs release" >&2
echo $v echo $v
return return
fi fi
if ! read_map $TOPDIR/HASH | grep -q $h; then if ! read_map $TOPDIR/HASH | grep -q $h; then
echo "+ $RPM_PROJECT has no matching HASH value, needs release" >&2 echo "+ $PKG_PROJECT has no matching HASH value, needs release" >&2
increase_build_no $v increase_build_no $v
return return
fi fi
echo "+ $RPM_PROJECT has unchanged source" >&2 echo "+ $PKG_PROJECT has unchanged source" >&2
if [ "$reinstall_check_failed" = 1 ]; then if [ "$reinstall_check_failed" = 1 ]; then
echo "version $v is uninstallable, needs release" >&2 echo "version $v is uninstallable, needs release" >&2
increase_build_no $v increase_build_no $v
@ -230,10 +230,10 @@ check_pkg_reinstall()
local v=`read_map $TOPDIR/VERSION` local v=`read_map $TOPDIR/VERSION`
local s local s
for s in devel run; do for s in devel run; do
if $RPM -q $RPM_PROJECT-$s > /dev/null 2>&1 ; then if $RPM -q $PKG_PROJECT-$s > /dev/null 2>&1 ; then
echo + removing $RPM_PROJECT-$s echo + removing $PKG_PROJECT-$s
sudo $RPM -e $RPM_PROJECT-$s --nodeps --allmatches || { sudo $RPM -e $PKG_PROJECT-$s --nodeps --allmatches || {
echo "failed to uninstall $RPM_PROJECT-$s, ignored" echo "failed to uninstall $PKG_PROJECT-$s, ignored"
} }
fi fi
done done
@ -241,15 +241,15 @@ check_pkg_reinstall()
local suffix local suffix
case "$PKG_FORMAT" in case "$PKG_FORMAT" in
rpm) rpm)
suffix=-$v.$RPM_ARCH.rpm suffix=-$v.$PKG_ARCH.rpm
;; ;;
*) *)
suffix=_$v""_$RPM_ARCH.deb suffix=_$v""_$PKG_ARCH.deb
;; ;;
esac esac
check_pkg_install $TOPDIR/$DIST_PCKG_DIR/$RPM_PROJECT-run$suffix || return 1 check_pkg_install $TOPDIR/$DIST_PCKG_DIR/$PKG_PROJECT-run$suffix || return 1
check_pkg_install -c $TOPDIR/$DIST_PCKG_DIR/$RPM_PROJECT-devel$suffix || return 1; check_pkg_install -c $TOPDIR/$DIST_PCKG_DIR/$PKG_PROJECT-devel$suffix || return 1;
} }
check_release_is_current() check_release_is_current()
@ -432,7 +432,7 @@ build_pkg()
set -e set -e
local version=`read_map $TOPDIR/VERSION | sed 's/-dev//'` local version=`read_map $TOPDIR/VERSION | sed 's/-dev//'`
local src_base=$RPM_PROJECT-$version local src_base=$PKG_PROJECT-$version
local src_tree=$DIST_SRC_DIR/$src_base local src_tree=$DIST_SRC_DIR/$src_base
local tar_archive=$src_base.tar.bz2 local tar_archive=$src_base.tar.bz2
local tar_archive_orig=$src_base.orig.tar.bz2 local tar_archive_orig=$src_base.orig.tar.bz2
@ -442,12 +442,12 @@ build_pkg()
echo $@ | sed "s/__NEXT_VERSION__/$version/g; s/VERSION-REVISION/$version/g; s/VERSION/$version/g" echo $@ | sed "s/__NEXT_VERSION__/$version/g; s/VERSION-REVISION/$version/g; s/VERSION/$version/g"
} }
local rpm_requires_run=`expand_version_macros $RPM_REQUIRES_RUN` local rpm_requires_run=`expand_version_macros $PKG_REQUIRES_RUN`
local rpm_requires_devel=`expand_version_macros $RPM_REQUIRES_DEVEL` local rpm_requires_devel=`expand_version_macros $PKG_REQUIRES_DEVEL`
local rpm_conflicts_run=`expand_version_macros $RPM_CONFLICTS_RUN` local rpm_conflicts_run=`expand_version_macros $PKG_CONFLICTS_RUN`
local rpm_conflicts_devel=`expand_version_macros $RPM_CONFLICTS_DEVEL` local rpm_conflicts_devel=`expand_version_macros $PKG_CONFLICTS_DEVEL`
local rpm_provides_run=`expand_version_macros $RPM_PROVIDES_RUN` local rpm_provides_run=`expand_version_macros $PKG_PROVIDES_RUN`
local rpm_provides_devel=`expand_version_macros $RPM_PROVIDES_DEVEL` local rpm_provides_devel=`expand_version_macros $PKG_PROVIDES_DEVEL`
# --- create source directory tree # --- create source directory tree
create_empty_dir $src_tree "Source files compilation directory" create_empty_dir $src_tree "Source files compilation directory"
@ -500,7 +500,7 @@ build_pkg()
PATH=$JWB_SCRIPT_DIR:$PATH /bin/bash $mkdef_wrapper_sh $mkdef_sh \ PATH=$JWB_SCRIPT_DIR:$PATH /bin/bash $mkdef_wrapper_sh $mkdef_sh \
-V $version \ -V $version \
-S $tar_archive \ -S $tar_archive \
-N $RPM_PROJECT \ -N $PKG_PROJECT \
-R "$rpm_requires_run" \ -R "$rpm_requires_run" \
-X "$rpm_conflicts_run" \ -X "$rpm_conflicts_run" \
-D "$rpm_requires_devel" \ -D "$rpm_requires_devel" \
@ -509,7 +509,7 @@ build_pkg()
--provides-devel "$rpm_provides_devel" \ --provides-devel "$rpm_provides_devel" \
-P $PROJECT \ -P $PROJECT \
-d $distribution \ -d $distribution \
> $RPM_PROJECT.$deffmt > $PKG_PROJECT.$deffmt
) )
done done
@ -521,9 +521,13 @@ build_pkg()
case "$PKG_FORMAT" in case "$PKG_FORMAT" in
rpm) rpm)
# --- build RPMs and copy them to source directory # --- build RPMs and copy them to source directory
local rpmbuild_root=$HOME/rpmbuild
[ `id -u` = 0 ] && rpmbuild_root=/usr/src/packages
local rpmbuild_srpms=$rpmbuild_root/SRPMS
local rpmbuild_rpms=$rpmbuild_root/RPMS/$PKG_ARCH
rpmbuild -ta $DIST_PCKG_DIR/$tar_archive rpmbuild -ta $DIST_PCKG_DIR/$tar_archive
cp $SRPMS_DIR/$src_base.src.rpm $DIST_PCKG_DIR/ cp $rpmbuild_srpms/$src_base.src.rpm $DIST_PCKG_DIR/
cp $RPMS_DIR/$RPM_PROJECT-*-$version.$RPM_ARCH.rpm $DIST_PCKG_DIR/ cp $rpmbuild_rpms/$PKG_PROJECT-*-$version.$PKG_ARCH.rpm $DIST_PCKG_DIR/
;; ;;
*) *)
#exit #exit
@ -605,10 +609,10 @@ upload_pkg()
case $PKG_FORMAT in case $PKG_FORMAT in
rpm) rpm)
server=pkg.janware.com server=pkg.janware.com
upload_file $RPM_PROJECT-$v.tar.bz2 tgz upload_file $PKG_PROJECT-$v.tar.bz2 tgz
upload_file $RPM_PROJECT-$v.src.rpm src upload_file $PKG_PROJECT-$v.src.rpm src
upload_file $RPM_PROJECT-run-$v.$RPM_ARCH.rpm $RPM_ARCH upload_file $PKG_PROJECT-run-$v.$PKG_ARCH.rpm $PKG_ARCH
upload_file -q $RPM_PROJECT-devel-$v.$RPM_ARCH.rpm $RPM_ARCH upload_file -q $PKG_PROJECT-devel-$v.$PKG_ARCH.rpm $PKG_ARCH
;; ;;
debian|deb) debian|deb)
local -r server=apt.janware.com local -r server=apt.janware.com
@ -638,7 +642,7 @@ upload_pkg()
#pre_upload_command = #pre_upload_command =
#default_host_main = #default_host_main =
EOT EOT
dput -c $conf janware-debian dist/src/"$RPM_PROJECT"_"$v"_"$RPM_ARCH".changes dput -c $conf janware-debian dist/src/"$PKG_PROJECT"_"$v"_"$PKG_ARCH".changes
rm -f $conf rm -f $conf
;; ;;
*) *)
@ -1121,7 +1125,7 @@ trap goodbye SIGINT SIGKILL
# -- default values # -- default values
TOPDIR=. TOPDIR=.
CHECK_CVS_SYNC_BEFORE_RPM_RELEASE=false PKG_CHECK_VCS_SYNC_BEFORE_RELEASE=false
myname="${0##*/}" myname="${0##*/}"
cmdline="$0 $@" cmdline="$0 $@"
tmp_mkdef_sh="" tmp_mkdef_sh=""
@ -1129,10 +1133,10 @@ PROJECT_DESCR_FILE=$TOPDIR/make/project.conf
DIST_SRC_DIR=dist/src DIST_SRC_DIR=dist/src
DIST_INST_DIR=dist/src DIST_INST_DIR=dist/src
DIST_PCKG_DIR=dist/pckg DIST_PCKG_DIR=dist/pckg
RPM_PROJECT="$PROJECT" PKG_PROJECT="$PROJECT"
RPM_REQUIRES_RUN="" PKG_REQUIRES_RUN=""
RPM_REQUIRES_DEVEL="" PKG_REQUIRES_DEVEL=""
RPM_ARCH=$HOSTTYPE PKG_ARCH=$HOSTTYPE
PKG_FORMAT=rpm PKG_FORMAT=rpm
SSH=ssh SSH=ssh
SCM=cvs SCM=cvs
@ -1159,31 +1163,31 @@ while [ ${1:0:1} = - ]; do
shift shift
;; ;;
-N) -N)
eval RPM_PROJECT=\"$2\" eval PKG_PROJECT=\"$2\"
shift shift
;; ;;
-R) -R)
eval RPM_REQUIRES_RUN=\"$2\" eval PKG_REQUIRES_RUN=\"$2\"
shift shift
;; ;;
-X) -X)
eval RPM_CONFLICTS_RUN=\"$2\" eval PKG_CONFLICTS_RUN=\"$2\"
shift shift
;; ;;
-D) -D)
eval RPM_REQUIRES_DEVEL=\"$2\" eval PKG_REQUIRES_DEVEL=\"$2\"
shift shift
;; ;;
-Y) -Y)
eval RPM_CONFLICTS_DEVEL=\"$2\" eval PKG_CONFLICTS_DEVEL=\"$2\"
shift shift
;; ;;
--provides-run) --provides-run)
eval RPM_PROVIDES_RUN=\"$2\" eval PKG_PROVIDES_RUN=\"$2\"
shift shift
;; ;;
--provides-devel) --provides-devel)
eval RPM_PROVIDES_DEVEL=\"$2\" eval PKG_PROVIDES_DEVEL=\"$2\"
shift shift
;; ;;
-P) -P)
@ -1191,7 +1195,7 @@ while [ ${1:0:1} = - ]; do
shift shift
;; ;;
-a) -a)
eval RPM_ARCH=\"$2\" eval PKG_ARCH=\"$2\"
shift shift
;; ;;
-F) -F)
@ -1227,14 +1231,6 @@ export JWB_SCRIPT_DIR=`readlink -f $JWB_SCRIPT_DIR`
export PKG_SH=`readlink -f $0` export PKG_SH=`readlink -f $0`
if [ `whoami` = root ]; then
RPMS_BUILD_DIR=/usr/src/packages
else
RPMS_BUILD_DIR=$HOME/rpmbuild
fi
SRPMS_DIR=$RPMS_BUILD_DIR/SRPMS
RPMS_DIR=$RPMS_BUILD_DIR/RPMS/$RPM_ARCH
# shift # shift
[ ! "$cmd" ] && { [ ! "$cmd" ] && {