OBS-URL: https://build.opensuse.org/package/show/home:ojkastl_buildservice:Branch_systemsmanagement/bundlewrap?expand=0&rev=18
160 lines
6.4 KiB
RPMSpec
160 lines
6.4 KiB
RPMSpec
#
|
|
# spec file for package bundlewrap
|
|
#
|
|
# 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/
|
|
#
|
|
|
|
|
|
%if 0%{?suse_version} >= 1699
|
|
%define pythons python3
|
|
%else
|
|
%{?sle15_python_module_pythons}
|
|
%endif
|
|
Name: bundlewrap
|
|
Version: 4.24.0
|
|
Release: 0
|
|
Summary: Config management with Python
|
|
License: GPL-3.0-or-later
|
|
URL: https://github.com/bundlewrap/bundlewrap
|
|
Source: https://github.com/bundlewrap/bundlewrap/archive/refs/tags/%{version}.tar.gz#/bundlewrap-%{version}.tar.gz
|
|
BuildRequires: python-rpm-macros
|
|
BuildRequires: %{python_module pip}
|
|
BuildRequires: %{python_module wheel}
|
|
#
|
|
BuildRequires: %{python_module Jinja2}
|
|
BuildRequires: %{python_module Mako}
|
|
BuildRequires: %{python_module PyYAML}
|
|
BuildRequires: %{python_module bcrypt}
|
|
BuildRequires: %{python_module cryptography}
|
|
BuildRequires: %{python_module librouteros >= 3.0.0}
|
|
BuildRequires: %{python_module passlib}
|
|
BuildRequires: %{python_module requests >= 1.0.0}
|
|
BuildRequires: %{python_module setuptools}
|
|
BuildRequires: %{python_module tomlkit}
|
|
# SECTION test requirements
|
|
BuildRequires: %{python_module pytest}
|
|
BuildRequires: %{python_module mkdocs}
|
|
# /SECTION
|
|
BuildRequires: fdupes
|
|
Requires(post): update-alternatives
|
|
Requires(postun): update-alternatives
|
|
# as this package does not use the python subpackages macro,
|
|
# these dependencies are taken as is. On Tumbleweed, this translates
|
|
# to the default python, currently 3.11
|
|
# The package does not yet build for 15.x, so we can figure something out later...
|
|
Requires: python3-Jinja2
|
|
Requires: python3-Mako
|
|
Requires: python3-PyYAML
|
|
Requires: python3-bcrypt
|
|
Requires: python3-cryptography
|
|
Requires: python3-librouteros >= 3.0.0
|
|
Requires: python3-packaging
|
|
Requires: python3-passlib
|
|
Requires: python3-requests >= 1.0.0
|
|
Requires: python3-setuptools
|
|
Requires: python3-tomlkit
|
|
BuildArch: noarch
|
|
Provides: bw = %{version}
|
|
|
|
%description
|
|
BundleWrap is a decentralized configuration management system that is designed
|
|
to be powerful, easy to extend and extremely versatile.
|
|
|
|
%prep
|
|
%autosetup -p1 -n bundlewrap-%{version}
|
|
|
|
%build
|
|
%python_build
|
|
|
|
%install
|
|
%python_install
|
|
%python_clone -a %{buildroot}%{_bindir}/bw
|
|
%python_expand %fdupes %{buildroot}%{$python_sitelib}
|
|
|
|
%check
|
|
IGNORED_CHECKS="test_action_success"
|
|
IGNORED_CHECKS="${IGNORED_CHECKS} or test_action_pipe_binary"
|
|
IGNORED_CHECKS="${IGNORED_CHECKS} or test_action_pipe_utf8"
|
|
IGNORED_CHECKS="${IGNORED_CHECKS} or test_action_return_codes"
|
|
IGNORED_CHECKS="${IGNORED_CHECKS} or test_only_bundle_with_dep"
|
|
IGNORED_CHECKS="${IGNORED_CHECKS} or test_skip_bundle"
|
|
IGNORED_CHECKS="${IGNORED_CHECKS} or test_skip_id"
|
|
IGNORED_CHECKS="${IGNORED_CHECKS} or test_skip_tag"
|
|
IGNORED_CHECKS="${IGNORED_CHECKS} or test_skip_type"
|
|
IGNORED_CHECKS="${IGNORED_CHECKS} or test_skip_trigger"
|
|
IGNORED_CHECKS="${IGNORED_CHECKS} or test_after"
|
|
IGNORED_CHECKS="${IGNORED_CHECKS} or test_before"
|
|
IGNORED_CHECKS="${IGNORED_CHECKS} or test_before_fail_no_skip"
|
|
IGNORED_CHECKS="${IGNORED_CHECKS} or test_after_fail_no_skip"
|
|
IGNORED_CHECKS="${IGNORED_CHECKS} or test_before_fail_skip_with_needs"
|
|
IGNORED_CHECKS="${IGNORED_CHECKS} or test_after_fail_skip_with_needed_by"
|
|
IGNORED_CHECKS="${IGNORED_CHECKS} or test_chain_skip"
|
|
IGNORED_CHECKS="${IGNORED_CHECKS} or test_chain_skip_no_cascade"
|
|
IGNORED_CHECKS="${IGNORED_CHECKS} or test_purge"
|
|
IGNORED_CHECKS="${IGNORED_CHECKS} or test_purge_special_chars"
|
|
IGNORED_CHECKS="${IGNORED_CHECKS} or test_any_content_create"
|
|
IGNORED_CHECKS="${IGNORED_CHECKS} or test_any_content_exists"
|
|
IGNORED_CHECKS="${IGNORED_CHECKS} or test_binary_inline_content"
|
|
IGNORED_CHECKS="${IGNORED_CHECKS} or test_binary_template_content"
|
|
IGNORED_CHECKS="${IGNORED_CHECKS} or test_delete"
|
|
IGNORED_CHECKS="${IGNORED_CHECKS} or test_mako_template_content"
|
|
IGNORED_CHECKS="${IGNORED_CHECKS} or test_mako_template_content_with_secret"
|
|
IGNORED_CHECKS="${IGNORED_CHECKS} or test_text_template_content"
|
|
IGNORED_CHECKS="${IGNORED_CHECKS} or test_fault_content_unavailable_skipped"
|
|
IGNORED_CHECKS="${IGNORED_CHECKS} or test_deploy_from_url"
|
|
IGNORED_CHECKS="${IGNORED_CHECKS} or test_cannot_deploy_into_purged"
|
|
IGNORED_CHECKS="${IGNORED_CHECKS} or test_precedes"
|
|
IGNORED_CHECKS="${IGNORED_CHECKS} or test_precedes_unless"
|
|
IGNORED_CHECKS="${IGNORED_CHECKS} or test_precedes_unless2"
|
|
IGNORED_CHECKS="${IGNORED_CHECKS} or test_precedes_unless3"
|
|
IGNORED_CHECKS="${IGNORED_CHECKS} or test_precedes_unless4"
|
|
IGNORED_CHECKS="${IGNORED_CHECKS} or test_precedes_action"
|
|
IGNORED_CHECKS="${IGNORED_CHECKS} or test_fault_content"
|
|
IGNORED_CHECKS="${IGNORED_CHECKS} or test_fault_content_mako"
|
|
IGNORED_CHECKS="${IGNORED_CHECKS} or test_fault_content_mako_metadata"
|
|
IGNORED_CHECKS="${IGNORED_CHECKS} or test_fault_content_jinja2"
|
|
IGNORED_CHECKS="${IGNORED_CHECKS} or test_fault_content_skipped"
|
|
IGNORED_CHECKS="${IGNORED_CHECKS} or test_fault_content_skipped_mako"
|
|
IGNORED_CHECKS="${IGNORED_CHECKS} or test_skip_attr_no_cascade"
|
|
IGNORED_CHECKS="${IGNORED_CHECKS} or test_skip_attr_action"
|
|
IGNORED_CHECKS="${IGNORED_CHECKS} or test_create"
|
|
IGNORED_CHECKS="${IGNORED_CHECKS} or test_fix"
|
|
IGNORED_CHECKS="${IGNORED_CHECKS} or test_fix_dir"
|
|
IGNORED_CHECKS="${IGNORED_CHECKS} or test_fix_dir_target"
|
|
IGNORED_CHECKS="${IGNORED_CHECKS} or test_empty_tags"
|
|
IGNORED_CHECKS="${IGNORED_CHECKS} or test_add_lock_apply_remove"
|
|
IGNORED_CHECKS="${IGNORED_CHECKS} or test_run_ok"
|
|
IGNORED_CHECKS="${IGNORED_CHECKS} or test_run_fail"
|
|
IGNORED_CHECKS="${IGNORED_CHECKS} or test_empty_verify"
|
|
# tests requiring ssh
|
|
IGNORED_CHECKS="${IGNORED_CHECKS} or test_file_owner_uid"
|
|
IGNORED_CHECKS="${IGNORED_CHECKS} or test_file_group_gid"
|
|
|
|
%pytest -k "not (${IGNORED_CHECKS})" tests/
|
|
|
|
%post
|
|
%python_install_alternative bw
|
|
|
|
%postun
|
|
%python_uninstall_alternative bw
|
|
|
|
%files
|
|
%doc CHANGELOG.md README.md
|
|
%python_alternative %{_bindir}/bw
|
|
%{python_sitelib}/bundlewrap
|
|
%{python_sitelib}/bundlewrap-%{version}*-info
|
|
|
|
%changelog
|
|
|