mirror of
ssh://git.janware.com/srv/git/janware/proj/jw-pkg
synced 2026-01-15 03:53:32 +01:00
Since the packaging machinery is pretty complicated, the information about conflicting packages had to be passed through many APIs. The last commit contained a patch which is left in the tree to have it in one file, it actually is identical to this commit's diff, though. Git would save me that quirk. Signed-off-by: Jan Lindemann <jan@janware.com>
122 lines
2.2 KiB
Bash
122 lines
2.2 KiB
Bash
#!/bin/sh -x
|
|
|
|
MYNAME=`basename $0`
|
|
ID=`whoami`
|
|
|
|
if [ ! "$INSTALL_LOG" ]; then
|
|
#INSTALL_LOG=/var/tmp/%{name}-buildroot/install.log
|
|
INSTALL_LOG=/tmp/rpmbuild-$ID/install.log
|
|
fi
|
|
MKSPEC_SH="$1"
|
|
shift
|
|
|
|
FILTER_DEVEL='/include/.*.h$\|devel\|make\|lib.*\.a$\|lib.*\.so$\|.*\.exp$\|.*\.def$\|.*\.lib$'
|
|
|
|
usage()
|
|
{
|
|
echo usage: $MYNAME /path/to/mkspec.sh -h [-N name] [-T topdir] [-V version] [-S source] [-R requires] [-P project]
|
|
[ "$1" ] && exit $1
|
|
}
|
|
|
|
set -- `getopt P:T:V:S:N:hR:D:X:Y:d: "$@"`
|
|
|
|
while [ "$1" != -- ]; do
|
|
case $1 in
|
|
-h)
|
|
usage 0;;
|
|
-T)
|
|
TOPDIR="$2"
|
|
shift;;
|
|
-V)
|
|
V="$2"
|
|
shift;;
|
|
-S)
|
|
SOURCE="$2"
|
|
shift;;
|
|
-N)
|
|
NAME="$2"
|
|
shift;;
|
|
-R)
|
|
while [ "`echo $2 | cut -c1`" != "-" ]; do
|
|
REQUIRES_RUN="$REQUIRES_RUN $2"
|
|
shift
|
|
done
|
|
;;
|
|
-X)
|
|
while [ "`echo $2 | cut -c1`" != "-" ]; do
|
|
CONFLICTS_RUN="$CONFLICTS_RUN $2"
|
|
shift
|
|
done
|
|
;;
|
|
-D)
|
|
while [ "`echo $2 | cut -c1`" != "-" ]; do
|
|
REQUIRES_DEVEL="$REQUIRES_DEVEL $2"
|
|
shift
|
|
done
|
|
;;
|
|
-Y)
|
|
while [ "`echo $2 | cut -c1`" != "-" ]; do
|
|
CONFLICTS_DEVEL="$CONFLICTS_DEVEL $2"
|
|
shift
|
|
done
|
|
;;
|
|
-P)
|
|
PROJECT="$2"
|
|
shift;;
|
|
-d)
|
|
DISTRIBUTION="$2"
|
|
shift;;
|
|
*)
|
|
usage 1;;
|
|
esac
|
|
shift
|
|
done
|
|
shift
|
|
|
|
[ -z "$TOPDIR" ] && TOPDIR=.
|
|
|
|
if [ -z "$V" ]; then
|
|
if [ -f $TOPDIR/VERSION ]; then
|
|
VERSION="`cat $TOPDIR/VERSION | cut -d- -f1`"
|
|
RELEASE="`cat $TOPDIR/VERSION | cut -d- -f2- | sed 's/[-_].*//'`"
|
|
else
|
|
VERSION=noversion
|
|
RELEASE=norelease
|
|
fi
|
|
else
|
|
VERSION="`echo $V | cut -d- -f1`"
|
|
RELEASE="`cat $TOPDIR/VERSION | cut -d- -f2- | sed 's/[-_].*//'`"
|
|
fi
|
|
|
|
if [ -z "$NAME" ]; then
|
|
NAME=`pwd | xargs basename`
|
|
fi
|
|
|
|
REQUIRES="$REQUIRES_RUN $REQUIRES_DEVEL"
|
|
CONFLICTS="$CONFLICTS_RUN $CONFLICTS_DEVEL"
|
|
#if [ -n "$REQUIRES" ]; then
|
|
# REQUIRES_RUN=`echo $REQUIRES |
|
|
# sed -e '
|
|
# s/\([a-zA-Z-]\+\) *\([<>=]*\) *\([a-zA-Z0-9\.-]*\)/\1-run \2 \3,/g
|
|
# s/,$//
|
|
# s/-run-run/-run/
|
|
# '`
|
|
# REQUIRES_DEVEL="$REQUIRES_RUN, $NAME-run = $VERSION-$RELEASE, `echo $REQUIRES_RUN | sed -e 's/-run/-devel/g'`"
|
|
#fi
|
|
|
|
#echo "REQUIRES_RUN=\"$REQUIRES_RUN\""
|
|
#exit
|
|
|
|
export \
|
|
REQUIRES REQUIRES_RUN REQUIRES_DEVEL \
|
|
CONFLICTS CONFLICTS_RUN CONFLICTS_DEVEL \
|
|
TOPDIR \
|
|
PROJECT NAME \
|
|
SOURCE \
|
|
VERSION RELEASE V \
|
|
INSTALL_LOG \
|
|
FILTER_DEVEL \
|
|
DISTRIBUTION
|
|
|
|
bash $MKSPEC_SH
|
|
|