Bugzilla – Bug 1087430
brp-compress gives errors when it finds gzip compressed files with special characters in man dir
Last modified: 2018-05-11 07:48:16 UTC
I am trying to build a package for openSUSE that is essentially a collection of the standard C++ reference in man format. The `make install` part of the build already installs the man files to the right %{_mandir} and gzips them. After the %install stage is done, brp-compress looks inside the man dir and here is what happens: =================================================================== [ 51s] + /usr/lib/rpm/brp-compress [ 52s] ls: cannot access './usr/share/man/man3/std::experimental::propagate_const::operatorelement_type*,.3': No such file or directory [ 52s] find: invalid argument `-inum' to `-inum' [ 52s] gzip: ./usr/share/man/man3/std::experimental::propagate_const::operatorelement_type*,.3: No such file or directory [ 57s] ls: cannot access './usr/share/man/man3/std::filesystem::recursive_directory_iterator::operator++,.3': No such file or directory [ 57s] find: invalid argument `-inum' to `-inum' [ 57s] gzip: ./usr/share/man/man3/std::filesystem::recursive_directory_iterator::operator++,.3: No such file or directory [ 59s] ls: cannot access './usr/share/man/man3/std::experimental::ostream_joiner::operator=.3': No such file or directory [ 59s] gzip: ./usr/share/man/man3/std::experimental::ostream_joiner::operator++.3.gz ./usr/share/man/man3/std::experimental::ostream_joiner::operator=.3: No such file or directory [ 59s] ln: failed to access './usr/share/man/man3/std::experimental::ostream_joiner::operator++.3.gz ./usr/share/man/man3/std::experimental::ostream_joiner::operator=.3.gz': No such file or directory [ 60s] ls: cannot access './usr/share/man/man3/std::back_insert_iterator::operator=.3': No such file or directory [ 60s] gzip: ./usr/share/man/man3/std::back_insert_iterator::operator++.3.gz ./usr/share/man/man3/std::back_insert_iterator::operator=.3: No such file or directory [ 60s] ln: failed to access './usr/share/man/man3/std::back_insert_iterator::operator++.3.gz ./usr/share/man/man3/std::back_insert_iterator::operator=.3.gz': No such file or directory [ 62s] ls: cannot access './usr/share/man/man3/std::raw_storage_iterator::operator=.3': No such file or directory [ 62s] gzip: ./usr/share/man/man3/std::raw_storage_iterator::operator++,operator++(int).3.gz ./usr/share/man/man3/std::raw_storage_iterator::operator=.3: No such file or directory [ 62s] ln: failed to access './usr/share/man/man3/std::raw_storage_iterator::operator++,operator++(int).3.gz ./usr/share/man/man3/std::raw_storage_iterator::operator=.3.gz': No such file or directory [ 64s] ls: cannot access './usr/share/man/man3/std::ostream_iterator::operator=.3': No such file or directory [ 64s] gzip: ./usr/share/man/man3/std::ostream_iterator::operator++.3.gz ./usr/share/man/man3/std::ostream_iterator::operator=.3: No such file or directory [ 64s] ln: failed to access './usr/share/man/man3/std::ostream_iterator::operator++.3.gz ./usr/share/man/man3/std::ostream_iterator::operator=.3.gz': No such file or directory [ 67s] ls: cannot access './usr/share/man/man3/std::ostreambuf_iterator::operator=.3': No such file or directory [ 67s] gzip: ./usr/share/man/man3/std::ostreambuf_iterator::operator++.3.gz ./usr/share/man/man3/std::ostreambuf_iterator::operator=.3: No such file or directory [ 67s] ln: failed to access './usr/share/man/man3/std::ostreambuf_iterator::operator++.3.gz ./usr/share/man/man3/std::ostreambuf_iterator::operator=.3.gz': No such file or directory [ 76s] ls: cannot access './usr/share/man/man3/std::front_insert_iterator::operator=.3': No such file or directory [ 76s] gzip: ./usr/share/man/man3/std::front_insert_iterator::operator++.3.gz ./usr/share/man/man3/std::front_insert_iterator::operator=.3: No such file or directory [ 76s] ln: failed to access './usr/share/man/man3/std::front_insert_iterator::operator++.3.gz ./usr/share/man/man3/std::front_insert_iterator::operator=.3.gz': No such file or directory [ 79s] ls: cannot access './usr/share/man/man3/std::insert_iterator::operator=.3': No such file or directory [ 79s] gzip: ./usr/share/man/man3/std::insert_iterator::operator++.3.gz ./usr/share/man/man3/std::insert_iterator::operator=.3: No such file or directory [ 79s] ln: failed to access './usr/share/man/man3/std::insert_iterator::operator++.3.gz ./usr/share/man/man3/std::insert_iterator::operator=.3.gz': No such file or directory [ 79s] ls: cannot access './usr/share/man/man3/std::unique_ptr::operatorbool.3': No such file or directory [ 79s] find: paths must precede expression: 27767 [ 79s] Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression] [ 79s] gzip: ./usr/share/man/man3/std::unique_ptr::operator=.3.gz ./usr/share/man/man3/std::unique_ptr::operator[].3.gz ./usr/share/man/man3/std::unique_ptr::operatorbool.3: No such file or directory ============================================================ At the end of the process brp-compress leaves behind uncompressed files with names matching the pattern operator*.3 (actual *, not a wildcard) in the man dir. These files are recreated by brp-compress: I checked right after the %install stage before brp-compress kicked in, and these -- or any other -- uncompressed files were not there before. If instead, I skip the make install; copy the uncompressed man files to the same man dir; and then let brp-compress handle the compression, there is no issue. This seems to be a bug in brp-compress, as it should just not leave behind uncompressed files that it recreates.