The service is down for 2 years and more and it was unused ever since. The idea just never took off (also because it was pretty late in the cycle and leap wasn't developed much longer the way it used to when the design for this was created). For the next SLE/Leap it's just very, very unclear how it will look like and I'm 99% sure it's not going to go back to old Leap. So the whole operator needs more work and maintenance than the current team has, so keep it in the git history only.
480 lines
15 KiB
RPMSpec
480 lines
15 KiB
RPMSpec
#
|
|
# spec file for package openSUSE-release-tools
|
|
#
|
|
# Copyright (c) 2022 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/
|
|
#
|
|
|
|
|
|
%global __provides_exclude ^perl.*
|
|
%define source_dir openSUSE-release-tools
|
|
%define announcer_filename factory-package-news
|
|
Name: openSUSE-release-tools
|
|
Version: 0
|
|
Release: 0
|
|
Summary: Tools to aid in staging and release work for openSUSE/SUSE
|
|
License: GPL-2.0-or-later AND MIT
|
|
Group: Development/Tools/Other
|
|
URL: https://github.com/openSUSE/openSUSE-release-tools
|
|
Source: %{name}-%{version}.tar.xz
|
|
BuildArch: noarch
|
|
# Requires sr#704176
|
|
BuildRequires: osc >= 0.165.1
|
|
BuildRequires: python3-PyYAML
|
|
BuildRequires: python3-cmdln
|
|
BuildRequires: python3-colorama
|
|
BuildRequires: python3-lxml
|
|
BuildRequires: python3-osc
|
|
BuildRequires: python3-pycurl
|
|
BuildRequires: python3-python-dateutil
|
|
BuildRequires: python3-pyxdg
|
|
|
|
# Spec related requirements.
|
|
%if 0%{?is_opensuse}
|
|
BuildRequires: apache-rpm-macros
|
|
%else
|
|
%define apache_sysconfdir %{_sysconfdir}/apache2
|
|
%endif
|
|
BuildRequires: apache2-devel
|
|
BuildRequires: rsyslog
|
|
BuildRequires: systemd-rpm-macros
|
|
|
|
Requires: python3-PyYAML
|
|
Requires: python3-cmdln
|
|
Requires: python3-colorama
|
|
Requires: python3-lxml
|
|
# issue-diff.py, legal-auto.py, and openqa-maintenance.py
|
|
Requires: python3-pycurl
|
|
Requires: python3-python-dateutil
|
|
Requires: python3-pyxdg
|
|
Requires: python3-requests
|
|
|
|
# bs_mirrorfull
|
|
Requires: perl-Net-SSLeay
|
|
Requires: perl-XML-Parser
|
|
|
|
# Spec related requirements.
|
|
Requires: osclib = %{version}
|
|
|
|
# no longer supported
|
|
Obsoletes: osc-plugin-check_dups < 20210528
|
|
# vdelreq is no longer needed/supported; delete requests are handled immediately again
|
|
Obsoletes: osc-plugin-vdelreq < 20210528
|
|
|
|
# Avoid needlessly building on s390x and such in various repos.
|
|
# Must include noarch for older systems even though it makes no sense due to
|
|
# https://bugzilla.redhat.com/show_bug.cgi?id=1298668.
|
|
ExclusiveArch: noarch x86_64
|
|
|
|
%description
|
|
Tools to aid in staging and release work for openSUSE/SUSE
|
|
|
|
The toolset consists of a variety of stand-alone scripts, review bots, osc
|
|
plugins, and automation aids.
|
|
|
|
%package abichecker
|
|
Summary: ABI review bot
|
|
Group: Development/Tools/Other
|
|
Requires: osclib = %{version}
|
|
BuildArch: noarch
|
|
|
|
%description abichecker
|
|
ABI review bot for checking OBS requests.
|
|
|
|
%package announcer
|
|
Summary: Release announcer
|
|
Group: Development/Tools/Other
|
|
BuildArch: noarch
|
|
# TODO Update requirements.
|
|
|
|
%description announcer
|
|
OBS product release announcer for generating email diffs summaries.
|
|
|
|
%package check-source
|
|
Summary: Check source review bot
|
|
Group: Development/Tools/Other
|
|
# check_source.pl
|
|
Requires: obs-service-download_files
|
|
Requires: obs-service-format_spec_file
|
|
Requires: obs-service-source_validator
|
|
Requires: osclib = %{version}
|
|
Requires: perl-Text-Diff
|
|
Requires(pre): shadow
|
|
BuildArch: noarch
|
|
|
|
%description check-source
|
|
Check source review bot that performs basic source analysis and assigns reviews.
|
|
|
|
%package maintenance
|
|
Summary: Maintenance related services
|
|
Group: Development/Tools/Other
|
|
# TODO Update requirements.
|
|
Requires: osclib = %{version}
|
|
Requires(pre): shadow
|
|
BuildArch: noarch
|
|
|
|
%description maintenance
|
|
Maintenance related services like incident check.
|
|
|
|
%package metrics
|
|
Summary: Ingest relevant data to generate insightful metrics
|
|
Group: Development/Tools/Other
|
|
# TODO Update requirements.
|
|
Requires: osclib = %{version}
|
|
Requires(pre): shadow
|
|
Suggests: grafana
|
|
BuildArch: noarch
|
|
%if 0%{?suse_version} > 1500
|
|
Requires: influxdb
|
|
Requires: python3-influxdb
|
|
Requires: telegraf
|
|
%else
|
|
Suggests: influxdb
|
|
Suggests: python3-influxdb
|
|
Suggests: telegraf
|
|
%endif
|
|
|
|
%description metrics
|
|
Ingest relevant OBS and annotation data to generate insightful metrics.
|
|
|
|
%package metrics-access
|
|
Summary: Ingest access logs to generate metrics
|
|
Group: Development/Tools/Other
|
|
Requires: %{name}-metrics = %{version}
|
|
# Used to stream log files.
|
|
Requires: curl
|
|
Requires: php > 7
|
|
# Used to install influxdb/influxdb-php.
|
|
Requires: php-composer
|
|
# pgrep used in aggregate.php
|
|
Requires: procps
|
|
# xzcat for decompressing log files.
|
|
Requires: xz
|
|
BuildArch: noarch
|
|
|
|
%description metrics-access
|
|
Ingest download.o.o Apache access logs and generate metrics.
|
|
|
|
%package origin-manager
|
|
Summary: Package origin management tools
|
|
Group: Development/Tools/Other
|
|
Requires: osc-plugin-origin = %{version}
|
|
Requires: osclib = %{version}
|
|
Requires(pre): shadow
|
|
BuildArch: noarch
|
|
|
|
%description origin-manager
|
|
Tools for managing the origin of package sources and keeping them in sync.
|
|
|
|
%package repo-checker
|
|
Summary: Repository checker service
|
|
Group: Development/Tools/Other
|
|
# write_repo_susetags_file.pl
|
|
Requires: build
|
|
# TODO Update requirements.
|
|
Requires: osclib = %{version}
|
|
Requires: perl-XML-Simple
|
|
Requires(pre): shadow
|
|
BuildArch: noarch
|
|
|
|
%description repo-checker
|
|
Repository checker service that inspects built RPMs from stagings.
|
|
|
|
%package staging-bot
|
|
Summary: Staging bot services
|
|
Group: Development/Tools/Other
|
|
# devel-project.py
|
|
Requires: %{name} = %{version}
|
|
Requires: osc-plugin-staging = %{version}
|
|
Requires(pre): shadow
|
|
BuildArch: noarch
|
|
|
|
%description staging-bot
|
|
Staging bot services and system user.
|
|
|
|
%package pkglistgen
|
|
Summary: Generates package lists in 000product
|
|
Group: Development/Tools/Other
|
|
# for compressing the .packages files in 000update-repos
|
|
Requires: %{_bindir}/xz
|
|
Requires: obs-service-product_converter
|
|
Requires: osclib = %{version}
|
|
Requires: python3-requests
|
|
Requires: python3-solv
|
|
# we use the same user as repo-checker
|
|
PreReq: openSUSE-release-tools-repo-checker
|
|
BuildArch: noarch
|
|
|
|
%description pkglistgen
|
|
Generates package lists based on 000package-groups and puts them
|
|
in 000product, resp 000release-packages
|
|
|
|
%package -n osclib
|
|
Summary: Supplemental osc libraries
|
|
Group: Development/Tools/Other
|
|
# TODO Update requirements, but for now base deps.
|
|
Requires: %{name} = %{version}
|
|
Requires: osc >= 0.165.1
|
|
Requires: python3-osc
|
|
BuildArch: noarch
|
|
|
|
%description -n osclib
|
|
Supplemental osc libraries utilized by release tools.
|
|
|
|
%package -n osc-plugin-cycle
|
|
Summary: OSC plugin for cycle visualization
|
|
Group: Development/Tools/Other
|
|
Requires: osc >= 0.165.1
|
|
Requires: osclib = %{version}
|
|
BuildArch: noarch
|
|
|
|
%description -n osc-plugin-cycle
|
|
OSC plugin for cycle visualization, see `osc cycle --help`.
|
|
|
|
%package -n osc-plugin-origin
|
|
Summary: OSC plugin for origin management
|
|
Group: Development/Tools/Other
|
|
Requires: osc >= 0.165.1
|
|
Requires: osclib = %{version}
|
|
BuildArch: noarch
|
|
|
|
%description -n osc-plugin-origin
|
|
OSC plugin for for working with origin information, see `osc origin --help`.
|
|
|
|
%package -n osc-plugin-staging
|
|
Summary: OSC plugin for the staging workflow
|
|
Group: Development/Tools/Other
|
|
# devel-project.py needs 0.160.0 for get_request_list(withfullhistory) param.
|
|
Requires: osc >= 0.160.0
|
|
Requires: osclib = %{version}
|
|
BuildArch: noarch
|
|
|
|
%description -n osc-plugin-staging
|
|
OSC plugin for the staging workflow, see `osc staging --help`.
|
|
|
|
%prep
|
|
%setup -q
|
|
|
|
%build
|
|
%make_build
|
|
|
|
%install
|
|
%make_install \
|
|
grafana_provisioning_dir="%{_sysconfdir}/grafana/provisioning" \
|
|
oscplugindir="%{osc_plugin_dir}" \
|
|
VERSION="%{version}"
|
|
|
|
%pre announcer
|
|
getent passwd osrt-announcer > /dev/null || \
|
|
useradd -r -m -s /sbin/nologin -c "user for openSUSE-release-tools-announcer" osrt-announcer
|
|
exit 0
|
|
|
|
%postun announcer
|
|
%{systemd_postun}
|
|
|
|
%pre check-source
|
|
getent passwd osrt-check-source > /dev/null || \
|
|
useradd -r -m -s /sbin/nologin -c "user for openSUSE-release-tools-check-source" osrt-check-source
|
|
exit 0
|
|
|
|
%postun check-source
|
|
%{systemd_postun}
|
|
|
|
%pre maintenance
|
|
getent passwd osrt-maintenance > /dev/null || \
|
|
useradd -r -m -s /sbin/nologin -c "user for openSUSE-release-tools-maintenance" osrt-maintenance
|
|
exit 0
|
|
|
|
%postun maintenance
|
|
%{systemd_postun}
|
|
|
|
%pre metrics
|
|
getent passwd osrt-metrics > /dev/null || \
|
|
useradd -r -m -s /sbin/nologin -c "user for openSUSE-release-tools-metrics" osrt-metrics
|
|
exit 0
|
|
|
|
%postun metrics
|
|
%{systemd_postun}
|
|
# If grafana-server.service is enabled then restart it to load new dashboards.
|
|
if [ -x %{_bindir}/systemctl ] && %{_bindir}/systemctl is-enabled grafana-server ; then
|
|
%{_bindir}/systemctl try-restart --no-block grafana-server
|
|
fi
|
|
|
|
%pre origin-manager
|
|
getent passwd osrt-origin-manager > /dev/null || \
|
|
useradd -r -m -s /sbin/nologin -c "user for openSUSE-release-tools-origin-manager" osrt-origin-manager
|
|
exit 0
|
|
|
|
%postun origin-manager
|
|
%{systemd_postun}
|
|
|
|
%pre repo-checker
|
|
getent passwd osrt-repo-checker > /dev/null || \
|
|
useradd -r -m -s /sbin/nologin -c "user for openSUSE-release-tools-repo-checker" osrt-repo-checker
|
|
exit 0
|
|
|
|
%postun repo-checker
|
|
%{systemd_postun}
|
|
|
|
%pre staging-bot
|
|
getent passwd osrt-staging-bot > /dev/null || \
|
|
useradd -r -m -s /sbin/nologin -c "user for openSUSE-release-tools-staging-bot" osrt-staging-bot
|
|
exit 0
|
|
|
|
%postun staging-bot
|
|
%{systemd_postun}
|
|
|
|
%postun pkglistgen
|
|
%{systemd_postun}
|
|
|
|
%files
|
|
%doc README.md
|
|
%{_bindir}/osrt-biarchtool
|
|
%{_bindir}/osrt-bs_mirrorfull
|
|
%{_bindir}/osrt-bugowner
|
|
%{_bindir}/osrt-build-fail-reminder
|
|
%{_bindir}/osrt-checknewer
|
|
%{_bindir}/osrt-check_source_in_factory
|
|
%{_bindir}/osrt-check_tags_in_requests
|
|
%{_bindir}/osrt-compare_pkglist
|
|
%{_bindir}/osrt-container_cleaner
|
|
%{_bindir}/osrt-deptool
|
|
%{_bindir}/osrt-fcc_submitter
|
|
%{_bindir}/osrt-issue-diff
|
|
%{_bindir}/osrt-legal-auto
|
|
%{_bindir}/osrt-openqa-maintenance
|
|
%{_bindir}/osrt-requestfinder
|
|
%{_bindir}/osrt-totest-manager
|
|
%{_datadir}/%{source_dir}
|
|
%exclude %{_datadir}/%{source_dir}/abichecker
|
|
%exclude %{_datadir}/%{source_dir}/%{announcer_filename}
|
|
%exclude %{_datadir}/%{source_dir}/check_maintenance_incidents.py
|
|
%exclude %{_datadir}/%{source_dir}/check_source.pl
|
|
%exclude %{_datadir}/%{source_dir}/check_source.py
|
|
%exclude %{_datadir}/%{source_dir}/devel-project.py
|
|
%exclude %{_datadir}/%{source_dir}/metrics
|
|
%exclude %{_datadir}/%{source_dir}/metrics.py
|
|
%exclude %{_datadir}/%{source_dir}/metrics_release.py
|
|
%exclude %{_datadir}/%{source_dir}/origin-manager.py
|
|
%exclude %{_bindir}/osrt-staging-report
|
|
%exclude %{_datadir}/%{source_dir}/pkglistgen
|
|
%exclude %{_datadir}/%{source_dir}/pkglistgen.py
|
|
%exclude %{_datadir}/%{source_dir}/maintenance-installcheck.py
|
|
%exclude %{_datadir}/%{source_dir}/project-installcheck.py
|
|
%exclude %{_datadir}/%{source_dir}/suppkg_rebuild.py
|
|
%exclude %{_datadir}/%{source_dir}/skippkg-finder.py
|
|
%exclude %{_datadir}/%{source_dir}/osclib
|
|
%exclude %{_datadir}/%{source_dir}/osc-cycle.py
|
|
%exclude %{_datadir}/%{source_dir}/osc-origin.py
|
|
%exclude %{_datadir}/%{source_dir}/osc-staging.py
|
|
%exclude %{_datadir}/%{source_dir}/findfileconflicts
|
|
%exclude %{_datadir}/%{source_dir}/write_repo_susetags_file.pl
|
|
%dir %{_sysconfdir}/openSUSE-release-tools
|
|
|
|
%files abichecker
|
|
%{apache_sysconfdir}/vhosts.d/opensuse-abi-checker.conf.in
|
|
%{_datadir}/%{source_dir}/abichecker
|
|
%{_tmpfilesdir}/opensuse-abi-checker.conf
|
|
|
|
%files announcer
|
|
%doc %{announcer_filename}/README.asciidoc
|
|
%{_bindir}/osrt-announcer
|
|
%{apache_sysconfdir}/conf.d/%{announcer_filename}.conf.in
|
|
%{_datadir}/%{source_dir}/%{announcer_filename}
|
|
%config(noreplace) %{_sysconfdir}/openSUSE-release-tools/announcer
|
|
%config(noreplace) %{_sysconfdir}/rsyslog.d/%{announcer_filename}.conf
|
|
|
|
%files check-source
|
|
%{_bindir}/osrt-check_source
|
|
%{_datadir}/%{source_dir}/check_source.pl
|
|
%{_datadir}/%{source_dir}/check_source.py
|
|
|
|
%files maintenance
|
|
%{_bindir}/osrt-check_maintenance_incidents
|
|
%{_datadir}/%{source_dir}/check_maintenance_incidents.py
|
|
|
|
%files metrics
|
|
%{_bindir}/osrt-metrics
|
|
%{_datadir}/%{source_dir}/metrics
|
|
%exclude %{_datadir}/%{source_dir}/metrics/access
|
|
%exclude %{_datadir}/%{source_dir}/metrics/grafana/access.json
|
|
%{_datadir}/%{source_dir}/metrics.py
|
|
%{_datadir}/%{source_dir}/metrics_release.py
|
|
# To avoid adding grafana as BuildRequires since it does not live in same repo.
|
|
%dir %{_sysconfdir}/grafana
|
|
%dir %{_sysconfdir}/grafana/provisioning
|
|
%dir %{_sysconfdir}/grafana/provisioning/dashboards
|
|
%dir %{_sysconfdir}/grafana/provisioning/datasources
|
|
%{_sysconfdir}/grafana/provisioning/dashboards/%{name}.yaml
|
|
%{_sysconfdir}/grafana/provisioning/datasources/%{name}.yaml
|
|
%{_unitdir}/osrt-metrics@.service
|
|
%{_unitdir}/osrt-metrics@.timer
|
|
%{_unitdir}/osrt-metrics-release@.service
|
|
%{_unitdir}/osrt-metrics-release@.timer
|
|
%{_unitdir}/osrt-metrics-telegraf.service
|
|
|
|
%files metrics-access
|
|
%{_bindir}/osrt-metrics-access-aggregate
|
|
%{_bindir}/osrt-metrics-access-ingest
|
|
%{_datadir}/%{source_dir}/metrics/access
|
|
%{_datadir}/%{source_dir}/metrics/grafana/access.json
|
|
%{_unitdir}/osrt-metrics-access.service
|
|
%{_unitdir}/osrt-metrics-access.timer
|
|
|
|
%files origin-manager
|
|
%{_bindir}/osrt-origin-manager
|
|
%{_datadir}/%{source_dir}/origin-manager.py
|
|
|
|
%files repo-checker
|
|
%{_bindir}/osrt-project-installcheck
|
|
%{_bindir}/osrt-staging-installcheck
|
|
%{_bindir}/osrt-maintenance-installcheck
|
|
%{_bindir}/osrt-findfileconflicts
|
|
%{_bindir}/osrt-maintenance-installcheck
|
|
%{_bindir}/osrt-write_repo_susetags_file
|
|
%{_datadir}/%{source_dir}/project-installcheck.py
|
|
%{_datadir}/%{source_dir}/findfileconflicts
|
|
%{_datadir}/%{source_dir}/write_repo_susetags_file.pl
|
|
|
|
%files staging-bot
|
|
%{_bindir}/osrt-devel-project
|
|
%{_bindir}/osrt-staging-report
|
|
%{_bindir}/osrt-suppkg_rebuild
|
|
%{_datadir}/%{source_dir}/devel-project.py
|
|
%{_datadir}/%{source_dir}/suppkg_rebuild.py
|
|
|
|
%files pkglistgen
|
|
%{_bindir}/osrt-pkglistgen
|
|
%{_bindir}/osrt-skippkg-finder
|
|
%{_datadir}/%{source_dir}/pkglistgen
|
|
%{_datadir}/%{source_dir}/pkglistgen.py
|
|
%{_datadir}/%{source_dir}/skippkg-finder.py
|
|
|
|
%files -n osclib
|
|
%{_datadir}/%{source_dir}/osclib
|
|
%{osc_plugin_dir}/osclib
|
|
|
|
%files -n osc-plugin-cycle
|
|
%{_datadir}/%{source_dir}/osc-cycle.py
|
|
%{osc_plugin_dir}/osc-cycle.py
|
|
|
|
%files -n osc-plugin-origin
|
|
%{_datadir}/%{source_dir}/osc-origin.py
|
|
%{osc_plugin_dir}/osc-origin.py
|
|
|
|
%files -n osc-plugin-staging
|
|
%{_datadir}/%{source_dir}/osc-staging.py
|
|
%{osc_plugin_dir}/osc-staging.py
|
|
|
|
%changelog
|