Request 255 was acted upon. _________________________________________________________________________
URL: https://rt.openpkg.org/id/255
Ticket: [OpenPKG #255]
Subject: [apt] patches for compatibility with openpkg >= 20030913
Requestors: [EMAIL PROTECTED]
Queue: openpkg
Owner: Nobody
Status: open
Transaction: Correspondence added by [EMAIL PROTECTED]
Time: Tue Sep 16 23:46:11 2003
________________________________________________________________________
I understand that everybody is very busy lately with the security
updates and the breakage on the core RPM libaries, so I don't mean to be
rude.
I'm just curious what the status of this patch application is?
Thanks,
Matt
On Sun, 2003-09-14 at 18:31, [EMAIL PROTECTED] via RT wrote:
> Request 255 was acted upon.
> _________________________________________________________________________
>
> URL: https://rt.openpkg.org/id/255
> Ticket: [OpenPKG #255]
> Subject: [apt] patches for compatibility with openpkg >= 20030913
> Requestors: [EMAIL PROTECTED]
> Queue: openpkg
> Owner: Nobody
> Status: open
> Transaction: Correspondence added by [EMAIL PROTECTED]
> Time: Mon Sep 15 01:31:30 2003
> ________________________________________________________________________
>
> It looks like my mailer fairly well trashed the newlines in most of the
> .spec file I attached.
>
> You can find undamaged versions of all these files in the SRPM at:
>
> http://apt.cis.ksu.edu/solaris/apt/SRPMS.openpkg-current/apt-0.5.5cnc6-20030914.src.rpm
>
> --Matt
>
> On Sun, 2003-09-14 at 18:16, Matt Hoosier via RT wrote:
> > Request 255 was acted upon.
> > _________________________________________________________________________
> >
> > URL: https://rt.openpkg.org/id/255
> > Ticket: [OpenPKG #255]
> > Subject: [apt] patches for compatibility with openpkg >= 20030913
> > Requestors: [EMAIL PROTECTED]
> > Queue: openpkg
> > Owner: Nobody
> > Status: new
> > Transaction: Ticket created by [EMAIL PROTECTED]
> > Time: Mon Sep 15 01:16:26 2003
> > _________________________________________________________________________
> >
> > Hi,
> >
> > It seems that the re-ordering of the libraries listed by "rpm-config --libs"
> > in versions >= 20030913 of the bootstrap package cause troubles when
> > compiling apt.
> >
> > Specifically, when compiling on Solaris some symbols from /cw/lib/librpmpopt.a
> > are not found by the linker. This is despite the fact that -lrpmpopt is
> > specified in the linking command.
> >
> > I have made a couple of tweaks to configure.in to cope with this fact.
> > Basically, in places where I sloppily inserted the complete output of
> > "rpm-config --libs" before, I've just replaced the "standard" library name
> > with the name as bundled in OpenPKG (e.g., 's/-lz/-lrpmz/').
> >
> > I have tested these under both Sun and FreeBSD, and the linker on each
> > platform is able to deal with the ordering I've set up.
> >
> > I'm attaching updated versions of apt.spec and apt.patch. I would have
> > included these as patches rather than full files, but somehow the notion
> > of sending a patch to a patch was a little too recursive for me to think
> > about...
> >
> > --Matt
> >
> > ----
> > Matt Hoosier
> > CIS Accounts Manager
> > Kansas State University
> > <[EMAIL PROTECTED]>
> >
> >
> > ______________________________________________________________________
> > ##
> > ## apt.spec -- OpenPKG RPM Specification
> > ## Copyright (c) 2000-2003 The OpenPKG Project <http://www.openpkg.org/>
> > ## Copyright (c) 2000-2003 Ralf S. Engelschall <[EMAIL PROTECTED]>
> > ## Copyright (c) 2000-2003 Cable & Wireless <http://www.cw.com/>
> > ##
> > ## Permission to use, copy, modify, and distribute this software for
> > ## any purpose with or without fee is hereby granted, provided that
> > ## the above copyright notice and this permission notice appear in all
> > ## copies.
> > ##
> > ## THIS SOFTWARE IS PROVIDED AS IS'' AND ANY EXPRESSED OR IMPLIED
> > ## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
> > ## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
> > ## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
> > ## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> > ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
> > ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
> > ## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
> > ## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
> > ## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
> > ## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
> > ## SUCH DAMAGE.
> > ##
> >
> > # package information
> > Name: apt
> > Summary: Advanced Packaging Tool
> > URL: https://moin.conectiva.com.br/AptRpm
> > Vendor: Jason Gunthorpe et al.
> > Packager: The OpenPKG Project
> > Distribution: OpenPKG [EVAL]
> > Group: Bootstrapping
> > License: GPL
> > Version: 0.5.5cnc6
> > Release: 20030914
> >
> > # list of sources
> > Source0:
> > http://moin.conectiva.com.br/files/AptRpm/attachments/apt-%{version}.tar.bz2
> > Source1: apt.conf
> > Source2: rpmpriorities
> > Patch0: apt.patch
> > Patch1: apt.patch.porting
> >
> > # build information
> > Prefix: %{l_prefix}
> > BuildRoot: %{l_buildroot}
> > BuildPreReq: OpenPKG, openpkg >= 20030913, make, gcc, autoconf
> > PreReq: OpenPKG, openpkg >= 20030913
> > AutoReq: no
> > AutoReqProv: no
> >
> > %description
> > This is Connectiva's port of the Debian's Advanced Packaging Tool
> > (APT), running on top of the OpenPKG RPM packaging infrastructure.
> > APT is an advanced package management utility front-end which allows
> > you to easily perform package installation, upgrading and removal.
> > Dependencies are automatically handled.
> >
> > %prep
> > %setup -q
> > %patch0 -p0
> >
> > # platform specific patching
> > l_rpmlibs="-lrpmpopt"
> > case "%{l_platform -t}" in
> > *sunos* )
> > %patch1 -p0
> > l_rpmlibs=" -lsocket"
> > ;;
> > esac
> >
> > # replace hard-coded paths with OpenPKG ones
> > find . ! -type d | xargs %{l_shtool} subst %{l_value -s l_prefix}
> > -e 's;@l_bindir@;%{l_prefix}/bin;g' -e 's;@name@;apt;g' -e
> > "s;@dbpath@;%{_dbpath};g" -e "s;@rpmlibs@;;g" -e "s;@l_rpmlibs@;;g"
> >
> > # regenerate GNU autoconf based files
> > %{l_prefix}/bin/autoconf
> >
> > %build
> > # configure package
> > CC="%{l_cc}" CPPFLAGS="%{l_cppflags} " CFLAGS="%{l_cflags} "
> > LDFLAGS="%{l_ldflags} " ./configure --prefix=%{l_prefix}
> > --localstatedir=%{l_prefix}/var/apt --disable-shared
> > --enable-static --disable-nls --disable-docs
> >
> > # disable localization stuff
> > %{l_shtool} subst -e 's;^POFILES =.*$;POFILES =;g' -e
> > 's;^GMOFILES =.*$;GMOFILES =;g' -e 's;^DUMMYPOFILES =.*$;DUMMYPOFILES =;g'
> > -e 's;^CATALOGS =.*$;CATALOGS =;g' po/Makefile
> >
> > # build package
> > %{l_make} %{l_mflags}
> >
> > %install
> > rm -rf
> >
> > # install package
> > %{l_make} %{l_mflags} install DESTDIR=
> >
> > # remove file that conflicts with 'grep' package
> > rm -f %{l_prefix}/lib/charset.alias
> >
> > # create directory for local state
> > for dir in lib/lists lib/lists/partial cache/archives/partial; do
> > %{l_shtool} mkdir -f -p -m 755 %{l_prefix}/var/apt/
> > done
> >
> > # install default (blank) configuration files
> > %{l_shtool} mkdir -p -m 755 %{l_prefix}/etc/apt
> > %{l_shtool} install -c -m 644 %{l_value -s -a} %{SOURCE apt.conf}
> > %{SOURCE rpmpriorities} %{l_prefix}/etc/apt/
> >
> > # strip down installation
> > strip %{l_prefix}/bin/* >/dev/null 2>&1 || true
> > strip %{l_prefix}/lib/apt/methods/* >/dev/null 2>&1 || true
> >
> > # determine installation files
> > %{l_rpmtool} files -v -ofiles -r %{l_files_std}
> >
> > %files -f files
> >
> > %clean
> > rm -rf
> >
> >
> > ______________________________________________________________________
> > --- apt-pkg/deb/debsystem.cc 2003-06-10 09:13:47.000000000 -0500
> > +++ apt-pkg/deb/debsystem.cc 2003-09-12 10:24:15.152860000 -0500
> > @@ -162,7 +162,7 @@
> > 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::Bin::dpkg","@l_prefix@/bin/dpkg");
> >
> > return true;
> > }
> > @@ -187,7 +187,7 @@
> > signed Score = 0;
> > if (FileExists(Cnf.FindFile("Dir::State::status","/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","@l_prefix@/bin/dpkg")) == true)
> > Score += 10;
> > if (FileExists("/etc/debian_version") == true)
> > Score += 10;
> > --- apt-pkg/init.cc 2003-06-10 09:10:21.000000000 -0500
> > +++ apt-pkg/init.cc 2003-09-12 10:24:15.172832000 -0500
> > @@ -45,10 +45,10 @@
> > Cnf.Set("APT::Architecture",COMMON_OS "-" COMMON_CPU);
> > // CNC:2002-09-10
> > //Cnf.Set("APT::Build-Essential::", "build-essential");
> > - Cnf.Set("Dir","/");
> > + Cnf.Set("Dir","@l_prefix@");
> >
> > // State
> > - Cnf.Set("Dir::State","var/lib/apt/");
> > + Cnf.Set("Dir::State","var/@name@/lib/");
> >
> > /* Just in case something goes horribly wrong, we can fall back to the
> > old /var/state paths.. */
> > @@ -61,13 +61,13 @@
> > Cnf.Set("Dir::State::cdroms","cdroms.list");
> >
> > // Cache
> > - Cnf.Set("Dir::Cache","var/cache/apt/");
> > + Cnf.Set("Dir::Cache","var/@name@/cache/");
> > Cnf.Set("Dir::Cache::archives","archives/");
> > Cnf.Set("Dir::Cache::srcpkgcache","srcpkgcache.bin");
> > Cnf.Set("Dir::Cache::pkgcache","pkgcache.bin");
> >
> > // Configuration
> > - Cnf.Set("Dir::Etc","etc/apt/");
> > + Cnf.Set("Dir::Etc","etc/@name@/");
> > Cnf.Set("Dir::Etc::sourcelist","sources.list");
> > // CNC:2003-03-03
> > Cnf.Set("Dir::Etc::sourceparts","sources.list.d");
> > @@ -76,7 +76,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","@l_prefix@/lib/apt/methods");
> >
> > bool Res = true;
> >
> > --- apt-pkg/luaiface.cc 2003-06-10 09:10:10.000000000 -0500
> > +++ apt-pkg/luaiface.cc 2003-09-12 10:24:15.190908000 -0500
> > @@ -59,7 +59,7 @@
> > Lua::Lua()
> > : DepCache(0), Cache(0), Fix(0), DontFix(0)
> > {
> > - _config->CndSet("Dir::Bin::scripts", "/usr/lib/apt/scripts");
> > + _config->CndSet("Dir::Bin::scripts", "@l_prefix@/lib/apt/scripts");
> >
> > const luaL_reg lualibs[] = {
> > {"base", luaopen_base},
> > --- apt-pkg/rpm/rpmhandler.cc 2003-06-10 09:12:44.000000000 -0500
> > +++ apt-pkg/rpm/rpmhandler.cc 2003-09-12 10:24:15.220455000 -0500
> > @@ -383,9 +383,9 @@
> > File = "Packages";
> > #endif
> > if (DirectoryOnly == true)
> > - return _config->Find("RPM::RootDir")+"/var/lib/rpm";
> > + return _config->Find("RPM::RootDir")+"@dbpath@";
> > else
> > - return _config->Find("RPM::RootDir")+"/var/lib/rpm/"+File;
> > + return _config->Find("RPM::RootDir")+"@dbpath@/"+File;
> > }
> >
> > bool RPMDBHandler::Skip()
> > --- apt-pkg/rpm/rpmhandler.h 2003-06-10 09:12:36.000000000 -0500
> > +++ apt-pkg/rpm/rpmhandler.h 2003-09-12 10:28:48.228417000 -0500
> > @@ -12,6 +12,7 @@
> >
> > #include <apt-pkg/fileutl.h>
> >
> > +#include <rpm/glob.h>
> > #include <rpm/rpmlib.h>
> > #include <rpm/rpmmacro.h>
> >
> > --- apt-pkg/rpm/rpmpackagedata.cc 2003-06-10 09:12:34.000000000 -0500
> > +++ apt-pkg/rpm/rpmpackagedata.cc 2003-09-12 10:31:37.552481000 -0500
> > @@ -12,6 +12,7 @@
> >
> > #include <apti18n.h>
> >
> > +#include <rpm/glob.h>
> > #include <rpm/rpmlib.h>
> >
> > RPMPackageData::RPMPackageData()
> > --- apt-pkg/rpm/rpmpm.cc 2003-06-10 09:12:46.000000000 -0500
> > +++ apt-pkg/rpm/rpmpm.cc 2003-09-12 10:32:29.231349000 -0500
> > @@ -34,6 +34,7 @@
> > #include <iostream>
> >
> >
> > +#include <rpm/glob.h>
> > #include <rpm/rpmlib.h>
> > /*}}}*/
> >
> > --- apt-pkg/rpm/rpmrecords.h 2003-06-10 09:12:18.000000000 -0500
> > +++ apt-pkg/rpm/rpmrecords.h 2003-09-12 10:33:05.832241000 -0500
> > @@ -21,6 +21,7 @@
> >
> > #include <apt-pkg/pkgrecords.h>
> > #include <apt-pkg/fileutl.h>
> > +#include <rpm/glob.h>
> > #include <rpm/rpmlib.h>
> >
> >
> > --- apt-pkg/rpm/rpmsrcrecords.h 2003-06-10 09:12:46.000000000 -0500
> > +++ apt-pkg/rpm/rpmsrcrecords.h 2003-09-12 10:36:00.104583000 -0500
> > @@ -17,6 +17,7 @@
> >
> > #include <apt-pkg/srcrecords.h>
> > #include <apt-pkg/fileutl.h>
> > +#include <rpm/glob.h>
> > #include <rpm/rpmlib.h>
> >
> >
> > --- apt-pkg/rpm/rpmsystem.cc 2003-06-10 09:12:35.000000000 -0500
> > +++ apt-pkg/rpm/rpmsystem.cc 2003-09-12 10:24:15.244358000 -0500
> > @@ -120,12 +120,12 @@
> > /* These are the rpm specific configuration variables.. */
> > bool rpmSystem::Initialize(Configuration &Cnf)
> > {
> > - Cnf.CndSet("Dir::Bin::rpm","/bin/rpm");
> > + Cnf.CndSet("Dir::Bin::rpm","@l_bindir@/rpm");
> > Cnf.CndSet("Dir::Etc::rpmpriorities", "rpmpriorities");
> > Cnf.CndSet("Dir::Etc::translatelist", "translate.list");
> > Cnf.CndSet("Dir::Etc::translateparts", "translate.list.d");
> > Cnf.CndSet("Dir::State::prefetch", "prefetch");
> > - Cnf.CndSet("Dir::Locale","/usr/share/locale");
> > + Cnf.CndSet("Dir::Locale","@l_prefix@/share/locale");
> > Cnf.CndSet("Acquire::DistroID","Conectiva"); // hee hee
> > Cnf.CndSet("Acquire::CDROM::Mount", "/mnt/cdrom");
> > Cnf.CndSet("Acquire::CDROM::Copy-All", "true");
> > @@ -197,7 +197,7 @@
> >
> > if (FileExists(RPMDBHandler::DataPath(false)))
> > Score += 10;
> > - if (FileExists(Cnf.FindFile("Dir::Bin::rpm","/bin/rpm")) == true)
> > + if (FileExists(Cnf.FindFile("Dir::Bin::rpm","@l_bindir@/rpm")) == true)
> > Score += 10;
> >
> > return Score;
> > --- apt-pkg/rpm/rpmversion.cc 2003-06-10 09:12:33.000000000 -0500
> > +++ apt-pkg/rpm/rpmversion.cc 2003-09-12 10:38:49.691754000 -0500
> > @@ -22,6 +22,7 @@
> > #include <apt-pkg/rpmversion.h>
> > #include <apt-pkg/pkgcache.h>
> >
> > +#include <rpm/glob.h>
> > #include <rpm/rpmlib.h>
> > #include <rpm/misc.h>
> >
> > --- configure.in 2003-06-10 09:04:02.000000000 -0500
> > +++ configure.in 2003-09-12 13:08:37.264445000 -0500
> > @@ -48,14 +48,14 @@
> > AC_CHECK_HEADER(rpm/rpmlib.h,
> > [
> > AC_CHECK_LIB(rpmdb,rpmdbOpen,
> > - [RPMDBLIBS="-lrpmdb"],
> > + [RPMDBLIBS="-lrpmdb"],
> > [RPMDBLIBS="-ldb-3.1"],
> > - [-lrpm -lrpmio -lz -lbz2 -lpopt])
> > + [-lrpm -lrpmio -lrpmz -lrpmbz2 -lrpmbeecrypt @[EMAIL PROTECTED])
> >
> > AC_CHECK_LIB(rpm,rpmdbGetIteratorOffset,
> > [AC_DEFINE_UNQUOTED(HAVE_RPM, 1)
> > AC_DEFINE_UNQUOTED(HAVE_RPM4, 1)
> > - RPMLIBS="-lrpm -lrpmio -lz -lbz2 -lpopt"
> > + RPMLIBS="-lrpm -lrpmio -lrpmz -lrpmbz2 -lrpmpopt -lrpmbeecrypt @l_rpmlibs@"
> > AC_CHECK_LIB(rpm, rpmtsUpdateDSI,
> > [AC_DEFINE_UNQUOTED(HAVE_RPM41, 1)
> > rpm_version="4.1"],
> > @@ -64,11 +64,11 @@
> > ],
> > [AC_CHECK_LIB(rpm,rpmdbFirstRecNum,
> > [AC_DEFINE_UNQUOTED(HAVE_RPM, 1)
> > - RPMLIBS="-lrpm -ldb1 -lz -lbz2 -lpopt"
> > + RPMLIBS="-lrpm -lrpmdb -lrpmz -lrpmbz2 -lrpmpopt -lrpmbeecrypt"
> > rpm_version="3"],,
> > - [-ldb1 -lz -lbz2 -lpopt])
> > + [-lrpmdb -lrpmz -lrpmbz2 -lrpmopt -lrpmbeecrypt])
> > ],
> > - [ -lrpmio -lz -lbz2 -lpopt])
> > + [ -lrpmio -lrpmz -lrpmbz2 -lrpmpopt -lrpmbeecrypt @[EMAIL PROTECTED])
> >
> > AC_SUBST(RPMLIBS)
> > ])
> > --- methods/gpg.cc 2003-06-10 09:14:06.000000000 -0500
> > +++ methods/gpg.cc 2003-09-12 10:24:15.270075000 -0500
> > @@ -195,7 +195,7 @@
> > return "could not spawn new process";
> > else if (pid == 0)
> > {
> > - string path = _config->Find("Dir::Bin::gpg", "/usr/bin/gpg");
> > + string path = _config->Find("Dir::Bin::gpg", "@l_prefix@/bin/gpg");
> > string pubring = "";
> > const char *argv[16];
> > int argc = 0;
> > --- test/scratch.cc 2003-06-10 09:20:33.000000000 -0500
> > +++ test/scratch.cc 2003-09-12 10:24:15.304800000 -0500
> > @@ -49,7 +49,7 @@
> >
> > /* Db.GetFLCache().BeginDiverLoad();
> > pkgFLCache::PkgIterator Pkg(Db.GetFLCache(),0);
> > - if
> > (Db.GetFLCache().AddDiversion(Pkg,"/usr/include/linux/kerneld.h","/usr/bin/nslookup")
> > == false)
> > + if
> > (Db.GetFLCache().AddDiversion(Pkg,"/usr/include/linux/kerneld.h","@l_prefix@/bin/nslookup")
> > == false)
> > cerr << "Error!" << endl;
> >
> > const char *Tmp = "/usr/include/linux/kerneld.h";
> > --- tools/cached_md5.cc 2003-06-10 09:14:45.000000000 -0500
> > +++ tools/cached_md5.cc 2003-09-12 13:27:32.586894000 -0500
> > @@ -6,6 +6,7 @@
> > #include <dirent.h>
> > #include <errno.h>
> > #include <fcntl.h>
> > +#include <rpm/glob.h>
> > #include <rpm/rpmlib.h>
> > #include <stdlib.h>
> > #include <string.h>
> > --- tools/genpkglist.cc 2003-06-10 09:14:47.000000000 -0500
> > +++ tools/genpkglist.cc 2003-09-12 13:24:43.717633000 -0500
> > @@ -6,6 +6,7 @@
> > #include <dirent.h>
> > #include <errno.h>
> > #include <fcntl.h>
> > +#include <rpm/glob.h>
> > #include <rpm/rpmlib.h>
> > #include <stdlib.h>
> > #include <string.h>
> > @@ -368,7 +369,7 @@
> > }
> >
> > int scandir(const char * dir, struct dirent *** namelist,
> > - int (* select)(struct dirent *),
> > + int (* select)(const struct dirent *),
> > int (* cmp)(const void *, const void *))
> >
> > {
> > --- tools/gensrclist.cc 2003-06-10 09:14:44.000000000 -0500
> > +++ tools/gensrclist.cc 2003-09-12 13:28:59.653936000 -0500
> > @@ -6,6 +6,7 @@
> > #include <dirent.h>
> > #include <errno.h>
> > #include <fcntl.h>
> > +#include <rpm/glob.h>
> > #include <rpm/rpmlib.h>
> > #include <stdlib.h>
> > #include <string.h>
> > @@ -133,6 +134,89 @@
> > }
> > #endif
> >
> > +#ifndef HAVE_SCANDIR
> > +// from glibc 1.09.1 mod'd by jmik, ins'd by asm, fix'd by sbi
> > +int alphasort(const void * a, const void * b)
> > +{
> > + return strcmp ((*(struct dirent **) a)->d_name,
> > + (*(struct dirent **) b)->d_name);
> > +}
> > +
> > +int scandir(const char * dir, struct dirent *** namelist,
> > + int (* select)(const struct dirent *),
> > + int (* cmp)(const void *, const void *))
> > +
> > +{
> > + DIR *dp = opendir (dir);
> > + struct dirent **v = NULL;
> > + size_t vsize = 0, i;
> > + struct dirent *d;
> > + int save;
> > +
> > + if (dp == NULL)
> > + return -1;
> > +
> > + save = errno;
> > + errno = 0;
> > +
> > + i = 0;
> > + while ((d = readdir (dp)) != NULL)
> > + {
> > + if (select == NULL || (*select) (d))
> > + {
> > + if (i == vsize)
> > + {
> > + struct dirent **newv;
> > + if (vsize == 0)
> > + vsize = 10;
> > + else
> > + vsize *= 2;
> > + newv = (struct dirent **) realloc (v, vsize * sizeof (*v));
> > + if (newv == NULL)
> > + {
> > + lose:
> > + errno = ENOMEM;
> > + break;
> > + }
> > + v = newv;
> > + }
> > +
> > + v[i] = (struct dirent *) malloc (d->d_reclen);
> > + if (v[i] == NULL)
> > + goto lose;
> > +
> > + // *v[i++] = *d;
> > + memcpy(v[i], d, d->d_reclen);
> > + i++;
> > + }
> > + }
> > +
> > + v[i] = NULL;
> > +
> > + if (errno != 0)
> > + {
> > + save = errno;
> > + (void) closedir (dp);
> > + while (i > 0)
> > + free (v[--i]);
> > + free (v);
> > + errno = save;
> > + return -1;
> > + }
> > +
> > + (void) closedir (dp);
> > + errno = save;
> > +
> > + /* Sort the list if we have a comparison function to sort with. */
> > + if (cmp != NULL)
> > + qsort (v, i, sizeof (struct dirent *), cmp);
> > +
> > + *namelist = v;
> > + return i;
> > +}
> > +// end of new stuff from glibc
> > +#endif
> > +
> > int main(int argc, char ** argv)
> > {
> > char buf[300];
> > --- tools/cached_md5.cc.orig 2003-09-13 20:46:01.000000000 +0200
> > +++ tools/cached_md5.cc 2003-09-13 20:50:59.000000000 +0200
> > @@ -1,7 +1,6 @@
> > /*
> > * : cached_md5.cc,v 1.4 2003/01/29 13:47:31 niemeyer Exp $
> > */
> > -#include <alloca.h>
> > #include <ctype.h>
> > #include <dirent.h>
> > #include <errno.h>
> > --- tools/genpkglist.cc.orig 2003-09-13 20:46:01.000000000 +0200
> > +++ tools/genpkglist.cc 2003-09-13 20:50:44.000000000 +0200
> > @@ -1,7 +1,6 @@
> > /*
> > * : genpkglist.cc,v 1.7 2003/01/30 17:18:21 niemeyer Exp $
> > */
> > -#include <alloca.h>
> > #include <ctype.h>
> > #include <dirent.h>
> > #include <errno.h>
> > --- tools/gensrclist.cc.orig 2003-09-13 20:46:01.000000000 +0200
> > +++ tools/gensrclist.cc 2003-09-13 20:51:13.000000000 +0200
> > @@ -1,7 +1,6 @@
> > /*
> > * : gensrclist.cc,v 1.8 2003/01/30 17:18:21 niemeyer Exp $
> > */
> > -#include <alloca.h>
> > #include <ctype.h>
> > #include <dirent.h>
> > #include <errno.h>
>
>
> ______________________________________________________________________
> The OpenPKG Project www.openpkg.org
> Bug Database Interface www.openpkg.org/bugdb
> Bug Database List [EMAIL PROTECTED]
--
Matt Hoosier
UNIX Administrator / Accounts Manager
Department of Computing and Information Sciences
Kansas State University
signature.asc
Description: PGP signature
