On Wed, Jul 12, 2017 at 1:52 PM, Sanford Rockowitz
<rockowitz(a)minsoft.com> wrote:
I hope this list is appropriate for asking a question regarding rpm
file
ownership. As a relative rpm newbie, I suspect I'm missing some piece of
"secret sauce" that's just obvious to anyone with rpm experience. If
there's
a more appropriate place to post the question, I'd appreciate a pointer.
Thanks in advance.
The application in question is named ddcutil. I'm creating directories
/usr/share/ddcutil and /usr/share/doc/ddcutil and saving files in them. rpm
marks the files as being owned by ddcutil, but not the directories.
Don't waste your time. Simply declare the files in your build
directory as "%doc" in your .spec file, and they will wind up copied
to /usr/share/doc/ddcutile-%{version} automatically.
As I read the documentation (e.g. e.g.
https://fedoraproject.org/wiki/How_to_create_an_RPM_package,
http://www.tldp.org/HOWTO/RPM-HOWTO/build.html), a directory is regarded as
being owned by an application if the directory name is specified either a)
without the %dir macro (in which case all files in the directory tree rooted
at the specified name are marked owned and installed) or b) prefaced by the
%dir macro, in which case only the directory is marked. I've tried both
ways.
The observed problem is similar for /usr/share/ddcutil and
/usr/share/doc/ddcutil, so I'll give details only for the former.
Here's the relevant segment from the %files section:
%{_datadir}/%{name}
Alternatively, I've tried coding the segment as follows:
%dir %{_datadir}/%{name}
%dir %{_datadir}/%{name}/data
%{_datadir}/%{name}/data/*rules
%{_datadir}/%{name}/data/90-nvidia-i2c.conf
In either case, the built rpm creates the directories and saves the files.
The individual files are regarded as being owned by ddcutil, but not the
directories.
Why would you want anything in /usr/share/doc/ owned as anything other
than root, which is the default? Basically, stop trying to replace the
"%doc" macro with your own handwritten workaround.
> What do I need to do to cause the directories to be owned?
>
> In more detail, querying rpm shows that the files are saved and are owned by
> ddcutil, but the directories are not owned by ddcutil:
>
> [rock@banner results]$ rpm -ql ddcutil
> /usr/bin/ddcutil
> /usr/lib/.build-id
> /usr/lib/.build-id/db
> /usr/lib/.build-id/db/011d82f3eab5166e52eec359cb76b0773fd965
> /usr/share/ddcutil/data/45-ddcutil-i2c.rules
> /usr/share/ddcutil/data/45-ddcutil-usb.rules
> /usr/share/ddcutil/data/90-nvidia-i2c.conf
> /usr/share/doc/ddcutil/AUTHORS
> /usr/share/doc/ddcutil/COPYING
> /usr/share/doc/ddcutil/NEWS
> /usr/share/doc/ddcutil/README.md
> /usr/share/man/man1/ddcutil.1.gz
>
> [rock@banner results]$ rpm -qf
> /usr/share/ddcutil/data/45-ddcutil-i2c.rules
> ddcutil-0.8.3-1.fc27.x86_64
>
> [rock@banner results]$ rpm -q --whatprovides
> /usr/share/ddcutil/data/45-ddcutil-i2c.rules
> ddcutil-0.8.3-1.fc27.x86_64
>
> [rock@banner results]$ rpm -q --whatprovides /usr/share/ddcutil
> file /usr/share/ddcutil is not owned by any package
>
> [rock@banner results]# rpm -qf /usr/share/ddcutil
> file /usr/share/ddcutil is not owned by any package
>
> The report from fedora-review is consistent with rpm --query:
>
> [ ]: Package requires other packages for directories it uses.
> Note: No known owner of /usr/share/doc/ddcutil
> [ ]: Package must own all directories that it creates.
> Note: Directories without known owners: /usr/share/doc/ddcutil,
> /usr/share/ddcutil, /usr/share/ddcutil/data
>
> _______________________________________________
> packaging mailing list -- packaging(a)lists.fedoraproject.org
> To unsubscribe send an email to packaging-leave(a)lists.fedoraproject.org