pkg-dist.mk, pkg.sh: Build RPMs in dist/build, drop the pckg spelling #127

Merged
Jan Lindemann merged 3 commits from jan/feature/20260924-pkg-dist-mk-pkg-sh-build-rpms-in-dist-build-drop-the-pckg-spelling into master 2026-09-24 13:15:37 +02:00 AGit
3 changed files with 42 additions and 35 deletions

View file

@ -39,10 +39,10 @@ include $(JWBDIR)/make/tag-defs.mk
DIST_DIR = dist DIST_DIR = dist
DIST_SRC_DIR = $(DIST_DIR)/src/$(PKG_PROJECT)-$(PKG_VERSION) DIST_SRC_DIR = $(DIST_DIR)/src/$(PKG_PROJECT)-$(PKG_VERSION)
DIST_PCKG_DIR = $(DIST_DIR)/pckg DIST_PKG_DIR = $(DIST_DIR)/pkg
UPLOAD_SRC_DIR = $(DIST_PCKG_DIR) UPLOAD_SRC_DIR = $(DIST_PKG_DIR)
PCKG_TAR ?= $(PKG_PROJECT)-$(PKG_VERSION).tar.gz PKG_TAR ?= $(PKG_PROJECT)-$(PKG_VERSION).tar.gz
ifeq ($(PKG_FORMAT),debian) ifeq ($(PKG_FORMAT),debian)
# too bad: debian Requires: somepkg = 1.2.3 isn't satisfied by somepkg-1.2.3-5 # too bad: debian Requires: somepkg = 1.2.3 isn't satisfied by somepkg-1.2.3-5
@ -67,15 +67,16 @@ else
ifeq ($(BUILD_USER),root) ifeq ($(BUILD_USER),root)
PKG_DIR_BUILD = /usr/src/packages PKG_DIR_BUILD = /usr/src/packages
else else
PKG_DIR_BUILD = $(HOME)/rpmbuild PKG_DIR_BUILD ?= $(TOPDIR)/dist/build
endif endif
PKG_DIR_BINARY = $(PKG_DIR_BUILD)/RPMS/$(PKG_ARCH) PKG_DIR_BINARY = $(PKG_DIR_BUILD)/RPMS/$(PKG_ARCH)
PKG_SH_EXTRA_ARGS += -T $(PKG_DIR_BUILD)
endif endif
DIST_DIRS = $(DIST_SRC_DIR) $(DIST_PCKG_DIR) DIST_DIRS = $(DIST_SRC_DIR) $(DIST_PKG_DIR)
BINARY_PKG = $(DIST_PCKG_DIR)/$(PKG_RUN_X86) BINARY_PKG = $(DIST_PKG_DIR)/$(PKG_RUN_X86)
ifeq ($(CREATE_DEVEL),true) ifeq ($(CREATE_DEVEL),true)
BINARY_PKG += $(DIST_PCKG_DIR)/$(PKG_DEVEL_X86) BINARY_PKG += $(DIST_PKG_DIR)/$(PKG_DEVEL_X86)
endif endif
PKG_REQUIRES_BUILD += $(call proj_query, pkg-requires $(PROJ_QUERY_PKG_REQUIRES_EXTRA_ARGS) build $(PROJECT)) PKG_REQUIRES_BUILD += $(call proj_query, pkg-requires $(PROJ_QUERY_PKG_REQUIRES_EXTRA_ARGS) build $(PROJECT))
@ -105,15 +106,15 @@ PKG_SH = $(PKG_SH_EXE) \
-E "$(PKG_RECOMMENDS_RUN)" \ -E "$(PKG_RECOMMENDS_RUN)" \
-X "$(PKG_CONFLICTS_RUN)" -Y "$(PKG_CONFLICTS_DEVEL)" \ -X "$(PKG_CONFLICTS_RUN)" -Y "$(PKG_CONFLICTS_DEVEL)" \
--provides-run "$(PKG_PROVIDES_RUN)" --provides-devel "$(PKG_PROVIDES_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) \ -m $(JWB_SCRIPT_DIR) -a $(PKG_ARCH) -p $(DIST_PKG_DIR) -F $(PKG_FORMAT) \
-B $(PKG_UPLOAD_URLPREFIX) -A $(PKG_UPLOAD_FILE_ATTRIB) -B $(PKG_UPLOAD_URLPREFIX) -A $(PKG_UPLOAD_FILE_ATTRIB) $(PKG_SH_EXTRA_ARGS)
all: all:
install: install:
clean: pkg-clean clean: pkg-clean
distclean: pkg-clean distclean: pkg-clean
pkg-tgz: $(DIST_PCKG_DIR)/$(PCKG_TAR) pkg-tgz: $(DIST_PKG_DIR)/$(PKG_TAR)
ftag: ftag.dist ftag: ftag.dist
pkg-upload-stable: pkg-upload-STABLE.dist pkg-upload-stable: pkg-upload-STABLE.dist
@ -139,7 +140,7 @@ pkg-build.dist: $(VERSION_FILE)
pkg-update-local-repo: pkg-update-local-repo:
for a in src i386 i586 i686 x86_64; do \ for a in src i386 i586 i686 x86_64; do \
if ls dist/*/*.$$a.rpm >/dev/null 2>&1; then \ if ls dist/*/*.$$a.rpm >/dev/null 2>&1; then \
sudo install -m 644 dist/pckg/*.$$a.rpm $(LOCAL_REPO)/rpm/$$a/ ;\ sudo install -m 644 dist/pkg/*.$$a.rpm $(LOCAL_REPO)/rpm/$$a/ ;\
fi ;\ fi ;\
done done
sudo sh $(LOCAL_REPO)/update.sh sudo sh $(LOCAL_REPO)/update.sh
@ -168,7 +169,7 @@ pkguninstall.dist:
upload-%.dist: %_$(PROJECT_CAPNAME)_RPM_RUN_I386 upload-%.dist: %_$(PROJECT_CAPNAME)_RPM_RUN_I386
cvs commit $< cvs commit $<
$(UPLOAD_SH) $< $(REMOTE_TARGET_PREFIX)$(PCKG_ROOT)/$<:640:750:$(FTP_RUN_USER).$(FTP_RUN_GROUP) $(UPLOAD_SH) $< $(REMOTE_TARGET_PREFIX)$(PKG_ROOT)/$<:640:750:$(FTP_RUN_USER).$(FTP_RUN_GROUP)
touch $@ touch $@
update-repo.dist: upload.dist update-repo.dist: upload.dist
@ -249,7 +250,7 @@ define increase_build_number
endef endef
define check_reinstall_old define check_reinstall_old
(true $(addprefix && test -f ,$(DIST_PCKG_RPM)) && make pkg-uninstall && make pkg-install) (true $(addprefix && test -f ,$(DIST_PKG_RPM)) && make pkg-uninstall && make pkg-install)
endef endef
md5: md5:
@ -287,10 +288,10 @@ pkg-release-reinstall: get-maintainer get-official get-pub pkg-release-update-ve
$(PKG_SH) release $(PKG_SH_BUILD_OPTS) $(PKG_SH) release $(PKG_SH_BUILD_OPTS)
ifneq ($(TARGET_HOST),) ifneq ($(TARGET_HOST),)
pkg-remote-install: pkg-remote-install:
scp $(addprefix dist/pckg/,$(PKG_RUN_X86) $(PKG_DEVEL_X86)) root@$(TARGET_HOST):/tmp/ scp $(addprefix dist/pkg/,$(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)) ssh -l root $(TARGET_HOST) rpm -U --force $(addprefix /tmp/,$(PKG_RUN_X86) $(PKG_DEVEL_X86))
pkg-remote-install-run: pkg-remote-install-run:
scp $(addprefix dist/pckg/,$(PKG_RUN_X86)) root@$(TARGET_HOST):/tmp/ scp $(addprefix dist/pkg/,$(PKG_RUN_X86)) root@$(TARGET_HOST):/tmp/
ssh -l root $(TARGET_HOST) rpm -U --force $(addprefix /tmp/,$(PKG_RUN_X86)) ssh -l root $(TARGET_HOST) rpm -U --force $(addprefix /tmp/,$(PKG_RUN_X86))
ssh-remote: ssh-remote:
ssh -l root $(TARGET_HOST) ssh -l root $(TARGET_HOST)

View file

@ -33,7 +33,7 @@ distclean: clean
love \ love \
mocclean \ mocclean \
objclean \ objclean \
pckgclean \ pkgclean \
depsclean \ depsclean \
profclean \ profclean \
push \ push \
@ -60,7 +60,7 @@ installexe: all checkroot $(INSTALLED_EXE)
installso: all checkroot install_dir_LIB $(INSTALLED_SHOBJS) installso: all checkroot install_dir_LIB $(INSTALLED_SHOBJS)
pckgclean: pkgclean:
$(RM) -rf *.zip *.tar.gz *.rpm *.deb $(RM) -rf *.zip *.tar.gz *.rpm *.deb
tmpclean: tmpclean:

View file

@ -253,8 +253,8 @@ check_pkg_reinstall()
;; ;;
esac esac
check_pkg_install $TOPDIR/$DIST_PCKG_DIR/$PKG_PROJECT-run$suffix || return 1 check_pkg_install $TOPDIR/$DIST_PKG_DIR/$PKG_PROJECT-run$suffix || return 1
check_pkg_install -c $TOPDIR/$DIST_PCKG_DIR/$PKG_PROJECT-devel$suffix || return 1; check_pkg_install -c $TOPDIR/$DIST_PKG_DIR/$PKG_PROJECT-devel$suffix || return 1;
} }
check_release_is_current() check_release_is_current()
@ -517,24 +517,25 @@ build_pkg()
done done
# --- tar up source directory tree # --- tar up source directory tree
create_empty_dir $DIST_PCKG_DIR "Package directory" create_empty_dir $DIST_PKG_DIR "Package directory"
tar --anchored -czvf $DIST_PCKG_DIR/$tar_archive -C $DIST_SRC_DIR `basename $src_tree` tar --anchored -czvf $DIST_PKG_DIR/$tar_archive -C $DIST_SRC_DIR `basename $src_tree`
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 local rpmbuild_root=${RPMBUILD_ROOT:-$HOME/rpmbuild}
[ `id -u` = 0 ] && rpmbuild_root=/usr/src/packages mkdir -p $rpmbuild_root
rpmbuild_root=$(readlink -f $rpmbuild_root)
local rpmbuild_srpms=$rpmbuild_root/SRPMS local rpmbuild_srpms=$rpmbuild_root/SRPMS
local rpmbuild_rpms=$rpmbuild_root/RPMS/$PKG_ARCH local rpmbuild_rpms=$rpmbuild_root/RPMS/$PKG_ARCH
rpmbuild -ta $DIST_PCKG_DIR/$tar_archive rpmbuild --define "_topdir $rpmbuild_root" -ta $DIST_PKG_DIR/$tar_archive
cp $rpmbuild_srpms/$src_base.src.rpm $DIST_PCKG_DIR/ cp $rpmbuild_srpms/$src_base.src.rpm $DIST_PKG_DIR/
cp $rpmbuild_rpms/$PKG_PROJECT-*-$version.$PKG_ARCH.rpm $DIST_PCKG_DIR/ cp $rpmbuild_rpms/$PKG_PROJECT-*-$version.$PKG_ARCH.rpm $DIST_PKG_DIR/
;; ;;
*) *)
#exit #exit
#cp $DIST_PCKG_DIR/$tar_archive $src_tree/../$tar_archive_orig #cp $DIST_PKG_DIR/$tar_archive $src_tree/../$tar_archive_orig
( (
local mod_script_dir=`readlink -f $JWB_SCRIPT_DIR` local mod_script_dir=`readlink -f $JWB_SCRIPT_DIR`
cd $src_tree cd $src_tree
@ -543,7 +544,7 @@ build_pkg()
#strace -f -s 128 -o /tmp/strace.out debuild --no-tgz-check --prepend-path=$mod_script_dir -us -uc #strace -f -s 128 -o /tmp/strace.out debuild --no-tgz-check --prepend-path=$mod_script_dir -us -uc
debuild --no-tgz-check --prepend-path=$mod_script_dir -us -uc debuild --no-tgz-check --prepend-path=$mod_script_dir -us -uc
) )
cp $DIST_SRC_DIR/*.deb $DIST_PCKG_DIR/ cp $DIST_SRC_DIR/*.deb $DIST_PKG_DIR/
;; ;;
esac esac
} }
@ -557,9 +558,9 @@ upload_file()
fi fi
local f="$1" local f="$1"
local t="$2" local t="$2"
[ -f $DIST_PCKG_DIR/$f ] || { [ -f $DIST_PKG_DIR/$f ] || {
if [ "$quiet" = true ]; then return 0; fi if [ "$quiet" = true ]; then return 0; fi
"+ $DIST_PCKG_DIR/$f doesn't exist, can't upload" "+ $DIST_PKG_DIR/$f doesn't exist, can't upload"
return 1 return 1
} }
local os_name=`get_os | sed 's/-.*//'` local os_name=`get_os | sed 's/-.*//'`
@ -599,7 +600,7 @@ upload_file()
esac esac
esac esac
echo "+ uploading $target" echo "+ uploading $target"
RSYNC_RSH=$SSH /bin/bash $JWB_SCRIPT_DIR/upload.sh $DIST_PCKG_DIR/$f $target RSYNC_RSH=$SSH /bin/bash $JWB_SCRIPT_DIR/upload.sh $DIST_PKG_DIR/$f $target
} }
upload_pkg() upload_pkg()
@ -1137,7 +1138,8 @@ tmp_mkdef_sh=""
PROJECT_DESCR_FILE=$TOPDIR/make/project.conf 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_PKG_DIR=dist/pkg
RPMBUILD_ROOT=""
PKG_PROJECT="$PROJECT" PKG_PROJECT="$PROJECT"
PKG_REQUIRES_RUN="" PKG_REQUIRES_RUN=""
PKG_RECOMMENDS_RUN="" PKG_RECOMMENDS_RUN=""
@ -1160,8 +1162,12 @@ while [ ${1:0:1} = - ]; do
eval DIST_SRC_DIR=\"$2\" eval DIST_SRC_DIR=\"$2\"
shift shift
;; ;;
-T)
eval RPMBUILD_ROOT=\"$2\"
shift
;;
-p) -p)
eval DIST_PCKG_DIR=\"$2\" eval DIST_PKG_DIR=\"$2\"
shift shift
;; ;;
-m) -m)
@ -1281,7 +1287,7 @@ version)
;; ;;
build) build)
check_cwd check_cwd
rm -rf ./$DIST_SRC_DIR ./$DIST_PCKG_DIR rm -rf ./$DIST_SRC_DIR ./$DIST_PKG_DIR
cmd_build "$@" cmd_build "$@"
;; ;;
release-reinstall) release-reinstall)
@ -1295,7 +1301,7 @@ release)
check_release_is_current -r || { check_release_is_current -r || {
set -e set -e
check_cwd check_cwd
rm -rf ./$DIST_SRC_DIR ./$DIST_PCKG_DIR rm -rf ./$DIST_SRC_DIR ./$DIST_PKG_DIR
check_update_version || true check_update_version || true
cmd_build "$@" cmd_build "$@"
check_pkg_reinstall check_pkg_reinstall