apt.patch 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619
  1. Index: apt-pkg/deb/debsystem.cc
  2. --- apt-pkg/deb/debsystem.cc.orig 2003-12-23 21:18:33.000000000 +0100
  3. +++ apt-pkg/deb/debsystem.cc 2004-01-24 20:20:12.000000000 +0100
  4. @@ -162,7 +162,7 @@
  5. be the only users of these */
  6. Cnf.CndSet("Dir::State::userstatus","status.user"); // Defunct
  7. Cnf.CndSet("Dir::State::status","/var/lib/dpkg/status");
  8. - Cnf.CndSet("Dir::Bin::dpkg","/usr/bin/dpkg");
  9. + Cnf.CndSet("Dir::Bin::dpkg","@l_prefix@/bin/dpkg");
  10. return true;
  11. }
  12. @@ -187,7 +187,7 @@
  13. signed Score = 0;
  14. if (FileExists(Cnf.FindFile("Dir::State::status","/var/lib/dpkg/status")) == true)
  15. Score += 10;
  16. - if (FileExists(Cnf.FindFile("Dir::Bin::dpkg","/usr/bin/dpkg")) == true)
  17. + if (FileExists(Cnf.FindFile("Dir::Bin::dpkg","@l_prefix@/bin/dpkg")) == true)
  18. Score += 10;
  19. if (FileExists("/etc/debian_version") == true)
  20. Score += 10;
  21. Index: apt-pkg/init.cc
  22. --- apt-pkg/init.cc.orig 2003-12-23 21:18:15.000000000 +0100
  23. +++ apt-pkg/init.cc 2004-01-24 20:20:12.000000000 +0100
  24. @@ -45,10 +45,10 @@
  25. Cnf.Set("APT::Architecture",COMMON_OS "-" COMMON_CPU);
  26. // CNC:2002-09-10
  27. //Cnf.Set("APT::Build-Essential::", "build-essential");
  28. - Cnf.Set("Dir","/");
  29. + Cnf.Set("Dir","@l_prefix@");
  30. // State
  31. - Cnf.Set("Dir::State","var/lib/apt/");
  32. + Cnf.Set("Dir::State","var/apt/lib/");
  33. /* Just in case something goes horribly wrong, we can fall back to the
  34. old /var/state paths.. */
  35. @@ -61,7 +61,7 @@
  36. Cnf.Set("Dir::State::cdroms","cdroms.list");
  37. // Cache
  38. - Cnf.Set("Dir::Cache","var/cache/apt/");
  39. + Cnf.Set("Dir::Cache","var/apt/cache/");
  40. Cnf.Set("Dir::Cache::archives","archives/");
  41. Cnf.Set("Dir::Cache::srcpkgcache","srcpkgcache.bin");
  42. Cnf.Set("Dir::Cache::pkgcache","pkgcache.bin");
  43. @@ -76,7 +76,7 @@
  44. Cnf.Set("Dir::Etc::main","apt.conf");
  45. Cnf.Set("Dir::Etc::parts","apt.conf.d");
  46. Cnf.Set("Dir::Etc::preferences","preferences");
  47. - Cnf.Set("Dir::Bin::methods",LIBDIR "/apt/methods");
  48. + Cnf.Set("Dir::Bin::methods","@l_prefix@/lib/apt/methods");
  49. Cnf.Set("Acquire::ComprExtension", ".bz2");
  50. bool Res = true;
  51. Index: apt-pkg/luaiface.cc
  52. --- apt-pkg/luaiface.cc.orig 2003-12-23 21:19:11.000000000 +0100
  53. +++ apt-pkg/luaiface.cc 2004-01-24 20:20:12.000000000 +0100
  54. @@ -81,7 +81,7 @@
  55. Lua::Lua()
  56. : DepCache(0), Cache(0), CacheControl(0), Fix(0), DontFix(0)
  57. {
  58. - _config->CndSet("Dir::Bin::scripts", "/usr/lib/apt/scripts");
  59. + _config->CndSet("Dir::Bin::scripts", "@l_prefix@/lib/apt/scripts");
  60. const luaL_reg lualibs[] = {
  61. {"base", luaopen_base},
  62. Index: apt-pkg/rpm/rpmhandler.h
  63. --- apt-pkg/rpm/rpmhandler.h.orig 2003-12-23 21:19:27.000000000 +0100
  64. +++ apt-pkg/rpm/rpmhandler.h 2004-01-24 20:20:12.000000000 +0100
  65. @@ -12,6 +12,7 @@
  66. #include <apt-pkg/fileutl.h>
  67. +#include <rpm/glob.h>
  68. #include <rpm/rpmlib.h>
  69. #include <rpm/rpmmacro.h>
  70. Index: apt-pkg/rpm/rpmpackagedata.cc
  71. --- apt-pkg/rpm/rpmpackagedata.cc.orig 2003-12-23 21:19:36.000000000 +0100
  72. +++ apt-pkg/rpm/rpmpackagedata.cc 2004-01-24 20:20:12.000000000 +0100
  73. @@ -12,6 +12,7 @@
  74. #include <apti18n.h>
  75. +#include <rpm/glob.h>
  76. #include <rpm/rpmlib.h>
  77. RPMPackageData::RPMPackageData()
  78. Index: apt-pkg/rpm/rpmpm.cc
  79. --- apt-pkg/rpm/rpmpm.cc.orig 2003-12-23 21:19:20.000000000 +0100
  80. +++ apt-pkg/rpm/rpmpm.cc 2004-01-24 20:20:12.000000000 +0100
  81. @@ -34,6 +34,7 @@
  82. #include <stdio.h>
  83. #include <iostream>
  84. +#include <rpm/glob.h>
  85. #if RPM_VERSION >= 0x040100
  86. #include <rpm/rpmdb.h>
  87. #define packagesTotal rpmcliPackagesTotal
  88. Index: apt-pkg/rpm/rpmpm.h
  89. --- apt-pkg/rpm/rpmpm.h.orig 2003-12-23 21:19:23.000000000 +0100
  90. +++ apt-pkg/rpm/rpmpm.h 2004-01-24 20:20:12.000000000 +0100
  91. @@ -11,6 +11,7 @@
  92. #ifndef PKGLIB_rpmPM_H
  93. #define PKGLIB_rpmPM_H
  94. +#include <rpm/glob.h>
  95. #include <rpm/rpmlib.h>
  96. #if RPM_VERSION >= 0x040100
  97. #include <rpm/rpmts.h>
  98. Index: apt-pkg/rpm/rpmrecords.h
  99. --- apt-pkg/rpm/rpmrecords.h.orig 2003-12-23 21:19:51.000000000 +0100
  100. +++ apt-pkg/rpm/rpmrecords.h 2004-01-24 20:20:12.000000000 +0100
  101. @@ -21,6 +21,7 @@
  102. #include <apt-pkg/pkgrecords.h>
  103. #include <apt-pkg/fileutl.h>
  104. +#include <rpm/glob.h>
  105. #include <rpm/rpmlib.h>
  106. Index: apt-pkg/rpm/rpmsrcrecords.h
  107. --- apt-pkg/rpm/rpmsrcrecords.h.orig 2003-12-23 21:20:01.000000000 +0100
  108. +++ apt-pkg/rpm/rpmsrcrecords.h 2004-01-24 20:20:12.000000000 +0100
  109. @@ -17,6 +17,7 @@
  110. #include <apt-pkg/srcrecords.h>
  111. #include <apt-pkg/fileutl.h>
  112. +#include <rpm/glob.h>
  113. #include <rpm/rpmlib.h>
  114. Index: apt-pkg/rpm/rpmsystem.cc
  115. --- apt-pkg/rpm/rpmsystem.cc.orig 2003-12-23 21:19:32.000000000 +0100
  116. +++ apt-pkg/rpm/rpmsystem.cc 2004-01-24 20:20:12.000000000 +0100
  117. @@ -126,13 +126,13 @@
  118. /* These are the rpm specific configuration variables.. */
  119. bool rpmSystem::Initialize(Configuration &Cnf)
  120. {
  121. - Cnf.CndSet("Dir::Bin::rpm","/bin/rpm");
  122. + Cnf.CndSet("Dir::Bin::rpm","@l_prefix@/bin/rpm");
  123. Cnf.CndSet("Dir::Etc::rpmpriorities", "rpmpriorities");
  124. Cnf.CndSet("Dir::Etc::translatelist", "translate.list");
  125. Cnf.CndSet("Dir::Etc::translateparts", "translate.list.d");
  126. Cnf.CndSet("Dir::State::prefetch", "prefetch");
  127. - Cnf.CndSet("Dir::Locale","/usr/share/locale");
  128. - Cnf.CndSet("Acquire::DistroID","Conectiva"); // hee hee
  129. + Cnf.CndSet("Dir::Locale","@l_prefix@/share/locale");
  130. + Cnf.CndSet("Acquire::DistroID","OpenPKG");
  131. Cnf.CndSet("Acquire::CDROM::Mount", "/mnt/cdrom");
  132. Cnf.CndSet("Acquire::CDROM::Copy-All", "true");
  133. @@ -229,7 +229,7 @@
  134. if (FileExists(RPMDBHandler::DataPath(false)))
  135. Score += 10;
  136. - if (FileExists(Cnf.FindFile("Dir::Bin::rpm","/bin/rpm")) == true)
  137. + if (FileExists(Cnf.FindFile("Dir::Bin::rpm","@l_prefix@/bin/rpm")) == true)
  138. Score += 10;
  139. return Score;
  140. Index: apt-pkg/rpm/rpmversion.cc
  141. --- apt-pkg/rpm/rpmversion.cc.orig 2003-12-23 21:19:34.000000000 +0100
  142. +++ apt-pkg/rpm/rpmversion.cc 2004-01-24 20:20:12.000000000 +0100
  143. @@ -22,6 +22,7 @@
  144. #include <apt-pkg/rpmversion.h>
  145. #include <apt-pkg/pkgcache.h>
  146. +#include <rpm/glob.h>
  147. #include <rpm/rpmlib.h>
  148. #include <rpm/misc.h>
  149. Index: apt-pkg/sourcelist.cc
  150. --- apt-pkg/sourcelist.cc.orig 2003-12-23 21:17:28.000000000 +0100
  151. +++ apt-pkg/sourcelist.cc 2004-01-24 20:20:12.000000000 +0100
  152. @@ -105,7 +105,7 @@
  153. // Check for an absolute dists specification.
  154. if (Dist.empty() == false && Dist[Dist.size() - 1] == '/')
  155. {
  156. - if (ParseQuoteWord(Buffer,Section) == true)
  157. + if (ParseQuoteWord(Buffer,Section) == false)
  158. return _error->Error(_("Malformed line %lu in source list %s (Absolute dist)"),CurLine,File.c_str());
  159. Dist = SubstVar(Dist,"$(ARCH)",_config->Find("APT::Architecture"));
  160. return CreateItem(List,URI,Dist,Section,Vendor);
  161. Index: cmdline/apt-shell.cc
  162. --- cmdline/apt-shell.cc.orig 2003-12-23 21:31:46.000000000 +0100
  163. +++ cmdline/apt-shell.cc 2004-01-24 20:20:12.000000000 +0100
  164. @@ -3672,7 +3672,7 @@
  165. " remove - Remove packages\n"
  166. " keep - Keep packages\n"
  167. " upgrade - Perform a global upgrade\n"
  168. - " dist-upgrade - Perform a globla distribution upgrade\n"
  169. + " dist-upgrade - Perform a global distribution upgrade\n"
  170. " build-dep - Install build-dependencies for source packages\n"
  171. // " dselect-upgrade - Follow dselect selections\n"
  172. " update - Retrieve new lists of packages\n"
  173. @@ -3694,8 +3694,7 @@
  174. " autoclean - Erase old downloaded archive files\n"
  175. "\n"
  176. "For more information type \"help <cmd>\" or \"<cmd> [-h|--help]\".\n"
  177. - "\n"
  178. - " This APT has Super Cow Powers.\n");
  179. + );
  180. return true;
  181. }
  182. Index: configure.in
  183. --- configure.in.orig 2003-12-23 21:15:40.000000000 +0100
  184. +++ configure.in 2004-01-24 20:21:50.000000000 +0100
  185. @@ -47,7 +47,7 @@
  186. dnl Check for RPM version
  187. AC_MSG_CHECKING(for RPM version)
  188. - RPM_VERSION_RAW=`LANG= LC_ALL= $RPM_PATH --version | sed 's/^RPM version //'`
  189. + RPM_VERSION_RAW=`LANG= LC_ALL= $RPM_PATH --version | sed 's/^OpenPKG RPM //'`
  190. RPM_VERSION_MAJOR=`echo $RPM_VERSION_RAW | cut -d. -f1`
  191. RPM_VERSION_MINOR=`echo $RPM_VERSION_RAW | cut -d. -f2`
  192. RPM_VERSION_MICRO=`echo $RPM_VERSION_RAW | cut -d. -f3`
  193. @@ -68,9 +68,9 @@
  194. dnl Check for RPM libraries and headers
  195. - AC_CHECK_LIB(bz2,BZ2_bzopen, [],
  196. + AC_CHECK_LIB(rpmbz2,BZ2_bzopen, [],
  197. [AC_MSG_ERROR([Can't find libbz2 library])])
  198. - AC_CHECK_LIB(z,gzopen, [],
  199. + AC_CHECK_LIB(rpmz,gzopen, [],
  200. [AC_MSG_ERROR([Can't find libz library])])
  201. AC_CHECK_HEADERS(db1/db.h)
  202. @@ -79,13 +79,13 @@
  203. [AC_MSG_ERROR([Can't find rpmlib.h])])
  204. if test $RPM_VERSION_MAJOR -lt 4; then
  205. - RPMLIBS="-lrpm -lz -lbz2 -lpopt"
  206. + RPMLIBS="@l_rpmlibs_base@ @l_rpmlibs_extra@"
  207. else
  208. AC_CHECK_LIB(rpmdb,rpmdbOpen,
  209. - [RPMDBLIBS="-lrpmdb"],
  210. + [RPMDBLIBS="@l_rpmlibs_base@"],
  211. [RPMDBLIBS="-ldb-3.1"],
  212. - [-lrpm -lrpmio -lz -lbz2 -lpopt])
  213. - RPMLIBS="-lrpm $RPMDBLIBS -lrpmio -lz -lbz2 -lpopt"
  214. + [@l_rpmlibs_base@ @l_rpmlibs_extra@])
  215. + RPMLIBS="@l_rpmlibs_base@ $RPMDBLIBS @l_rpmlibs_extra@"
  216. fi
  217. AC_MSG_CHECKING(for RPM libraries)
  218. AC_MSG_RESULT($RPMLIBS)
  219. Index: lua/Makefile.in
  220. --- lua/Makefile.in.orig 2003-12-23 21:13:37.000000000 +0100
  221. +++ lua/Makefile.in 2004-01-24 20:20:12.000000000 +0100
  222. @@ -192,7 +192,7 @@
  223. luac_luac_CFLAGS = -DLUA_OPNAMES
  224. liblua_la_CFLAGS = -DUSE_DLOPEN -DWITH_POSIX
  225. -liblua_la_LIBADD = -lm -ldl
  226. +liblua_la_LIBADD = -lm
  227. liblua_la_SOURCES = \
  228. local/linit.c \
  229. local/linit.h \
  230. Index: lua/local/lrexlib.c
  231. --- lua/local/lrexlib.c.orig 2003-12-23 21:13:42.000000000 +0100
  232. +++ lua/local/lrexlib.c 2004-01-24 20:20:12.000000000 +0100
  233. @@ -20,6 +20,7 @@
  234. #ifdef WITH_POSIX
  235. +#include <sys/types.h>
  236. #include <regex.h>
  237. static int rex_comp(lua_State *L) {
  238. Index: methods/gpg.cc
  239. --- methods/gpg.cc.orig 2003-12-23 21:24:04.000000000 +0100
  240. +++ methods/gpg.cc 2004-01-24 20:20:12.000000000 +0100
  241. @@ -10,6 +10,11 @@
  242. #include <stdio.h>
  243. #include <sys/wait.h>
  244. +#ifdef OPENPKG_SOLARIS
  245. +#include <sys/syscall.h>
  246. +#include <sys/systm.h>
  247. +#endif
  248. +
  249. #include <apti18n.h>
  250. class GPGMethod : public pkgAcqMethod
  251. @@ -173,7 +178,81 @@
  252. }
  253. #undef STRCMP
  254. +#ifdef OPENPKG_SOLARIS
  255. +
  256. +static const char letters[] =
  257. +"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
  258. +
  259. +static int gen_tempname (char *tmpl)
  260. +{
  261. + int len;
  262. + char *XXXXXX;
  263. + static uint64_t value;
  264. + uint64_t random_time_bits;
  265. + int count, fd = -1;
  266. + int save_errno = errno;
  267. +
  268. + len = strlen(tmpl);
  269. + if ( len < 6 || strcmp (&tmpl[len - 6], "XXXXXX")) {
  270. + __set_errno(EINVAL);
  271. + return -1;
  272. + }
  273. +
  274. + XXXXXX = &tmpl[len - 6];
  275. + random_time_bits = time(NULL);
  276. + value += random_time_bits ^ getpid();
  277. +
  278. + for ( count = 0; count < TMP_MAX; value += 7777, ++count) {
  279. + uint64_t v = value;
  280. + XXXXXX[0] = letters[v % 62];
  281. + v /= 62;
  282. + XXXXXX[1] = letters[v % 62];
  283. + v /= 62;
  284. + XXXXXX[2] = letters[v % 62];
  285. + v /= 62;
  286. + XXXXXX[3] = letters[v % 62];
  287. + v /= 62;
  288. + XXXXXX[4] = letters[v % 62];
  289. + v /= 62;
  290. + XXXXXX[5] = letters[v % 62];
  291. +
  292. + fd = mkdir(tmpl, S_IRUSR | S_IWUSR | S_IXUSR);
  293. +
  294. + if ( fd > 0 ) {
  295. + __set_errno(save_errno);
  296. + return fd;
  297. + }
  298. + else if ( errno != EEXIST ) {
  299. + return -1;
  300. + }
  301. +
  302. + }
  303. +
  304. + __set_errno(EEXIST);
  305. + return -1;
  306. +}
  307. +
  308. +static char *mkdtemp(char *templat)
  309. +{
  310. + if (gen_tempname (templat))
  311. + return NULL;
  312. + else
  313. + return templat;
  314. +}
  315. +
  316. +static void unsetenv(char *varname)
  317. +{
  318. + char *tempstr = (char *)malloc(strlen(varname) + 2);
  319. + if ( tempstr == (char *)NULL ) {
  320. + return;
  321. + }
  322. + sprintf(tempstr, "%s=", varname);
  323. + tempstr[strlen(varname) + 1] = '\0';
  324. + putenv(tempstr);
  325. + free(tempstr);
  326. +}
  327. +#endif /* OPENPKG_SOLARIS */
  328. char *getFileSigner(const char *file, const char *sigfile,
  329. const char *outfile, string &signerKeyID)
  330. Index: methods/http.cc
  331. --- methods/http.cc.orig 2003-12-23 21:24:14.000000000 +0100
  332. +++ methods/http.cc 2004-01-24 20:20:12.000000000 +0100
  333. @@ -680,7 +680,7 @@
  334. // CNC:2003-01-29
  335. string UserAgent = _config->Find("Acquire::http::User-Agent");
  336. if (UserAgent.empty() == true)
  337. - UserAgent = "RPM APT-HTTP/1.3";
  338. + UserAgent = "OpenPKG RPM APT-HTTP/1.3";
  339. Req += string("User-Agent: ") + UserAgent + "\r\n\r\n";
  340. if (Debug == true)
  341. Index: test/scratch.cc
  342. --- test/scratch.cc.orig 2003-12-23 21:13:20.000000000 +0100
  343. +++ test/scratch.cc 2004-01-24 20:20:12.000000000 +0100
  344. @@ -51,7 +51,7 @@
  345. /* Db.GetFLCache().BeginDiverLoad();
  346. pkgFLCache::PkgIterator Pkg(Db.GetFLCache(),0);
  347. - if (Db.GetFLCache().AddDiversion(Pkg,"/usr/include/linux/kerneld.h","/usr/bin/nslookup") == false)
  348. + if (Db.GetFLCache().AddDiversion(Pkg,"/usr/include/linux/kerneld.h","@l_prefix@/bin/nslookup") == false)
  349. cerr << "Error!" << endl;
  350. const char *Tmp = "/usr/include/linux/kerneld.h";
  351. Index: tools/cached_md5.cc
  352. --- tools/cached_md5.cc.orig 2003-12-23 21:16:37.000000000 +0100
  353. +++ tools/cached_md5.cc 2004-01-24 20:20:12.000000000 +0100
  354. @@ -1,11 +1,11 @@
  355. /*
  356. * $Id: cached_md5.cc,v 1.4 2003/01/29 13:47:31 niemeyer Exp $
  357. */
  358. -#include <alloca.h>
  359. #include <ctype.h>
  360. #include <dirent.h>
  361. #include <errno.h>
  362. #include <fcntl.h>
  363. +#include <rpm/glob.h>
  364. #include <rpm/rpmlib.h>
  365. #include <stdlib.h>
  366. #include <string.h>
  367. Index: tools/genbasedir
  368. --- tools/genbasedir.orig 2003-12-23 21:16:47.000000000 +0100
  369. +++ tools/genbasedir 2004-01-24 20:20:12.000000000 +0100
  370. @@ -43,7 +43,7 @@
  371. phashstuff()
  372. {
  373. size=`getsize $1`
  374. - md5=`md5sum $1|cut -f1 -d\ `
  375. + md5=`openssl md5 <$1`
  376. echo " $md5 $size $2"
  377. }
  378. @@ -171,7 +171,7 @@
  379. rm -f $comps; touch $comps
  380. for dir in $topdir/RPMS.* $topdir/SRPMS.* $topdir/../SRPMS.*; do
  381. if [ -d $dir ]; then
  382. - echo $dir | sed 's/.*\.//' >> $comps
  383. + echo $dir | sed 's/.*RPMS\.//' >> $comps
  384. fi
  385. done
  386. components=`cat $comps|sort|uniq`
  387. @@ -226,9 +226,9 @@
  388. fi
  389. if test x$updateinfo = x; then
  390. - (cd $basedir; genpkglist $progress $bloat $meta_opts --index $srcidxdir/srcidx.$comp $topdir $comp)
  391. + (cd $basedir; @l_prefix@/bin/genpkglist $progress $bloat $meta_opts --index $srcidxdir/srcidx.$comp $topdir $comp)
  392. else
  393. - (cd $basedir; genpkglist $progress $bloat $meta_opts --index $srcidxdir/srcidx.$comp --info $updateinfo $topdir $comp)
  394. + (cd $basedir; @l_prefix@/bin/genpkglist $progress $bloat $meta_opts --index $srcidxdir/srcidx.$comp --info $updateinfo $topdir $comp)
  395. fi
  396. if [ -z "$meta" -a -f $basedir/pkglist.$comp ]; then
  397. @@ -318,9 +318,9 @@
  398. fi
  399. if [ $mapi -ne 0 ]; then
  400. - (cd $basedir; gensrclist $progress $flat $meta_opts --mapi $srctopdir $comp $srcidxdir/srcidx.$comp)
  401. + (cd $basedir; @l_prefix@/bin/gensrclist $progress $flat $meta_opts --mapi $srctopdir $comp $srcidxdir/srcidx.$comp)
  402. else
  403. - (cd $basedir; gensrclist $progress $flat $meta_opts $srctopdir $comp $srcidxdir/srcidx)
  404. + (cd $basedir; @l_prefix@/bin/gensrclist $progress $flat $meta_opts $srctopdir $comp $srcidxdir/srcidx)
  405. fi
  406. if [ -z "$meta" -a -f $basedir/srclist.$comp ]; then
  407. @@ -424,14 +424,14 @@
  408. if [ $partial -eq 0 ]; then
  409. echo -n "Updating global release file... "
  410. sed -n -e "/^MD5Sum:/q" \
  411. - -e "s/^Date:.*\$/Date: `date -R`/" \
  412. + -e "s/^Date:.*\$/Date: `date '+%a, %d %b %Y %H:%M:%S %z' | sed -e 's/%z/+0000/'`/" \
  413. -e "s/^Components:.*\$/Components: $components/" \
  414. -e "p" $release.old > $release
  415. echo "MD5Sum:" >> $release
  416. else
  417. echo -n "Partially updating global release file... "
  418. sed -n -e "/^\$/q" \
  419. - -e "s/^Date:.*\$/Date: `date -R`/" \
  420. + -e "s/^Date:.*\$/Date: `date '+%a, %d %b %Y %H:%M:%S %z' | sed -e 's/%z/+0000/'`/" \
  421. -e "p" $release.old > $release.pre
  422. for comp in $components; do
  423. sed -e "\#^ .* $pkglist_.$comp\(.bz2\)\?\$#d" \
  424. @@ -452,7 +452,7 @@
  425. echo "Label: Unknown" >> $release
  426. echo "Suite: Unknown" >> $release
  427. echo "Codename: Unknown" >> $release
  428. - echo "Date: `date -R`" >> $release
  429. + echo "Date: `date '+%a, %d %b %Y %H:%M:%S %z' | sed -e 's/%z/+0000/'`" >> $release
  430. echo "Architectures: Unknown" >> $release
  431. echo "Components: $components" >> $release
  432. echo "Description: Not available" >> $release
  433. @@ -591,6 +591,4 @@
  434. rm -f $basedir/hashfile.gpg.old
  435. fi
  436. -echo "All your base are belong to us!!!"
  437. -
  438. # vim:ts=4:sw=4
  439. Index: tools/genpkglist.cc
  440. --- tools/genpkglist.cc.orig 2003-12-23 21:16:54.000000000 +0100
  441. +++ tools/genpkglist.cc 2004-01-24 20:20:12.000000000 +0100
  442. @@ -1,11 +1,11 @@
  443. /*
  444. * $Id: genpkglist.cc,v 1.7 2003/01/30 17:18:21 niemeyer Exp $
  445. */
  446. -#include <alloca.h>
  447. #include <ctype.h>
  448. #include <dirent.h>
  449. #include <errno.h>
  450. #include <fcntl.h>
  451. +#include <rpm/glob.h>
  452. #include <rpm/rpmlib.h>
  453. #include <stdlib.h>
  454. #include <string.h>
  455. @@ -369,7 +369,7 @@
  456. }
  457. int scandir(const char * dir, struct dirent *** namelist,
  458. - int (* select)(struct dirent *),
  459. + int (* select)(const struct dirent *),
  460. int (* cmp)(const void *, const void *))
  461. {
  462. Index: tools/gensrclist.cc
  463. --- tools/gensrclist.cc.orig 2003-12-23 21:16:39.000000000 +0100
  464. +++ tools/gensrclist.cc 2004-01-24 20:20:12.000000000 +0100
  465. @@ -1,11 +1,11 @@
  466. /*
  467. * $Id: gensrclist.cc,v 1.8 2003/01/30 17:18:21 niemeyer Exp $
  468. */
  469. -#include <alloca.h>
  470. #include <ctype.h>
  471. #include <dirent.h>
  472. #include <errno.h>
  473. #include <fcntl.h>
  474. +#include <rpm/glob.h>
  475. #include <rpm/rpmlib.h>
  476. #include <stdlib.h>
  477. #include <string.h>
  478. @@ -134,6 +134,89 @@
  479. }
  480. #endif
  481. +#ifndef HAVE_SCANDIR
  482. +// from glibc 1.09.1 mod'd by jmik, ins'd by asm, fix'd by sbi
  483. +int alphasort(const void * a, const void * b)
  484. +{
  485. + return strcmp ((*(struct dirent **) a)->d_name,
  486. + (*(struct dirent **) b)->d_name);
  487. +}
  488. +
  489. +int scandir(const char * dir, struct dirent *** namelist,
  490. + int (* select)(const struct dirent *),
  491. + int (* cmp)(const void *, const void *))
  492. +
  493. +{
  494. + DIR *dp = opendir (dir);
  495. + struct dirent **v = NULL;
  496. + size_t vsize = 0, i;
  497. + struct dirent *d;
  498. + int save;
  499. +
  500. + if (dp == NULL)
  501. + return -1;
  502. +
  503. + save = errno;
  504. + errno = 0;
  505. +
  506. + i = 0;
  507. + while ((d = readdir (dp)) != NULL)
  508. + {
  509. + if (select == NULL || (*select) (d))
  510. + {
  511. + if (i == vsize)
  512. + {
  513. + struct dirent **newv;
  514. + if (vsize == 0)
  515. + vsize = 10;
  516. + else
  517. + vsize *= 2;
  518. + newv = (struct dirent **) realloc (v, vsize * sizeof (*v));
  519. + if (newv == NULL)
  520. + {
  521. + lose:
  522. + errno = ENOMEM;
  523. + break;
  524. + }
  525. + v = newv;
  526. + }
  527. +
  528. + v[i] = (struct dirent *) malloc (d->d_reclen);
  529. + if (v[i] == NULL)
  530. + goto lose;
  531. +
  532. + // *v[i++] = *d;
  533. + memcpy(v[i], d, d->d_reclen);
  534. + i++;
  535. + }
  536. + }
  537. +
  538. + v[i] = NULL;
  539. +
  540. + if (errno != 0)
  541. + {
  542. + save = errno;
  543. + (void) closedir (dp);
  544. + while (i > 0)
  545. + free (v[--i]);
  546. + free (v);
  547. + errno = save;
  548. + return -1;
  549. + }
  550. +
  551. + (void) closedir (dp);
  552. + errno = save;
  553. +
  554. + /* Sort the list if we have a comparison function to sort with. */
  555. + if (cmp != NULL)
  556. + qsort (v, i, sizeof (struct dirent *), cmp);
  557. +
  558. + *namelist = v;
  559. + return i;
  560. +}
  561. +// end of new stuff from glibc
  562. +#endif
  563. +
  564. int main(int argc, char ** argv)
  565. {
  566. char buf[300];