%define name device-mapper %define version 1.02.24 %define extraversion %{nil} %define release %manbo_mkrel 3 %ifarch %{ix86} x86_64 ppc ppc64 %{sunsparc} %define use_dietlibc 1 %else %define use_dietlibc 0 %endif %define build_dmeventd 1 %{?_with_dmeventd: %{expand: %%global build_dmeventd 1}} %{?_without_dmeventd: %{expand: %%global build_dmeventd 0}} %{?_with_dietlibc: %{expand: %%global use_dietlibc 1}} %{?_without_dietlibc: %{expand: %%global use_dietlibc 0}} %define _sbindir /sbin %define major 1.02 # Macro: %%{mklibname <name> [<major> [<minor>]] [-s] [-d]} %define libname %mklibname devmapper %major %define develname %mklibname devmapper -d %define event_libname %mklibname devmapper-event %major %define event_develname %mklibname devmapper-event -d Summary: Device mapper Name: %{name} Version: %{version} Release: %{release} Source0: ftp://sources.redhat.com/pub/dm/%{name}.%{version}%{extraversion}.tgz Source1: ftp://sources.redhat.com/pub/dm/%{name}.%{version}%{extraversion}.tgz.asc Patch0: device-mapper.1.02.24-build.patch Patch1: device-mapper.1.02.24-uint32_max.patch Patch2: device-mapper.1.02.22-pkgconfig.patch # Don't use canonicalize_file_name if building with dietlibc, it doesn't # exist - AdamW 2007/08 Patch3: device-mapper.1.02.22-canonicalize.patch # Don't use UINT64_C if building with dietlibc, it doesn't exist (from # OpenSDE) - AdamW 2007/08 Patch4: device-mapper.1.02.22-uint64.patch License: GPLv2 and LGPLv2 Group: System/Kernel and hardware BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot URL: http://sources.redhat.com/dm/ BuildRequires: autoconf %if %{use_dietlibc} BuildRequires: dietlibc-devel %else BuildRequires: glibc-static-devel %endif %description The device-mapper driver enables the definition of new block devices composed of ranges of sectors of existing devices. This can be used to define disk partitions - or logical volumes. %package -n dmsetup Summary: Device mapper setup tool Group: System/Kernel and hardware Provides: device-mapper = %{version}-%{release} Provides: dmeventd = %{version}-%{release} Requires: %{libname} = %{version}-%{release} %description -n dmsetup Dmsetup manages logical devices that use the device-mapper driver. Devices are created by loading a table that specifies a target for each sector (512 bytes) in the logical device. %package -n %{libname} Summary: Device mapper library Group: System/Kernel and hardware %description -n %{libname} The device-mapper driver enables the definition of new block devices composed of ranges of sectors of existing devices. This can be used to define disk partitions - or logical volumes. This package contains the shared libraries required for running programs which use device-mapper. %package -n %{develname} Summary: Device mapper development library Group: Development/C Provides: device-mapper-devel = %{version}-%{release} Provides: libdevmapper-devel = %{version}-%{release} Requires: %{libname} = %{version}-%{release} Requires: pkgconfig Conflicts: device-mapper-devel < %{version}-%{release} Obsoletes: %{mklibname devmapper 1.02 -d} %description -n %{develname} The device-mapper driver enables the definition of new block devices composed of ranges of sectors of existing devices. This can be used to define disk partitions - or logical volumes. This package contains the header files and development libraries for building programs which use device-mapper. %if %{build_dmeventd} %package -n %{event_libname} Summary: Device mapper event library Group: System/Kernel and hardware %description -n %{event_libname} The device-mapper-event library allows monitoring of active mapped devices. This package contains the shared libraries required for running programs which use device-mapper-event. %package -n %{event_develname} Summary: Device mapper event development library Group: Development/C Provides: device-mapper-event-devel = %{version}-%{release} Provides: libdevmapper-event-devel = %{version}-%{release} Requires: %{event_libname} = %{version}-%{release} Requires: %{develname} = %{version}-%{release} Requires: pkgconfig Conflicts: device-mapper-event-devel < %{version}-%{release} Obsoletes: %{mklibname devmapper-event 1.02 -d} %description -n %{event_develname} The device-mapper-event library allows monitoring of active mapped devices. This package contains the header files and development libraries for building programs which use device-mapper-event. %endif %prep %setup -q -n %{name}.%{version}%{extraversion} %patch0 -p1 -b .build %patch1 -p1 -b .uint32_max %patch2 -p1 -b .pkgconfig %patch3 -p1 -b .canonicalize %patch4 -p1 -b .uint64 autoconf %build %if %{use_dietlibc} # build fails with stack-protector enabled - AdamW 2007/08 export CFLAGS="%{optflags} -fno-stack-protector" %endif %configure2_5x --with-user=`id -un` --with-group=`id -gn` \ %if %{use_dietlibc} --enable-static_link_dietlibc \ %else --enable-static_link \ %endif --disable-selinux \ %if %{build_dmeventd} --enable-dmeventd \ %endif --enable-pkgconfig %make %install rm -rf %{buildroot} %makeinstall mkdir -p %{buildroot}/%{_lib} mv %{buildroot}%{_libdir}/libdevmapper.so.* $RPM_BUILD_ROOT/%{_lib} ln -sf /%{_lib}/libdevmapper.so.%{major} %{buildroot}%{_libdir}/libdevmapper.so %if %{use_dietlibc} mv $RPM_BUILD_ROOT%{_sbindir}/dmsetup-static{-diet,} %endif chmod -R u+w %{buildroot} #else brp won't strip binaries %clean rm -rf %{buildroot} %files -n dmsetup %defattr(644,root,root,755) %doc INSTALL INTRO README VERSION WHATS_NEW #doc patches/*.patch.bz2 %doc scripts/* %doc contrib/* %attr(755,root,root) %{_sbindir}/dmsetup %attr(755,root,root) %{_sbindir}/dmsetup-static %attr(755,root,root) %{_sbindir}/dmeventd %{_mandir}/man8/dmsetup.8* %files -n %{libname} %defattr(755,root,root) /%{_lib}/libdevmapper.so.* %if %mdkversion < 200900 %post -n %{libname} -p /sbin/ldconfig %endif %if %mdkversion < 200900 %postun -n %{libname} -p /sbin/ldconfig %endif %files -n %{develname} %defattr(644,root,root,755) %{_libdir}/libdevmapper.so %{_libdir}/libdevmapper.a* %{_includedir}/libdevmapper.h %if %{use_dietlibc} %{_libdir}/libdevmapper-diet.a* %endif %{_libdir}/pkgconfig/devmapper.pc %if %{build_dmeventd} %defattr(755,root,root) %files -n %{event_libname} %{_libdir}/libdevmapper-event.so.* %if %mdkversion < 200900 %post -n %{event_libname} -p /sbin/ldconfig %endif %if %mdkversion < 200900 %postun -n %{event_libname} -p /sbin/ldconfig %endif %files -n %{event_develname} %defattr(644,root,root,755) %{_includedir}/libdevmapper-event.h %{_libdir}/libdevmapper-event.so %{_libdir}/libdevmapper-event.a* %{_libdir}/pkgconfig/devmapper-event.pc %endif %changelog * Wed Aug 06 2008 Thierry Vignaud <tvignaud@mandriva.com> 1.02.24-3mnb2 + Revision: 264402 - rebuild early 2009.0 package (before pixel changes) * Tue Jun 10 2008 Oden Eriksson <oeriksson@mandriva.com> 1.02.24-2mnb2 + Revision: 217571 - rebuilt against dietlibc-devel-0.32 + Pixel <pixel@mandriva.com> - do not call ldconfig in %%post/%%postun, it is now handled by filetriggers * Mon Feb 18 2008 Thierry Vignaud <tvignaud@mandriva.com> 1.02.24-1mnb1 + Revision: 170650 - replace %%mkrel with %%manbo_mkrel for Manbo Core 1 * Wed Jan 23 2008 Olivier Blin <oblin@mandriva.com> 1.02.24-1mdv2008.1 + Revision: 157023 - fix definition of UINT32_MAX (for both libc and dietlibc builds) - 1.02.24 - rediff static build patch * Fri Jan 11 2008 Thierry Vignaud <tvignaud@mandriva.com> 1.02.22-2mdv2008.1 + Revision: 149171 - rebuild - kill re-definition of %%buildroot on Pixel's request + Olivier Blin <oblin@mandriva.com> - restore BuildRoot * Wed Aug 22 2007 Adam Williamson <awilliamson@mandriva.com> 1.02.22-1mdv2008.0 + Revision: 69170 - disable stack-protector (build fails if enabled) - new devel policy - add demventd to dmsetup package - update autoconf buildrequire - use Fedora license policy - add patch3 and patch4 to fix build issues with dietlibc (patch4 from OpenSDE) - drop old patch3 (merged upstream) - rediff, update and fix patch2 - rediff patch0 - include upstream signature as Source1 - use more standard libname variables - new release 1.02.22 + Thierry Vignaud <tvignaud@mandriva.com> - kill ldconfig require as requested by pixel * Wed Feb 14 2007 Gwenole Beauchesne <gbeauchesne@mandriva.com> 1.02.09-2mdv2007.0 + Revision: 120697 - fix DM_LIB_VERSION for pkgconfig deps + Luca Berra <bluca@mandriva.org> - New release 1.02.09 - import device-mapper-1.02.07-4mdv2007.0 * Mon May 29 2006 Luca Berra <bluca@vodka.it> 1.02.07-4mdv2007.0 - merge p1 into p0 - fix building of shared library - fix debug build - remove .diet.o and .pic.o files in clean target - enable dmeventd * Wed May 24 2006 Luca Berra <bluca@vodka.it> 1.02.07-3mdk - s/Obsolete/Conflict/ * Mon May 22 2006 Luca Berra <bluca@vodka.it> 1.02.07-2mdk - Obsolete previous versions of development packages * Mon May 22 2006 Luca Berra <bluca@vodka.it> 1.02.07-1mdk - release 1.02.07 - add -lcompat to device mapper build (for getline) - always install static library - fix pkgconfig file location - remove selinux libraries from pkgconfig files * Sun May 07 2006 Luca Berra <bluca@vodka.it> 1.02.05-1mdk - New release 1.02.05 - update diet patch - add ppc64 to dietlibc arches - allow overriding of dietlibc build - optional build of dmeventd (disabled by default) - require(pre,post) ldconfig - do not include patches for old kernels in %%doc * Fri Apr 21 2006 Per Øyvind Karlsen <pkarlsen@mandriva.com> 1.01.05-2mdk - build against dietlibc on sparc - %%{1}mdv2007.1 * Sat Jan 21 2006 Luca Berra <bluca@vodka.it> 1.01.05-1mdk - New release 1.01.05 - update patches * Sat Dec 31 2005 Mandriva Linux Team <http://www.mandrivaexpert.com/> 1.01.00-3mdk - Rebuild * Sat Mar 05 2005 Luca Berra <bluca@vodka.it> 1.01.00-2mdk - use the correct major number * Fri Mar 04 2005 Thierry Vignaud <tvignaud@mandrakesoft.com> 1.01.00-1mdk - new release * Fri Jan 14 2005 Per Øyvind Karlsen <peroyvind@linux-mandrake.com> 1.00.21-1mdk - 1.00.21 * Mon Oct 04 2004 Luca Berra <bluca@vodka.it> 1.00.19-4mdk - rework package descriptions * Fri Oct 01 2004 Gwenole Beauchesne <gbeauchesne@mandrakesoft.com> 1.00.19-3mdk - only build DSOs with PIC - rewrite dietlibc patch for a one-shot build * Mon Aug 02 2004 Christiaan Welvaart <cjw@daneel.dyndns.org> 1.00.19-2mdk - enable dietlibc version on ppc * Tue Jul 27 2004 Luca Berra <bluca@vodka.it> 1.00.19-1mdk - 1.00.19 - rediffed p0 - disable selinux build * Wed Jun 30 2004 Luca Berra <bluca@vodka.it> 1.00.18-1mdk - 1.00.18 - rediffed p0 - fix unstripped binaries * Tue Apr 20 2004 Per Øyvind Karlsen <peroyvind@linux-mandrake.com> 1.00.16-2mdk - fix buildrequires - spec cosmetics * Sun Apr 18 2004 Luca Berra <bluca@vodka.it> 1.00.16-1mdk - 1.00.16 - rediffed p0 - added dmsetup-static