Re: Manifest not working
My manifest has 500 entries of full paths about 45 characters each.. the problem was as I said.. it got the ENOENT and skipped the manifest loading. I removed that check and now it works. I just haven't been able to track down where the ENOENT is set. Attached is the workaround patch I'm currently using... --Mark Michael Schroeder wrote: On Tue, Jul 03, 2007 at 04:04:22PM -0500, Mark Hatle wrote: The manifest files don't seem to be working for me. But I can't debug rpm due to it being stripped. A manifest file needs to be at least 96 bytes long (the size of the rpm lead). Maybe yours is too short? Cheers, Michael. When working with a manifest, somehow errno is set to ENOENT. Disable the optimization, and always look for a manifest file. Index: rpm5-20070703/lib/rpmgi.c === --- rpm5-20070703.orig/lib/rpmgi.c 2007-05-25 12:36:02.0 -0500 +++ rpm5-20070703/lib/rpmgi.c 2007-07-03 16:33:55.0 -0500 @@ -204,8 +204,10 @@ if (rpmrc == RPMRC_OK || gi-flags RPMGI_NOMANIFEST) break; +#if 0 if (errno == ENOENT) break; +#endif /* Not a header, so try for a manifest. */ gi-argv[gi-i] = NULL; /* Mark the insertion point */
Re: Manifest not working
On Jul 3, 2007, at 5:39 PM, Mark Hatle wrote: Ok, I found the problem, but I don't know how to fix it.. The code in lib/rpmgi.c if (!(gi-flags RPMGI_NOHEADER)) { h = rpmgiReadHeader(gi, fn); if (h != NULL) rpmrc = RPMRC_OK; } else rpmrc = RPMRC_OK; if (rpmrc == RPMRC_OK || gi-flags RPMGI_NOMANIFEST) break; if (errno == ENOENT) break; errno is set to ENOENT when working on a manifest. Could this be a signature check failed? Thats the only place I can see that we are manually setting errno=ENOENT. For the time being I have #if 0 ... #endif removed the errno == ENOENT comparison, and now manifests are working for me. Any idea what the correct fix is here? Adding #if 0 is fine for the moment. The ENOENT eliminates a duplicate error message. Removing the other error message instead of this error message is likely the fix. 73 de Jeff __ RPM Package Managerhttp://rpm5.org Developer Communication Listrpm-devel@rpm5.org
Re: Manifest not working
On Jul 4, 2007, at 3:56 AM, Michael Schroeder wrote: On Tue, Jul 03, 2007 at 04:04:22PM -0500, Mark Hatle wrote: The manifest files don't seem to be working for me. But I can't debug rpm due to it being stripped. A manifest file needs to be at least 96 bytes long (the size of the rpm lead). Maybe yours is too short? Not true: [EMAIL PROTECTED] rpm44]$ cat q time-1.7-27.i386.rpm [EMAIL PROTECTED] rpm44]$ sudo rpm -Uvh q Preparing... ### [100%] 1:time ### [100%] 73 de Jeff __ RPM Package Managerhttp://rpm5.org Developer Communication Listrpm-devel@rpm5.org
Re: Manifest not working
On Wed, Jul 04, 2007 at 06:27:02AM -0400, Jeff Johnson wrote: On Jul 4, 2007, at 3:56 AM, Michael Schroeder wrote: A manifest file needs to be at least 96 bytes long (the size of the rpm lead). Maybe yours is too short? Not true: [EMAIL PROTECTED] rpm44]$ cat q time-1.7-27.i386.rpm [EMAIL PROTECTED] rpm44]$ sudo rpm -Uvh q Preparing... ### [100%] 1:time ### [100%] Ah, so this bug is already fixed. Good to hear, sorry for the noise... Cheers, Michael. -- Michael Schroeder [EMAIL PROTECTED] SUSE LINUX Products GmbH, GF Markus Rex, HRB 16746 AG Nuernberg main(_){while(_=~getchar())putchar(~_-1/(~(_|32)/13*2-11)*13);} __ RPM Package Managerhttp://rpm5.org Developer Communication Listrpm-devel@rpm5.org
Re: Berkley DB errors w/ HEAD
Jeff Johnson wrote: On Jul 4, 2007, at 3:54 AM, Mark Hatle wrote: I am getting the following error after using rpm to install source packages: Is the srpm signed? Add --nosignature to not access a rpmdb installing a src.rpm. Alternatively, try importing the pubkey. The above fixes nothing of course, but may permit you to get farther along. Installing a srpm ain't the place to debug rpmdb problems, as an rpmdb is hardly needed for installing srpm's. Bingo you figured out what was happening. The SRPM was signed. I'll add in the --nosignature when this build is over.. At least I should get points for the most unique use case in finding a bug in the rpmdb. Installing a signed source package w/ an empty database. :P --Mark __ RPM Package Managerhttp://rpm5.org Developer Communication Listrpm-devel@rpm5.org
Re: [CVS] RPM: rpm/lib/ rpmgi.c
Actually I think this patch is unneeded. I do believe Mark has a typo in his manifest that he needs to correct before we starting mucking about with rpmgi behavior. 73 de Jeff On Jul 4, 2007, at 12:16 PM, Ralf S. Engelschall wrote: RPM Package Manager, CVS Repository http://rpm5.org/cvs/ __ __ Server: rpm5.org Name: Ralf S. Engelschall Root: /v/rpm/cvs Email: [EMAIL PROTECTED] Module: rpm Date: 04-Jul-2007 18:16:50 Branch: HEAD Handle: 2007070417165000 Modified files: rpm/lib rpmgi.c Log: apply the temporary fix for the manifest problems Summary: RevisionChanges Path 2.25+3 -0 rpm/lib/rpmgi.c __ __ patch -p0 '@@ .' Index: rpm/lib/rpmgi.c == == $ cvs diff -u -r2.24 -r2.25 rpmgi.c --- rpm/lib/rpmgi.c 25 May 2007 17:36:02 - 2.24 +++ rpm/lib/rpmgi.c 4 Jul 2007 16:16:50 - 2.25 @@ -204,8 +204,11 @@ if (rpmrc == RPMRC_OK || gi-flags RPMGI_NOMANIFEST) break; +#if 0 + /* FIXME (see http://rpm5.org/community/rpm-devel/0523.html) */ if (errno == ENOENT) break; +#endif /* Not a header, so try for a manifest. */ gi-argv[gi-i] = NULL; /* Mark the insertion point */ @@ . __ RPM Package Managerhttp://rpm5.org CVS Sources Repository[EMAIL PROTECTED] __ RPM Package Managerhttp://rpm5.org Developer Communication Listrpm-devel@rpm5.org
Re: [CVS] RPM: rpm/lib/ rpmgi.c
Mark Hatle wrote: Jeff Johnson wrote: Actually I think this patch is unneeded. I do believe Mark has a typo in his manifest that he needs to correct before we starting mucking about with rpmgi behavior. Wait.. the system (due to the ENOENT) never got to the point of loading the manifest.. so a typo there can't be the problem. The ENOENT showed up earlier when it was trying to load the manifest file as a package. Something in there causes ENOENT to kick off. I just haven't had the time to try to track this down. (gdb can't trace errno anymore AFAIK.. which makes this even more difficult to diagnose.) --Mark If having a typo in the manifest (on a query) causes a failure, this is new behavior. The commands I am executing are the same as my old rpm 4.4.2. It worked in rpm 4.4.2. --Mark 73 de Jeff On Jul 4, 2007, at 12:16 PM, Ralf S. Engelschall wrote: RPM Package Manager, CVS Repository http://rpm5.org/cvs/ Server: rpm5.org Name: Ralf S. Engelschall Root: /v/rpm/cvs Email: [EMAIL PROTECTED] Module: rpm Date: 04-Jul-2007 18:16:50 Branch: HEAD Handle: 2007070417165000 Modified files: rpm/lib rpmgi.c Log: apply the temporary fix for the manifest problems Summary: RevisionChanges Path 2.25+3 -0 rpm/lib/rpmgi.c patch -p0 '@@ .' Index: rpm/lib/rpmgi.c $ cvs diff -u -r2.24 -r2.25 rpmgi.c --- rpm/lib/rpmgi.c25 May 2007 17:36:02 -2.24 +++ rpm/lib/rpmgi.c4 Jul 2007 16:16:50 -2.25 @@ -204,8 +204,11 @@ if (rpmrc == RPMRC_OK || gi-flags RPMGI_NOMANIFEST) break; +#if 0 +/* FIXME (see http://rpm5.org/community/rpm-devel/0523.html) */ if (errno == ENOENT) break; +#endif /* Not a header, so try for a manifest. */ gi-argv[gi-i] = NULL;/* Mark the insertion point */ @@ . __ RPM Package Managerhttp://rpm5.org CVS Sources Repository[EMAIL PROTECTED] __ RPM Package Managerhttp://rpm5.org Developer Communication Listrpm-devel@rpm5.org __ RPM Package Managerhttp://rpm5.org Developer Communication Listrpm-devel@rpm5.org __ RPM Package Managerhttp://rpm5.org Developer Communication Listrpm-devel@rpm5.org
Re: [CVS] RPM: rpm/lib/ rpmgi.c
Jeff Johnson wrote: Actually I think this patch is unneeded. I do believe Mark has a typo in his manifest that he needs to correct before we starting mucking about with rpmgi behavior. If having a typo in the manifest (on a query) causes a failure, this is new behavior. The commands I am executing are the same as my old rpm 4.4.2. It worked in rpm 4.4.2. --Mark 73 de Jeff On Jul 4, 2007, at 12:16 PM, Ralf S. Engelschall wrote: RPM Package Manager, CVS Repository http://rpm5.org/cvs/ Server: rpm5.org Name: Ralf S. Engelschall Root: /v/rpm/cvs Email: [EMAIL PROTECTED] Module: rpm Date: 04-Jul-2007 18:16:50 Branch: HEAD Handle: 2007070417165000 Modified files: rpm/lib rpmgi.c Log: apply the temporary fix for the manifest problems Summary: RevisionChanges Path 2.25+3 -0 rpm/lib/rpmgi.c patch -p0 '@@ .' Index: rpm/lib/rpmgi.c $ cvs diff -u -r2.24 -r2.25 rpmgi.c --- rpm/lib/rpmgi.c25 May 2007 17:36:02 -2.24 +++ rpm/lib/rpmgi.c4 Jul 2007 16:16:50 -2.25 @@ -204,8 +204,11 @@ if (rpmrc == RPMRC_OK || gi-flags RPMGI_NOMANIFEST) break; +#if 0 +/* FIXME (see http://rpm5.org/community/rpm-devel/0523.html) */ if (errno == ENOENT) break; +#endif /* Not a header, so try for a manifest. */ gi-argv[gi-i] = NULL;/* Mark the insertion point */ @@ . __ RPM Package Managerhttp://rpm5.org CVS Sources Repository[EMAIL PROTECTED] __ RPM Package Managerhttp://rpm5.org Developer Communication Listrpm-devel@rpm5.org __ RPM Package Managerhttp://rpm5.org Developer Communication Listrpm-devel@rpm5.org
Re: [CVS] RPM: rpm/lib/ rpmgi.c
On Jul 4, 2007, at 12:28 PM, Mark Hatle wrote: Mark Hatle wrote: Jeff Johnson wrote: Actually I think this patch is unneeded. I do believe Mark has a typo in his manifest that he needs to correct before we starting mucking about with rpmgi behavior. Wait.. the system (due to the ENOENT) never got to the point of loading the manifest.. so a typo there can't be the problem. The ENOENT showed up earlier when it was trying to load the manifest file as a package. Something in there causes ENOENT to kick off. I just haven't had the time to try to track this down. (gdb can't trace errno anymore AFAIK.. which makes this even more difficult to diagnose.) ;-) Show me the reproducer and I'll give you the fix. 73 de Jeff __ RPM Package Managerhttp://rpm5.org Developer Communication Listrpm-devel@rpm5.org
Re: [CVS] RPM: rpm/lib/ rpmgi.c
Reproducer. Build rpm5 HEAD as of about 15 minutes ago... (remove the workaround for the ENOENT) rpm5/HEAD/rpm/configure --disable-nls --with-libelf --without-selinux --without-perl --without-python --with-zlib --with-bzip2 --with-beecrypt --without-neon --with-file=internal --with-popt --with-db=internal --with-lua=internal --without-apidocs thats my configure line.. have a big directory of packages somewhere.. find dir -type f manifest ./rpm -qp --qf %{NAME}\n manifest that will result in nothing.. if you trace w/ gdb you'll see it gets to the ENOENT check and drops out. --Mark Jeff Johnson wrote: On Jul 4, 2007, at 12:28 PM, Mark Hatle wrote: Mark Hatle wrote: Jeff Johnson wrote: Actually I think this patch is unneeded. I do believe Mark has a typo in his manifest that he needs to correct before we starting mucking about with rpmgi behavior. Wait.. the system (due to the ENOENT) never got to the point of loading the manifest.. so a typo there can't be the problem. The ENOENT showed up earlier when it was trying to load the manifest file as a package. Something in there causes ENOENT to kick off. I just haven't had the time to try to track this down. (gdb can't trace errno anymore AFAIK.. which makes this even more difficult to diagnose.) ;-) Show me the reproducer and I'll give you the fix. 73 de Jeff __ RPM Package Managerhttp://rpm5.org Developer Communication Listrpm-devel@rpm5.org __ RPM Package Managerhttp://rpm5.org Developer Communication Listrpm-devel@rpm5.org
Re: [CVS] RPM: rpm/lib/ rpmgi.c
On Jul 4, 2007, at 12:52 PM, Mark Hatle wrote: Reproducer. Build rpm5 HEAD as of about 15 minutes ago... (remove the workaround for the ENOENT) rpm5/HEAD/rpm/configure --disable-nls --with-libelf --without-selinux --without-perl --without-python --with-zlib --with-bzip2 --with- beecrypt --without-neon --with-file=internal --with-popt --with-db=internal --with-lua=internal --without-apidocs thats my configure line.. have a big directory of packages somewhere.. find dir -type f manifest ./rpm -qp --qf %{NAME}\n manifest that will result in nothing.. if you trace w/ gdb you'll see it gets to the ENOENT check and drops out. [EMAIL PROTECTED] wdj]$ rpm --version # -- w/o ENOENT hackery RPM version 5.0 [EMAIL PROTECTED] wdj]$ cd /var/ftp/pub/ppc-macports1.4/ [EMAIL PROTECTED] ppc-macports1.4]$ find . -type f /tmp/manifest [EMAIL PROTECTED] ppc-macports1.4]$ rpm -qp /tmp/manifest ... long list of package NVR deleted The pkgs used are online at http://wraptastic.org/pub/ppc-macports1.4 73 de Jeff __ RPM Package Managerhttp://rpm5.org Developer Communication Listrpm-devel@rpm5.org
Re: [CVS] RPM: rpm/lib/ rpmgi.c
The only thing I can think of is it's either configuration or OS dependent. I'm running FC7 currently. --Mark Jeff Johnson wrote: On Jul 4, 2007, at 12:52 PM, Mark Hatle wrote: Reproducer. Build rpm5 HEAD as of about 15 minutes ago... (remove the workaround for the ENOENT) rpm5/HEAD/rpm/configure --disable-nls --with-libelf --without-selinux --without-perl --without-python --with-zlib --with-bzip2 --with-beecrypt --without-neon --with-file=internal --with-popt --with-db=internal --with-lua=internal --without-apidocs thats my configure line.. have a big directory of packages somewhere.. find dir -type f manifest ./rpm -qp --qf %{NAME}\n manifest that will result in nothing.. if you trace w/ gdb you'll see it gets to the ENOENT check and drops out. [EMAIL PROTECTED] wdj]$ rpm --version# -- w/o ENOENT hackery RPM version 5.0 [EMAIL PROTECTED] wdj]$ cd /var/ftp/pub/ppc-macports1.4/ [EMAIL PROTECTED] ppc-macports1.4]$ find . -type f /tmp/manifest [EMAIL PROTECTED] ppc-macports1.4]$ rpm -qp /tmp/manifest ... long list of package NVR deleted The pkgs used are online at http://wraptastic.org/pub/ppc-macports1.4 73 de Jeff __ RPM Package Managerhttp://rpm5.org Developer Communication Listrpm-devel@rpm5.org __ RPM Package Managerhttp://rpm5.org Developer Communication Listrpm-devel@rpm5.org