From 1d296abdabc9f8f2a677a02859b02e40b345c457 Mon Sep 17 00:00:00 2001 From: Hubert Plociniczak Date: Tue, 6 Jan 2009 12:34:17 +0100 Subject: RPM %files section only lists files that are not under /usr/lib/erlang/lib/rabbitmq-server-$VERSION$, /usr/lib/rabbitmq and /etc. The first two are handled by only listing the directories and rpms checks them recursively. --- packaging/RPMS/Fedora/rabbitmq-server.spec | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/packaging/RPMS/Fedora/rabbitmq-server.spec b/packaging/RPMS/Fedora/rabbitmq-server.spec index 13cfb037..aac28003 100644 --- a/packaging/RPMS/Fedora/rabbitmq-server.spec +++ b/packaging/RPMS/Fedora/rabbitmq-server.spec @@ -31,10 +31,10 @@ scalable implementation of an AMQP broker. %define _defaultlibdir /usr/lib %endif -%define _erllibdir %{_defaultlibdir}/erlang/lib -%define _rabbitbindir %{_defaultlibdir}/rabbitmq/bin +%define _rabbit_erllibdir %{_defaultlibdir}/erlang/lib/rabbitmq_server-%{version} +%define _rabbit_libdir %{_defaultlibdir}/rabbitmq -%define _maindir %{buildroot}%{_erllibdir}/rabbitmq_server-%{version} +%define _maindir %{buildroot}%{_rabbit_erllibdir} %pre if [ $1 -gt 1 ]; then @@ -53,7 +53,7 @@ make rm -rf %{buildroot} make install TARGET_DIR=%{_maindir} \ - SBIN_DIR=%{buildroot}%{_rabbitbindir} \ + SBIN_DIR=%{buildroot}%{_rabbit_libdir}/bin \ MAN_DIR=%{buildroot}%{_mandir} mkdir -p %{buildroot}/var/lib/rabbitmq/mnesia @@ -81,8 +81,10 @@ rm %{_maindir}/LICENSE %{_maindir}/LICENSE-MPL-RabbitMQ %{_maindir}/INSTALL #Build the list of files rm -f %{_builddir}/filelist.%{name}.rpm echo '%defattr(-,root,root, -)' >> %{_builddir}/filelist.%{name}.rpm -(cd %{buildroot}; find . ! -regex '\./etc.*' \ - -type f | sed -e 's/^\.//' >> %{_builddir}/filelist.%{name}.rpm) +(cd %{buildroot}; \ + find . -type f ! -regex '\./etc.*' \ + ! -regex '\.\(%{_rabbit_erllibdir}\|%{_rabbit_libdir}\).*' \ + | sed -e 's/^\.//' >> %{_builddir}/filelist.%{name}.rpm) %post # create rabbitmq group @@ -116,6 +118,8 @@ fi %defattr(-,root,root,-) %dir /var/lib/rabbitmq %dir /var/log/rabbitmq +%{_rabbit_erllibdir} +%{_rabbit_libdir} /etc/rc.d/init.d/rabbitmq-server %config(noreplace) /etc/logrotate.d/rabbitmq-server %doc LICENSE LICENSE-MPL-RabbitMQ INSTALL -- cgit v1.2.1 From c75ad65a8a6ea345fd3ccdeae48490ed8ebfff03 Mon Sep 17 00:00:00 2001 From: Hubert Plociniczak Date: Tue, 6 Jan 2009 13:28:03 +0100 Subject: Define standard libdir macro in the makefile instead of overwriting it directly in the spec file for RPMS. This is to fix the wrong libdir macro under debian for x86_64 architectures. --- packaging/RPMS/Fedora/Makefile | 4 ++-- packaging/RPMS/Fedora/rabbitmq-server.spec | 10 ++-------- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/packaging/RPMS/Fedora/Makefile b/packaging/RPMS/Fedora/Makefile index c05f14a7..aa8c93c6 100644 --- a/packaging/RPMS/Fedora/Makefile +++ b/packaging/RPMS/Fedora/Makefile @@ -20,8 +20,8 @@ prepare: server: prepare rpmbuild -ba SPECS/rabbitmq-server.spec $(DEFINES) --target i386 - rpmbuild -ba SPECS/rabbitmq-server.spec $(DEFINES) --define '_arch x86_64' \ - --define '_defaultdocdir /usr/share/doc' --target x86_64 + rpmbuild -ba SPECS/rabbitmq-server.spec $(DEFINES) --define '_libdir /usr/lib64' \ + --define '_arch x86_64' --define '_defaultdocdir /usr/share/doc' --target x86_64 clean: rm -rf SOURCES SPECS RPMS SRPMS BUILD tmp diff --git a/packaging/RPMS/Fedora/rabbitmq-server.spec b/packaging/RPMS/Fedora/rabbitmq-server.spec index 13cfb037..36ad864b 100644 --- a/packaging/RPMS/Fedora/rabbitmq-server.spec +++ b/packaging/RPMS/Fedora/rabbitmq-server.spec @@ -25,14 +25,8 @@ RabbitMQ is an implementation of AMQP, the emerging standard for high performance enterprise messaging. The RabbitMQ server is a robust and scalable implementation of an AMQP broker. -%ifarch x86_64 - %define _defaultlibdir /usr/lib64 -%else - %define _defaultlibdir /usr/lib -%endif - -%define _erllibdir %{_defaultlibdir}/erlang/lib -%define _rabbitbindir %{_defaultlibdir}/rabbitmq/bin +%define _erllibdir %{_libdir}/erlang/lib +%define _rabbitbindir %{_libdir}/rabbitmq/bin %define _maindir %{buildroot}%{_erllibdir}/rabbitmq_server-%{version} -- cgit v1.2.1 From 513a626ceeb9b139b137bb0b5b9d859890c057ea Mon Sep 17 00:00:00 2001 From: Hubert Plociniczak Date: Tue, 6 Jan 2009 13:33:04 +0100 Subject: Fix spaces --- packaging/RPMS/Fedora/rabbitmq-server.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/RPMS/Fedora/rabbitmq-server.spec b/packaging/RPMS/Fedora/rabbitmq-server.spec index aac28003..5efff331 100644 --- a/packaging/RPMS/Fedora/rabbitmq-server.spec +++ b/packaging/RPMS/Fedora/rabbitmq-server.spec @@ -83,7 +83,7 @@ rm -f %{_builddir}/filelist.%{name}.rpm echo '%defattr(-,root,root, -)' >> %{_builddir}/filelist.%{name}.rpm (cd %{buildroot}; \ find . -type f ! -regex '\./etc.*' \ - ! -regex '\.\(%{_rabbit_erllibdir}\|%{_rabbit_libdir}\).*' \ + ! -regex '\.\(%{_rabbit_erllibdir}\|%{_rabbit_libdir}\).*' \ | sed -e 's/^\.//' >> %{_builddir}/filelist.%{name}.rpm) %post -- cgit v1.2.1 From ca08e04356d218077d495562c42eaa242fcf06ff Mon Sep 17 00:00:00 2001 From: Hubert Plociniczak Date: Tue, 6 Jan 2009 14:42:08 +0100 Subject: Use default macros in sed instead of using hardcoded path. --- packaging/RPMS/Fedora/rabbitmq-server.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packaging/RPMS/Fedora/rabbitmq-server.spec b/packaging/RPMS/Fedora/rabbitmq-server.spec index 36ad864b..d5961258 100644 --- a/packaging/RPMS/Fedora/rabbitmq-server.spec +++ b/packaging/RPMS/Fedora/rabbitmq-server.spec @@ -58,13 +58,13 @@ mkdir -p %{buildroot}/etc/rc.d/init.d/ install -m 0755 %SOURCE1 %{buildroot}/etc/rc.d/init.d/rabbitmq-server chmod 0755 %{buildroot}/etc/rc.d/init.d/rabbitmq-server %ifarch x86_64 - sed -i 's/\/usr\/lib\//\/usr\/lib64\//' %{buildroot}/etc/rc.d/init.d/rabbitmq-server + sed -i 's|/usr/lib/|%{_libdir}/|' %{buildroot}/etc/rc.d/init.d/rabbitmq-server %endif mkdir -p %{buildroot}%{_sbindir} install -m 0755 %SOURCE2 %{buildroot}%{_sbindir}/rabbitmqctl %ifarch x86_64 - sed -i 's/\/usr\/lib\//\/usr\/lib64\//' %{buildroot}%{_sbindir}/rabbitmqctl + sed -i 's|/usr/lib/|%{_libdir}/|' %{buildroot}%{_sbindir}/rabbitmqctl %endif mkdir -p %{buildroot}/etc/logrotate.d -- cgit v1.2.1 From 3518362dc686291c3bff99163e77fbf3638067c9 Mon Sep 17 00:00:00 2001 From: Hubert Plociniczak Date: Tue, 6 Jan 2009 17:11:17 +0100 Subject: Generalize the rpm spec so that some values are substituted by 'sed' in the makefile. Default rpm release is for fedora. The only difference between suse and fedora are the dependencies (used files instead of packages in the former), location of init.d and final rpm name. --- packaging/RPMS/Fedora/Makefile | 25 +++++++++++++++++++++---- packaging/RPMS/Fedora/init.d | 3 --- packaging/RPMS/Fedora/rabbitmq-server.spec | 16 ++++++++-------- 3 files changed, 29 insertions(+), 15 deletions(-) diff --git a/packaging/RPMS/Fedora/Makefile b/packaging/RPMS/Fedora/Makefile index aa8c93c6..cf3a93df 100644 --- a/packaging/RPMS/Fedora/Makefile +++ b/packaging/RPMS/Fedora/Makefile @@ -6,22 +6,39 @@ TOP_DIR=$(shell pwd) #only checks build-dependencies using rpms, not debs DEFINES=--define '_topdir $(TOP_DIR)' --define '_tmppath $(TOP_DIR)/tmp' --define 'debian 1' +ifndef RPM_OS +RPM_OS=fedora +endif + +ifeq "x$(RPM_OS)" "xsuse" +REQUIRES=/sbin/chkconfig /sbin/service +OS_DEFINES=--define '_initrddir /etc/init.d' +RELEASE_OS=.suse +else +REQUIRES=chkconfig initscripts +OS_DEFINES=--define '_initrddir /etc/rc.d/init.d' +RELEASE_OS= +endif + rpms: clean server prepare: mkdir -p BUILD SOURCES SPECS SRPMS RPMS tmp cp $(TOP_DIR)/$(TARBALL) SOURCES cp rabbitmq-server.spec SPECS - sed -i 's/%%VERSION%%/$(VERSION)/' SPECS/rabbitmq-server.spec + sed -i 's|%%VERSION%%|$(VERSION)|;s|%%REQUIRES%%|$(REQUIRES)|;s|%%RELEASE_OS%%|$(RELEASE_OS)|' \ + SPECS/rabbitmq-server.spec cp init.d SOURCES/rabbitmq-server.init cp rabbitmqctl_wrapper SOURCES/rabbitmq-server.wrapper cp rabbitmq-server.logrotate SOURCES/rabbitmq-server.logrotate server: prepare - rpmbuild -ba SPECS/rabbitmq-server.spec $(DEFINES) --target i386 - rpmbuild -ba SPECS/rabbitmq-server.spec $(DEFINES) --define '_libdir /usr/lib64' \ - --define '_arch x86_64' --define '_defaultdocdir /usr/share/doc' --target x86_64 + rpmbuild -ba SPECS/rabbitmq-server.spec $(DEFINES) $(OS_DEFINES) \ + --target i386 + rpmbuild -ba SPECS/rabbitmq-server.spec $(DEFINES) $(OS_DEFINES) \ + --define '_libdir /usr/lib64' --define '_arch x86_64' \ + --define '_defaultdocdir /usr/share/doc' --target x86_64 clean: rm -rf SOURCES SPECS RPMS SRPMS BUILD tmp diff --git a/packaging/RPMS/Fedora/init.d b/packaging/RPMS/Fedora/init.d index 27f150f9..ffcd11ac 100644 --- a/packaging/RPMS/Fedora/init.d +++ b/packaging/RPMS/Fedora/init.d @@ -29,9 +29,6 @@ LOCK_FILE=/var/lock/subsys/$NAME test -x $DAEMON || exit 0 -# source function library -. /etc/rc.d/init.d/functions - # Include rabbitmq defaults if available if [ -f /etc/default/rabbitmq ] ; then . /etc/default/rabbitmq diff --git a/packaging/RPMS/Fedora/rabbitmq-server.spec b/packaging/RPMS/Fedora/rabbitmq-server.spec index d5961258..460ee286 100644 --- a/packaging/RPMS/Fedora/rabbitmq-server.spec +++ b/packaging/RPMS/Fedora/rabbitmq-server.spec @@ -1,6 +1,6 @@ Name: rabbitmq-server Version: %%VERSION%% -Release: 1 +Release: 1%%RELEASE_OS%% License: MPLv1.1 Group: Development/Libraries Source: http://www.rabbitmq.com/releases/rabbitmq-server/v%{version}/%{name}-%{version}.tar.gz @@ -17,8 +17,8 @@ Requires: erlang, logrotate Packager: Hubert Plociniczak BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-%{_arch}-root Summary: The RabbitMQ server -Requires(post): chkconfig -Requires(pre): chkconfig initscripts +Requires(post): %%REQUIRES%% +Requires(pre): %%REQUIRES%% %description RabbitMQ is an implementation of AMQP, the emerging standard for high @@ -52,13 +52,13 @@ make install TARGET_DIR=%{_maindir} \ mkdir -p %{buildroot}/var/lib/rabbitmq/mnesia mkdir -p %{buildroot}/var/log/rabbitmq -mkdir -p %{buildroot}/etc/rc.d/init.d/ +mkdir -p %{buildroot}%{_initrddir} #Copy all necessary lib files etc. -install -m 0755 %SOURCE1 %{buildroot}/etc/rc.d/init.d/rabbitmq-server -chmod 0755 %{buildroot}/etc/rc.d/init.d/rabbitmq-server +install -m 0755 %SOURCE1 %{buildroot}/%{_initrddir}/rabbitmq-server +chmod 0755 %{buildroot}%{_initrddir}/rabbitmq-server %ifarch x86_64 - sed -i 's|/usr/lib/|%{_libdir}/|' %{buildroot}/etc/rc.d/init.d/rabbitmq-server + sed -i 's|/usr/lib/|%{_libdir}/|' %{buildroot}%{_initrddir}/rabbitmq-server %endif mkdir -p %{buildroot}%{_sbindir} @@ -110,7 +110,7 @@ fi %defattr(-,root,root,-) %dir /var/lib/rabbitmq %dir /var/log/rabbitmq -/etc/rc.d/init.d/rabbitmq-server +%{_initrddir}/rabbitmq-server %config(noreplace) /etc/logrotate.d/rabbitmq-server %doc LICENSE LICENSE-MPL-RabbitMQ INSTALL -- cgit v1.2.1 From a9007563d0ae9753b58f3ed06bedebd58f52df8e Mon Sep 17 00:00:00 2001 From: Hubert Plociniczak Date: Tue, 6 Jan 2009 17:48:02 +0100 Subject: Removed arch conditional on sed. --- packaging/RPMS/Fedora/rabbitmq-server.spec | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/packaging/RPMS/Fedora/rabbitmq-server.spec b/packaging/RPMS/Fedora/rabbitmq-server.spec index d5961258..62eee7dc 100644 --- a/packaging/RPMS/Fedora/rabbitmq-server.spec +++ b/packaging/RPMS/Fedora/rabbitmq-server.spec @@ -57,15 +57,11 @@ mkdir -p %{buildroot}/etc/rc.d/init.d/ #Copy all necessary lib files etc. install -m 0755 %SOURCE1 %{buildroot}/etc/rc.d/init.d/rabbitmq-server chmod 0755 %{buildroot}/etc/rc.d/init.d/rabbitmq-server -%ifarch x86_64 - sed -i 's|/usr/lib/|%{_libdir}/|' %{buildroot}/etc/rc.d/init.d/rabbitmq-server -%endif +sed -i 's|/usr/lib/|%{_libdir}/|' %{buildroot}/etc/rc.d/init.d/rabbitmq-server mkdir -p %{buildroot}%{_sbindir} install -m 0755 %SOURCE2 %{buildroot}%{_sbindir}/rabbitmqctl -%ifarch x86_64 - sed -i 's|/usr/lib/|%{_libdir}/|' %{buildroot}%{_sbindir}/rabbitmqctl -%endif +sed -i 's|/usr/lib/|%{_libdir}/|' %{buildroot}%{_sbindir}/rabbitmqctl mkdir -p %{buildroot}/etc/logrotate.d install -m 0644 %SOURCE3 %{buildroot}/etc/logrotate.d/rabbitmq-server -- cgit v1.2.1 From ff6707dee89f97b03e36810b46253a9442322659 Mon Sep 17 00:00:00 2001 From: Hubert Plociniczak Date: Tue, 6 Jan 2009 18:27:42 +0100 Subject: Typo --- packaging/RPMS/Fedora/rabbitmq-server.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/RPMS/Fedora/rabbitmq-server.spec b/packaging/RPMS/Fedora/rabbitmq-server.spec index 460ee286..4e9c61df 100644 --- a/packaging/RPMS/Fedora/rabbitmq-server.spec +++ b/packaging/RPMS/Fedora/rabbitmq-server.spec @@ -55,7 +55,7 @@ mkdir -p %{buildroot}/var/log/rabbitmq mkdir -p %{buildroot}%{_initrddir} #Copy all necessary lib files etc. -install -m 0755 %SOURCE1 %{buildroot}/%{_initrddir}/rabbitmq-server +install -m 0755 %SOURCE1 %{buildroot}%{_initrddir}/rabbitmq-server chmod 0755 %{buildroot}%{_initrddir}/rabbitmq-server %ifarch x86_64 sed -i 's|/usr/lib/|%{_libdir}/|' %{buildroot}%{_initrddir}/rabbitmq-server -- cgit v1.2.1