hi all,
perhaps it helps if the message will say: "I see no GZIP file"
something like that.
obviously the current message points users in to wrong direction.

my 2 cent,
wh


Nikolay Yevik wrote:
> This problem has been resolved.
> 
> The problem stemmed from the version of "rpmbuild" utility I used on
> Open SUSE using bzip2 to compress the files into the final binary .rpm.
> BusyBox currently understands only gzip format.
> 
> 
>  
> 
> -----Original Message-----
> From: Nikolay Yevik 
> Sent: Wednesday, June 06, 2007 2:32 PM
> To: 'Denis Vlasenko'
> Cc: [email protected]
> Subject: RE: "Invalid gzip magic" error
> 
> Greetings,
> 
> You tried to install the .src rpm.
> This explains the difference as far as error message is concerned.
> Source rpms  are usually unpackaged into your %_topdir/SOURCES (for
> source archive - tar.gz in this case) and %_topdir/SPECS (for .spec
> file).
> The tar.gz (or whatever the archive format) is not being unpacked.
> 
> In my case it was done on SUSE for 0x86 using standard for most Linux
> distributions /usr/src/packages[RPM] top directory where RPM development
> is usually done.
> 
> Hence the error - it tried to chdir to /usr/..., which is probably
> mounted on RO FS (like cramfs for example).
> 
> 
> Try to install the actual binary rpm and see if you can reproduce.
> 
> For the first two bytes I am getting 0x42 and 0x5A instead of 0x1F and
> 0x8B. The .tar.gz archive when extracted from .src rpm does have the
> first two bytes as 0x1F8B.
> 
>       
> 
> 
> 
> 
> -----Original Message-----
> From: Denis Vlasenko [mailto:[EMAIL PROTECTED] 
> Sent: Tuesday, June 05, 2007 7:04 PM
> To: Nikolay Yevik
> Cc: [email protected]
> Subject: Re: "Invalid gzip magic" error
> 
> On Tuesday 05 June 2007 23:43, Nikolay Yevik wrote:
>> --> No, this problem is not ARM9 specific. I am getting exactly the
> same
>> error with BusyBox on 0x86 with or without the same config, actually
> any
>> config (for example - make defconfig) with BusyBox 1.6.0 (also tried
>> 1.0.0 rc 3 and 1.2.2.1). Moreover, standard (non-BusyBox) Linux RPM
>> utility has no problems installing this .rpm when rpmbuild for 0x86
>> (tried RPM 4.4.2 on OpenSUSE 10.2)
>>
>> "Can you put the RPM you are trying to install somewhere on the net,
>> and show *exact* command you use to install it and the resulting error
>> message?"
>> --> Correct me if I am wrong, but the only way you can install an rpm
>> using BusyBox version is to issue:
>> "rpm -i package.rpm".
> 
> Believe or not, but I never used rpm. Never ever.
> That's why I was asking.
> 
>> I placed simplified source and binary .rpms illustrating the problem
> at:
>> http://www.4shared.com/dir/2891777/617a932/sharing.html
>>  
>>> I am getting "Invalid gzip magic" error from busybox rpm utility on
>> ARM9.
>>
>> "Don't describe errors, cut-n-paste from the screen instead. This way
>> it's crearer what happens."
>>
>> --> Thank you for your advice, but this is it. This is the error,-
>> "rpm: invalid gzip magic" (or "rpm: Invalig gzip magic" depending on
> the
>> busybox version. There is nothing else.
> 
> This is what happens on my system:
> 
> # strace -o strace.log -f ./busybox rpm -i mil1553-0.0-1.src.rpm
> rpm: can't open 'mil1553-0.0.spec': Read-only file system
> 
> Well, it obviously tries to create something in my root fs, which
> is mounted RO specially for such cases. Is it supposed to do that?
> 
> In strace.log I see:
> 
> 4526  execve("./busybox", ["./busybox", "rpm", "-i",
> "mil1553-0.0-1.src.rpm"], [/* 32 vars */]) = 0
> ...
> 4526  chdir("/")                        = 0
> ...
> 4526  open("mil1553-0.0.spec", O_WRONLY|O_CREAT|O_EXCL|O_LARGEFILE,
> 0100644) = -1 EROFS (Read-only file system)
> 4526  write(2, "rpm: ", 5)              = 5
> 4526  write(2, "can\'t open \'mil1553-0.0.spec\'", 29) = 29
> 4526  write(2, ": Read-only file system\n", 24) = 24
> 
> 
> Yes, it still doesn't work, but the point is, it does not report
> "invalid gzip magic". Look here:
> 
> 
> static void extract_cpio_gz(int fd)
> {
>         archive_handle_t *archive_handle;
>         unsigned char magic[2];
> 
>         /* Initialise */
>         archive_handle = init_handle();
>         archive_handle->seek = seek_by_read;
>         //archive_handle->action_header = header_list;
>         archive_handle->action_data = data_extract_all;
>         archive_handle->flags |= ARCHIVE_PRESERVE_DATE;
>         archive_handle->flags |= ARCHIVE_CREATE_LEADING_DIRS;
>         archive_handle->src_fd = fd;
>         archive_handle->offset = 0;
> 
>         xread(archive_handle->src_fd, &magic, 2);
>         if ((magic[0] != 0x1f) || (magic[1] != 0x8b)) {
>                 bb_error_msg_and_die("invalid gzip magic"); <========
> you die here
>         }
>         check_header_gzip_or_die(archive_handle->src_fd);
>         xchdir("/"); /* Install RPM's to root */        <======== on my
> system I reach this chdir("/")
> 
>         archive_handle->src_fd =
> open_transformer(archive_handle->src_fd, inflate_gunzip);
>         archive_handle->offset = 0;
>         while (get_header_cpio(archive_handle) == EXIT_SUCCESS)
>                 /* loop */;
> }
> 
> Can you verify this by adding a debug message?
> 
>         if ((magic[0] != 0x1f) || (magic[1] != 0x8b)) {
>                 bb_error_msg_and_die("invalid gzip magic HERE: %x %x",
> magic[0], magic[1]);
>         }
> 
> If it does, you can capture strace too and compare with mine
> (I am attaching strace.log) - "how the hell these two bytes ended up
> different?"
> --
> vda
> _______________________________________________
> busybox mailing list
> [email protected]
> http://busybox.net/cgi-bin/mailman/listinfo/busybox
> 
> 
> 
_______________________________________________
busybox mailing list
[email protected]
http://busybox.net/cgi-bin/mailman/listinfo/busybox

Reply via email to