mirror of
ssh://git.janware.com/srv/git/janware/proj/jw-pkg
synced 2026-01-15 03:53:32 +01:00
make, scripts: Add support for [pkg.provides.xxx]
Add Support for manually specifying arbitrary package capabilities in project.conf. Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
parent
c6f81d4f4c
commit
f28afc777c
5 changed files with 45 additions and 31 deletions
|
|
@ -79,6 +79,8 @@ RPM_REQUIRES_DEVEL += $(call proj_query, pkg-requires --dont-expand-versi
|
||||||
RPM_REQUIRES_RUN += $(call proj_query, pkg-requires --dont-expand-version-macros $(PROJ_QUERY_PKG_REQUIRES_EXTRA_ARGS) run $(PROJECT))
|
RPM_REQUIRES_RUN += $(call proj_query, pkg-requires --dont-expand-version-macros $(PROJ_QUERY_PKG_REQUIRES_EXTRA_ARGS) run $(PROJECT))
|
||||||
RPM_CONFLICTS_DEVEL += $(call proj_query, pkg-conflicts --dont-expand-version-macros $(PROJ_QUERY_PKG_CONFLICTS_EXTRA_ARGS) devel $(PROJECT))
|
RPM_CONFLICTS_DEVEL += $(call proj_query, pkg-conflicts --dont-expand-version-macros $(PROJ_QUERY_PKG_CONFLICTS_EXTRA_ARGS) devel $(PROJECT))
|
||||||
RPM_CONFLICTS_RUN += $(call proj_query, pkg-conflicts --dont-expand-version-macros $(PROJ_QUERY_PKG_CONFLICTS_EXTRA_ARGS) run $(PROJECT))
|
RPM_CONFLICTS_RUN += $(call proj_query, pkg-conflicts --dont-expand-version-macros $(PROJ_QUERY_PKG_CONFLICTS_EXTRA_ARGS) run $(PROJECT))
|
||||||
|
RPM_PROVIDES_DEVEL += $(call proj_query, pkg-provides --dont-expand-version-macros $(PROJ_QUERY_PKG_PROVIDES_EXTRA_ARGS) devel $(PROJECT))
|
||||||
|
RPM_PROVIDES_RUN += $(call proj_query, pkg-provides --dont-expand-version-macros $(PROJ_QUERY_PKG_PROVIDES_EXTRA_ARGS) run $(PROJECT))
|
||||||
|
|
||||||
RPM_UPLOAD_OS_NAME = $(shell echo $(OS) | sed 's/-.*//')
|
RPM_UPLOAD_OS_NAME = $(shell echo $(OS) | sed 's/-.*//')
|
||||||
RPM_UPLOAD_OS_VERSION = $(shell echo $(OS) | sed 's/[^-]\+-//')
|
RPM_UPLOAD_OS_VERSION = $(shell echo $(OS) | sed 's/[^-]\+-//')
|
||||||
|
|
@ -96,6 +98,7 @@ PKG_SH = $(PKG_SH_EXE) \
|
||||||
-N $(RPM_PROJECT) -P $(PROJECT) \
|
-N $(RPM_PROJECT) -P $(PROJECT) \
|
||||||
-R "$(RPM_REQUIRES_RUN)" -D "$(RPM_REQUIRES_DEVEL)" \
|
-R "$(RPM_REQUIRES_RUN)" -D "$(RPM_REQUIRES_DEVEL)" \
|
||||||
-X "$(RPM_CONFLICTS_RUN)" -Y "$(RPM_CONFLICTS_DEVEL)" \
|
-X "$(RPM_CONFLICTS_RUN)" -Y "$(RPM_CONFLICTS_DEVEL)" \
|
||||||
|
--provides-run "$(RPM_PROVIDES_RUN)" --provides-devel "$(RPM_PROVIDES_DEVEL)" \
|
||||||
-m $(MOD_SCRIPT_DIR) -a $(RPM_ARCH) -p $(DIST_PCKG_DIR) -F $(PKG_FORMAT) \
|
-m $(MOD_SCRIPT_DIR) -a $(RPM_ARCH) -p $(DIST_PCKG_DIR) -F $(PKG_FORMAT) \
|
||||||
-B $(RPM_UPLOAD_URLPREFIX) -A $(RPM_UPLOAD_FILE_ATTRIB)
|
-B $(RPM_UPLOAD_URLPREFIX) -A $(RPM_UPLOAD_FILE_ATTRIB)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -110,6 +110,7 @@ for p in $subpackages; do
|
||||||
|echo "Group: `cfg_value global.group`"
|
|echo "Group: `cfg_value global.group`"
|
||||||
|[ "\$REQUIRES_$P" ] && echo "Requires: \$REQUIRES_$P"
|
|[ "\$REQUIRES_$P" ] && echo "Requires: \$REQUIRES_$P"
|
||||||
|[ "\$CONFLICTS_$P" ] && echo "Conflicts: \$CONFLICTS_$P"
|
|[ "\$CONFLICTS_$P" ] && echo "Conflicts: \$CONFLICTS_$P"
|
||||||
|
|[ "\$PROVIDES_$P" ] && echo "Provides: \$PROVIDES_$P"
|
||||||
|echo ""
|
|echo ""
|
||||||
EOT
|
EOT
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -18,13 +18,9 @@ append()
|
||||||
|
|
||||||
#set -x
|
#set -x
|
||||||
|
|
||||||
if [ ! "$INSTALL_LOG" ]; then
|
|
||||||
#INSTALL_LOG=/var/tmp/%{name}-buildroot/install.log
|
|
||||||
INSTALL_LOG=/tmp/rpmbuild-$ID/install.log
|
|
||||||
fi
|
|
||||||
|
|
||||||
MYNAME=`basename $0`
|
MYNAME=`basename $0`
|
||||||
ID=`whoami`
|
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:" -- "$@"`
|
||||||
|
|
||||||
|
|
@ -122,6 +118,7 @@ CONFLICTS="$CONFLICTS_RUN $CONFLICTS_DEVEL"
|
||||||
export \
|
export \
|
||||||
REQUIRES REQUIRES_RUN REQUIRES_DEVEL \
|
REQUIRES REQUIRES_RUN REQUIRES_DEVEL \
|
||||||
CONFLICTS CONFLICTS_RUN CONFLICTS_DEVEL \
|
CONFLICTS CONFLICTS_RUN CONFLICTS_DEVEL \
|
||||||
|
PROVIDES PROVIDES_RUN PROVIDES_DEVEL \
|
||||||
TOPDIR \
|
TOPDIR \
|
||||||
PROJECT NAME \
|
PROJECT NAME \
|
||||||
SOURCE \
|
SOURCE \
|
||||||
|
|
|
||||||
|
|
@ -409,10 +409,17 @@ build_pkg()
|
||||||
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
|
||||||
local distribution=`os`
|
local distribution=`os`
|
||||||
local RPM_REQUIRES_RUN=`echo $RPM_REQUIRES_RUN | sed "s/__NEXT_VERSION__/$version/g; s/VERSION-REVISION/$version/g; s/VERSION/$version/g"`
|
|
||||||
local RPM_REQUIRES_DEVEL=`echo $RPM_REQUIRES_DEVEL | sed "s/__NEXT_VERSION__/$version/g; s/VERSION-REVISION/$version/g; s/VERSION/$version/g"`
|
expand_version_macros() {
|
||||||
local RPM_CONFLICTS_RUN=`echo $RPM_CONFLICTS_RUN | 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_CONFLICTS_DEVEL=`echo $RPM_CONFLICTS_DEVEL | 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_devel=`expand_version_macros $RPM_REQUIRES_DEVEL`
|
||||||
|
local rpm_conflicts_run=`expand_version_macros $RPM_CONFLICTS_RUN`
|
||||||
|
local rpm_conflicts_devel=`expand_version_macros $RPM_CONFLICTS_DEVEL`
|
||||||
|
local rpm_provides_run=`expand_version_macros $RPM_PROVIDES_RUN`
|
||||||
|
local rpm_provides_devel=`expand_version_macros $RPM_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"
|
||||||
|
|
@ -466,10 +473,12 @@ build_pkg()
|
||||||
-V $version \
|
-V $version \
|
||||||
-S $tar_archive \
|
-S $tar_archive \
|
||||||
-N $RPM_PROJECT \
|
-N $RPM_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" \
|
||||||
-Y "$RPM_CONFLICTS_DEVEL" \
|
-Y "$rpm_conflicts_devel" \
|
||||||
|
--provides-run "$rpm_provides_run" \
|
||||||
|
--provides-devel "$rpm_provides_devel" \
|
||||||
-P $PROJECT \
|
-P $PROJECT \
|
||||||
-d $distribution \
|
-d $distribution \
|
||||||
> $RPM_PROJECT.$deffmt
|
> $RPM_PROJECT.$deffmt
|
||||||
|
|
@ -1049,23 +1058,7 @@ SCM=cvs
|
||||||
[ "$CVS_RSH" ] && SSH=$CVS_RSH
|
[ "$CVS_RSH" ] && SSH=$CVS_RSH
|
||||||
[ -d .git ] && SCM=git
|
[ -d .git ] && SCM=git
|
||||||
|
|
||||||
opts='ht:p:m:N:R:D:X:Y:P:a:F:B:A:'
|
while [ ${1:0:1} = - ]; do
|
||||||
args=("$@")
|
|
||||||
global_args=()
|
|
||||||
while [ "$1" ]; do
|
|
||||||
[ ${#1} = 2 -a ${1:0:1} = - ] && echo $opts | grep -q "${1:1}" && {
|
|
||||||
echo $opts | grep -q "${1:1}" && shift
|
|
||||||
shift
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
break
|
|
||||||
done
|
|
||||||
cmd=$1
|
|
||||||
|
|
||||||
set -- "${args[@]}"
|
|
||||||
#set -- "${@/$cmd/--}"
|
|
||||||
|
|
||||||
while [ "$1" != -- -a "$1" != "$cmd" ] ; do
|
|
||||||
case "$1" in
|
case "$1" in
|
||||||
-h)
|
-h)
|
||||||
usage 0;;
|
usage 0;;
|
||||||
|
|
@ -1101,6 +1094,14 @@ while [ "$1" != -- -a "$1" != "$cmd" ] ; do
|
||||||
eval RPM_CONFLICTS_DEVEL=\"$2\"
|
eval RPM_CONFLICTS_DEVEL=\"$2\"
|
||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
|
--provides-run)
|
||||||
|
eval RPM_PROVIDES_RUN=\"$2\"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
--provides-devel)
|
||||||
|
eval RPM_PROVIDES_DEVEL=\"$2\"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
-P)
|
-P)
|
||||||
eval PROJECT=\"$2\"
|
eval PROJECT=\"$2\"
|
||||||
shift
|
shift
|
||||||
|
|
@ -1121,9 +1122,15 @@ while [ "$1" != -- -a "$1" != "$cmd" ] ; do
|
||||||
eval upload_file_attrib=\"$2\"
|
eval upload_file_attrib=\"$2\"
|
||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
|
*)
|
||||||
|
echo "unrecognized option $1, giving up" >&2
|
||||||
|
usage 1
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
shift
|
shift
|
||||||
done
|
done
|
||||||
|
|
||||||
|
cmd=$1
|
||||||
shift
|
shift
|
||||||
|
|
||||||
export MOD_SCRIPT_DIR=`readlink -f $MOD_SCRIPT_DIR`
|
export MOD_SCRIPT_DIR=`readlink -f $MOD_SCRIPT_DIR`
|
||||||
|
|
@ -1140,7 +1147,10 @@ RPMS_DIR=$RPMS_BUILD_DIR/RPMS/$RPM_ARCH
|
||||||
|
|
||||||
# shift
|
# shift
|
||||||
|
|
||||||
[ ! "$cmd" ] && usage 1
|
[ ! "$cmd" ] && {
|
||||||
|
echo "missing command, giving up" >&2
|
||||||
|
usage 1
|
||||||
|
}
|
||||||
|
|
||||||
case $PKG_FORMAT in
|
case $PKG_FORMAT in
|
||||||
rpm)
|
rpm)
|
||||||
|
|
|
||||||
|
|
@ -743,6 +743,9 @@ def cmd_pkg_requires(args_):
|
||||||
def cmd_pkg_conflicts(args_):
|
def cmd_pkg_conflicts(args_):
|
||||||
return pkg_relations("conflicts", args_)
|
return pkg_relations("conflicts", args_)
|
||||||
|
|
||||||
|
def cmd_pkg_provides(args_):
|
||||||
|
return pkg_relations("provides", args_)
|
||||||
|
|
||||||
def cmd_proj_dir(args_):
|
def cmd_proj_dir(args_):
|
||||||
parser = argparse.ArgumentParser(description='proj-dir')
|
parser = argparse.ArgumentParser(description='proj-dir')
|
||||||
parser.add_argument('module', nargs='*', help='Modules')
|
parser.add_argument('module', nargs='*', help='Modules')
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue