Re: preserving file attributes from make install in rpm spec file

"Jeff Johnson" <[email protected]>
Newsgroups gmane.linux.redhat.rpm.general
Message-ID <[email protected]>
On Dec 13, 2007 10:20 AM, Bob Beers <[email protected]> wrote:

> I am new to rpm building and trying to do the right thing.
>
> I want to build an rpm from a set of files which comes
>  with a Makefile install target that sets ownership
>  and permissions differently for different files.
>
> When executing make install (as root) everything is ok,
>  but trying to build the rpm as non-root fails
>  with "cannot change ownership of `/var/tmp/...' : Operation not
> permitted"
>
> The Makefile has (simplified version)
> install:
>   $(INSTALL) -d $(DESTDIR)$(BINDIR)
> #any group
>   $(INSTALL) -m 755 file01 $(DESTDIR)$(BINDIR)
>   $(INSTALL) -m 644 file02 $(DESTDIR)$(BINDIR)
> #wheel group
>   $(INSTALL) -m 750 -g wheel file03 $(DESTDIR)$(BINDIR)
> #aaa group
>   $(INSTALL) -m 750 -g aaa file04 $(DESTDIR)$(BINDIR)
> #bbb group
>   $(INSTALL) -m 750 -g bbb file05 $(DESTDIR)$(BINDIR)
>
> The spec file has:
>
> %install
> make DESTDIR=%buildroot/ install
>
> Obviously I'm overlooking something.  I am sure this is not that unusual.
>
> BTW, and I know I should not do it, if I build the rpm as root,
>  the permissions are fine, but all files are root:root.


What you miss is %attr markers in the %files manifest.

Add explicit
   %attr(mode,user,group)
(substituting the actual values for "mode", "user", "group" above)
for paths listed in the %files manifest.

There is also %defattr, and there's a certain art to expressing
%attr so that itscopes correctly across glob patterns, but rpm
packaging easily separates the actual {mode,user,group} used
during build from the same tuple used during install.

hth

73 de Jeff

_______________________________________________
Rpm-list mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/rpm-list
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.