Bug 51925

Summary: will not build from src rpm
Product: [Retired] Red Hat Linux Reporter: Chris Ricker <chris.ricker>
Component: kdebaseAssignee: Bernhard Rosenkraenzer <bero>
Status: CLOSED RAWHIDE QA Contact: Ben Levenson <benl>
Severity: high Docs Contact:
Priority: high    
Version: 7.3   
Target Milestone: ---   
Target Release: ---   
Hardware: i386   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2001-08-22 19:09:45 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
file list after failed build none

Description Chris Ricker 2001-08-16 22:35:10 UTC
2.2-3 will not build because of duplicate file names in the target list. 
Removing duplicate names fixes the problem

Comment 1 Glen Foster 2001-08-17 19:16:23 UTC
This defect is considered SHOULD-FIX for Fairfax.

Comment 2 Bernhard Rosenkraenzer 2001-08-18 11:29:11 UTC
Works here (and obviously in the build system).
Maybe your grep is broken?


Comment 3 Chris Ricker 2001-08-18 17:56:15 UTC
I was trying to build it on a standard 7.1 system.  The problem I had with the
spec file was the line which did something like (sorry, don't have access to the
file right now, so I'm making up the wording):

cat $file.list | grep -v foo | grep -v bar | grep -v baz > $file.list.tmp
several of the foo, bar, and baz were written as foo$, bar$, baz$, and the "$"
on the end prevented grep from matching it and excluding it from the list, so
consequently they wound up being specified twice.

Removing the $ from the file names made things work.

Comment 4 Bernhard Rosenkraenzer 2001-08-20 10:17:13 UTC
This would actually indicate either your find or your grep is broken - $ is 
the end-of-line marker, and removing it WILL break things. (e.g. if konsole is 
removed, it will also remove konsole_grantpty)

does

echo "blah" |grep 'blah$'

work on your system?


Comment 5 Chris Ricker 2001-08-20 13:53:05 UTC
I was trying to compile on a stock (+ all errata) RH 7.1 box.  Here's what I get
on there:

[guru@fuzz guru]$ echo "blah" | grep 'blah$'
blah
[guru@fuzz guru]$ 


Comment 6 Bernhard Rosenkraenzer 2001-08-21 10:14:28 UTC
Your grep seems to be ok then... I don't see why it's failing on the file list 
then (removing the $s is not an option - that would remove every file).
Please attach the file list the build process generated for you, both before 
and after the grep command was run on it. (I can't reproduce the problem, and 
the code looks correct as well).



Comment 7 Chris Ricker 2001-08-22 18:57:36 UTC
Created attachment 28996 [details]
file list after failed build

Comment 8 Chris Ricker 2001-08-22 19:09:40 UTC
I've attached the file.list.kdebase from 2.2-5 (failed build on RH 7.1 box).

The build fails with:

    File listed twice: /usr/bin/kcheckpass
    File listed twice: /usr/bin/kdesud
    File listed twice: /usr/bin/konsole_grantpty


It looks like the spec file does

%attr(4755,root,root) %{prefix}/bin/kcheckpass
%attr(2755,root,root) %{prefix}/bin/kdesud
%attr(0755,root,root) %{prefix}/bin/konsole_grantpty

after it includes the file list.  Since the file list already lists

%attr(-,root,root) "/usr/bin/konsole_grantpty"
%attr(-,root,root) "/usr/bin/kdesud"
%attr(-,root,root) "/usr/bin/kcheckpass"


Bad Things happen.  Adding

|grep -v 'kdesud' |grep -v 'konsole_grantpty' |grep -v 'kcheckpass'

to the grep exclusion in the spec should fix things.  I'll try that now to see.


Comment 9 Bernhard Rosenkraenzer 2001-08-23 15:19:53 UTC
Ah, found the problem. The find script adds quotes around filenames, therefore 
it's actually "kcheckpass" rather than kcheckpass, so $ can't work on them.

Worked here because rpm 4.0.3 handles the situation correctly.
Fixed in 2.2-7