Opened 18 years ago

Last modified 18 years ago

#681 closed bug

[build system] garbage in Long Description attribute — at Version 2

Reported by: diver Owned by: bonefish
Priority: normal Milestone: R1
Component: Build System Version:
Keywords: Cc: axeld
Blocked By: Blocking:
Platform: All

Description (last modified by bonefish)

Many apps in /bin folder, garbage in Long Description attribute. See for example "alert" or "screen_blanker". This only happens if compiled from BeOS. If compiled from linux everything ok.

Change History (2)

comment:1 by diver, 18 years ago

Cc: axeld added
Platform: All

I just tested whole distro and found only 5 files with garbage:

libtracker.so hey makebootable mimeset screen_blanker

comment:2 by bonefish, 18 years ago

Description: modified (diff)

An executable/library can have an application and a system version info. Both are stored together in the same attribute and/or resource (BEOS:APP_VERSION). Thus, if present at all both have to be present. The BAppFileInfo API (and using it the setversion program), however, allows to set them individually. When the attribute and resource are not yet present, BAppFileInfo is supposed to clear the respectively other version info if only one version info is set.

This happens a lot when building a Haiku image, since the build system uses setversion to set the system version info for each generated executable/library, and most of them don't have resource file defining an application version info. In fact most of them don't have a resource file at all. What makes the mentioned files special is that they *do* have a resource file, but this resource file uncommonly doesn't define an application version info. My guess is, that this constellation (existing resources, but no version info) triggers a BAppFileInfo bug that causes garbage in the application version info.

For the R5 build the setversion build tool uses R5's libbe, while under Linux, a stripped down Haiku libbe is used. R5's setversion suffers from the same problem, BTW.

I suppose, we could modify our setversion to check whether a version info was present and if not also write a zero'd out other version info, if only one version info is given.

... or we ignore the problem and build under Linux. :-P

Note: See TracTickets for help on using tickets.