diff --git a/.gitignore b/.gitignore index 804f869..a0c60c3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,14 +1 @@ -/dist-git-0.10.tar.gz -/dist-git-0.11.tar.gz -/dist-git-1.0.tar.gz -/dist-git-1.1.tar.gz -/dist-git-1.2.tar.gz -/dist-git-1.3.tar.gz -/dist-git-1.4.tar.gz -/dist-git-1.5.tar.gz -/dist-git-1.6.tar.gz -/dist-git-1.7.tar.gz -/dist-git-1.8.tar.gz -/dist-git-1.9.tar.gz -/dist-git-1.10.tar.gz -/dist-git-1.11.tar.gz +/dist-git-*.tar.gz diff --git a/dist-git.spec b/dist-git.spec index e449fe4..b9bec9d 100644 --- a/dist-git.spec +++ b/dist-git.spec @@ -3,12 +3,12 @@ %global installdir /var/lib/dist-git Name: dist-git -Version: 1.11 -Release: 1%{?dist} +Version: 1.20 +Release: 2%{?dist} Summary: Package source version control system # upload.cgi uses GPLv1 -License: MIT and GPLv1 +License: MIT AND GPL-1.0-only URL: https://github.com/release-engineering/dist-git # Source is created by # git clone https://github.com/release-engineering/dist-git.git @@ -21,27 +21,36 @@ BuildRequires: systemd Requires: httpd Requires: perl(Sys::Syslog) -Requires: dist-git-selinux +Requires: (dist-git-selinux if selinux-policy-targeted) Requires: git Requires: git-daemon Requires: mod_ssl Requires: crudini -Requires: moreutils +%if 0%{?rhel} && 0%{?rhel} < 10 Requires(pre): shadow-utils - -%if 0%{?rhel} && 0%{?rhel} < 8 -Requires: python-requests -Requires: python-configparser -Requires: python-grokmirror -Requires: fedmsg -%else -Requires: python3-requests -Recommends: python3-grokmirror -Requires: python3-fedmsg %endif +Requires: python3-requests +Recommends: python3-grokmirror +Suggests: python3-fedmsg +Suggests: fedora-messaging + +BuildRequires: python3-devel +BuildRequires: python3-pytest +BuildRequires: python3-requests + +# this should be Requires but see https://bugzilla.redhat.com/show_bug.cgi?id=1833810 +Recommends: moreutils + +%if 0%{?fedora} && 0%{?fedora} >= 41 +# The `cgi` module was removed from the Python 3.13 standard library +BuildRequires: python3-legacy-cgi +Requires: python3-legacy-cgi +%endif + + %description -Dist Git is a remote Git repository specifically designed to hold RPM +DistGit is a Git repository specifically designed to hold RPM package sources. @@ -49,16 +58,11 @@ package sources. Summary: SELinux support for dist-git BuildRequires: checkpolicy -BuildRequires: policycoreutils -BuildRequires: selinux-policy-devel BuildRequires: hardlink Requires: %name = %version-%release -%if "%{_selinux_policy_version}" != "" -Requires: selinux-policy >= %{_selinux_policy_version} -%endif -Requires(post): /usr/sbin/semodule, /sbin/restorecon -Requires(postun): /usr/sbin/semodule, /sbin/restorecon +BuildRequires: selinux-policy-devel +%{?selinux_requires} %description selinux @@ -87,12 +91,17 @@ cd - %pre +%if 0%{?rhel} && 0%{?rhel} < 10 # ------------------------------------------------------------------------------ # Users and Groups # ------------------------------------------------------------------------------ getent group packager > /dev/null || \ groupadd -r packager exit 0 +%endif + +%check +%pytest -vv . %install @@ -114,6 +123,8 @@ cp -a configs/httpd/dist-git.conf %{buildroot}%{_sysconfdir}/httpd/conf.d/ cp -a configs/httpd/dist-git/* %{buildroot}%{_sysconfdir}/httpd/conf.d/dist-git/ cp -a configs/systemd/* %{buildroot}%{_unitdir}/ +install -m0644 -D configs/sysusers.d/dist-git.conf %{buildroot}%{_sysusersdir}/dist-git.conf + # ------------------------------------------------------------------------------ # /var/lib/ ...... dynamic persistent files # ------------------------------------------------------------------------------ @@ -137,6 +148,8 @@ install -d %{buildroot}%{_bindir} ln -s %{_datadir}/dist-git/setup_git_package %{buildroot}%{_bindir}/setup_git_package ln -s %{_datadir}/dist-git/mkbranch %{buildroot}%{_bindir}/mkbranch ln -s %{_datadir}/dist-git/mkbranch_branching %{buildroot}%{_bindir}/mkbranch_branching +ln -s %{_datadir}/dist-git/remove_unused_sources %{buildroot}%{_bindir}/remove_unused_sources +mv %{buildroot}%{_datadir}/dist-git/dist-git-gc %{buildroot}%{_bindir}/dist-git-gc # ------------------------------------------------------------------------------ # SELinux @@ -150,7 +163,7 @@ do done cd - -/usr/sbin/hardlink -cv %{buildroot}%{_datadir}/selinux +hardlink -cv %{buildroot}%{_datadir}/selinux %post selinux for selinuxvariant in %{selinux_variants} @@ -198,6 +211,8 @@ fi %{_unitdir}/dist-git@.service %{_unitdir}/dist-git.socket +%{_unitdir}/dist-git-gc.service +%{_unitdir}/dist-git-gc.timer # ------------------------------------------------------------------------------ # /var/lib/ ...... dynamic persistent files @@ -219,14 +234,70 @@ fi %dir %{_datadir}/dist-git %attr (775, -, -) %{_datadir}/dist-git/* +%{_bindir}/dist-git-gc +# TODO: move _datadir executables to _libexecdir, and drop these symlinks +%{_bindir}/mkbranch +%{_bindir}/mkbranch_branching +%{_bindir}/remove_unused_sources +%{_bindir}/setup_git_package +%{_sysusersdir}/dist-git.conf %files selinux %doc selinux/* %{_datadir}/selinux/*/%{modulename}.pp -%{_bindir}/* + %changelog +* Wed Jul 15 2026 Fedora Release Engineering - 1.20-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild + +* Tue Jul 07 2026 Miroslav Suchý 1.20-1 +- Fix tests for Python 3.15: replace removed CGIHTTPRequestHandler + +* Fri Feb 13 2026 Pavel Raiskup 1.19-1 +- Avoid using parameterized and nose +- Add sysusers.d config file to allow rpm to create users/groups automatically + +* Fri Sep 27 2024 Pavel Raiskup 1.18-1 +- replace test on _selinux_policy_version by macro that does it all +- handle situation when _selinux_policy_version is not defined +- silence pylint +- remove rhel7 specific code +- Move %%_bindir symlinks out from dist-git-selinux +- Depend on python3-legacy-cgi for F41+ +- licensing: update the project's COPYING file +- dist-git: move the code into sub-directory + +* Wed Jan 04 2023 Miroslav Suchý 1.17-1 +- use spdx license +- use pytest instead of nose test + +* Mon Oct 5 2020 clime - 1.16-1 +- fixed exceptions for fedora-messaging +- fixed topic for fedora-messaging (to git.lookaside.new) +- spec tweak not to require distgit-selinux in containers +- only Suggests fedmsg +- garbage collection (git gc) script and systemd timer + for its periodic run added + +* Fri Jun 12 2020 clime - 1.15-1 +- added support for fedora-messaging + +* Thu May 21 2020 clime - 1.14-1 +- disable unit tests temporarily as they do not pass + with network disabled during build + +* Thu May 21 2020 clime - 1.13-1 +- fedmsg made an optional (recommnended) dependency +- slight refactoring of upload.cgi script +- tests added and documented + +* Tue May 28 2019 Miroslav Suchy - 1.12-1 +- remove old changelog entries +- do not specify full path for hardlink [RHBZ#1714637] +- add script for removing unused source tarballs in lookaside cache + * Tue Apr 30 2019 clime 1.11-1 - remove python3-configparser require - move scripts to bindir @@ -276,63 +347,3 @@ fi * Wed May 03 2017 clime 1.1-1 - fix default config value for email - fix name/email switch - -* Mon Apr 10 2017 clime 1.0-1 -- big redo of the package -- gitolite dropped from the package (but can be installed additionally) -- pkgdb integration dropped -- upload.cgi updated from FedoraInfra state -- git repos are stored one level higher in fs hiearchy (default: /var/lib/dist-git/git/) -- dist-git.conf completely new -- updated setup_git_package, mkbranch, mkbranch_branching -- updated SELinux policy -- configurable paths to cache dir and git repos - -* Wed Aug 05 2015 Adam Samalik 0.13-1 -- optional cgit_pkg_list.sh parameter (asamalik@redhat.com) -- change mv to cp + rm (asamalik@redhat.com) -- update config to not be Fedora specific (asamalik@redhat.com) -- Change: lookaside dir perms + cgit_pkg_list.sh (asamalik@redhat.com) - -* Mon Jul 20 2015 Adam Samalik 0.12-1 -- config update (asamalik@redhat.com) -- Upload files to new and old paths + remove email (asamalik@redhat.com) - -* Tue May 05 2015 Adam Samalik 0.11-1 -- SELinux subpackage - -* Mon Apr 27 2015 Adam Samalik 0.10-1 -- perl require and files update (asamalik@redhat.com) - -* Thu Apr 23 2015 Adam Samalik 0.9-1 -- update hook update (asamalik@redhat.com) - -* Thu Apr 23 2015 Adam Samalik 0.8-1 -- review update (asamalik@redhat.com) - -* Wed Apr 22 2015 Adam Samalik 0.7-1 -- git hooks permissions (asamalik@redhat.com) -- noreplace configs (asamalik@redhat.com) -- fixes after rpmlint (asamalik@redhat.com) - -* Wed Apr 22 2015 Adam Samalik 0.6-1 -- license + description (asamalik@redhat.com) -- cron files fix (asamalik@redhat.com) - -* Wed Apr 15 2015 Adam Samalik 0.5-1 -- git hook: update-block-push-origin (asamalik@redhat.com) -- lookaside-upload config comments (asamalik@redhat.com) -- gen-acls user fix (asamalik@redhat.com) -- ssl httpd configs as examples (asamalik@redhat.com) - -* Fri Apr 10 2015 Adam Samalik 0.4-1 -- spec and config fix -- systemd services - -* Tue Mar 31 2015 Adam Samalik 0.3-1 -- alpha package (asamalik@redhat.com) - -* Mon Mar 30 2015 Adam Samalik 0.2-1 -- new package built with tito - - diff --git a/packit.yaml b/packit.yaml new file mode 100644 index 0000000..0b8d165 --- /dev/null +++ b/packit.yaml @@ -0,0 +1,24 @@ +upstream_project_url: https://github.com/release-engineering/dist-git +upstream_tag_template: dist-git-{version}-1 +issue_repository: https://github.com/release-engineering/dist-git +copy_upstream_release_description: false + +jobs: +- job: pull_from_upstream + trigger: release + dist_git_branches: + - rawhide + - epel9 + +- job: koji_build + trigger: commit + allowed_committers: ['packit'] + dist_git_branches: + - fedora-all + - epel9 + +- job: bodhi_update + trigger: commit + dist_git_branches: + - fedora-all + - epel9 diff --git a/sources b/sources index 2179611..02a6f8a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (dist-git-1.11.tar.gz) = 7aacb6a7bbb2940a2381486e22ed7b5cb201915c0ca2ecc7d8f86350239bcb2d9f8b9c920c75c55b73e350d855d2a4c8417bd9403f726520136e73cf4f2946b8 +SHA512 (dist-git-1.20.tar.gz) = f68aa733a2d0e0faa8973ced5260a1c5b0f6892c5ebfca977ac17ca3bfbda33225d866bb1c16abe761452d17594399a75815a49f5d941dd2e0c5404a69a1f3be