RPM Community Forums

Mailing List Message of <rpm-lsb>

Re: LSB (aka RPMv3) format question

From: Jeff Johnson <n3npq@mac.com>
Date: Wed 09 Jan 2008 - 13:15:00 CET
Message-Id: <08D1540C-F698-4545-B0D4-6C26DFC9C1DA@mac.com>

On Jan 9, 2008, at 3:07 AM, Alexander E. Patrakov wrote:

> 2008/1/8, Jeff Johnson <n3npq@mac.com>:
>> Error: checkRpmIdx() unexpected Index tag=1140 type=4 offset=d00  
>> count=21
>> Error: checkRpmIdx() unexpected Index tag=1141 type=4 offset=d84  
>> count=21
>> Error: checkRpmIdx() unexpected Index tag=1142 type=8 offset=e08  
>> count=7
>> Error: checkRpmIdx() unexpected Index tag=1143 type=4 offset=eec  
>> count=21
>> Error: checkRpmIdx() unexpected Index tag=1144 type=4 offset=f70  
>> count=21
>> Error: checkRpmIdx() unexpected Index tag=1145 type=4 offset=ff4  
>> count=1
>> Error: checkRpmIdx() unexpected Index tag=1147 type=8 offset=ff8  
>> count=21
>

Here are the tags in question:

     RPMTAG_FILECOLORS           = 1140, /* i[] */
     RPMTAG_FILECLASS            = 1141, /* i[] */
     RPMTAG_CLASSDICT            = 1142, /* s[] */
     RPMTAG_FILEDEPENDSX         = 1143, /* i[] */
     RPMTAG_FILEDEPENDSN         = 1144, /* i[] */
     RPMTAG_DEPENDSDICT          = 1145, /* i[] */

     RPMTAG_FILECONTEXTS         = 1147, /* s[] */

Adding this macro to build configuration should eliminate tags 1140-1145
     %_use_internal_dependency_generator 0

OTOH, the resulting package will not be "multilib' ready. The tags carry
information about elf32 <-> elf64 executables and libraries that
is used by rpmlib(). Forbidding the tags by "standard" fiat also
forbids what is currently implemented in rpmlib, the multilib  
implementation
might just as well not have been done in the first place.

RPMTAG_FILECONTEXTS is a per-file array of selinux file contexts.
Disabling including SElinux file contexts in the pkg during build can  
(iirc)
be done with another macro:
     #
     # Path to selinux file context patterns used to add
     # RPMTAG_FILECONTEXTS to packages when building.
     #
     # Undefined, missing or %{nil} will disable.
     %_build_file_context_path       %{nil}
That was (my) intent anway.

The mechansim to install file contexts from packaging was requested
when implemented, but file contexts from regex patterns, rather than
static content in *.rpm packages, is what is usually done.

> I found that another user had these errors even even when using the
> official LSB Sample Implementation to build his package:
>
> https://lists.linux-foundation.org/pipermail/printing-architecture/ 
> 2007/000867.html
>
> I.e., the bug is not specific to Debian, and Debian is not more buggy
> than the official LSB Sample Implementation in this aspect.
>

Identifying additional tags, and either disabling (as above) or  
permitting
(and changing the tools) is what needs deciding by LSB, and is basically
what is intended by documenting the RPMv4 format widely used these days
and handing back to LSB.

Thanks for the help.

73 de Jeff
Received on Wed Jan 9 13:15:36 2008
Driven by Jeff Johnson and the RPM project team.
Hosted by OpenPKG and Ralf S. Engelschall.
Powered by FreeBSD and OpenPKG.