Update of /cvsroot/fink/dists/10.3/unstable/main/finkinfo/base
In directory 
sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32467/10.3/unstable/main/finkinfo/base

Modified Files:
        apt.info apt.patch 
Log Message:
Backport negative-UID patch.


Index: apt.patch
===================================================================
RCS file: /cvsroot/fink/dists/10.3/unstable/main/finkinfo/base/apt.patch,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -d -r1.8 -r1.9
--- apt.patch   24 Jun 2005 12:33:58 -0000      1.8
+++ apt.patch   28 Feb 2006 22:45:09 -0000      1.9
@@ -1155,3 +1155,36 @@
 +done
 +
 +exit 0
+diff -urN apt-0.5.4/apt-inst/contrib/extracttar.cc 
apt-new/apt-inst/contrib/extracttar.cc
+--- apt-0.5.4/apt-inst/contrib/extracttar.cc   2001-05-27 19:47:09.000000000 
-0400
++++ apt-new/apt-inst/contrib/extracttar.cc     2005-11-25 06:27:24.000000000 
-0500
+@@ -144,6 +144,18 @@
+    return true;
+ }
+                                                                       /*}}}*/
++
++// Handle the ridiculous way that tar stores large numbers
++static bool TarUIDToNum(const char *Str, unsigned long &Res, unsigned Len) {
++       switch (*Str) {
++               case '\200':
++                       Res = ntohl(*((unsigned long *)(Str + Len - 
sizeof(unsigned long))));
++                       return true;
++               default:
++                       return StrToNum(Str+1, Res, Len-1, 8);
++       }
++}
++
+ // ExtractTar::Go - Perform extraction                                        
/*{{{*/
+ // ---------------------------------------------------------------------
+ /* This reads each 512 byte block from the archive and extracts the header
+@@ -193,8 +205,8 @@
+       unsigned long UID;
+       unsigned long GID;
+       if (StrToNum(Tar->Mode,Itm.Mode,sizeof(Tar->Mode),8) == false ||
+-        StrToNum(Tar->UserID,UID,sizeof(Tar->UserID),8) == false ||
+-        StrToNum(Tar->GroupID,GID,sizeof(Tar->GroupID),8) == false ||
++      TarUIDToNum(Tar->UserID,Itm.UID,sizeof(Tar->UserID)) == false ||
++      TarUIDToNum(Tar->GroupID,Itm.GID,sizeof(Tar->GroupID)) == false ||
+         StrToNum(Tar->Size,Itm.Size,sizeof(Tar->Size),8) == false ||
+         StrToNum(Tar->MTime,Itm.MTime,sizeof(Tar->MTime),8) == false ||
+         StrToNum(Tar->Major,Itm.Major,sizeof(Tar->Major),8) == false ||

Index: apt.info
===================================================================
RCS file: /cvsroot/fink/dists/10.3/unstable/main/finkinfo/base/apt.info,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -d -r1.14 -r1.15
--- apt.info    18 Aug 2005 05:33:59 -0000      1.14
+++ apt.info    28 Feb 2006 22:45:09 -0000      1.15
@@ -1,6 +1,6 @@
 Package: apt
 Version: 0.5.4
-Revision: 52
+Revision: 53
 GCC: 3.3
 Depends: %N-shlibs (= %v-%r)
 BuildDepends: fink-prebinding
@@ -142,6 +142,8 @@
 
 dmacks - Implemented "--ignore-breakage" cmdline flag to 'apt-get install'
 (first appears in: 10.2-gcc3.3/0.5.4-41, 10.3/0.5.4-51)
+
+Patch extracttar.cc so it understands negative UIDs, such as -2 for 'nobody'.
 <<
 DescPackaging: <<
 Previous versions by Christoph Pfisterer.



-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
Fink-commits mailing list
Fink-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/fink-commits

Reply via email to