%define rpmrelease %nil %define debug_package %{nil} ### Work-around the fact that openSUSE/SLES _always_ defined both :-/ %if 0%{?sles_version} == 0 %undefine sles_version %endif Summary: Relax-and-Recover is a Linux disaster recovery and system migration tool Name: rear Version: 2.1 Release: 1%{?rpmrelease}%{?dist} License: GPLv3 Group: Applications/File URL: http://relax-and-recover.org/ # as GitHub stopped with download section we need to go back to Sourceforge for downloads Source: https://sourceforge.net/projects/rear/files/rear/2.1/rear-2.1.tar.gz BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) # rear contains only bash scripts plus documentation so that on first glance it could be "BuildArch: noarch" # but actually it is not "noarch" because it only works on those architectures that are explicitly supported. # Of course the rear bash scripts can be installed on any architecture just as any binaries can be installed on any architecture. # But the meaning of architecture dependent packages should be on what architectures they will work. # Therefore only those architectures that are actually supported are explicitly listed. # This avoids that rear can be "just installed" on architectures that are actually not supported (e.g. ARM or IBM z Systems): ExclusiveArch: %ix86 x86_64 ppc ppc64 ppc64le ia64 # Furthermore for some architectures it requires architecture dependent packages (like syslinux for x86 and x86_64) # so that rear must be architecture dependent because ifarch conditions never match in case of "BuildArch: noarch" # see the GitHub issue https://github.com/rear/rear/issues/629 %ifarch %ix86 x86_64 Requires: syslinux %endif # In the end this should tell the user that rear is known to work only on ix86 x86_64 ppc ppc64 ppc64le ia64 # and on ix86 x86_64 syslinux is explicitly required to make the bootable ISO image # (in addition to the default installed bootloader grub2) while on ppc ppc64 the # default installed bootloader yaboot is also useed to make the bootable ISO image. ### Dependencies on all distributions Requires: binutils Requires: ethtool Requires: gzip Requires: iputils Requires: parted Requires: tar Requires: openssl Requires: gawk Requires: attr Requires: bc ### If you require NFS, you may need the below packages #Requires: nfsclient portmap rpcbind ### We drop LSB requirements because it pulls in too many dependencies ### The OS is hardcoded in /etc/rear/os.conf instead #Requires: redhat-lsb ### Required for Bacula/MySQL support #Requires: bacula-mysql ### Required for OBDR #Requires: lsscsi sg3_utils ### Optional requirement #Requires: cfg2html %if %{?suse_version:1}0 Requires: iproute2 ### recent SUSE versions have an extra nfs-client package ### and switched to genisoimage/wodim %if 0%{?suse_version} >= 1020 Requires: genisoimage %else Requires: mkisofs %endif ### %endif %if %{?mandriva_version:1}0 Requires: iproute2 ### Mandriva switched from 2008 away from mkisofs, ### and as a specialty call the package cdrkit-genisoimage! %if 0%{?mandriva_version} >= 2008 Requires: cdrkit-genisoimage %else Requires: mkisofs %endif #Requires: lsb %endif ### On RHEL/Fedora the genisoimage packages provides mkisofs %if %{?centos_version:1}%{?fedora_version:1}%{?rhel_version:1}0 Requires: crontabs Requires: iproute #Requires: mkisofs Requires: genisoimage #Requires: redhat-lsb %endif # Note that CentOS also has rhel defined so there is no need to use centos %if 0%{?rhel} Requires: util-linux %endif %description Relax-and-Recover is the leading Open Source disaster recovery and system migration solution. It comprises of a modular frame-work and ready-to-go workflows for many common situations to produce a bootable image and restore from backup using this image. As a benefit, it allows to restore to different hardware and can therefore be used as a migration tool as well. Currently Relax-and-Recover supports various boot media (incl. ISO, PXE, OBDR tape, USB or eSATA storage), a variety of network protocols (incl. sftp, ftp, http, nfs, cifs) as well as a multitude of backup strategies (incl. IBM TSM, HP DataProtector, Symantec NetBackup, EMC NetWorker, Bacula, Bareos, BORG, Duplicity, rsync). Relax-and-Recover was designed to be easy to set up, requires no maintenance and is there to assist when disaster strikes. Its setup-and-forget nature removes any excuse for not having a disaster recovery solution implemented. Professional services and support are available. %pre if [ $1 -gt 1 ] ; then # during upgrade remove obsolete directories %{__rm} -rf %{_datadir}/rear/output/NETFS fi %prep %setup -q -n rear-2.1 echo "30 1 * * * root /usr/sbin/rear checklayout || /usr/sbin/rear mkrescue" >rear.cron ### Add a specific os.conf so we do not depend on LSB dependencies %{?fedora:echo -e "OS_VENDOR=Fedora\nOS_VERSION=%{?fedora}" >etc/rear/os.conf} %{?mdkversion:echo -e "OS_VENDOR=Mandriva\nOS_VERSION=%{distro_rel}" >etc/rear/os.conf} %{?rhel:echo -e "OS_VENDOR=RedHatEnterpriseServer\nOS_VERSION=%{?rhel}" >etc/rear/os.conf} #%{?sles_version:echo -e "OS_VENDOR=SUSE_LINUX\nOS_VERSION=%{?sles_version}" >etc/rear/os.conf} #%{?suse_version:echo -e "OS_VENDOR=SUSE_LINUX\nOS_VERSION=%{?suse_version}" >etc/rear/os.conf} %if 0%{?suse_version} == 1110 # SLE 11 OS_VERSION="11" %endif %if 0%{?suse_version} == 1130 # openSUSE 11.3 OS_VERSION="11.3" %endif %if 0%{?suse_version} == 1140 # openSUSE 11.4 OS_VERSION="11.4" %endif %if 0%{?suse_version} == 1210 # openSUSE 12.1 OS_VERSION="12.1" %endif %if 0%{?suse_version} == 1220 # openSUSE 12.2 OS_VERSION="12.2" %endif %if 0%{?suse_version} == 1230 # openSUSE 12.3 OS_VERSION="12.3" %endif %if 0%{?suse_version} == 1310 # openSUSE 13.1 OS_VERSION="13.1" %endif %if 0%{?suse_version} == 1315 # SLE 12 OS_VERSION="12" %endif %if 0%{?suse_version} == 1320 # openSUSE 13.2 OS_VERSION="13.2" %endif %{?suse_version:echo -e "OS_VENDOR=SUSE_LINUX\nOS_VERSION=$OS_VERSION" >etc/rear/os.conf} %build %install %{__rm} -rf %{buildroot} %{__make} install DESTDIR="%{buildroot}" %{__install} -Dp -m0644 rear.cron %{buildroot}%{_sysconfdir}/cron.d/rear %clean %{__rm} -rf %{buildroot} %files %defattr(-, root, root, 0755) %doc AUTHORS COPYING README.adoc doc/*.txt %doc %{_mandir}/man8/rear.8* %config(noreplace) %{_sysconfdir}/cron.d/rear %config(noreplace) %{_sysconfdir}/rear/ %config(noreplace) %{_sysconfdir}/rear/cert/ %{_datadir}/rear/ %{_localstatedir}/lib/rear/ %{_sbindir}/rear %changelog * Thu Jul 30 2015 Johannes Meixner - For a changelog see the rear-release-notes.txt file.