From Bugzilla Helper: User-Agent: Mozilla/4.77 [fr] (X11; U; Linux 2.4.9-31 i686) Description of problem: I tried to build a package for an enterprise software, and it appears that some requirements were not found. In fact my tar.gz contains file with "strange" names : some names contains space caracters, and even space followed by a "->". when passed to /usr/lib/rpm/find-requires, this files are not passed well to file command. in second case ("* ->"), I can have an error. Version-Release number of selected component (if applicable): rpm-build-4.0.4-7x How reproducible: Always Steps to Reproduce: 1.create a shell script, name it "my_shell.sh", pass it to find-requires, it works 2. rename it as "my shell", pass it again, it will not work 3.rename it as "another -> shell", you will have the error : file: invalid option -- > Usage: file [-bciknvzL] [-f namefile] [-m magicfiles] file... Actual Results: I have only partial requirement in my rpm package Additional info:
find-requires was never written to accept the above naming pathologies. You can 0) (recommended) rename the files to something sane. 1) disable auto requires generation with AutoReqProv: no in the spec file, and add your Requires:/Provides: manually. 2) hack on find-requires to Do The Right Thing. If you choose 2), please send me a patch :-)
I think to a patch, but I add to modify rpm command . I don't have a look into rpm source code, but it as to pass files with quote delimiters to find-requires (for exemple : echo "my shell" | find-requires), so find-requires can treat args real names.