Re: Manifest not working

2007-07-04 Thread Mark Hatle
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

2007-07-04 Thread Jeff Johnson


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

2007-07-04 Thread Jeff Johnson


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

2007-07-04 Thread Michael Schroeder
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

2007-07-04 Thread Mark Hatle
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

2007-07-04 Thread Jeff Johnson

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

2007-07-04 Thread Mark Hatle
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

2007-07-04 Thread Mark Hatle
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

2007-07-04 Thread Jeff Johnson


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

2007-07-04 Thread Mark Hatle
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

2007-07-04 Thread Jeff Johnson


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

2007-07-04 Thread Mark Hatle
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