Update of /cvsroot/fink/experimental/benh57/finkinfo/test
In directory sc8-pr-cvs1:/tmp/cvs-serv17707

Added Files:
        apt.info apt.patch 
Log Message:
gcc 3.3 compliant apt


--- NEW FILE: apt.info ---
Package: apt
Version: 0.5.4
Revision: 12
GCC: 3.1
Depends: %N-shlibs (= %v-%r)
Source: mirror:sourceforge:fink/%n_%v.tar.gz
Source-MD5: 274fb64e2e67318b4c9c94599785c37d
SourceDirectory: %n-%v
PatchScript: <<
 sed 's|@PREFIX@|%p|g' <%a/%f.patch | patch -p1
 if [ "%p" = "/sw" ]; then cat sources.list.fink-bindist >>sources.list.fink ; fi
 sh patch_flush
 for i in `grep -rl '#ifdef __GNUG__' .` ; do perl -pi -e 's/#ifdef __GNUG__/#if 
defined(__GNUG__) && !defined(__APPLE_CC__)/' $i; done
 for i in `grep -rl '#ifdef __GNUG__' .` ; do perl -pi -e 's/#ifdef __GNUG__/#if 
defined(__GNUG__) && !defined(__APPLE_CC__)/' $i ; done
<<
NoSetCPPFLAGS: true
NoSetLDFLAGS: true
SetCXXFLAGS: -O2 -DEMULATE_MMAP -D__USE_MISC
CompileScript: <<
 ./configure %c
 make -f makefile.wrap NOISY=1
<<
InstallScript: <<
 mkdir -p %i/bin
 install -m 755 bin/apt-cache %i/bin/
 install -m 755 bin/apt-cdrom %i/bin/
 install -m 755 bin/apt-config %i/bin/
 install -m 755 bin/apt-extracttemplates %i/bin/
 install -m 755 bin/apt-get %i/bin/
 install -m 755 bin/apt-sortpkgs %i/bin/
 mkdir -p %i/lib
 install -m 644 bin/libapt-pkg.3.2.0.dylib %i/lib/
 cd %i/lib/ && ln -s libapt-pkg.3.2.0.dylib libapt-pkg.3.2.dylib && ln -s 
libapt-pkg.3.2.0.dylib libapt-pkg.dylib
 install -m 644 bin/libapt-inst.1.0.0.dylib %i/lib/
 cd %i/lib/ && ln -s libapt-inst.1.0.0.dylib libapt-inst.1.0.dylib && ln -s 
libapt-inst.1.0.0.dylib libapt-inst.dylib
 mkdir -p %i/lib/apt/methods
 install -m 755 bin/methods/cdrom %i/lib/apt/methods/
 install -m 755 bin/methods/copy %i/lib/apt/methods/
 install -m 755 bin/methods/file %i/lib/apt/methods/
 install -m 755 bin/methods/ftp %i/lib/apt/methods/
 install -m 755 bin/methods/gzip %i/lib/apt/methods/
 install -m 755 bin/methods/http %i/lib/apt/methods/
 install -m 755 bin/methods/rsh %i/lib/apt/methods/
 cd %i/lib/apt/methods && ln -s rsh ssh
 mkdir -p %i/lib/dpkg/methods/apt
 install -m 644 scripts/dselect/desc.apt %i/lib/dpkg/methods/apt/
 install -m 755 scripts/dselect/install %i/lib/dpkg/methods/apt/
 install -m 644 scripts/dselect/names %i/lib/dpkg/methods/apt/
 install -m 755 scripts/dselect/setup %i/lib/dpkg/methods/apt/
 install -m 755 scripts/dselect/update %i/lib/dpkg/methods/apt/
 mkdir -p %i/include/apt-pkg
 cp include/apt-pkg/*.h %i/include/apt-pkg/
 mkdir -p %i/share/man
 mkdir -p %i/share/man/man1
 mkdir -p %i/share/man/man5
 mkdir -p %i/share/man/man8
 install -m 644 doc/apt.8 %i/share/man/man8/
 install -m 644 docs/apt-cache.8 %i/share/man/man8/
 install -m 644 docs/apt-cdrom.8 %i/share/man/man8/
 install -m 644 docs/apt-config.8 %i/share/man/man8/
 install -m 644 docs/apt-extracttemplates.1 %i/share/man/man1/
 install -m 644 docs/apt-get.8 %i/share/man/man8/
 install -m 644 docs/apt-sortpkgs.1 %i/share/man/man1/
 install -m 644 docs/apt.conf.5 %i/share/man/man5/
 install -m 644 docs/apt_preferences.5 %i/share/man/man5/
 install -m 644 docs/sources.list.5 %i/share/man/man5/
 mkdir -p %i/etc/apt/apt.conf.d
 install -m 644 sources.list.fink %i/etc/apt/sources.list
 mkdir -p %i/var/cache/apt/archives/partial
 mkdir -p %i/var/lib/apt/lists/partial
<<
SplitOff: <<
  Package: %N-shlibs
  Depends: dpkg
  Replaces: %N (<= 0.5.4-1)
  Files: lib/libapt-inst.1.0.0.dylib lib/libapt-pkg.3.2.0.dylib 
lib/libapt-inst.1.0.dylib lib/libapt-pkg.3.2.dylib
  Shlibs: <<
    %p/lib/libapt-inst.1.0.dylib 1.0.0 %n (>= 0.5.4-5)
    %p/lib/libapt-pkg.3.2.dylib 3.2.0 %n (>= 0.5.4-5)
  <<
  DocFiles: COPYING* AUTHORS
<<
SplitOff2: <<
  Package: %N-dev
  Depends: %N-shlibs (= %v-%r)
  BuildDependsOnly: true
  Files: lib/libapt-inst.dylib lib/libapt-pkg.dylib include
  DocFiles: COPYING* AUTHORS
<<
DocFiles: COPYING* AUTHORS
ConfFiles: %p/etc/apt/sources.list
PostInstScript: <<
if [ ! -f %p/var/lib/dpkg/cmethopt ]; then
  echo "apt apt" >%p/var/lib/dpkg/cmethopt
  chmod 644 %p/var/lib/dpkg/cmethopt
else
  read a b <%p/var/lib/dpkg/cmethopt
  if [ "$a" != "apt" -o "$b" != "apt" ]; then
    echo
    echo "dselect is not set up to use apt as its access method. Downloading binary"
    echo -n "package will likely not work. Do you want to use apt instead?"
    read answer
    answer=`echo $answer | sed 's/^[yY].*$/y/'`
    if [ -z "$answer" -o "x$answer" = "xy" ]; then
      echo "apt apt" >%p/var/lib/dpkg/cmethopt
      chmod 644 %p/var/lib/dpkg/cmethopt
    fi
  fi
fi

rm -f %p/var/cache/apt/pkgcache.bin %p/var/cache/apt/srcpkgcache.bin
perl -pi -e 's#direct_download (release|current)#direct_download 10.2/$1#g' 
%p/etc/apt/sources.list
<<
#
Description: Advanced front-end for dpkg
DescPort: <<
There are three troublemakers when porting apt:
- It was written for Linux/ELF/glibc.
- It was written to maintain a distribution that is in charge of the
  system and hardcodes paths like /usr/bin, /usr/lib and /var/lib.
- There is no install target in the Makefiles because the Debian
  packaging files take care of what goes where.
There's also the usual trouble like not recognizing Darwin and
depending on a case-sensitive file system. All of this amounts to a
big, bad patch.

The patch also fixes some potential and some real crashing bugs.

Oh, one more thing: mmap() is broken for non-trivial uses in OS X
10.1. Luckily apt uses a wrapper class that can be equipped with a
workaround (malloc() + read() + write()...).

The -fno-rtti works around a bug in GCC 3.1 on Jaguar.

Ben Hines - added patch to make apt recognize macosx and darwin pkgs
<<
DescPackaging: Previous versions by Christoph Pfisterer.
License: GPL
Maintainer: Max Horn <[EMAIL PROTECTED]>
Homepage: http://packages.qa.debian.org/a/apt.html

--- NEW FILE: apt.patch ---
diff -uNbr apt-0.5.4/apt-inst/makefile apt-0.5.4-new/apt-inst/makefile
--- apt-0.5.4/apt-inst/makefile Mon Feb 26 23:16:05 2001
+++ apt-0.5.4-new/apt-inst/makefile     Thu May 15 20:42:34 2003
@@ -10,6 +10,7 @@
 include ../buildlib/defaults.mak
 
 # The library name
+LDFLAGS += -L../apt-pkg -lapt-pkg
 LIBRARY=apt-inst
 LIBEXT=$(GLIBC_VER)$(LIBSTDCPP_VER)
 MAJOR=1.0
diff -uNbr apt-0.5.4/apt-pkg/contrib/mmap.cc apt-0.5.4-new/apt-pkg/contrib/mmap.cc
--- apt-0.5.4/apt-pkg/contrib/mmap.cc   Sun May 27 01:19:30 2001
+++ apt-0.5.4-new/apt-pkg/contrib/mmap.cc       Thu May 15 20:04:53 2003
@@ -41,7 +41,7 @@
 // ---------------------------------------------------------------------
 /* */
 MMap::MMap(FileFd &F,unsigned long Flags) : Flags(Flags), iSize(0),
-                     Base(0)
+                     Base(0), iFd(0)
 {
    if ((Flags & NoImmMap) != NoImmMap)
       Map(F);
@@ -51,7 +51,7 @@
 // ---------------------------------------------------------------------
 /* */
 MMap::MMap(unsigned long Flags) : Flags(Flags), iSize(0),
-                     Base(0)
+                     Base(0), iFd(0)
 {
 }
                                                                        /*}}}*/
@@ -68,6 +68,7 @@
 /* */
 bool MMap::Map(FileFd &Fd)
 {
+   iFd = &Fd;
    iSize = Fd.Size();
    
    // Set the permissions.
@@ -81,10 +82,19 @@
    if (iSize == 0)
       return _error->Error(_("Can't mmap an empty file"));
    
+#ifndef EMULATE_MMAP
    // Map it.
    Base = mmap(0,iSize,Prot,Map,Fd.Fd(),0);
    if (Base == (void *)-1)
       return _error->Errno("mmap",_("Couldn't make mmap of %lu bytes"),iSize);
+#else
+   Base = new unsigned char[iSize];
+   if (Base == NULL)
+      return _error->Errno("mmap",_("Couldn't allocate %lu bytes to emulate 
mmap"),iSize);
+
+   Fd.Seek(0);
+   Fd.Read(Base, iSize, true);
+#endif
 
    return true;
 }
@@ -100,8 +110,16 @@
    if (DoSync == true)
       Sync();
    
+#ifndef EMULATE_MMAP   
    if (munmap((char *)Base,iSize) != 0)
       _error->Warning("Unable to munmap");
+#else
+   if ((Flags & ReadOnly) != ReadOnly && iFd != 0) {
+      iFd->Seek(0);
+      iFd->Write(Base, iSize);
+   }
+   delete [] (unsigned char *)Base;
+#endif
    
    iSize = 0;
    Base = 0;
@@ -117,11 +135,13 @@
    if ((Flags & UnMapped) == UnMapped)
       return true;
    
+#ifndef EMULATE_MMAP
 #ifdef _POSIX_SYNCHRONIZED_IO   
    if ((Flags & ReadOnly) != ReadOnly)
       if (msync((char *)Base,iSize,MS_SYNC) != 0)
         return _error->Errno("msync","Unable to write mmap");
 #endif   
+#endif
    return true;
 }
                                                                        /*}}}*/
@@ -133,11 +153,13 @@
    if ((Flags & UnMapped) == UnMapped)
       return true;
    
+#ifndef EMULATE_MMAP
 #ifdef _POSIX_SYNCHRONIZED_IO
    unsigned long PSize = sysconf(_SC_PAGESIZE);
    if ((Flags & ReadOnly) != ReadOnly)
       if (msync((char *)Base+(int)(Start/PSize)*PSize,Stop - Start,MS_SYNC) != 0)
         return _error->Errno("msync","Unable to write mmap");
+#endif   
 #endif   
    return true;
 }
diff -uNbr apt-0.5.4/apt-pkg/contrib/mmap.h apt-0.5.4-new/apt-pkg/contrib/mmap.h
--- apt-0.5.4/apt-pkg/contrib/mmap.h    Mon May 14 01:16:43 2001
+++ apt-0.5.4-new/apt-pkg/contrib/mmap.h        Thu May 15 20:04:53 2003
@@ -46,6 +46,7 @@
    unsigned long Flags;
    unsigned long iSize;
    void *Base;
+   FileFd *iFd;
 
    bool Map(FileFd &Fd);
    bool Close(bool DoSync = true);
diff -uNbr apt-0.5.4/apt-pkg/deb/debindexfile.cc 
apt-0.5.4-new/apt-pkg/deb/debindexfile.cc
--- apt-0.5.4/apt-pkg/deb/debindexfile.cc       Sun Apr 29 01:13:51 2001
+++ apt-0.5.4-new/apt-pkg/deb/debindexfile.cc   Thu May 15 20:04:53 2003
@@ -505,3 +505,11 @@
 }
 
                                                                        /*}}}*/
+void init_deb2()
+{
+  (void)_apt_DebType;
+  (void)_apt_DebSrcType;
+  (void)_apt_Src;
+  (void)_apt_Pkg;
+  (void)_apt_Status;
+}
diff -uNbr apt-0.5.4/apt-pkg/deb/debsystem.cc apt-0.5.4-new/apt-pkg/deb/debsystem.cc
--- apt-0.5.4/apt-pkg/deb/debsystem.cc  Sun Apr 29 01:13:51 2001
+++ apt-0.5.4-new/apt-pkg/deb/debsystem.cc      Thu May 15 20:04:53 2003
@@ -27,6 +27,105 @@
 #include <dirent.h>
 #include <errno.h>
                                                                        /*}}}*/
+/* FINK LOCAL begin */
+#include <sys/utsname.h>
+#include <CoreFoundation/CoreFoundation.h>
+#include <fstream>
+
+extern void init_deb2();
+extern void init_deb3();
+
+struct versionrevision {
+  unsigned long epoch;
+  const char *version;
+  const char *revision;
+};  
+
+struct versionrevision darwin_version = {0,NULL,NULL};
+struct versionrevision macosx_version = {0,NULL,NULL};
+
+static void finkinit()
+{
+  Boolean status;
+  SInt32 errorCode;
+  CFURLRef fileURL = NULL;
+  CFDataRef resourceData = NULL;
+  CFPropertyListRef propertyList = NULL;
+  CFStringRef string;
+  static char buffer[256];     // This is static, to ensure the buffer stays around
+
+  static struct utsname ver;   // This is static, to ensure the buffer stays around
+  
+  /* Determine system version */
+  /* TODO - should maybe check if this is really Darwin? */
+  if (!uname(&ver)) {
+    darwin_version.version = ver.release;
+  }
+
+  /* Check whether this is Mac OS X, and which version of it */
+
+  fileURL = CFURLCreateWithFileSystemPath( NULL,       
+               CFSTR("/System/Library/CoreServices/SystemVersion.plist"),
+               kCFURLPOSIXPathStyle,                           
+               false );
+  if (!fileURL)
+    goto BAIL;
+  
+  /* Read the XML */
+  status = CFURLCreateDataAndPropertiesFromResource(
+               NULL,
+               fileURL,
+               &resourceData,
+               NULL,           
+               NULL,
+               &errorCode);
+  if (!status || errorCode != 0)
+    goto BAIL;
+  
+  /* Reconstitute the dictionary using the XML data. */
+  propertyList = CFPropertyListCreateFromXMLData( NULL,
+               resourceData,
+               kCFPropertyListImmutable,
+               &string);
+  if (!propertyList)
+    goto BAIL;
+  
+  /* Try to read the system version from it. */
+  status = CFDictionaryGetValueIfPresent( propertyList,
+               CFSTR("ProductVersion"),
+               (void*)&string);
+  if (!status)
+    goto BAIL;
+  
+  /* Convert into a C string */
+  status = CFStringGetCString( string,
+               buffer,
+               sizeof(buffer),
+               kCFStringEncodingISOLatin1);
+  if (!status)
+    goto BAIL;
+  
+  /* Finally link the buffer into the macosx_version struct. */
+  macosx_version.version = buffer;
+  
+BAIL:
+  // Release all of the CF objects we're responsible for.
+  if (fileURL)
+    CFRelease(fileURL);
+  if (resourceData)
+    CFRelease(resourceData);
+  if (propertyList)
+    CFRelease(propertyList);
+}
+
+void initDebSystem()
+{
+  finkinit();
+  (void)debSys;
+  init_deb2();
+  init_deb3();
+}
+/* FINK LOCAL end */
 
 debSystem debSys;
 
@@ -48,6 +147,7 @@
 debSystem::~debSystem()
 {
    delete StatusFile;
+   delete FinkStatusFile;
 }
                                                                        /*}}}*/
 // System::Lock - Get the lock                                         /*{{{*/
@@ -161,8 +261,8 @@
       which is yet to be determined. The functions in pkgcachegen should
       be the only users of these */
    Cnf.CndSet("Dir::State::userstatus","status.user"); // Defunct
-   Cnf.CndSet("Dir::State::status","/var/lib/dpkg/status");
-   Cnf.CndSet("Dir::Bin::dpkg","/usr/bin/dpkg");
+   Cnf.CndSet("Dir::State::status","@PREFIX@/var/lib/dpkg/status");
+   Cnf.CndSet("Dir::Bin::dpkg","@PREFIX@/bin/dpkg");
    
    return true;
 }
@@ -185,9 +285,9 @@
 signed debSystem::Score(Configuration const &Cnf)
 {
    signed Score = 0;
-   if (FileExists(Cnf.FindFile("Dir::State::status","/var/lib/dpkg/status")) == true)
+   if (FileExists(Cnf.FindFile("Dir::State::status","@PREFIX@/var/lib/dpkg/status")) 
== true)
        Score += 10;
-   if (FileExists(Cnf.FindFile("Dir::Bin::dpkg","/usr/bin/dpkg")) == true)
+   if (FileExists(Cnf.FindFile("Dir::Bin::dpkg","@PREFIX@/bin/dpkg")) == true)
       Score += 10;
    if (FileExists("/etc/debian_version") == true)
       Score += 10;
@@ -202,6 +302,37 @@
    if (StatusFile == 0)
       StatusFile = new debStatusIndex(_config->FindFile("Dir::State::status"));
    List.push_back(StatusFile);
+/* FINK LOCAL begin */
+#define FINKSTATUSFILE "/tmp/finkaptstatus"
+   if (FinkStatusFile == 0) {
+      unlink(FINKSTATUSFILE);
+      std::ofstream finkstatus(FINKSTATUSFILE);
+      if(macosx_version.version != 0)
+      {
+        finkstatus << "Package: macosx" << endl;
+        finkstatus << "Status: install ok installed" << endl;      
+        finkstatus << "Priority: optional" << endl;
+        finkstatus << "Section: base" << endl;
+        finkstatus << "Maintainer: None" << endl;
+        finkstatus << "Source: macosx" << endl;
+        finkstatus << "Version: " << macosx_version.version << endl;
+        finkstatus << "Description: Pseudo package representing Mac OS X" << endl;
+        finkstatus << " Pseudo package representing Mac OS X" << endl << endl;
+      }
+      finkstatus << "Package: darwin" << endl;
+      finkstatus << "Status: install ok installed" << endl;
+      finkstatus << "Priority: optional" << endl;
+      finkstatus << "Section: base" << endl;
+      finkstatus << "Maintainer: None" << endl;
+      finkstatus << "Source: darwin" << endl;
+      finkstatus << "Version: " << darwin_version.version  << endl;
+      finkstatus << "Description: Pseudo package representing Darwin" << endl;
+      finkstatus << " Pseudo package representing Darwin" << endl << endl;
+      finkstatus.close();
+      FinkStatusFile = new debStatusIndex(FINKSTATUSFILE);       
+   }
+   List.push_back(FinkStatusFile);
+/* FINK LOCAL end */
    return true;
 }
                                                                        /*}}}*/
@@ -216,6 +347,10 @@
    if (StatusFile->FindInCache(*File.Cache()) == File)
    {
       Found = StatusFile;
+      return true;
+   }  else if ((FinkStatusFile != 0) && (FinkStatusFile->FindInCache(*File.Cache()) 
== File))
+   {
+      Found = FinkStatusFile;
       return true;
    }
    
diff -uNbr apt-0.5.4/apt-pkg/deb/debsystem.h apt-0.5.4-new/apt-pkg/deb/debsystem.h
--- apt-0.5.4/apt-pkg/deb/debsystem.h   Sun Apr 29 01:13:51 2001
+++ apt-0.5.4-new/apt-pkg/deb/debsystem.h       Thu May 15 20:04:53 2003
@@ -25,6 +25,7 @@
    bool CheckUpdates();
    
    debStatusIndex *StatusFile;
+   debStatusIndex *FinkStatusFile;
    
    public:
 
diff -uNbr apt-0.5.4/apt-pkg/deb/debversion.cc apt-0.5.4-new/apt-pkg/deb/debversion.cc
--- apt-0.5.4/apt-pkg/deb/debversion.cc Mon May  7 01:14:53 2001
+++ apt-0.5.4-new/apt-pkg/deb/debversion.cc     Thu May 15 20:04:53 2003
@@ -24,6 +24,11 @@
 
 debVersioningSystem debVS;
 
+void init_deb3()
+{
+  (void)debVS;
+}
+
 // debVS::debVersioningSystem - Constructor                            /*{{{*/
 // ---------------------------------------------------------------------
 /* */
diff -uNbr apt-0.5.4/apt-pkg/init.cc apt-0.5.4-new/apt-pkg/init.cc
--- apt-0.5.4/apt-pkg/init.cc   Tue Mar 13 01:51:46 2001
+++ apt-0.5.4-new/apt-pkg/init.cc       Thu May 15 20:04:53 2003
@@ -15,6 +15,8 @@
 #include <apti18n.h>
 #include <config.h>
 #include <sys/stat.h>
+
+extern void initDebSystem();
                                                                        /*}}}*/
 
 #define Stringfy_(x) # x
@@ -39,7 +41,7 @@
       Cnf.Set("APT::Architecture",COMMON_CPU);
    else
       Cnf.Set("APT::Architecture",COMMON_OS "-" COMMON_CPU);
-   Cnf.Set("Dir","/");
+   Cnf.Set("Dir","@PREFIX@/");
    
    // State   
    Cnf.Set("Dir::State","var/lib/apt/");
@@ -68,7 +70,7 @@
    Cnf.Set("Dir::Etc::main","apt.conf");
    Cnf.Set("Dir::Etc::parts","apt.conf.d");
    Cnf.Set("Dir::Etc::preferences","preferences");
-   Cnf.Set("Dir::Bin::methods","/usr/lib/apt/methods");
+   Cnf.Set("Dir::Bin::methods","@PREFIX@/lib/apt/methods");
              
    bool Res = true;
    
@@ -101,6 +103,8 @@
 /* */
 bool pkgInitSystem(Configuration &Cnf,pkgSystem *&Sys)
 {
+   initDebSystem();
+
    Sys = 0;
    string Label = Cnf.Find("Apt::System","");
    if (Label.empty() == false)
diff -uNbr apt-0.5.4/apt-pkg/tagfile.cc apt-0.5.4-new/apt-pkg/tagfile.cc
--- apt-0.5.4/apt-pkg/tagfile.cc        Mon May 14 01:56:26 2001
+++ apt-0.5.4-new/apt-pkg/tagfile.cc    Thu May 15 20:04:53 2003
@@ -197,7 +197,7 @@
       return false;
    
    TagCount = 0;
-   while (TagCount < sizeof(Indexes)/sizeof(Indexes[0]) && Stop < End)
+   while (TagCount+1 < sizeof(Indexes)/sizeof(Indexes[0]) && Stop < End)
    {
       // Start a new index and add it to the hash
       if (isspace(Stop[0]) == 0)
@@ -211,13 +211,13 @@
       if (Stop == 0)
         return false;
       
-      for (; Stop[1] == '\r' && Stop+1 < End; Stop++);
+      for (; Stop+1 < End && Stop[1] == '\r'; Stop++);
 
       // Double newline marks the end of the record
       if (Stop+1 < End && Stop[1] == '\n')
       {
         Indexes[TagCount] = Stop - Section;
-        for (; (Stop[0] == '\n' || Stop[0] == '\r') && Stop < End; Stop++);
+        for (; Stop < End && (Stop[0] == '\n' || Stop[0] == '\r'); Stop++);
         return true;
       }
       
diff -uNbr apt-0.5.4/apt-pkg/tagfile.h apt-0.5.4-new/apt-pkg/tagfile.h
--- apt-0.5.4/apt-pkg/tagfile.h Sun Apr 22 01:42:52 2001
+++ apt-0.5.4-new/apt-pkg/tagfile.h     Thu May 15 20:04:53 2003
@@ -34,7 +34,7 @@
    
    // We have a limit of 256 tags per section.
    unsigned short Indexes[256];
-   unsigned short AlphaIndexes[0xff];
+   unsigned short AlphaIndexes[0x100];
    
    unsigned int TagCount;
      
diff -uNbr apt-0.5.4/buildlib/environment.mak.in 
apt-0.5.4-new/buildlib/environment.mak.in
--- apt-0.5.4/buildlib/environment.mak.in       Tue May 29 01:11:03 2001
+++ apt-0.5.4-new/buildlib/environment.mak.in   Thu May 15 20:19:40 2003
@@ -11,8 +11,8 @@
 LIBSTDCPP_VER = @LIBSTDCPP_VER@
 
 # Linker stuff
-PICFLAGS+= -fPIC -DPIC
-LFLAGS+= @LDFLAGS@
+PICFLAGS+= -fno-common -DPIC
+LFLAGS+= @LDFLAGS@ -framework CoreFoundation
 LEFLAGS+= 
 SOCKETLIBS:= @SOCKETLIBS@
 AR:[EMAIL PROTECTED]@
@@ -47,11 +47,13 @@
 
 # Shared library things
 HOST_OS = @host_os@
-ifneq ($(words $(filter linux-gnu gnu%,$(HOST_OS))),0)
-   SONAME_MAGIC=-Wl,-soname -Wl,
-   LFLAGS_SO=
-else
-   # Do not know how to create shared libraries here.
-   ONLYSTATICLIBS = yes
-endif
+#ifneq ($(words $(filter linux-gnu gnu%,$(HOST_OS))),0)
+#   SONAME_MAGIC=-Wl,-soname -Wl,
+#   LFLAGS_SO=
+#else
+#   # Do not know how to create shared libraries here.
+#   ONLYSTATICLIBS = yes
+#endif
+SONAME_MAGIC=-install_name @PREFIX@/lib/
+LFLAGS_SO=-dynamiclib
        
diff -uNbr apt-0.5.4/buildlib/library.mak apt-0.5.4-new/buildlib/library.mak
--- apt-0.5.4/buildlib/library.mak      Mon Feb 26 23:16:05 2001
+++ apt-0.5.4-new/buildlib/library.mak  Thu May 15 20:04:53 2003
@@ -15,17 +15,17 @@
 # See defaults.mak for information about LOCAL
 
 # Some local definitions
-LOCAL := lib$(LIBRARY)$(LIBEXT).so.$(MAJOR).$(MINOR)
+LOCAL := lib$(LIBRARY)$(LIBEXT).$(MAJOR).$(MINOR).dylib
 $(LOCAL)-OBJS := $(addprefix $(OBJ)/,$(addsuffix .opic,$(notdir $(basename 
$(SOURCE)))))
 $(LOCAL)-DEP := $(addprefix $(DEP)/,$(addsuffix .opic.d,$(notdir $(basename 
$(SOURCE)))))
 $(LOCAL)-HEADERS := $(addprefix $(INCLUDE)/,$(HEADERS))
-$(LOCAL)-SONAME := lib$(LIBRARY)$(LIBEXT).so.$(MAJOR)
+$(LOCAL)-SONAME := lib$(LIBRARY)$(LIBEXT).$(MAJOR).dylib
 $(LOCAL)-SLIBS := $(SLIBS)
 $(LOCAL)-LIBRARY := $(LIBRARY)
 
 # Install the command hooks
 headers: $($(LOCAL)-HEADERS)
-library: $(LIB)/lib$(LIBRARY).so $(LIB)/lib$(LIBRARY)$(LIBEXT).so.$(MAJOR)
+library: $(LIB)/lib$(LIBRARY).dylib $(LIB)/lib$(LIBRARY)$(LIBEXT).$(MAJOR).dylib
 clean: clean/$(LOCAL)
 veryclean: veryclean/$(LOCAL)
 
@@ -37,21 +37,23 @@
 clean/$(LOCAL):
        -rm -f $($(@F)-OBJS) $($(@F)-DEP)
 veryclean/$(LOCAL): clean/$(LOCAL)
-       -rm -f $($(@F)-HEADERS) $(LIB)/lib$($(@F)-LIBRARY)*.so*
+       -rm -f $($(@F)-HEADERS) $(LIB)/lib$($(@F)-LIBRARY)*.dylib
 
 # Build rules for the two symlinks
-.PHONY: $(LIB)/lib$(LIBRARY)$(LIBEXT).so.$(MAJOR) $(LIB)/lib$(LIBRARY).so
-$(LIB)/lib$(LIBRARY)$(LIBEXT).so.$(MAJOR): 
$(LIB)/lib$(LIBRARY)$(LIBEXT).so.$(MAJOR).$(MINOR)
+.PHONY: $(LIB)/lib$(LIBRARY)$(LIBEXT).$(MAJOR).dylib $(LIB)/lib$(LIBRARY).dylib
+$(LIB)/lib$(LIBRARY)$(LIBEXT).$(MAJOR).dylib: 
$(LIB)/lib$(LIBRARY)$(LIBEXT).$(MAJOR).$(MINOR).dylib
        ln -sf $(<F) $@
-$(LIB)/lib$(LIBRARY).so: $(LIB)/lib$(LIBRARY)$(LIBEXT).so.$(MAJOR).$(MINOR)
+$(LIB)/lib$(LIBRARY).dylib: $(LIB)/lib$(LIBRARY)$(LIBEXT).$(MAJOR).$(MINOR).dylib
        ln -sf $(<F) $@
        
 # The binary build rule
-$(LIB)/lib$(LIBRARY)$(LIBEXT).so.$(MAJOR).$(MINOR): $($(LOCAL)-HEADERS) 
$($(LOCAL)-OBJS)
-       -rm -f $(LIB)/lib$($(@F)-LIBRARY)*.so* 2> /dev/null
+$(LIB)/lib$(LIBRARY)$(LIBEXT).$(MAJOR).$(MINOR).dylib: $($(LOCAL)-HEADERS) 
$($(LOCAL)-OBJS)
+       -rm -f $(LIB)/lib$($(@F)-LIBRARY)*.dylib 2> /dev/null
        echo Building shared library $@
        $(CXX) $(CXXFLAGS) $(LDFLAGS) $(PICFLAGS) $(LFLAGS) $(LFLAGS_SO)\
-          -o $@ $(SONAME_MAGIC)$($(@F)-SONAME) -shared \
+          -o $@ $(SONAME_MAGIC)$($(@F)-SONAME) \
+          -compatibility_version $(MAJOR).$(MINOR) \
+          -current_version $(MAJOR).$(MINOR) \
           $(filter %.opic,$^) \
           $($(@F)-SLIBS) 
 
diff -uNbr apt-0.5.4/buildlib/ostable apt-0.5.4-new/buildlib/ostable
--- apt-0.5.4/buildlib/ostable  Tue Feb 20 02:03:17 2001
+++ apt-0.5.4-new/buildlib/ostable      Thu May 15 20:04:53 2003
@@ -14,6 +14,7 @@
 hp-hpux[^-]*       hp-ux
 sun-solaris[^-]*    solaris
 [^-]*-openbsd[^-]*  openbsd
+[^-]*-darwin[^-]*   darwin
 
 # Catch all
 .*     unknown
diff -uNbr apt-0.5.4/cmdline/apt-cache.cc apt-0.5.4-new/cmdline/apt-cache.cc
--- apt-0.5.4/cmdline/apt-cache.cc      Sun Jul  1 20:10:32 2001
+++ apt-0.5.4-new/cmdline/apt-cache.cc  Thu May 15 20:04:53 2003
@@ -374,8 +374,10 @@
    if (ReadPinFile(Plcy) == false)
       return false;
    
-   pkgCache::VerFile **VFList = new pkgCache::VerFile *[Cache.HeaderP->PackageCount];
-   memset(VFList,0,sizeof(*VFList)*Cache.HeaderP->PackageCount);
+   // Make sure we have a sentinel for the list.
+   unsigned long Count = Cache.HeaderP->PackageCount+1;
+   pkgCache::VerFile **VFList = new pkgCache::VerFile *[Count];
+   memset(VFList,0,sizeof(*VFList)*Count);
    
    // Map versions that we want to write out onto the VerList array.
    for (pkgCache::PkgIterator P = Cache.PkgBegin(); P.end() == false; P++)
@@ -428,7 +430,7 @@
       VFList[P->ID] = VF;
    }
    
-   LocalitySort(VFList,Cache.HeaderP->PackageCount,sizeof(*VFList));
+   LocalitySort(VFList,Count,sizeof(*VFList));
 
    // Iterate over all the package files and write them out.
    char *Buffer = new char[Cache.HeaderP->MaxVerFileSize+10];
diff -uNbr apt-0.5.4/cmdline/apt-get.cc apt-0.5.4-new/cmdline/apt-get.cc
--- apt-0.5.4/cmdline/apt-get.cc        Sun Jul  1 18:59:04 2001
+++ apt-0.5.4-new/cmdline/apt-get.cc    Thu May 15 20:04:53 2003
@@ -113,6 +113,8 @@
       return true;
    }
    
+   fflush(NULL);
+   
    char C = 0;
    char Jnk = 0;
    if (read(STDIN_FILENO,&C,1) != 1)
@@ -281,7 +283,14 @@
                  if (Cache[Targ].CandidateVerIter(Cache).end() == true)
                  {
                     if (Targ->ProvidesList == 0)
-                       out << _("but it is not installable");
+                    {
+                       out << _("but it is not installable. For Fink users, ");
+                       out << _("this often means that you have attempted ");
+                       out << _("to install a package from the binary distribution ");
+                       out << _("which depends on a \"Restrictive\" package. ");
+                       out << _("See 
<http://fink.sourceforge.net/faq/usage-fink.php#bindist>, ");
+                       out << 
_("<http://fink.sourceforge.net/doc/users-guide/packages.php#bin-exceptions>");
+                    }
                     else
                        out << _("but it is a virtual package");
                  }               
diff -uNbr apt-0.5.4/configure apt-0.5.4-new/configure
--- apt-0.5.4/configure Sat Aug 18 20:46:43 2001
+++ apt-0.5.4-new/configure     Thu May 15 20:04:53 2003
@@ -2394,7 +2394,7 @@
 
 ac_given_srcdir=$srcdir
 
-trap 'rm -fr `echo "environment.mak:buildlib/environment.mak.in 
makefile:buildlib/makefile.in include/config.h:buildlib/config.h.in 
include/apti18n.h:buildlib/apti18n.h.in" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
+trap 'rm -fr `echo "environment.mak:buildlib/environment.mak.in 
makefile.wrap:buildlib/makefile.in include/config.h:buildlib/config.h.in 
include/apti18n.h:buildlib/apti18n.h.in" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
 EOF
 cat >> $CONFIG_STATUS <<EOF
 
@@ -2504,7 +2504,7 @@
 
 cat >> $CONFIG_STATUS <<EOF
 
-CONFIG_FILES=\${CONFIG_FILES-"environment.mak:buildlib/environment.mak.in 
makefile:buildlib/makefile.in"}
+CONFIG_FILES=\${CONFIG_FILES-"environment.mak:buildlib/environment.mak.in 
makefile.wrap:buildlib/makefile.in"}
 EOF
 cat >> $CONFIG_STATUS <<\EOF
 for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
@@ -2670,7 +2670,7 @@
 
 EOF
 cat >> $CONFIG_STATUS <<\EOF
-make -s dirs
+make -f makefile.wrap -s dirs
 exit 0
 EOF
 chmod +x $CONFIG_STATUS
diff -uNbr apt-0.5.4/configure.in apt-0.5.4-new/configure.in
--- apt-0.5.4/configure.in      Mon Jun 18 01:56:32 2001
+++ apt-0.5.4-new/configure.in  Thu May 15 20:04:53 2003
@@ -163,4 +163,4 @@
 rc_LIBSTDCPP_VER
 ah_GCC3DEP
 
-AC_OUTPUT(environment.mak:buildlib/environment.mak.in 
makefile:buildlib/makefile.in,make -s dirs)
+AC_OUTPUT(environment.mak:buildlib/environment.mak.in 
makefile.wrap:buildlib/makefile.in,make -f makefile.wrap -s dirs)
diff -uNbr apt-0.5.4/dselect/install apt-0.5.4-new/dselect/install
--- apt-0.5.4/dselect/install   Tue Feb 20 02:03:17 2001
+++ apt-0.5.4-new/dselect/install       Thu May 15 20:04:53 2003
@@ -3,8 +3,8 @@
 # Get the configuration from /etc/apt/apt.conf
 CLEAN="prompt"
 OPTS="-f"
-APTGET="/usr/bin/apt-get"
-DPKG="/usr/bin/dpkg"
+APTGET="@PREFIX@/bin/apt-get"
+DPKG="@PREFIX@/bin/dpkg"
 DPKG_OPTS="--admindir=$1"
 APT_OPT0="-oDir::State::status=$1/status"
 APT_OPT1="-oDPkg::Options::=$DPKG_OPTS"
diff -uNbr apt-0.5.4/dselect/setup apt-0.5.4-new/dselect/setup
--- apt-0.5.4/dselect/setup     Wed Jan 26 23:15:10 2000
+++ apt-0.5.4-new/dselect/setup Thu May 15 20:04:53 2003
@@ -23,15 +23,17 @@
 my $vardir=$ARGV[0];
 my $method=$ARGV[1];
 my $option=$ARGV[2];
-my $config_file = '/etc/apt/sources.list';
+my $config_file = '@PREFIX@/etc/apt/sources.list';
 
-my $boldon=`setterm -bold on`;
-my $boldoff=`setterm -bold off`;
+my $boldon=`setterm -bold on 2>/dev/null`;
+my $boldoff=`setterm -bold off 2>/dev/null`;
+$boldon = "" unless defined $boldon;
+$boldoff = "" unless defined $boldon;
 
 my @known_types           = ('deb');
 my @known_access         = ('http', 'ftp', 'file');
-my @typical_distributions = ('stable', 'unstable', 'frozen', 'non-US');
-my @typical_components    = ('main', 'contrib', 'non-free');
+my @typical_distributions = ('release', 'current');
+my @typical_components    = ('main', 'crypto');
 
 my %known_access           = map {($_,$_)} @known_access;
 my %typical_distributions  = map {($_,$_)} @typical_distributions;
@@ -118,9 +120,9 @@
   }
 
   $type         = 'deb';
-  $urn          = "http://http.us.debian.org/debian"; unless $urn;
-  $distribution = "stable" unless $distribution;
-  $components   = "main contrib non-free" unless $components;
+  $urn          = "http://us.dl.sourceforge.net/fink/direct_download"; unless $urn;
+  $distribution = "release" unless $distribution;
+  $components   = "main" unless $components;
 
     
   $rec->{'Type'} = 'deb';
@@ -222,19 +224,13 @@
   print "\t$boldon Set up a list of distribution source locations $boldoff \n";
   print "\n";
 
-  print " Please give the base URL of the debian distribution.\n";
+  print " Please give the base URL of the Fink distribution.\n";
   print " The access schemes I know about are:$boldon ";
   print join (' ', @known_access), "$boldoff\n";
-#  print " The mirror scheme is special  that it does not specify the\n";
-#  print " location of a debian archive but specifies the location\n";
-#  print " of a list of mirrors to use to access the archive.\n";
   print "\n";
   print " For example:\n";
-  print "              file:/mnt/debian,\n";
-  print "              ftp://ftp.debian.org/debian,\n";;
-  print "              http://ftp.de.debian.org/debian,\n";;
-#  print " and the special mirror scheme,\n";
-#  print "              mirror:http://www.debian.org/archivemirrors \n";
+  print "              file:@PREFIX@/fink,\n";
+  print "              http://us.dl.sourceforge.net/fink/direct_download\n";;
   print "\n";
 
   my $index = 0;
diff -uNbr apt-0.5.4/dselect/update apt-0.5.4-new/dselect/update
--- apt-0.5.4/dselect/update    Mon Mar 12 20:45:36 2001
+++ apt-0.5.4-new/dselect/update        Thu May 15 20:04:53 2003
@@ -4,13 +4,13 @@
 # Get the configuration from /etc/apt/apt.conf
 CLEAN="prompt"
 OPTS="-f"
-APTGET="/usr/bin/apt-get"
-APTCACHE="/usr/bin/apt-cache"
-DPKG="/usr/bin/dpkg"
+APTGET="@PREFIX@/bin/apt-get"
+APTCACHE="@PREFIX@/bin/apt-cache"
+DPKG="@PREFIX@/bin/dpkg"
 DPKG_OPTS="--admindir=$1"
 APT_OPT0="-oDir::State::status=$1/status"
 APT_OPT1="-oDPkg::Options::=$DPKG_OPTS"
-CACHEDIR="/var/cache/apt"
+CACHEDIR="@PREFIX@/var/cache/apt"
 PROMPT="false"
 RES=`apt-config shell CLEAN DSelect::Clean OPTS DSelect::UpdateOptions \
                      DPKG Dir::Bin::dpkg/f APTGET Dir::Bin::apt-get/f \
diff -uNbr apt-0.5.4/methods/connect.cc apt-0.5.4-new/methods/connect.cc
--- apt-0.5.4/methods/connect.cc        Tue Feb 20 02:03:18 2001
+++ apt-0.5.4-new/methods/connect.cc    Thu May 15 20:04:53 2003
@@ -90,7 +90,7 @@
 
    // Check the socket for an error condition
    unsigned int Err;
-   unsigned int Len = sizeof(Err);
+   int Len = sizeof(Err);
    if (getsockopt(Fd,SOL_SOCKET,SO_ERROR,&Err,&Len) != 0)
       return _error->Errno("getsockopt","Failed");
    
diff -uNbr apt-0.5.4/methods/ftp.cc apt-0.5.4-new/methods/ftp.cc
--- apt-0.5.4/methods/ftp.cc    Tue May 22 00:02:00 2001
+++ apt-0.5.4-new/methods/ftp.cc        Thu May 15 20:04:53 2003
@@ -694,7 +694,7 @@
       if (WaitFd(DataFd,true,TimeOut) == false)
         return _error->Error("Could not connect data socket, connection timed out");
       unsigned int Err;
-      unsigned int Len = sizeof(Err);
+      int Len = sizeof(Err);
       if (getsockopt(DataFd,SOL_SOCKET,SO_ERROR,&Err,&Len) != 0)
         return _error->Errno("getsockopt","Failed");
       if (Err != 0)
@@ -739,7 +739,7 @@
    
    // Determine the name to send to the remote
    struct sockaddr_storage Addr;
-   socklen_t AddrLen = sizeof(Addr);
+   int AddrLen = sizeof(Addr);
    if (getsockname(DataListenFd,(sockaddr *)&Addr,&AddrLen) < 0)
       return _error->Errno("getsockname","Could not determine the socket's name");
 
@@ -815,7 +815,7 @@
       
    // Accept the connection
    struct sockaddr_in Addr;
-   socklen_t Len = sizeof(Addr);
+   int Len = sizeof(Addr);
    DataFd = accept(DataListenFd,(struct sockaddr *)&Addr,&Len);
    if (DataFd < 0)
       return _error->Errno("accept","Unable to accept connection");
diff -uNbr apt-0.5.4/methods/ftp.h apt-0.5.4-new/methods/ftp.h
--- apt-0.5.4/methods/ftp.h     Tue Mar  6 02:15:29 2001
+++ apt-0.5.4-new/methods/ftp.h Thu May 15 20:04:53 2003
@@ -26,11 +26,11 @@
    
    // Generic Peer Address
    struct sockaddr_storage PeerAddr;
-   socklen_t PeerAddrLen;
+   int PeerAddrLen;
    
    // Generic Server Address (us)
    struct sockaddr_storage ServerAddr;
-   socklen_t ServerAddrLen;
+   int ServerAddrLen;
    
    // Private helper functions
    bool ReadLine(string &Text);      
diff -uNbr apt-0.5.4/methods/rfc2553emu.h apt-0.5.4-new/methods/rfc2553emu.h
--- apt-0.5.4/methods/rfc2553emu.h      Sun Jun 18 02:04:45 2000
+++ apt-0.5.4-new/methods/rfc2553emu.h  Thu May 15 20:04:53 2003
@@ -26,6 +26,11 @@
 #include <sys/types.h>
 #include <sys/socket.h>
 
+// Always use full emulation on Darwin:
+//  netdb.h has the structures and constants, but getnameinfo() is missing
+//  and getaddrinfo() seems to be broken
+#ifndef __APPLE__
+
 // Autosense getaddrinfo
 #if defined(AI_PASSIVE) && defined(EAI_NONAME)
 #define HAVE_GETADDRINFO
@@ -36,6 +41,8 @@
 #define HAVE_GETNAMEINFO
 #endif
 
+#endif /* __APPLE__ */
+
 // getaddrinfo support?
 #ifndef HAVE_GETADDRINFO
   // Renamed to advoid type clashing.. (for debugging)
@@ -100,6 +107,9 @@
 //  #define NI_NOFQDN (1<<2)
   #define NI_NAMEREQD (1<<3)
   #define NI_DATAGRAM (1<<4)
+  #endif
+  #ifndef NI_DATAGRAM
+  #define NI_DATAGRAM NI_DGRAM
   #endif
 
   #define sockaddr_storage sockaddr_in
diff -uNbr apt-0.5.4/patch_flush apt-0.5.4-new/patch_flush
--- apt-0.5.4/patch_flush       Wed Dec 31 19:00:00 1969
+++ apt-0.5.4-new/patch_flush   Thu May 15 20:04:53 2003
@@ -0,0 +1,11 @@
+#!/bin/sh
+set -e
+
+files=`find . -name '*.cc' -print | xargs grep -l 'flush;'`
+
+for i in $files ; do
+  sed 's/<< flush;/<< flush, fflush(NULL);/g' <$i >$i.tmp
+  mv $i.tmp $i
+done
+
+exit 0
diff -uNbr apt-0.5.4/sources.list.fink apt-0.5.4-new/sources.list.fink
--- apt-0.5.4/sources.list.fink Wed Dec 31 19:00:00 1969
+++ apt-0.5.4-new/sources.list.fink     Thu May 15 20:04:53 2003
@@ -0,0 +1,8 @@
+# Default APT sources configuration for Fink
+
+# Local package trees - packages built from source locally
+# NOTE: keep this in sync with the Trees: line in @PREFIX@/etc/fink.conf
+# NOTE: run 'fink scanpackages' to create Packages.gz files
+deb file:@PREFIX@/fink local main
+deb file:@PREFIX@/fink stable main crypto
+#deb file:@PREFIX@/fink unstable main crypto
diff -uNbr apt-0.5.4/sources.list.fink-bindist apt-0.5.4-new/sources.list.fink-bindist
--- apt-0.5.4/sources.list.fink-bindist Wed Dec 31 19:00:00 1969
+++ apt-0.5.4-new/sources.list.fink-bindist     Thu May 15 20:04:53 2003
@@ -0,0 +1,8 @@
+
+# Official binary distribution: download location for packages
+# from the latest release
+deb http://us.dl.sourceforge.net/fink/direct_download 10.2/release main crypto
+
+# Official binary distribution: download location for updated
+# packages built between releases
+deb http://us.dl.sourceforge.net/fink/direct_download 10.2/current main crypto
--- apt-0.5.4/apt-pkg/policy.cc.orig    2003-06-23 23:35:02.000000000 -0700
+++ apt-0.5.4/apt-pkg/policy.cc 2003-06-23 23:35:56.000000000 -0700
@@ -183,7 +183,7 @@
    Pin *P = 0;
    
    if (Name.empty() == true)
-      P = &*Defaults.insert(Defaults.end());
+      P = &*Defaults.insert(Defaults.end(),PkgPin());
    else
    {
       // Get a spot to put the pin
@@ -197,7 +197,7 @@
               P = &*I;
         
         if (P == 0)
-           P = &*Unmatched.insert(Unmatched.end());      
+           P = &*Unmatched.insert(Unmatched.end(), PkgPin());      
       }
       else
       {




-------------------------------------------------------
This SF.Net email is sponsored by: INetU
Attention Web Developers & Consultants: Become An INetU Hosting Partner.
Refer Dedicated Servers. We Manage Them. You Get 10% Monthly Commission!
INetU Dedicated Managed Hosting http://www.inetu.net/partner/index.php
_______________________________________________
Fink-commits mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/fink-commits

Reply via email to