#118 closed defect (fixed)
rpm-build: Strange failure
Reported by: | dmik | Owned by: | |
---|---|---|---|
Priority: | critical | Milestone: | |
Component: | rpm | Version: | |
Severity: | low | Keywords: | |
Cc: |
Description
I can't name it differently. I can only describe what happens. This applies to rpm-build.i386
, version 4.8.1-22.oc00
. The detailed description follows in the subsequent comments.
Attachments (1)
Change History (12)
comment:1 by , 10 years ago
comment:2 by , 10 years ago
Note that the failed lines
error: File not found: D:/Users/ /D:/Users/dmik/rpmbuild/BUILDROOT/help2man-1.46.4-2.oc00.i386/@unixroot/usr/bin/help2man
and alike actually look like on the screenshot attached below. I.e. there is a symbol with code 0x0B
between the first D:/Users
occurrence and the second one. Looks like some unexpected expansion/truncation/whatever.
by , 10 years ago
Attachment: | Снимок экрана 2015-02-13 в 21.18.09.png added |
---|
comment:3 by , 10 years ago
Priority: | major → critical |
---|
comment:5 by , 9 years ago
Severity: | → low |
---|
I see exactly the same issue with http://trac.netlabs.org/rpm/browser/spec/trunk/SPECS/cups.spec?rev=689
Right now I have no idea how to overcome this.
comment:6 by , 9 years ago
I tried the cups spec with rpm 4.13 and it worked. So either the bug is fixed with 4.13 or i'm lucky.
comment:7 by , 8 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
I mark this as fixed, as I didn't face it with rpm 4.13 anymore. If it's still around we might open it again.
comment:8 by , 8 years ago
This is not fixed in fact. I got that when building the latest perl.spec with a lot of changes. The message is slightly different but the symptoms are absolutely the same. After hardly debugging it, it turns out that there is a bug in the OS/2 hack by Yuri in rpmCleanPath
in source:/rpm/trunk/rpmio/rpmfileutil.c related to removal of the leading root (unixroot) dir when it's concatenated with an absolute path with a drive letter. Basically, the rpmCleanPath
function with the OS/2 hack involved may return not the same pointer as it was given and this breaks the function's documentation and some code under some circumstances. I will fix it.
comment:9 by , 8 years ago
Resolution: | fixed |
---|---|
Status: | closed → reopened |
comment:10 by , 8 years ago
Resolution: | → fixed |
---|---|
Status: | reopened → closed |
This is fixed by r1073. Note that the code is still not perfect (see comments) but that's a general RPM issue. They have very low quality code that deals with things like path concatenation and such. It relies on many assumptions that are not always true on Unix needless to say about OS/2.
comment:11 by , 8 years ago
JFYI, r1074 fixes one particular use case where D:/mydir
is concatenated with D:/mydir2
.
Let's take this .spec file: source:/spec/trunk/SPECS/help2man.spec@539. If you remove lines 82-84 containing this garbage:
and attempt to build this RPM with
rpm-build -bb help2man.spec
, the build process will fail giving you this:However, if you add these garbage lines back, the failure gets magically fixed and you get a normal log like this:
These garbage lines is what I had to add as a very stupid workaround to fix the build. It seems that somehow
rpmbuild
reacts to the length of the .spec file or to some details of its contents when performs theProcessing files:
phase. Someone with good knowledge of RPM internals should debug this.