File python-shodan.spec of Package python-shodan
#
# spec file for package python-shodan
#
# 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/
#
%{!?license: %global license %doc}
Name: python-shodan
Version: 1.31.0
Release: 0
Summary: Python library and command-line utility for Shodan
License: MIT
URL: https://github.com/achillean/shodan-python/
Source: https://files.pythonhosted.org/packages/source/s/shodan/shodan-%{version}.tar.gz
# PATCH-FIX-UPSTREAM remove-click-plugins.patch -- remove dependency to unmaintained click-plugins
Patch0: https://github.com/achillean/shodan-python/pull/236.patch#/remove-click-plugins.patch
BuildRequires: %{python_module pip}
BuildRequires: %{python_module setuptools}
BuildRequires: %{python_module wheel}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
BuildRequires: python3-Sphinx
Requires: python-XlsxWriter
Requires: python-click
Requires: python-colorama
Requires: python-requests >= 2.2.1
Requires(post): update-alternatives
Requires(postun): update-alternatives
Recommends: python-curses
Suggests: %{name}-doc
BuildArch: noarch
%python_subpackages
%package -n %{name}-doc
Summary: Documentation files for %{name}
Group: Documentation/HTML
Provides: %{python_module shodan-doc = %{version}}
%description
Shodan is a search engine for Internet-connected devices. Google lets you search for websites, Shodan lets you search for devices. This library provides developers easy access to all of the data stored in Shodan in order to automate tasks and integrate into existing tools.
%description -n %{name}-doc
HTML documentation on the API and examples for %{name}.
%prep
%autosetup -n shodan-%{version} -p1
sed -i '1s/^#!.*//' shodan/cli/worldmap.py
%build
%pyproject_wheel
pushd docs
%make_build html
rm -r _build/html/.buildinfo _build/html/_sources/
%make_build man
popd
%install
%pyproject_install
install -Dm 644 docs/_build/man/shodan-python.1 %{buildroot}%{_mandir}/man1/shodan.1
%python_clone -a %{buildroot}%{_bindir}/shodan
%python_clone -a %{buildroot}%{_mandir}/man1/shodan.1
%python_expand %fdupes %{buildroot}%{$python_sitelib}
%check
# Tests need network access, skip them:
# https://developer.shodan.io/api/requirements
# SHODAN-API-KEY file required by tests
%post
%python_install_alternative shodan shodan.1
%postun
%python_uninstall_alternative shodan shodan.1
%files %{python_files}
%doc AUTHORS README.rst
%license LICENSE
%python_alternative %{_bindir}/shodan
%{python_sitelib}/shodan
%{python_sitelib}/shodan-%{version}.dist-info
%python_alternative %{_mandir}/man1/shodan.1%{ext_man}
%files -n %{name}-doc
%doc docs/_build/html
%changelog