Anpassung an neue Archiveformat

git-svn-id: svn://svn.compuextreme.de/Viitor/V962/ViitorMake@4876 504e572c-2e33-0410-9681-be2bf7408885
This commit is contained in:
kueller 2009-10-22 16:57:26 +00:00
parent 461d2aa794
commit ac3e085bd3
2 changed files with 165 additions and 56 deletions

View File

@ -277,7 +277,7 @@ ArchiveName() {
else
ARCHIVENAME=$BASENAME
fi
echo $ARCHIVENAME.tbz
echo $ARCHIVENAME.vpg
}
GetSVN() {
@ -709,3 +709,62 @@ GenDynLib() {
cd -
rm -r /tmp/libgen$$
}
extractfile() {
ARCHIVE=$1
EFILE=$2
LINE=`head -n 1 $ARCHIVE`
case $EFILE in
dep)
LINE=`echo $LINE|cut -d" " -f 1-`
;;
meta)
LINE=`echo $LINE|cut -d" " -f 2-`
;;
bin.drg)
LINE=`echo $LINE|cut -d" " -f 3-`
;;
bin.frg)
LINE=`echo $LINE|cut -d" " -f 4-`
;;
bin.md5)
LINE=`echo $LINE|cut -d" " -f 5-`
;;
bin.tar)
LINE=`echo $LINE|cut -d" " -f 6-`
;;
dev.drg)
LINE=`echo $LINE|cut -d" " -f 7-`
;;
dev.frg)
LINE=`echo $LINE|cut -d" " -f 8-`
;;
dev.md5)
LINE=`echo $LINE|cut -d" " -f 9-`
;;
dev.tar)
LINE=`echo $LINE|cut -d" " -f 10-`
;;
man.drg)
LINE=`echo $LINE|cut -d" " -f 11-`
;;
man.frg)
LINE=`echo $LINE|cut -d" " -f 12-`
;;
man.md5)
LINE=`echo $LINE|cut -d" " -f 13-`
;;
man.tar)
LINE=`echo $LINE|cut -d" " -f 14-`
;;
esac
BEGSIZE=0
for i in $LINE; do
(( BEGSIZE = $BEGSIZE + $i ))
done
SIZE=`echo $LINE|cut -d" " -f1`
if [ "$SIZE" -gt "0" ]; then
tail -c $BEGSIZE $ARCHIVE | head -c `echo $LINE | cut -d" " -f1`|bzcat
fi
}

160
genpkg
View File

@ -260,22 +260,21 @@ pkggen() {
if [ ! "$DSTPKGNAME" ]; then
DSTPKGNAME=`echo $PKGNAME|sed -e "s/\.tbz$//"`
fi
if [ -f $DISTTARGET/$SRCPATH/$DSTPKGNAME.dep ]; then
echo "Removing $DSTPKGNAME.dep"
rm $DISTTARGET/$SRCPATH/$DSTPKGNAME.dep
fi
if [ -d /var/install/$DSTPKGNAME ]; then
mv /var/install/$DSTPKGNAME /tmp
fi
GenDependics $TMPROOT >/tmp/deps$$
(( CHECKFLAGS = $MKPKG & 32 ))
mkdir -p $TMPROOT/../$$
for i in `cat /tmp/deps$$`; do
if [ "$CHECKFLAGS" == 0 ]; then
echo "WARN $i" >>$DISTTARGET/$SRCPATH/$DSTPKGNAME.dep
echo "WARN $i" >>$TMPROOT/../$$/dep
else
echo "FORCE $i" >>$DISTTARGET/$SRCPATH/$DSTPKGNAME.dep
echo "FORCE $i" >>$TMPROOT/../$$/dep
fi
done
bzip2 -9 $TMPROOT/../$$/dep
mv $TMPROOT/../$$/dep.bz2 $TMPROOT/../$$/dep
cd -
if [ -d /tmp/$DSTPKGNAME ]; then
mv /tmp/$DSTPKGNAME /var/install
@ -346,40 +345,38 @@ pkggen() {
mkdir -p $DEVTMPROOT/$DIR
mv $i $DEVTMPROOT/$DIR
done
mkdir $TMPROOT/../$$
sync
InitDispatch
if [ ! `find . -type f|wc -l` == "0" ]; then
DispatchCMD "cd $TMPROOT" \
"MakeMgtFiles bin" \
"tar -cvf $TMPROOT/../$$/bin.tar ." \
"tar -jcvf $TMPROOT/../$$/bin.tar ." \
sync
fi
if [ -d $MANTMPROOT ]; then
DispatchCMD "cd $MANTMPROOT" \
"MakeMgtFiles man" \
"tar -cvf $TMPROOT/../$$/man.tar ." \
"tar -jcvf $TMPROOT/../$$/man.tar ." \
sync
fi
if [ -d $DEVTMPROOT ]; then
DispatchCMD "cd $DEVTMPROOT" \
"MakeMgtFiles dev" \
"tar -cvf $TMPROOT/../$$/dev.tar ." \
"tar -jcvf $TMPROOT/../$$/dev.tar ." \
sync
fi
cd $TMPROOT/../$$
EndDispatch
sync
if ! tar -jcvf $DISTTARGET/$SRCPATH/$PKGNAME .; then
echo "Somthing get wrong with the package"
echo "please check and press ENTER after"
echo "it is corrected"
read
fi
cd ..
rm -r $TMPROOT/../$$
cd $TMPROOT/../$$
for i in bin.frg bin.drg bin.md5 man.frg man.drg man.md5 dev.frg dev.drg dev.md5; do
if [ -f $i ]; then
cd $TMPROOT/../$$
bzip2 $i
mv $i.bz2 $i
fi
done
if [ -f $DISTTARGET/$SRCPATH/$PKGNAME ]; then
METAFILE=$DISTTARGET/$SRCPATH/$DSTPKGNAME.meta
METAFILE=$TMPROOT/../$$/meta
if [ "$SHORTNAME" ]; then
echo "ModuleName: $SHORTNAME" >$METAFILE
else
@ -392,7 +389,7 @@ pkggen() {
svn info `basename $MODULENAME`|\
grep "Revision" |\
awk '{print $2}' >>$METAFILE
cd -
cd - 2>&1 >/dev/null
else
grep "#Version der Datei: \$Revision" \
$MODULEPATH/`basename $MODULENAME` |\
@ -417,7 +414,42 @@ pkggen() {
sed -e "s/^#//" \
-e "s/Kurzbeschreibung://" \
-e "/^$/d" >>$METAFILE
bzip2 -9 $METAFILE
mv $METAFILE.bz2 $METAFILE
fi
ARCHCONTENTS="bin.drg bin.frg bin.md5 bin.tar dev.drg dev.frg dev.md5 dev.tar man.drg man.frg man.md5 man.tar"
cd $TMPROOT/../$$
if [ -f dep ]; then
LINE="`wc -c dep|awk '{print $1}'` "
else
LINE="0 "
fi
if [ -f meta ]; then
LINE=$LINE"`wc -c meta|awk '{print $1}'` "
else
LINE=$LINE"0 "
fi
for i in $ARCHCONTENTS; do
if [ -f $i ]; then
LINE=$LINE"`wc -c $i|awk '{print $1}'` "
else
LINE=$LINE"0 "
fi
done
echo $LINE >$DISTTARGET/$SRCPATH/$PKGNAME
if [ -f dep ]; then
cat dep >>$DISTTARGET/$SRCPATH/$PKGNAME
fi
if [ -f meta ]; then
cat meta >>$DISTTARGET/$SRCPATH/$PKGNAME
fi
for i in $ARCHCONTENTS; do
if [ -f $i ]; then
cat $i >>$DISTTARGET/$SRCPATH/$PKGNAME
fi
done
cd ..
rm -r $TMPROOT/../$$
fi
(( CHECKFLAGS = $MKPKG & 16 ))
if [ "$CHECKFLAGS" == "0" ]; then
@ -439,48 +471,66 @@ pkggen() {
installpkg -o $INSTALLOPTS $DISTTARGET/$SRCPATH/$PKGNAME
CheckError "Installation of $PKGNAME failed"
else
if [ ! -d /var/install/tmp ]; then
mkdir -p /var/install/tmp
chmod 1777 /var/install/tmp
fi
mkdir -p /var/install/tmp/$$
cd /var/install/tmp/$$
echo "installing $DISTTARGET/$SRCPATH/$PKGNAME"
tar -jxf $DISTTARGET/$SRCPATH/$PKGNAME
cd /
for k in /var/install/tmp/$$/*.tar; do
tar -xf $k
for k in bin.tar dev.tar man.tar; do
case $k in
bin.tar)
SIZE=`head -n 1 $DISTTARGET/$SRCPATH/$PKGNAME|awk '{print $6}'`
;;
dev.tar)
SIZE=`head -n 1 $DISTTARGET/$SRCPATH/$PKGNAME|awk '{print $10}'`
;;
man.tar)
SIZE=`head -n 1 $DISTTARGET/$SRCPATH/$PKGNAME|awk '{print $14}'`
;;
esac
if [ "$SIZE" -gt "0" ]; then
extractfile $DISTTARGET/$SRCPATH/$PKGNAME $k|tar -xvf -
fi
done
PKGNAME=`echo $PKGNAME|sed -e "s/\.tbz//"`
PKGNAME=`echo $PKGNAME|sed -e "s/\.vpg//"`
if [ ! -d /var/install/$PKGNAME ]; then
mkdir -p /var/install/$PKGNAME/{dev,bin,man}
fi
if [ -f $DISTTARGET/$SRCPATH/$PKGNAME.meta ]; then
grep -A 10 -e "^Description:" $DISTTARGET/$SRCPATH/$PKGNAME.meta|\
grep -v -e "^Description:" \
>>$ROOT/var/install/$PKGNAME/description
grep ModuleName $DISTTARGET/$SRCPATH/$PKGNAME.meta|\
awk '{print $2}' \
>$ROOT/var/install/$PKGNAME/shortname
extractfile $DISTTARGET/$SRCPATH/$PKGNAME.vpg|\
grep -A 10 -e "^Description:" |\
grep -v -e "^Description:" \
>>$ROOT/var/install/$PKGNAME/description
extractfile $DISTTARGET/$SRCPATH/$PKGNAME.vpg|\
grep ModuleName |\
awk '{print $2}' \
>$ROOT/var/install/$PKGNAME/shortname
if [ "`wc -c $ROOT/var/install/$PKGNAME/description|awk '{print $1}'`" == "0" ]; then
rm $ROOT/var/install/$PKGNAME/description
fi
if [ "`wc -c $ROOT/var/install/$PKGNAME/shortname|awk '{print $1}'`" == "0" ]; then
rm $ROOT/var/install/$PKGNAME/shortname
fi
if [ -f $ROOT/var/install/$PKGNAME/shortname ]; then
SHNAME=`cat $ROOT/var/install/$PKGNAME/shortname`
else
SHNAME=$PKGNAME
fi
SHNAME=`cat $ROOT/var/install/$PKGNAME/shortname`
for k in bin dev man; do
if [ -f /var/install/tmp/$$/$k.tar ]; then
if [ -f /var/install/tmp/$$/$k.frg ]; then
exec 5</var/install/tmp/$$/$k.frg
while read <&5 FILE TYP RIGHT OWNER GROUP; do
if [ `fgrep $FILE $ROOT/var/install/tmp/$$/$k.md5|wc -l` -gt 1 ]; then
MD5SUM=`grep ${FILE}$ $ROOT/var/install/tmp/$$/$k.md5|awk '{print $1}'`
else
MD5SUM=`fgrep ${FILE} $ROOT/var/install/tmp/$$/$k.md5|awk '{print $1}'`
fi
echo "PN=$SHNAME;FN=$FILE;FT=$TYP;FR=$RIGHT;FO=$OWNER;FG=$GROUP;FS=$MD5SUM;PK=$PKGNAME" >>/var/install/contents
done
exec 5<&-
fi
if [ -f /var/install/tmp/$$/$k.drg ]; then
mv /var/install/tmp/$$/$k.drg \
/var/install/$PKGNAME/$k/DirRights
extractfile $DISTTARGET/$SRCPATH/$PKGNAME.vpg $k.frg >/tmp/$k.frg$$
extractfile $DISTTARGET/$SRCPATH/$PKGNAME.vpg $k.md5 >/tmp/$k.md5$$
if [ "`wc -c /tmp/$k.frg$$|awk '{print $1}'`" -gt "0" ]; then
exec 5</tmp/$k.frg$$
while read <&5 FILE TYP RIGHT OWNER GROUP; do
if [ `fgrep $FILE /tmp/$k.md5$$|wc -l` -gt 1 ]; then
MD5SUM=`grep ${FILE}$ /tmp/$k.md5$$|awk '{print $1}'`
else
MD5SUM=`fgrep ${FILE} /tmp/$k.md5$$|awk '{print $1}'`
fi
echo "PN=$SHNAME;FN=$FILE;FT=$TYP;FR=$RIGHT;FO=$OWNER;FG=$GROUP;FS=$MD5SUM;PK=$PKGNAME" >>/var/install/contents
done
exec 5<&-
rm /tmp/$k.frg$$
rm /tmp/$k.md5$$
extractfile $DISTTARGET/$SRCPATH/$PKGNAME.vpg $k.drg >/var/install/$PKGNAME/$k/DirRights
if [ "`wc -c /var/install/$PKGNAME/$k/DirRights|awk '{print $1}'`" == "0" ]; then
rm /var/install/$PKGNAME/$k/DirRights
fi
fi
done