14
0
forked from pool/python-qrcode
Files
python-qrcode/python-qrcode.spec

80 lines
2.3 KiB
RPMSpec
Raw Permalink Normal View History

#
# spec file for package python-qrcode
#
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%{?sle15_python_module_pythons}
Name: python-qrcode
Version: 8.2
Release: 0
Summary: QR Code image generator
License: BSD-3-Clause
URL: https://github.com/lincolnloop/python-qrcode
Source: %{url}/archive/v%{version}.tar.gz#/qrcode-%{version}.tar.gz
BuildRequires: %{python_module Pillow >= 9.1.0}
BuildRequires: %{python_module base >= 3.9}
BuildRequires: %{python_module pip}
BuildRequires: %{python_module poetry-core}
BuildRequires: %{python_module pypng}
BuildRequires: %{python_module pytest}
BuildRequires: %{python_module typing-extensions}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
Recommends: python-Pillow >= 9.1.0
Recommends: python-pypng
Requires(post): update-alternatives
Requires(postun): update-alternatives
BuildArch: noarch
%python_subpackages
%description
This module uses the Python Imaging Library (PIL) to allow for the generation
of QR Codes.
%prep
%setup -q -n python-qrcode-%{version}
# drop shebang from console_scripts
sed -i '1s@^#!.*@@' qrcode/console_scripts.py
%build
%pyproject_wheel
%install
%pyproject_install
install -Dm 644 doc/qr.1 %{buildroot}%{_mandir}/man1/qr.1
%python_clone -a %{buildroot}%{_mandir}/man1/qr.1
%python_clone -a %{buildroot}%{_bindir}/qr
%fdupes %{buildroot}%{_prefix}
%check
%pytest -s qrcode -k "not test_change"
%post
%python_install_alternative qr qr.1
%postun
%python_uninstall_alternative qr qr.1
Accepting request 325414 from home:bruno_friedmann:branches:devel:languages:python - Make qr binary alternative ready (preparing for python3 packaging) - man1 & qr alternative -py_ver to avoid conflict with python3 - get ride of previous installed binary and man page - Fix console_script.py missing +x - Allow python3 packaging of qrcode old: devel:languages:python/python-qrcode new: home:bruno_friedmann:branches:devel:languages:python/python-qrcode rev None Index: python-qrcode.changes =================================================================== --- python-qrcode.changes (revision 8) +++ python-qrcode.changes (revision 5) @@ -1,4 +1,11 @@ ------------------------------------------------------------------- +Sat Aug 22 07:58:58 UTC 2015 - bruno@ioda-net.ch + +- Make qr binary alternative ready (preparing for python3 packaging) +- man1 & qr alternative -py_ver to avoid conflict with python3 +- Fix console_script.py missing +x + +------------------------------------------------------------------- Fri Jun 5 13:11:40 UTC 2015 - hguo@suse.com - Since factory project cannot make use of download_file service, the package Index: python-qrcode.spec =================================================================== --- python-qrcode.spec (revision 8) +++ python-qrcode.spec (revision 5) @@ -26,6 +26,8 @@ Source: http://pypi.python.org/packages/source/q/qrcode/qrcode-%{version}.tar.gz BuildRequires: python-devel BuildRequires: python-setuptools +Requires(post): update-alternatives +Requires(postun): update-alternatives BuildRoot: %{_tmppath}/%{name}-%{version}-build %if 0%{?suse_version} && 0%{?suse_version} <= 1110 %{!?python_sitelib: %global python_sitelib %(python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")} @@ -46,11 +48,47 @@ %install python setup.py install --prefix=%{_prefix} --root=%{buildroot} +# Prepare for update-alternatives usage +mkdir -p %{buildroot}%{_sysconfdir}/alternatives +mv -v %{buildroot}%{_bindir}/qr %{buildroot}%{_bindir}/qr-%{py_ver} +# rename man page too +mv -v %{buildroot}%{_mandir}/man1/qr.1 %{buildroot}%{_mandir}/man1/qr-%{py_ver}.1 + +ln -s -f %{_sysconfdir}/alternatives/qr %{buildroot}%{_bindir}/qr +ln -s -f %{_sysconfdir}/alternatives/qr.1%{?ext_man} %{buildroot}%{_mandir}/man1/qr.1%{?ext_man} + +# create a dummy targets for /etc/alternatives +touch %{buildroot}%{_sysconfdir}/alternatives/qr +touch %{buildroot}%{_sysconfdir}/alternatives/qr.1%{?ext_man} + +# Fix warning about missing +x mode +chmod +x %{buildroot}%{python_sitelib}/qrcode/console_scripts.py + +%pre +# Since /usr/bin/qr became ghosted to be used with update-alternatives, we have to get rid +# of the old binary resulting from the non-update-alternativies-ified package: +[ -h %{_bindir}/qr ] || rm -f %{_bindir}/qr +[ -h %{_mandir}/man1/qr.1%{?ext_man} ] || rm -f %{_mandir}/man1/qr.1%{?ext_man} + +%post +%_sbindir/update-alternatives \ + --install %{_bindir}/qr qr %{_bindir}/qr-%{py_ver} 30 \ + --slave %{_mandir}/man1/qr.1%{?ext_man} qr.1%{?ext_man} %{_mandir}/man1/qr-%{py_ver}.1%{?ext_man} + +%postun +if [ $1 -eq 0 ] ; then + %_sbindir/update-alternatives --remove qr %{_bindir}/qr-%{py_ver} +fi + %files %defattr(-,root,root,-) %doc CHANGES.rst LICENSE README.rst %{_bindir}/qr +%{_bindir}/qr-%{py_ver} +%{_mandir}/man1/qr.1%{?ext_man} +%{_mandir}/man1/qr-%{py_ver}.1%{?ext_man} +%ghost %{_sysconfdir}/alternatives/qr +%ghost %{_sysconfdir}/alternatives/qr.1%{?ext_man} %{python_sitelib}/* -%doc %{_mandir}/man1/qr.* %changelog OBS-URL: https://build.opensuse.org/request/show/325414 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-qrcode?expand=0&rev=9
2015-08-23 06:29:52 +00:00
%files %{python_files}
%license LICENSE
%doc CHANGES.rst README.rst
%python_alternative %{_bindir}/qr
%python_alternative %{_mandir}/man1/qr.1%{?ext_man}
%{python_sitelib}/qrcode
%{python_sitelib}/qrcode-%{version}.dist-info
%changelog