build: Create directories and files that get created during runtime

This should not be needed for files marged as "ghost", but rpm-4.9 is
broken in this respect :-(

Building the packages works again:
$ make dist
$ rpmbuild -ta glusterfs-3git.tar.gz

The now created files and directories are not packaged in the RPM, but
are marked as belonging to the packages. Here a example for
glusterfs-geo-replication:
$ rpm -qlp glusterfs-geo-replication-3git-1.fc17.x86_64.rpm \
    | grep /var/lib
/var/lib/glusterd/geo-replication
/var/lib/glusterd/geo-replication/gsyncd.conf
$ rpm2cpio < glusterfs-geo-replication-3git-1.fc17.x86_64.rpm \
    | cpio -t --quiet '/var/lib/*'
$

Change-Id: I32019cfbf40e25d9b7ce875fa92b98bae19dabee
BUG: 839668
See-also: https://bugzilla.redhat.com/show_bug.cgi?id=839656
Signed-off-by: Niels de Vos <ndevos@redhat.com>
Reviewed-on: http://review.gluster.com/3674
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Kaleb KEITHLEY <kkeithle@redhat.com>
Reviewed-by: Anand Avati <avati@redhat.com>
This commit is contained in:
Niels de Vos 2012-07-16 18:11:17 +02:00 committed by Anand Avati
parent 59ff893d11
commit 3a96dcf963

View File

@ -232,6 +232,23 @@ sed -i 's|option working-directory /etc/glusterd|option working-directory %{_sha
%{__install} -p -m 0644 extras/hook-scripts/*.sh \
%{buildroot}%{_sharedstatedir}/glusterd/hook-scripts/
# Create directories and files that get created during runtime. This should
# not be needed for files marged as "ghost", but rpm-4.9 is broken in this
# respect :-(
# - see also https://bugzilla.redhat.com/show_bug.cgi?id=839656
touch %{buildroot}%{_sharedstatedir}/glusterd/glusterd.info
%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/glustershd
%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/{add-brick,create,delete,set,start,stop,remove,remove-brick}/{pre,post}
%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/nfs
%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/peers
%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/vols
%if 0%{?_can_georeplicate}
%if 0%{!?_without_georeplication:1}
%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/geo-replication
touch %{buildroot}%{_sharedstatedir}/glusterd/geo-replication/gsyncd.conf
%endif
%endif
# Clean up the examples we want to include as %%doc
#%{__cp} -a doc/examples examples
#%{__rm} -f examples/Makefile*