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