[packages/libdmtx] massive pldization; multi-php-version support

glen glen at pld-linux.org
Fri Jul 11 07:25:39 CEST 2014


commit bd7d234911fc764c0bc57b6c9a5304c9dccf6a94
Author: Elan Ruusamäe <glen at delfi.ee>
Date:   Fri Jul 11 08:25:13 2014 +0300

    massive pldization; multi-php-version support

 libdmtx.spec | 137 ++++++++++++++++++++++++++++++++++++-----------------------
 1 file changed, 84 insertions(+), 53 deletions(-)
---
diff --git a/libdmtx.spec b/libdmtx.spec
index 2a3b6f2..38f5d59 100644
--- a/libdmtx.spec
+++ b/libdmtx.spec
@@ -1,31 +1,42 @@
-%bcond_with	ruby
-%bcond_without	test
+# TODO
+# - java bindings
+#
+# Conditional build:
+%bcond_with	ruby		# build Ruby bindings
+%bcond_without	python	# build Python2 bindings
+%bcond_without	php		# build PHP bindings
+%bcond_without	tests		# build without tests
+
 Summary:	Library for working with Data Matrix 2D bar-codes
 Name:		libdmtx
 Version:	0.7.2
 Release:	4
 License:	LGPL v2+
 Group:		Libraries
-URL:		http://www.libdmtx.org/
 Source0:	http://downloads.sourceforge.net/libdmtx/%{name}-%{version}.tar.bz2
 # Source0-md5:	0684cf3857591e777b57248d652444ae
+URL:		http://www.libdmtx.org/
 BuildRequires:	ImageMagick-devel
 BuildRequires:	pkgconfig
 BuildRequires:	python-modules
 BuildRequires:	rpm-pythonprov
-BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
-# required for tests
+BuildRequires:	rpmbuild(macros) >= 1.219
+%if %{with tests}
 BuildRequires:	OpenGL-GLU-devel
 BuildRequires:	SDL_image-devel
 BuildRequires:	libpng-devel
-# language bindings
-#BuildRequires:  java-1.6.0-devel
-BuildRequires:	php-devel
+%endif
+%if %{with php}
+BuildRequires:	%{php_name}-devel
+%endif
+%if %{with python}
 BuildRequires:	python-devel
+%endif
 %if %{with ruby}
 BuildRequires:	ruby
 BuildRequires:	ruby-devel
 %endif
+BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
 %description
 libdmtx is open source software for reading and writing Data Matrix 2D
@@ -36,48 +47,47 @@ capabilities without restrictions or overhead.
 The included utility programs, dmtxread and dmtxwrite, provide the
 official interface to libdmtx from the command line, and also serve as
 a good reference for programmers who wish to write their own programs
-that interact with libdmtx. All of the software in the libdmtx package
-is distributed under the LGPLv2 and can be used freely under these
-terms.
+that interact with libdmtx.
 
-%package        devel
+%package devel
 Summary:	Development files for %{name}
 Group:		Development/Libraries
 Requires:	%{name} = %{version}-%{release}
 
-%description    devel
+%description devel
 The %{name}-devel package contains libraries and header files for
 developing applications that use %{name}.
 
-%package        utils
+%package utils
 Summary:	Utilities for %{name}
 Group:		Applications/System
 Requires:	%{name} = %{version}-%{release}
 
-%description    utils
+%description utils
 The %{name}-utils package contains utilities that use %{name}.
 
-# language bindings
-%package -n     php-libdmtx
+%package -n %{php_name}-dmtx
 Summary:	PHP bindings for %{name}
 License:	GPL v2+
-Group:		Libraries
+Group:		Development/Languages/PHP
 Requires:	%{name} = %{version}-%{release}
-Requires:	php(core)
+%{?requires_php_extension}
+Provides:	php(dmtx) = %{version}
+Obsoletes:	php-libdmtx < 0.7.2-4
 
-%description -n php-libdmtx
-The php-%{name} package contains bindings for using %{name} from PHP.
+%description -n %{php_name}-dmtx
+This package contains bindings for using %{name} from PHP.
 
-%package -n     python-libdmtx
+%package -n python-libdmtx
 Summary:	Python bindings for %{name}
-Group:		Libraries
+Group:		Libraries/Python
 Requires:	%{name} = %{version}-%{release}
 
 %description -n python-libdmtx
 The python-%{name} package contains bindings for using %{name} from
 Python.
 
-%package -n     ruby-libdmtx
+%package -n ruby-libdmtx
 Summary:	Ruby bindings for %{name}
 Group:		Libraries
 Requires:	%{name} = %{version}-%{release}
@@ -95,9 +105,9 @@ chmod a-x wrapper/{php,python}/README
 
 %build
 %configure \
-	--disable-static \
+	--disable-static
 
-%{__make} %{?_smp_mflags}
+%{__make}
 
 # temporary installation required by the language wrappers
 install -d tmp
@@ -105,26 +115,28 @@ install -d tmp
 	DESTDIR=$(pwd)/tmp
 
 # language wrappers must be built separately
-cd wrapper/php
+cd wrapper
+
+%if %{with php}
+cd php
 phpize
 %configure \
 	--disable-static \
 
-# Don't use rpath!
-sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
-sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
-
 %{__make} \
 	EXTRA_CFLAGS="-I$(pwd)/../../tmp%{_includedir}" \
 	DMTX_SHARED_LIBADD="-L$(pwd)/../../tmp%{_libdir} -ldmtx"
 cd ..
+%endif
 
+%if %{with python}
 cd python
 # fix paths
 sed -i.orig -e "s|%{_prefix}/local/include|$(pwd)/../../tmp%{_includedir}|" -e "s|%{_prefix}/local/lib|$(pwd)/../../tmp%{_libdir}|" setup.py
-python setup.py build
+%{__python} setup.py build
 chmod 0755 build/lib.*/*.so
 cd ..
+%endif
 
 %if %{with ruby}
 cd ruby
@@ -140,73 +152,92 @@ cd ..
 #cd ..
 cd ..
 
-%if %{with test}
+%if %{with tests}
 %{__make} check
 cd test
-for t in simple unit
-do
+for t in simple unit; do
 	./${t}_test/${t}_test
 done
 %endif
 
 %install
 rm -rf $RPM_BUILD_ROOT
-
 %{__make} install \
 	DESTDIR=$RPM_BUILD_ROOT
 
-find $RPM_BUILD_ROOT -name '*.la' -exec rm -f {} ';'
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/libdmtx.la
 
 cd wrapper
+%if %{with php}
 %{__make} -C php install \
 	INSTALL_ROOT=$RPM_BUILD_ROOT
 
+install -d $RPM_BUILD_ROOT%{php_sysconfdir}/conf.d
+cat <<'EOF' > $RPM_BUILD_ROOT%{php_sysconfdir}/conf.d/dmtx.ini
+; Enable dmtx extension module
+extension=dmtx.so
+EOF
+%endif
+
+%if %{with python}
 cd python
-python setup.py install -O1 --skip-build --root $RPM_BUILD_ROOT
+%{__python} setup.py install \
+	--skip-build \
+	--optimize=2 \
+	--root=$RPM_BUILD_ROOT
 cd ..
+%py_postclean
+%endif
 
 %if %{with ruby}
 %{__make} -C ruby install \
 	DESTDIR=$RPM_BUILD_ROOT
 %endif
 
-#pushd java
-#popd
-cd ..
-
 %clean
 rm -rf $RPM_BUILD_ROOT
 
-%post -p /sbin/ldconfig
-%postun -p /sbin/ldconfig
-
+%post	-p /sbin/ldconfig
+%postun	-p /sbin/ldconfig
 
 %files
 %defattr(644,root,root,755)
 %doc AUTHORS COPYING.LESSER ChangeLog KNOWNBUG NEWS README README.linux TODO
-%attr(755,root,root) %{_libdir}/%{name}.so.*
+%attr(755,root,root) %{_libdir}/libdmtx.so.*.*.*
+%ghost %{_libdir}/libdmtx.so.0
 
 %files devel
 %defattr(644,root,root,755)
-%{_includedir}/*
 %attr(755,root,root) %{_libdir}/%{name}.so
+%{_includedir}/dmtx.h
 %{_pkgconfigdir}/%{name}.pc
 %{_mandir}/man3/%{name}.3*
 
 %files utils
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/dmtx*
-%{_mandir}/man1/dmtx*.1*
-
-%files -n php-libdmtx
+%attr(755,root,root) %{_bindir}/dmtxquery
+%attr(755,root,root) %{_bindir}/dmtxread
+%attr(755,root,root) %{_bindir}/dmtxwrite
+%{_mandir}/man1/dmtxquery.1*
+%{_mandir}/man1/dmtxread.1*
+%{_mandir}/man1/dmtxwrite.1*
+
+%if %{with php}
+%files -n %{php_name}-dmtx
 %defattr(644,root,root,755)
 %doc COPYING wrapper/php/README
-%attr(755,root,root) %{_libdir}/php/*.so
+%config(noreplace) %verify(not md5 mtime size) %{php_sysconfdir}/conf.d/dmtx.ini
+%attr(755,root,root) %{php_extensiondir}/dmtx.so
+%endif
 
+%if %{with python}
 %files -n python-libdmtx
 %defattr(644,root,root,755)
 %doc wrapper/python/README
-%{py_sitedir}/*
+%{py_sitedir}/pydmtx.py[co]
+%attr(755,root,root) %{py_sitedir}/_pydmtx.so
+%{py_sitedir}/pydmtx-*.egg-info
+%endif
 
 %if %{with ruby}
 %files -n ruby-libdmtx
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/libdmtx.git/commitdiff/bd7d234911fc764c0bc57b6c9a5304c9dccf6a94



More information about the pld-cvs-commit mailing list