[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