digitallamb / apt-cyg

Automatically exported from code.google.com/p/apt-cyg
MIT License
3 stars 1 forks source link

Does not work on 64bit cygwin and for packages with are xz compressed #39

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
1. Cygwin package path has been altered to differenciate 32bit (x86) and 64-bit 
(x86_64) and installation fails

2. Some of the packages (like vim) are packed with lzlm compression with 
extension .xz and hence bzip2 doesn't handle this

The given patch fixes both these issues

Original issue reported on code.google.com by logsna...@gmail.com on 19 Dec 2013 at 7:43

Attachments:

GoogleCodeExporter commented 9 years ago
--- apt-cyg-orig        2013-12-20 00:48:38.542186400 +0530
+++ /usr/bin/apt-cyg    2013-12-20 01:07:43.772186400 +0530
@@ -21,15 +21,22 @@

 WGET=`which wget 2> /dev/null`
 BZIP2=`which bzip2 2> /dev/null`
+XZ=`which xz 2> /dev/null`
 TAR=`which tar 2> /dev/null`
 GAWK=`which awk 2> /dev/null`
+FILE=`which file 2> /dev/null`
 if test "-$WGET-" = "--" || test "-$BZIP2-" = "--" || test "-$TAR-" = "--" \
-  || test "-$GAWK-" = "--"
+  || test "-$XZ-" = "--" || test "-$GAWK-" = "--" || test "-$FILE-" = "--"
 then
-  echo You must install wget, tar, gawk and bzip2 to use apt-cyg.
+  echo You must install wget, tar, gawk bzip2 xz and file to use apt-cyg.
   exit 1
 fi

+arch=x86
+if uname -m|grep 'x86_64' > /dev/null 2>&1 ; then
+   arch=x86_64
+fi
+
 function usage()
 {
   echo apt-cyg: Installs and removes Cygwin packages.
@@ -80,12 +87,12 @@
   then
     mirror="`head -1 /etc/setup/last-mirror`"
   fi
-  mirrordir="`echo "$mirror" | sed -e "s/:/%3a/g" -e "s:/:%2f:g"`"
+  mirrordir="`echo "$mirror/" | sed -e "s/:/%3a/g" -e "s:/:%2f:g"`"

   echo Working directory is $cache
   echo Mirror is $mirror
-  mkdir -p "$cache/$mirrordir"
-  cd "$cache/$mirrordir"
+  mkdir -p "$cache/$mirrordir/$arch"
+  cd "$cache/$mirrordir/$arch"
 }

@@ -95,14 +102,14 @@
   then
     touch setup.ini
     mv setup.ini setup.ini-save
-    wget -N $mirror/setup.bz2
+    wget -N $mirror/$arch/setup.bz2
     if test -e setup.bz2 && test $? -eq 0
     then
       bunzip2 setup.bz2
       mv setup setup.ini
       echo Updated setup.ini
     else
-      wget -N $mirror/setup.ini
+      wget -N $mirror/$arch/setup.ini
       if test -e setup.ini && test $? -eq 0
       then
         echo Updated setup.ini
@@ -350,7 +357,12 @@
     fi

     echo "Unpacking..."
-    cat $file | bunzip2 | tar > "/etc/setup/$pkg.lst" xvf - -C /
+
+    if file $file|grep "XZ compressed" > /dev/null 2>&1 ; then
+       cat $file | unxz | tar > "/etc/setup/$pkg.lst" xvf - -C /
+    else
+       cat $file | bunzip2 | tar > "/etc/setup/$pkg.lst" xvf - -C /
+    fi
     gzip -f "/etc/setup/$pkg.lst"
     cd ../..

Original comment by logsna...@gmail.com on 19 Dec 2013 at 7:47

GoogleCodeExporter commented 9 years ago
Fixed in 0.59.

Original comment by i...@skl.me on 19 Feb 2014 at 8:43