|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
3669f35 |
%if 0%{?rhel} >= 8 || 0%{?fedora}
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%global use_subpackages 1
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%endif
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
Name: sshguard
|
|
![](https://seccdn.libravatar.org/avatar/5e2e41b4e1572a9f64f0f088247a8eafe3db55091dc758bf582663c1f8cf9f26?s=16&d=retro) |
9bab56b |
Version: 2.4.3
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
7e2b3a1 |
Release: %autorelease
|
|
![](https://seccdn.libravatar.org/avatar/5e2e41b4e1572a9f64f0f088247a8eafe3db55091dc758bf582663c1f8cf9f26?s=16&d=retro) |
9bab56b |
# The entire source code is BSD-3-Clause
|
|
![](https://seccdn.libravatar.org/avatar/5e2e41b4e1572a9f64f0f088247a8eafe3db55091dc758bf582663c1f8cf9f26?s=16&d=retro) |
9bab56b |
# except src/parser/attack_parser.{h,c} is GPL-3.0-or-later
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
# except src/blocker/hash_32a.c & src/blocker/fnv.h which are Public Domain
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
# the latter two get compiled in, the license is thus superseded
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
# src/parser/* is compiled into its own binary %%{_libexecdir}/%%{name}/sshg_parser
|
|
![](https://seccdn.libravatar.org/avatar/0a2c99f599abeae634acb59b05773529632e084fb7511222a78053562bd37e7e?s=16&d=retro) |
aa5341a |
License: BSD-3-Clause AND GPL-3.0-or-later AND LicenseRef-Fedora-Public-Domain
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
Summary: Protects hosts from brute-force attacks against SSH and other services
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
Url: http://www.sshguard.net
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
Source0: http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.gz
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
Source1: %{name}.conf.in
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
Source2: %{name}.whitelist
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
67ea584 |
Patch1: 0001-fix-backend-path-in-example.patch
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
# fnv is a very small implementation of the fnv hash algorithm not worth splitting
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
# into its own package. It has not seen updates since 2012, and upstream does not
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
# distribute it as a stand-alone library
|
|
![](https://seccdn.libravatar.org/avatar/5e2e41b4e1572a9f64f0f088247a8eafe3db55091dc758bf582663c1f8cf9f26?s=16&d=retro) |
9bab56b |
# Public Domain license
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
Provides: bundled(fnv) = 5.0.2
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
# simclist is a small library not worth splitting into its own package, and has not
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
# seen updates since 2011
|
|
![](https://seccdn.libravatar.org/avatar/5e2e41b4e1572a9f64f0f088247a8eafe3db55091dc758bf582663c1f8cf9f26?s=16&d=retro) |
9bab56b |
# BSD-3-Clause license
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
Provides: bundled(simclist) = 1.4.4
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%if 0%{?use_subpackages}
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
3669f35 |
# Require a firewall backend
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
3669f35 |
Requires: %{name}-config = %{version}-%{release}
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
# Autoinstall appropriate firewall backends
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
Recommends: (%{name}-firewalld if firewalld)
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
Recommends: (%{name}-iptables if iptables-services)
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
Recommends: (%{name}-nftables if nftables)
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%endif
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
|
|
![](https://seccdn.libravatar.org/avatar/80291f53aa3d70b7d101ab9ebd5fc0f1120995d1343f3c99cff2a6bcdab33e7d?s=16&d=retro) |
6bc7efa |
BuildRequires: make
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
BuildRequires: gcc
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
BuildRequires: flex
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
BuildRequires: byacc
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
Requires: coreutils
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
Requires: grep
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
Requires: systemd
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
# for systemd service installation support
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%if 0%{?fedora} > 29
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
BuildRequires: systemd-rpm-macros
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%else
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
BuildRequires: systemd
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%endif
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%description
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
Sshguard protects hosts from brute-force attacks against SSH and other
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
services. It aggregates system logs and blocks repeat offenders using one of
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
several firewall backends.
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
Sshguard can read log messages from standard input or monitor one or more log
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
files. Log messages are parsed, line-by-line, for recognized patterns. If an
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
attack, such as several login failures within a few seconds, is detected, the
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
offending IP is blocked. Offenders are unblocked after a set interval, but can
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
be semi-permanently banned using the blacklist option.
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%if 0%{?use_subpackages}
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%package iptables
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
3669f35 |
Requires: iptables-services
|
|
![](https://seccdn.libravatar.org/avatar/5e2e41b4e1572a9f64f0f088247a8eafe3db55091dc758bf582663c1f8cf9f26?s=16&d=retro) |
1942195 |
Requires: %{name}%{?_isa} = %{version}-%{release}
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
3669f35 |
Provides: %{name}-config = %{version}-%{release}
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
Conflicts: %{name}-firewalld %{name}-nftables
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
Summary: Configuration for iptables backend of SSHGuard
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
RemovePathPostfixes: .iptables
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%description iptables
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
Sshguard-iptables provides a configuration file for SSHGuard to use iptables
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
as the firewall backend.
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%package firewalld
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
3669f35 |
Requires: firewalld ipset
|
|
![](https://seccdn.libravatar.org/avatar/5e2e41b4e1572a9f64f0f088247a8eafe3db55091dc758bf582663c1f8cf9f26?s=16&d=retro) |
1942195 |
Requires: %{name}%{?_isa} = %{version}-%{release}
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
3669f35 |
Provides: %{name}-config = %{version}-%{release}
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
Conflicts: %{name}-iptables %{name}-nftables
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
Summary: Configuration for firewalld backend of SSHGuard
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
RemovePathPostfixes: .firewalld
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%description firewalld
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
Sshguard-firewalld provides a configuration file for SSHGuard to use firewalld
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
as the firewall backend.
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%package nftables
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
3669f35 |
Requires: nftables
|
|
![](https://seccdn.libravatar.org/avatar/5e2e41b4e1572a9f64f0f088247a8eafe3db55091dc758bf582663c1f8cf9f26?s=16&d=retro) |
1942195 |
Requires: %{name}%{?_isa} = %{version}-%{release}
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
3669f35 |
Provides: %{name}-config = %{version}-%{release}
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
Conflicts: %{name}-firewalld %{name}-iptables
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
Summary: Configuration for nftables backend of SSHGuard
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
RemovePathPostfixes: .nftables
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%description nftables
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
Sshguard-nftables provides a configuration file for SSHGuard to use nftables
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
as the firewall backend.
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%endif
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
#-- PREP, BUILD & INSTALL -----------------------------------------------------#
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%prep
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%autosetup -p1
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
sed -i -e "s|%%{_bindir}|%{_bindir}|g" \
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
-e "s|%%{_sbindir}|%{_sbindir}|g" \
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
-e "s|%%{_libexecdir}|%{_libexecdir}|g" \
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
-e "s|%%{_sysconfdir}|%{_sysconfdir}|g" \
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
-e "s|%%{_initddir}|%{_initddir}|g" \
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
-e "s|%%{_localstatedir}|%{_localstatedir}|g" \
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
-e "s|%%{_sharedstatedir}|%{_sharedstatedir}|g" \
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
-e "s|%%{_rundir}|%{_rundir}|g" \
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
-e "s|%%{_pkgdocdir}|%{_pkgdocdir}|g" \
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
-e "s|%%{name}|%{name}|g" \
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
fc221f7 |
%{SOURCE1} %{SOURCE2}
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%build
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%{configure} --prefix=%{_prefix} --sysconfdir=%{_sysconfdir} --sbindir=%{_sbindir} --libexecdir=%{_libexecdir}/%{name}
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%{make_build}
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%install
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%{make_install}
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
53affff |
install -p -d -m 0755 %{buildroot}%{_pkgdocdir}/
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
53affff |
install -p -d -m 0755 %{buildroot}%{_sysconfdir}/
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
53affff |
install -p -d -m 0755 %{buildroot}%{_sharedstatedir}/%{name}/
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%if 0%{?use_subpackages}
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
53affff |
sed -e "s|__BACKEND__|sshg-fw-firewalld|g" %{SOURCE1} > %{buildroot}%{_sysconfdir}/%{name}.conf.firewalld
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
53affff |
sed -e "s|__BACKEND__|sshg-fw-nft-sets|g" %{SOURCE1} > %{buildroot}%{_sysconfdir}/%{name}.conf.nftables
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
53affff |
sed -e "s|__BACKEND__|sshg-fw-iptables|g" %{SOURCE1} > %{buildroot}%{_sysconfdir}/%{name}.conf.iptables
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
53affff |
chmod 0644 %{buildroot}%{_sysconfdir}/%{name}.conf.*
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%endif
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
53affff |
install -p -m 0644 %{SOURCE2} %{buildroot}%{_sysconfdir}/%{name}.whitelist
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
53affff |
install -p -d -m 0755 %{buildroot}%{_unitdir}
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
sed -i -e "/ExecStartPre=/d" examples/%{name}.service
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
sed -i -e "s|ExecStart=/usr/local/sbin/sshguard|ExecStart=%{_sbindir}/%{name}|g" examples/%{name}.service
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
53affff |
install -p -m 0644 examples/%{name}.service %{buildroot}%{_unitdir}/
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
# cleanup
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
# *.plist is only relevant for MacOS systems
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
rm examples/net.sshguard.plist
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
# we already ship a service file
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
rm examples/sshguard.service
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%check
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
make check
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
#-- SCRIPTLETS -----------------------------------------------------------------#
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%post
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%systemd_post %{name}.service
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%if 0%{?use_subpackages}
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
# with iptables backend, sshguard does not auto-create its tables, so we do that here
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%post iptables
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
if [[ $1 -eq 1 ]]; then
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
iptables -N sshguard
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
iptables -A INPUT -j sshguard
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
iptables-save > /etc/sysconfig/iptables
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
ip6tables -N sshguard
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
ip6tables -A INPUT -j sshguard
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
ip6tables-save > /etc/sysconfig/ip6tables
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
fi
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
exit 0
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%endif
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%preun
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%systemd_preun %{name}.service
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%postun
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%systemd_postun_with_restart %{name}.service
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
#-- FILES ---------------------------------------------------------------------#
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%files
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%doc examples
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%doc README.rst
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%doc CONTRIBUTING.rst
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%license COPYING
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%{_sbindir}/%{name}
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%{_mandir}/man8/%{name}*
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%{_mandir}/man7/%{name}*
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%dir %{_sharedstatedir}/%{name}/
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%dir %{_libexecdir}/%{name}/
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%{_libexecdir}/%{name}/sshg-logtail
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%{_libexecdir}/%{name}/sshg-parser
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%{_libexecdir}/%{name}/sshg-blocker
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%{_libexecdir}/%{name}/sshg-fw-firewalld
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%{_libexecdir}/%{name}/sshg-fw-hosts
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%{_libexecdir}/%{name}/sshg-fw-ipfilter
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%{_libexecdir}/%{name}/sshg-fw-ipfw
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%{_libexecdir}/%{name}/sshg-fw-ipset
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%{_libexecdir}/%{name}/sshg-fw-iptables
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%{_libexecdir}/%{name}/sshg-fw-null
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%{_libexecdir}/%{name}/sshg-fw-pf
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%{_libexecdir}/%{name}/sshg-fw-nft-sets
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%{_unitdir}/%{name}.service
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%config(noreplace) %{_sysconfdir}/%{name}.whitelist
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%if 0%{?use_subpackages}
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%files iptables
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%config(noreplace) %{_sysconfdir}/%{name}.conf.iptables
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%files firewalld
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%config(noreplace) %{_sysconfdir}/%{name}.conf.firewalld
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%files nftables
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%config(noreplace) %{_sysconfdir}/%{name}.conf.nftables
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%endif
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
#-- CHANGELOG -----------------------------------------------------------------#
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
a1c0026 |
%changelog
|
|
![](https://seccdn.libravatar.org/avatar/964376b8a445380c160fc4568af9832aa238a6cb97fcf8696d82afe7167af303?s=16&d=retro) |
7e2b3a1 |
%autochangelog
|