From ac3e085bd3c831a95a0adbacf9c996da75746fdf Mon Sep 17 00:00:00 2001 From: kueller Date: Thu, 22 Oct 2009 16:57:26 +0000 Subject: [PATCH] Anpassung an neue Archiveformat git-svn-id: svn://svn.compuextreme.de/Viitor/V962/ViitorMake@4876 504e572c-2e33-0410-9681-be2bf7408885 --- functions/functions | 61 ++++++++++++++++- genpkg | 160 +++++++++++++++++++++++++++++--------------- 2 files changed, 165 insertions(+), 56 deletions(-) diff --git a/functions/functions b/functions/functions index fd25ae9..672405d 100644 --- a/functions/functions +++ b/functions/functions @@ -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 +} + diff --git a/genpkg b/genpkg index 5617d26..7d4611e 100755 --- a/genpkg +++ b/genpkg @@ -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/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>/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