rpmdist.mk: Make rpm-[un]install work on Debian

Make rpm-install and rpm-uninstall work on Debian, sort of.

Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
Jan Lindemann 2015-05-28 11:37:00 +00:00
commit 11e36e834b
3 changed files with 22 additions and 16 deletions

View file

@ -53,3 +53,4 @@ SYMBOLS: $(LIB_A)
check_symversion:
$(symversion) | diff SYMBOLS - | sed '/^</ !d'

View file

@ -6,9 +6,13 @@ endif
PKG_FORMAT ?= rpm
ifeq ($(PKG_FORMAT),debian)
RPM ?= /bin/bash $(MOD_SCRIPT_DIR)/dpm.sh
RPM_ARCH ?= $(shell dpkg --print-architecture)
RPM_SUFFIX ?= deb
else
RPM ?= /bin/rpm
RPM_ARCH ?= $(ARCH)
RPM_SUFFIX ?= rpm
endif
CREATE_DEVEL ?= true
UPLOAD_SH = $(MOD_SCRIPT_DIR)/upload.sh
@ -48,9 +52,9 @@ DIST_PCKG_DIR = $(DIST_DIR)/pckg
PCKG_TAR ?= $(RPM_PROJECT)-$(RPM_VERSION).tar.gz
ifeq ($(PKG_FORMAT),debian)
PCKG_RPM_RUN_I386 ?= $(RPM_PROJECT)-run-$(RPM_VERSION)_$(RPM_ARCH).deb
PCKG_RPM_RUN_I386 ?= $(RPM_PROJECT)-run_$(RPM_VERSION)_$(RPM_ARCH).deb
ifeq ($(CREATE_DEVEL),true)
PCKG_RPM_DEVEL_I386 ?= $(RPM_PROJECT)-devel-$(RPM_VERSION)_$(RPM_ARCH).deb
PCKG_RPM_DEVEL_I386 ?= $(RPM_PROJECT)-devel_$(RPM_VERSION)_$(RPM_ARCH).deb
endif
PCKG_RPM_SRC ?= $(RPM_PROJECT)-$(RPM_VERSION).src.deb.keinplan
else
@ -176,25 +180,25 @@ rpm-upload-local.dist: rpmbuild.dist
rpminstall.dist: rpm-build.dist
@set -e; for p in $(BINARY_RPM); do \
if ! /bin/rpm -q `basename $$p | $(SED) "s/\.$(RPM_ARCH)\.rpm//"` > /dev/null 2>&1 ; then \
if ! $(RPM) -q `basename $$p | $(SED) "s/[._]$(RPM_ARCH)\.$(RPM_SUFFIX)//; s/_\([0-9.-]\+\)$$/-\1/"` > /dev/null 2>&1 ; then \
echo + installing $$p ;\
sudo /bin/rpm -U $$p; \
sudo $(RPM) -U $$p; \
fi; \
done
touch $@
rpmupdate.dist: $(DIST_PCKG_RPM)
@set -e; for p in $^; do \
echo + updating $$p ;\
sudo /bin/rpm -U --replacepkgs --replacefiles $$p; \
done
touch $@
#rpmupdate.dist: $(DIST_PCKG_RPM)
# @set -e; for p in $^; do \
# echo + updating $$p ;\
# sudo /bin/rpm -U --replacepkgs --replacefiles $$p; \
# done
# touch $@
rpmuninstall.dist:
@set -e; for s in devel run; do \
if /bin/rpm -q $(RPM_PROJECT)-$$s > /dev/null 2>&1 ; then \
if $(RPM) -q $(RPM_PROJECT)-$$s > /dev/null 2>&1 ; then \
echo + removing $(RPM_PROJECT)-$$s ;\
sudo /bin/rpm -e $(RPM_PROJECT)-$$s --nodeps --allmatches; \
sudo $(RPM) -e $(RPM_PROJECT)-$$s --nodeps --allmatches; \
fi; \
done
rm -f rpminstall.dist

View file

@ -34,7 +34,8 @@ cmd_update()
cmd_erase()
{
$dpkg -r $1
#$dpkg -r $1
$dpkg --purge $1
}
cmd_query()
@ -46,9 +47,9 @@ cmd_query()
local p=`echo $1 | sed 's/-[0-9.-]\+$//'`
local v=`echo $1 | sed "s/$p-*//"`
local ip=`dpkg-query -W -f '${Package}' $p`
[ $? != 0 ] && exit 1
local iv=`dpkg-query -W -f '${Version}' $p`
local ip=`dpkg-query -W -f '${Package}' $p >/dev/null 2>&1`
[ $? != 0 -o -z "$ip" ] && exit 1
local iv=`dpkg-query -W -f '${Version}' $p >/dev/null 2>&1`
[ "$v" ] && {
[ "$v" != "$iv" ] && {
echo "tried $1, installed version is $iv" >&2