Hello Jeff, thanks for the quick response.
Hello everybody,
I am returning to %attr directive. I have a problem with
files that should be packaged with proper ownership (user/group) :
I. Description of the problem
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
I compiled rpm-4.0, got it installed and created an rpm
file with same permissions (without being root).
solardev:/home2/ptsimmer/opt/local/src/rpm$ rpm --version
RPM version 4.0
solardev:/home2/ptsimmer/opt/local/src/rpm$ rpm --showrc | head
ARCHITECTURE AND OS:
build arch : sparc64
compatible build archs: sun4u noarch
build os : solaris2.7
compatible build os's : solaris2.7
install arch : sun4u
install os : solaris2.7
compatible archs : sun4u sparc64 sparcv9 sparc noarch
compatible os's : solaris2.7 solaris2.3 solaris2.4 solaris2.5 solaris2.6
In my spec file, under the %files section I am using %attr macro to
install cdp file with permissions 755 and cdp.1 file with
permissions 544. The permissions of these files after installation
are correct (as it shown in attached traces file), but what's up with
the owner and group ? Why they are same ?
According to the "Maximum RPM" book in cases where the package builder
can't create the files to be packaged with the correct ownership
and permissions, the %attr macro can be used to make thinks right.
Why it doesn't work ?
What is the problem ?
What am I doing wrong ?
II. Traces
~~~~~~~~~~
solardev:/home2/ptsimmer/opt/local/src/redhat/RPMS/sparc64$ ls -l
drwxrwxrwx 2 ptsimmer dev 512 Jul 18 16:31 .
drwxrwxrwx 6 ptsimmer dev 512 Mar 16 13:56 ..
solardev:/home2/ptsimmer/opt/local/src/redhat/RPMS/sparc64$ rpm -q cdp-0.33-13
package cdp-0.33-13 is not installed
solardev:/home2/ptsimmer/opt/local/src/redhat/SPECS$ rpm -bb --eval '%_topdir'
--define '_defaultdocdir /home2/ptsimmer/peter2/cdp-0.33/13/instructs'
--eval '%_defaultdocdir' --eval '%_tmppath' cdp-0.33.spec
/home2/ptsimmer/opt/local/src/redhat
/home2/ptsimmer/peter2/cdp-0.33/13/instructs
/home2/ptsimmer/opt/local/tmp
Executing(%prep): /bin/sh -e /home2/ptsimmer/opt/local/tmp/rpm-tmp.13413
+ umask 022
+ cd /home2/ptsimmer/opt/local/src/redhat/BUILD
+ rm -rf cdp-0.33
+ tar -xvvf -
+ /usr/local/bin/gzip -dc /home2/ptsimmer/opt/local/src/redhat/SOURCES/cdp-0.33.tar.gz
drwxrwxrwx ptsimmer/dev 0 2001-05-07 11:24 cdp-0.33/
-rwxr-xr-x ptsimmer/dev 50008 2001-05-04 09:04 cdp-0.33/cdp
-rw-r--r-- ptsimmer/dev 4550 2001-05-04 09:04 cdp-0.33/cdp.1
...
STATUS=0
+ [ 0 -ne 0 ]
+ cd cdp-0.33
+ /bin/sed s/[^=]*=\([0-9][0-9]*\).*$/\1/
+ /bin/id
+ [ 1013 = 0 ]
+ /bin/sed s/[^=]*=\([0-9][0-9]*\).*$/\1/
+ /bin/id
+ [ 1013 = 0 ]
+ /bin/chmod -Rf a+rX,g-w,o-w .
+ exit 0
Executing(%install): /bin/sh -e /home2/ptsimmer/opt/local/tmp/rpm-tmp.30252
+ umask 022
+ cd /home2/ptsimmer/opt/local/src/redhat/BUILD
+ cd cdp-0.33
+ rm -rf /home2/ptsimmer/opt/local/tmp/installed_pkgs
+ mkdir -p /home2/ptsimmer/opt/local/tmp/installed_pkgs/home2/ptsimmer/peter2/cdp-0.33/13
+ cd /home2/ptsimmer/opt/local/tmp/installed_pkgs/home2/ptsimmer/peter2/cdp-0.33/13
+ tar -xvvf -
+ gzip -dc /home2/ptsimmer/opt/local/src/redhat/SOURCES/cdp-0.33.tar.gz
drwxrwxrwx ptsimmer/dev 0 2001-05-07 11:24 cdp-0.33/
-rwxr-xr-x ptsimmer/dev 50008 2001-05-04 09:04 cdp-0.33/cdp
-rw-r--r-- ptsimmer/dev 4550 2001-05-04 09:04 cdp-0.33/cdp.1
...
+ exit 0
Processing files: cdp-0.33-13
Executing(%doc): /bin/sh -e /home2/ptsimmer/opt/local/tmp/rpm-tmp.14322
+ umask 022
+ cd /home2/ptsimmer/opt/local/src/redhat/BUILD
+ cd cdp-0.33
DOCDIR=/home2/ptsimmer/opt/local/tmp/installed_pkgs/home2/ptsimmer/peter2/
cdp-0.33/13/instructs/cdp-0.33
+ export DOCDIR
+ rm -rf /home2/ptsimmer/opt/local/tmp/installed_pkgs/home2/ptsimmer/peter2/
cdp-0.33/13/instructs/cdp-0.33
+ /usr/bin/mkdir -p /home2/ptsimmer/opt/local/tmp/installed_pkgs/home2/ptsimmer/
peter2/cdp-0.33/13/instructs/cdp-0.33
+ cp -pr README /home2/ptsimmer/opt/local/tmp/installed_pkgs/home2/ptsimmer/
peter2/cdp-0.33/13/instructs/cdp-0.33
+ exit 0
Finding Provides: (using /home2/ptsimmer/opt/local/lib/rpm/find-provides)
...
Finding Requires: (using /home2/ptsimmer/opt/local/lib/rpm/find-requires)
...
PreReq: rpmlib(PayloadFilesHavePrefix) <= 4.0-1
Wrote: /home2/ptsimmer/opt/local/src/redhat/RPMS/sparc64/cdp-0.33-13.sparc64.rpm
Executing(%clean): /bin/sh -e /home2/ptsimmer/opt/local/tmp/rpm-tmp.15231
+ umask 022
+ cd /home2/ptsimmer/opt/local/src/redhat/BUILD
+ cd cdp-0.33
+ cd /home2/ptsimmer/opt/local/src/redhat/BUILD
+ rm -rf cdp-0.33
+ exit 0
solardev:/home2/ptsimmer/opt/local/src/redhat/RPMS/sparc64$ ls -l
drwxrwxrwx 2 ptsimmer dev 512 Jul 18 16:32 .
drwxrwxrwx 6 ptsimmer dev 512 Mar 16 13:56 ..
-rw-rw-r-- 1 ptsimmer dev 28439 Jul 18 16:32 cdp-0.33-13.sparc64.rpm
solardev:/home2/ptsimmer/opt/local/src/redhat/RPMS/sparc64$ rpm -q cdp-0.33-13
package cdp-0.33-13 is not installed
solardev:/home2/ptsimmer/opt/local/src/redhat/RPMS/sparc64$ rpm -ivv cdp-0.33-13.sparc64.rpm
D: counting packages to install
D: found 1 packages
D: looking for packages to download
D: retrieved 0 packages
D: New Header signature
D: Signature size: 68
D: Signature pad : 4
D: sigsize : 72
D: Header + Archive: 28271
D: expected size : 28271
D: opening db index /home2/ptsimmer/opt/local/lib/rpm/Packages create mode=0x102
D: locked db index /home2/ptsimmer/opt/local/lib/rpm/Packages
D: found 0 source and 1 binary packages
D: opening db index /home2/ptsimmer/opt/local/lib/rpm/Depends create mode=0x102
D: NO A rpmlib(PayloadFilesHavePrefix) <= 4.0-1 B rpmlib(Versioned Dependencies) = 3.0.3-1
D: NO A rpmlib(PayloadFilesHavePrefix) <= 4.0-1 B rpmlib(Compresse dFileNames) = 3.0.4-1
D: NO A rpmlib(PayloadFilesHavePrefix) <= 4.0-1 B rpmlib(PayloadIs Bzip2) = 3.0.5-1
D: YES A rpmlib(PayloadFilesHavePrefix) <= 4.0-1 B rpmlib(PayloadFilesHavePrefix) = 4.0-1
D: Requires: rpmlib(PayloadFilesHavePrefix) <= 4.0-1 YES (rpmlib provides)
D: NO A rpmlib(CompressedFileNames) <= 3.0.4-1 B rpmlib(Versioned Dependencies) = 3.0.3-1
D: YES A rpmlib(CompressedFileNames) <= 3.0.4-1 B rpmlib(CompressedFileNames) = 3.0.4-1
D: Requires: rpmlib(CompressedFileNames) <= 3.0.4-1 YES (rpmlib provides)
D: opening db index /home2/ptsimmer/opt/local/lib/rpm/Conflictname create mode=0x102
D: installing binary packages
D: getting list of mounted filesystems
D: opening db index /home2/ptsimmer/opt/local/lib/rpm/Name create mode=0x102
D: opening db index /home2/ptsimmer/opt/local/lib/rpm/Basenames create mode=0x102
D: opening db index /home2/ptsimmer/opt/local/lib/rpm/Group create mode=0x102
D: opening db index /home2/ptsimmer/opt/local/lib/rpm/Requirename create mode=0x102
D: opening db index /home2/ptsimmer/opt/local/lib/rpm/Providename create mode=0x102
D: opening db index /home2/ptsimmer/opt/local/lib/rpm/Triggername create mode=0x102
D: New Header signature
D: Signature size: 68
D: Signature pad : 4
D: sigsize : 72
D: Header + Archive: 28271
D: expected size : 28271
D: package: cdp-0.33-13 files test = 0
D: file: /home2/ptsimmer/peter2/cdp-0.33/13/cdp-0.33/cdp action: create
D: file: /home2/ptsimmer/peter2/cdp-0.33/13/cdp-0.33/cdp.1 action: create
D: file: /home2/ptsimmer/peter2/cdp-0.33/13/instructs/cdp-0.33 action: create
D: file: /home2/ptsimmer/peter2/cdp-0.33/13/instructs/cdp-0.33/README action: create
D: running preinstall script (if any)
cdp-0.33-13
GZDIO: 72 reads, 56436 total bytes in 0.001 secs
D: +++ 42 cdp-0.33-13
D: adding "cdp" to Name index.
D: adding 4 entries to Basenames index.
D: adding "Applications/Sound" to Group index.
D: adding 2 entries to Requirename index.
D: adding 1 entries to Providename index.
D: running postinstall scripts (if any)
D: closed db index /home2/ptsimmer/opt/local/lib/rpm/Depends
D: closed db index /home2/ptsimmer/opt/local/lib/rpm/Triggername
D: closed db index /home2/ptsimmer/opt/local/lib/rpm/Conflictname
D: closed db index /home2/ptsimmer/opt/local/lib/rpm/Providename
D: closed db index /home2/ptsimmer/opt/local/lib/rpm/Requirename
D: closed db index /home2/ptsimmer/opt/local/lib/rpm/Group
D: closed db index /home2/ptsimmer/opt/local/lib/rpm/Basenames
D: closed db index /home2/ptsimmer/opt/local/lib/rpm/Name
D: closed db index /home2/ptsimmer/opt/local/lib/rpm/Packages
solardev:/home2/ptsimmer/opt/local/src/redhat/RPMS/sparc64$ rpm -q cdp-0.33-13
cdp-0.33-13
solardev:/home2/ptsimmer/opt/local/src/rpm$ ls -l /home2/ptsimmer/peter2/
cdp-0.33/13/cdp-0.33
drwxr-xr-x 2 ptsimmer dev 512 Jul 18 18:08 .
drwxr-xr-x 4 ptsimmer dev 512 Jul 17 14:50 ..
-rwxr-xr-x 1 ptsimmer dev 50008 May 4 09:04 cdp
-r-xr--r-- 1 ptsimmer dev 4550 May 4 09:04 cdp.1
III. Spec file
~~~~~~~~~~~~~~
solardev:/home2/ptsimmer/opt/local/src/redhat/SPECS$ cat cdp-0.33.spec
#
# Example spec file for cdplayer app...
#
Summary: A CD player app that rocks!
Name: cdp
Version: 0.33
Release: 13
Copyright: GPL
Group: Applications/Sound
Source: %{name}-%{version}.tar.gz
URL: http://www.gnomovision.com/cdplayer/cdp.html
Distribution: WSS Linux
Vendor: White Socks Software, Inc.
Packager: Santa Claus <sclaus@northpole.com>
BuildRoot: %{_tmppath}/installed_pkgs
%description
It is description of cdp-0.33 package
%prep
%setup -n %{name}-%{version}
%install
rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT/home2/ptsimmer/peter2/%{name}-%{version}/%{release}
cd $RPM_BUILD_ROOT/home2/ptsimmer/peter2/%{name}-%{version}/%{release}
gzip -dc $RPM_SOURCE_DIR/%{name}-%{version}.tar.gz | tar -xvvf -
%files
%defattr(-, root, root)
%doc README
%attr(755, root, root) /home2/ptsimmer/peter2/%{name}-%{version}/%{release}/
%{name}-%{version}/cdp
%attr(544, root, root) /home2/ptsimmer/peter2/%{name}-%{version}/%{release}/
%{name}-%{version}/cdp.1
%clean
cd $RPM_BUILD_DIR
rm -rf %{name}-%{version}
Thanks.
Peter Tsimerman