diff --git a/.github/images/card.svg b/.github/images/card.svg
index e4b128943..8e90cde4f 100644
--- a/.github/images/card.svg
+++ b/.github/images/card.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/README.md b/README.md
index 8f1f47560..c93d2fda7 100644
--- a/README.md
+++ b/README.md
@@ -52,7 +52,7 @@ We keep at least the last 5 minor versions (_with all releases_) of each package
|------------|-------------|--------------------|
| `7.x` | 1 Jun 2024 | 31 Dec 2024 |
| `8.x` | 1 Jun 2025 | 31 Dec 2025 |
-| `9.x` | 1 Sep 2026 | 31 Dec 2026 |
+| `9.x` | 1 Sep 2027 | 31 Dec 2027 |
### [_perfecto_](https://kaos.sh/perfecto) and [bibop](https://kaos.sh/bibop) check status
diff --git a/specs/7zip.spec b/specs/7zip.spec
index d7943613a..b2526b71d 100644
--- a/specs/7zip.spec
+++ b/specs/7zip.spec
@@ -5,7 +5,7 @@
################################################################################
%define major_ver 24
-%define minor_ver 08
+%define minor_ver 09
%define shortname 7z
@@ -20,13 +20,12 @@ Group: Applications/Archiving
URL: https://7-zip.org
Source0: https://7-zip.org/a/7z%{major_ver}%{minor_ver}-src.tar.xz
-Source1: https://github.com/nidud/asmc/raw/master/bin/asmc
Source100: checksum.sha512
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
-BuildRequires: make gcc-c++ dos2unix
+BuildRequires: make gcc-c++ asmc dos2unix
Provides: %{name} = %{version}-%{release}
Provides: %{shortname} = %{version}-%{release}
@@ -47,13 +46,6 @@ dos2unix DOC/*.txt
# perfecto:ignore
chmod -x DOC/*.txt
-# Install asmc to deps directory
-mkdir deps
-cp %{SOURCE1} deps/asmc
-
-# perfecto:ignore
-chmod +x deps/asmc
-
%if 0%{?rhel} < 9
sed -i -e 's/-Waddress-of-packed-member//' -e 's/-Wcast-align=strict//' C/warn_gcc.mak CPP/7zip/warn_gcc.mak
%endif
@@ -63,9 +55,6 @@ sed -i 's#LFLAGS_ALL = -s#LFLAGS_ALL =#' CPP/7zip/7zip_gcc.mak
sed -i 's/$(CXX) -o $(PROGPATH)/$(CXX) -Wl,-z,noexecstack -o $(PROGPATH)/' CPP/7zip/7zip_gcc.mak
%build
-# Add directory with asmc to PATH
-export PATH="$(pwd)/deps:$PATH"
-
pushd CPP/7zip/Bundles/Alone2
%{make_build} -f ../../cmpl_gcc_x64.mak
popd
@@ -89,6 +78,9 @@ ln -sf %{_bindir}/7zz %{buildroot}%{_bindir}/%{shortname}
################################################################################
%changelog
+* Fri Jan 24 2025 Anton Novojilov - 24.09-0
+- https://sourceforge.net/p/sevenzip/discussion/45797/thread/b95432c7ac/
+
* Fri Sep 06 2024 Anton Novojilov - 24.08-0
- https://sourceforge.net/p/sevenzip/discussion/45797/thread/f162d68dcd/
diff --git a/specs/adoptium/jdk11.spec b/specs/adoptium/jdk11.spec
index fa4f5decc..d3cf90289 100644
--- a/specs/adoptium/jdk11.spec
+++ b/specs/adoptium/jdk11.spec
@@ -8,15 +8,15 @@
################################################################################
-%define jdk_major 11.0.24
-%define jdk_minor 8
+%define jdk_major 11.0.26
+%define jdk_minor 4
%define jdk_patch %{nil}
%define install_dir %{_prefix}/java/%{name}-%{version}
%define jdk_bin_dir %{install_dir}/bin
%define jdk_man_dir %{install_dir}/man/man1
-%define alt_priority 1169
+%define alt_priority 1170
################################################################################
@@ -111,6 +111,9 @@ deps="$deps --slave %{_sysconfdir}/profile.d/java.sh java-profile %{install_dir}
################################################################################
%changelog
+* Sat Jan 25 2025 Anton Novojilov - 11.0.26-4
+- https://github.com/adoptium/temurin11-binaries/releases/tag/jdk-11.0.26%2B4
+
* Sat Aug 17 2024 Anton Novojilov - 11.0.24-8
- https://adoptium.net/en-GB/temurin/release-notes/?version=jdk-11.0.24+8
diff --git a/specs/adoptium/jdk17.spec b/specs/adoptium/jdk17.spec
index 7d73ad1d8..f4d538776 100644
--- a/specs/adoptium/jdk17.spec
+++ b/specs/adoptium/jdk17.spec
@@ -8,7 +8,7 @@
################################################################################
-%define jdk_major 17.0.12
+%define jdk_major 17.0.14
%define jdk_minor 7
%define jdk_patch %{nil}
@@ -16,7 +16,7 @@
%define jdk_bin_dir %{install_dir}/bin
%define jdk_man_dir %{install_dir}/man/man1
-%define alt_priority 1757
+%define alt_priority 1758
################################################################################
@@ -111,6 +111,12 @@ deps="$deps --slave %{_sysconfdir}/profile.d/java.sh java-profile %{install_dir}
################################################################################
%changelog
+* Sat Jan 25 2025 Anton Novojilov - 17.0.14-7
+- https://github.com/adoptium/temurin17-binaries/releases/tag/jdk-17.0.14%2B7
+
+* Sat Nov 02 2024 Anton Novojilov - 17.0.13-11
+- https://adoptium.net/en-GB/temurin/release-notes/?version=jdk-17.0.13+11
+
* Sat Aug 17 2024 Anton Novojilov - 17.0.12-7
- https://adoptium.net/en-GB/temurin/release-notes/?version=jdk-17.0.12+7
diff --git a/specs/adoptium/jdk21.spec b/specs/adoptium/jdk21.spec
index ec0ce7ec1..107c96a0d 100644
--- a/specs/adoptium/jdk21.spec
+++ b/specs/adoptium/jdk21.spec
@@ -8,7 +8,7 @@
################################################################################
-%define jdk_major 21.0.4
+%define jdk_major 21.0.6
%define jdk_minor 7
%define jdk_patch %{nil}
@@ -16,7 +16,7 @@
%define jdk_bin_dir %{install_dir}/bin
%define jdk_man_dir %{install_dir}/man/man1
-%define alt_priority 2152
+%define alt_priority 2153
################################################################################
@@ -111,6 +111,9 @@ deps="$deps --slave %{_sysconfdir}/profile.d/java.sh java-profile %{install_dir}
################################################################################
%changelog
+* Sat Jan 25 2025 Anton Novojilov - 21.0.6-7
+- https://github.com/adoptium/temurin21-binaries/releases/tag/jdk-21.0.6%2B7
+
* Sat Aug 17 2024 Anton Novojilov - 21.0.4-7
- https://adoptium.net/en-GB/temurin/release-notes/?version=jdk-21.0.4+7
diff --git a/specs/adoptium/jdk8.spec b/specs/adoptium/jdk8.spec
index 9db708bf6..db69e15ba 100644
--- a/specs/adoptium/jdk8.spec
+++ b/specs/adoptium/jdk8.spec
@@ -8,15 +8,15 @@
################################################################################
-%define jdk_major 422
-%define jdk_minor b05
+%define jdk_major 442
+%define jdk_minor b06
%define jdk_patch %{nil}
%define install_dir %{_prefix}/java/%{name}-%{version}
%define jdk_bin_dir %{install_dir}/bin
%define jdk_man_dir %{install_dir}/man/man1
-%define alt_priority 867
+%define alt_priority 868
################################################################################
@@ -112,6 +112,9 @@ deps="$deps --slave %{_sysconfdir}/profile.d/java.sh java-profile %{install_dir}
################################################################################
%changelog
+* Sat Jan 25 2025 Anton Novojilov - 1.8.0.442-b06
+- https://github.com/adoptium/temurin8-binaries/releases/tag/jdk8u442-b06
+
* Sat Aug 17 2024 Anton Novojilov - 1.8.0.422-b05
- https://adoptium.net/en-GB/temurin/release-notes/?version=jdk8u422-b05
diff --git a/specs/adoptium/jre11.spec b/specs/adoptium/jre11.spec
index d345cbfb5..6ab1bd3ce 100644
--- a/specs/adoptium/jre11.spec
+++ b/specs/adoptium/jre11.spec
@@ -8,15 +8,15 @@
################################################################################
-%define jdk_major 11.0.24
-%define jdk_minor 8
+%define jdk_major 11.0.26
+%define jdk_minor 4
%define jdk_patch %{nil}
%define install_dir %{_prefix}/java/%{name}-%{version}
%define jdk_bin_dir %{install_dir}/bin
%define jdk_man_dir %{install_dir}/man/man1
-%define alt_priority 1119
+%define alt_priority 1120
################################################################################
@@ -111,6 +111,9 @@ deps="$deps --slave %{_sysconfdir}/profile.d/java.sh java-profile %{install_dir}
################################################################################
%changelog
+* Sat Jan 25 2025 Anton Novojilov - 11.0.26-4
+- https://github.com/adoptium/temurin11-binaries/releases/tag/jdk-11.0.26%2B4
+
* Sat Aug 17 2024 Anton Novojilov - 11.0.24-8
- https://adoptium.net/en-GB/temurin/release-notes/?version=jdk-11.0.24+8
diff --git a/specs/adoptium/jre17.spec b/specs/adoptium/jre17.spec
index 50c3a85de..0a18295b1 100644
--- a/specs/adoptium/jre17.spec
+++ b/specs/adoptium/jre17.spec
@@ -8,7 +8,7 @@
################################################################################
-%define jdk_major 17.0.12
+%define jdk_major 17.0.14
%define jdk_minor 7
%define jdk_patch %{nil}
@@ -16,7 +16,7 @@
%define jdk_bin_dir %{install_dir}/bin
%define jdk_man_dir %{install_dir}/man/man1
-%define alt_priority 1707
+%define alt_priority 1708
################################################################################
@@ -111,6 +111,9 @@ deps="$deps --slave %{_sysconfdir}/profile.d/java.sh java-profile %{install_dir}
################################################################################
%changelog
+* Sat Jan 25 2025 Anton Novojilov - 17.0.14-7
+- https://github.com/adoptium/temurin17-binaries/releases/tag/jdk-17.0.14%2B7
+
* Sat Aug 17 2024 Anton Novojilov - 17.0.12-7
- https://adoptium.net/en-GB/temurin/release-notes/?version=jdk-17.0.12+7
diff --git a/specs/adoptium/jre21.spec b/specs/adoptium/jre21.spec
index 7b39d7477..5ede24eef 100644
--- a/specs/adoptium/jre21.spec
+++ b/specs/adoptium/jre21.spec
@@ -8,7 +8,7 @@
################################################################################
-%define jdk_major 21.0.4
+%define jdk_major 21.0.6
%define jdk_minor 7
%define jdk_patch %{nil}
@@ -16,7 +16,7 @@
%define jdk_bin_dir %{install_dir}/bin
%define jdk_man_dir %{install_dir}/man/man1
-%define alt_priority 2102
+%define alt_priority 2103
################################################################################
@@ -111,6 +111,9 @@ deps="$deps --slave %{_sysconfdir}/profile.d/java.sh java-profile %{install_dir}
################################################################################
%changelog
+* Sat Jan 25 2025 Anton Novojilov - 21.0.6-7
+- https://github.com/adoptium/temurin21-binaries/releases/tag/jdk-21.0.6%2B7
+
* Sat Aug 17 2024 Anton Novojilov - 21.0.4-7
- https://adoptium.net/en-GB/temurin/release-notes/?version=jdk-21.0.4+7
diff --git a/specs/adoptium/jre8.spec b/specs/adoptium/jre8.spec
index 8f8a84189..0a8314786 100644
--- a/specs/adoptium/jre8.spec
+++ b/specs/adoptium/jre8.spec
@@ -8,15 +8,15 @@
################################################################################
-%define jdk_major 422
-%define jdk_minor b05
+%define jdk_major 442
+%define jdk_minor b06
%define jdk_patch %{nil}
%define install_dir %{_prefix}/java/%{name}-%{version}
%define jdk_bin_dir %{install_dir}/bin
%define jdk_man_dir %{install_dir}/man/man1
-%define alt_priority 817
+%define alt_priority 818
################################################################################
@@ -112,6 +112,9 @@ deps="$deps --slave %{_sysconfdir}/profile.d/java.sh java-profile %{install_dir}
################################################################################
%changelog
+* Sat Jan 25 2025 Anton Novojilov - 1.8.0.442-b06
+- https://github.com/adoptium/temurin8-binaries/releases/tag/jdk8u442-b06
+
* Sat Aug 17 2024 Anton Novojilov - 1.8.0.422-b05
- https://adoptium.net/en-GB/temurin/release-notes/?version=jdk8u422-b05
diff --git a/specs/asmc.spec b/specs/asmc.spec
new file mode 100644
index 000000000..f1ac932f3
--- /dev/null
+++ b/specs/asmc.spec
@@ -0,0 +1,61 @@
+################################################################################
+
+%global crc_check pushd ../SOURCES ; sha512sum -c %{SOURCE100} ; popd
+
+################################################################################
+
+%define commit_sha 916f1e580966e76f25c85e35c24592ae7838dc65
+
+################################################################################
+
+Summary: Masm compatible assembler
+Name: asmc
+Version: 2.36.12
+Release: 0%{?dist}
+Group: Development/Tools
+License: GPL
+URL: https://github.com/nidud/asmc
+
+Source0: https://github.com/nidud/asmc/raw/%{commit_sha}/bin/asmc
+Source1: https://github.com/nidud/asmc/raw/%{commit_sha}/bin/asmc64
+
+Source100: checksum.sha512
+
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+
+Provides: %{name} = %{version}-%{release}
+
+################################################################################
+
+%description
+Asmc Macro Assembler.
+
+################################################################################
+
+%prep
+%{crc_check}
+
+%build
+%install
+rm -rf %{buildroot}
+
+install -dm 755 %{buildroot}%{_bindir}
+
+install -pm 755 %{SOURCE0} %{buildroot}%{_bindir}/
+install -pm 755 %{SOURCE1} %{buildroot}%{_bindir}/
+
+%clean
+rm -rf %{buildroot}
+
+################################################################################
+
+%files
+%defattr(-,root,root,-)
+%{_bindir}/%{name}
+%{_bindir}/%{name}64
+
+################################################################################
+
+%changelog
+* Fri Jan 24 2025 Anton Novojilov - 2.36.12-0
+- Initial build for kaos repository
diff --git a/specs/bat.spec b/specs/bat.spec
index d21da22c7..1fb6fbf18 100644
--- a/specs/bat.spec
+++ b/specs/bat.spec
@@ -10,7 +10,7 @@
Summary: A cat(1) clone with wings
Name: bat
-Version: 0.24.0
+Version: 0.25.0
Release: 0%{?dist}
Group: Applications/Text
License: MIT and Apache 2.0
@@ -86,6 +86,9 @@ rm -rf %{buildroot}
################################################################################
%changelog
+* Fri Jan 24 2025 Anton Novojilov - 0.25.0-0
+- https://github.com/sharkdp/bat/releases/tag/v0.25.0
+
* Wed Dec 06 2023 Anton Novojilov - 0.24.0-0
- https://github.com/sharkdp/bat/releases/tag/v0.24.0
diff --git a/specs/createrepo_c.spec b/specs/createrepo_c.spec
index 47f332c08..878c793c0 100644
--- a/specs/createrepo_c.spec
+++ b/specs/createrepo_c.spec
@@ -21,7 +21,7 @@
Summary: Creates a common metadata repository
Name: createrepo_c
-Version: 1.1.4
+Version: 1.2.0
Release: 0%{?dist}
License: GPLv2
Group: Development/Tools
@@ -88,13 +88,13 @@ These development files are for easy manipulation with a repodata.
%package -n %{python_base}-%{name}
-Summary: Python bindings for the createrepo_c library
-Group: Development/Languages
+Summary: Python bindings for the createrepo_c library
+Group: Development/Languages
BuildRequires: %{python_base}-devel %{python_base}-libs
-Requires: %{python_base}
-Requires: %{name} = %{version}-%{release}
+Requires: %{python_base}
+Requires: %{name} = %{version}-%{release}
%description -n %{python_base}-%{name}
Python bindings for the createrepo_c library.
@@ -188,6 +188,9 @@ rm -rf %{buildroot}
################################################################################
%changelog
+* Fri Jan 24 2025 Anton Novojilov - 1.2.0-0
+- https://github.com/rpm-software-management/createrepo_c/compare/1.1.4...1.2.0
+
* Thu Aug 15 2024 Anton Novojilov - 1.1.4-0
- https://github.com/rpm-software-management/createrepo_c/compare/1.1.3...1.1.4
diff --git a/specs/curl.spec b/specs/curl.spec
index 2fa37ddfe..ab28caa97 100644
--- a/specs/curl.spec
+++ b/specs/curl.spec
@@ -10,7 +10,7 @@
Summary: Utility for getting files from remote servers
Name: curl
-Version: 8.9.1
+Version: 8.11.1
Release: 0%{?dist}
License: MIT
Group: Applications/Internet
@@ -140,7 +140,7 @@ rm -rf %{buildroot}
%files
%defattr(-,root,root,-)
-%doc CHANGES README* docs/*.md
+%doc CHANGES.md README docs/*.md
%{_bindir}/%{name}
%{_mandir}/man1/%{name}.1*
@@ -164,6 +164,18 @@ rm -rf %{buildroot}
################################################################################
%changelog
+* Fri Jan 24 2025 Anton Novojilov - 8.11.1-0
+- https://curl.se/ch/8.11.1.html
+
+* Fri Jan 24 2025 Anton Novojilov - 8.11.0-0
+- https://curl.se/ch/8.11.0.html
+
+* Fri Jan 24 2025 Anton Novojilov - 8.10.1-0
+- https://curl.se/ch/8.10.1.html
+
+* Fri Jan 24 2025 Anton Novojilov - 8.10.0-0
+- https://curl.se/ch/8.10.0.html
+
* Thu Aug 15 2024 Anton Novojilov - 8.9.1-0
- https://curl.se/ch/8.9.1.html
diff --git a/specs/elixir.spec b/specs/elixir.spec
index c3803f6f2..6aabcb3d0 100644
--- a/specs/elixir.spec
+++ b/specs/elixir.spec
@@ -10,7 +10,7 @@
Summary: A modern approach to programming for the Erlang VM
Name: elixir
-Version: 1.17.3
+Version: 1.18.2
Release: 0%{?dist}
License: ASL 2.0 and ERPL
Group: Development/Tools
@@ -82,6 +82,15 @@ rm -rf %{buildroot}
################################################################################
%changelog
+* Fri Jan 24 2025 Anton Novojilov - 1.18.2-0
+- https://github.com/elixir-lang/elixir/releases/tag/v1.18.2
+
+* Fri Jan 24 2025 Anton Novojilov - 1.18.1-0
+- https://github.com/elixir-lang/elixir/releases/tag/v1.18.1
+
+* Mon Dec 23 2024 Anton Novojilov - 1.18.0-0
+- https://github.com/elixir-lang/elixir/releases/tag/v1.18.0
+
* Fri Sep 20 2024 Anton Novojilov - 1.17.3-0
- https://github.com/elixir-lang/elixir/releases/tag/v1.17.3
diff --git a/specs/erlang/erlang25.spec b/specs/erlang/erlang25.spec
index 966ac9b99..ce190e0c7 100644
--- a/specs/erlang/erlang25.spec
+++ b/specs/erlang/erlang25.spec
@@ -23,7 +23,7 @@
%define eprefix %{_prefix}%{_lib32}
%define ver_maj 25
%define ver_min 3
-%define ver_patch 2.14
+%define ver_patch 2.16
%define ver_suffix %{ver_min}.%{ver_patch}
%define ver_string %{ver_maj}.%{ver_suffix}
%define realname erlang
@@ -1021,6 +1021,12 @@ rm -rf %{buildroot}
################################################################################
%changelog
+* Fri Jan 24 2025 Anton Novojilov - 25.3.2.16-0
+- https://github.com/erlang/otp/releases/tag/OTP-25.3.2.16
+
+* Tue Oct 22 2024 Anton Novojilov - 25.3.2.15-0
+- https://github.com/erlang/otp/releases/tag/OTP-25.3.2.15
+
* Sun Aug 04 2024 Anton Novojilov - 25.3.2.13-0
- https://github.com/erlang/otp/releases/tag/OTP-25.3.2.13
diff --git a/specs/erlang/erlang26.spec b/specs/erlang/erlang26.spec
index 1739d7ff2..f89be8ec4 100644
--- a/specs/erlang/erlang26.spec
+++ b/specs/erlang/erlang26.spec
@@ -23,7 +23,7 @@
%define eprefix %{_prefix}%{_lib32}
%define ver_maj 26
%define ver_min 2
-%define ver_patch 5.3
+%define ver_patch 5.6
%define ver_suffix %{ver_min}.%{ver_patch}
%define ver_string %{ver_maj}.%{ver_suffix}
%define realname erlang
@@ -1021,6 +1021,12 @@ rm -rf %{buildroot}
################################################################################
%changelog
+* Fri Jan 24 2025 Anton Novojilov - 26.2.5.6-0
+- https://github.com/erlang/otp/releases/tag/OTP-26.2.5.6
+
+* Tue Oct 22 2024 Anton Novojilov - 26.2.5.4-0
+- https://github.com/erlang/otp/releases/tag/OTP-26.2.5.4
+
* Fri Sep 20 2024 Anton Novojilov - 26.2.5.3-0
- https://github.com/erlang/otp/releases/tag/OTP-26.2.5.3
diff --git a/specs/erlang/erlang27.spec b/specs/erlang/erlang27.spec
index 1facdfdfc..3761443a7 100644
--- a/specs/erlang/erlang27.spec
+++ b/specs/erlang/erlang27.spec
@@ -22,7 +22,8 @@
%define elibdir %{_libdir}/erlang/lib
%define eprefix %{_prefix}%{_lib32}
%define ver_maj 27
-%define ver_min 1
+%define ver_min 2
+%define ver_patch 1
%define ver_suffix %{ver_min}%{?ver_patch:.%{ver_patch}}
%define ver_string %{ver_maj}.%{ver_suffix}
%define realname erlang
@@ -1002,6 +1003,12 @@ rm -rf %{buildroot}
################################################################################
%changelog
+* Fri Jan 24 2025 Anton Novojilov - 27.2.1-0
+- https://github.com/erlang/otp/releases/tag/OTP-27.2.1
+
+* Tue Oct 22 2024 Anton Novojilov - 27.1.2-0
+- https://github.com/erlang/otp/releases/tag/OTP-27.1.2
+
* Fri Sep 20 2024 Anton Novojilov - 27.1-0
- https://github.com/erlang/otp/releases/tag/OTP-27.1
diff --git a/specs/etcd.spec b/specs/etcd.spec
index dd7f17385..ab502e2ff 100644
--- a/specs/etcd.spec
+++ b/specs/etcd.spec
@@ -10,19 +10,19 @@
Summary: A highly-available key value store for shared configuration
Name: etcd
-Version: 3.5.15
+Version: 3.5.17
Release: 0%{?dist}
Group: Applications/Internet
License: APLv2
URL: https://etcd.io
-Source0: https://github.com/etcd-io/%{name}/archive/refs/tags/v%{version}.tar.gz
+Source0: https://github.com/etcd-io/etcd/archive/refs/tags/v%{version}.tar.gz
Source100: checksum.sha512
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
-BuildRequires: git golang >= 1.21
+BuildRequires: git golang >= 1.22
Provides: %{name} = %{version}-%{release}
@@ -83,7 +83,7 @@ rm -rf %{buildroot}
%files
%defattr(-,root,root,-)
-%doc LICENSE README.md ROADMAP.md GOVERNANCE.md MAINTAINERS Documentation
+%doc LICENSE README.md ROADMAP.md GOVERNANCE.md Documentation
%{_bindir}/etcd
%{_bindir}/etcdctl
%{_bindir}/etcdutl
@@ -91,6 +91,9 @@ rm -rf %{buildroot}
################################################################################
%changelog
+* Fri Jan 24 2025 Anton Novojilov - 3.5.17-0
+- https://github.com/etcd-io/etcd/releases/tag/v3.5.17
+
* Thu Aug 15 2024 Anton Novojilov - 3.5.15-0
- https://github.com/etcd-io/etcd/releases/tag/v3.5.15
diff --git a/specs/eza.spec b/specs/eza.spec
index bd50a0f0c..0e859643a 100644
--- a/specs/eza.spec
+++ b/specs/eza.spec
@@ -1,24 +1,32 @@
################################################################################
-%define checksum 2198529bf8fbabf069dc232f106c2c474e29b9d7571611f64e04299e0899b33b
+%global crc_check pushd ../SOURCES ; sha512sum -c %{SOURCE100} ; popd
################################################################################
-Summary: A modern alternative to ls
-Name: eza
-Version: 0.19.2
-Release: 0%{?dist}
-Group: Development/Tools
-License: MIT
-URL: https://eza.rocks
+%{!?_without_check: %define _with_check 1}
-Source0: https://github.com/eza-community/eza/releases/download/v%{version}/eza_x86_64-unknown-linux-gnu.tar.gz
-Source1: https://github.com/eza-community/eza/releases/download/v%{version}/completions-%{version}.tar.gz
-Source2: https://github.com/eza-community/eza/releases/download/v%{version}/man-%{version}.tar.gz
+################################################################################
+
+Summary: A modern alternative to ls
+Name: eza
+Version: 0.20.18
+Release: 0%{?dist}
+Group: Development/Tools
+License: MIT
+URL: https://eza.rocks
+
+Source0: https://github.com/eza-community/eza/archive/refs/tags/v%{version}.tar.gz
+Source1: https://github.com/eza-community/eza/releases/download/v%{version}/completions-%{version}.tar.gz
+Source2: https://github.com/eza-community/eza/releases/download/v%{version}/man-%{version}.tar.gz
+
+Source100: checksum.sha512
+
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
-BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+BuildRequires: cargo
-Provides: %{name} = %{version}-%{release}
+Provides: %{name} = %{version}-%{release}
################################################################################
@@ -35,23 +43,22 @@ featureful, more user-friendly version of ls.
################################################################################
%prep
-if [[ $(sha256sum -b %{SOURCE0} | cut -f1 -d' ') != "%{checksum}" ]] ; then
- echo "Invalid source checksum"
- exit 1
-fi
+%{crc_check}
-%autosetup -c
+%setup -qn %{name}-%{version}
tar xzf %{SOURCE1}
tar xzf %{SOURCE2}
%build
+cargo build --release --verbose
+
%install
rm -rf %{buildroot}
install -dm 755 %{buildroot}%{_bindir}
-install -pm 755 %{name} %{buildroot}%{_bindir}/
+install -pm 755 target/release/%{name} %{buildroot}%{_bindir}/
install -pDm 644 target/completions-%{version}/%{name} \
%{buildroot}%{_datadir}/bash-completion/completions/%{name}
@@ -69,6 +76,14 @@ install -pDm 644 target/man-%{version}/%{name}_colors.5 \
ln -s %{name} %{buildroot}%{_bindir}/exa
+%check
+%if %{?_with_check:1}%{?_without_check:0}
+cargo test
+%endif
+
+%clean
+rm -rf %{buildroot}
+
################################################################################
%files
@@ -83,5 +98,8 @@ ln -s %{name} %{buildroot}%{_bindir}/exa
################################################################################
%changelog
+* Fri Jan 24 2025 Anton Novojilov - 0.20.18-0
+- https://github.com/eza-community/eza/releases/tag/v0.20.18
+
* Wed Sep 11 2024 Anton Novojilov - 0.19.2-0
- Initial build for kaos repository
diff --git a/specs/git.spec b/specs/git.spec
index 5b494a1a2..abb9ea4b5 100644
--- a/specs/git.spec
+++ b/specs/git.spec
@@ -15,7 +15,7 @@
Summary: Core git tools
Name: git
-Version: 2.46.0
+Version: 2.48.1
Release: 0%{?dist}
License: GPL
Group: Development/Tools
@@ -275,6 +275,30 @@ rm -rf %{buildroot}
################################################################################
%changelog
+* Thu Aug 15 2024 Anton Novojilov - 2.48.1-0
+- https://github.com/git/git/blob/master/Documentation/RelNotes/2.48.1.txt
+
+* Thu Aug 15 2024 Anton Novojilov - 2.48.0-0
+- https://github.com/git/git/blob/master/Documentation/RelNotes/2.48.0.txt
+
+* Thu Aug 15 2024 Anton Novojilov - 2.47.2-0
+- https://github.com/git/git/blob/master/Documentation/RelNotes/2.47.2.txt
+
+* Thu Aug 15 2024 Anton Novojilov - 2.47.1-0
+- https://github.com/git/git/blob/master/Documentation/RelNotes/2.47.1.txt
+
+* Thu Aug 15 2024 Anton Novojilov - 2.47.0-0
+- https://github.com/git/git/blob/master/Documentation/RelNotes/2.47.0.txt
+
+* Thu Aug 15 2024 Anton Novojilov - 2.46.3-0
+- https://github.com/git/git/blob/master/Documentation/RelNotes/2.46.3.txt
+
+* Thu Aug 15 2024 Anton Novojilov - 2.46.2-0
+- https://github.com/git/git/blob/master/Documentation/RelNotes/2.46.2.txt
+
+* Thu Aug 15 2024 Anton Novojilov - 2.46.1-0
+- https://github.com/git/git/blob/master/Documentation/RelNotes/2.46.1.txt
+
* Thu Aug 15 2024 Anton Novojilov - 2.46.0-0
- https://github.com/git/git/blob/master/Documentation/RelNotes/2.46.0.txt
diff --git a/specs/golang/golang.spec b/specs/golang/golang.spec
index 4ba1980b2..5150ba06e 100644
--- a/specs/golang/golang.spec
+++ b/specs/golang/golang.spec
@@ -31,7 +31,7 @@
Summary: The Go Programming Language
Name: golang
-Version: 1.23.1
+Version: 1.23.6
Release: 0%{?dist}
License: BSD
Group: Development/Languages
@@ -234,6 +234,21 @@ rm -rf %{buildroot}
################################################################################
%changelog
+* Wed Feb 05 2025 Anton Novojilov - 1.23.6-0
+- https://github.com/golang/go/issues?q=milestone:Go1.23.6+label:CherryPickApproved
+
+* Wed Jan 22 2025 Anton Novojilov - 1.23.5-0
+- https://github.com/golang/go/issues?q=milestone:Go1.23.5+label:CherryPickApproved
+
+* Wed Dec 04 2024 Anton Novojilov - 1.23.4-0
+- https://github.com/golang/go/issues?q=milestone:Go1.23.4+label:CherryPickApproved
+
+* Fri Nov 08 2024 Anton Novojilov - 1.23.3-0
+- https://github.com/golang/go/issues?q=milestone:Go1.23.3+label:CherryPickApproved
+
+* Sat Oct 05 2024 Anton Novojilov - 1.23.2-0
+- https://github.com/golang/go/issues?q=milestone:Go1.23.2+label:CherryPickApproved
+
* Fri Sep 06 2024 Anton Novojilov - 1.23.1-0
- https://github.com/golang/go/issues?q=milestone:Go1.23.1+label:CherryPickApproved
diff --git a/specs/gradle.spec b/specs/gradle.spec
index 76974d9cc..63f524cf2 100644
--- a/specs/gradle.spec
+++ b/specs/gradle.spec
@@ -14,7 +14,7 @@
Summary: A powerful build system for the JVM
Name: gradle
-Version: 8.10
+Version: 8.12
Release: 0%{?dist}
License: ASL 2.0
Group: Development/Tools
@@ -77,6 +77,9 @@ rm -rf %{buildroot}
################################################################################
%changelog
+* Fri Jan 24 2025 Anton Novojilov - 8.12-0
+- https://docs.gradle.org/8.12/release-notes.html
+
* Fri Aug 16 2024 Anton Novojilov - 8.10-0
- https://docs.gradle.org/8.10/release-notes.html
diff --git a/specs/haproxy/haproxy.spec b/specs/haproxy/haproxy.spec
index 6057b1a72..b71540adc 100644
--- a/specs/haproxy/haproxy.spec
+++ b/specs/haproxy/haproxy.spec
@@ -14,7 +14,7 @@
%define lua_ver 5.4.7
%define pcre_ver 10.44
-%define openssl_ver 3.2.2
+%define openssl_ver 3.2.3
%define ncurses_ver 6.4
%define readline_ver 8.2
@@ -22,7 +22,7 @@
Name: haproxy
Summary: TCP/HTTP reverse proxy for high availability environments
-Version: 3.0.3
+Version: 3.0.5
Release: 0%{?dist}
License: GPLv2+
URL: https://haproxy.1wt.eu
@@ -216,6 +216,129 @@ fi
################################################################################
%changelog
+* Sat Nov 02 2024 Anton Novojilov - 3.0.5-0
+- BUG/MEDIUM: server/addr: fix tune.events.max-events-at-once event miss and
+ leak
+- BUG/MEDIUM: stconn: Report error on SC on send if a previous SE error was set
+- BUG/MEDIUM: mux-pt/mux-h1: Release the pipe on connection error on sending
+ path
+- BUILD: mux-pt: Use the right name for the sedesc variable
+- BUG/MINOR: stconn: bs.id and fs.id had their dependencies incorrect
+- BUG/MEDIUM: ssl: reactivate 0-RTT for AWS-LC
+- BUG/MEDIUM: ssl: 0-RTT initialized at the wrong place for AWS-LC
+- BUG/MEDIUM: quic: prevent conn freeze on 0RTT undeciphered content
+- BUG/MEDIUM: http-ana: Report error on write error waiting for the response
+- BUG/MEDIUM: h2: Only report early HTX EOM for tunneled streams
+- BUG/MEDIUM: mux-h2: Propagate term flags to SE on error in h2s_wake_one_stream
+- BUG/MEDIUM: peer: Notify the applet won't consume data when it waits for sync
+- BUG/MINOR: fcgi-app: handle a possible strdup() failure
+- DOC: configuration: fix alphabetical ordering of {bs,fs}.aborted
+- BUG/MINOR: trace/quic: enable conn/session pointer recovery from quic_conn
+- BUG/MINOR: trace/quic: permit to lock on frontend/connect/session etc
+- BUG/MEDIUM: trace: fix null deref in lockon mechanism since TRACE_ENABLED()
+- BUG/MINOR: trace: automatically start in waiting mode with "start "
+- BUG/MINOR: trace/quic: make "qconn" selectable as a lockon criterion
+- BUG/MINOR: quic/trace: make quic_conn_enc_level_init() emit NEW not CLOSE
+- BUG/MINOR: proto_tcp: delete fd from fdtab if listen() fails
+- BUG/MINOR: proto_tcp: keep error msg if listen() fails
+- MINOR: channel: implement ci_insert() function
+- BUG/MEDIUM: mworker/cli: fix pipelined modes on master CLI
+- REGTESTS: mcli: test the pipelined commands on master CLI
+- BUG/MINOR: mux-quic: do not send too big MAX_STREAMS ID
+- BUG/MINOR: proto_uxst: delete fd from fdtab if listen() fails
+- BUG/MINOR: h3: properly reject too long header responses
+- BUG/MINOR: pattern: pat_ref_set: fix UAF reported by coverity
+- BUG/MINOR: pattern: pat_ref_set: return 0 if err was found
+- DOC: config: correct the table for option tcplog
+- BUG/MINOR: cfgparse-global: remove tune.fast-forward from common_kw_list
+- BUILD: quic: 32bits build broken by wrong integer conversions for printf()
+- BUG/MEDIUM: clock: also update the date offset on time jumps
+- MINOR: tools: Implement ipaddrcpy().
+- MINOR: quic: Implement quic_tls_derive_token_secret().
+- MEDIUM: ssl/quic: implement quic crypto with EVP_AEAD
+- MINOR: quic: Token for future connections implementation.
+- BUG/MINOR: quic: Missing incrementation in NEW_TOKEN frame builder
+- MINOR: quic: Modify NEW_TOKEN frame structure (qf_new_token struct)
+- MINOR: quic: Implement qc_ssl_eary_data_accepted().
+- MINOR: quic: Add trace for QUIC_EV_CONN_IO_CB event.
+- BUG/MEDIUM: quic: always validate sender address on 0-RTT
+- BUG/MINOR: quic: Crash from trace dumping SSL eary data status (AWS-LC)
+- BUG/MINOR: quic: Too short datagram during packet building failures
+ (aws-lc only)
+- DOC: configuration: place the HAPROXY_HTTP_LOG_FMT example on the correct line
+- REGTESTS: fix random failures with wrong_ip_port_logging.vtc under load
+- BUG/MEDIUM: clock: detect and cover jumps during execution
+- BUG/MINOR: pattern: prevent const sample from being tampered in
+ pat_match_beg()
+- BUG/MEDIUM: pattern: prevent UAF on reused pattern expr
+- BUG/MAJOR: mux-h1: Wake SC to perform 0-copy forwarding in CLOSING state
+- BUG/MINOR: h1-htx: Don't flag response as bodyless when a tunnel is
+ established
+- BUG/MINOR: pattern: do not leave a leading comma on "set" error messages
+- MEDIUM: h1: Accept invalid T-E values with accept-invalid-http-response option
+- BUG/MINOR: polling: fix time reporting when using busy polling
+- BUG/MINOR: clock: make time jump corrections a bit more accurate
+- BUG/MINOR: clock: validate that now_offset still applies to the current date
+- BUG/MEDIUM: queue: implement a flag to check for the dequeuing
+- BUG/MINOR: peers: local entries updates may not be advertised after resync
+- DOC: config: Explicitly list relaxing rules for accept-invalid-http-* options
+- BUG/MEDIUM: sc_strm/applet: Wake applet after a successfull synchronous send
+- BUG/MEDIUM: cache/stats: Wait to have the request before sending the response
+- BUG/MEDIUM: promex: Wait to have the request before sending the response
+- BUG/MINOR: cfgparse-listen: fix option httpslog override warning message
+- MINOR: quic: convert qc_stream_desc release field to flags
+- MINOR: quic: implement function to check if STREAM is fully acked
+- BUG/MEDIUM: quic: handle retransmit for standalone FIN STREAM
+- BUG/MINOR: quic: prevent freeze after early QCS closure
+
+* Sat Nov 02 2024 Anton Novojilov - 3.0.4-0
+- MINOR: proto: extend connection thread rebind API
+- BUILD: listener: silence a build warning about unused value without threads
+- BUG/MEDIUM: quic: prevent crash on accept queue full
+- CLEANUP: proto: rename TID affinity callbacks
+- CLEANUP: quic: rename TID affinity elements
+- BUG/MINOR: session: Eval L4/L5 rules defined in the default section
+- BUG/MEDIUM: debug/cli: fix "show threads" crashing with low thread counts
+- DOC: install: don't reference removed CPU arg
+- BUG/MEDIUM: ssl_sock: fix deadlock in ssl_sock_load_ocsp() on error path
+- BUG/MAJOR: mux-h2: force a hard error upon short read with pending error
+- DOC: configuration: issuers-chain-path not compatible with OCSP
+- DOC: config: improve the http-keep-alive section
+- BUG/MINOR: stick-table: fix crash for src_inc_gpc() without stkcounter
+- BUG/MINOR: server: Don't warn fallback IP is used during init-addr resolution
+- BUG/MINOR: cli: Atomically inc the global request counter between CLI commands
+- BUG/MINOR: quic: Non optimal first datagram.
+- MEDIUM: sink: don't set NOLINGER flag on the outgoing stream interface
+- BUG/MINOR: quic: Lack of precision when computing K (cubic only cc)
+- BUG/MEDIUM: jwt: Clear SSL error queue on error when checking the signature
+- MINOR: quic: Dump TX in flight bytes vs window values ratio.
+- MINOR: quic: Add information to "show quic" for CUBIC cc.
+- MEDIUM: h1: allow to preserve keep-alive on T-E + C-L
+- MINOR: queue: add a function to check for TOCTOU after queueing
+- BUG/MEDIUM: queue: deal with a rare TOCTOU in assign_server_and_queue()
+- MEDIUM: init: set default for fd_hard_limit via DEFAULT_MAXFD (take #2)
+- BUG/MEDIUM: init: fix fd_hard_limit default in compute_ideal_maxconn
+- Revert "MEDIUM: sink: don't set NOLINGER flag on the outgoing stream
+ interface"
+- MEDIUM: log: relax some checks and emit diag warnings instead in
+ lf_expr_postcheck()
+- DOC: quic: fix default minimal value for max window size
+- MINOR: proxy: Add support of 429-Too-Many-Requests in retry-on status
+- BUG/MEDIUM: mux-h2: Set ES flag when necessary on 0-copy data forwarding
+- BUG/MEDIUM: stream: Prevent mux upgrades if client connection is no longer
+ ready
+- BUG/MINIR: proxy: Match on 429 status when trying to perform a L7 retry
+- BUG/MEDIUM: mux-pt: Never fully close the connection on shutdown
+- BUG/MEDIUM: cli: Always release back endpoint between two commands on the mcli
+- BUG/MINOR: quic: unexploited retransmission cases for Initial pktns.
+- BUG/MEDIUM: mux-h1: Properly handle empty message when an error is triggered
+- MINOR: mux-h2: try to clear DEM_MROOM and MUX_MFULL at more places
+- BUG/MAJOR: mux-h2: always clear MUX_MFULL and DEM_MROOM when clearing the mbuf
+- BUG/MINOR: quic: Too shord datagram during O-RTT handshakes (aws-lc only)
+- BUG/MINOR: Crash on O-RTT RX packet after dropping Initial pktns
+- BUG/MEDIUM: mux-pt: Fix condition to perform a shutdown for writes in
+ mux_pt_shut()
+
* Sat Aug 17 2024 Anton Novojilov - 3.0.3-0
- BUG/MINOR: log: fix broken '+bin' logformat node option
- DEBUG: hlua: distinguish burst timeout errors from exec timeout errors
diff --git a/specs/haproxy/haproxy26.spec b/specs/haproxy/haproxy26.spec
index 8671a7638..bb614723c 100644
--- a/specs/haproxy/haproxy26.spec
+++ b/specs/haproxy/haproxy26.spec
@@ -18,7 +18,7 @@
%define lua_ver 5.4.7
%define pcre_ver 10.44
-%define openssl_ver 3.0.14
+%define openssl_ver 3.0.15
%define ncurses_ver 6.4
%define readline_ver 8.2
@@ -26,7 +26,7 @@
Name: haproxy%{comp_ver}
Summary: TCP/HTTP reverse proxy for high availability environments
-Version: 2.6.18
+Version: 2.6.19
Release: 0%{?dist}
License: GPLv2+
URL: https://haproxy.1wt.eu
@@ -220,6 +220,75 @@ fi
################################################################################
%changelog
+* Fri Nov 01 2024 Anton Novojilov - 2.6.19-0
+- BUG/MEDIUM: cli: fix cli_output_msg() regression
+- BUG/MINOR: quic: fix computed length of emitted STREAM frames
+- DOC/MINOR: management: add missed -dR and -dv options
+- DOC: management: rename show stats domain cli "dns" to "resolvers"
+- DOC: configuration: fix alphabetical order of bind options
+- SCRIPTS: git-show-backports: do not truncate git-show output
+- BUG/MINOR: mux-quic: fix crash on qcs SD alloc failure
+- BUG/MINOR: quic: fix BUG_ON() on Tx pkt alloc failure
+- BUG/MINOR: hlua: report proper context upon error in hlua_cli_io_handler_fct()
+- BUG/MEDIUM: h3: ensure the ":method" pseudo header is totally valid
+- BUG/MEDIUM: h3: ensure the ":scheme" pseudo header is totally valid
+- DOC: configuration: more details about the master-worker mode
+- MEDIUM: ssl: initialize the SSL stack explicitely
+- MINOR: mux-h2/traces: explicitly show the error/refused stream states
+- REGTESTS: add a test to ensure map-ordering is preserved
+- MINOR: quic: Add packet loss and maximum cc window to "show quic"
+- MINOR: quic: Add a counter for reordered packets
+- BUG/MINOR: quic: Lack of precision when computing K (cubic only cc)
+- BUG/MINOR: jwt: don't try to load files with HMAC algorithm
+- BUG/MINOR: jwt: fix variable initialisation
+- BUG/MEDIUM: jwt: Clear SSL error queue on error when checking the signature
+- BUG/MINOR: h1: Fail to parse empty transfer coding names
+- BUG/MINOR: h1: Reject empty coding name as last transfer-encoding value
+- BUG/MEDIUM: h1: Reject empty Transfer-encoding header
+- BUG/MEDIUM: spoe: Be sure to create a SPOE applet if none on the current
+ thread
+- BUG/MINOR: stick-table: fix crash for src_inc_gpc() without stkcounter
+- BUG/MINOR: server: Don't warn fallback IP is used during init-addr resolution
+- BUG/MINOR: cli: Atomically inc the global request counter between CLI commands
+- MINOR: queue: add a function to check for TOCTOU after queueing
+- BUG/MEDIUM: queue: deal with a rare TOCTOU in assign_server_and_queue()
+- MEDIUM: init: set default for fd_hard_limit via DEFAULT_MAXFD (take #2)
+- BUG/MEDIUM: init: fix fd_hard_limit default in compute_ideal_maxconn
+- DOC: configuration: update maxconn description
+- DOC: configuration: issuers-chain-path not compatible with OCSP
+- DOC: config: improve the http-keep-alive section
+- BUG/MEDIUM: stream: Prevent mux upgrades if client connection is no longer
+ ready
+- BUG/MEDIUM: cli: Always release back endpoint between two commands on the mcli
+- BUG/MEDIUM: quic: prevent conn freeze on 0RTT undeciphered content
+- BUG/MEDIUM: h2: Only report early HTX EOM for tunneled streams
+- BUG/MINOR: fcgi-app: handle a possible strdup() failure
+- BUG/MINOR: trace/quic: enable conn/session pointer recovery from quic_conn
+- CLEANUP: trace: remove the QUIC-specific ifdefs
+- BUG/MINOR: trace/quic: permit to lock on frontend/connect/session etc
+- BUG/MINOR: trace: automatically start in waiting mode with "start "
+- BUG/MINOR: trace/quic: make "qconn" selectable as a lockon criterion
+- BUG/MINOR: quic/trace: make quic_conn_enc_level_init() emit NEW not CLOSE
+- BUG/MINOR: proto_tcp: delete fd from fdtab if listen() fails
+- BUG/MINOR: proto_tcp: keep error msg if listen() fails
+- REGTESTS: mcli: test the pipelined commands on master CLI
+- BUG/MINOR: mux-quic: do not send too big MAX_STREAMS ID
+- BUG/MINOR: proto_uxst: delete fd from fdtab if listen() fails
+- BUG/MINOR: h3: properly reject too long header responses
+- DOC: config: correct the table for option tcplog
+- BUG/MINOR: pattern: pat_ref_set: fix UAF reported by coverity
+- BUG/MINOR: pattern: pat_ref_set: return 0 if err was found
+- BUG/MINOR: pattern: do not leave a leading comma on "set" error messages
+- REGTESTS: fix random failures with wrong_ip_port_logging.vtc under load
+- BUG/MINOR: pattern: prevent const sample from being tampered in
+ pat_match_beg()
+- BUG/MEDIUM: pattern: prevent UAF on reused pattern expr
+- BUG/MINOR: polling: fix time reporting when using busy polling
+- BUG/MEDIUM: queue: implement a flag to check for the dequeuing
+- BUG/MEDIUM: cache/stats: Wait to have the request before sending the response
+- BUG/MEDIUM: promex: Wait to have the request before sending the response
+- BUG/MINOR: cfgparse-listen: fix option httpslog override warning message
+
* Sat Aug 17 2024 Anton Novojilov - 2.6.18-0
- BUG/MEDIUM: cli: fix once for all the problem of missing trailing LFs
- BUG/MEDIUM: mux-quic: report early error on stream
diff --git a/specs/haproxy/haproxy28.spec b/specs/haproxy/haproxy28.spec
index c65d7e3fc..105d38de4 100644
--- a/specs/haproxy/haproxy28.spec
+++ b/specs/haproxy/haproxy28.spec
@@ -18,7 +18,7 @@
%define lua_ver 5.4.7
%define pcre_ver 10.44
-%define openssl_ver 3.1.6
+%define openssl_ver 3.1.7
%define ncurses_ver 6.4
%define readline_ver 8.2
@@ -26,7 +26,7 @@
Name: haproxy%{comp_ver}
Summary: TCP/HTTP reverse proxy for high availability environments
-Version: 2.8.10
+Version: 2.8.11
Release: 0%{?dist}
License: GPLv2+
URL: https://haproxy.1wt.eu
@@ -220,6 +220,104 @@ fi
################################################################################
%changelog
+* Sat Nov 02 2024 Anton Novojilov - 2.8.11-0
+- BUG/MINOR: quic: fix computed length of emitted STREAM frames
+- BUG/MINOR: proxy: fix server_id_hdr_name leak on deinit()
+- BUG/MINOR: proxy: fix log_tag leak on deinit()
+- BUG/MINOR: proxy: fix check_{command,path} leak on deinit()
+- BUG/MINOR: proxy: fix dyncookie_key leak on deinit()
+- BUG/MINOR: proxy: fix source interface and usesrc leaks on deinit()
+- BUG/MINOR: proxy: fix header_unique_id leak on deinit()
+- DOC/MINOR: management: add missed -dR and -dv options
+- DOC: management: rename show stats domain cli "dns" to "resolvers"
+- DOC: configuration: fix alphabetical order of bind options
+- SCRIPTS: git-show-backports: do not truncate git-show output
+- DOC: api/event_hdl: small updates, fix an example and add some precisions
+- BUG/MINOR: h3: fix crash on STOP_SENDING receive after GOAWAY emission
+- BUG/MINOR: mux-quic: fix crash on qcs SD alloc failure
+- BUG/MINOR: quic: fix BUG_ON() on Tx pkt alloc failure
+- BUG/MINOR: hlua: report proper context upon error in hlua_cli_io_handler_fct()
+- MINOR: activity: make the memory profiling hash size configurable at build
+ time
+- BUG/MEDIUM: h3: ensure the ":method" pseudo header is totally valid
+- BUG/MEDIUM: h3: ensure the ":scheme" pseudo header is totally valid
+- BUG/MEDIUM: quic: fix race-condition in quic_get_cid_tid()
+- BUG/MINOR: quic: fix race condition in qc_check_dcid()
+- BUG/MINOR: quic: fix race-condition on trace for CID retrieval
+- BUG/MEDIUM: quic: fix possible exit from qc_check_dcid() without unlocking
+- DOC: configuration: more details about the master-worker mode
+- MEDIUM: ssl: initialize the SSL stack explicitely
+- BUG/MINOR: jwt: don't try to load files with HMAC algorithm
+- DOC: configuration: update maxconn description
+- BUG/MINOR: jwt: fix variable initialisation
+- BUG/MINOR: h1: Fail to parse empty transfer coding names
+- BUG/MINOR: h1: Reject empty coding name as last transfer-encoding value
+- BUG/MEDIUM: h1: Reject empty Transfer-encoding header
+- BUG/MEDIUM: spoe: Be sure to create a SPOE applet if none on the current
+ thread
+- BUG/MEDIUM: bwlim: Be sure to never set the analyze expiration date in past
+- BUG/MINOR: session: Eval L4/L5 rules defined in the default section
+- BUG/MEDIUM: debug/cli: fix "show threads" crashing with low thread counts
+- BUG/MEDIUM: ssl_sock: fix deadlock in ssl_sock_load_ocsp() on error path
+- DOC: configuration: issuers-chain-path not compatible with OCSP
+- DOC: config: improve the http-keep-alive section
+- BUG/MINOR: stick-table: fix crash for src_inc_gpc() without stkcounter
+- BUG/MINOR: server: Don't warn fallback IP is used during init-addr resolution
+- BUG/MINOR: cli: Atomically inc the global request counter between CLI commands
+- BUG/MINOR: quic: Lack of precision when computing K (cubic only cc)
+- BUG/MEDIUM: jwt: Clear SSL error queue on error when checking the signature
+- MINOR: queue: add a function to check for TOCTOU after queueing
+- BUG/MEDIUM: queue: deal with a rare TOCTOU in assign_server_and_queue()
+- MEDIUM: init: set default for fd_hard_limit via DEFAULT_MAXFD (take #2)
+- BUG/MEDIUM: init: fix fd_hard_limit default in compute_ideal_maxconn
+- BUG/MEDIUM: stream: Prevent mux upgrades if client connection is no longer
+ ready
+- BUG/MEDIUM: cli: Always release back endpoint between two commands on the mcli
+- BUG/MEDIUM: mux-h1: Properly handle empty message when an error is triggered
+- BUG/MEDIUM: stconn: Report error on SC on send if a previous SE error was set
+- BUG/MEDIUM: quic: prevent conn freeze on 0RTT undeciphered content
+- BUG/MEDIUM: http-ana: Report error on write error waiting for the response
+- BUG/MEDIUM: h2: Only report early HTX EOM for tunneled streams
+- BUG/MEDIUM: mux-h2: Propagate term flags to SE on error in h2s_wake_one_stream
+- BUG/MINOR: fcgi-app: handle a possible strdup() failure
+- BUG/MINOR: trace/quic: enable conn/session pointer recovery from quic_conn
+- BUG/MINOR: trace/quic: permit to lock on frontend/connect/session etc
+- BUG/MEDIUM: trace: fix null deref in lockon mechanism since TRACE_ENABLED()
+- BUG/MINOR: trace: automatically start in waiting mode with "start "
+- BUG/MINOR: trace/quic: make "qconn" selectable as a lockon criterion
+- BUG/MINOR: quic/trace: make quic_conn_enc_level_init() emit NEW not CLOSE
+- BUG/MINOR: proto_tcp: delete fd from fdtab if listen() fails
+- BUG/MINOR: proto_tcp: keep error msg if listen() fails
+- MINOR: channel: implement ci_insert() function
+- BUG/MEDIUM: mworker/cli: fix pipelined modes on master CLI
+- REGTESTS: mcli: test the pipelined commands on master CLI
+- BUG/MINOR: mux-quic: do not send too big MAX_STREAMS ID
+- BUG/MINOR: proto_uxst: delete fd from fdtab if listen() fails
+- BUG/MINOR: h3: properly reject too long header responses
+- DOC: config: correct the table for option tcplog
+- BUG/MEDIUM: clock: also update the date offset on time jumps
+- BUG/MEDIUM: mux-pt/mux-h1: Release the pipe on connection error on sending
+ path
+- BUG/MINOR: stconn: Request to send something to be woken up when the pipe is
+ full
+- BUG/MINOR: pattern: pat_ref_set: fix UAF reported by coverity
+- BUG/MINOR: pattern: pat_ref_set: return 0 if err was found
+- BUG/MINOR: pattern: do not leave a leading comma on "set" error messages
+- DOC: configuration: place the HAPROXY_HTTP_LOG_FMT example on the correct line
+- REGTESTS: fix random failures with wrong_ip_port_logging.vtc under load
+- BUG/MEDIUM: clock: detect and cover jumps during execution
+- BUG/MINOR: pattern: prevent const sample from being tampered in
+ pat_match_beg()
+- BUG/MEDIUM: pattern: prevent UAF on reused pattern expr
+- BUG/MAJOR: mux-h1: Wake SC to perform 0-copy forwarding in CLOSING state
+- BUG/MINOR: polling: fix time reporting when using busy polling
+- BUG/MINOR: clock: make time jump corrections a bit more accurate
+- BUG/MINOR: clock: validate that now_offset still applies to the current date
+- BUG/MEDIUM: queue: implement a flag to check for the dequeuing
+- BUG/MEDIUM: cache/stats: Wait to have the request before sending the response
+- BUG/MEDIUM: promex: Wait to have the request before sending the response
+- BUG/MINOR: cfgparse-listen: fix option httpslog override warning message
+
* Sat Aug 17 2024 Anton Novojilov - 2.8.10-0
- BUG/MINOR: cli: Report an error to user if command or payload is too big
- BUG/MINOR: listener: always assign distinct IDs to shards
diff --git a/specs/haproxy/haproxy30.spec b/specs/haproxy/haproxy30.spec
index 6ced9ac45..531418657 100644
--- a/specs/haproxy/haproxy30.spec
+++ b/specs/haproxy/haproxy30.spec
@@ -18,7 +18,7 @@
%define lua_ver 5.4.7
%define pcre_ver 10.44
-%define openssl_ver 3.2.2
+%define openssl_ver 3.2.3
%define ncurses_ver 6.4
%define readline_ver 8.2
@@ -26,7 +26,7 @@
Name: haproxy%{comp_ver}
Summary: TCP/HTTP reverse proxy for high availability environments
-Version: 3.0.3
+Version: 3.0.5
Release: 0%{?dist}
License: GPLv2+
URL: https://haproxy.1wt.eu
@@ -220,6 +220,129 @@ fi
################################################################################
%changelog
+* Sat Nov 02 2024 Anton Novojilov - 3.0.5-0
+- BUG/MEDIUM: server/addr: fix tune.events.max-events-at-once event miss and
+ leak
+- BUG/MEDIUM: stconn: Report error on SC on send if a previous SE error was set
+- BUG/MEDIUM: mux-pt/mux-h1: Release the pipe on connection error on sending
+ path
+- BUILD: mux-pt: Use the right name for the sedesc variable
+- BUG/MINOR: stconn: bs.id and fs.id had their dependencies incorrect
+- BUG/MEDIUM: ssl: reactivate 0-RTT for AWS-LC
+- BUG/MEDIUM: ssl: 0-RTT initialized at the wrong place for AWS-LC
+- BUG/MEDIUM: quic: prevent conn freeze on 0RTT undeciphered content
+- BUG/MEDIUM: http-ana: Report error on write error waiting for the response
+- BUG/MEDIUM: h2: Only report early HTX EOM for tunneled streams
+- BUG/MEDIUM: mux-h2: Propagate term flags to SE on error in h2s_wake_one_stream
+- BUG/MEDIUM: peer: Notify the applet won't consume data when it waits for sync
+- BUG/MINOR: fcgi-app: handle a possible strdup() failure
+- DOC: configuration: fix alphabetical ordering of {bs,fs}.aborted
+- BUG/MINOR: trace/quic: enable conn/session pointer recovery from quic_conn
+- BUG/MINOR: trace/quic: permit to lock on frontend/connect/session etc
+- BUG/MEDIUM: trace: fix null deref in lockon mechanism since TRACE_ENABLED()
+- BUG/MINOR: trace: automatically start in waiting mode with "start "
+- BUG/MINOR: trace/quic: make "qconn" selectable as a lockon criterion
+- BUG/MINOR: quic/trace: make quic_conn_enc_level_init() emit NEW not CLOSE
+- BUG/MINOR: proto_tcp: delete fd from fdtab if listen() fails
+- BUG/MINOR: proto_tcp: keep error msg if listen() fails
+- MINOR: channel: implement ci_insert() function
+- BUG/MEDIUM: mworker/cli: fix pipelined modes on master CLI
+- REGTESTS: mcli: test the pipelined commands on master CLI
+- BUG/MINOR: mux-quic: do not send too big MAX_STREAMS ID
+- BUG/MINOR: proto_uxst: delete fd from fdtab if listen() fails
+- BUG/MINOR: h3: properly reject too long header responses
+- BUG/MINOR: pattern: pat_ref_set: fix UAF reported by coverity
+- BUG/MINOR: pattern: pat_ref_set: return 0 if err was found
+- DOC: config: correct the table for option tcplog
+- BUG/MINOR: cfgparse-global: remove tune.fast-forward from common_kw_list
+- BUILD: quic: 32bits build broken by wrong integer conversions for printf()
+- BUG/MEDIUM: clock: also update the date offset on time jumps
+- MINOR: tools: Implement ipaddrcpy().
+- MINOR: quic: Implement quic_tls_derive_token_secret().
+- MEDIUM: ssl/quic: implement quic crypto with EVP_AEAD
+- MINOR: quic: Token for future connections implementation.
+- BUG/MINOR: quic: Missing incrementation in NEW_TOKEN frame builder
+- MINOR: quic: Modify NEW_TOKEN frame structure (qf_new_token struct)
+- MINOR: quic: Implement qc_ssl_eary_data_accepted().
+- MINOR: quic: Add trace for QUIC_EV_CONN_IO_CB event.
+- BUG/MEDIUM: quic: always validate sender address on 0-RTT
+- BUG/MINOR: quic: Crash from trace dumping SSL eary data status (AWS-LC)
+- BUG/MINOR: quic: Too short datagram during packet building failures
+ (aws-lc only)
+- DOC: configuration: place the HAPROXY_HTTP_LOG_FMT example on the correct line
+- REGTESTS: fix random failures with wrong_ip_port_logging.vtc under load
+- BUG/MEDIUM: clock: detect and cover jumps during execution
+- BUG/MINOR: pattern: prevent const sample from being tampered in
+ pat_match_beg()
+- BUG/MEDIUM: pattern: prevent UAF on reused pattern expr
+- BUG/MAJOR: mux-h1: Wake SC to perform 0-copy forwarding in CLOSING state
+- BUG/MINOR: h1-htx: Don't flag response as bodyless when a tunnel is
+ established
+- BUG/MINOR: pattern: do not leave a leading comma on "set" error messages
+- MEDIUM: h1: Accept invalid T-E values with accept-invalid-http-response option
+- BUG/MINOR: polling: fix time reporting when using busy polling
+- BUG/MINOR: clock: make time jump corrections a bit more accurate
+- BUG/MINOR: clock: validate that now_offset still applies to the current date
+- BUG/MEDIUM: queue: implement a flag to check for the dequeuing
+- BUG/MINOR: peers: local entries updates may not be advertised after resync
+- DOC: config: Explicitly list relaxing rules for accept-invalid-http-* options
+- BUG/MEDIUM: sc_strm/applet: Wake applet after a successfull synchronous send
+- BUG/MEDIUM: cache/stats: Wait to have the request before sending the response
+- BUG/MEDIUM: promex: Wait to have the request before sending the response
+- BUG/MINOR: cfgparse-listen: fix option httpslog override warning message
+- MINOR: quic: convert qc_stream_desc release field to flags
+- MINOR: quic: implement function to check if STREAM is fully acked
+- BUG/MEDIUM: quic: handle retransmit for standalone FIN STREAM
+- BUG/MINOR: quic: prevent freeze after early QCS closure
+
+* Sat Nov 02 2024 Anton Novojilov - 3.0.4-0
+- MINOR: proto: extend connection thread rebind API
+- BUILD: listener: silence a build warning about unused value without threads
+- BUG/MEDIUM: quic: prevent crash on accept queue full
+- CLEANUP: proto: rename TID affinity callbacks
+- CLEANUP: quic: rename TID affinity elements
+- BUG/MINOR: session: Eval L4/L5 rules defined in the default section
+- BUG/MEDIUM: debug/cli: fix "show threads" crashing with low thread counts
+- DOC: install: don't reference removed CPU arg
+- BUG/MEDIUM: ssl_sock: fix deadlock in ssl_sock_load_ocsp() on error path
+- BUG/MAJOR: mux-h2: force a hard error upon short read with pending error
+- DOC: configuration: issuers-chain-path not compatible with OCSP
+- DOC: config: improve the http-keep-alive section
+- BUG/MINOR: stick-table: fix crash for src_inc_gpc() without stkcounter
+- BUG/MINOR: server: Don't warn fallback IP is used during init-addr resolution
+- BUG/MINOR: cli: Atomically inc the global request counter between CLI commands
+- BUG/MINOR: quic: Non optimal first datagram.
+- MEDIUM: sink: don't set NOLINGER flag on the outgoing stream interface
+- BUG/MINOR: quic: Lack of precision when computing K (cubic only cc)
+- BUG/MEDIUM: jwt: Clear SSL error queue on error when checking the signature
+- MINOR: quic: Dump TX in flight bytes vs window values ratio.
+- MINOR: quic: Add information to "show quic" for CUBIC cc.
+- MEDIUM: h1: allow to preserve keep-alive on T-E + C-L
+- MINOR: queue: add a function to check for TOCTOU after queueing
+- BUG/MEDIUM: queue: deal with a rare TOCTOU in assign_server_and_queue()
+- MEDIUM: init: set default for fd_hard_limit via DEFAULT_MAXFD (take #2)
+- BUG/MEDIUM: init: fix fd_hard_limit default in compute_ideal_maxconn
+- Revert "MEDIUM: sink: don't set NOLINGER flag on the outgoing stream
+ interface"
+- MEDIUM: log: relax some checks and emit diag warnings instead in
+ lf_expr_postcheck()
+- DOC: quic: fix default minimal value for max window size
+- MINOR: proxy: Add support of 429-Too-Many-Requests in retry-on status
+- BUG/MEDIUM: mux-h2: Set ES flag when necessary on 0-copy data forwarding
+- BUG/MEDIUM: stream: Prevent mux upgrades if client connection is no longer
+ ready
+- BUG/MINIR: proxy: Match on 429 status when trying to perform a L7 retry
+- BUG/MEDIUM: mux-pt: Never fully close the connection on shutdown
+- BUG/MEDIUM: cli: Always release back endpoint between two commands on the mcli
+- BUG/MINOR: quic: unexploited retransmission cases for Initial pktns.
+- BUG/MEDIUM: mux-h1: Properly handle empty message when an error is triggered
+- MINOR: mux-h2: try to clear DEM_MROOM and MUX_MFULL at more places
+- BUG/MAJOR: mux-h2: always clear MUX_MFULL and DEM_MROOM when clearing the mbuf
+- BUG/MINOR: quic: Too shord datagram during O-RTT handshakes (aws-lc only)
+- BUG/MINOR: Crash on O-RTT RX packet after dropping Initial pktns
+- BUG/MEDIUM: mux-pt: Fix condition to perform a shutdown for writes in
+ mux_pt_shut()
+
* Sat Aug 17 2024 Anton Novojilov - 3.0.3-0
- BUG/MINOR: log: fix broken '+bin' logformat node option
- DEBUG: hlua: distinguish burst timeout errors from exec timeout errors
diff --git a/specs/hyperfine.spec b/specs/hyperfine.spec
index 279cb4c93..7ad211d9f 100644
--- a/specs/hyperfine.spec
+++ b/specs/hyperfine.spec
@@ -10,7 +10,7 @@
Summary: Command-line benchmarking tool
Name: hyperfine
-Version: 1.18.0
+Version: 1.19.0
Release: 0%{?dist}
Group: Applications/Text
License: MIT or Unlicense
@@ -81,5 +81,8 @@ rm -rf %{buildroot}
################################################################################
%changelog
+* Fri Jan 24 2025 Anton Novojilov - 1.19.0-0
+- https://github.com/sharkdp/hyperfine/releases/tag/v1.19.0
+
* Wed Jan 17 2024 Anton Novojilov - 1.18.0-0
- Initial build for kaos repository
diff --git a/specs/icecast-kh/icecast-kh.spec b/specs/icecast-kh/icecast-kh.spec
index 6e9d9d490..b4f6c20d0 100644
--- a/specs/icecast-kh/icecast-kh.spec
+++ b/specs/icecast-kh/icecast-kh.spec
@@ -1,7 +1,7 @@
################################################################################
-# rpmbuilder:github karlheyes:icecast-kh
-# rpmbuilder:tag icecast-2.4.0-kh22
+# rpmbuilder:github karlheyes:icecast-kh
+# rpmbuilder:tag icecast-2.4.0-kh22
################################################################################
diff --git a/specs/kaos-repo/SOURCE/RPM-GPG-KEY-ESSENTIALKAOS-SHA2 b/specs/kaos-repo/SOURCE/RPM-GPG-KEY-ESSENTIALKAOS
similarity index 100%
rename from specs/kaos-repo/SOURCE/RPM-GPG-KEY-ESSENTIALKAOS-SHA2
rename to specs/kaos-repo/SOURCE/RPM-GPG-KEY-ESSENTIALKAOS
diff --git a/specs/kaos-repo/SOURCE/RPM-GPG-KEY-ESSENTIALKAOS-SHA1 b/specs/kaos-repo/SOURCE/RPM-GPG-KEY-ESSENTIALKAOS-SHA1
deleted file mode 100644
index 00876c46b..000000000
--- a/specs/kaos-repo/SOURCE/RPM-GPG-KEY-ESSENTIALKAOS-SHA1
+++ /dev/null
@@ -1,30 +0,0 @@
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v2.0.14 (GNU/Linux)
-
-mQENBE/k+r4BCADCu3CQBYCnrejKBzgugO6m78jFpW7Y3t0tUxf0BmqMCsbs4F6N
-a7w+mQLs/+PW/gtHBaMehUFPcAeJ8QA0hlgQXcANRjdGjnrBjME+Yd77AIuEJ21/
-WeNLafFUDxxUjQdgA69V6POBuLbWr+PqpBtssQw5aAqWHDNUREuqpd8kpZXPlBmK
-b17esJumZpmjdhIrXu/7vu5uPCVPC/HmQa2uF0RGTVB3bkvWPhFcap56fjENNi0s
-tCSon53wj3dBtEuCLxZHGHjvpEd3CQA/0V9Na9QSTCyCrxkGkLLq8zgP0Yj2vBgm
-hJSma3gWGu5i6epQxPtcNxRLJfL7IOlQcGPtABEBAAG0JUVTU0VOVElBTEtBT1Mg
-PHl1bUBlc3NlbnRpYWxrYW9zLmNvbT6JATgEEwECACIFAk/k+r4CGwMGCwkIBwMC
-BhUIAgkKCwQWAgMBAh4BAheAAAoJEGOq8kBUP2lA5hsH/1wx9Ho4YPhpA5OcLhSE
-EgjVxC4XxJsVHqqLXomXKL4UPJ9RLJ73ERj7fOzAC1r70doKjok4w3fMEYqGTffU
-XW3/IIJt+90vopss8BsoiBIgDytzRin+tj1M4wbWZ4e327K3ZkowLezdHYjPk1jH
-Q8sBtogscWntB1QTwhRXL2ZXRF1drr1h8T2JJfQKUcUO/frp8Fi7yu+yYC0yJ9aN
-5nUulwZgmvslZr7PqzddqNIL6KZszAv2Pb1WSCYsYFLbIM8CHJe3DJ3okcvZKwI3
-5DwuE0rPtlGZib5b2jGpfsm4HquAsiTFru5ITuUuoTRnF4jr7LGdGlTnJoe2X1QU
-cmm5AQ0ET+T6vgEIAMCaGL7vwfbP+j14gNypEzMHiLHXlSqcB0J/r1b4njF4hrwp
-uokMolBcAqjy4S4Ppg/VoykOpl+HULQtm5HIRbfGfjjK/S6fdiTqwZAobtRC9tGm
-bIyljLqqcf7fDbqDOvsoIYPIrSkfDHfcAFOM806M3qeuOK39k7FIEfL5fFDHfgDq
-jIdrnOf3RbEtDqks2Q90yoWZFSrAE8Mwiml2QMSfCpxcY1c+POS5OrzR/2u05QcE
-sXzVCEAEbfOpKGHFKhZOmYkCc2KlKIgjX8Q4Vai0hSZlOPOgKp/iLW7yyJfSdQ7h
-ZGvZkrZBxUliJTY98iMuPaflTOviZAOWMxiRRJsAEQEAAYkBHwQYAQIACQUCT+T6
-vgIbDAAKCRBjqvJAVD9pQIBtCAC+ssoxM2QvmrwezxsuROozlFSVX2OgwqSlm7FK
-F64f8ytLAF8qjAo6fMG61RB7dLovl/Wbn+zoTVhau6c29MRrU+nJxvA4jLAg/RLs
-AMjgitRFjRqhpXCBehEN1EyeCqelhazRuMCAOkSyJeBDD1z9dkTl//o/WmHmmWvU
-aP0feSRqH5MFvqq+VhYSyLqTqB95IQE0S69fQXnJ+BSF8VY4T6ugFprpfKFK1IGG
-bfnXqFTSgEA2fakIdyauXd/LQ3EUBfnWojU4tGKx2mp8Nlgiwb1mJzmh5JH3SP/Q
-azziDIPw0cselOg6O4KmohcO3FPue0EXfbP5uY8oXdtmFSYt
-=cgHB
------END PGP PUBLIC KEY BLOCK-----
diff --git a/specs/kaos-repo/kaos-repo.spec b/specs/kaos-repo/kaos-repo.spec
index 9db726c60..a15e88936 100644
--- a/specs/kaos-repo/kaos-repo.spec
+++ b/specs/kaos-repo/kaos-repo.spec
@@ -4,42 +4,31 @@
################################################################################
-%define fm_config %{_sysconfdir}/yum/pluginconf.d/fastestmirror.conf
-%define pr_config %{_sysconfdir}/yum/pluginconf.d/priorities.conf
+Summary: ESSENTIAL KAOS Public Repository
+Name: kaos-repo
+Version: 12.1
+Release: 0%{?dist}
+License: Apache License, Version 2.0
+Vendor: ESSENTIAL KAOS
+Group: Development/Tools
+URL: https://kaos.sh/kaos-repo
-################################################################################
-
-%define key_name RPM-GPG-KEY-ESSENTIALKAOS
-
-################################################################################
-
-Summary: ESSENTIAL KAOS Public Repository
-Name: kaos-repo
-Version: 12.0
-Release: 0%{?dist}
-License: Apache License, Version 2.0
-Vendor: ESSENTIAL KAOS
-Group: Development/Tools
-URL: https://kaos.sh/kaos-repo
-
-Source0: kaos-release.repo
-Source1: kaos-testing.repo
-
-Source10: %{key_name}-SHA1
-Source11: %{key_name}-SHA2
+Source0: kaos-release.repo
+Source1: kaos-testing.repo
+Source2: RPM-GPG-KEY-ESSENTIALKAOS
-Source100: checksum.sha512
+Source100: checksum.sha512
-BuildArch: noarch
-BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+BuildArch: noarch
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
-Provides: %{name} = %{version}-%{release}
+Provides: %{name} = %{version}-%{release}
################################################################################
%description
-This package contains yum/dnf configuration files for access to ESSENTIAL KAOS
-YUM repository.
+This package contains configuration files for access to ESSENTIAL KAOS Public
+repository.
################################################################################
@@ -58,31 +47,12 @@ install -pm 644 %{SOURCE0} \
install -pm 644 %{SOURCE1} \
%{buildroot}%{_sysconfdir}/yum.repos.d/
-%if 0%{?rhel} >= 8
-install -pm 644 %{SOURCE11} \
- %{buildroot}%{_sysconfdir}/pki/rpm-gpg/%{key_name}
-%else
-sed -i '/module_hotfixes/d' %{buildroot}%{_sysconfdir}/yum.repos.d/*.repo
-install -pm 644 %{SOURCE10} \
- %{buildroot}%{_sysconfdir}/pki/rpm-gpg/%{key_name}
-%endif
+install -pm 644 %{SOURCE2} \
+ %{buildroot}%{_sysconfdir}/pki/rpm-gpg/
%post
-if [[ -f %{fm_config} ]] ; then
- if ! grep -q 'kaos' %{fm_config} ; then
- sed -i 's/^exclude.*/\0, kaos/g' %{fm_config}
- sed -i 's/^#exclude.*/exclude=kaos/g' %{fm_config}
- fi
-fi
-
-if [[ -f %{pr_config} ]] ; then
- if ! grep -q 'check_obsoletes=1' ; then
- echo 'check_obsoletes=1' >> %{pr_config}
- fi
-fi
-
if [[ -e %{_sysconfdir}/abrt/gpg_keys ]] ; then
- if ! grep -q 'ESSENTIALKAOS' %{_sysconfdir}/abrt/gpg_keys ; then
+ if ! grep -q 'RPM-GPG-KEY-ESSENTIALKAOS' %{_sysconfdir}/abrt/gpg_keys ; then
echo "%{_sysconfdir}/pki/rpm-gpg/RPM-GPG-KEY-ESSENTIALKAOS" >> %{_sysconfdir}/abrt/gpg_keys
fi
fi
@@ -90,7 +60,7 @@ fi
%postun
if [[ $1 -eq 0 ]] ; then
if [[ -e %{_sysconfdir}/abrt/gpg_keys ]] ; then
- sed -i '/ESSENTIALKAOS/d' %{_sysconfdir}/abrt/gpg_keys
+ sed -i '/RPM-GPG-KEY-ESSENTIALKAOS/d' %{_sysconfdir}/abrt/gpg_keys
fi
fi
@@ -101,12 +71,15 @@ rm -rf %{buildroot}
%files
%defattr(-,root,root,-)
-%config(noreplace) %{_sysconfdir}/yum.repos.d/*
-%{_sysconfdir}/pki/rpm-gpg/*
+%config(noreplace) %{_sysconfdir}/yum.repos.d/*.repo
+%{_sysconfdir}/pki/rpm-gpg/RPM-GPG-KEY-ESSENTIALKAOS
################################################################################
%changelog
+* Thu Jan 16 2025 Anton Novojilov - 12.1-0
+- Spec refactoring
+
* Tue Jun 27 2023 Anton Novojilov - 12.0-0
- Migrate from yum.kaos.st to pkgs.kaos.st
diff --git a/specs/keepalived.spec b/specs/keepalived.spec
index 5e302d963..5dd29061d 100644
--- a/specs/keepalived.spec
+++ b/specs/keepalived.spec
@@ -13,7 +13,7 @@
Name: keepalived
Summary: High Availability monitor built upon LVS, VRRP and service pollers
-Version: 2.3.1
+Version: 2.3.2
Release: 0%{?dist}
License: GPLv2+
URL: https://www.keepalived.org
@@ -128,6 +128,9 @@ fi
################################################################################
%changelog
+* Fri Jan 24 2025 Anton Novojilov - 2.3.2-0
+- https://www.keepalived.org/release-notes/Release-2.3.2.html
+
* Fri Aug 16 2024 Anton Novojilov - 2.3.1-0
- https://www.keepalived.org/release-notes/Release-2.3.1.html
diff --git a/specs/libmaxminddb.spec b/specs/libmaxminddb.spec
index eb4a322b4..473cff0f8 100644
--- a/specs/libmaxminddb.spec
+++ b/specs/libmaxminddb.spec
@@ -10,7 +10,7 @@
Summary: C library for the MaxMind DB file format
Name: libmaxminddb
-Version: 1.10.0
+Version: 1.12.2
Release: 0%{?dist}
License: Apache-2.0
Group: Development/Libraries
@@ -108,6 +108,9 @@ rm -rf %{buildroot}
################################################################################
%changelog
+* Fri Jan 24 2025 Anton Novojilov - 1.12.2-0
+- https://github.com/maxmind/libmaxminddb/releases/tag/1.12.2
+
* Fri Aug 16 2024 Anton Novojilov - 1.10.0-0
- https://github.com/maxmind/libmaxminddb/releases/tag/1.10.0
diff --git a/specs/libmodulemd.spec b/specs/libmodulemd.spec
index ba5477934..61e495b62 100644
--- a/specs/libmodulemd.spec
+++ b/specs/libmodulemd.spec
@@ -4,11 +4,6 @@
################################################################################
-%if 0%{?rhel} == 7
-%global python_base python36
-%global __python3 %{_bindir}/python3.6
-%endif
-
%if 0%{?rhel} >= 8
%global python_base python3
%global __python3 %{_bindir}/python3
diff --git a/specs/libpsl.spec b/specs/libpsl.spec
index 7698b3c87..649bffcd9 100644
--- a/specs/libpsl.spec
+++ b/specs/libpsl.spec
@@ -10,7 +10,7 @@
Summary: C library for the Publix Suffix List
Name: libpsl
-Version: 0.21.2
+Version: 0.21.5
Release: 0%{?dist}
License: MIT
Group: Development/Tools
@@ -100,6 +100,8 @@ find %{buildroot} -name '*.la' -delete -print
chrpath --delete %{buildroot}%{_bindir}/psl
+sed -i 's#/usr/bin/env python#/usr/bin/env python3#' %{buildroot}%{_bindir}/psl-make-dafsa
+
%check
%if %{?_with_check:1}%{?_without_check:0}
%{__make} check
@@ -128,6 +130,7 @@ rm -rf %{buildroot}
%{_includedir}/libpsl.h
%{_libdir}/libpsl.so
%{_libdir}/pkgconfig/libpsl.pc
+%{_bindir}/psl-make-dafsa
%files -n psl
%defattr(-,root,root,-)
@@ -138,6 +141,9 @@ rm -rf %{buildroot}
################################################################################
%changelog
+* Fri Jan 24 2025 Anton Novojilov - 0.21.5-0
+- https://github.com/rockdaboot/libpsl/releases/tag/0.21.5
+
* Sat Oct 14 2023 Anton Novojilov - 0.21.2-0
- https://github.com/rockdaboot/libpsl/releases/tag/0.21.2
diff --git a/specs/libuv/libuv.spec b/specs/libuv/libuv.spec
index c7fd29b0f..d286e62bb 100644
--- a/specs/libuv/libuv.spec
+++ b/specs/libuv/libuv.spec
@@ -6,7 +6,7 @@
Summary: Cross-platform asychronous I/O
Name: libuv
-Version: 1.48.0
+Version: 1.50.0
Release: 0%{?dist}
License: MIT, BSD and ISC
Group: Development/Tools
@@ -102,6 +102,18 @@ rm -rf %{buildroot}
################################################################################
%changelog
+* Fri Jan 24 2025 Anton Novojilov - 1.50.0-0
+- https://github.com/libuv/libuv/releases/tag/v1.50.0
+
+* Fri Jan 24 2025 Anton Novojilov - 1.49.2-0
+- https://github.com/libuv/libuv/releases/tag/v1.49.2
+
+* Fri Jan 24 2025 Anton Novojilov - 1.49.1-0
+- https://github.com/libuv/libuv/releases/tag/v1.49.1
+
+* Fri Jan 24 2025 Anton Novojilov - 1.49.0-0
+- https://github.com/libuv/libuv/releases/tag/v1.49.0
+
* Fri Aug 16 2024 Anton Novojilov - 1.48.0-0
- https://github.com/libuv/libuv/releases/tag/v1.48.0
diff --git a/specs/lynis.spec b/specs/lynis.spec
index e4354ce44..790f539c3 100644
--- a/specs/lynis.spec
+++ b/specs/lynis.spec
@@ -6,7 +6,7 @@
Summary: Security auditing and hardening tool
Name: lynis
-Version: 3.1.1
+Version: 3.1.3
Release: 0%{?dist}
License: GPLv3
Group: Development/Tools
@@ -75,6 +75,57 @@ rm -rf %{buildroot}
################################################################################
%changelog
+* Fri Jan 24 2025 Anton Novojilov - 3.1.3-0
+- Detection of Buildroot, Fedora Linux Asahi Remix, Garden Linux, Peppermint OS
+- Support for blog posts and articles to enhance suggestions
+- BOOT-5264 - Changed output of systemd-analyze test and added link
+- FILE-6398 - Test temporarily disabled as on modern kernels JDB support
+ is built-in
+- FIRE-4508 - Several changes to expand the test, make it more generic, resolve
+ minor issues
+- KRNL-5622 - Test if systemctl binary is set
+- Several improvements for busybox
+- Update of translations: Italian, Russian, Spanish
+
+* Fri Jan 24 2025 Anton Novojilov - 3.1.2-0
+- Detection of ALT Linux, Athena OS, Container-Optimized OS from Google,
+ Koozali SME Server, Nobara Linux, Open Source Media Center (OSMC),
+ PostmarketOS
+- CRYP-7932 - macOS FileVault encryption test
+- FILE-6398 - Check if JBD (Journal Block Device) driver is loaded
+- FINT-4344 - Wazuh system running state
+- PKGS-7305 - Query macOS Apps in /Applications and CoreServices
+- File added: .editorconfig, which is used by editors to standardize formatting
+- Update software EOL database, AIX entries
+- Support sysctl value perf_event_paranoid -> 2|3
+- Update translations
+- Grammar and spell improvements
+- Improved package detection (Alpine Linux)
+- Slackware support to check installed packges (functionPackageIsInstalled())
+- Added words prosecute/report to LEGAL_BANNER_STRINGS
+- Busybox support: Replace newer tr command syntax with older ascii specific
+ operations
+- Added Wazuh as a malware scanner/antivirus/rootkit detection tool
+- Updated PHP versions and removed PHP 5
+- AUTH-9262 - Corrected message with advised PAM libary (libpam-passwdqc)
+- CONT-8104 - Checking for errors, not only warning in docker info output
+- DBS-1826 - PostgreSQL detection improved for AlmaLinux, Rocky Linux,
+ and FreeBSD
+- FILE-6344 - Test kernel version (major/minor)
+- INSE-8000 - Added inetd package and service name (Ubuntu 24.04)
+- KRNL-5622 - Use systemctl get-default instead of following link
+- KRNL-5820 - Accept ulimit with -H parameter also
+- LOGG-2144 - Check wazuh-agent presence on Linux systems
+- MACF-6234 - Test if semanage binary is available
+- MALW-3200 - Add ESET Endpoint Antivirus
+- MALW-3280 - McAfee Antivirus for Linux deprecated
+- MALW-3291 - Check if Microsoft Defender Antivirus is installe
+- NETW-3200 - Add regex to allow /bin/true and /bin/false
+- PKGS-7303 - Added version numbers to brew packages
+- PKGS-7370 - Cron job check for debsums improved
+- PKGS-7392 - Improved filtering of apt-check output (Ubuntu 24.04)
+- PKGS-7410 - Add kernel name (Hardkernel odroid XU4)
+
* Sun Mar 17 2024 Anton Novojilov - 3.1.1-0
- Detection of ArcoLinux
- DBS-1882 - Redis configuration file path added for FreeBSD
diff --git a/specs/maven/maven.spec b/specs/maven/maven.spec
index 9b97250eb..49503b40e 100644
--- a/specs/maven/maven.spec
+++ b/specs/maven/maven.spec
@@ -17,7 +17,7 @@
Summary: Java project management and project comprehension tool
Name: maven
-Version: 3.9.6
+Version: 3.9.9
Release: 0%{?dist}
Group: Development/Tools
License: ASL 2.0 and MIT
@@ -125,6 +125,9 @@ rm -rf %{buildroot}
################################################################################
%changelog
+* Sat Jan 25 2025 Anton Novojilov - 3.9.9-0
+- https://maven.apache.org/docs/3.9.9/release-notes.html
+
* Wed Dec 06 2023 Anton Novojilov - 3.9.6-0
- https://maven.apache.org/docs/3.9.6/release-notes.html
diff --git a/specs/memcached.spec b/specs/memcached.spec
index bef15dafd..7cb3f945b 100644
--- a/specs/memcached.spec
+++ b/specs/memcached.spec
@@ -11,7 +11,7 @@
Summary: High Performance, Distributed Memory Object Cache
Name: memcached
-Version: 1.6.29
+Version: 1.6.34
Release: 0%{?dist}
Group: System Environment/Daemons
License: BSD
@@ -138,6 +138,21 @@ fi
################################################################################
%changelog
+* Fri Jan 24 2025 Anton Novojilov - 1.6.34-0
+- https://github.com/memcached/memcached/wiki/ReleaseNotes1634
+
+* Fri Jan 24 2025 Anton Novojilov - 1.6.33-0
+- https://github.com/memcached/memcached/wiki/ReleaseNotes1633
+
+* Fri Jan 24 2025 Anton Novojilov - 1.6.32-0
+- https://github.com/memcached/memcached/wiki/ReleaseNotes1632
+
+* Fri Jan 24 2025 Anton Novojilov - 1.6.31-0
+- https://github.com/memcached/memcached/wiki/ReleaseNotes1631
+
+* Fri Jan 24 2025 Anton Novojilov - 1.6.30-0
+- https://github.com/memcached/memcached/wiki/ReleaseNotes1630
+
* Thu Aug 15 2024 Anton Novojilov - 1.6.29-0
- https://github.com/memcached/memcached/wiki/ReleaseNotes1629
diff --git a/specs/meson.spec b/specs/meson.spec
index 7d625ba6d..6c3a977ad 100644
--- a/specs/meson.spec
+++ b/specs/meson.spec
@@ -26,7 +26,7 @@
Summary: High productivity build system
Name: meson
-Version: 1.5.1
+Version: 1.6.1
Release: 0%{?dist}
License: ASL 2.0
Group: Development/Tools
@@ -91,6 +91,9 @@ rm -rf %{buildroot}
################################################################################
%changelog
+* Fri Jan 24 2025 Anton Novojilov - 1.6.1-0
+- https://github.com/mesonbuild/meson/compare/1.5.1...1.6.1
+
* Thu Aug 15 2024 Anton Novojilov - 1.5.1-0
- https://github.com/mesonbuild/meson/compare/1.4.0...1.5.1
diff --git a/specs/multitail.spec b/specs/multitail.spec
index 51f64d3b0..874e4882c 100644
--- a/specs/multitail.spec
+++ b/specs/multitail.spec
@@ -10,9 +10,9 @@
Summary: View one or multiple files like tail but with multiple windows
Name: multitail
-Version: 7.1.2
+Version: 7.1.5
Release: 0%{?dist}
-License: Apache-2.0
+License: MIT
Group: Applications/Text
URL: https://www.vanheusden.com/multitail/
@@ -22,13 +22,7 @@ Source100: checksum.sha512
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
-BuildRequires: gcc ncurses-devel
-
-%if 0%{?rhel} <= 7
-BuildRequires: cmake3
-%else
-BuildRequires: cmake
-%endif
+BuildRequires: cmake gcc ncurses-devel
Requires: ncurses
@@ -62,7 +56,6 @@ external software, MultiTail can mimic the functionality of tools like
%setup -q
-sed -i "s/6.4.3/%{version}/" CMakeLists.txt
sed -i '/multitail.conf.new/d' CMakeLists.txt
sed -i '/conversion-scripts/d' CMakeLists.txt
@@ -100,6 +93,9 @@ rm -rf %{buildroot}
################################################################################
%changelog
+* Tue Oct 22 2024 Anton Novojilov - 7.1.5-0
+- https://github.com/folkertvanheusden/multitail/compare/7.1.2...7.1.5
+
* Wed Dec 06 2023 Anton Novojilov - 7.1.2-0
- https://github.com/folkertvanheusden/multitail/compare/7.0.0...7.1.2
diff --git a/specs/nano/SOURCES/nano-nanorc.patch b/specs/nano/SOURCES/nano-nanorc.patch
index fe26d58d0..a6e0163c0 100644
--- a/specs/nano/SOURCES/nano-nanorc.patch
+++ b/specs/nano/SOURCES/nano-nanorc.patch
@@ -1,7 +1,7 @@
-diff -urN nano-6.0-orig/doc/sample.nanorc.in nano-6.0/doc/sample.nanorc.in
---- nano-6.0-orig/doc/sample.nanorc.in 2021-11-29 13:35:25.000000000 +0300
-+++ nano-6.0/doc/sample.nanorc.in 2022-10-11 00:12:45.000000000 +0300
-@@ -28,7 +28,7 @@
+diff --color -urN nano-8.2-orig/doc/sample.nanorc.in nano-8.2/doc/sample.nanorc.in
+--- nano-8.2-orig/doc/sample.nanorc.in 2024-09-05 12:29:01.000000000 +0300
++++ nano-8.2/doc/sample.nanorc.in 2025-01-25 22:05:25.000000000 +0300
+@@ -34,7 +34,7 @@
# set backupdir ""
## Use bold text instead of reverse video text.
@@ -10,7 +10,7 @@ diff -urN nano-6.0-orig/doc/sample.nanorc.in nano-6.0/doc/sample.nanorc.in
## Treat any line with leading whitespace as the beginning of a paragraph.
# set bookstyle
-@@ -62,13 +62,13 @@
+@@ -76,13 +76,13 @@
# set historylog
## Display a "scrollbar" on the righthand side of the edit window.
@@ -26,7 +26,7 @@ diff -urN nano-6.0-orig/doc/sample.nanorc.in nano-6.0/doc/sample.nanorc.in
## Enable vim-style lock-files. This is just to let a vim user know you
## are editing a file [s]he is trying to edit and vice versa. There are
-@@ -81,7 +81,7 @@
+@@ -95,7 +95,7 @@
## The opening and closing brackets that are found by a matching-bracket
## search. This may not contain blank characters. The opening brackets
## must come before the closing ones, and they must be in the same order.
@@ -35,7 +35,7 @@ diff -urN nano-6.0-orig/doc/sample.nanorc.in nano-6.0/doc/sample.nanorc.in
## Suppress the title bar and show the filename plus a cursor-position
## percentage in the space of the status bar.
-@@ -157,18 +157,18 @@
+@@ -170,18 +170,18 @@
# set smarthome
## Spread overlong lines over multiple screen lines.
@@ -57,7 +57,7 @@ diff -urN nano-6.0-orig/doc/sample.nanorc.in nano-6.0/doc/sample.nanorc.in
## Convert each typed tab to the fitting number of spaces.
# set tabstospaces
-@@ -228,6 +228,14 @@
+@@ -244,6 +244,14 @@
# set keycolor lightmagenta
# set functioncolor magenta
@@ -72,12 +72,12 @@ diff -urN nano-6.0-orig/doc/sample.nanorc.in nano-6.0/doc/sample.nanorc.in
## === Syntax coloring ===
## For all details, see 'man nanorc', section SYNTAX HIGHLIGHTING.
-@@ -235,6 +243,8 @@
- ## To include most of the existing syntax definitions, you can do:
- # include "@PKGDATADIR@/*.nanorc"
+@@ -256,6 +264,8 @@
+ # include @PKGDATADIR@/python.nanorc
+ # include @PKGDATADIR@/sh.nanorc
+include "/usr/share/nano/*.nanorc"
+
- ## Or you can select just the ones you need. For example:
- # include "@PKGDATADIR@/html.nanorc"
- # include "@PKGDATADIR@/python.nanorc"
+ ## In @PKGDATADIR@/extra/ you can find some syntaxes that are
+ ## specific for certain distros or for some less common languages.
+
diff --git a/specs/nano/nano.spec b/specs/nano/nano.spec
index 284a8cf21..5a1cd6a02 100644
--- a/specs/nano/nano.spec
+++ b/specs/nano/nano.spec
@@ -14,7 +14,7 @@
Summary: A small text editor
Name: nano
-Version: 8.1
+Version: 8.3
Release: 0%{?dist}
License: GPLv3+
Group: Applications/Editors
@@ -110,6 +110,15 @@ fi
################################################################################
%changelog
+* Sat Jan 25 2025 Anton Novojilov - 8.3-0
+- A build failure with gcc-15 is fixed.
+- Several translations were updated.
+
+* Sat Jan 25 2025 Anton Novojilov - 8.2-0
+- At a Yes-No prompt, beside Y and the localized initial for "Yes",
+ also ^Y is accepted. Similarly, ^N for "No", and ^A for "All".
+- A text-highlighting bug with Alt+Home/Alt+End is fixed.
+
* Sat Aug 17 2024 Anton Novojilov - 8.1-0
- The idiom nano filename:linenumber is understood only when
the option --colonparsing (or 'set colonparsing') is used.
diff --git a/specs/nfs-utils-dummy.spec b/specs/nfs-utils-dummy.spec
new file mode 100644
index 000000000..b1cd15ce9
--- /dev/null
+++ b/specs/nfs-utils-dummy.spec
@@ -0,0 +1,40 @@
+################################################################################
+
+Summary: NFS utilities (Dummy Package)
+Name: nfs-utils-dummy
+Version: 100.0.0
+Release: 0%{?dist}
+Epoch: 99
+License: APLv2
+Group: Applications/System
+URL: https://github.com/essentialkaos
+
+Source0: https://raw.githubusercontent.com/essentialkaos/kaos-repo/refs/heads/master/LICENSE
+
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+
+Provides: %{name} = %{version}-%{release}
+Provides: nfs-utils = %{version}-%{release}
+
+################################################################################
+
+%description
+This is a dummy package that replaces the outdated nfs-utils package.
+
+################################################################################
+
+%prep
+%build
+%install
+
+################################################################################
+
+%files
+%defattr(-, root, root, -)
+# No files!
+
+################################################################################
+
+%changelog
+* Fri Oct 04 2024 Anton Novojilov - 100.0.0-0
+- Initial build
diff --git a/specs/nghttp2.spec b/specs/nghttp2.spec
index 3a5679d99..17ea27e23 100644
--- a/specs/nghttp2.spec
+++ b/specs/nghttp2.spec
@@ -6,7 +6,7 @@
Summary: Meta-package that only requires libnghttp2
Name: nghttp2
-Version: 1.62.1
+Version: 1.64.0
Release: 0%{?dist}
Group: Applications/Internet
License: MIT
@@ -120,6 +120,12 @@ rm -rf %{buildroot}
################################################################################
%changelog
+* Fri Jan 24 2025 Anton Novojilov - 1.64.0-0
+- https://github.com/nghttp2/nghttp2/releases/tag/v1.64.0
+
+* Fri Jan 24 2025 Anton Novojilov - 1.63.0-0
+- https://github.com/nghttp2/nghttp2/releases/tag/v1.63.0
+
* Thu May 30 2024 Anton Novojilov - 1.62.1-0
- https://github.com/nghttp2/nghttp2/releases/tag/v1.62.1
diff --git a/specs/nodejs.spec b/specs/nodejs/nodejs20.spec
similarity index 69%
rename from specs/nodejs.spec
rename to specs/nodejs/nodejs20.spec
index 093e875c9..88bb50394 100644
--- a/specs/nodejs.spec
+++ b/specs/nodejs/nodejs20.spec
@@ -15,14 +15,14 @@
################################################################################
Summary: Platform for server side programming on JavaScript
-Name: nodejs
-Version: 20.16.0
+Name: nodejs20
+Version: 20.18.2
Release: 0%{?dist}
License: MIT
Group: Development/Tools
URL: https://nodejs.org
-Source0: https://nodejs.org/dist/v%{version}/node-v%{version}.tar.gz
+Source0: https://nodejs.org/dist/v%{version}/node-v%{version}.tar.xz
Source100: checksum.sha512
@@ -35,7 +35,8 @@ Requires: zlib
Provides: %{name} = %{version}-%{release}
Provides: %{shortname} = %{version}-%{release}
-Provides: %{name}(engine) = %{version}-%{release}
+Provides: %{shortname}js = %{version}-%{release}
+Provides: %{shortname}js(engine) = %{version}-%{release}
Provides: npm = %{version}-%{release}
################################################################################
@@ -106,32 +107,5 @@ rm -rf %{buildroot}
################################################################################
%changelog
-* Thu Aug 15 2024 Anton Novojilov - 20.16.0-0
-- https://nodejs.org/en/blog/release/v20.16.0
-
-* Thu May 30 2024 Anton Novojilov - 20.14.0-0
-- https://nodejs.org/en/blog/release/v20.14.0
-
-* Tue Apr 16 2024 Anton Novojilov - 20.12.2-0
-- https://nodejs.org/en/blog/release/v20.12.2
-
-* Fri Mar 22 2024 Anton Novojilov - 20.11.1-0
-- https://nodejs.org/en/blog/release/v20.11.1
-
-* Wed Jan 17 2024 Anton Novojilov - 20.11.0-0
-- https://nodejs.org/en/blog/release/v20.11.0
-
-* Thu Dec 07 2023 Anton Novojilov - 20.10.0-0
-- https://nodejs.org/en/blog/release/v20.10.0
-
-* Sat Oct 14 2023 Anton Novojilov - 18.18.2-0
-- https://nodejs.org/en/blog/release/v18.18.2
-
-* Fri Oct 13 2023 Anton Novojilov - 18.18.1-0
-- https://nodejs.org/en/blog/release/v18.18.1
-
-* Fri Oct 06 2023 Anton Novojilov - 18.18.0-0
-- https://nodejs.org/en/blog/release/v18.18.0
-
-* Thu Dec 15 2022 Anton Novojilov - 18.12.1-0
-- https://nodejs.org/en/blog/release/v18.12.1
+* Sat Jan 25 2025 Anton Novojilov - 20.18.2-0
+- https://nodejs.org/en/blog/release/v20.18.2
diff --git a/specs/nodejs/nodejs22.spec b/specs/nodejs/nodejs22.spec
new file mode 100644
index 000000000..b69a7dd51
--- /dev/null
+++ b/specs/nodejs/nodejs22.spec
@@ -0,0 +1,111 @@
+################################################################################
+
+%global crc_check pushd ../SOURCES ; sha512sum -c %{SOURCE100} ; popd
+
+################################################################################
+
+%define _posixroot /
+%define _lib32 %{_posixroot}lib
+%define _libdir32 %{_prefix}%{_lib32}
+
+################################################################################
+
+%define shortname node
+
+################################################################################
+
+Summary: Platform for server side programming on JavaScript
+Name: nodejs22
+Version: 22.13.1
+Release: 0%{?dist}
+License: MIT
+Group: Development/Tools
+URL: https://nodejs.org
+
+Source0: https://nodejs.org/dist/v%{version}/node-v%{version}.tar.xz
+
+Source100: checksum.sha512
+
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+
+BuildRequires: make python3.11 openssl-devel zlib-devel
+BuildRequires: gcc-c++ libstdc++-devel
+
+Requires: zlib
+
+Provides: %{name} = %{version}-%{release}
+Provides: %{shortname} = %{version}-%{release}
+Provides: %{shortname}js = %{version}-%{release}
+Provides: %{shortname}js(engine) = %{version}-%{release}
+Provides: npm = %{version}-%{release}
+
+################################################################################
+
+%description
+Node.js is a platform built on Chromes JavaScript runtime for
+easily building fast, scalable network applications. Node.js
+uses an event-driven, non-blocking I/O model that makes it
+lightweight and efficient, perfect for data-intensive
+real-time applications that run across distributed devices.
+
+################################################################################
+
+%package devel
+
+Summary: Header files for nodejs
+Group: Development/Libraries
+Requires: %{name} = %{version}-%{release}
+
+BuildArch: noarch
+
+%description devel
+This package provides the header files for nodejs.
+
+################################################################################
+
+%prep
+%{crc_check}
+
+%setup -qn %{shortname}-v%{version}
+
+%build
+%{_configure} --prefix=%{_prefix} \
+ --shared-zlib \
+ --shared-zlib-includes=%{_includedir}
+
+%{__make} %{?_smp_mflags}
+
+%install
+rm -rf %{buildroot}
+
+%{make_install}
+
+find %{buildroot}%{_libdir32}/%{shortname}_modules -name "*.cmd" -type f -delete
+find %{buildroot}%{_libdir32}/%{shortname}_modules -name "*.ps1" -type f -delete
+
+%clean
+rm -rf %{buildroot}
+
+################################################################################
+
+%files
+%defattr(-,root,root,-)
+%doc CHANGELOG.md GOVERNANCE.md README.md SECURITY.md
+%{_bindir}/%{shortname}
+%{_bindir}/npm
+%{_bindir}/npx
+%{_bindir}/corepack
+%{_libdir32}/%{shortname}_modules
+%{_docdir}/%{shortname}/gdbinit
+%{_docdir}/%{shortname}/lldb*
+%{_mandir}/man1/%{shortname}.1.gz
+
+%files devel
+%defattr(-,root,root,-)
+%{_includedir}/%{shortname}/*
+
+################################################################################
+
+%changelog
+* Sat Jan 25 2025 Anton Novojilov - 22.13.1-0
+- https://nodejs.org/en/blog/release/v20.18.2
diff --git a/specs/orc.spec b/specs/orc.spec
index c80c1664c..279509bd1 100644
--- a/specs/orc.spec
+++ b/specs/orc.spec
@@ -11,7 +11,7 @@
Summary: The Oil Run-time Compiler
Name: orc
-Version: 0.4.39
+Version: 0.4.40
Release: 0%{?dist}
Group: System Environment/Libraries
License: BSD
@@ -111,6 +111,23 @@ rm -rf %{buildroot}
################################################################################
%changelog
+* Fri Jan 24 2025 Anton Novojilov - 0.4.40-0
+- Security: Minor follow-up fixes for CVE-2024-40897
+- powerpc: fix div255w which still used the inexact substitution
+- x86: work around old GCC versions (pre 9.0) having broken xgetbv
+ implementations
+- x86: consider MSYS2/Cygwin as Windows for ABI purposes only
+- x86: handle unnatural and misaligned array pointers
+- orccodemem: Assorted memory mapping fixes
+- Fix include header use from C++
+- Some compatibility fixes for Musl
+- ppc: Disable VSX and ISA 2.07 for Apple targets
+- ppc: Allow detection of ppc64 in Mac OS
+- x86: Fix non-C11 typedefs
+- meson: Fix detecting XSAVE on older AppleClang
+- x86: try fixing AVX detection again by adding check for XSAVE
+- Check return values of malloc() and realloc()
+
* Fri Aug 16 2024 Anton Novojilov - 0.4.39-0
- Security: Fix error message printing buffer overflow leading to possible
code execution in orcc with specific input files (CVE-2024-40897). This
diff --git a/specs/p7zip/SOURCES/01-hardening-flags.patch b/specs/p7zip/SOURCES/01-hardening-flags.patch
deleted file mode 100644
index aa4243197..000000000
--- a/specs/p7zip/SOURCES/01-hardening-flags.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From: Robert Luberda
-Date: Fri, 22 Jan 2016 00:53:09 +0100
-Subject: Hardening flags
-
-Add support for $(CPPFLAGS) and do not override $(CXXFLAGS)
-and $(CFLAGS)
-
-Bug-Debian: https://bugs.debian.org/#682167
----
- makefile.glb | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/makefile.glb b/makefile.glb
-index fb001d5..e10ae03 100644
---- a/makefile.glb
-+++ b/makefile.glb
-@@ -1,14 +1,14 @@
-
- RM=rm -f
-
--CFLAGS=-c -I. \
-+CFLAGS+=$(CPPFLAGS) -c -I. \
- -I../../../../C \
- -I../../../../CPP/myWindows \
- -I../../../../CPP/include_windows \
- -I../../../../CPP \
- $(ALLFLAGS) $(ALLFLAGS_C)
-
--CXXFLAGS=-c -I. \
-+CXXFLAGS+=$(CPPFLAGS) -c -I. \
- -I../../../../C \
- -I../../../../CPP/myWindows \
- -I../../../../CPP/include_windows \
diff --git a/specs/p7zip/SOURCES/02-fix-g++-warning.patch b/specs/p7zip/SOURCES/02-fix-g++-warning.patch
deleted file mode 100644
index 226e239ee..000000000
--- a/specs/p7zip/SOURCES/02-fix-g++-warning.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From: Robert Luberda
-Date: Sun, 28 Jan 2018 22:19:13 +0100
-Subject: Fix g++ warning
-
-Fix for "use of an operand of type 'bool' in 'operator++'
-is deprecated [-Wdeprecated]" warning taken from 7zip 18.00.beta
-package.
----
- CPP/7zip/Archive/Wim/WimHandler.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/CPP/7zip/Archive/Wim/WimHandler.cpp b/CPP/7zip/Archive/Wim/WimHandler.cpp
-index 27d3298..4ff5cfe 100644
---- a/CPP/7zip/Archive/Wim/WimHandler.cpp
-+++ b/CPP/7zip/Archive/Wim/WimHandler.cpp
-@@ -298,7 +298,7 @@ STDMETHODIMP CHandler::GetArchiveProperty(PROPID propID, PROPVARIANT *value)
-
- AString res;
-
-- bool numMethods = 0;
-+ unsigned numMethods = 0;
- for (unsigned i = 0; i < ARRAY_SIZE(k_Methods); i++)
- {
- if (methodMask & ((UInt32)1 << i))
diff --git a/specs/p7zip/SOURCES/03-gcc10-conversion.patch b/specs/p7zip/SOURCES/03-gcc10-conversion.patch
deleted file mode 100644
index 45f9f84af..000000000
--- a/specs/p7zip/SOURCES/03-gcc10-conversion.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-diff -Nrup a/CPP/Windows/ErrorMsg.cpp b/CPP/Windows/ErrorMsg.cpp
---- a/CPP/Windows/ErrorMsg.cpp 2015-01-18 11:20:28.000000000 -0700
-+++ b/CPP/Windows/ErrorMsg.cpp 2019-09-24 13:01:18.887289152 -0600
-@@ -14,14 +14,14 @@ UString MyFormatMessage(DWORD errorCode)
- AString msg;
-
- switch(errorCode) {
-- case ERROR_NO_MORE_FILES : txt = "No more files"; break ;
-- case E_NOTIMPL : txt = "E_NOTIMPL"; break ;
-- case E_NOINTERFACE : txt = "E_NOINTERFACE"; break ;
-- case E_ABORT : txt = "E_ABORT"; break ;
-- case E_FAIL : txt = "E_FAIL"; break ;
-- case STG_E_INVALIDFUNCTION : txt = "STG_E_INVALIDFUNCTION"; break ;
-- case E_OUTOFMEMORY : txt = "E_OUTOFMEMORY"; break ;
-- case E_INVALIDARG : txt = "E_INVALIDARG"; break ;
-+ case unsigned (ERROR_NO_MORE_FILES) : txt = "No more files"; break ;
-+ case unsigned (E_NOTIMPL) : txt = "E_NOTIMPL"; break ;
-+ case unsigned (E_NOINTERFACE) : txt = "E_NOINTERFACE"; break ;
-+ case unsigned (E_ABORT) : txt = "E_ABORT"; break ;
-+ case unsigned (E_FAIL) : txt = "E_FAIL"; break ;
-+ case unsigned (STG_E_INVALIDFUNCTION) : txt = "STG_E_INVALIDFUNCTION"; break ;
-+ case unsigned (E_OUTOFMEMORY) : txt = "E_OUTOFMEMORY"; break ;
-+ case unsigned (E_INVALIDARG) : txt = "E_INVALIDARG"; break ;
- case ERROR_DIRECTORY : txt = "Error Directory"; break ;
- default:
- txt = strerror(errorCode);
diff --git a/specs/p7zip/SOURCES/04-fix-data-null-pointer.patch b/specs/p7zip/SOURCES/04-fix-data-null-pointer.patch
deleted file mode 100644
index 9c71025e5..000000000
--- a/specs/p7zip/SOURCES/04-fix-data-null-pointer.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff --git a/CPP/7zip/Archive/LzhHandler.cpp b/CPP/7zip/Archive/LzhHandler.cpp
-index 21631f7..1f14621 100644
---- a/CPP/7zip/Archive/LzhHandler.cpp
-+++ b/CPP/7zip/Archive/LzhHandler.cpp
-@@ -163,7 +163,8 @@ struct CItem
- return false;
- }
- const Byte *data = (const Byte *)(Extensions[index].Data);
-- value = GetUi32(data);
-+ if (!data) value = 0;
-+ else value = GetUi32(data);
- return true;
- }
-
diff --git a/specs/p7zip/SOURCES/05-fix-out-of-mem.patch b/specs/p7zip/SOURCES/05-fix-out-of-mem.patch
deleted file mode 100644
index e1b7cba06..000000000
--- a/specs/p7zip/SOURCES/05-fix-out-of-mem.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-diff --git a/C/Alloc.c b/C/Alloc.c
-index 2706ec0..3178e7a 100644
---- a/C/Alloc.c
-+++ b/C/Alloc.c
-@@ -58,12 +58,18 @@ void align_free(void * ptr)
- #else
- void *align_alloc(size_t size)
- {
-- return malloc(size);
-+ void * p = malloc(size);
-+ if(!p){
-+ printf("Out of memory: can't allocate %u bytes\n",size);
-+ abort();
-+ }
-+ return p;
- }
-
- void align_free(void * ptr)
- {
-- free(ptr);
-+ if(!ptr) return;
-+ free(ptr);
- }
-
- #endif
-
diff --git a/specs/p7zip/SOURCES/CVE-2016-9296.patch b/specs/p7zip/SOURCES/CVE-2016-9296.patch
deleted file mode 100644
index 773f92a46..000000000
--- a/specs/p7zip/SOURCES/CVE-2016-9296.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- ./CPP/7zip/Archive/7z/7zIn.cpp.orig 2016-11-21 01:42:29.460901230 +0000
-+++ ./CPP/7zip/Archive/7z/7zIn.cpp 2016-11-21 01:42:57.481197725 +0000
-@@ -1097,7 +1097,8 @@ HRESULT CInArchive::ReadAndDecodePackedS
- if (CrcCalc(data, unpackSize) != folders.FolderCRCs.Vals[i])
- ThrowIncorrect();
- }
-- HeadersSize += folders.PackPositions[folders.NumPackStreams];
-+ if (folders.PackPositions)
-+ HeadersSize += folders.PackPositions[folders.NumPackStreams];
- return S_OK;
- }
-
diff --git a/specs/p7zip/SOURCES/CVE-2017-17969.patch b/specs/p7zip/SOURCES/CVE-2017-17969.patch
deleted file mode 100644
index ebc0ac93e..000000000
--- a/specs/p7zip/SOURCES/CVE-2017-17969.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 79bca880ce7bcf07216c45f93afea545e0344418 Mon Sep 17 00:00:00 2001
-From: aone
-Date: Mon, 5 Feb 2018 13:01:09 +0100
-Subject: [PATCH] Security fix CVE-2017-17969
-
----
- CPP/7zip/Compress/ShrinkDecoder.cpp | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/CPP/7zip/Compress/ShrinkDecoder.cpp b/CPP/7zip/Compress/ShrinkDecoder.cpp
-index 80b7e67..5bb0559 100644
---- a/CPP/7zip/Compress/ShrinkDecoder.cpp
-+++ b/CPP/7zip/Compress/ShrinkDecoder.cpp
-@@ -121,7 +121,12 @@ HRESULT CDecoder::CodeReal(ISequentialInStream *inStream, ISequentialOutStream *
- {
- _stack[i++] = _suffixes[cur];
- cur = _parents[cur];
-+ if (cur >= kNumItems || i >= kNumItems)
-+ break;
- }
-+
-+ if (cur >= kNumItems || i >= kNumItems)
-+ break;
-
- _stack[i++] = (Byte)cur;
- lastChar2 = (Byte)cur;
diff --git a/specs/p7zip/p7zip.spec b/specs/p7zip/p7zip.spec
deleted file mode 100644
index f37ba6303..000000000
--- a/specs/p7zip/p7zip.spec
+++ /dev/null
@@ -1,150 +0,0 @@
-################################################################################
-
-%global crc_check pushd ../SOURCES ; sha512sum -c %{SOURCE100} ; popd
-
-################################################################################
-
-%define shortname 7za
-
-################################################################################
-
-Summary: Very high compression ratio file archiver
-Name: p7zip
-Version: 16.02
-Release: 2%{?dist}
-License: LGPLv2 and (LGPLv2+ or CPL)
-Group: Applications/Archiving
-URL: https://p7zip.sourceforge.net
-
-Source0: https://downloads.sourceforge.net/project/p7zip/%{name}/%{version}/%{name}_%{version}_src_all.tar.bz2
-
-Source100: checksum.sha512
-
-Patch0: CVE-2016-9296.patch
-Patch1: CVE-2017-17969.patch
-Patch2: 01-hardening-flags.patch
-Patch3: 02-fix-g++-warning.patch
-Patch4: 03-gcc10-conversion.patch
-Patch5: 04-fix-data-null-pointer.patch
-Patch6: 05-fix-out-of-mem.patch
-
-BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
-
-BuildRequires: make gcc gcc-c++
-
-%ifarch %{ix86}
-BuildRequires: nasm
-%endif
-%ifarch x86_64
-BuildRequires: yasm
-%endif
-
-Provides: %{name} = %{version}-%{release}
-Provides: %{shortname} = %{version}-%{release}
-
-################################################################################
-
-%description
-p7zip is a port of 7za.exe for Unix. 7-Zip is a file archiver with a very high
-compression ratio. The original version can be found at http://www.7-zip.org.
-
-################################################################################
-
-%package plugins
-Summary: Additional plugins for p7zip
-Group: Applications/Archiving
-
-%description plugins
-Additional plugins that can be used with 7z to extend its abilities.
-This package contains also a virtual file system for Midnight Commander.
-
-################################################################################
-
-%prep
-%crc_check
-%autosetup -p1 -n %{name}_%{version}
-
-%build
-mkdir docs
-
-mv DOC/* docs/
-mv ChangeLog README TODO docs/
-
-find docs -type f -exec chmod -x {} \;
-find contrib -type f -exec chmod -x {} \;
-
-%ifarch %{ix86}
-cp -f makefile.linux_x86_asm_gcc_4.X makefile.machine
-%endif
-
-%ifarch x86_64
-cp -f makefile.linux_amd64_asm makefile.machine
-%endif
-
-%ifarch ppc ppc64
-cp -f makefile.linux_any_cpu_gcc_4.X makefile.machine
-%endif
-
-%{__make} %{?_smp_mflags} all2 \
- OPTFLAGS="%{optflags}" \
- DEST_HOME=%{_prefix} \
- DEST_BIN=%{_bindir} \
- DEST_SHARE=%{_libexecdir}/%{name} \
- DEST_MAN=%{_mandir}
-
-%install
-rm -rf %{buildroot}
-
-%{__make} install \
- DEST_DIR=%{buildroot} \
- DEST_HOME=%{_prefix} \
- DEST_BIN=%{_bindir} \
- DEST_SHARE=%{_libexecdir}/%{name} \
- DEST_MAN=%{_mandir}
-
-%clean
-rm -rf %{buildroot}
-
-################################################################################
-
-%files
-%defattr(-,root,root,-)
-%doc docs/*
-%{_bindir}/%{shortname}
-%dir %{_libexecdir}/%{name}/
-%{_libexecdir}/%{name}/%{shortname}
-%{_libexecdir}/%{name}/7zCon.sfx
-%{_mandir}/man1/%{shortname}.1*
-%exclude %{_mandir}/man1/7zr.1*
-
-%files plugins
-%defattr(-,root,root,-)
-%doc contrib/
-%{_bindir}/7z
-%{_libexecdir}/%{name}/7z
-%{_libexecdir}/%{name}/7z.so
-%{_libexecdir}/%{name}/Codecs/*
-%{_mandir}/man1/7z.1*
-
-################################################################################
-
-%changelog
-* Fri Dec 16 2022 Anton Novojilov - 16.02-2
-- Added various patches
-
-* Wed Nov 22 2017 Anton Novojilov - 16.02-1
-- Moved Rar.so from base package to plugins package
-
-* Tue Sep 06 2016 Anton Novojilov - 16.02-0
-- 7-Zip now can extract multivolume ZIP archives (z01, z02, ... , zip)
-- Some bugs were fixed
-
-* Fri Apr 08 2016 Anton Novojilov - 15.14.1-0
-- Updated to latest stable release
-
-* Wed Jan 13 2016 Anton Novojilov - 15.09-0
-- Updated to latest stable release
-
-* Tue Apr 08 2014 Anton Novojilov - 9.20.1-3
-- Added patch to prevent deadlock if files are deleted while archiving
-- Rewrited spec
diff --git a/specs/pg_repack.spec b/specs/pg_repack.spec
index 641d1cfb6..73648e732 100644
--- a/specs/pg_repack.spec
+++ b/specs/pg_repack.spec
@@ -16,7 +16,7 @@
Summary: Reorganize tables in PostgreSQL %{pg_ver} databases without any locks
Name: %{realname}%{pg_ver}
-Version: 1.5.0
+Version: 1.5.2
Release: 0%{?dist}
License: BSD
Group: Applications/Databases
@@ -86,6 +86,9 @@ fi
################################################################################
%changelog
+* Fri Jan 24 2025 Anton Novojilov - 1.5.2-0
+- https://github.com/reorg/pg_repack/releases/tag/ver_1.5.2
+
* Tue Sep 10 2024 Anton Novojilov - 1.5.0-0
- https://github.com/reorg/pg_repack/releases/tag/ver_1.5.0
diff --git a/specs/pgbouncer/SOURCES/pgbouncer.service b/specs/pgbouncer/SOURCES/pgbouncer.service
index af35092ea..d8ac1ad09 100644
--- a/specs/pgbouncer/SOURCES/pgbouncer.service
+++ b/specs/pgbouncer/SOURCES/pgbouncer.service
@@ -1,21 +1,23 @@
[Unit]
Description=A lightweight connection pooler for PostgreSQL
Documentation=man:pgbouncer(1)
+Documentation=https://www.pgbouncer.org
After=network-online.target
Wants=network-online.target
[Service]
-RemainAfterExit=yes
Type=notify
-TimeoutSec=300
-
User=pgbouncer
Group=pgbouncer
-
Environment=BOUNCERCONF=/etc/pgbouncer/pgbouncer.ini
-
-ExecStart=/usr/bin/pgbouncer -q ${BOUNCERCONF}
-ExecReload=/usr/bin/pgbouncer -R -q ${BOUNCERCONF}
+EnvironmentFile=-/etc/sysconfig/pgbouncer
+ExecStart=/usr/bin/pgbouncer ${BOUNCERCONF}
+ExecReload=/bin/kill -HUP $MAINPID
+KillSignal=SIGINT
+Restart=on-failure
+
+# Give a reasonable amount of time for the server to start up/shut down
+TimeoutSec=300
[Install]
WantedBy=multi-user.target
diff --git a/specs/pgbouncer/pgbouncer.spec b/specs/pgbouncer/pgbouncer.spec
index 13d688b07..2c4939931 100644
--- a/specs/pgbouncer/pgbouncer.spec
+++ b/specs/pgbouncer/pgbouncer.spec
@@ -11,13 +11,13 @@
Summary: Lightweight connection pooler for PostgreSQL
Name: pgbouncer
-Version: 1.23.1
+Version: 1.24.0
Release: 0%{?dist}
License: MIT and BSD
Group: Applications/Databases
-URL: https://pgbouncer.github.io
+URL: https://www.pgbouncer.org
-Source0: https://pgbouncer.github.io/downloads/files/%{version}/%{name}-%{version}.tar.gz
+Source0: https://www.pgbouncer.org/downloads/files/%{version}/%{name}-%{version}.tar.gz
Source1: %{name}.service
Source2: %{name}.logrotate
Source3: %{name}.pam
@@ -145,6 +145,12 @@ fi
################################################################################
%changelog
+* Sat Jan 25 2025 Anton Novojilov - 1.24.0-0
+- https://www.pgbouncer.org/changelog.html#pgbouncer-124x
+
+* Thu Oct 31 2024 Anton Novojilov - 1.23.1-1
+- Improve systemd unit file
+
* Mon Sep 09 2024 Anton Novojilov - 1.23.1-0
- https://www.pgbouncer.org/changelog.html#pgbouncer-123x
diff --git a/specs/postgresql-12/SOURCES/pg_comparator-Makefile.patch b/specs/postgresql-12/SOURCES/pg_comparator-Makefile.patch
deleted file mode 100644
index b73120521..000000000
--- a/specs/postgresql-12/SOURCES/pg_comparator-Makefile.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -urN pg_comparator-2.3.1-orig/Makefile pg_comparator-2.3.1/Makefile
---- pg_comparator-2.3.1-orig/Makefile 2017-09-18 00:42:12.653308101 +0200
-+++ pg_comparator-2.3.1/Makefile 2017-09-18 00:42:46.000000000 +0200
-@@ -16,7 +16,7 @@
- EXTRA_CLEAN = $(name).1 $(name).html pod2htm?.tmp $(EXTENSION).control
-
- # get postgresql extension infrastructure
--PG_CONFIG = pg_config
-+PG_CONFIG ?= pg_config
- PGXS := $(shell $(PG_CONFIG) --pgxs)
- include $(PGXS)
-
diff --git a/specs/postgresql-12/SOURCES/postgis25-gdalfpic.patch b/specs/postgresql-12/SOURCES/postgis25-gdalfpic.patch
deleted file mode 100644
index 15a0687d9..000000000
--- a/specs/postgresql-12/SOURCES/postgis25-gdalfpic.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- configure.old 2017-05-28 09:41:00.123550140 +0300
-+++ configure 2017-05-28 09:41:15.925586108 +0300
-@@ -17171,7 +17171,7 @@
- LIBGDAL_CFLAGS=`$GDAL_CONFIG --cflags`
-
- CPPFLAGS_SAVE="$CPPFLAGS"
-- CPPFLAGS="$LIBGDAL_CFLAGS"
-+ CPPFLAGS="$LIBGDAL_CFLAGS -fPIC"
- CFLAGS_SAVE="$CFLAGS"
- CFLAGS=`"$PG_CONFIG" --cflags`
- CC_SAVE="$CC"
diff --git a/specs/postgresql-12/SOURCES/postgresql-12-libs.conf b/specs/postgresql-12/SOURCES/postgresql-12-libs.conf
deleted file mode 100644
index b284f24ec..000000000
--- a/specs/postgresql-12/SOURCES/postgresql-12-libs.conf
+++ /dev/null
@@ -1 +0,0 @@
-/usr/pgsql-12/lib/
diff --git a/specs/postgresql-12/SOURCES/slony1.init b/specs/postgresql-12/SOURCES/slony1.init
deleted file mode 100644
index f0e2f94bd..000000000
--- a/specs/postgresql-12/SOURCES/slony1.init
+++ /dev/null
@@ -1,94 +0,0 @@
-#!/bin/bash
-
-# redis init script for starting up the Slony-I
-#
-# chkconfig: - 64 36
-# description: Starts and stops the Slon daemon that handles
-# Slony-I replication.
-
-###############################################################################
-
-source /etc/init.d/kaosv
-
-###############################################################################
-
-PG_MAJOR_VERSION="{{PG_MAJOR_VERSION}}"
-PG_HIGH_VERSION="{{PG_HIGH_VERSION}}"
-
-###############################################################################
-
-kv[prog_name]="slony1"
-
-kv.readSysconfig "${kv[prog_name]}-${PG_MAJOR_VERSION}"
-
-binary=${BINARY:-/usr/pgsql-$PG_HIGH_VERSION/bin/slon}
-conf_file=${CONF_FILE:-/etc/slony1-$PG_MAJOR_VERSION/slon.conf}
-pid_dir=${PID_DIR:-/var/run/slony1-$PG_MAJOR_VERSION}
-log_dir=${LOG_DIR:-/var/log/slony1-$PG_MAJOR_VERSION}
-user=${USER:-postgres}
-
-conninfo="${SLONCONNINFO}"
-clustername="${SLONCLUSTERNAME:-sloncluster}"
-
-[[ -z "$conninfo" ]] && conninfo="host=/tmp port=5432 user=slony"
-
-kv[user]="$user"
-kv[pid_file]="$pid_dir/slon_${PG_MAJOR_VERSION}.pid"
-kv[log]="$log_dir/slonystartup.log"
-
-###############################################################################
-
-kv.addHandler "start" "preStartServiceHandler" "pre"
-kv.addHandler "start" "startServiceHandler"
-kv.addHandler "stop" "stopServiceHandler"
-
-kv.disableOutputRedirect "start" "pre"
-
-###############################################################################
-
-preStartServiceHandler() {
- local has_errors=""
-
- [[ ! -f $binary ]] && has_errors=true && kv.error "File <$binary> does not exist"
- [[ ! -x $binary ]] && has_errors=true && kv.error "File <$binary> is not executable"
-
- [[ ! -f $conf_file ]] && has_errors=true && kv.error "Configuration file <$conf_file> does not exist."
- [[ ! -r $conf_file ]] && has_errors=true && kv.error "Configuration file <$conf_file> is not readable."
-
- if ! kv.hasUser "$user" ; then
- has_errors=true && kv.error "User <$user> not found"
- fi
-
- [[ -n "$has_errors" ]] && kv.exit $ACTION_ERROR
-
- if kv.isRoot ; then
- if [[ ! -d $log_dir ]] ; then
- mkdir -p $log_dir
- chown $user: $log_dir
- fi
- fi
-
- return $ACTION_OK
-}
-
-startServiceHandler() {
- kv.run "$binary -f $conf_file -p ${kv[pid_file]} $clustername \"$conninfo\" &"
-
- [[ $? -ne $ACTION_OK ]] && return $ACTION_ERROR
-
- kv.getStartStatus
-
- return $?
-}
-
-stopServiceHandler() {
- kv.sendSignal "$SIGNAL_TERM"
-
- kv.getStopStatus
-
- return $?
-}
-
-###############################################################################
-
-kv.go $@
diff --git a/specs/postgresql-12/SOURCES/slony1.service b/specs/postgresql-12/SOURCES/slony1.service
deleted file mode 100644
index fc325718e..000000000
--- a/specs/postgresql-12/SOURCES/slony1.service
+++ /dev/null
@@ -1,11 +0,0 @@
-[Unit]
-Description=Slony-I
-After=syslog.target network.target
-
-[Service]
-PIDFile=/var/run/slony1-{{PG_MAJOR_VERSION}}/slon_{{PG_MAJOR_VERSION}}.pid
-ExecStart=/etc/init.d/slony1-{{PG_MAJOR_VERSION}} start
-ExecStop=/etc/init.d/slony1-{{PG_MAJOR_VERSION}} stop
-
-[Install]
-WantedBy=multi-user.target
diff --git a/specs/postgresql-12/SOURCES/slony1.sysconfig b/specs/postgresql-12/SOURCES/slony1.sysconfig
deleted file mode 100644
index ac2c68b1e..000000000
--- a/specs/postgresql-12/SOURCES/slony1.sysconfig
+++ /dev/null
@@ -1,9 +0,0 @@
-# Sysconfig file for slony
-
-BINARY=""
-CONF_FILE=""
-PID_DIR=""
-LOG_DIR=""
-USER=""
-SLONCONNINFO=""
-SLONCLUSTERNAME=""
diff --git a/specs/postgresql-12/postgresql-12.spec b/specs/postgresql-12/postgresql-12.spec
index c42c44ce4..7e15b2723 100644
--- a/specs/postgresql-12/postgresql-12.spec
+++ b/specs/postgresql-12/postgresql-12.spec
@@ -57,7 +57,6 @@ Source2: Makefile.regress
Source3: pg_config.h
Source4: README.rpm-dist
Source5: ecpg_config.h
-Source6: %{realname}-%{majorver}-libs.conf
Source7: https://www.postgresql.org/files/documentation/pdf/%{majorver}/%{realname}-%{majorver}-A4.pdf
Source8: %{realname}.pam
Source9: filter-requires-perl-Pg.sh
@@ -551,7 +550,7 @@ install -dm 700 %{buildroot}%{_sysconfdir}/sysconfig/%{shortname}/%{majorver}
# Install linker conf file under postgresql installation directory.
# We will install the latest version via alternatives.
install -dm 755 %{buildroot}%{install_dir}/share/
-install -pm 700 %{SOURCE6} %{buildroot}%{install_dir}/share/
+echo "%{install_dir}/lib" > %{buildroot}%{install_dir}/share/%{realname}-%{majorver}-libs.conf
%if %test
# Tests. There are many files included here that are unnecessary,
diff --git a/specs/postgresql-13/SOURCES/pg_comparator-Makefile.patch b/specs/postgresql-13/SOURCES/pg_comparator-Makefile.patch
deleted file mode 100644
index b73120521..000000000
--- a/specs/postgresql-13/SOURCES/pg_comparator-Makefile.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -urN pg_comparator-2.3.1-orig/Makefile pg_comparator-2.3.1/Makefile
---- pg_comparator-2.3.1-orig/Makefile 2017-09-18 00:42:12.653308101 +0200
-+++ pg_comparator-2.3.1/Makefile 2017-09-18 00:42:46.000000000 +0200
-@@ -16,7 +16,7 @@
- EXTRA_CLEAN = $(name).1 $(name).html pod2htm?.tmp $(EXTENSION).control
-
- # get postgresql extension infrastructure
--PG_CONFIG = pg_config
-+PG_CONFIG ?= pg_config
- PGXS := $(shell $(PG_CONFIG) --pgxs)
- include $(PGXS)
-
diff --git a/specs/postgresql-13/SOURCES/postgresql-13-libs.conf b/specs/postgresql-13/SOURCES/postgresql-13-libs.conf
deleted file mode 100644
index 0f3977157..000000000
--- a/specs/postgresql-13/SOURCES/postgresql-13-libs.conf
+++ /dev/null
@@ -1 +0,0 @@
-/usr/pgsql-13/lib/
diff --git a/specs/postgresql-13/SOURCES/postgresql-perl-rpath.patch b/specs/postgresql-13/SOURCES/postgresql-perl-rpath.patch
index b3e6b551d..1d8fa3431 100644
--- a/specs/postgresql-13/SOURCES/postgresql-perl-rpath.patch
+++ b/specs/postgresql-13/SOURCES/postgresql-perl-rpath.patch
@@ -1,5 +1,5 @@
---- src/pl/plperl/GNUmakefile.old 2020-02-16 20:01:28.953183370 +0300
-+++ src/pl/plperl/GNUmakefile 2020-02-16 20:01:48.943311971 +0300
+--- src/pl/plperl/GNUmakefile 2024-11-12 01:48:40.000000000 +0300
++++ src/pl/plperl/GNUmakefile 2025-01-25 22:57:13.000000000 +0300
@@ -55,6 +55,9 @@
SHLIB_LINK = $(perl_embed_ldflags)
@@ -7,6 +7,6 @@
+# Force rpath to be used even though we disable it everywhere else
+SHLIB_LINK += $(rpath)
+
- REGRESS_OPTS = --dbname=$(PL_TESTDB)
+ REGRESS_OPTS = --dbname=$(PL_TESTDB) --dlpath=$(top_builddir)/src/test/regress
REGRESS = plperl_setup plperl plperl_lc plperl_trigger plperl_shared \
plperl_elog plperl_util plperl_init plperlu plperl_array \
diff --git a/specs/postgresql-13/SOURCES/slony1.init b/specs/postgresql-13/SOURCES/slony1.init
deleted file mode 100644
index f0e2f94bd..000000000
--- a/specs/postgresql-13/SOURCES/slony1.init
+++ /dev/null
@@ -1,94 +0,0 @@
-#!/bin/bash
-
-# redis init script for starting up the Slony-I
-#
-# chkconfig: - 64 36
-# description: Starts and stops the Slon daemon that handles
-# Slony-I replication.
-
-###############################################################################
-
-source /etc/init.d/kaosv
-
-###############################################################################
-
-PG_MAJOR_VERSION="{{PG_MAJOR_VERSION}}"
-PG_HIGH_VERSION="{{PG_HIGH_VERSION}}"
-
-###############################################################################
-
-kv[prog_name]="slony1"
-
-kv.readSysconfig "${kv[prog_name]}-${PG_MAJOR_VERSION}"
-
-binary=${BINARY:-/usr/pgsql-$PG_HIGH_VERSION/bin/slon}
-conf_file=${CONF_FILE:-/etc/slony1-$PG_MAJOR_VERSION/slon.conf}
-pid_dir=${PID_DIR:-/var/run/slony1-$PG_MAJOR_VERSION}
-log_dir=${LOG_DIR:-/var/log/slony1-$PG_MAJOR_VERSION}
-user=${USER:-postgres}
-
-conninfo="${SLONCONNINFO}"
-clustername="${SLONCLUSTERNAME:-sloncluster}"
-
-[[ -z "$conninfo" ]] && conninfo="host=/tmp port=5432 user=slony"
-
-kv[user]="$user"
-kv[pid_file]="$pid_dir/slon_${PG_MAJOR_VERSION}.pid"
-kv[log]="$log_dir/slonystartup.log"
-
-###############################################################################
-
-kv.addHandler "start" "preStartServiceHandler" "pre"
-kv.addHandler "start" "startServiceHandler"
-kv.addHandler "stop" "stopServiceHandler"
-
-kv.disableOutputRedirect "start" "pre"
-
-###############################################################################
-
-preStartServiceHandler() {
- local has_errors=""
-
- [[ ! -f $binary ]] && has_errors=true && kv.error "File <$binary> does not exist"
- [[ ! -x $binary ]] && has_errors=true && kv.error "File <$binary> is not executable"
-
- [[ ! -f $conf_file ]] && has_errors=true && kv.error "Configuration file <$conf_file> does not exist."
- [[ ! -r $conf_file ]] && has_errors=true && kv.error "Configuration file <$conf_file> is not readable."
-
- if ! kv.hasUser "$user" ; then
- has_errors=true && kv.error "User <$user> not found"
- fi
-
- [[ -n "$has_errors" ]] && kv.exit $ACTION_ERROR
-
- if kv.isRoot ; then
- if [[ ! -d $log_dir ]] ; then
- mkdir -p $log_dir
- chown $user: $log_dir
- fi
- fi
-
- return $ACTION_OK
-}
-
-startServiceHandler() {
- kv.run "$binary -f $conf_file -p ${kv[pid_file]} $clustername \"$conninfo\" &"
-
- [[ $? -ne $ACTION_OK ]] && return $ACTION_ERROR
-
- kv.getStartStatus
-
- return $?
-}
-
-stopServiceHandler() {
- kv.sendSignal "$SIGNAL_TERM"
-
- kv.getStopStatus
-
- return $?
-}
-
-###############################################################################
-
-kv.go $@
diff --git a/specs/postgresql-13/SOURCES/slony1.service b/specs/postgresql-13/SOURCES/slony1.service
deleted file mode 100644
index fc325718e..000000000
--- a/specs/postgresql-13/SOURCES/slony1.service
+++ /dev/null
@@ -1,11 +0,0 @@
-[Unit]
-Description=Slony-I
-After=syslog.target network.target
-
-[Service]
-PIDFile=/var/run/slony1-{{PG_MAJOR_VERSION}}/slon_{{PG_MAJOR_VERSION}}.pid
-ExecStart=/etc/init.d/slony1-{{PG_MAJOR_VERSION}} start
-ExecStop=/etc/init.d/slony1-{{PG_MAJOR_VERSION}} stop
-
-[Install]
-WantedBy=multi-user.target
diff --git a/specs/postgresql-13/SOURCES/slony1.sysconfig b/specs/postgresql-13/SOURCES/slony1.sysconfig
deleted file mode 100644
index ac2c68b1e..000000000
--- a/specs/postgresql-13/SOURCES/slony1.sysconfig
+++ /dev/null
@@ -1,9 +0,0 @@
-# Sysconfig file for slony
-
-BINARY=""
-CONF_FILE=""
-PID_DIR=""
-LOG_DIR=""
-USER=""
-SLONCONNINFO=""
-SLONCLUSTERNAME=""
diff --git a/specs/postgresql-13/postgresql-13.spec b/specs/postgresql-13/postgresql-13.spec
index 15a85c3d0..aacc462cc 100644
--- a/specs/postgresql-13/postgresql-13.spec
+++ b/specs/postgresql-13/postgresql-13.spec
@@ -23,7 +23,7 @@
%{!?llvm:%global llvm 1}
%define majorver 13
-%define minorver 16
+%define minorver 18
%define rel 0
%define fullver %{majorver}.%{minorver}
%define pkgver 13
@@ -57,7 +57,6 @@ Source2: Makefile.regress
Source3: pg_config.h
Source4: README.rpm-dist
Source5: ecpg_config.h
-Source6: %{realname}-%{majorver}-libs.conf
Source7: https://www.postgresql.org/files/documentation/pdf/%{majorver}/%{realname}-%{majorver}-A4.pdf
Source8: %{realname}.pam
Source9: filter-requires-perl-Pg.sh
@@ -550,7 +549,7 @@ install -dm 700 %{buildroot}%{_sysconfdir}/sysconfig/%{shortname}/%{majorver}
# Install linker conf file under postgresql installation directory.
# We will install the latest version via alternatives.
install -dm 755 %{buildroot}%{install_dir}/share/
-install -pm 700 %{SOURCE6} %{buildroot}%{install_dir}/share/
+echo "%{install_dir}/lib" > %{buildroot}%{install_dir}/share/%{realname}-%{majorver}-libs.conf
%if %test
# Tests. There are many files included here that are unnecessary,
@@ -1122,6 +1121,12 @@ fi
################################################################################
%changelog
+* Sat Jan 25 2025 Anton Novojilov - 13.18-0
+- https://www.postgresql.org/docs/13/release-13-18.html
+
+* Sat Jan 25 2025 Anton Novojilov - 13.17-0
+- https://www.postgresql.org/docs/13/release-13-17.html
+
* Fri Sep 06 2024 Anton Novojilov - 13.16-0
- https://www.postgresql.org/docs/13/release-13-16.html
diff --git a/specs/postgresql-14/SOURCES/pg_comparator-Makefile.patch b/specs/postgresql-14/SOURCES/pg_comparator-Makefile.patch
deleted file mode 100644
index b73120521..000000000
--- a/specs/postgresql-14/SOURCES/pg_comparator-Makefile.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -urN pg_comparator-2.3.1-orig/Makefile pg_comparator-2.3.1/Makefile
---- pg_comparator-2.3.1-orig/Makefile 2017-09-18 00:42:12.653308101 +0200
-+++ pg_comparator-2.3.1/Makefile 2017-09-18 00:42:46.000000000 +0200
-@@ -16,7 +16,7 @@
- EXTRA_CLEAN = $(name).1 $(name).html pod2htm?.tmp $(EXTENSION).control
-
- # get postgresql extension infrastructure
--PG_CONFIG = pg_config
-+PG_CONFIG ?= pg_config
- PGXS := $(shell $(PG_CONFIG) --pgxs)
- include $(PGXS)
-
diff --git a/specs/postgresql-14/SOURCES/postgresql-14-libs.conf b/specs/postgresql-14/SOURCES/postgresql-14-libs.conf
deleted file mode 100644
index c7f46ca1f..000000000
--- a/specs/postgresql-14/SOURCES/postgresql-14-libs.conf
+++ /dev/null
@@ -1 +0,0 @@
-/usr/pgsql-14/lib/
diff --git a/specs/postgresql-14/SOURCES/postgresql-perl-rpath.patch b/specs/postgresql-14/SOURCES/postgresql-perl-rpath.patch
index b3e6b551d..1d8fa3431 100644
--- a/specs/postgresql-14/SOURCES/postgresql-perl-rpath.patch
+++ b/specs/postgresql-14/SOURCES/postgresql-perl-rpath.patch
@@ -1,5 +1,5 @@
---- src/pl/plperl/GNUmakefile.old 2020-02-16 20:01:28.953183370 +0300
-+++ src/pl/plperl/GNUmakefile 2020-02-16 20:01:48.943311971 +0300
+--- src/pl/plperl/GNUmakefile 2024-11-12 01:48:40.000000000 +0300
++++ src/pl/plperl/GNUmakefile 2025-01-25 22:57:13.000000000 +0300
@@ -55,6 +55,9 @@
SHLIB_LINK = $(perl_embed_ldflags)
@@ -7,6 +7,6 @@
+# Force rpath to be used even though we disable it everywhere else
+SHLIB_LINK += $(rpath)
+
- REGRESS_OPTS = --dbname=$(PL_TESTDB)
+ REGRESS_OPTS = --dbname=$(PL_TESTDB) --dlpath=$(top_builddir)/src/test/regress
REGRESS = plperl_setup plperl plperl_lc plperl_trigger plperl_shared \
plperl_elog plperl_util plperl_init plperlu plperl_array \
diff --git a/specs/postgresql-14/SOURCES/slony1.init b/specs/postgresql-14/SOURCES/slony1.init
deleted file mode 100644
index f0e2f94bd..000000000
--- a/specs/postgresql-14/SOURCES/slony1.init
+++ /dev/null
@@ -1,94 +0,0 @@
-#!/bin/bash
-
-# redis init script for starting up the Slony-I
-#
-# chkconfig: - 64 36
-# description: Starts and stops the Slon daemon that handles
-# Slony-I replication.
-
-###############################################################################
-
-source /etc/init.d/kaosv
-
-###############################################################################
-
-PG_MAJOR_VERSION="{{PG_MAJOR_VERSION}}"
-PG_HIGH_VERSION="{{PG_HIGH_VERSION}}"
-
-###############################################################################
-
-kv[prog_name]="slony1"
-
-kv.readSysconfig "${kv[prog_name]}-${PG_MAJOR_VERSION}"
-
-binary=${BINARY:-/usr/pgsql-$PG_HIGH_VERSION/bin/slon}
-conf_file=${CONF_FILE:-/etc/slony1-$PG_MAJOR_VERSION/slon.conf}
-pid_dir=${PID_DIR:-/var/run/slony1-$PG_MAJOR_VERSION}
-log_dir=${LOG_DIR:-/var/log/slony1-$PG_MAJOR_VERSION}
-user=${USER:-postgres}
-
-conninfo="${SLONCONNINFO}"
-clustername="${SLONCLUSTERNAME:-sloncluster}"
-
-[[ -z "$conninfo" ]] && conninfo="host=/tmp port=5432 user=slony"
-
-kv[user]="$user"
-kv[pid_file]="$pid_dir/slon_${PG_MAJOR_VERSION}.pid"
-kv[log]="$log_dir/slonystartup.log"
-
-###############################################################################
-
-kv.addHandler "start" "preStartServiceHandler" "pre"
-kv.addHandler "start" "startServiceHandler"
-kv.addHandler "stop" "stopServiceHandler"
-
-kv.disableOutputRedirect "start" "pre"
-
-###############################################################################
-
-preStartServiceHandler() {
- local has_errors=""
-
- [[ ! -f $binary ]] && has_errors=true && kv.error "File <$binary> does not exist"
- [[ ! -x $binary ]] && has_errors=true && kv.error "File <$binary> is not executable"
-
- [[ ! -f $conf_file ]] && has_errors=true && kv.error "Configuration file <$conf_file> does not exist."
- [[ ! -r $conf_file ]] && has_errors=true && kv.error "Configuration file <$conf_file> is not readable."
-
- if ! kv.hasUser "$user" ; then
- has_errors=true && kv.error "User <$user> not found"
- fi
-
- [[ -n "$has_errors" ]] && kv.exit $ACTION_ERROR
-
- if kv.isRoot ; then
- if [[ ! -d $log_dir ]] ; then
- mkdir -p $log_dir
- chown $user: $log_dir
- fi
- fi
-
- return $ACTION_OK
-}
-
-startServiceHandler() {
- kv.run "$binary -f $conf_file -p ${kv[pid_file]} $clustername \"$conninfo\" &"
-
- [[ $? -ne $ACTION_OK ]] && return $ACTION_ERROR
-
- kv.getStartStatus
-
- return $?
-}
-
-stopServiceHandler() {
- kv.sendSignal "$SIGNAL_TERM"
-
- kv.getStopStatus
-
- return $?
-}
-
-###############################################################################
-
-kv.go $@
diff --git a/specs/postgresql-14/SOURCES/slony1.service b/specs/postgresql-14/SOURCES/slony1.service
deleted file mode 100644
index fc325718e..000000000
--- a/specs/postgresql-14/SOURCES/slony1.service
+++ /dev/null
@@ -1,11 +0,0 @@
-[Unit]
-Description=Slony-I
-After=syslog.target network.target
-
-[Service]
-PIDFile=/var/run/slony1-{{PG_MAJOR_VERSION}}/slon_{{PG_MAJOR_VERSION}}.pid
-ExecStart=/etc/init.d/slony1-{{PG_MAJOR_VERSION}} start
-ExecStop=/etc/init.d/slony1-{{PG_MAJOR_VERSION}} stop
-
-[Install]
-WantedBy=multi-user.target
diff --git a/specs/postgresql-14/SOURCES/slony1.sysconfig b/specs/postgresql-14/SOURCES/slony1.sysconfig
deleted file mode 100644
index ac2c68b1e..000000000
--- a/specs/postgresql-14/SOURCES/slony1.sysconfig
+++ /dev/null
@@ -1,9 +0,0 @@
-# Sysconfig file for slony
-
-BINARY=""
-CONF_FILE=""
-PID_DIR=""
-LOG_DIR=""
-USER=""
-SLONCONNINFO=""
-SLONCLUSTERNAME=""
diff --git a/specs/postgresql-14/postgresql-14.spec b/specs/postgresql-14/postgresql-14.spec
index 2b9fa2e0a..61ceb4cca 100644
--- a/specs/postgresql-14/postgresql-14.spec
+++ b/specs/postgresql-14/postgresql-14.spec
@@ -23,7 +23,7 @@
%{!?llvm:%global llvm 1}
%define majorver 14
-%define minorver 13
+%define minorver 15
%define rel 0
%define fullver %{majorver}.%{minorver}
%define pkgver 14
@@ -57,7 +57,6 @@ Source2: Makefile.regress
Source3: pg_config.h
Source4: README.rpm-dist
Source5: ecpg_config.h
-Source6: %{realname}-%{majorver}-libs.conf
Source7: https://www.postgresql.org/files/documentation/pdf/%{majorver}/%{realname}-%{majorver}-A4.pdf
Source8: %{realname}.pam
Source9: filter-requires-perl-Pg.sh
@@ -551,7 +550,7 @@ install -dm 700 %{buildroot}%{_sysconfdir}/sysconfig/%{shortname}/%{majorver}
# Install linker conf file under postgresql installation directory.
# We will install the latest version via alternatives.
install -dm 755 %{buildroot}%{install_dir}/share/
-install -pm 700 %{SOURCE6} %{buildroot}%{install_dir}/share/
+echo "%{install_dir}/lib" > %{buildroot}%{install_dir}/share/%{realname}-%{majorver}-libs.conf
%if %test
# Tests. There are many files included here that are unnecessary,
@@ -1132,6 +1131,12 @@ fi
################################################################################
%changelog
+* Sat Jan 25 2025 Anton Novojilov - 14.15-0
+- https://www.postgresql.org/docs/14/release-14-15.html
+
+* Sat Jan 25 2025 Anton Novojilov - 14.14-0
+- https://www.postgresql.org/docs/14/release-14-14.html
+
* Fri Sep 06 2024 Anton Novojilov - 14.13-0
- https://www.postgresql.org/docs/14/release-14-13.html
diff --git a/specs/postgresql-15/SOURCES/postgresql-15-libs.conf b/specs/postgresql-15/SOURCES/postgresql-15-libs.conf
deleted file mode 100644
index 9432f8c58..000000000
--- a/specs/postgresql-15/SOURCES/postgresql-15-libs.conf
+++ /dev/null
@@ -1 +0,0 @@
-/usr/pgsql-15/lib/
diff --git a/specs/postgresql-15/SOURCES/postgresql-perl-rpath.patch b/specs/postgresql-15/SOURCES/postgresql-perl-rpath.patch
index b3e6b551d..1d8fa3431 100644
--- a/specs/postgresql-15/SOURCES/postgresql-perl-rpath.patch
+++ b/specs/postgresql-15/SOURCES/postgresql-perl-rpath.patch
@@ -1,5 +1,5 @@
---- src/pl/plperl/GNUmakefile.old 2020-02-16 20:01:28.953183370 +0300
-+++ src/pl/plperl/GNUmakefile 2020-02-16 20:01:48.943311971 +0300
+--- src/pl/plperl/GNUmakefile 2024-11-12 01:48:40.000000000 +0300
++++ src/pl/plperl/GNUmakefile 2025-01-25 22:57:13.000000000 +0300
@@ -55,6 +55,9 @@
SHLIB_LINK = $(perl_embed_ldflags)
@@ -7,6 +7,6 @@
+# Force rpath to be used even though we disable it everywhere else
+SHLIB_LINK += $(rpath)
+
- REGRESS_OPTS = --dbname=$(PL_TESTDB)
+ REGRESS_OPTS = --dbname=$(PL_TESTDB) --dlpath=$(top_builddir)/src/test/regress
REGRESS = plperl_setup plperl plperl_lc plperl_trigger plperl_shared \
plperl_elog plperl_util plperl_init plperlu plperl_array \
diff --git a/specs/postgresql-15/postgresql-15.spec b/specs/postgresql-15/postgresql-15.spec
index f6593b5d7..4799ad333 100644
--- a/specs/postgresql-15/postgresql-15.spec
+++ b/specs/postgresql-15/postgresql-15.spec
@@ -24,7 +24,7 @@
%{!?zstd:%global zstd 1}
%define majorver 15
-%define minorver 8
+%define minorver 10
%define rel 0
%define fullver %{majorver}.%{minorver}
%define pkgver 15
@@ -58,7 +58,6 @@ Source2: Makefile.regress
Source3: pg_config.h
Source4: README.rpm-dist
Source5: ecpg_config.h
-Source6: %{realname}-%{majorver}-libs.conf
Source7: https://www.postgresql.org/files/documentation/pdf/%{majorver}/%{realname}-%{majorver}-A4.pdf
Source8: %{realname}.pam
Source9: filter-requires-perl-Pg.sh
@@ -559,7 +558,7 @@ install -dm 700 %{buildroot}%{_sysconfdir}/sysconfig/%{shortname}/%{majorver}
# Install linker conf file under postgresql installation directory.
# We will install the latest version via alternatives.
install -dm 755 %{buildroot}%{install_dir}/share/
-install -pm 700 %{SOURCE6} %{buildroot}%{install_dir}/share/
+echo "%{install_dir}/lib" > %{buildroot}%{install_dir}/share/%{realname}-%{majorver}-libs.conf
%if %test
# Tests. There are many files included here that are unnecessary,
@@ -1144,6 +1143,12 @@ fi
################################################################################
%changelog
+* Sat Jan 25 2025 Anton Novojilov - 15.10-0
+- https://www.postgresql.org/docs/15/release-15-10.html
+
+* Sat Jan 25 2025 Anton Novojilov - 15.9-0
+- https://www.postgresql.org/docs/15/release-15-9.html
+
* Fri Sep 06 2024 Anton Novojilov - 15.8-0
- https://www.postgresql.org/docs/15/release-15-8.html
diff --git a/specs/postgresql-16/SOURCES/pg_comparator-Makefile.patch b/specs/postgresql-16/SOURCES/pg_comparator-Makefile.patch
deleted file mode 100644
index b73120521..000000000
--- a/specs/postgresql-16/SOURCES/pg_comparator-Makefile.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -urN pg_comparator-2.3.1-orig/Makefile pg_comparator-2.3.1/Makefile
---- pg_comparator-2.3.1-orig/Makefile 2017-09-18 00:42:12.653308101 +0200
-+++ pg_comparator-2.3.1/Makefile 2017-09-18 00:42:46.000000000 +0200
-@@ -16,7 +16,7 @@
- EXTRA_CLEAN = $(name).1 $(name).html pod2htm?.tmp $(EXTENSION).control
-
- # get postgresql extension infrastructure
--PG_CONFIG = pg_config
-+PG_CONFIG ?= pg_config
- PGXS := $(shell $(PG_CONFIG) --pgxs)
- include $(PGXS)
-
diff --git a/specs/postgresql-16/SOURCES/postgresql-16-libs.conf b/specs/postgresql-16/SOURCES/postgresql-16-libs.conf
deleted file mode 100644
index 853e0c49a..000000000
--- a/specs/postgresql-16/SOURCES/postgresql-16-libs.conf
+++ /dev/null
@@ -1 +0,0 @@
-/usr/pgsql-16/lib/
diff --git a/specs/postgresql-16/postgresql-16.spec b/specs/postgresql-16/postgresql-16.spec
index 201228e42..171608308 100644
--- a/specs/postgresql-16/postgresql-16.spec
+++ b/specs/postgresql-16/postgresql-16.spec
@@ -24,7 +24,7 @@
%{!?zstd:%global zstd 1}
%define majorver 16
-%define minorver 4
+%define minorver 6
%define rel 0
%define fullver %{majorver}.%{minorver}
%define pkgver 16
@@ -58,7 +58,6 @@ Source2: Makefile.regress
Source3: pg_config.h
Source4: README.rpm-dist
Source5: ecpg_config.h
-Source6: %{realname}-%{majorver}-libs.conf
Source7: https://www.postgresql.org/files/documentation/pdf/%{majorver}/%{realname}-%{majorver}-A4.pdf
Source8: %{realname}.pam
Source9: filter-requires-perl-Pg.sh
@@ -559,7 +558,7 @@ install -dm 700 %{buildroot}%{_sysconfdir}/sysconfig/%{shortname}/%{majorver}
# Install linker conf file under postgresql installation directory.
# We will install the latest version via alternatives.
install -dm 755 %{buildroot}%{install_dir}/share/
-install -pm 700 %{SOURCE6} %{buildroot}%{install_dir}/share/
+echo "%{install_dir}/lib" > %{buildroot}%{install_dir}/share/%{realname}-%{majorver}-libs.conf
%if %test
# Tests. There are many files included here that are unnecessary,
@@ -1142,6 +1141,12 @@ fi
################################################################################
%changelog
+* Sat Jan 25 2025 Anton Novojilov - 16.6-0
+- https://www.postgresql.org/docs/16/release-16-6.html
+
+* Sat Jan 25 2025 Anton Novojilov - 16.5-0
+- https://www.postgresql.org/docs/16/release-16-5.html
+
* Fri Sep 06 2024 Anton Novojilov - 16.4-0
- https://www.postgresql.org/docs/16/release-16-4.html
diff --git a/specs/postgresql-17/SOURCES/Makefile.regress b/specs/postgresql-17/SOURCES/Makefile.regress
new file mode 100644
index 000000000..a02dd4614
--- /dev/null
+++ b/specs/postgresql-17/SOURCES/Makefile.regress
@@ -0,0 +1,69 @@
+#
+# Simplified makefile for running the PostgreSQL regression tests
+# in an RPM installation
+#
+
+# maximum simultaneous connections for parallel tests
+MAXCONNOPT =
+ifdef MAX_CONNECTIONS
+MAXCONNOPT += --max-connections=$(MAX_CONNECTIONS)
+endif
+
+# locale
+NOLOCALE =
+ifdef NO_LOCALE
+NOLOCALE += --no-locale
+endif
+
+srcdir := .
+
+REGRESS_OPTS += --dlpath=.
+
+pg_regress_locale_flags = $(if $(ENCODING),--encoding=$(ENCODING)) $(NOLOCALE)
+
+pg_regress_installcheck = ./pg_regress --inputdir=$(srcdir) --bindir='/usr/pgsql-14/bin/' $(pg_regress_locale_flags)
+
+# Test input and expected files. These are created by pg_regress itself, so we
+# don't have a rule to create them. We do need rules to clean them however.
+ifile_list := $(subst .source,, $(notdir $(wildcard $(srcdir)/input/*.source)))
+input_files := $(foreach file, $(ifile_list), sql/$(file).sql)
+ofile_list := $(subst .source,, $(notdir $(wildcard $(srcdir)/output/*.source)))
+output_files := $(foreach file, $(ofile_list), expected/$(file).out)
+
+abs_srcdir := $(shell pwd)
+abs_builddir := $(shell pwd)
+
+check: installcheck-parallel
+
+installcheck: cleandirs
+ $(pg_regress_installcheck) $(REGRESS_OPTS) --schedule=$(srcdir)/parallel_schedule --max-connections=1 $(EXTRA_TESTS)
+
+installcheck-parallel: cleandirs
+ $(pg_regress_installcheck) $(REGRESS_OPTS) --schedule=$(srcdir)/parallel_schedule $(MAXCONNOPT) $(EXTRA_TESTS)
+
+# The tests command the server to write into testtablespace and results.
+# On a SELinux-enabled system this will fail unless we mark those directories
+# as writable by the server.
+cleandirs:
+ -rm -rf testtablespace results
+ mkdir testtablespace results
+ if test -x /usr/bin/chcon && ! test -f /.dockerenv; then \
+ /usr/bin/chcon -u system_u -r object_r -t postgresql_db_t testtablespace results ; \
+ fi
+
+# old interfaces follow...
+
+runcheck: check
+runtest: installcheck
+runtest-parallel: installcheck-parallel
+
+
+##
+## Clean up
+##
+
+clean distclean maintainer-clean:
+ rm -f $(output_files) $(input_files)
+ rm -rf testtablespace
+ rm -rf results tmp_check log
+ rm -f regression.diffs regression.out regress.out run_check.out
diff --git a/specs/postgresql-17/SOURCES/README.rpm-dist b/specs/postgresql-17/SOURCES/README.rpm-dist
new file mode 100644
index 000000000..580ede717
--- /dev/null
+++ b/specs/postgresql-17/SOURCES/README.rpm-dist
@@ -0,0 +1,356 @@
+README.rpm-dist
+-----------------------------------------------------------------------------
+Version 14, for the PostgreSQL 14 RPM set.
+Devrim Gündüz
+-----------------------------------------------------------------------------
+
+Contents:
+ 1.) Introduction and QuickStart
+ 2.) Upgrading an installation
+ 3.) PostgreSQL RPM packages and rationale
+ 4.) Starting multiple postmasters
+ 5.) Regression Testing
+ 6.) Starting postmaster automatically on startup
+ 7.) Grand Unified Configuration(GUC) File
+ 8.) Logging set up
+ 9.) Rebuilding from the source RPM
+10.) Contrib files
+11.) Further Information Resource
+
+INTRODUCTION
+-----------------------------------------------------------------------------
+This document exists to explain the layout of the RPMs for PostgreSQL, to
+describe various RPM specifics, and to document special features found
+in the RPMset.
+
+This document is written to be applicable to version 14 of PostgreSQL,
+which is the current version of the RPMs as of this writing. More to the
+point, versions prior to 14 are not documented here.
+
+Official PostgreSQL Global Development Group RPMs carry a 'PGDG after the
+release number. Other RPMsets as distributed with Linux distributions may
+have a different release number and initials.
+
+If you want to stay up-to-date on the PostgreSQL core itself, you may
+want to use PGDG set, instead of the binaries supplied by distribution.
+
+These RPMs do not support any sort of major version upgrading process
+other than that documented in the regular documentation. That is, you
+must dump, upgrade, initdb, and restore your data if you are
+performing a major version update. This is not needed for minor version
+updates.
+
+QUICKSTART (note that this requires postgresql14-server installed)
+-----------------------------------------------------------------------------
+For a fresh installation, you will need to initialize the cluster first. Run:
+
+ /usr/pgsql-14/bin/postgresql-14-setup initdb
+
+as root, and it will prepare a new database cluster for you. Then you will
+need to start PostgreSQL. Again as root, run:
+
+ systemctl start postgresql-14.service
+
+You will probably also want to do
+
+ systemctl enable postgresql-14.service
+
+so that the postmaster is automatically started during future reboots.
+
+These commands will start a postmaster that will listen on localhost and Unix
+socket 5432 only. Edit /var/lib/pgsql/14/data/postgresql.conf and pg_hba.conf
+if you want to allow remote access -- see the section on Grand Unified
+Configuration.
+
+The file /var/lib/pgsql/14/.bash_profile is packaged to help with the
+setting of environment variables. Users should not edit this file, because
+it may be overwritten during every new installation. However, you can create
+~/.pgsql_profile file, and add your customizations there.
+
+The user 'postgres' is created during installation of the server subpackage.
+This user by default is UID and GID 26. The user has the default shell set to
+bash, and the home directory set to /var/lib/pgsql. This user also has no
+default password. If you want to be able to su to it from a non-root account
+or login as 'postgres' you will need to set a password using passwd.
+
+In the default installation, only postgres user is allowed to access to
+the database server, because initdb in the RPMs pick up "peer" auth
+method in the RPMs.
+
+All the binaries are installed under /usr/pgsql-14/bin. However, the
+tools that are compatible with the previous releases are symlinked under
+/usr/bin directory. Please note that RPMs are using alternatives method
+in here, so whenever a newer major version is installed, symlinks will
+point to the new version. Here is the current list of the binaries that
+are under $PATH:
+
+- clusterdb
+- createdb
+- createuser
+- dropdb
+- dropuser
+- pg_basebackup
+- pg_dump
+- pg_dumpall
+- pg_restore
+- psql
+- reindexdb
+- vacuumdb
+
+You may want to add /usr/pgsql-14/bin to your $PATH variable in
+/etc/profile, if you want to use them easily. However, please note that
+this may lead to some unintentional side effects, so be careful.
+
+
+UPGRADING AN INSTALLATION
+-----------------------------------------------------------------------------
+For a minor-version upgrade (such as 14.1 to 14.2), just install the
+new RPMs; there's usually nothing more to it than that. Upgrading
+across a major release of PostgreSQL (for example, from 9.2.x to 14.x)
+requires more effort.
+
+If you are upgrading across more than one major release of PostgreSQL
+(for example, from 9.1.x to 14.x), you will need to follow the "traditional"
+dump and reload process to bring your data into the new version. That is:
+*before* upgrading, run pg_dumpall to extract all your data into a SQL file.
+Shut down the old postmaster, upgrade to the new version RPMs, initdb,
+and run the dump file through psql to restore your data.
+
+RPMs also support in-place upgrade from the immediately previous major release.
+Currently, you can upgrade in-place from 13.x to 14.x. Just run:
+
+$ /usr/pgsql-14/bin/postgresql-14-setup upgrade
+
+Please note that 13 and 14 contrib RPMs need to be installed for this feature
+to work. You can also upgrade from other major versions either by editing the
+setup script, or passing PostgreSQL major version as the 3rd argument to the
+setup script.
+
+POSTGRESQL RPM PACKAGES AND RATIONALE.
+-----------------------------------------------------------------------------
+PostgreSQL is split up into multiple packages so that users can 'pick and
+choose' what pieces are needed, and what dependencies are required.
+
+The RPMset is packaged in the following subpackages:
+
+postgresql14: Key clients and libraries, and documentation
+postgresql14-server: Server executables and data files
+postgresql14-devel: Development libraries and include files
+postgresql14-test: The regression tests and associated files
+postgresql14-libs: Client shared libraries
+postgresql14-docs: Extra documentation, such as the tutorial files
+postgresql14-contrib: The contrib source tree, as well as selected binaries
+postgresql14-plperl: PL/Perl procedural language
+postgresql14-plpython: PL/Python procedural language
+postgresql14-pltcl: PL/Tcl procedural language
+
+postgresql14-jdbc, postgresql14-python, postgresql14-tcl and postgresql14-odbc have
+been splitted into seperate (s)rpms.
+
+You have to install postgresql and postgresql14-libs to do anything.
+postgresql14-server is needed unless you only plan to use the clients to work
+with a remote PostgreSQL server. The others are optional.
+
+postgresql14-python package includes PyGreSQL, and Pgtcl is distributed
+via postgresql14-tcl package.
+
+RPM FILE LOCATIONS.
+-----------------------------------------------------------------------------
+To be in compliance with the Linux FHS, the PostgreSQL RPMs install files in
+a manner not consistent with most of the PostgreSQL documentation. According
+to the standard PostgreSQL documentation, PostgreSQL is installed under the
+directory /usr/local/pgsql, with executables, source, and data existing in
+various subdirectories.
+
+Different distributions have different ideas of some of these file locations.
+In particular, the documentation directory can be /usr/doc, /usr/doc/packages,
+/usr/share/doc, /usr/share/doc/packages, or some other similar path.
+
+However, the Red Hat / Scientific Linux ( CentOS / Fedora RPM's install
+the files like this:
+
+Executables: /usr/bin and /usr/pgsql-14/bin
+Libraries: /usr/pgsql-14/lib
+Documentation: /usr/pgsql-14/doc
+Contrib documentation: /usr/pgsql-14/doc
+Source: not installed
+Data: /var/lib/pgsql/14/data
+Backup area: /var/lib/pgsql/14/backups
+Templates: /usr/pgsql-14/share
+Procedural Languages: /usr/pgsql-14/lib
+Development Headers: /usr/pgsql-14/include
+Other shared data: /usr/pgsql-14/share
+Regression tests: /usr/pgsql-14/lib/test
+
+While it may seem gratuitous to place these files in different locations, the
+FHS requires it -- distributions should not ever touch /usr/local. It may
+also seem like more work to keep track of where everything is -- but, that's
+the beauty of RPM -- you don't have to keep track of the files, RPM does it
+for you.
+
+These RPMs are designed to be LSB-compliant -- if you find this not to be the
+case, please let us know by way of the pgsql-pkg-yum@postgresql.org
+mailing list.
+
+-------------------------------------------------------------------------------
+MULTIPLE POSTMASTERS (For the same PostgreSQL version)
+-------------------------------------------------------------------------------
+The postgresql-server RPM contains a 'unit file' that is used to start the
+postmaster. The current version of this script has logic to be able to start
+multiple postmasters, with different data areas, listening on different ports,
+etc. To use this functionality requires root access.
+
+Here are the steps:
+
+1.) First, you will need to create a new unit file for the new cluster.
+ You can give any name in here. To distinguish the cluster, you can
+ add the service name or port value to the unit file name:
+
+ cp /lib/systemd/system/postgresql-14.service /etc/systemd/system/postgresql-14-secondary.service
+
+2.) Edit this file, and change PGDATA. Please note that you can give
+ any directory name in here that postgres can access. You don't
+ have to create this directory now, it will be created in the next step:
+
+ Environment=PGDATA=/var/lib/pgsql/14/data-secondary
+
+3.) Initialize the cluster:
+
+ /usr/pgsql-14/bin/postgresql-14-setup initdb postgresql-14-secondary
+
+4.) Edit postgresql.conf to change the port, address, tcpip settings, etc.
+
+5.) Start the postmaster with 'systemctl start postgresql-14-secondary.service'
+
+When doing a major-version upgrade of a secondary postmaster, mention the
+service name in the postgresql-14-setup command, for example 'postgresql-14-setup
+upgrade secondary'. This will let postgresql-14-setup find the correct data
+directory from the service file.
+
+REGRESSION TESTING
+-------------------------------------------------------------------------------
+If you install the postgresql-test RPM then you can run the PostgreSQL
+regression tests. These tests stress your database installation and produce
+results that give you assurances that the installation is complete, and that
+your database machine is up to the task.
+
+To run the regression tests under the RPM installation, make sure that the
+postmaster has been started (if not, su to root and do "systemctl start
+postgresql-14.service"), cd to /usr/pgsql-14/lib/test/regress, su to
+postgres, and execute "make check". This command will start the
+regression tests and will both show the results to the screen and store
+the results in the file regress.out.
+
+If any tests fail, see the file regression.diffs in that directory for details,
+and read the "Regression Tests" section of the PostgreSQL documentation to
+find out whether the differences are actually significant. If you need help
+interpreting the results, contact the pgsql-general list at
+postgresql.org.
+
+After testing, say "make clean" to remove the files generated by the test
+script.
+
+STARTING POSTMASTER AUTOMATICALLY AT SYSTEM STARTUP
+-------------------------------------------------------------------------------
+Fedora / Red Hat / CentOS use the systemd package to manage server startup.
+A systemd unit file for PostgreSQL is provided in the server package, as
+/lib/systemd/system/postgresql-14.service. To start the postmaster manually,
+as root run
+ systemctl start postgresql-14.service
+To shut the postmaster down,
+ systemctl stop postgresql-14.service
+These two commands only change the postmaster's current status. If you
+want the postmaster to be started automatically during future system startups,
+run
+ systemctl enable postgresql-14.service
+To undo that again,
+ systemctl disable postgresql-14.service
+See "man systemctl" for other possible subcommands.
+
+GRAND UNIFIED CONFIGURATION (GUC) FILE
+-------------------------------------------------------------------------------
+The PostgreSQL server has many tunable parameters -- the file
+/var/lib/pgsql/14/data/postgresql.conf is the master configuration file for the
+whole system.
+
+The RPM ships with a mostly-default file -- you will need to tune the
+parameters for your installation. In particular, you might want to allow
+nonlocal TCP/IP socket connections -- in order to allow these, you will need
+to edit the postgresql.conf file. The line in question contains the string
+'listen_addresses' -- you need to both uncomment the line and set the value
+to '*' to get the postmaster to accept nonlocal connections. You'll also need
+to adjust pg_hba.conf appropriately.
+
+LOGGING SET UP
+-------------------------------------------------------------------------------
+By default, the postmaster's stderr log is directed into files placed in a
+log subdirectory of the data directory (ie, /var/lib/pgsql/14/data/log).
+The out-of-the-box configuration rotates among seven files, one for each
+day of the week. You can adjust this by changing postgresql.conf settings.
+
+REBUILDING FROM SOURCE RPM
+-------------------------------------------------------------------------------
+If your distribution is not supported by the binary RPMs from PostgreSQL.org,
+you will need to rebuild from the source RPM. Download the .src.rpm for this
+release. You will need to be root to rebuild, unless you have set up
+a non-root build environment (which is the recommended method anyway).
+
+Install the source RPM with rpm -i, then cd to the rpm building area
+(which is /usr/src/redhat by default). You will have to have a full
+development environment to rebuild the full RPM set.
+
+This release of the RPMset includes the ability to conditionally build
+sets of packages. The parameters, their defaults, and the meanings are:
+
+beta 0 #build with cassert and do not strip the binaries
+llvm 1 #build with llvm support
+python 1 #build the postgresql-python package.
+tcl 1 #build the postgresql-tcl package.
+test 1 #build the postgresql-test package.
+plpython 1 #build the PL/Python procedural language package.
+pltcl 1 #build the PL/Tcl procedural language package.
+plperl 1 #build the PL/Perl procedural language package.
+ssl 1 #use OpenSSL support.
+kerberos 1 #use Kerberos 5 support.
+nls 1 #build with national language support.
+ldap 1 #build with LDAP support.
+pam 1 #build with PAM support.
+runselftest 1 #do "make check" during the build.
+sdt 1 #build with SystemTap support.
+xml 1 #build with XML support
+pgfts 1 #build with --enable-thread-safety
+uuid 1 #build contrib/uuid-ossp
+
+To use these defines, invoke a rebuild like this:
+rpmbuild --rebuild --define 'python 0' --define 'tcl 0' \
+ --define 'test 0' --define 'runselftest 0' --define 'kerberos 0' \
+ postgresql14-14.3-1PGDG.rhel7.src.rpm
+This line would disable the python, tcl, and test subpackages, disable
+the regression test run during build, and disable kerberos support.
+
+You might need to disable runselftest if there is an installed version of
+PostgreSQL that is a different major version from what you are trying to
+build. The self test tends to pick up the installed libpq.so shared library
+in place of the one being built :-(, so if that isn't compatible the test will
+fail. Also, you can't use runselftest when doing the build as root.
+
+More of these conditionals will be added in the future.
+
+CONTRIB FILES
+-------------------------------------------------------------------------------
+The contents of the contrib tree are packaged into the -contrib subpackage
+and are processed with make and make install. Most of the modules are in
+/usr/pgsql-14/lib for loadable modules, and binaries are in
+/usr/pgsql-14/bin. In the future these files may be split out,
+depending upon function and dependencies.
+
+
+MORE INFORMATION
+-------------------------------------------------------------------------------
+You can get more information at http://www.postgresql.org and
+https://yum.postgresql.org
+
+Please help make this packaging better -- let us know if you find problems, or
+better ways of doing things. You can reach us by e-mail at
+pgsql-pkg-yum@lists.postgresql.org
+-------------------------------------------------------------------------------
diff --git a/specs/postgresql-17/SOURCES/bash_profile b/specs/postgresql-17/SOURCES/bash_profile
new file mode 100644
index 000000000..d05024928
--- /dev/null
+++ b/specs/postgresql-17/SOURCES/bash_profile
@@ -0,0 +1,12 @@
+if [[ -f /etc/profile ]] ; then
+ source /etc/profile
+fi
+
+export PGDATA={{PGDATA}}
+
+# If you want to customize your settings use the file below.
+# This file is not overridden by PostgreSQL packages.
+
+if [[ -f /var/lib/pgsql/.pgsql_profile ]] ; then
+ source /var/lib/pgsql/.pgsql_profile
+fi
diff --git a/specs/postgresql-17/SOURCES/ecpg_config.h b/specs/postgresql-17/SOURCES/ecpg_config.h
new file mode 100644
index 000000000..6fecfcb51
--- /dev/null
+++ b/specs/postgresql-17/SOURCES/ecpg_config.h
@@ -0,0 +1,29 @@
+/*
+ * Kluge to support multilib installation of both 32- and 64-bit RPMS:
+ * we need to arrange that header files that appear in both RPMs are
+ * identical. Hence, this file is architecture-independent and calls
+ * in an arch-dependent file that will appear in just one RPM.
+ *
+ * To avoid breaking arches not explicitly supported by Red Hat, we
+ * use this indirection file *only* on known multilib arches.
+ *
+ * Note: this may well fail if user tries to use gcc's -I- option.
+ * But that option is deprecated anyway.
+ */
+#if defined(__x86_64__)
+#include "ecpg_config_x86_64.h"
+#elif defined(__i386__)
+#include "ecpg_config_i386.h"
+#elif defined(__ppc64__) || defined(__powerpc64__)
+#include "ecpg_config_ppc64.h"
+#elif defined(__ppc__) || defined(__powerpc__)
+#include "ecpg_config_ppc.h"
+#elif defined(__s390x__)
+#include "ecpg_config_s390x.h"
+#elif defined(__s390__)
+#include "ecpg_config_s390.h"
+#elif defined(__sparc__) && defined(__arch64__)
+#include "ecpg_config_sparc64.h"
+#elif defined(__sparc__)
+#include "ecpg_config_sparc.h"
+#endif
diff --git a/specs/postgresql-17/SOURCES/filter-requires-perl-Pg.sh b/specs/postgresql-17/SOURCES/filter-requires-perl-Pg.sh
new file mode 100644
index 000000000..f37557f2d
--- /dev/null
+++ b/specs/postgresql-17/SOURCES/filter-requires-perl-Pg.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+/usr/lib/rpm/perl.req $* | grep -v 'perl(Pg'
diff --git a/specs/postgresql-17/SOURCES/pg_config.h b/specs/postgresql-17/SOURCES/pg_config.h
new file mode 100644
index 000000000..97ef2baa0
--- /dev/null
+++ b/specs/postgresql-17/SOURCES/pg_config.h
@@ -0,0 +1,29 @@
+/*
+ * Kluge to support multilib installation of both 32- and 64-bit RPMS:
+ * we need to arrange that header files that appear in both RPMs are
+ * identical. Hence, this file is architecture-independent and calls
+ * in an arch-dependent file that will appear in just one RPM.
+ *
+ * To avoid breaking arches not explicitly supported by Red Hat, we
+ * use this indirection file *only* on known multilib arches.
+ *
+ * Note: this may well fail if user tries to use gcc's -I- option.
+ * But that option is deprecated anyway.
+ */
+#if defined(__x86_64__)
+#include "pg_config_x86_64.h"
+#elif defined(__i386__)
+#include "pg_config_i386.h"
+#elif defined(__ppc64__) || defined(__powerpc64__)
+#include "pg_config_ppc64.h"
+#elif defined(__ppc__) || defined(__powerpc__)
+#include "pg_config_ppc.h"
+#elif defined(__s390x__)
+#include "pg_config_s390x.h"
+#elif defined(__s390__)
+#include "pg_config_s390.h"
+#elif defined(__sparc__) && defined(__arch64__)
+#include "pg_config_sparc64.h"
+#elif defined(__sparc__)
+#include "pg_config_sparc.h"
+#endif
diff --git a/specs/postgresql-17/SOURCES/postgresql-logging.patch b/specs/postgresql-17/SOURCES/postgresql-logging.patch
new file mode 100644
index 000000000..a6865602f
--- /dev/null
+++ b/specs/postgresql-17/SOURCES/postgresql-logging.patch
@@ -0,0 +1,50 @@
+--- src/backend/utils/misc/postgresql.conf.sample.old 2024-09-23 23:02:53.000000000 +0300
++++ src/backend/utils/misc/postgresql.conf.sample 2024-11-02 14:13:36.000000000 +0300
+@@ -466,31 +466,31 @@
+
+ # - Where to Log -
+
+-#log_destination = 'stderr' # Valid values are combinations of
++log_destination = 'stderr' # Valid values are combinations of
+ # stderr, csvlog, jsonlog, syslog, and
+ # eventlog, depending on platform.
+ # csvlog and jsonlog require
+ # logging_collector to be on.
+
+ # This is used when logging to stderr:
+-#logging_collector = off # Enable capturing of stderr, jsonlog,
++logging_collector = on # Enable capturing of stderr, jsonlog,
+ # and csvlog into log files. Required
+ # to be on for csvlogs and jsonlogs.
+ # (change requires restart)
+
+ # These are only used if logging_collector is on:
+-#log_directory = 'log' # directory where log files are written,
++log_directory = 'log' # directory where log files are written,
+ # can be absolute or relative to PGDATA
+-#log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' # log file name pattern,
++log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' # log file name pattern,
+ # can include strftime() escapes
+ #log_file_mode = 0600 # creation mode for log files,
+ # begin with 0 to use octal notation
+-#log_rotation_age = 1d # Automatic rotation of logfiles will
++log_rotation_age = 1d # Automatic rotation of logfiles will
+ # happen after that time. 0 disables.
+-#log_rotation_size = 10MB # Automatic rotation of logfiles will
++log_rotation_size = 0 # Automatic rotation of logfiles will
+ # happen after that much log output.
+ # 0 disables.
+-#log_truncate_on_rotation = off # If on, an existing log file with the
++log_truncate_on_rotation = on # If on, an existing log file with the
+ # same name as the new log file will be
+ # truncated rather than appended to.
+ # But such truncation only occurs on
+@@ -581,7 +581,7 @@
+ #log_duration = off
+ #log_error_verbosity = default # terse, default, or verbose messages
+ #log_hostname = off
+-#log_line_prefix = '%m [%p] ' # special values:
++log_line_prefix = '%m [%p] ' # special values:
+ # %a = application name
+ # %u = user name
+ # %d = database name
diff --git a/specs/postgresql-17/SOURCES/postgresql-perl-rpath.patch b/specs/postgresql-17/SOURCES/postgresql-perl-rpath.patch
new file mode 100644
index 000000000..748c42f0e
--- /dev/null
+++ b/specs/postgresql-17/SOURCES/postgresql-perl-rpath.patch
@@ -0,0 +1,12 @@
+--- src/pl/plperl/GNUmakefile.old 2022-09-13 11:28:29.530773939 +0100
++++ src/pl/plperl/GNUmakefile 2022-09-13 11:28:51.739821139 +0100
+@@ -55,6 +55,9 @@
+
+ SHLIB_LINK = $(perl_embed_ldflags)
+
++# Force rpath to be used even though we disable it everywhere else
++SHLIB_LINK += $(rpath)
++
+ # see https://www.postgresql.org/message-id/flat/8c4fcb72-2574-ff7c-4c25-1f032d4a2a57%40enterprisedb.com
+ ifeq ($(PORTNAME), cygwin)
+ SHLIB_LINK += -Wl,--export-all-symbols
diff --git a/specs/postgresql-17/SOURCES/postgresql-tmpfiles.d.conf b/specs/postgresql-17/SOURCES/postgresql-tmpfiles.d.conf
new file mode 100644
index 000000000..6c48e34ed
--- /dev/null
+++ b/specs/postgresql-17/SOURCES/postgresql-tmpfiles.d.conf
@@ -0,0 +1 @@
+d /run/postgresql 0755 postgres postgres -
diff --git a/specs/postgresql-17/SOURCES/postgresql-var-run-socket.patch b/specs/postgresql-17/SOURCES/postgresql-var-run-socket.patch
new file mode 100644
index 000000000..1e41d5b53
--- /dev/null
+++ b/specs/postgresql-17/SOURCES/postgresql-var-run-socket.patch
@@ -0,0 +1,22 @@
+--- src/backend/utils/misc/guc_tables.c.old 2023-03-27 21:06:14.263452032 +0100
++++ src/backend/utils/misc/guc_tables.c 2023-03-27 21:06:33.271502069 +0100
+@@ -4271,7 +4271,7 @@
+ GUC_LIST_INPUT | GUC_LIST_QUOTE | GUC_SUPERUSER_ONLY
+ },
+ &Unix_socket_directories,
+- DEFAULT_PGSOCKET_DIR,
++ DEFAULT_PGSOCKET_DIR ", /tmp",
+ NULL, NULL, NULL
+ },
+
+--- src/include/pg_config_manual.h.old 2023-03-27 21:07:48.610700398 +0100
++++ src/include/pg_config_manual.h 2023-03-27 21:08:21.110786287 +0100
+@@ -206,7 +206,7 @@
+ * support them yet.
+ */
+ #ifndef WIN32
+-#define DEFAULT_PGSOCKET_DIR "/tmp"
++#define DEFAULT_PGSOCKET_DIR "/var/run/postgresql"
+ #else
+ #define DEFAULT_PGSOCKET_DIR ""
+ #endif
diff --git a/specs/postgresql-17/SOURCES/postgresql.init b/specs/postgresql-17/SOURCES/postgresql.init
new file mode 100644
index 000000000..5687e320b
--- /dev/null
+++ b/specs/postgresql-17/SOURCES/postgresql.init
@@ -0,0 +1,249 @@
+#!/bin/bash
+
+# postgresql This is the init script for starting up the PostgreSQL {{MAJOR_VERSION}}
+# server.
+#
+# chkconfig: - 64 36
+# description: PostgreSQL database server.
+# processname: postmaster
+
+###############################################################################
+
+source /etc/init.d/kaosv
+
+###############################################################################
+
+kv.require "2.16"
+
+###############################################################################
+
+INIT_DIR="/etc/init.d"
+
+###############################################################################
+
+VERSION="{{VERSION}}"
+MAJOR_VERSION="{{MAJOR_VERSION}}"
+PKG_VERSION="{{PKG_VERSION}}"
+PREV_VERSION="{{PREV_VERSION}}"
+USER_NAME="{{USER_NAME}}"
+GROUP_NAME="{{GROUP_NAME}}"
+
+###############################################################################
+
+short_name="pgsql"
+
+kv[prog_name]="postgresql-${PKG_VERSION}"
+
+kv.readSysconfig "postgresql-${MAJOR_VERSION}"
+
+kv[lock_file]="${kv[lock_dir]}/postgresql${PKG_VERSION}"
+kv[pid_file]="${kv[pid_dir]}/postgresql${PKG_VERSION}.pid"
+
+pg_engine="${PG_ENGINE:-/usr/${short_name}-${MAJOR_VERSION}/bin}"
+pg_postgres="${PG_POSTGRES:-${pg_engine}/postgres}"
+pg_data="${PG_DATA:-/var/lib/${short_name}/${MAJOR_VERSION}/data}"
+pg_log="${PG_LOG:-/var/lib/${short_name}/${MAJOR_VERSION}/pgstartup.log}"
+pg_socket_dir="${PG_SOCKET_DIR:-/var/run/postgresql}"
+timeout="${TIMEOUT:-300}"
+disable_auto_numa="${DISABLE_AUTO_NUMA}"
+
+pg_ctl="$pg_engine/pg_ctl"
+pg_initdb="$pg_engine/initdb"
+
+export pg_data
+
+kv[user]="$USER_NAME"
+kv[search_pattern]="$pg_engine"
+
+kv[oom_adj]="$OOM_DISABLE"
+
+###############################################################################
+
+kv.addCommand "initdb" "Init new database" "initdb"
+kv.addCommand "reload" "Reload configuration files" "reload"
+
+kv.addHandler "start" "startServiceHandler"
+kv.addHandler "start" "preStartServiceHandler" "pre"
+kv.addHandler "stop" "stopServiceHandler"
+
+kv.addCommandArgs "stop" "force"
+kv.addCommandArgs "initdb" "locale"
+
+kv.disableOutputRedirect "start" "pre"
+
+###############################################################################
+
+preStartServiceHandler() {
+ [[ ! -f "$pg_postgres" ]] && return $ACTION_ERROR
+ [[ ! -x "$pg_postgres" ]] && return $ACTION_ERROR
+
+ createLog || return $ACTION_ERROR
+ checkData || return $ACTION_ERROR
+ makeSocketDir || return $ACTION_ERROR
+
+ return $ACTION_OK
+}
+
+startServiceHandler() {
+ kv[log]="$pg_log"
+
+ export PG_OOM_ADJUST_FILE=/proc/self/oom_score_adj
+ export PG_OOM_ADJUST_VALUE=0
+
+ if [[ -n "$disable_auto_numa" || $(getNumaNodesCount) == "1" ]] ; then
+ kv.run "$pg_ctl" start -D "$pg_data" -s -w -t "$timeout"
+ else
+ kv.run numactl --interleave=all "$pg_ctl" start -D "$pg_data" -s -w -t "$timeout"
+ fi
+
+ [[ $? -ne 0 ]] && return $ACTION_ERROR
+
+ if kv.getStartStatus "$pg_data/postmaster.pid" true ; then
+ local pid=$(head -1 "$pg_data/postmaster.pid" 2>/dev/null)
+
+ kv.createPid "$pid"
+
+ return $ACTION_OK
+ fi
+
+ return $ACTION_ERROR
+}
+
+stopServiceHandler() {
+ local pid=$(kv.getPid)
+
+ kv.run "$pg_ctl" stop -D "$pg_data" -s -m fast
+
+ if kv.getStopStatus ; then
+ return $ACTION_OK
+ else
+ if [[ "$1" == "true" || "$1" == "force" ]] ; then
+ kv.killProcess
+ return $ACTION_FORCED
+ else
+ return $ACTION_ERROR
+ fi
+ fi
+}
+
+initdb() {
+ if [[ -f "$pg_data/PG_VERSION" ]] ; then
+ kv.error "Error! Data directory is not empty." $ACTION_ERROR
+ fi
+
+ kv.showProcessMessage "Initializing database"
+
+ initNewDB $@
+
+ local status=$?
+
+ kv.showStatusMessage "$status"
+
+ return $status
+}
+
+reload() {
+ kv.showProcessMessage "Reloading configuration"
+
+ kv.run "$pg_ctl" reload -D "$pg_data" -s
+
+ local status=$?
+
+ kv.showStatusMessage "$status"
+
+ return $status
+}
+
+###############################################################################
+
+initNewDB() {
+ kv[log]="$pg_log"
+
+ local loc="$1"
+
+ [[ -z "$loc" ]] && loc=$(getLocale)
+
+ if [[ ! -e "$pg_data" && ! -h "$pg_data" ]] ; then
+ mkdir -p "$pg_data" || return $ACTION_ERROR
+ kv.chown "$USER_NAME:$GROUP_NAME" "$pg_data"
+ kv.chmod go-rwx "$pg_data"
+ fi
+
+ kv.restoreSEContext "$pg_data"
+
+ createLog || return $ACTION_ERROR
+
+ kv.run "$pg_initdb" --pgdata="$pg_data" --auth="ident" --locale="$loc"
+
+ mkdir "$pg_data/pg_log"
+ kv.chown "$USER_NAME:$GROUP_NAME" "$pg_data/pg_log"
+ kv.chmod go-rwx "$pg_data/pg_log"
+
+ if [[ -f "$pg_data/PG_VERSION" ]] ; then
+ return $ACTION_OK
+ fi
+
+ return $ACTION_ERROR
+}
+
+getLocale() {
+ local lang=$(locale | head -1 | cut -f2 -d= | sed 's/"//g')
+
+ if [[ -n "$lang" ]] ; then
+ echo "$lang"
+ else
+ echo "en_US.UTF-8"
+ fi
+}
+
+getNumaNodesCount() {
+ if [[ ! -x /usr/bin/numactl ]] ; then
+ echo 1
+ fi
+
+ numactl --hardware | head -1 | cut -f2 -d' '
+}
+
+###############################################################################
+
+checkData() {
+ if [[ -f "$pg_data/PG_VERSION" && -d "$pg_data/base" ]] ; then
+ if [[ $(cat "$pg_data/PG_VERSION") != "$MAJOR_VERSION" ]] ; then
+ local docdir="(Your System's documentation directory)"
+
+ [[ -d "/usr/doc/postgresql-$VERSION" ]] && docdir=/usr/doc
+ [[ -d "/usr/share/doc/postgresql-$VERSION" ]] && docdir=/usr/share/doc
+ [[ -d "/usr/doc/packages/postgresql-$VERSION" ]] && docdir=/usr/doc/packages
+ [[ -d "/usr/share/doc/packages/postgresql-$VERSION" ]] && docdir=/usr/share/doc/packages
+
+ kv.show "An old version of the database format was found."
+ kv.show "You need to upgrade the data format before using PostgreSQL."
+ kv.show "See $docdir/postgresql-$VERSION/README.rpm-dist for more information."
+
+ return $ACTION_ERROR
+ fi
+ else
+ kv.show "Directory <$pg_data> is missing. Use ${CL_BOLD}service ${kv[script]} initdb${CL_NORM} to initialize the cluster first."
+ return $ACTION_ERROR
+ fi
+}
+
+createLog() {
+ if [[ ! -e "$pg_log" && ! -h "$pg_log" ]] ; then
+ touch "$pg_log" || return 1
+ kv.chown "$USER_NAME:$GROUP_NAME" "$pg_log"
+ kv.chmod go-rwx "$pg_log"
+ kv.restoreSEContext "$pg_log"
+ fi
+}
+
+makeSocketDir() {
+ if [[ ! -e "$pg_socket_dir" ]] ; then
+ mkdir "$pg_socket_dir" || return $ACTION_ERROR
+ kv.chown "$USER_NAME:$GROUP_NAME" "$pg_socket_dir" || return $ACTION_ERROR
+ fi
+}
+
+###############################################################################
+
+kv.go $@
diff --git a/specs/postgresql-17/SOURCES/postgresql.pam b/specs/postgresql-17/SOURCES/postgresql.pam
new file mode 100644
index 000000000..1d785946d
--- /dev/null
+++ b/specs/postgresql-17/SOURCES/postgresql.pam
@@ -0,0 +1,3 @@
+#%PAM-1.0
+auth include password-auth
+account include password-auth
diff --git a/specs/postgresql-17/SOURCES/postgresql.service b/specs/postgresql-17/SOURCES/postgresql.service
new file mode 100644
index 000000000..ed3c426aa
--- /dev/null
+++ b/specs/postgresql-17/SOURCES/postgresql.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=PostgreSQL {{MAJOR_VERSION}} database server
+Documentation=https://www.postgresql.org/docs/{{MAJOR_VERSION}}/static/
+After=syslog.target network-online.target
+
+[Service]
+PIDFile=/var/run/postgresql{{PKG_VERSION}}.pid
+ExecStart=/etc/init.d/postgresql-{{MAJOR_VERSION}} start
+ExecStop=/etc/init.d/postgresql-{{MAJOR_VERSION}} stop
+ExecReload=/etc/init.d/postgresql-{{MAJOR_VERSION}} reload
+
+[Install]
+WantedBy=multi-user.target
diff --git a/specs/postgresql-17/SOURCES/postgresql.sysconfig b/specs/postgresql-17/SOURCES/postgresql.sysconfig
new file mode 100644
index 000000000..743fcbd0b
--- /dev/null
+++ b/specs/postgresql-17/SOURCES/postgresql.sysconfig
@@ -0,0 +1,10 @@
+# Sysconfig for postgresql service
+
+PG_ENGINE=""
+PG_POSTGRES=""
+PG_DATA=""
+PG_LOG=""
+PG_UPLOG=""
+PG_SOCKET_DIR=""
+TIMEOUT=""
+DISABLE_AUTO_NUMA=""
diff --git a/specs/postgresql-17/SOURCES/rpm-pgsql.patch b/specs/postgresql-17/SOURCES/rpm-pgsql.patch
new file mode 100644
index 000000000..d9b6d12b7
--- /dev/null
+++ b/specs/postgresql-17/SOURCES/rpm-pgsql.patch
@@ -0,0 +1,55 @@
+--- src/Makefile.global.in.old 2020-02-28 16:17:03.000000000 +0000
++++ src/Makefile.global.in 2020-04-07 09:14:33.906414682 +0100
+@@ -82,7 +82,7 @@
+ # Installation directories
+ #
+ # These are set by the equivalent --xxxdir configure options. We
+-# append "postgresql" to some of them, if the string does not already
++# append "pgsql" to some of them, if the string does not already
+ # contain "pgsql" or "postgres", in order to avoid directory clutter.
+ #
+ # In a PGXS build, we cannot use the values inserted into Makefile.global
+@@ -103,14 +103,14 @@
+ datadir := @datadir@
+ ifeq "$(findstring pgsql, $(datadir))" ""
+ ifeq "$(findstring postgres, $(datadir))" ""
+-override datadir := $(datadir)/postgresql
++override datadir := $(datadir)/pgsql
+ endif
+ endif
+
+ sysconfdir := @sysconfdir@
+ ifeq "$(findstring pgsql, $(sysconfdir))" ""
+ ifeq "$(findstring postgres, $(sysconfdir))" ""
+-override sysconfdir := $(sysconfdir)/postgresql
++override sysconfdir := $(sysconfdir)/pgsql
+ endif
+ endif
+
+@@ -119,7 +119,7 @@
+ pkglibdir = $(libdir)
+ ifeq "$(findstring pgsql, $(pkglibdir))" ""
+ ifeq "$(findstring postgres, $(pkglibdir))" ""
+-override pkglibdir := $(pkglibdir)/postgresql
++override pkglibdir := $(pkglibdir)/pgsql
+ endif
+ endif
+
+@@ -128,7 +128,7 @@
+ pkgincludedir = $(includedir)
+ ifeq "$(findstring pgsql, $(pkgincludedir))" ""
+ ifeq "$(findstring postgres, $(pkgincludedir))" ""
+-override pkgincludedir := $(pkgincludedir)/postgresql
++override pkgincludedir := $(pkgincludedir)/pgsql
+ endif
+ endif
+
+@@ -137,7 +137,7 @@
+ docdir := @docdir@
+ ifeq "$(findstring pgsql, $(docdir))" ""
+ ifeq "$(findstring postgres, $(docdir))" ""
+-override docdir := $(docdir)/postgresql
++override docdir := $(docdir)/pgsql
+ endif
+ endif
+
diff --git a/specs/postgresql-17/postgresql-17.spec b/specs/postgresql-17/postgresql-17.spec
new file mode 100644
index 000000000..b55c8b9e7
--- /dev/null
+++ b/specs/postgresql-17/postgresql-17.spec
@@ -0,0 +1,1163 @@
+################################################################################
+
+%global crc_check pushd ../SOURCES ; sha512sum -c %{SOURCE100} ; popd
+
+################################################################################
+
+%{!?kerbdir:%define kerbdir "/usr"}
+%{!?test:%define test 1}
+%{!?plpython:%define plpython 1}
+%{!?pltcl:%define pltcl 1}
+%{!?plperl:%define plperl 1}
+%{!?ssl:%define ssl 1}
+%{!?intdatetimes:%define intdatetimes 1}
+%{!?icu:%define icu 1}
+%{!?kerberos:%define kerberos 1}
+%{!?nls:%define nls 1}
+%{!?xml:%define xml 1}
+%{!?pam:%define pam 1}
+%{!?disablepgfts:%define disablepgfts 0}
+%{!?runselftest:%define runselftest 0}
+%{!?uuid:%define uuid 1}
+%{!?ldap:%define ldap 1}
+%{!?llvm:%global llvm 1}
+%{!?zstd:%global zstd 1}
+
+%define majorver 17
+%define minorver 2
+%define rel 0
+%define fullver %{majorver}.%{minorver}
+%define pkgver 17
+%define realname postgresql
+%define shortname pgsql
+%define tinyname pg
+%define service_name %{realname}-%{majorver}
+%define install_dir %{_usr}/%{shortname}-%{majorver}
+
+%define prev_version 16
+
+%define username postgres
+%define groupname postgres
+%define gid 26
+
+%define __perl_requires %{SOURCE9}
+
+################################################################################
+
+Summary: PostgreSQL %{majorver} client programs and libraries
+Name: %{realname}%{majorver}
+Version: %{fullver}
+Release: %{rel}%{?dist}
+License: PostgreSQL
+Group: Applications/Databases
+URL: https://www.postgresql.org
+
+Source0: https://download.postgresql.org/pub/source/v%{version}/%{realname}-%{version}.tar.bz2
+Source1: %{realname}.init
+Source2: Makefile.regress
+Source3: pg_config.h
+Source4: README.rpm-dist
+Source5: ecpg_config.h
+Source7: https://www.postgresql.org/files/documentation/pdf/%{majorver}/%{realname}-%{majorver}-A4.pdf
+Source8: %{realname}.pam
+Source9: filter-requires-perl-Pg.sh
+Source10: %{realname}.sysconfig
+Source11: %{realname}.service
+Source12: bash_profile
+Source13: %{realname}-tmpfiles.d.conf
+
+Source100: checksum.sha512
+
+Patch1: rpm-%{shortname}.patch
+Patch2: %{realname}-logging.patch
+Patch3: %{realname}-perl-rpath.patch
+Patch4: %{realname}-var-run-socket.patch
+
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+
+BuildRequires: make gcc gcc-c++ perl glibc-devel bison flex
+BuildRequires: readline-devel zlib-devel perl-generators
+BuildRequires: libxml2-devel libxslt-devel
+
+%if %plperl
+BuildRequires: perl(ExtUtils::Embed) perl(ExtUtils::MakeMaker)
+%endif
+
+%if %plpython
+BuildRequires: python3-devel
+%endif
+
+%if %pltcl
+BuildRequires: tcl-devel
+%endif
+
+%if %ssl
+BuildRequires: openssl-devel
+%endif
+
+%if %kerberos
+BuildRequires: krb5-devel e2fsprogs-devel
+%endif
+
+%if %icu
+BuildRequires: libicu-devel
+Requires: libicu
+%endif
+
+%if %nls
+BuildRequires: gettext >= 0.10.35
+%endif
+
+%if %pam
+BuildRequires: pam-devel
+%endif
+
+%if %uuid
+BuildRequires: libuuid-devel
+%endif
+
+%if %ldap
+BuildRequires: openldap-devel
+%endif
+
+%if %llvm
+BuildRequires: llvm-devel >= 17.0 clang-devel >= 17.0
+%endif
+
+%if %zstd
+BuildRequires: libzstd-devel > 1.4.0
+Requires: libzstd > 1.4.0
+%endif
+
+BuildRequires: systemd systemd-devel
+
+Requires: glibc initscripts
+Requires: %{name}-libs = %{version}
+
+Requires(post): systemd chkconfig
+Requires(preun): systemd
+Requires(postun): systemd chkconfig
+
+Provides: %{name} = %{version}-%{release}
+Provides: %{realname} = %{version}-%{release}
+
+################################################################################
+
+%description
+PostgreSQL is an advanced Object-Relational database management system (DBMS).
+The base postgresql package contains the client programs that you'll need to
+access a PostgreSQL DBMS server. These client programs can be located on the
+same machine as the PostgreSQL server, or on a remote machine that accesses a
+PostgreSQL server over a network connection. The PostgreSQL server can be found
+in the postgresql%{pkgver}-server sub-package.
+
+If you want to manipulate a PostgreSQL database on a local or remote PostgreSQL
+server, you need this package. You also need to install this package
+if you're installing the postgresql%{pkgver}-server package.
+
+################################################################################
+
+%package libs
+Summary: The shared libraries required for any PostgreSQL clients
+Group: Applications/Databases
+
+Provides: %{realname}-libs = %{version}-%{release}
+
+%description libs
+The postgresql%{pkgver}-libs package provides the essential shared libraries
+for any PostgreSQL client program or interface. You will need to install this
+package to use any other PostgreSQL package or any clients that need to connect
+to a PostgreSQL server.
+
+################################################################################
+
+%package server
+Summary: The programs needed to create and run a PostgreSQL server
+Group: Applications/Databases
+
+Requires: %{name} = %{version}-%{release}
+Requires: %{name}-libs = %{version}-%{release}
+Requires: glibc kaosv >= 2.16 numactl util-linux
+Requires: %{_sbindir}/useradd %{_sbindir}/chkconfig
+
+Provides: %{realname}-server = %{version}-%{release}
+
+%description server
+The postgresql%{pkgver}-server package includes the programs needed to create
+and run a PostgreSQL server, which will in turn allow you to create
+and maintain PostgreSQL databases. PostgreSQL is an advanced
+Object-Relational database management system (DBMS) that supports
+almost all SQL constructs (including transactions, subselects and
+user-defined types and functions). You should install
+postgresql%{pkgver}-server if you want to create and maintain your own
+PostgreSQL databases and/or your own PostgreSQL server. You also need
+to install the postgresql package.
+
+################################################################################
+
+%package docs
+Summary: Extra documentation for PostgreSQL
+Group: Applications/Databases
+
+BuildRequires: docbook-dtds docbook-style-xsl libxslt
+
+Provides: %{realname}-docs = %{version}-%{release}
+
+%description docs
+The postgresql%{pkgver}-docs package includes the SGML source for the
+documentation as well as the documentation in PDF format and some extra
+documentation. Install this package if you want to help with the PostgreSQL
+documentation project, or if you want to generate printed documentation. This
+package also includes HTML version of the documentation.
+
+################################################################################
+
+%package contrib
+Summary: Contributed source and binaries distributed with PostgreSQL
+Group: Applications/Databases
+
+Requires: %{name} = %{version}
+Provides: %{realname}-contrib = %{version}-%{release}
+
+%description contrib
+The postgresql%{pkgver}-contrib package contains contributed packages that are
+included in the PostgreSQL distribution.
+
+################################################################################
+
+%package devel
+Summary: PostgreSQL development header files and libraries
+Group: Development/Libraries
+
+%if %icu
+Requires: libicu-devel
+%endif
+
+%if %ssl
+Requires: openssl-devel
+%endif
+
+AutoReq: no
+Requires: %{name} = %{version}-%{release}
+Requires: %{name}-libs = %{version}-%{release}
+Provides: %{realname}-devel = %{version}-%{release}
+
+%description devel
+The postgresql%{pkgver}-devel package contains the header files and libraries
+needed to compile C or C++ applications which will directly interact
+with a PostgreSQL database management server and the ecpg Embedded C
+Postgres preprocessor. You need to install this package if you want to
+develop applications which will interact with a PostgreSQL server.
+
+################################################################################
+
+%if %llvm
+%package llvmjit
+Summary: Just-in-time compilation support for PostgreSQL
+Group: Applications/Databases
+
+Requires: %{name}-server%{?_isa} = %{version}-%{release}
+Requires: llvm >= 17.0
+
+Provides: %{realname}-llvmjit = %{version}
+
+%description llvmjit
+The postgresql%{pkgver}-llvmjit package contains support for
+just-in-time compiling parts of PostgreSQL queries. Using LLVM it
+compiles e.g. expressions and tuple deforming into native code, with the
+goal of accelerating analytics queries.
+%endif
+
+################################################################################
+
+%if %plperl
+%package plperl
+Summary: The Perl procedural language for PostgreSQL
+Group: Applications/Databases
+
+Requires: %{name}-server = %{version}
+
+Obsoletes: %{realname}-pl = %{version}
+Provides: %{realname}-plperl = %{version}-%{release}
+
+%description plperl
+PostgreSQL is an advanced Object-Relational database management
+system. The postgresql%{pkgver}-plperl package contains the PL/Perl language
+for the backend.
+%endif
+
+################################################################################
+
+%if %plpython
+%package plpython3
+Summary: The Python procedural language for PostgreSQL
+Group: Applications/Databases
+
+Requires: %{name} = %{version}
+Requires: %{name}-server = %{version}
+Requires: python3 python3-libs
+
+Obsoletes: %{realname}-pl = %{version}
+Provides: %{realname}-plpython = %{version}-%{release}
+
+%description plpython3
+PostgreSQL is an advanced Object-Relational database management
+system. The postgresql%{pkgver}-plpython package contains the PL/Python language
+for the backend.
+%endif
+
+################################################################################
+
+%if %pltcl
+%package pltcl
+Summary: The Tcl procedural language for PostgreSQL
+Group: Applications/Databases
+
+Requires: %{name} = %{version}
+Requires: %{name}-server = %{version}
+
+Obsoletes: %{realname}-pl = %{version}
+Provides: %{realname}-pltcl = %{version}-%{release}
+
+%description pltcl
+PostgreSQL is an advanced Object-Relational database management
+system. The postgresql%{pkgver}-pltcl package contains the PL/Tcl language
+for the backend.
+%endif
+
+################################################################################
+
+%if %test
+%package test
+Summary: The test suite distributed with PostgreSQL
+Group: Applications/Databases
+
+Requires: %{name}-server = %{version}
+Provides: %{realname}-test = %{version}-%{release}
+
+%description test
+PostgreSQL is an advanced Object-Relational database management
+system. The postgresql-test package includes the sources and pre-built
+binaries of various tests for the PostgreSQL database management
+system, including regression tests and benchmarks.
+%endif
+
+################################################################################
+
+%prep
+%crc_check
+%autosetup -p0 -n %{realname}-%{version}
+
+# Copy pdf with documentation to build directory
+cp -p %{SOURCE7} .
+
+%build
+CFLAGS="${CFLAGS:-%optflags}" ; export CFLAGS
+CXXFLAGS="${CXXFLAGS:-%optflags}" ; export CXXFLAGS
+
+%if %kerberos
+CPPFLAGS="${CPPFLAGS} -I%{_includedir}/et" ; export CPPFLAGS
+CFLAGS="${CFLAGS} -I%{_includedir}/et" ; export CFLAGS
+%endif
+
+# Strip out -ffast-math from CFLAGS....
+CFLAGS=$(echo "$CFLAGS" | xargs -n 1 | grep -v ffast-math | xargs -n 100)
+CFLAGS="$CFLAGS -DLINUX_OOM_SCORE_ADJ=0"
+LDFLAGS="-Wl,--as-needed" ; export LDFLAGS
+
+export CFLAGS
+export LIBNAME=%{_lib}
+export PYTHON=/usr/bin/python3
+
+%{_configure} --disable-rpath \
+ --prefix=%{install_dir} \
+ --includedir=%{install_dir}/include \
+ --mandir=%{install_dir}/share/man \
+ --datadir=%{install_dir}/share \
+%if %icu
+ --with-icu \
+%endif
+%if %llvm
+ --with-llvm \
+%endif
+%if %plperl
+ --with-perl \
+%endif
+%if %plpython
+ --with-python \
+%endif
+%if %pltcl
+ --with-tcl \
+ --with-tclconfig=%{_libdir} \
+%endif
+%if %ssl
+ --with-openssl \
+%endif
+%if %pam
+ --with-pam \
+%endif
+%if %kerberos
+ --with-gssapi \
+ --with-includes=%{_includedir} \
+ --with-libraries=%{_libdir} \
+%endif
+%if %nls
+ --enable-nls \
+%endif
+%if !%intdatetimes
+ --disable-integer-datetimes \
+%endif
+%if %disablepgfts
+ --disable-thread-safety \
+%endif
+%if %uuid
+ --with-uuid=e2fs \
+%endif
+%if %xml
+ --with-libxml \
+ --with-libxslt \
+%endif
+%if %ldap
+ --with-ldap \
+%endif
+%if %zstd
+ --with-zstd \
+%endif
+ --with-system-tzdata=%{_datadir}/zoneinfo \
+ --sysconfdir=%{_sysconfdir}/sysconfig/%{shortname} \
+ --docdir=%{install_dir}/doc \
+ --htmldir=%{install_dir}/doc/html
+
+MAKELEVEL=0 %{__make} %{?_smp_mflags} all
+
+%{__make} %{?_smp_mflags} -C doc all
+%{__make} %{?_smp_mflags} -C contrib all
+
+%if %uuid
+%{__make} %{?_smp_mflags} -C contrib/uuid-ossp all
+%endif
+
+# Have to hack makefile to put correct path into tutorial scripts
+sed "s|C=\`pwd\`;|C=%{install_dir}/lib/tutorial;|" < src/tutorial/Makefile > src/tutorial/GNUmakefile
+%{__make} %{?_smp_mflags} -C src/tutorial NO_PGXS=1 all
+rm -f src/tutorial/GNUmakefile
+
+# run_testsuite WHERE
+# -------------------
+# Run 'make check' in WHERE path. When that command fails, return the logs
+# given by PostgreSQL build system and set 'test_failure=1'.
+
+run_testsuite()
+{
+ %{__make} -C "$1" MAX_CONNECTIONS=5 check && return 0
+
+ test_failure=1
+
+ (
+ set +x
+ echo "=== trying to find all regression.diffs files in build directory ==="
+ find -name 'regression.diffs' | \
+ while read line; do
+ echo "=== make failure: $line ==="
+ cat "$line"
+ done
+ )
+}
+
+%if %runselftest
+ run_testsuite "src/test/regress"
+ %{__make} %{?_smp_mflags} clean -C "src/test/regress"
+ run_testsuite "src/pl"
+ run_testsuite "contrib"
+%endif
+
+%if %test
+ pushd src/test/regress
+ %{__make} %{?_smp_mflags} all
+ popd
+%endif
+
+%install
+rm -rf %{buildroot}
+
+%{make_install}
+mkdir -p %{buildroot}%{install_dir}/share/extensions/
+%{make_install} -C contrib
+
+%if %uuid
+%{make_install} -C contrib/uuid-ossp
+%endif
+
+# multilib header hack; note pg_config.h is installed in two places!
+# we only apply this to known Red Hat multilib arches, per bug #177564
+case `uname -i` in
+ i386 | x86_64)
+ mv %{buildroot}%{install_dir}/include/pg_config.h %{buildroot}%{install_dir}/include/pg_config_`uname -i`.h
+ install -pm 644 %{SOURCE3} %{buildroot}%{install_dir}/include/
+ mv %{buildroot}%{install_dir}/include/server/pg_config.h %{buildroot}%{install_dir}/include/server/pg_config_`uname -i`.h
+ install -pm 644 %{SOURCE3} %{buildroot}%{install_dir}/include/server/
+ mv %{buildroot}%{install_dir}/include/ecpg_config.h %{buildroot}%{install_dir}/include/ecpg_config_`uname -i`.h
+ install -pm 644 %{SOURCE5} %{buildroot}%{install_dir}/include/
+ ;;
+ *)
+ ;;
+esac
+
+# Installing and updating sysv init script
+install -d %{buildroot}%{_initddir}
+install -d %{buildroot}%{_sysconfdir}/sysconfig
+
+install -pm 755 %{SOURCE1} %{buildroot}%{_initddir}/%{service_name}
+install -pm 644 %{SOURCE10} %{buildroot}%{_sysconfdir}/sysconfig/%{service_name}
+
+sed -i 's/{{VERSION}}/%{version}/g' %{buildroot}%{_initddir}/%{service_name}
+sed -i 's/{{MAJOR_VERSION}}/%{majorver}/g' %{buildroot}%{_initddir}/%{service_name}
+sed -i 's/{{PKG_VERSION}}/%{majorver}/g' %{buildroot}%{_initddir}/%{service_name}
+sed -i 's/{{PREV_VERSION}}/%{prev_version}/g' %{buildroot}%{_initddir}/%{service_name}
+sed -i 's/{{USER_NAME}}/%{username}/g' %{buildroot}%{_initddir}/%{service_name}
+sed -i 's/{{GROUP_NAME}}/%{groupname}/g' %{buildroot}%{_initddir}/%{service_name}
+
+# Installing and updating systemd config
+install -d %{buildroot}%{_unitdir}
+install -pm 644 %{SOURCE11} %{buildroot}%{_unitdir}/postgresql-%{majorver}.service
+
+sed -i 's/{{VERSION}}/%{version}/g' %{buildroot}%{_unitdir}/postgresql-%{majorver}.service
+sed -i 's/{{MAJOR_VERSION}}/%{majorver}/g' %{buildroot}%{_unitdir}/postgresql-%{majorver}.service
+sed -i 's/{{PKG_VERSION}}/%{majorver}/g' %{buildroot}%{_unitdir}/postgresql-%{majorver}.service
+sed -i 's/{{PREV_VERSION}}/%{prev_version}/g' %{buildroot}%{_unitdir}/postgresql-%{majorver}.service
+sed -i 's/{{USER_NAME}}/%{username}/g' %{buildroot}%{_unitdir}/postgresql-%{majorver}.service
+sed -i 's/{{GROUP_NAME}}/%{groupname}/g' %{buildroot}%{_unitdir}/postgresql-%{majorver}.service
+
+ln -sf %{service_name} %{buildroot}%{_initddir}/%{tinyname}%{majorver}
+
+%if %pam
+install -d %{buildroot}%{_sysconfdir}/pam.d
+install -pm 644 %{SOURCE8} %{buildroot}%{_sysconfdir}/pam.d/%{realname}%{majorver}
+%endif
+
+install -dm 755 %{buildroot}%{_tmpfilesdir}
+install -pm 644 %{SOURCE13} %{buildroot}%{_tmpfilesdir}/%{realname}-%{majorver}.conf
+
+# Create the directory for sockets
+install -dm 755 %{buildroot}%{_rundir}/%{realname}
+
+# PGDATA needs removal of group and world permissions due to pg_pwd hole.
+install -dm 700 %{buildroot}%{_sharedstatedir}/%{shortname}/%{majorver}/data
+
+# backups of data go here...
+install -dm 700 %{buildroot}%{_sharedstatedir}/%{shortname}/%{majorver}/backups
+
+# Create the multiple postmaster startup directory
+install -dm 700 %{buildroot}%{_sysconfdir}/sysconfig/%{shortname}/%{majorver}
+
+# Install linker conf file under postgresql installation directory.
+# We will install the latest version via alternatives.
+install -dm 755 %{buildroot}%{install_dir}/share/
+echo "%{install_dir}/lib" > %{buildroot}%{install_dir}/share/%{realname}-%{majorver}-libs.conf
+
+%if %test
+ # Tests. There are many files included here that are unnecessary,
+ # but include them anyway for completeness. We replace the original
+ # Makefiles, however.
+ mkdir -p %{buildroot}%{install_dir}/lib/test
+ cp -a src/test/regress %{buildroot}%{install_dir}/lib/test
+ install -pm 0755 contrib/spi/refint.so %{buildroot}%{install_dir}/lib/test/regress
+ install -pm 0755 contrib/spi/autoinc.so %{buildroot}%{install_dir}/lib/test/regress
+ pushd %{buildroot}%{install_dir}/lib/test/regress
+ strip *.so
+ rm -f GNUmakefile Makefile *.o
+ chmod 0755 pg_regress regress.so
+ popd
+ cp %{SOURCE2} %{buildroot}%{install_dir}/lib/test/regress/Makefile
+ chmod 0644 %{buildroot}%{install_dir}/lib/test/regress/Makefile
+%endif
+
+# Fix some more documentation
+# gzip doc/internals.ps
+cp %{SOURCE4} README.rpm-dist
+mkdir -p %{buildroot}%{install_dir}/share/doc/html
+mv doc/src/sgml/html doc
+mkdir -p %{buildroot}%{install_dir}/share/man/
+mv doc/src/sgml/man1 doc/src/sgml/man3 doc/src/sgml/man7 %{buildroot}%{install_dir}/share/man/
+rm -rf %{buildroot}%{_docdir}/%{shortname}
+
+# initialize file lists
+cp /dev/null main.lst
+cp /dev/null libs.lst
+cp /dev/null server.lst
+cp /dev/null devel.lst
+cp /dev/null plperl.lst
+cp /dev/null pltcl.lst
+cp /dev/null plpython.lst
+
+%if %nls
+ %find_lang ecpg-%{majorver}
+ %find_lang ecpglib6-%{majorver}
+ %find_lang initdb-%{majorver}
+ %find_lang libpq5-%{majorver}
+ %find_lang pg_amcheck-%{majorver}
+ %find_lang pg_archivecleanup-%{majorver}
+ %find_lang pg_basebackup-%{majorver}
+ %find_lang pg_checksums-%{majorver}
+ %find_lang pg_config-%{majorver}
+ %find_lang pg_combinebackup-%{majorver}
+ %find_lang pg_controldata-%{majorver}
+ %find_lang pg_ctl-%{majorver}
+ %find_lang pg_dump-%{majorver}
+ %find_lang pg_resetwal-%{majorver}
+ %find_lang pg_rewind-%{majorver}
+ %find_lang pg_test_fsync-%{majorver}
+ %find_lang pg_test_timing-%{majorver}
+ %find_lang pg_upgrade-%{majorver}
+ %find_lang pg_verifybackup-%{majorver}
+ %find_lang pg_waldump-%{majorver}
+ %find_lang pg_walsummary-%{majorver}
+ %find_lang pgscripts-%{majorver}
+
+ %if %plperl
+ %find_lang plperl-%{majorver}
+ cat plperl-%{majorver}.lang > pg_plperl.lst
+ %endif
+
+ %find_lang plpgsql-%{majorver}
+
+ %if %plpython
+ %find_lang plpython-%{majorver}
+ cat plpython-%{majorver}.lang > pg_plpython.lst
+ %endif
+
+ %if %pltcl
+ %find_lang pltcl-%{majorver}
+ cat pltcl-%{majorver}.lang > pg_pltcl.lst
+ %endif
+
+ %find_lang postgres-%{majorver}
+ %find_lang psql-%{majorver}
+%endif
+
+cat libpq5-%{majorver}.lang > pg_libpq5.lst
+
+cat pg_config-%{majorver}.lang \
+ ecpg-%{majorver}.lang \
+ ecpglib6-%{majorver}.lang > pg_devel.lst
+
+cat initdb-%{majorver}.lang \
+ pg_amcheck-%{majorver}.lang \
+ pg_archivecleanup-%{majorver}.lang \
+ pg_basebackup-%{majorver}.lang \
+ pg_checksums-%{majorver}.lang \
+ pg_combinebackup-%{majorver}.lang \
+ pg_ctl-%{majorver}.lang \
+ pg_dump-%{majorver}.lang \
+ pg_rewind-%{majorver}.lang \
+ pg_test_fsync-%{majorver}.lang \
+ pg_test_timing-%{majorver}.lang \
+ pg_upgrade-%{majorver}.lang \
+ pg_verifybackup-%{majorver}.lang \
+ pg_waldump-%{majorver}.lang \
+ pg_walsummary-%{majorver}.lang \
+ psql-%{majorver}.lang \
+ pgscripts-%{majorver}.lang > pg_main.lst
+
+cat postgres-%{majorver}.lang \
+ pg_resetwal-%{majorver}.lang \
+ pg_controldata-%{majorver}.lang \
+ plpgsql-%{majorver}.lang > pg_server.lst
+
+# Install bash profile
+install -pm 700 %{SOURCE12} %{buildroot}%{install_dir}/share/
+sed -i "s#{{PGDATA}}#%{_sharedstatedir}/%{shortname}/%{majorver}/data/#" \
+ %{buildroot}%{install_dir}/share/bash_profile
+
+################################################################################
+
+%pre server
+if [[ $1 -eq 1 ]] ; then
+ getent group %{groupname} >/dev/null || groupadd -g %{gid} -o -r %{groupname}
+ getent passwd %{username} >/dev/null || \
+ useradd -M -n -g %{username} -o -r -d %{_sharedstatedir}/%{shortname} -s /bin/bash -u %{gid} %{username}
+fi
+
+%post server
+if [[ $1 -eq 1 ]] ; then
+ systemctl daemon-reload %{service_name}.service &>/dev/null || :
+ systemctl preset %{service_name}.service &>/dev/null || :
+ systemd-tmpfiles --create &>/dev/null || :
+
+ /sbin/ldconfig
+fi
+
+# Removing bash_profile generated by previous versions of packages
+if [[ ! -L %{_sharedstatedir}/%{shortname}/.bash_profile ]] ; then
+ rm -f %{_sharedstatedir}/%{shortname}/.bash_profile
+fi
+
+update-alternatives --install %{_sharedstatedir}/%{shortname}/.bash_profile %{shortname}-bash_profile %{install_dir}/share/bash_profile %{pkgver}00
+
+%preun server
+if [[ $1 -eq 0 ]] ; then
+ update-alternatives --remove %{shortname}-bash_profile %{install_dir}/share/bash_profile
+ systemctl --no-reload disable %{service_name}.service &>/dev/null || :
+ systemctl stop %{service_name}.service &>/dev/null || :
+fi
+
+%postun server
+systemctl daemon-reload &>/dev/null || :
+/sbin/ldconfig
+
+%if %plperl
+%post plperl
+/sbin/ldconfig
+
+%postun plperl
+/sbin/ldconfig
+%endif
+
+%if %plpython
+%post plpython3
+/sbin/ldconfig
+
+%postun plpython3
+/sbin/ldconfig
+%endif
+
+%if %pltcl
+%post pltcl
+/sbin/ldconfig
+
+%postun pltcl
+/sbin/ldconfig
+%endif
+
+%if %test
+%post test
+chown -R -h %{username}:%{groupname} %{_datarootdir}/%{shortname}/test &>/dev/null || :
+%endif
+
+# Create alternatives entries for common binaries and man files
+%post
+update-alternatives --install %{_bindir}/clusterdb %{shortname}-clusterdb %{install_dir}/bin/clusterdb %{pkgver}00
+update-alternatives --install %{_bindir}/createdb %{shortname}-createdb %{install_dir}/bin/createdb %{pkgver}00
+update-alternatives --install %{_bindir}/createuser %{shortname}-createuser %{install_dir}/bin/createuser %{pkgver}00
+update-alternatives --install %{_bindir}/dropdb %{shortname}-dropdb %{install_dir}/bin/dropdb %{pkgver}00
+update-alternatives --install %{_bindir}/dropuser %{shortname}-dropuser %{install_dir}/bin/dropuser %{pkgver}00
+update-alternatives --install %{_bindir}/pg_basebackup %{shortname}-pg_basebackup %{install_dir}/bin/pg_basebackup %{pkgver}00
+update-alternatives --install %{_bindir}/pg_combinebackup %{shortname}-pg_combinebackup %{install_dir}/bin/pg_combinebackup %{pkgver}00
+update-alternatives --install %{_bindir}/pg_config %{shortname}-pg_config %{install_dir}/bin/pg_config %{pkgver}00
+update-alternatives --install %{_bindir}/pg_createsubscriber %{shortname}-pg_createsubscriber %{install_dir}/bin/pg_createsubscriber %{pkgver}00
+update-alternatives --install %{_bindir}/pg_dump %{shortname}-pg_dump %{install_dir}/bin/pg_dump %{pkgver}00
+update-alternatives --install %{_bindir}/pg_dumpall %{shortname}-pg_dumpall %{install_dir}/bin/pg_dumpall %{pkgver}00
+update-alternatives --install %{_bindir}/pg_restore %{shortname}-pg_restore %{install_dir}/bin/pg_restore %{pkgver}00
+update-alternatives --install %{_bindir}/pg_walsummary %{shortname}-pg_walsummary %{install_dir}/bin/pg_walsummary %{pkgver}00
+update-alternatives --install %{_bindir}/psql %{shortname}-psql %{install_dir}/bin/psql %{pkgver}00
+update-alternatives --install %{_bindir}/reindexdb %{shortname}-reindexdb %{install_dir}/bin/reindexdb %{pkgver}00
+update-alternatives --install %{_bindir}/vacuumdb %{shortname}-vacuumdb %{install_dir}/bin/vacuumdb %{pkgver}00
+
+update-alternatives --install %{_mandir}/man1/clusterdb.1 %{shortname}-clusterdbman %{install_dir}/share/man/man1/clusterdb.1 %{pkgver}00
+update-alternatives --install %{_mandir}/man1/createdb.1 %{shortname}-createdbman %{install_dir}/share/man/man1/createdb.1 %{pkgver}00
+update-alternatives --install %{_mandir}/man1/createuser.1 %{shortname}-createuserman %{install_dir}/share/man/man1/createuser.1 %{pkgver}00
+update-alternatives --install %{_mandir}/man1/dropdb.1 %{shortname}-dropdbman %{install_dir}/share/man/man1/dropdb.1 %{pkgver}00
+update-alternatives --install %{_mandir}/man1/dropuser.1 %{shortname}-dropuserman %{install_dir}/share/man/man1/dropuser.1 %{pkgver}00
+update-alternatives --install %{_mandir}/man1/pg_basebackup.1 %{shortname}-pg_basebackupman %{install_dir}/share/man/man1/pg_basebackup.1 %{pkgver}00
+update-alternatives --install %{_mandir}/man1/pg_combinebackup.1 %{shortname}-pg_combinebackupman %{install_dir}/share/man/man1/pg_combinebackup.1 %{pkgver}00
+update-alternatives --install %{_mandir}/man1/pg_createsubscriber.1 %{shortname}-pg_createsubscriberman %{install_dir}/share/man/man1/pg_createsubscriber.1 %{pkgver}00
+update-alternatives --install %{_mandir}/man1/pg_dump.1 %{shortname}-pg_dumpman %{install_dir}/share/man/man1/pg_dump.1 %{pkgver}00
+update-alternatives --install %{_mandir}/man1/pg_dumpall.1 %{shortname}-pg_dumpallman %{install_dir}/share/man/man1/pg_dumpall.1 %{pkgver}00
+update-alternatives --install %{_mandir}/man1/pg_restore.1 %{shortname}-pg_restoreman %{install_dir}/share/man/man1/pg_restore.1 %{pkgver}00
+update-alternatives --install %{_mandir}/man1/pg_walsummary.1 %{shortname}-pg_walsummaryman %{install_dir}/share/man/man1/pg_walsummary.1 %{pkgver}00
+update-alternatives --install %{_mandir}/man1/psql.1 %{shortname}-psqlman %{install_dir}/share/man/man1/psql.1 %{pkgver}00
+update-alternatives --install %{_mandir}/man1/reindexdb.1 %{shortname}-reindexdbman %{install_dir}/share/man/man1/reindexdb.1 %{pkgver}00
+update-alternatives --install %{_mandir}/man1/vacuumdb.1 %{shortname}-vacuumdbman %{install_dir}/share/man/man1/vacuumdb.1 %{pkgver}00
+
+%post libs
+# Create link to linker configuration file
+update-alternatives --install %{_sysconfdir}/ld.so.conf.d/%{realname}-pgdg-libs.conf %{shortname}-ld-conf %{install_dir}/share/%{service_name}-libs.conf %{pkgver}00
+# Update shared libs cache
+/sbin/ldconfig
+
+%post devel
+# Create links to pkgconfig configuration files
+update-alternatives --install %{_libdir}/pkgconfig/libpq.pc %{shortname}-pkgconfig-libpq %{install_dir}/lib/pkgconfig/libpq.pc %{pkgver}00
+update-alternatives --install %{_libdir}/pkgconfig/libpgtypes.pc %{shortname}-pkgconfig-libpgtypes %{install_dir}/lib/pkgconfig/libpgtypes.pc %{pkgver}00
+update-alternatives --install %{_libdir}/pkgconfig/libecpg.pc %{shortname}-pkgconfig-libecpg %{install_dir}/lib/pkgconfig/libecpg.pc %{pkgver}00
+update-alternatives --install %{_libdir}/pkgconfig/libecpg_compat.pc %{shortname}-pkgconfig-libecpg_compat %{install_dir}/lib/pkgconfig/libecpg_compat.pc %{pkgver}00
+
+# Drop alternatives entries for common binaries and man files
+%postun
+if [[ $1 -eq 0 ]] ; then
+ # Only remove these links if the package is completely removed from the system (vs. just being upgraded)
+ update-alternatives --remove %{shortname}-clusterdb %{install_dir}/bin/clusterdb
+ update-alternatives --remove %{shortname}-createdb %{install_dir}/bin/createdb
+ update-alternatives --remove %{shortname}-createuser %{install_dir}/bin/createuser
+ update-alternatives --remove %{shortname}-dropdb %{install_dir}/bin/dropdb
+ update-alternatives --remove %{shortname}-dropuser %{install_dir}/bin/dropuser
+ update-alternatives --remove %{shortname}-pg_basebackup %{install_dir}/bin/pg_basebackup
+ update-alternatives --remove %{shortname}-pg_combinebackup %{install_dir}/bin/pg_combinebackup
+ update-alternatives --remove %{shortname}-pg_config %{install_dir}/bin/pg_config
+ update-alternatives --remove %{shortname}-pg_createsubscriber %{install_dir}/bin/pg_createsubscriber
+ update-alternatives --remove %{shortname}-pg_dump %{install_dir}/bin/pg_dump
+ update-alternatives --remove %{shortname}-pg_dumpall %{install_dir}/bin/pg_dumpall
+ update-alternatives --remove %{shortname}-pg_restore %{install_dir}/bin/pg_restore
+ update-alternatives --remove %{shortname}-pg_walsummary %{install_dir}/bin/pg_walsummary
+ update-alternatives --remove %{shortname}-psql %{install_dir}/bin/psql
+ update-alternatives --remove %{shortname}-reindexdb %{install_dir}/bin/reindexdb
+ update-alternatives --remove %{shortname}-vacuumdb %{install_dir}/bin/vacuumdb
+
+ update-alternatives --remove %{shortname}-clusterdbman %{install_dir}/share/man/man1/clusterdb.1
+ update-alternatives --remove %{shortname}-createdbman %{install_dir}/share/man/man1/createdb.1
+ update-alternatives --remove %{shortname}-createuserman %{install_dir}/share/man/man1/createuser.1
+ update-alternatives --remove %{shortname}-dropdbman %{install_dir}/share/man/man1/dropdb.1
+ update-alternatives --remove %{shortname}-dropuserman %{install_dir}/share/man/man1/dropuser.1
+ update-alternatives --remove %{shortname}-pg_basebackupman %{install_dir}/share/man/man1/pg_basebackup.1
+ update-alternatives --remove %{shortname}-pg_combinebackupman %{install_dir}/share/man/man1/pg_combinebackup.1
+ update-alternatives --remove %{shortname}-pg_createsubscriberman %{install_dir}/share/man/man1/pg_createsubscriber.1
+ update-alternatives --remove %{shortname}-pg_dumpallman %{install_dir}/share/man/man1/pg_dumpall.1
+ update-alternatives --remove %{shortname}-pg_dumpman %{install_dir}/share/man/man1/pg_dump.1
+ update-alternatives --remove %{shortname}-pg_restoreman %{install_dir}/share/man/man1/pg_restore.1
+ update-alternatives --remove %{shortname}-pg_walsummaryman %{install_dir}/share/man/man1/pg_walsummary.1
+ update-alternatives --remove %{shortname}-psqlman %{install_dir}/share/man/man1/psql.1
+ update-alternatives --remove %{shortname}-reindexdbman %{install_dir}/share/man/man1/reindexdb.1
+ update-alternatives --remove %{shortname}-vacuumdbman %{install_dir}/share/man/man1/vacuumdb.1
+fi
+
+%postun libs
+if [[ $1 -eq 0 ]] ; then
+ # Remove link to linker configuration file
+ update-alternatives --remove %{shortname}-ld-conf %{install_dir}/share/%{service_name}-libs.conf
+ # Update shared libs cache
+ /sbin/ldconfig
+fi
+
+%postun devel
+if [[ $1 -eq 0 ]] ; then
+ # Remove links to pkgconfig configuration files
+ update-alternatives --remove %{shortname}-pkgconfig-libpq %{install_dir}/lib/pkgconfig/libpq.pc
+ update-alternatives --remove %{shortname}-pkgconfig-libpgtypes %{install_dir}/lib/pkgconfig/libpgtypes.pc
+ update-alternatives --remove %{shortname}-pkgconfig-libecpg %{install_dir}/lib/pkgconfig/libecpg.pc
+ update-alternatives --remove %{shortname}-pkgconfig-libecpg_compat %{install_dir}/lib/pkgconfig/libecpg_compat.pc
+fi
+
+################################################################################
+
+%files -f pg_main.lst
+%defattr(-,root,root)
+%doc doc/KNOWN_BUGS doc/MISSING_FEATURES COPYRIGHT README.rpm-dist
+%dir %{install_dir}/lib/bitcode
+%{install_dir}/bin/clusterdb
+%{install_dir}/bin/createdb
+%{install_dir}/bin/createuser
+%{install_dir}/bin/dropdb
+%{install_dir}/bin/dropuser
+%{install_dir}/bin/pg_archivecleanup
+%{install_dir}/bin/pg_basebackup
+%{install_dir}/bin/pg_combinebackup
+%{install_dir}/bin/pg_config
+%{install_dir}/bin/pg_createsubscriber
+%{install_dir}/bin/pg_dump
+%{install_dir}/bin/pg_dumpall
+%{install_dir}/bin/pg_isready
+%{install_dir}/bin/pg_receivewal
+%{install_dir}/bin/pg_restore
+%{install_dir}/bin/pg_rewind
+%{install_dir}/bin/pg_test_fsync
+%{install_dir}/bin/pg_test_timing
+%{install_dir}/bin/pg_upgrade
+%{install_dir}/bin/pg_verifybackup
+%{install_dir}/bin/pg_waldump
+%{install_dir}/bin/pg_walsummary
+%{install_dir}/bin/pgbench
+%{install_dir}/bin/psql
+%{install_dir}/bin/reindexdb
+%{install_dir}/bin/vacuumdb
+%{install_dir}/share/errcodes.txt
+%{install_dir}/share/man/man1/clusterdb.*
+%{install_dir}/share/man/man1/createdb.*
+%{install_dir}/share/man/man1/createuser.*
+%{install_dir}/share/man/man1/dropdb.*
+%{install_dir}/share/man/man1/dropuser.*
+%{install_dir}/share/man/man1/pg_archivecleanup.*
+%{install_dir}/share/man/man1/pg_basebackup.*
+%{install_dir}/share/man/man1/pg_combinebackup.*
+%{install_dir}/share/man/man1/pg_config.*
+%{install_dir}/share/man/man1/pg_createsubscriber.*
+%{install_dir}/share/man/man1/pg_dump.*
+%{install_dir}/share/man/man1/pg_dumpall.*
+%{install_dir}/share/man/man1/pg_isready.*
+%{install_dir}/share/man/man1/pg_receivewal.*
+%{install_dir}/share/man/man1/pg_restore.*
+%{install_dir}/share/man/man1/pg_rewind.*
+%{install_dir}/share/man/man1/pg_test_fsync.*
+%{install_dir}/share/man/man1/pg_test_timing.*
+%{install_dir}/share/man/man1/pg_upgrade.*
+%{install_dir}/share/man/man1/pg_verifybackup.*
+%{install_dir}/share/man/man1/pg_waldump.*
+%{install_dir}/share/man/man1/pg_walsummary.*
+%{install_dir}/share/man/man1/pgbench.*
+%{install_dir}/share/man/man1/psql.*
+%{install_dir}/share/man/man1/reindexdb.*
+%{install_dir}/share/man/man1/vacuumdb.*
+%{install_dir}/share/man/man3/*
+%{install_dir}/share/man/man7/*
+
+%files docs
+%defattr(-,root,root)
+%doc doc/src/* *-A4.pdf src/tutorial doc/html
+
+%files contrib
+%defattr(-,root,root)
+%doc %{install_dir}/doc/extension/*.example
+%{install_dir}/lib/_int.so
+%{install_dir}/lib/amcheck.so
+%{install_dir}/lib/auth_delay.so
+%{install_dir}/lib/autoinc.so
+%{install_dir}/lib/auto_explain.so
+%{install_dir}/lib/basebackup_to_shell.so
+%{install_dir}/lib/basic_archive.so
+%{install_dir}/lib/bloom.so
+%{install_dir}/lib/btree_gin.so
+%{install_dir}/lib/btree_gist.so
+%{install_dir}/lib/citext.so
+%{install_dir}/lib/cube.so
+%{install_dir}/lib/dblink.so
+%{install_dir}/lib/earthdistance.so
+%{install_dir}/lib/file_fdw.so*
+%{install_dir}/lib/fuzzystrmatch.so
+%{install_dir}/lib/insert_username.so
+%{install_dir}/lib/isn.so
+%{install_dir}/lib/hstore.so
+%if %plperl
+%{install_dir}/lib/hstore_plperl.so
+%{install_dir}/lib/jsonb_plperl.so
+%{install_dir}/share/extension/jsonb_plperl*.sql
+%{install_dir}/share/extension/jsonb_plperl*.control
+%endif
+%{install_dir}/lib/passwordcheck.so
+%{install_dir}/lib/pg_freespacemap.so
+%{install_dir}/lib/pg_stat_statements.so
+%{install_dir}/lib/pgrowlocks.so
+%{install_dir}/lib/postgres_fdw.so
+%{install_dir}/lib/sslinfo.so
+%{install_dir}/lib/lo.so
+%{install_dir}/lib/ltree.so
+%if %plpython
+%{install_dir}/lib/ltree_plpython3.so
+%endif
+%{install_dir}/lib/moddatetime.so
+%{install_dir}/lib/pageinspect.so
+%{install_dir}/lib/pg_buffercache.so
+%{install_dir}/lib/pg_prewarm.so
+%{install_dir}/lib/pg_surgery.so
+%{install_dir}/lib/pg_trgm.so
+%{install_dir}/lib/pg_visibility.so
+%{install_dir}/lib/pg_walinspect.so
+%{install_dir}/lib/pgcrypto.so
+%{install_dir}/lib/pgstattuple.so
+%{install_dir}/lib/refint.so
+%{install_dir}/lib/seg.so
+%{install_dir}/lib/tablefunc.so
+%{install_dir}/lib/tcn.so
+%{install_dir}/lib/test_decoding.so
+%{install_dir}/lib/tsm_system_rows.so
+%{install_dir}/lib/tsm_system_time.so
+%{install_dir}/lib/unaccent.so
+%if %xml
+%{install_dir}/lib/pgxml.so
+%endif
+%if %uuid
+%{install_dir}/lib/uuid-ossp.so
+%endif
+%{install_dir}/share/extension/amcheck*
+%{install_dir}/share/extension/autoinc*
+%{install_dir}/share/extension/bloom*
+%{install_dir}/share/extension/btree_gin*
+%{install_dir}/share/extension/btree_gist*
+%{install_dir}/share/extension/citext*
+%{install_dir}/share/extension/cube*
+%{install_dir}/share/extension/dblink*
+%{install_dir}/share/extension/dict_int*
+%{install_dir}/share/extension/dict_xsyn*
+%{install_dir}/share/extension/earthdistance*
+%{install_dir}/share/extension/file_fdw*
+%{install_dir}/share/extension/fuzzystrmatch*
+%{install_dir}/share/extension/hstore*
+%{install_dir}/share/extension/insert_username*
+%{install_dir}/share/extension/intagg*
+%{install_dir}/share/extension/intarray*
+%{install_dir}/share/extension/isn*
+%{install_dir}/share/extension/lo*
+%{install_dir}/share/extension/ltree*
+%{install_dir}/share/extension/moddatetime*
+%{install_dir}/share/extension/pageinspect*
+%{install_dir}/share/extension/pg_buffercache*
+%{install_dir}/share/extension/pg_freespacemap*
+%{install_dir}/share/extension/pg_prewarm*
+%{install_dir}/share/extension/pg_stat_statements*
+%{install_dir}/share/extension/pg_surgery*
+%{install_dir}/share/extension/pg_trgm*
+%{install_dir}/share/extension/pg_visibility*
+%{install_dir}/share/extension/pg_walinspect*
+%{install_dir}/share/extension/pgcrypto*
+%{install_dir}/share/extension/pgrowlocks*
+%{install_dir}/share/extension/pgstattuple*
+%{install_dir}/share/extension/postgres_fdw*
+%{install_dir}/share/extension/refint*
+%{install_dir}/share/extension/seg*
+%{install_dir}/share/extension/sslinfo*
+%{install_dir}/share/extension/tablefunc*
+%{install_dir}/share/extension/tcn*
+%{install_dir}/share/extension/tsm_system*
+%{install_dir}/share/extension/unaccent*
+%if %uuid
+%{install_dir}/share/extension/uuid-ossp*
+%endif
+%{install_dir}/share/extension/xml2*
+%{install_dir}/bin/oid2name
+%{install_dir}/bin/pg_amcheck
+%{install_dir}/bin/pg_recvlogical
+%{install_dir}/bin/vacuumlo
+%{install_dir}/share/man/man1/oid2name.1
+%{install_dir}/share/man/man1/pg_amcheck.1
+%{install_dir}/share/man/man1/pg_recvlogical.1
+%{install_dir}/share/man/man1/vacuumlo.1
+
+%files libs -f pg_libpq5.lst
+%defattr(-,root,root)
+%config(noreplace) %{install_dir}/share/%{service_name}-libs.conf
+%{install_dir}/lib/libecpg.so*
+%{install_dir}/lib/libecpg_compat.so.*
+%{install_dir}/lib/libpgcommon_shlib.a
+%{install_dir}/lib/libpgfeutils.a
+%{install_dir}/lib/libpgport_shlib.a
+%{install_dir}/lib/libpgtypes.so.*
+%{install_dir}/lib/libpq.so.*
+%{install_dir}/lib/libpqwalreceiver.so
+
+%files server -f pg_server.lst
+%defattr(-,root,root)
+%config(noreplace) %{_initddir}/%{service_name}
+%config(noreplace) %{_sysconfdir}/sysconfig/%{service_name}
+%config(noreplace) %{_unitdir}/%{realname}-%{majorver}.service
+%config(noreplace) %{_tmpfilesdir}/%{realname}-%{majorver}.conf
+%attr(755,%{username},%{groupname}) %dir %{_rundir}/%{realname}
+%{_initddir}/%{tinyname}%{majorver}
+%if %pam
+%config(noreplace) %{_sysconfdir}/pam.d/%{realname}%{majorver}
+%endif
+%dir %{install_dir}/share/extension
+%{install_dir}/bin/initdb
+%{install_dir}/bin/pg_checksums
+%{install_dir}/bin/pg_controldata
+%{install_dir}/bin/pg_ctl
+%{install_dir}/bin/pg_resetwal
+%{install_dir}/bin/postgres
+%{install_dir}/share/man/man1/initdb.*
+%{install_dir}/share/man/man1/pg_checksums.*
+%{install_dir}/share/man/man1/pg_controldata.*
+%{install_dir}/share/man/man1/pg_ctl.*
+%{install_dir}/share/man/man1/pg_resetwal.*
+%{install_dir}/share/man/man1/postgres.*
+%{install_dir}/share/postgres.bki
+%{install_dir}/share/system_constraints.sql
+%{install_dir}/share/system_functions.sql
+%{install_dir}/share/system_views.sql
+%{install_dir}/share/*.sample
+%{install_dir}/share/timezonesets/*
+%{install_dir}/share/tsearch_data/*.affix
+%{install_dir}/share/tsearch_data/*.dict
+%{install_dir}/share/tsearch_data/*.ths
+%{install_dir}/share/tsearch_data/*.rules
+%{install_dir}/share/tsearch_data/*.stop
+%{install_dir}/share/tsearch_data/*.syn
+%{install_dir}/lib/dict_int.so
+%{install_dir}/lib/dict_snowball.so
+%{install_dir}/lib/dict_xsyn.so
+%{install_dir}/lib/euc2004_sjis2004.so
+%{install_dir}/lib/pgoutput.so
+%{install_dir}/lib/plpgsql.so
+%{install_dir}/share/extension/plpgsql*
+
+%config(noreplace) %attr(700,%{username},%{groupname}) %{install_dir}/share/bash_profile
+
+%dir %{install_dir}/lib
+%dir %{install_dir}/share
+%attr(700,%{username},%{groupname}) %dir %{_sharedstatedir}/%{shortname}
+%attr(700,%{username},%{groupname}) %dir %{_sharedstatedir}/%{shortname}/%{majorver}
+%attr(700,%{username},%{groupname}) %dir %{_sharedstatedir}/%{shortname}/%{majorver}/data
+%attr(700,%{username},%{groupname}) %dir %{_sharedstatedir}/%{shortname}/%{majorver}/backups
+%{install_dir}/lib/*_and_*.so
+%{install_dir}/share/information_schema.sql
+%{install_dir}/share/snowball_create.sql
+%{install_dir}/share/sql_features.txt
+
+%files devel -f pg_devel.lst
+%defattr(-,root,root)
+%{install_dir}/include/*
+%{install_dir}/bin/ecpg
+%{install_dir}/lib/libpq.so
+%{install_dir}/lib/libecpg.so
+%{install_dir}/lib/libpq.a
+%{install_dir}/lib/libpgcommon.a
+%{install_dir}/lib/libecpg.a
+%{install_dir}/lib/libecpg_compat.so
+%{install_dir}/lib/libecpg_compat.a
+%{install_dir}/lib/libpgport.a
+%{install_dir}/lib/libpgtypes.so
+%{install_dir}/lib/libpgtypes.a
+%{install_dir}/lib/pgxs/*
+%{install_dir}/lib/pkgconfig/*
+%{install_dir}/share/man/man1/ecpg.*
+
+%if %llvm
+%files llvmjit
+%defattr(-,root,root)
+%{install_dir}/lib/bitcode/*
+%{install_dir}/lib/llvmjit.so
+%{install_dir}/lib/llvmjit_types.bc
+%endif
+
+%if %plperl
+%files plperl -f pg_plperl.lst
+%defattr(-,root,root)
+%{install_dir}/lib/bool_plperl.so
+%{install_dir}/lib/plperl.so
+%{install_dir}/lib/hstore_plperl.so
+%{install_dir}/share/extension/plperl*
+%{install_dir}/share/extension/bool_plperl*
+%endif
+
+%if %pltcl
+%files pltcl -f pg_pltcl.lst
+%defattr(-,root,root)
+%{install_dir}/lib/pltcl.so
+%{install_dir}/share/extension/pltcl*
+%endif
+
+%if %plpython
+%files plpython3 -f pg_plpython.lst
+%defattr(-,root,root)
+%{install_dir}/lib/plpython*.so
+%{install_dir}/lib/hstore_plpython3.so
+%{install_dir}/lib/jsonb_plpython3.so
+%{install_dir}/lib/ltree_plpython3.so
+%{install_dir}/share/extension/jsonb_plpython*
+%{install_dir}/share/extension/plpython3u*
+%endif
+
+%if %test
+%files test
+%defattr(-,%{username},%{groupname})
+%attr(-,%{username},%{groupname}) %{install_dir}/lib/test/*
+%attr(-,%{username},%{groupname}) %dir %{install_dir}/lib/test
+%endif
+
+################################################################################
+
+%changelog
+* Sat Jan 25 2025 Anton Novojilov - 17.2-0
+- https://www.postgresql.org/docs/17/release-17-2.html
+
+* Sat Jan 25 2025 Anton Novojilov - 17.1-0
+- https://www.postgresql.org/docs/17/release-17-1.html
+
+* Sat Nov 02 2024 Anton Novojilov - 17.0-0
+- Initial build for kaos-repo
diff --git a/specs/pv.spec b/specs/pv.spec
index e11425126..6b2251fcc 100644
--- a/specs/pv.spec
+++ b/specs/pv.spec
@@ -6,7 +6,7 @@
Summary: Tool for monitoring the progress of data through a pipeline
Name: pv
-Version: 1.8.12
+Version: 1.9.27
Release: 0%{?dist}
License: GPLv3+
Group: Applications/System
@@ -70,6 +70,9 @@ rm -rf %{buildroot}
################################################################################
%changelog
+* Fri Jan 24 2025 Anton Novojilov - 1.9.27-0
+- https://codeberg.org/a-j-wood/pv/releases/tag/v1.9.27
+
* Fri Aug 16 2024 Anton Novojilov - 1.8.12-0
- https://codeberg.org/a-j-wood/pv/releases/tag/v1.8.12
diff --git a/specs/redis/redis.spec b/specs/redis/redis.spec
index 0a83091aa..2a7d843d0 100644
--- a/specs/redis/redis.spec
+++ b/specs/redis/redis.spec
@@ -15,7 +15,7 @@
Summary: A persistent key-value database
Name: redis
-Version: 7.2.5
+Version: 7.2.7
Release: 0%{?dist}
License: BSD
Group: Applications/Databases
@@ -90,7 +90,7 @@ Header file required for building loadable Redis modules.
%prep
%crc_check
-%autosetup -p1 -n %{realname}-%{version}
+%autosetup -p1 -n %{name}-%{version}
%build
export BUILD_WITH_SYSTEMD=yes
@@ -203,6 +203,12 @@ systemctl daemon-reload &>/dev/null || :
################################################################################
%changelog
+* Fri Jan 24 2025 Anton Novojilov - 7.2.7-0
+- https://github.com/redis/redis/releases/tag/7.2.7
+
+* Sat Nov 02 2024 Anton Novojilov - 7.2.6-0
+- https://github.com/redis/redis/blob/7.2.6/00-RELEASENOTES
+
* Tue Aug 20 2024 Anton Novojilov - 7.2.5-0
- https://github.com/redis/redis/blob/7.2.5/00-RELEASENOTES
diff --git a/specs/redis/redis72.spec b/specs/redis/redis72.spec
index b340df15e..fb7d20561 100644
--- a/specs/redis/redis72.spec
+++ b/specs/redis/redis72.spec
@@ -16,7 +16,7 @@
Summary: A persistent key-value database
Name: redis%{major_ver}%{minor_ver}
-Version: 7.2.5
+Version: 7.2.7
Release: 0%{?dist}
License: BSD
Group: Applications/Databases
@@ -204,6 +204,12 @@ systemctl daemon-reload &>/dev/null || :
################################################################################
%changelog
+* Fri Jan 24 2025 Anton Novojilov - 7.2.7-0
+- https://github.com/redis/redis/releases/tag/7.2.7
+
+* Sat Nov 02 2024 Anton Novojilov - 7.2.6-0
+- https://github.com/redis/redis/blob/7.2.6/00-RELEASENOTES
+
* Tue Aug 20 2024 Anton Novojilov - 7.2.5-0
- https://github.com/redis/redis/blob/7.2.5/00-RELEASENOTES
diff --git a/specs/redis/redis74.spec b/specs/redis/redis74.spec
index a59d9fae7..e45174601 100644
--- a/specs/redis/redis74.spec
+++ b/specs/redis/redis74.spec
@@ -16,7 +16,7 @@
Summary: A persistent key-value database
Name: redis%{major_ver}%{minor_ver}
-Version: 7.4.0
+Version: 7.4.2
Release: 0%{?dist}
License: RSALv2 and SSPLv1
Group: Applications/Databases
@@ -204,5 +204,11 @@ systemctl daemon-reload &>/dev/null || :
################################################################################
%changelog
+* Fri Jan 24 2025 Anton Novojilov - 7.4.2-0
+- https://github.com/redis/redis/releases/tag/7.4.2
+
+* Sat Nov 02 2024 Anton Novojilov - 7.4.1-0
+- https://github.com/redis/redis/releases/tag/7.4.1
+
* Tue Aug 20 2024 Anton Novojilov - 7.4.0-0
- https://github.com/redis/redis/releases/tag/7.4.0
diff --git a/specs/ripgrep.spec b/specs/ripgrep.spec
index 8c6876aef..0343df781 100644
--- a/specs/ripgrep.spec
+++ b/specs/ripgrep.spec
@@ -8,23 +8,23 @@
################################################################################
-Summary: Line-oriented search tool
-Name: ripgrep
-Version: 14.1.0
-Release: 0%{?dist}
-Group: Applications/Text
-License: MIT or Unlicense
-URL: https://github.com/BurntSushi/ripgrep
+Summary: Line-oriented search tool
+Name: ripgrep
+Version: 14.1.1
+Release: 0%{?dist}
+Group: Applications/Text
+License: MIT or Unlicense
+URL: https://github.com/BurntSushi/ripgrep
-Source0: https://github.com/BurntSushi/%{name}/archive/%{version}.tar.gz
+Source0: https://github.com/BurntSushi/%{name}/archive/%{version}.tar.gz
-Source100: checksum.sha512
+Source100: checksum.sha512
-BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
-BuildRequires: cargo asciidoc libxslt-devel libxml2 docbook-style-xsl
+BuildRequires: cargo asciidoc libxslt-devel libxml2 docbook-style-xsl
-Provides: %{name} = %{version}-%{release}
+Provides: %{name} = %{version}-%{release}
################################################################################
@@ -43,7 +43,6 @@ regex pattern.
%setup -qn %{name}-%{version}
%build
-sed -i 's#rust-version = "1.72"#rust-version = "1.71"#' Cargo.toml
cargo build --release --verbose
%install
@@ -86,6 +85,9 @@ rm -rf %{buildroot}
################################################################################
%changelog
+* Fri Jan 24 2025 Anton Novojilov - 14.1.1-0
+- https://github.com/BurntSushi/ripgrep/releases/tag/14.1.1
+
* Wed Jan 17 2024 Anton Novojilov - 14.1.0-0
- https://github.com/BurntSushi/ripgrep/releases/tag/14.1.0
diff --git a/specs/runsc.spec b/specs/runsc.spec
index 5f926e069..3fdb019f0 100644
--- a/specs/runsc.spec
+++ b/specs/runsc.spec
@@ -2,7 +2,7 @@
Summary: The Container Security Platform
Name: runsc
-Version: 20240807
+Version: 20250120
Release: 0%{?dist}
Group: Development/Tools
License: MIT
@@ -73,6 +73,9 @@ fi
################################################################################
%changelog
+* Fri Jan 24 2025 Anton Novojilov - 20250120-0
+- https://github.com/google/gvisor/releases/tag/release-20250120.0
+
* Thu Aug 15 2024 Anton Novojilov - 20240807-0
- https://github.com/google/gvisor/releases/tag/release-20240807.0
diff --git a/specs/syncthing.spec b/specs/syncthing.spec
new file mode 100644
index 000000000..2885a7174
--- /dev/null
+++ b/specs/syncthing.spec
@@ -0,0 +1,140 @@
+################################################################################
+
+%global crc_check pushd ../SOURCES ; sha512sum -c %{SOURCE100} ; popd
+
+################################################################################
+
+%define debug_package %{nil}
+
+################################################################################
+
+Summary: Open Source Continuous File Synchronization
+Name: syncthing
+Version: 1.29.2
+Release: 0%{?dist}
+Group: Applications/Internet
+License: MPL-2.0
+URL: https://syncthing.net
+
+Source0: https://github.com/syncthing/syncthing/releases/download/v%{version}/%{name}-source-v%{version}.tar.gz
+
+Source100: checksum.sha512
+
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+
+BuildRequires: golang >= 1.23
+
+Provides: %{name} = %{version}-%{release}
+
+################################################################################
+
+%description
+
+Syncthing is a continuous file synchronization program. It synchronizes files
+between two or more computers. We strive to fulfill the goals below.
+
+Syncthing should be:
+1. Safe From Data Loss
+2. Secure Against Attackers
+3. Easy to Use
+4. Automatic
+5. Universally Available
+6. For Individuals
+7. Everything Else
+
+################################################################################
+
+%package tools
+Summary: Additional tools for Syncthing
+Group: Applications/System
+
+%description tools
+Syncthing Discovery Server and Syncthing Relay Server.
+
+################################################################################
+
+%prep
+%{crc_check}
+
+%setup -qn %{name}
+
+%build
+go run build.go -no-upgrade -version=v%{version} build syncthing
+go run build.go -no-upgrade -version=v%{version} build strelaysrv
+go run build.go -no-upgrade -version=v%{version} build stdiscosrv
+go run build.go -no-upgrade -version=v%{version} build strelaypoolsrv
+go run build.go -no-upgrade -version=v%{version} build stcrashreceiver
+
+%install
+rm -rf %{buildroot}
+
+install -dm 755 %{buildroot}%{_bindir}
+install -dm 755 %{buildroot}%{_sysctldir}
+install -dm 755 %{buildroot}%{_unitdir}
+install -dm 755 %{buildroot}%{_userunitdir}
+install -dm 755 %{buildroot}%{_mandir}/man1
+install -dm 755 %{buildroot}%{_mandir}/man5
+install -dm 755 %{buildroot}%{_mandir}/man7
+
+install -pm 755 stcrashreceiver %{buildroot}%{_bindir}/
+install -pm 755 stdiscosrv %{buildroot}%{_bindir}/
+install -pm 755 strelaypoolsrv %{buildroot}%{_bindir}/
+install -pm 755 strelaysrv %{buildroot}%{_bindir}/
+install -pm 755 syncthing %{buildroot}%{_bindir}/
+
+install -pm 644 etc/linux-systemd/system/syncthing@.service %{buildroot}%{_unitdir}/
+install -pm 644 etc/linux-systemd/user/syncthing.service %{buildroot}%{_userunitdir}/
+
+install -pm 644 man/*.1 %{buildroot}%{_mandir}/man1/
+install -pm 644 man/*.5 %{buildroot}%{_mandir}/man5/
+install -pm 644 man/*.7 %{buildroot}%{_mandir}/man7/
+
+install -pm 644 etc/linux-sysctl/30-syncthing.conf %{buildroot}%{_sysctldir}/
+
+%clean
+rm -rf %{buildroot}
+
+%post
+%systemd_post 'syncthing@.service'
+%systemd_user_post syncthing.service
+%sysctl_apply 30-syncthing.conf
+
+%preun
+%systemd_preun 'syncthing@*.service'
+%systemd_user_preun syncthing.service
+
+%postun
+%systemd_postun_with_restart 'syncthing@*.service'
+%systemd_user_postun_with_restart syncthing.service
+
+################################################################################
+
+%files
+%defattr(-,root,root,-)
+%doc AUTHORS LICENSE README.md
+%config(noreplace) %{_sysctldir}/30-syncthing.conf
+%{_bindir}/syncthing
+%{_unitdir}/syncthing@.service
+%{_userunitdir}/syncthing.service
+%{_mandir}/man1/syncthing.*
+%{_mandir}/man5/syncthing-*.*
+%{_mandir}/man7/syncthing-*.*
+
+%files tools
+%defattr(-,root,root,-)
+%doc LICENSE AUTHORS
+%{_bindir}/stdiscosrv
+%{_bindir}/strelaysrv
+%{_bindir}/strelaypoolsrv
+%{_bindir}/stcrashreceiver
+%{_mandir}/man1/stdiscosrv.*
+%{_mandir}/man1/strelaysrv.*
+
+################################################################################
+
+%changelog
+* Fri Jan 24 2025 Anton Novojilov - 1.29.2-0
+- https://github.com/syncthing/syncthing/releases/tag/v1.29.2
+
+* Tue Dec 03 2024 Anton Novojilov - 1.28.1-0
+- Initial build for kaos repo
diff --git a/specs/tmux.spec b/specs/tmux.spec
index 84392aafa..68cd6ab42 100644
--- a/specs/tmux.spec
+++ b/specs/tmux.spec
@@ -6,7 +6,7 @@
Summary: A terminal multiplexer
Name: tmux
-Version: 3.4
+Version: 3.5a
Release: 0%{?dist}
License: ISC and BSD
Group: Applications/System
@@ -71,969 +71,41 @@ rm -rf %{buildroot}
################################################################################
%changelog
+* Fri Jan 24 2025 Anton Novojilov - 3.5a-0
+- https://raw.githubusercontent.com/tmux/tmux/3.5a/CHANGES
+
+* Fri Jan 24 2025 Anton Novojilov - 3.5-0
+- https://raw.githubusercontent.com/tmux/tmux/3.5/CHANGES
+
* Tue Apr 16 2024 Anton Novojilov - 3.4-0
-- Add options keep-last and keep-group to destroy-unattached to keep the last
- session whether in a group.
-- Don't allow paste-buffer into dead panes.
-- Add -t to source-file.
-- Rewrite combined character handling to be more consistent and to support
- newer Unicode combined characters.
-- Add basic support for SIXEL if built with --enable-sixel.
-- Add a session, pane and user mouse range types for the status line and add
- format variables for mouse_status_line and mouse_status_range so they can be
- associated with different commands in the key bindings.
-- Add flag (-o) to next-prompt/previous-prompt to go to OSC 133 command output.
-- Add options and flags for menu styles (menu-style, menu-border-style) similar
- to those existing for popups.
-- Add support for marking lines with a shell prompt based on the OSC 133
- extension.
-- Check for libterminfo for NetBSD.
-- Add "us" to styles for underscore colour.
-- Add flags (-c and -y) to change the confirm key and default behaviour of
- confirm-before.
-- Use ncurses' new tparm_s function (added in 6.4-20230424) instead of tparm so
- it does not object to string arguments in c apabilities it doesn't already
- know. Also ignore errors from tparm if using previous ncurses versions.
-- Set default lock command to vlock on Linux if present at build time.
-- Discard mouse sequences that have the right form but actually are invalid.
-- Add support for spawning panes in separate cgroups with systemd and a
- configure flag (--disable-cgroups) to turn off.
-- Add a format (pane_unseen_changes) to show if there are unseen changes while
- in a mode.
-- Remove old buffer when renaming rather than complaining.
-- Add an L modifier like P, W, S to loop over clients.
-- Add -f to list-clients like the other list commands.
-- Extend display-message to work for control clients.
-- Add a flag to display-menu to select the manu item selected when the menu is
- open.
-- Have tmux recognise pasted text wrapped in bracket paste sequences, rather
- than only forwarding them to the program inside.
-- Have client return 1 if process is interrupted to an input pane.
-- Query the client terminal for foreground and background colours and if OSC 10
- or 11 is received but no colour has been set inside tmux, return the colour
- from the first attached client.
-- Add send-keys -K to handle keys directly as if typed (so look up in key
- table).
-- Process escape sequences in show-buffer.
-- Add a -l flag to display-message to disable format expansion.
-- Add paste-buffer-deleted notification and fix name of paste-buffer-changed.
-- Do not attempt to connect to the socket as a client if systemd is active.
-- Add scroll-top and scroll-bottom commands to scroll so cursor is at top or
- bottom.
-- Add a -T flag to capture-pane to stop at the last used cell instead of the
- full width. Restore the previous behaviour by making it default to off unless
- -J is used.
-- Add message-line option to control where message and prompt go.
-- Notification when a when a paste buffer is deleted.
-- Add a Nobr terminfo(5) capability to tell tmux the terminal does not use
- bright colours for bold.
-- Change g and G to go to top and bottom in menus.
-- Add a third state "all" to allow-passthrough to work even in invisible panes.
-- Add support for OSC 8 hyperlinks.
-- Store the time lines are scrolled into history and display in copy mode.
-- Add a %%config-error reply to control mode for configuration file errors since
- reporting them in view mode is useless.
-- A new feature flag (ignorefkeys) to ignore terminfo(5) function key
- definitions for rxvt.
-- Pass through first argument to OSC 52 (which clipboards to set) if the
- application provides it.
-- Expand arguments to send-keys, capture-pane, split-window, join-pane where it
- makes sense to do so.
-- Ignore named buffers when choosing a buffer if one is not specified by
- the user.
+- https://raw.githubusercontent.com/tmux/tmux/3.4/CHANGES
* Fri Aug 19 2022 Anton Novojilov - 3.3a-0
-- Do not crash when run-shell produces output from a config file.
-- Do not unintentionally turn off all mouse mode when button mode is also
- present.
+- https://raw.githubusercontent.com/tmux/tmux/3.3a/CHANGES
* Fri Aug 19 2022 Anton Novojilov - 3.3-0
-- Add an ACL list for users connecting to the tmux socket. Users may be
- forbidden from attaching, forced to attach read-only, or allowed to attach
- read-write. A new command, server-access, configures the list. File system
- permissions must still be configured manually.
-- Emit window-layout-changed on swap-pane.
-- Better error reporting when applying custom layouts.
-- Handle ANSI escape sequences in run-shell output.
-- Add pane_start_path to match start_command.
-- Set PWD so shells have a hint about the real path.
-- Do not allow pipe-pane on dead panes.
-- Do not report mouse positions (incorrectly) above the maximum of 223 in
- normal mouse mode.
-- Add an option (default off) to control the passthrough escape sequence.
-- Support more mouse buttons when the terminal sends them.
-- Add a window-resized hook which is fired when the window is actually resized
- which may be later than the client resize.
-- Add next_session_id format with the next session ID.
-- Add formats for client and server UID and user.
-- Add argument to refresh-client -l to forward clipboard to a pane.
-- Add remain-on-exit-format to set text shown when pane is dead.
-- With split-window -f use percentages of window size not pane size.
-- Add an option (fill-character) to set the character used for unused areas of
- a client.
-- Add an option (scroll-on-clear) to control if tmux scrolls into history on
- clear.
-- Add a capability for OSC 7 and use it similarly to how the title is set (and
- controlled by the same set-titles option).
-- Add support for systemd socket activation (where systemd creates the Unix
- domain socket for tmux rather than tmux creating it). Build with
- --enable-systemd.
-- Add an option (pane-border-indicators) to select how the active pane is shown
- on the pane border (colour, arrows or both).
-- Support underscore styles with capture-pane -e.
-- Make pane-border-format a pane option rather than window.
-- Respond to OSC 4 queries
-- Fix g/G keys in modes to do the same thing as copy mode (and vi).
-- Bump the time terminals have to respond to device attributes queries to three
- seconds.
-- If automatic-rename is off, allow the rename escape sequence to set an empty
- name.
-- Trim menu item text more intelligently.
-- Add cursor-style and cursor-colour options to set the default cursor style
- and colour.
-- Accept some useful and non-conflicting emacs keys in vi normal mode at the
- command prompt.
-- Add a format modifier (c) to force a colour to RGB.
-- Add -s and -S to display-popup to set styles, -b to set lines and -T to set
- popup title. New popup-border-lines, popup-border-style and popup-style
- options set the defaults.
-- Add -e flag to set an environment variable for a popup.
-- Make send-keys without arguments send the key it is bound to (if bound to a
- key).
-- Try to leave terminal cursor at the right position even when tmux is drawing
- its own cursor or selection (such as at the command prompt and in choose
- mode) for people using screen readers and similar which can make use of it.
-- Change so that {} is converted to tmux commands immediately when parsed. This
- means it must contain valid tmux commands. For commands which expand %% and
- %%%, this now only happens within string arguments. Use of nested aliases
- inside {} is now forbidden. Processing of commands given in quotes remains
- the same.
-- Disable evports on SunOS since they are broken.
-- Do not expand the file given with tmux -f so it can contain :s.
-- Bump FORMAT_LOOP_LIMIT and add a log message when hit.
-- Add a terminal feature for the mouse (since FreeBSD termcap does not
- have kmous).
-- Forbid empty session names.
-- Improve error reporting when the tmux /tmp directory cannot be created or
- used.
-- Give #() commands a one second grace period where the output is empty before
- telling the user they aren't doing anything ("not ready").
-- When building, pick default-terminal from the first of tmux-256color, tmux,
- screen-256color, screen that is available on the build system (--with-TERM
- can override).
-- Do not close popups on resize, instead adjust them to fit.
-- Add a client-active hook.
-- Make window-linked and window-unlinked window options.
-- Do not configure on macOS without the user making a choice about utf8proc
- (either --enable-utf8proc or --disable-utf8proc).
-- Do not freeze output in panes when a popup is open, let them continue to
- redraw.
-- Add pipe variants of the line copy commands.
-- Change copy-line and copy-end-of-line not to cancel and add -and-cancel
- variants, like the other copy commands.
-- Support the OSC palette-setting sequences in popups.
-- Add a pane-colours array option to specify the defaults palette.
-- Add support for Unicode zero-width joiner.
-- Make newline a style delimiter as well so they can cross multiple lines for
- readability in configuration files.
-- Change focus to be driven by events rather than scanning panes so the
- ordering of in and out is consistent.
-- Add display-popup -B to open a popup without a border.
-- Add a menu for popups that can be opened with button three outside the popup
- or on the left or top border. Resizing now only works on the right and bottom
- borders or when using Meta. The menu allows a popup to be closed, expanded to
- the full size of the client, centered in the client or changed into a pane.
-- Make command-prompt and confirm-before block by default (like run-shell). A
- new -b flags runs them in the background as before. Also set return code for
- confirm-before.
-- Change cursor style handling so tmux understands which sequences contain
- blinking and sets the flag appropriately, means that it works whether cnorm
- disables blinking or not. This now matches xterm's behaviour.
-- More accurate vi(1) word navigation in copy mode and on the status line. This
- changes the meaning of the word-separators option: setting it to the empty
- string is equivalent to the previous behavior.
-- Add -F for command-prompt and use it to fix "Rename" on the window menu.
-- Add different command histories for different types of prompts ("command",
- "search" etc).
+- https://raw.githubusercontent.com/tmux/tmux/3.3/CHANGES
* Fri Aug 19 2022 Anton Novojilov - 3.2a-0
-- Add an "always" value for the "extended-keys" option; if set then tmux will
- forward extended keys to applications even if they do not request them.
-- Add a "mouse" terminal feature so tmux can enable the mouse on terminals
- where it is known to be supported even if terminfo(5) says otherwise.
-- Do not expand the filename given to -f so it can contain colons.
-- Fixes for problems with extended keys and modifiers, scroll region,
- source-file, crosscompiling, format modifiers and other minor issues.
+- https://raw.githubusercontent.com/tmux/tmux/3.2a/CHANGES
* Fri Aug 19 2022 Anton Novojilov - 3.2-0
-- Add a flag to disable keys to close a message.
-- Permit shortcut keys in buffer, client, tree modes to be configured with a
- format (-K flag to choose-buffer, choose-client, choose-tree).
-- Add a current_file format for the config file being parsed.
-- When display-message used in config file, show the message after the config
- file finishes.
-- Add client-detached notification in control mode.
-- Improve performance of format evaluation.
-- Make jump command support UTF-8 in copy mode.
-- Support X11 colour names and other colour formats for OSC 10 and 11.
-- Add "pipe" variants of "copy-pipe" commands which do not copy.
-- Include "focused" in client flags.
-- Send Unicode directional isolate characters around horizontal pane borders if
- the terminal supports UTF-8 and an extension terminfo(5) capability "Bidi" is
- present.
-- Add a -S flag to new-window to make it select the existing window if one
- with the given name already exists rather than failing with an error.
-- Add a format modifier to check if a window or session name exists (N/w or
- N/s).
-- Add compat clock_gettime for older macOS.
-- Add a no-detached choice to detach-on-destroy which detaches only if there
- are no other detached sessions to switch to.
-- Add rectangle-on and rectangle-off copy mode commands.
-- Change so that window_flags escapes # automatically. A new format
- window_raw_flags contains the old unescaped version.
-- Add -N flag to never start server even if command would normally do so.
-- With incremental search, start empty and only repeat the previous search if
- the user tries to search again with an empty prompt.
-- Add a value for remain-on-exit that only keeps the pane if the program
- failed.
-- Add a -C flag to run-shell to use a tmux command rather than a shell command.
-- Do not list user options with show-hooks.
-- Remove current match indicator in copy mode which can't work anymore since we
- only search the visible region.
-- Make synchronize-panes a pane option and add -U flag to set-option to unset
- an option on all panes.
-- Make replacement of ##s consistent when drawing formats, whether followed by
- [ or not. Add a flag (e) to the q: format modifier to double up #s.
-- Add -N flag to display-panes to ignore keys.
-- Change how escaping is processed for formats so that ## and # can be used in
- styles.
-- Add a 'w' format modifier for string width.
-- Add support for Haiku.
-- Expand menu and popup -x and -y as formats.
-- Add numeric comparisons for formats.
-- Fire focus events even when the pane is in a mode.
-- Add -O flag to display-menu to not automatically close when all mouse buttons
- are released.
-- Allow fnmatch(3) wildcards in update-environment.
-- Disable nested job expansion so that the result of #() is not expanded again.
-- Use the setal capability as well as (tmux's) Setulc.
-- Add -q flag to unbind-key to hide errors.
-- Allow -N without a command to change or add a note to an existing key.
-- Add a -w flag to set- and load-buffer to send to clipboard using OSC 52.
-- Add -F to set-environment and source-file.
-- Allow colour to be spelt as color in various places.
-- Add n: modifier to get length of a format.
-- Respond to OSC colour requests if a colour is available.
-- Add a -d option to display-message to set delay.
-- Add a way for control mode clients to subscribe to a format and be notified
- of changes rather than having to poll.
-- Add some formats for search in copy mode (search_present, search_match).
-- Do not wait on shutdown for commands started with run -b.
-- Add -b flags to insert a window before (like the existing -a for after) to
- break-pane, move-window, new-window.
-- Make paste -p the default for ].
-- Add support for pausing a pane when the output buffered for a control mode
- client gets too far behind. The pause-after flag with a time is set on the
- pane with refresh-client -f and a paused pane may be resumed with
- refresh-client -A.
-- Allow strings in configuration files to span multiple lines - newlines and
- any leading whitespace are removed, as well as any following comments that
- couldn't be part of a format. This allows long formats or other strings to be
- annotated and indented.
-- Instead of using a custom parse function to process {} in configuration
- files, treat as a set of statements the same as outside {} and convert back
- to a string as the last step. This means the rules are consistent inside and
- outside {}, %%if and friends work at the right time, and the final result
- isn't littered with unnecessary newlines.
-- Add support for extended keys - both xterm(1)'s CSI 27 ~ sequence and the
- libtickit CSI u sequence are accepted; only the latter is output. tmux will
- only attempt to use these if the extended-keys option is on and it can detect
- that the terminal outside supports them (or is told it does with the
- "extkeys" terminal feature).
-- Add an option to set the pane border lines style from a choice of single
- lines (ACS or UTF-8), double or heavy (UTF-8), simple (plain ASCII) or number
- (the pane numbers). Lines that won't work on a non-UTF-8 terminal are
- translated back into ACS when they are output.
-- Make focus events update the latest client (like a key press).
-- Store UTF-8 characters differently to reduce memory use.
-- Fix break-pane -n when only one pane in the window.
-- Instead of sending all data to control mode clients as fast as possible, add
- a limit of how much data will be sent to the client and try to use it for
- panes with some degree of fairness.
-- Add an active-pane client flag (set with attach-session -f, new-session -f
- or refresh-client -f). This allows a client to have an independent active
- pane for interactive use (the window client pane is still used for many
- things however).
-- Add a mark to copy mode, this is set with the set-mark command (bound to X)
- and appears with the entire line shown using copy-mode-mark-style and the
- marked character in reverse. The jump-to-mark command (bound to M-x) swaps
- the mark and the cursor positions.
-- Add a -D flag to make the tmux server run in the foreground and not as a
- daemon.
-- Do not loop forever in copy mode when search finds an empty match.
-- Fix the next-matching-bracket logic when using vi(1) keys.
-- Add a customize mode where options may be browsed and changed, includes
- adding a brief description of each option. Bound to C-b C by default.
-- Change message log (C-b ~) so there is one for the server rather than one per
- client and it remains after detach, and make it useful by logging every
- command.
-- Add M-+ and M-- to tree mode to expand and collapse all.
-- Change the existing client flags for control mode to apply for any client,
- use the same mechanism for the read-only flag and add an ignore-size flag.
- refresh-client -F has become -f (-F stays for backwards compatibility) and
- attach-session and switch-client now have -f flags also. A new format
- client_flags lists the flags and is shown by list-clients by default.
- This separates the read-only flag from "ignore size" behaviour (new
- ignore-size) flag - both behaviours are useful in different circumstances.
- attach -r and switchc -r remain and set or toggle both flags together.
-- Store and restore cursor position when copy mode is resized.
-- Export TERM_PROGRAM and TERM_PROGRAM_VERSION like various other terminals.
-- Add formats for after hook command arguments: hook_arguments with all the
- arguments together; hook_argument_0, hook_argument_1 and so on with
- individual arguments; hook_flag_X if flag -X is present; hook_flag_X_0,
- hook_flag_X_1 and so on if -X appears multiple times.
-- Try to search the entire history first for up to 200 ms so a search count can
- be shown. If it takes too long, search the visible text only.
-- Use VIS_CSTYLE for paste buffers also (show \012 as \n).
-- Change default formats for tree mode, client mode and buffer mode to be more
- compact and remove some clutter.
-- Add a key (e) in buffer mode to open the buffer in an editor. The buffer
- contents is updated when the editor exits.
-- Add -e flag for new-session to set environment variables, like the same flag
- for new-window.
-- Improve search match marking in copy mode. Two new options
- copy-mode-match-style and copy-mode-current-match-style to set the style for
- matches and for the current match respectively. Also a change so that if a
- copy key is pressed with no selection, the current match (if any) is copied.
-- Sanitize session names like window names instead of forbidding invalid ones.
-- Check if the clear terminfo(5) capability starts with CSI and if so then
- assume the terminal is VT100-like, rather than relying on the XT capability.
-- Improve command prompt tab completion and add menus both for strings and -t
- and -s (when used without a trailing space). command-prompt has additional
- flags for only completing a window (-W) and a target (-T), allowing C-b ' to
- only show windows and C-b . only targets.
-- Change all the style options to string options so they can support formats.
- Change pane-active-border-style to use this to change the border colour when
- in a mode or with synchronize-panes on. This also implies a few minor changes
- to existing behaviour:
-- set-option -a with a style option automatically inserts a comma between the
- old value and appended text.
-- OSC 10 and 11 no longer set the window-style option, instead they store the
- colour internally in the pane data and it is used as the default when the
- option is evaluated.
-- status-fg and -bg now override status-style instead of the option values
- being changed.
-- Add extension terminfo(5) capabilities for margins and focus reporting.
-- Try $XDG_CONFIG_HOME/tmux/tmux.conf as well as ~/.config/tmux/tmux.conf for
- configuration file (the search paths are in TMUX_CONF in Makefile.am).
-- Remove the DSR 1337 iTerm2 extension and replace by the extended device
- attributes sequence (CSI > q) supported by more terminals.
-- Add a -s flag to copy-mode to specify a different pane for the source
- content. This means it is possible to view two places in a pane's history at
- the same time in different panes, or view the history while still using the
- pane. Pressing r refreshes the content from the source pane.
-- Add an argument to list-commands to show only a single command.
-- Change copy mode to make copy of the pane history so it does not need to
- freeze the pane.
-- Restore pane_current_path format from portable tmux on OpenBSD.
-- Wait until the initial command sequence is done before sending a device
- attributes request and other bits that prompt a reply from the terminal. This
- means that stray replies are not left on the terminal if the command has
- attached and then immediately detached and tmux will not be around to receive
- them.
-- Add a -f filter argument to the list commands like choose-tree.
-- Move specific hooks for panes to pane options and windows for window options
- rather than all hooks being session options.
-- Show signal names when a process exits with remain-on-exit on platforms which
- have a way to get them.
-- Start menu with top item selected if no mouse and use mode-style for the
- selected item.
-- Add a copy-command option and change copy-pipe and friends to pipe to it if
- used without arguments, allows all the default copy key bindings to be
- changed to pipe with one option rather than needing to change each key
- binding individually.
-- Tidy up the terminal detection and feature code and add named sets of
- terminal features, each of which are defined in one place and map to a
- builtin set of terminfo(5) capabilities. Features can be specified based on
- TERM with a new terminal-features option or with the -T flag when running
- tmux. tmux will also detect a few common terminals from the DA and DSR
- responses.
- This is intended to make it easier to configure tmux's use of terminfo(5)
- even in the presence of outdated ncurses(3) or terminfo(5) databases or for
- features which do not yet have a terminfo(5) entry. Instead of having to grok
- terminfo(5) capability names and what they should be set to in the
- terminal-overrides option, the user can hopefully just give tmux a feature
- name and let it do the right thing.
- The terminal-overrides option remains both for backwards compatibility and to
- allow tweaks of individual capabilities.
-- Support mintty's application escape sequence (means tmux doesn't have to
- delay to wait for Escape, so no need to reduce escape-time when using
- mintty).
-- Change so main-pane-width and height can be given as a percentage.
-- Support for the iTerm2 synchronized updates feature (allows the terminal to
- avoid unnecessary drawing while output is still in progress).
-- Make the mouse_word and mouse_line formats work in copy mode and enable the
- default pane menu in copy mode.
-- Add a -T flag to resize-pane to trim lines below the cursor, moving lines out
- of the history.
-- Add a way to mark environment variables as "hidden" so they can be used by
- tmux (for example in formats) but are not set in the environment for new
- panes. set-environment and show-environment have a new -h flag and there is a
- new %%hidden statement for the configuration file.
-- Change default position for display-menu -x and -y to centre rather than top
- left.
-- Add support for per-client transient popups, similar to menus but which are
- connected to an external command (like a pane). These are created with new
- command display-popup.
-- Change double and triple click bindings so that only one is fired (previously
- double click was fired on the way to triple click). Also add default double
- and triple click bindings to copy the word or line under the cursor and
- change the existing bindings in copy mode to do the same.
-- Add a default binding for button 2 to paste.
-- Add -d flag to run-shell to delay before running the command and allow it to
- be used without a command so it just delays.
-- Add C-g to cancel command prompt with vi keys as well as emacs, and q in
- command mode.
-- When the server socket is given with -S, create it with umask 177 instead of
- 117 (because it may not be in a safe directory like the default directory in
- /tmp).
-- Add a copy-mode -H flag to hide the position marker in the top right.
-- Add number operators for formats (+, -, *, / and m).
+- https://raw.githubusercontent.com/tmux/tmux/3.2/CHANGES
* Fri Aug 19 2022 Anton Novojilov - 3.1c-0
-- Do not write after the end of the array and overwrite the stack when
- colon-separated SGR sequences contain empty arguments.
+- https://raw.githubusercontent.com/tmux/tmux/3.1c/CHANGES
* Sat Jun 27 2020 Anton Novojilov - 3.1b-0
-- Fix build on systems without sys/queue.h.
-- Fix crash when allow-rename is on and an empty name is set.
+- https://raw.githubusercontent.com/tmux/tmux/3.1b/CHANGES
* Sat Jun 27 2020 Anton Novojilov - 3.1a-0
-- Do not close stdout prematurely in control mode since it is needed to print
- exit messages. Prevents hanging when detaching with iTerm2.
+- https://raw.githubusercontent.com/tmux/tmux/3.1a/CHANGES
* Sat Jun 27 2020 Anton Novojilov - 3.1-0
-- Only search the visible part of the history when marking (highlighting)
- search terms. This is much faster than searching the whole history and solves
- problems with large histories. The count of matches shown is now the visible
- matches rather than all matches.
-- Search using regular expressions in copy mode. search-forward and
- search-backward use regular expressions by default; the incremental versions
- do not.
-- Turn off mouse mode 1003 as well as the rest when exiting.
-- Add selection_active format for when the selection is present but not moving
- with the cursor.
-- Fix dragging with modifier keys, so binding keys such as C-MouseDrag1Pane and
- C-MouseDragEnd1Pane now work.
-- Add -a to list-keys to also list keys without notes with -N.
-- Do not jump to next word end if already on a word end when selecting a word;
- fixes select-word with single character words and vi(1) keys.
-- Fix top and bottom pane calculation with pane border status enabled.
-- Add support for adding a note to a key binding (with bind-key -N) and use
- this to add descriptions to the default key bindings. A new -N flag to
- list-keys shows key bindings with notes. Change the default ? binding to use
- this to show a readable summary of keys. Also extend command-prompt to return
- the name of the key pressed and add a default binding (/) to show the note
- for the next key pressed.
-- Add support for the iTerm2 DSR 1337 sequence to get the terminal version.
-- Treat plausible but invalid keys (like C-BSpace) as literal like any other
- unrecognised string passed to send-keys.
-- Detect iTerm2 and enable use of DECSLRM (much faster with horizontally split
- windows).
-- Add -Z to default switch-client command in tree mode.
-- Add ~ to quoted characters for %%%.
-- Document client exit messages in the manual page.
-- Do not let read-only clients limit the size, unless all clients are
- read-only.
-- Add a number of new formats to inspect what sessions and clients a window is
- present or active in.
-- Change file reading and writing to go through the client if necessary. This
- fixes commands like "tmux loadb /dev/fd/X". Also modify source-file to
- support "-" for standard input, like load-buffer and save-buffer.
-- Add ~/.config/tmux/tmux.conf to the default search path for configuration
- files.
-- Bump the escape sequence timeout to five seconds to allow for longer
- legitimate sequences.
-- Make a best effort to set xpixel and ypixel for each pane and add formats for
- them.
-- Add push-default to status-left and status-right in status-format[0].
-- Do not clear search marks on cursor movement with vi(1) keys.
-- Add p format modifier for padding to width and allow multiple substitutions
- in a single format.
-- Add -f for full size to join-pane (like split-window).
-- Do not use bright when emulating 256 colours on an 8 colour terminal because
- it is also bold on some terminals.
-- Make select-pane -P set window-active-style also to match previous behaviour.
-- Do not truncate list-keys output.
-- Turn automatic-rename back on if the \033k rename escape sequence is used
- with an empty name.
-- Add support for percentage sizes for resize-pane ("-x 10%"). Also change
- split-window and join-pane -l to accept similar percentages and deprecate the
- -p flag.
-- Add -F flag to send-keys to expand formats in search-backward and forward
- copy mode commands and copy_cursor_word and copy_cursor_line formats for word
- and line at cursor in copy mode. Use for default # and - binding with vi(1)
- keys.
-- Add formats for word and line at cursor position in copy mode.
-- Add formats for cursor and selection position in copy mode.
-- Support all the forms of RGB colour strings in OSC sequences rather than
- requiring two digits.
-- Limit lazy resize to panes in attached sessions only.
-- Add an option to set the key sent by backspace for those whose system uses ^H
- rather than ^?.
-- Change new-session -A without a session name (that is, no -s option also) to
- attach to the best existing session like attach-session rather than a new
- one.
-- Add a "latest" window-size option which tries to size windows based on the
- most recently used client. This is now the default.
-- Add simple support for OSC 7 (result is available in the pane_path format).
-- Add push-default and pop-default for styles which change the colours and
- attributes used for #[default]. These are used in status-format to restore
- the behaviour of window-status-style being the default for
- window-status-format.
-- Add window_marked_flag.
-- Add cursor-down-and-cancel in copy mode.
-- Default to previous search string for search-forward and search-backward.
-- Add -Z flag to rotate-window, select-pane, swap-pane, switch-client to
- preserve zoomed state.
-- Add -N to capture-pane to preserve trailing spaces.
-- Add reverse sorting in tree, client and buffer modes.
+- https://raw.githubusercontent.com/tmux/tmux/3.1/CHANGES
* Fri Dec 20 2019 Anton Novojilov - 3.0a-0
-- Do not require REG_STARTEND.
-- Respawn panes or windows correctly if default-command is set.
-- Add missing option for after-kill-pane hook.
-- Fix for crash with a format variable that doesn't exist.
-- Do not truncate list-keys output on some platforms.
-- Do not crash when restoring a layout with only one pane.
+- https://raw.githubusercontent.com/tmux/tmux/3.0a/CHANGES
* Fri Dec 20 2019 Anton Novojilov - 3.0-0
-- xterm 348 now disables margins when resized, so send DECLRMM again after
- resize.
-- Add support for the SD (scroll down) escape sequence.
-- Expand arguments to C and s format modifiers to match the m modifier.
-- Add support for underscore colours (Setulc capability must be added with
- terminal-overrides as described in tmux(1)).
-- Add a "fill" style attribute for the fill colour of the drawing area (where
- appropriate).
-- New -H flag to send-keys to send literal keys.
-- Format variables for pane mouse modes (mouse_utf8_flag and mouse_sgr_flag)
- and for origin mode (origin_flag).
-- Add -F to refresh-client for flags for control mode clients, only one flag
- (no-output) supported at the moment.
-- Add a few vi(1) keys for menus.
-- Add pane options, set with set-option -p and displayed with show-options -p.
- Pane options inherit from window options (so every pane option is also
- a window option). The pane style is now configured by setting window-style
- and window-active-style in the pane options; select-pane -P and -g now change
- the option but are no longer documented.
-- Do not document set-window-option and show-window-options. set-option -w and
- show-options -w should be used instead.
-- Add a -A flag to show-options to show parent options as well (they are marked
- with a *).
-- Resize panes lazily - do not resize unless they are in an attached, active
- window.
-- Add regular expression support for the format search, match and substitute
- modifiers and make them able to ignore case. find-window now accepts -r to
- use regular expressions.
-- Do not use $TMUX to find the session because for windows in multiple sessions
- it is wrong as often as it is right, and for windows in one session it is
- pointless. Instead use TMUX_PANE if it is present.
-- Do not always resize the window back to its original size after applying a
- layout, keep it at the layout size until it must be resized (for example when
- attached and window-size is not manual).
-- Add new-session -X and attach-session -x to send SIGHUP to parent when
- detaching (like detach-client -P).
-- Support for octal escapes in strings (such as \007) and improve list-keys
- output so it parses correctly if copied into a configuration file.
-- INCOMPATIBLE: Add a new {} syntax to the configuration file. This is a string
- similar to single quotes but also includes newlines and allows commands that
- take other commands as string arguments to be expressed more clearly and
- without additional escaping.
- A literal { and } or a string containing { or } must now be escaped or
- quoted, for example '{' and '}' instead of { or }, or 'X#{foo}' instead of
- X#{foo}.
-- New <, >, <= and >= comparison operators for formats.
-- Improve escaping of special characters in list-keys output.
-- INCOMPATIBLE: tmux's configuration parsing has changed to use yacc(1). There
- is one incompatible change: a \ on its own must be escaped or quoted as
- either \\ or '\' (the latter works on older tmux versions).
- Entirely the same parser is now used for parsing the configuration file
- and for string commands. This means that constructs previously only
- available in .tmux.conf, such as %%if, can now be used in string commands
- (for example, those given to if-shell - not commands invoked from the
- shell, they are still parsed by the shell itself).
-- Add support for the overline attribute (SGR 53). The Smol capability is
- needed in terminal-overrides.
-- Add the ability to create simple menus. Introduces new command
- display-menu. Default menus are bound to MouseDown3 on the status line;
- MouseDown3 or M-MouseDown3 on panes; MouseDown3 in tree, client and
- buffer modes; and C-b C-m and C-b M-m.
-- Allow panes to be empty (no command). They can be created either by piping to
- split-window -I, or by passing an empty command ('') to split-window. Output
- can be sent to an existing empty window with display-message -I.
-- Add keys to jump between matching brackets (emacs C-M-f and C-M-b, vi %%).
-- Add a -e flag to new-window, split-window, respawn-window, respawn-pane to
- pass environment variables into the newly created process.
-- Hooks are now stored in the options tree as array options, allowing them to
- have multiple separate commands. set-hook and show-hooks remain but
- set-option and show-options can now also be used (show-options will only show
- hooks if given the -H flag). Hooks with multiple commands are run in index
- order.
-- Automatically scroll if dragging to create a selection with the mouse and the
- cursor reaches the top or bottom line.
-- Add -no-clear variants of copy-selection and copy-pipe which do not clear the
- selection after copying. Make copy-pipe clear the selection by default to be
- consistent with copy-selection.
-- Add an argument to copy commands to set the prefix for the buffer name, this
- (for example) allows buffers for different sessions to be named separately.
-- Update session activity on focus event.
-- Pass target from source-file into the config file parser so formats in %%if
- and %%endif have access to more useful variables.
-- Add the ability to infer an option type (server, session, window) from its
- name to show-options (it was already present in set-option).
-
-* Fri Jul 19 2019 Anton Novojilov - 2.9a-0
-- Fix bugs in select-pane and the main-horizontal and main-vertical layouts.
-- Attempt to preserve horizontal cursor position as well as vertical with
- reflow.
-- Rewrite main-vertical and horizontal and change layouts to better handle the
- case where all panes won't fit into the window size, reduce problems with
- pane border status lines and fix other bugs mostly found by Thomas Sattler.
-- Add format variables for the default formats in the various modes
- (tree_mode_format and so on) and add a -a flag to display-message to list
- variables with values.
-- Add a -v flag to display-message to show verbose messages as the format is
- parsed, this allows formats to be debugged
-- Add support for HPA (\033[`).
-- Add support for origin mode (\033[?6h).
-- No longer clear history on RIS.
-- Extend the #[] style syntax and use that together with previous format
- changes to allow the status line to be entirely configured with a single
- option.
-- Add E: and T: format modifiers to expand a format twice (useful to expand the
- value of an option).
-- The individual -fg, -bg and -attr options have been removed; they
- were superseded by -style options in tmux 1.9.
-- Allow more than one mode to be opened in a pane. Modes are kept on a stack
- and retrieved if the same mode is entered again. Exiting the active mode goes
- back to the previous one.
-- When showing command output in copy mode, call it view mode instead (affects
- pane_mode format).
-- Add -b to display-panes like run-shell.
-- Handle UTF-8 in word-separators option.
-- New "terminal" colour allowing options to use the terminal default colour
- rather than inheriting the default from a parent option.
-- Do not move the cursor in copy mode when the mouse wheel is used.
-- Use the same working directory rules for jobs as new windows rather than
- always starting in the user's home.
-- Allow panes to be one line or column in size.
-- Go to last line when goto-line number is out of range in copy mode.
-- Yank previously cut text if any with C-y in the command prompt, only use the
- buffer if no text has been cut.
-- Add q: format modifier to quote shell special characters.
-- Add StatusLeft and StatusRight mouse locations (keys such as
- MouseDown1StatusLeft) for the status-left and status-right areas of the
- status line.
-- Add -Z to find-window.
-- Support for windows larger than the client.
-
-* Fri Dec 07 2018 Anton Novojilov - 2.8-0
-- Make display-panes block the client until a pane is chosen or it
- times out.
-- Clear history on RIS like most other terminals do.
-- Add an "Any" key to run a command if a key is pressed that is not
- bound in the current key table.
-- Expand formats in load-buffer and save-buffer.
-- Add a rectangle_toggle format.
-- Add set-hook -R to run a hook immediately.
-- Add README.ja.
-- Add pane focus hooks.
-- Allow any punctuation as separator for s/x/y not only /.
-- Improve resizing with the mouse (fix resizing the wrong pane in some
- layouts, and allow resizing multiple panes at the same time).
-- Allow , and } to be escaped in formats as #, and #}.
-- Add KRB5CCNAME to update-environment.
-- Change meaning of -c to display-message so the client is used if it
- matches the session given to -t.
-- Fixes to : form of SGR.
-- Add x and X to choose-tree to kill sessions, windows or panes.
-
-* Fri Jul 06 2018 Anton Novojilov - 2.7-0
-- Remove EVENT_- variables from environment on platforms where tmux uses them
- so they do not pass on to panes.
-- Fixes for hooks at server exit.
-- Remove SGR 10 (was equivalent to SGR 0 but no other terminal seems to do
- this).
-- Expand formats in window and session names.
-- Add -Z flag to choose-tree, choose-client, choose-buffer to automatically
- zoom the pane when the mode is entered and unzoom when it exits, assuming the
- pane is not already zoomed. This is now part of the default key bindings.
-- Add C-g to exit modes with emacs keys.
-- Add exit-empty option to exit server if no sessions (defaults to on).
-- Show if a filter is present in choose modes.
-- Add pipe-pane -I to to connect stdin of the child process.
-- Performance improvements for reflow.
-- Use RGB terminfo(5) capability to detect RGB colour terminals (the existing
- Tc extension remains unchanged).
-- Support for ISO colon-separated SGR sequences.
-- Add select-layout -E to spread panes out evenly (bound to E key).
-- Support wide characters properly when reflowing.
-- Pass PWD to new panes as a hint to shells, as well as calling chdir().
-- Performance improvements for the various choose modes.
-- Only show first member of session groups in tree mode (-G flag to choose-tree
- to show all).
-- Support %%else in config files to match %%if.
-- Fix "kind" terminfo(5) capability to be S-Down not S-Up.
-- Add a box around the preview label in tree mode.
-- Show exit status and time in the remain-on-exit pane text.
-- Correctly use pane-base-index in tree mode.
-- Change the allow-rename option default to off.
-- Support for xterm(1) title stack escape sequences.
-- Correctly remove padding cells to fix a UTF-8 display problem
-
-* Sat Nov 18 2017 Anton Novojilov - 2.6-0
-- Add select-pane -T to set pane title.
-- Fix memory leak when lines with BCE are removed from history.
-- Fix (again) the "prefer unattached" behaviour of attach-session.
-- Reorder how keys are checked to allow keys to be specified that have a
- leading escape.
-- Support REP escape sequence (\033[b).
-- Run alert hooks based on options rather than always, and allow further bells
- even if there is an existing bell.
-- Add -d flag to display-panes to override display-panes-time.
-- Add selection_present format when in copy mode (allows key bindings that do
- something different if there is a selection).
-- Add pane_at_left, pane_at_right, pane_at_top and pane_at_bottom formats.
-- Make bell, activity and silence alerting more consistent by: removing the
- bell-on-alert option; adding activity-action and silence-action options with
- the same possible values as the existing bell-action; adding a "both" value
- for the visual-bell, visual-activity and visual-silence options to trigger
- both a bell and a message.
-- Add a pane_pipe format to show if pipe-pane is active.
-- Block signals between forking and resetting signal handlers so that the
- libevent signal handler doesn't get called in the child and incorrectly write
- into the signal pipe that it still shares with the parent.
-- Allow punctuation in pane_current_command.
-- Add -c for respawn-pane and respawn-window.
-- Wait for any remaining data to flush when a pane is closed while pipe-pane is
- in use.
-- Fix working out current client with no target.
-- Try to fallback to C.UTF-8 as well as en_US.UTF-8 when looking for a UTF-8
- locale.
-- Add user-keys option for user-defined key escape sequences (mapped to User0
- to User999 keys).
-- Add pane-set-clipboard hook.
-- FAQ file has moved out of repository to online.
-- Fix problem with high CPU usage when a client dies unexpectedly.
- 941.
-- Do a dance on OS X 10.10 and above to return tmux to the user namespace,
- allowing access to the clipboard.
-- Do not allow escape sequences which expect a specific terminator (APC, DSC,
- OSC) to wait for forever - use a small timeout. This reduces the chance of
- the pane locking up completely when sent garbage (cat /dev/random or
- similar).
-- Support SIGUSR2 to toggle logging on a running server, also generate the
- "out" log file with -vv not -vvvv.
-- Make set-clipboard a three state option: on (tmux both sends to outside
- terminal and accepts from applications inside); external (tmux sends outside
- but does not accept inside); and off.
-- Fix OSC 4 palette setting for bright foreground colours.
-- Use setrgbf and setrgbb terminfo(5) capabilities to set RGB colours, if they
- are available. (Tc is still supported as well.)
-- Fix redrawing panes when they are resized several times but end up with the
- size unchanged (for example, splitw/resizep -Z/breakp).
-- Major rewrite of choose mode. Now includes preview, sorting, searching and
- tagging; commands that can be executed directly from the mode (for example,
- to delete one or more buffers); and filtering in tree mode.
-- choose-window and choose-session are now aliases of choose-tree (in the
- command-alias option).
-- Support OSC 10 and OSC 11 to set foreground and background colours.
-- Check the U8 capability to determine whether to use UTF-8 line drawing
- characters for ACS.
-- Some missing notifications for layout changes.
-- Control mode clients now do not affect session sizes until they issue
- refresh-client -C. new-session -x and -y works with control clients even if
- the session is not detached.
-- All new sessions that are unattached (whether with -d or started with no
- terminal) are now created with size 80 x 24. Whether the status line is on or
- off does not affect the size of new sessions until they are attached.
-- Expand formats in option names and add -F flag to expand them in option
- values.
-- Remember the search string for a pane even if copy mode is exited and entered
- again.
-- Some further BCE fixes (scroll up, reverse index).
-- Improvements to how terminals are cleared (entirely or partially).
-
-* Mon Sep 18 2017 Anton Novojilov - 2.5-0
-- Reset updated flag when restarting #() command so that new output is properly
- recognised
-- Fix ECH with a background colour.
-- Do not rely on the terminal not moving the cursor after DL or EL.
-- Fix send-keys and send-prefix in copy-mode (so C-b C-b works). GitHub issue
- 905.
-- Set the current pane for rotate-window so it works in command sequences.
-- Add pane_mode format.
-- Differentiate M-Up from Escape+Up when possible (that is, in terminals with
- xterm(1) style function keys)
-- Add session_stack and window_stack_index formats.
-- Some new control mode notifications and corresponding hooks:
- pane-mode-changed, window-pane-changed, client-session-changed,
- session-window-changed.
-- Format pane_search_string for last search term while in copy mode (useful
- with command-prompt -I).
-- Fix a problem with high CPU usage and multiple clients with #().
-- Fix UTF-8 combining characters in column 0.
-- Fix reference counting so that panes are properly destroyed and their
- processes killed.
-- Clamp SU (CSI S) parameter to work around a bug in Konsole.
-- Tweak line wrapping in full width panes to play more nicely with terminal
- copy and paste.
-- Fix when we emit SGR 0 in capture-pane -e.
-- Do not change TERM until after config file parsing has finished, so that
- commands run inside the config file can use it to make decisions (typically
- about default-terminal).
-- Make the initial client wait until config file parsing has finished to avoid
- racing with commands.
-- Fix core when if-shell fails.
-- Only use ED to clear screen if the pane is at the bottom.
-- Fix multibyte UTF-8 output.
-- Code improvements around target (-t) resolution.
-- Change how the default target (for commands without -t) is managed across
- command sequences: now it is set up at the start and commands are required
- to update it if needed. Fixes binding command sequences to mouse keys.
-- Make if-shell from the config file work correctly.
-- Change to always check the root key table if no binding is found in the
- current table (prefix table or copy-mode table or whatever). This means that
- root key bindings will take effect even in copy mode, if not overridden by a
- copy mode key binding.
-- Fix so that the history file works again.
-- Run config file without a client rather than using the first client, restores
- previous behaviour.
-- If a #() command doesn't exit, continue to read from it and use its last full
- line of output.
-- Handle slow terminals and fast output better: when the amount of data
- outstanding gets too large, discard output until it is drained and we are
- able to do a full redraw. Prevents tmux sitting on a huge buffer that the
- terminal will take forever to consume.
-- Do not redraw a client unless we realistically think it can accept the data -
- defer redraws until the client has nothing else waiting to write.
-
-* Wed May 10 2017 Anton Novojilov - 2.4-0
-- Fix send-keys and send-prefix in copy-mode (so C-b C-b works).
-- Set the current pane for rotate-window so it works in command sequences.
-- Add pane_mode format.
-- Differentiate M-Up from Escape+Up when possible (that is, in terminals with
- xterm(1) style function keys).
-- Add session_stack and window_stack_index formats.
-- Some new control mode notifications and corresponding hooks:
- pane-mode-changed, window-pane-changed, client-session-changed,
- session-window-changed.
-- Format pane_search_string for last search term while in copy mode (useful
- with command-prompt -I).
-- Fix a problem with high CPU usage and multiple clients with #().
-- Fix UTF-8 combining characters in column 0.
-- Fix reference counting so that panes are properly destroyed and their
- processes killed.
-- Clamp SU (CSI S) parameter to work around a bug in Konsole.
-- Tweak line wrapping in full width panes to play more nicely with terminal
- copy and paste.
-- Fix when we emit SGR 0 in capture-pane -e.
-- Do not change TERM until after config file parsing has finished, so that
- commands run inside the config file can use it to make decisions (typically
- about default-terminal).
-- Make the initial client wait until config file parsing has finished to avoid
- racing with commands.
-- Fix core when if-shell fails.
-- Only use ED to clear screen if the pane is at the bottom.
-- Fix multibyte UTF-8 output.
-- Code improvements around target (-t) resolution.
-- Change how the default target (for commands without -t) is managed across
- command sequences: now it is set up at the start and commands are required
- to update it if needed. Fixes binding command sequences to mouse keys.
-- Make if-shell from the config file work correctly.
-- Change to always check the root key table if no binding is found in the
- current table (prefix table or copy-mode table or whatever). This means that
- root key bindings will take effect even in copy mode, if not overridden by a
- copy mode key binding.
-- Fix so that the history file works again.
-- Run config file without a client rather than using the first client, restores
- previous behaviour.
-- If a #() command doesn't exit, continue to read from it and use its last full
- line of output.
-- Handle slow terminals and fast output better: when the amount of data
- outstanding gets too large, discard output until it is drained and we are
- able to do a full redraw. Prevents tmux sitting on a huge buffer that the
- terminal will take forever to consume.
-- Do not redraw a client unless we realistically think it can accept the data -
- defer redraws until the client has nothing else waiting to write.
-
-* Tue Mar 28 2017 Anton Novojilov - 2.3-1
-- Rebuilt with latest version of libevent
-
-* Tue Oct 18 2016 Anton Novojilov - 2.3-0
-- New option 'pane-border-status' to add text in the pane borders.
-- Support for hooks on commands: 'after' and 'before' hooks.
-- 'source-file' understands '-q' to suppress errors for nonexistent files.
-- Lots of UTF8 improvements, especially on MacOS.
-- 'window-status-separator' understands #[] expansions.
-- 'split-window' understands '-f' for performing a full-width split.
-- Allow report count to be specified when using 'bind-key -R'.
-- 'set -a' for appending to user options (@foo) is now supported.
-- 'display-panes' can now accept a command to run, rather than always
- selecting the pane.
-
-* Sun Jun 19 2016 Anton Novojilov - 2.2-0
-- The format strings which referenced time have been removed. Instead:
- #{t:window_activity} can be used.
-- Support for TMPDIR has been removed. Use TMUX_TMPDIR instead.
-- UTF8 detection how happens automatically if the client supports it,
- hence the:
- mouse-utf8
- utf8
- options has been removed.
-- The: mouse_utf8_flag format string has been removed.
-- The -I option to show-messages has been removed. See: #{t:start_time}
- format option instead.
-- Panes are unzoomed with selectp -LRUD
-- New formats added:
- #{scroll_position}
- #{socket_path}
- #{=10:...} -- limit to N characters (from the start)
- #{=-10:...} -- limit to N characters (from the end)
- #{t:...} -- used to format time-based formats
- #{b:...} -- used to ascertain basename from string
- #{d:...} -- used to ascertain dirname from string
- #{s:...} -- used to perform substitutions on a string
-- Job output is run via the format system, so formats work again
-- If display-time is set to 0, then the indicators wait for a key to be
- pressed.
-- list-keys and list-commands can be run without starting the tmux server.
-- kill-session learns -C to clear all alerts in all windows of the session.
-- Support for hooks (internal for now), but hooks for the following have been
- implemented:
- alert-bell
- alert-silence
- alert-activity
- client-attached
- client-detached
- client-resized
- pane-died
- pane-exited
-- RGB (24bit) colour support. The 'Tc' flag must be set in the external TERM
- entry (using terminal-overrides or a custom terminfo entry).
-
-* Sun Nov 22 2015 Anton Novojilov - 2.1-0
-- Updated to 2.1
-
-* Tue May 12 2015 Anton Novojilov - 2.0-0
-- Updated to 2.0
-
-* Wed Mar 26 2014 Anton Novojilov - 1.9a-0
-- Updated to 1.9a
-
-* Wed Mar 26 2014 Anton Novojilov - 1.9-0
-- Updated to 1.9
-
-* Sun Jul 21 2013 Anton Novojilov - 1.8-0
-- Updated to 1.8
+- https://raw.githubusercontent.com/tmux/tmux/3.0/CHANGES
diff --git a/specs/uv.spec b/specs/uv.spec
index 61c91cf74..cd57b8080 100644
--- a/specs/uv.spec
+++ b/specs/uv.spec
@@ -1,12 +1,12 @@
################################################################################
-%define checksum c7c0a6804538e083bcfbc49c2cecf07c5aaf9fc31fdcfb4449c787d3a40c980b
+%define checksum a0eb614f7fc38a6e14ef1c4819f1f187591db8e0d3c4218dae38b1bd663a00e2
################################################################################
Summary: An extremely fast Python package installer and resolver
Name: uv
-Version: 0.4.4
+Version: 0.5.24
Release: 0%{?dist}
Group: Development/Tools
License: MIT AND Apache 2.0
@@ -77,6 +77,9 @@ install -pm 755 %{name}x %{buildroot}%{_bindir}/
################################################################################
%changelog
+* Fri Jan 24 2025 Anton Novojilov - 0.5.24-0
+- https://github.com/astral-sh/uv/releases/tag/0.5.24
+
* Wed Sep 04 2024 Anton Novojilov - 0.4.4-0
- https://github.com/astral-sh/uv/releases/tag/0.4.4
diff --git a/specs/valkey/SOURCES/sentinel-72-config.patch b/specs/valkey/SOURCES/sentinel-72-config.patch
new file mode 100644
index 000000000..8893030d9
--- /dev/null
+++ b/specs/valkey/SOURCES/sentinel-72-config.patch
@@ -0,0 +1,27 @@
+diff --color -urN valkey-7.2.7-orig/sentinel.conf valkey-7.2.7/sentinel.conf
+--- valkey-7.2.7-orig/sentinel.conf 2024-10-02 23:11:08.000000000 +0300
++++ valkey-7.2.7/sentinel.conf 2024-12-20 15:59:42.000000000 +0300
+@@ -1,5 +1,3 @@
+-# Example sentinel.conf
+-
+ # By default protected mode is disabled in sentinel mode. Sentinel is reachable
+ # from interfaces different than localhost. Make sure the sentinel instance is
+ # protected from the outside world via firewalling or other means.
+@@ -17,7 +15,7 @@
+ # When running daemonized, Valkey Sentinel writes a pid file in
+ # /var/run/valkey-sentinel.pid by default. You can specify a custom pid file
+ # location here.
+-pidfile /var/run/valkey-sentinel.pid
++pidfile /var/run/valkey/sentinel.pid
+
+ # Specify the server verbosity level.
+ # This can be one of:
+@@ -31,7 +29,7 @@
+ # Specify the log file name. Also the empty string can be used to force
+ # Sentinel to log on the standard output. Note that if you use standard
+ # output for logging but daemonize, logs will be sent to /dev/null
+-logfile ""
++logfile /var/log/valkey/sentinel.log
+
+ # To enable logging to the system logger, just set 'syslog-enabled' to yes,
+ # and optionally update the other syslog parameters to suit your needs.
diff --git a/specs/valkey/SOURCES/sentinel-80-config.patch b/specs/valkey/SOURCES/sentinel-80-config.patch
new file mode 100644
index 000000000..f46091c0e
--- /dev/null
+++ b/specs/valkey/SOURCES/sentinel-80-config.patch
@@ -0,0 +1,27 @@
+diff --color -urN valkey-8.0.1-orig/sentinel.conf valkey-8.0.1/sentinel.conf
+--- valkey-8.0.1-orig/sentinel.conf 2024-10-03 00:09:21.000000000 +0300
++++ valkey-8.0.1/sentinel.conf 2024-12-24 15:57:14.000000000 +0300
+@@ -1,5 +1,3 @@
+-# Example sentinel.conf
+-
+ # By default protected mode is disabled in sentinel mode. Sentinel is reachable
+ # from interfaces different than localhost. Make sure the sentinel instance is
+ # protected from the outside world via firewalling or other means.
+@@ -17,7 +15,7 @@
+ # When running daemonized, Valkey Sentinel writes a pid file in
+ # /var/run/valkey-sentinel.pid by default. You can specify a custom pid file
+ # location here.
+-pidfile /var/run/valkey-sentinel.pid
++pidfile /var/run/valkey/sentinel.pid
+
+ # Specify the server verbosity level.
+ # This can be one of:
+@@ -31,7 +29,7 @@
+ # Specify the log file name. Also the empty string can be used to force
+ # Sentinel to log on the standard output. Note that if you use standard
+ # output for logging but daemonize, logs will be sent to /dev/null
+-logfile ""
++logfile /var/log/valkey/sentinel.log
+
+ # To enable logging to the system logger, just set 'syslog-enabled' to yes,
+ # and optionally update the other syslog parameters to suit your needs.
diff --git a/specs/valkey/SOURCES/sentinel-limit-systemd b/specs/valkey/SOURCES/sentinel-limit-systemd
new file mode 100644
index 000000000..8003c2fc4
--- /dev/null
+++ b/specs/valkey/SOURCES/sentinel-limit-systemd
@@ -0,0 +1,7 @@
+# If you need to change max open file limit
+# for example, when you change maxclient in configuration
+# you can change the LimitNOFILE value below
+# see "man systemd.exec" for information
+
+[Service]
+LimitNOFILE=10240
diff --git a/specs/valkey/SOURCES/sentinel.logrotate b/specs/valkey/SOURCES/sentinel.logrotate
new file mode 100644
index 000000000..4b553903a
--- /dev/null
+++ b/specs/valkey/SOURCES/sentinel.logrotate
@@ -0,0 +1,9 @@
+/var/log/redis/sentinel.log {
+ weekly
+ rotate 10
+ copytruncate
+ delaycompress
+ compress
+ notifempty
+ missingok
+}
diff --git a/specs/valkey/SOURCES/sentinel.service b/specs/valkey/SOURCES/sentinel.service
new file mode 100644
index 000000000..4b41cf1d2
--- /dev/null
+++ b/specs/valkey/SOURCES/sentinel.service
@@ -0,0 +1,14 @@
+[Unit]
+Description=Valkey Sentinel
+Documentation=https://valkey.io/docs
+After=syslog.target network.target
+
+[Service]
+ExecStart=/usr/bin/valkey-sentinel /etc/sentinel.conf --daemonize no
+KillSignal=SIGTERM
+User=valkey
+Group=valkey
+PIDFile=/var/run/valkey/sentinel.pid
+
+[Install]
+WantedBy=multi-user.target
diff --git a/specs/valkey/SOURCES/valkey-72-config.patch b/specs/valkey/SOURCES/valkey-72-config.patch
new file mode 100644
index 000000000..e72acb27a
--- /dev/null
+++ b/specs/valkey/SOURCES/valkey-72-config.patch
@@ -0,0 +1,57 @@
+diff --color -urN valkey-7.2.7-orig/valkey.conf valkey-7.2.7/valkey.conf
+--- valkey-7.2.7-orig/valkey.conf 2024-10-02 23:11:08.000000000 +0300
++++ valkey-7.2.7/valkey.conf 2024-12-20 15:56:04.000000000 +0300
+@@ -84,7 +84,7 @@
+ # You will also need to set a password unless you explicitly disable protected
+ # mode.
+ # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+-bind 127.0.0.1 -::1
++# bind 127.0.0.1 -::1
+
+ # By default, outgoing connections (from replica to master, from Sentinel to
+ # instances, cluster bus, etc.) are not bound to a specific local address. In
+@@ -335,7 +335,7 @@
+ #
+ # Note that on modern Linux systems "/run/valkey.pid" is more conforming
+ # and should be used instead.
+-pidfile /var/run/valkey_6379.pid
++pidfile /var/run/valkey/valkey.pid
+
+ # Specify the server verbosity level.
+ # This can be one of:
+@@ -349,7 +349,7 @@
+ # Specify the log file name. Also the empty string can be used to force
+ # the server to log on the standard output. Note that if you use standard
+ # output for logging but daemonize, logs will be sent to /dev/null
+-logfile ""
++logfile /var/log/valkey/valkey.log
+
+ # To enable logging to the system logger, just set 'syslog-enabled' to yes,
+ # and optionally update the other syslog parameters to suit your needs.
+@@ -374,7 +374,7 @@
+ # Set the number of databases. The default database is DB 0, you can select
+ # a different one on a per-connection basis using SELECT where
+ # dbid is a number between 0 and 'databases'-1
+-databases 16
++databases 96
+
+ # By default the server shows an ASCII art logo only when started to log to the
+ # standard output and if the standard output is a TTY and syslog logging is
+@@ -433,7 +433,7 @@
+ #
+ # You can set these explicitly by uncommenting the following line.
+ #
+-# save 3600 1 300 100 60 10000
++save 3600 1 300 100 60 10000
+
+ # By default the server will stop accepting writes if RDB snapshots are enabled
+ # (at least one save point) and the latest background save failed.
+@@ -504,7 +504,7 @@
+ # The Append Only File will also be created inside this directory.
+ #
+ # Note that you must specify a directory here, not a file name.
+-dir ./
++dir /var/lib/valkey/
+
+ ################################# REPLICATION #################################
+
diff --git a/specs/valkey/SOURCES/valkey-80-config.patch b/specs/valkey/SOURCES/valkey-80-config.patch
new file mode 100644
index 000000000..38c069133
--- /dev/null
+++ b/specs/valkey/SOURCES/valkey-80-config.patch
@@ -0,0 +1,57 @@
+diff --color -urN valkey-8.0.1-orig/valkey.conf valkey-8.0.1/valkey.conf
+--- valkey-8.0.1-orig/valkey.conf 2024-10-03 00:09:21.000000000 +0300
++++ valkey-8.0.1/valkey.conf 2024-12-24 15:53:44.000000000 +0300
+@@ -85,7 +85,7 @@
+ # You will also need to set a password unless you explicitly disable protected
+ # mode.
+ # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+-bind 127.0.0.1 -::1
++# bind 127.0.0.1 -::1
+
+ # By default, outgoing connections (from replica to primary, from Sentinel to
+ # instances, cluster bus, etc.) are not bound to a specific local address. In
+@@ -337,7 +337,7 @@
+ #
+ # Note that on modern Linux systems "/run/valkey.pid" is more conforming
+ # and should be used instead.
+-pidfile /var/run/valkey_6379.pid
++pidfile /var/run/valkey/valkey.pid
+
+ # Specify the server verbosity level.
+ # This can be one of:
+@@ -351,7 +351,7 @@
+ # Specify the log file name. Also the empty string can be used to force
+ # the server to log on the standard output. Note that if you use standard
+ # output for logging but daemonize, logs will be sent to /dev/null
+-logfile ""
++logfile /var/log/valkey/valkey.log
+
+ # To enable logging to the system logger, just set 'syslog-enabled' to yes,
+ # and optionally update the other syslog parameters to suit your needs.
+@@ -376,7 +376,7 @@
+ # Set the number of databases. The default database is DB 0, you can select
+ # a different one on a per-connection basis using SELECT where
+ # dbid is a number between 0 and 'databases'-1
+-databases 16
++databases 96
+
+ # By default the server shows an ASCII art logo only when started to log to the
+ # standard output and if the standard output is a TTY and syslog logging is
+@@ -452,7 +452,7 @@
+ #
+ # You can set these explicitly by uncommenting the following line.
+ #
+-# save 3600 1 300 100 60 10000
++save 3600 1 300 100 60 10000
+
+ # By default the server will stop accepting writes if RDB snapshots are enabled
+ # (at least one save point) and the latest background save failed.
+@@ -526,7 +526,7 @@
+ # 'cluster-config-file' configuration directive is a relative path.
+ #
+ # Note that you must specify a directory here, not a file name.
+-dir ./
++dir /var/lib/valkey/
+
+ ################################# REPLICATION #################################
+
diff --git a/specs/valkey/SOURCES/valkey-limit-systemd b/specs/valkey/SOURCES/valkey-limit-systemd
new file mode 100644
index 000000000..8003c2fc4
--- /dev/null
+++ b/specs/valkey/SOURCES/valkey-limit-systemd
@@ -0,0 +1,7 @@
+# If you need to change max open file limit
+# for example, when you change maxclient in configuration
+# you can change the LimitNOFILE value below
+# see "man systemd.exec" for information
+
+[Service]
+LimitNOFILE=10240
diff --git a/specs/valkey/SOURCES/valkey.logrotate b/specs/valkey/SOURCES/valkey.logrotate
new file mode 100644
index 000000000..f7c19605a
--- /dev/null
+++ b/specs/valkey/SOURCES/valkey.logrotate
@@ -0,0 +1,9 @@
+/var/log/valkey/valkey.log {
+ weekly
+ rotate 10
+ copytruncate
+ delaycompress
+ compress
+ notifempty
+ missingok
+}
diff --git a/specs/valkey/SOURCES/valkey.service b/specs/valkey/SOURCES/valkey.service
new file mode 100644
index 000000000..8cb405888
--- /dev/null
+++ b/specs/valkey/SOURCES/valkey.service
@@ -0,0 +1,17 @@
+[Unit]
+Description=Valkey
+Documentation=https://valkey.io/docs
+After=syslog.target network.target
+
+[Service]
+Type=notify
+ExecStart=/usr/bin/valkey-server /etc/valkey.conf --supervised systemd
+KillSignal=SIGTERM
+User=valkey
+Group=valkey
+PIDFile=/var/run/valkey/valkey.pid
+TimeoutStartSec=15
+TimeoutStopSec=90
+
+[Install]
+WantedBy=multi-user.target
diff --git a/specs/valkey/valkey.spec b/specs/valkey/valkey.spec
new file mode 100644
index 000000000..d6f1ca10f
--- /dev/null
+++ b/specs/valkey/valkey.spec
@@ -0,0 +1,198 @@
+################################################################################
+
+%global crc_check pushd ../SOURCES ; sha512sum -c %{SOURCE100} ; popd
+
+################################################################################
+
+%{!?_without_check: %define _with_check 1}
+
+################################################################################
+
+%define major_ver 7
+%define minor_ver 2
+
+################################################################################
+
+Summary: A persistent key-value database
+Name: valkey
+Version: 7.2.8
+Release: 0%{?dist}
+License: BSD
+Group: Applications/Databases
+URL: https://valkey.io
+
+Source0: https://github.com/valkey-io/%{name}/archive/%{version}.tar.gz
+Source1: %{name}.logrotate
+Source2: sentinel.logrotate
+Source3: %{name}.service
+Source4: sentinel.service
+Source5: %{name}-limit-systemd
+Source6: sentinel-limit-systemd
+
+Source100: checksum.sha512
+
+Patch0: valkey-%{major_ver}%{minor_ver}-config.patch
+Patch1: sentinel-%{major_ver}%{minor_ver}-config.patch
+
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+
+BuildRequires: make gcc tcl systemd-devel
+
+Requires: %{name}-cli >= %{version}
+Requires: logrotate
+
+Requires(pre): shadow-utils
+Requires(post): systemd
+Requires(preun): systemd
+Requires(postun): systemd
+
+Conflicts: redis valkey72
+
+Provides: %{name} = %{version}-%{release}
+Provides: %{name}-server = %{version}-%{release}
+Provides: %{name}-sentinel = %{version}-%{release}
+
+################################################################################
+
+%description
+Valkey is a high-performance data structure server that primarily serves
+key/value workloads. It supports a wide range of native structures and an
+extensible plugin system for adding new data structures and access patterns.
+
+################################################################################
+
+%package cli
+
+Summary: Client for working with Valkey from console
+Group: Applications/Databases
+
+%description cli
+Client for working with Valkey from console
+
+################################################################################
+
+%package devel
+
+Summary: Development header for Valkey module development
+Group: Development/Libraries
+
+Provides: %{name}-static = %{version}-%{release}
+
+%description devel
+Header file required for building loadable Valkey modules.
+
+################################################################################
+
+%prep
+%crc_check
+%autosetup -p1 -n %{name}-%{version}
+
+%build
+export BUILD_WITH_SYSTEMD=yes
+
+%{__make} %{?_smp_mflags} MALLOC=jemalloc
+
+%install
+rm -rf %{buildroot}
+
+%{__make} install PREFIX=%{buildroot}%{_prefix}
+
+install -dm 755 %{buildroot}%{_sysconfdir}
+install -dm 755 %{buildroot}%{_sysconfdir}/logrotate.d
+install -dm 755 %{buildroot}%{_sysconfdir}/sysconfig
+
+install -pm 644 %{SOURCE1} %{buildroot}%{_sysconfdir}/logrotate.d/%{name}
+install -pm 644 %{SOURCE2} %{buildroot}%{_sysconfdir}/logrotate.d/sentinel
+
+install -pm 640 %{name}.conf %{buildroot}%{_sysconfdir}/
+install -pm 640 sentinel.conf %{buildroot}%{_sysconfdir}/
+
+install -dm 755 %{buildroot}%{_localstatedir}/lib/%{name}
+install -dm 755 %{buildroot}%{_localstatedir}/log/%{name}
+install -dm 755 %{buildroot}%{_localstatedir}/run/%{name}
+
+install -dm 755 %{buildroot}%{_unitdir}
+install -dm 755 %{buildroot}%{_sysconfdir}/systemd/system/%{name}.service.d
+install -dm 755 %{buildroot}%{_sysconfdir}/systemd/system/sentinel.service.d
+install -pm 644 %{SOURCE3} %{buildroot}%{_unitdir}/
+install -pm 644 %{SOURCE4} %{buildroot}%{_unitdir}/
+install -pm 644 %{SOURCE5} %{buildroot}%{_sysconfdir}/systemd/system/%{name}.service.d/limit.conf
+install -pm 644 %{SOURCE6} %{buildroot}%{_sysconfdir}/systemd/system/sentinel.service.d/limit.conf
+
+install -dm 755 %{buildroot}%{_includedir}
+install -pm 644 src/redismodule.h %{buildroot}%{_includedir}/redismodule.h
+
+chmod 755 %{buildroot}%{_bindir}/%{name}-*
+
+rm -f %{buildroot}%{_bindir}/%{name}-sentinel
+
+install -dm 755 %{buildroot}%{_sbindir}
+
+ln -sf %{_bindir}/%{name}-server %{buildroot}%{_bindir}/%{name}-sentinel
+ln -sf %{_bindir}/%{name}-server %{buildroot}%{_sbindir}/%{name}-server
+
+%check
+%if %{?_with_check:1}%{?_without_check:0}
+%{__make} %{?_smp_mflags} test
+%{__make} %{?_smp_mflags} test-sentinel
+%endif
+
+%pre
+getent group %{name} &> /dev/null || groupadd -r %{name} &> /dev/null
+getent passwd %{name} &> /dev/null || \
+useradd -r -g %{name} -d %{_sharedstatedir}/%{name} -s /sbin/nologin \
+ -c 'Valkey Server' %{name} &> /dev/null
+
+%post
+if [[ $1 -eq 1 ]] ; then
+ systemctl enable %{name}.service &>/dev/null || :
+fi
+
+%preun
+if [[ $1 -eq 0 ]] ; then
+ systemctl --no-reload disable %{name}.service &>/dev/null || :
+ systemctl --no-reload disable sentinel.service &>/dev/null || :
+ systemctl stop %{name}.service &>/dev/null || :
+ systemctl stop sentinel.service &>/dev/null || :
+fi
+
+%postun
+systemctl daemon-reload &>/dev/null || :
+
+################################################################################
+
+%files
+%defattr(-,root,root,-)
+%doc 00-RELEASENOTES BUGS COPYING README.md
+%attr(-,%{name},%{name}) %config(noreplace) %{_sysconfdir}/*.conf
+%config(noreplace) %{_sysconfdir}/logrotate.d/%{name}
+%config(noreplace) %{_sysconfdir}/logrotate.d/sentinel
+%dir %attr(0755,%{name},root) %{_localstatedir}/lib/%{name}
+%dir %attr(0755,%{name},root) %{_localstatedir}/log/%{name}
+%dir %attr(0755,%{name},root) %{_localstatedir}/run/%{name}
+%{_unitdir}/%{name}.service
+%{_unitdir}/sentinel.service
+%{_sysconfdir}/systemd/system/%{name}.service.d/limit.conf
+%{_sysconfdir}/systemd/system/sentinel.service.d/limit.conf
+%{_bindir}/%{name}-*
+%{_bindir}/redis-*
+%{_sbindir}/%{name}-server
+
+%files cli
+%defattr(-,root,root,-)
+%doc 00-RELEASENOTES BUGS COPYING README.md
+%{_bindir}/%{name}-cli
+
+%files devel
+%doc COPYING
+%defattr(-,root,root,-)
+%{_includedir}/redismodule.h
+
+################################################################################
+
+%changelog
+* Mon Jan 13 2025 Anton Novojilov - 7.2.8-0
+- https://github.com/valkey-io/valkey/releases/tag/7.2.8
+
+* Fri Dec 20 2024 Anton Novojilov - 7.2.7-0
+- https://github.com/valkey-io/valkey/blob/7.2.7/00-RELEASENOTES
diff --git a/specs/valkey/valkey72.spec b/specs/valkey/valkey72.spec
new file mode 100644
index 000000000..02825b32a
--- /dev/null
+++ b/specs/valkey/valkey72.spec
@@ -0,0 +1,199 @@
+################################################################################
+
+%global crc_check pushd ../SOURCES ; sha512sum -c %{SOURCE100} ; popd
+
+################################################################################
+
+%{!?_without_check: %define _with_check 1}
+
+################################################################################
+
+%define realname valkey
+%define major_ver 7
+%define minor_ver 2
+
+################################################################################
+
+Summary: A persistent key-value database
+Name: %{realname}%{major_ver}%{minor_ver}
+Version: 7.2.8
+Release: 0%{?dist}
+License: BSD
+Group: Applications/Databases
+URL: https://valkey.io
+
+Source0: https://github.com/valkey-io/%{realname}/archive/%{version}.tar.gz
+Source1: %{realname}.logrotate
+Source2: sentinel.logrotate
+Source3: %{realname}.service
+Source4: sentinel.service
+Source5: %{realname}-limit-systemd
+Source6: sentinel-limit-systemd
+
+Source100: checksum.sha512
+
+Patch0: %{realname}-%{major_ver}%{minor_ver}-config.patch
+Patch1: sentinel-%{major_ver}%{minor_ver}-config.patch
+
+BuildRoot: %{_tmppath}/%{realname}-%{version}-%{release}-root-%(%{__id_u} -n)
+
+BuildRequires: make gcc tcl systemd-devel
+
+Requires: %{name}-cli >= %{version}
+Requires: logrotate
+
+Requires(pre): shadow-utils
+Requires(post): systemd
+Requires(preun): systemd
+Requires(postun): systemd
+
+Conflicts: redis
+
+Provides: %{name} = %{version}-%{release}
+Provides: %{name}-server = %{version}-%{release}
+Provides: %{name}-sentinel = %{version}-%{release}
+
+################################################################################
+
+%description
+Valkey is a high-performance data structure server that primarily serves
+key/value workloads. It supports a wide range of native structures and an
+extensible plugin system for adding new data structures and access patterns.
+
+################################################################################
+
+%package cli
+
+Summary: Client for working with Valkey from console
+Group: Applications/Databases
+
+%description cli
+Client for working with Valkey from console
+
+################################################################################
+
+%package devel
+
+Summary: Development header for Valkey module development
+Group: Development/Libraries
+
+Provides: %{name}-static = %{version}-%{release}
+
+%description devel
+Header file required for building loadable Valkey modules.
+
+################################################################################
+
+%prep
+%crc_check
+%autosetup -p1 -n %{realname}-%{version}
+
+%build
+export BUILD_WITH_SYSTEMD=yes
+
+%{__make} %{?_smp_mflags} MALLOC=jemalloc
+
+%install
+rm -rf %{buildroot}
+
+%{__make} install PREFIX=%{buildroot}%{_prefix}
+
+install -dm 755 %{buildroot}%{_sysconfdir}
+install -dm 755 %{buildroot}%{_sysconfdir}/logrotate.d
+install -dm 755 %{buildroot}%{_sysconfdir}/sysconfig
+
+install -pm 644 %{SOURCE1} %{buildroot}%{_sysconfdir}/logrotate.d/%{realname}
+install -pm 644 %{SOURCE2} %{buildroot}%{_sysconfdir}/logrotate.d/sentinel
+
+install -pm 640 %{realname}.conf %{buildroot}%{_sysconfdir}/
+install -pm 640 sentinel.conf %{buildroot}%{_sysconfdir}/
+
+install -dm 755 %{buildroot}%{_localstatedir}/lib/%{realname}
+install -dm 755 %{buildroot}%{_localstatedir}/log/%{realname}
+install -dm 755 %{buildroot}%{_localstatedir}/run/%{realname}
+
+install -dm 755 %{buildroot}%{_unitdir}
+install -dm 755 %{buildroot}%{_sysconfdir}/systemd/system/%{realname}.service.d
+install -dm 755 %{buildroot}%{_sysconfdir}/systemd/system/sentinel.service.d
+install -pm 644 %{SOURCE3} %{buildroot}%{_unitdir}/
+install -pm 644 %{SOURCE4} %{buildroot}%{_unitdir}/
+install -pm 644 %{SOURCE5} %{buildroot}%{_sysconfdir}/systemd/system/%{realname}.service.d/limit.conf
+install -pm 644 %{SOURCE6} %{buildroot}%{_sysconfdir}/systemd/system/sentinel.service.d/limit.conf
+
+install -dm 755 %{buildroot}%{_includedir}
+install -pm 644 src/redismodule.h %{buildroot}%{_includedir}/redismodule.h
+
+chmod 755 %{buildroot}%{_bindir}/%{realname}-*
+
+rm -f %{buildroot}%{_bindir}/%{realname}-sentinel
+
+install -dm 755 %{buildroot}%{_sbindir}
+
+ln -sf %{_bindir}/%{realname}-server %{buildroot}%{_bindir}/%{realname}-sentinel
+ln -sf %{_bindir}/%{realname}-server %{buildroot}%{_sbindir}/%{realname}-server
+
+%check
+%if %{?_with_check:1}%{?_without_check:0}
+%{__make} %{?_smp_mflags} test
+%{__make} %{?_smp_mflags} test-sentinel
+%endif
+
+%pre
+getent group %{realname} &> /dev/null || groupadd -r %{realname} &> /dev/null
+getent passwd %{realname} &> /dev/null || \
+useradd -r -g %{realname} -d %{_sharedstatedir}/%{realname} -s /sbin/nologin \
+ -c 'Valkey Server' %{realname} &> /dev/null
+
+%post
+if [[ $1 -eq 1 ]] ; then
+ systemctl enable %{realname}.service &>/dev/null || :
+fi
+
+%preun
+if [[ $1 -eq 0 ]] ; then
+ systemctl --no-reload disable %{realname}.service &>/dev/null || :
+ systemctl --no-reload disable sentinel.service &>/dev/null || :
+ systemctl stop %{realname}.service &>/dev/null || :
+ systemctl stop sentinel.service &>/dev/null || :
+fi
+
+%postun
+systemctl daemon-reload &>/dev/null || :
+
+################################################################################
+
+%files
+%defattr(-,root,root,-)
+%doc 00-RELEASENOTES BUGS COPYING README.md
+%attr(-,%{realname},%{realname}) %config(noreplace) %{_sysconfdir}/*.conf
+%config(noreplace) %{_sysconfdir}/logrotate.d/%{realname}
+%config(noreplace) %{_sysconfdir}/logrotate.d/sentinel
+%dir %attr(0755,%{realname},root) %{_localstatedir}/lib/%{realname}
+%dir %attr(0755,%{realname},root) %{_localstatedir}/log/%{realname}
+%dir %attr(0755,%{realname},root) %{_localstatedir}/run/%{realname}
+%{_unitdir}/%{realname}.service
+%{_unitdir}/sentinel.service
+%{_sysconfdir}/systemd/system/%{realname}.service.d/limit.conf
+%{_sysconfdir}/systemd/system/sentinel.service.d/limit.conf
+%{_bindir}/%{realname}-*
+%{_bindir}/redis-*
+%{_sbindir}/%{realname}-server
+
+%files cli
+%defattr(-,root,root,-)
+%doc 00-RELEASENOTES BUGS COPYING README.md
+%{_bindir}/%{realname}-cli
+
+%files devel
+%doc COPYING
+%defattr(-,root,root,-)
+%{_includedir}/redismodule.h
+
+################################################################################
+
+%changelog
+* Mon Jan 13 2025 Anton Novojilov - 7.2.8-0
+- https://github.com/valkey-io/valkey/releases/tag/7.2.8
+
+* Fri Dec 20 2024 Anton Novojilov - 7.2.7-0
+- https://github.com/valkey-io/valkey/blob/7.2.7/00-RELEASENOTES
diff --git a/specs/valkey/valkey80.spec b/specs/valkey/valkey80.spec
new file mode 100644
index 000000000..e6c0a3c6d
--- /dev/null
+++ b/specs/valkey/valkey80.spec
@@ -0,0 +1,199 @@
+################################################################################
+
+%global crc_check pushd ../SOURCES ; sha512sum -c %{SOURCE100} ; popd
+
+################################################################################
+
+%{!?_without_check: %define _with_check 1}
+
+################################################################################
+
+%define realname valkey
+%define major_ver 8
+%define minor_ver 0
+
+################################################################################
+
+Summary: A persistent key-value database
+Name: %{realname}%{major_ver}%{minor_ver}
+Version: 8.0.2
+Release: 0%{?dist}
+License: BSD
+Group: Applications/Databases
+URL: https://valkey.io
+
+Source0: https://github.com/valkey-io/%{realname}/archive/%{version}.tar.gz
+Source1: %{realname}.logrotate
+Source2: sentinel.logrotate
+Source3: %{realname}.service
+Source4: sentinel.service
+Source5: %{realname}-limit-systemd
+Source6: sentinel-limit-systemd
+
+Source100: checksum.sha512
+
+Patch0: %{realname}-%{major_ver}%{minor_ver}-config.patch
+Patch1: sentinel-%{major_ver}%{minor_ver}-config.patch
+
+BuildRoot: %{_tmppath}/%{realname}-%{version}-%{release}-root-%(%{__id_u} -n)
+
+BuildRequires: make gcc tcl systemd-devel
+
+Requires: %{name}-cli >= %{version}
+Requires: logrotate
+
+Requires(pre): shadow-utils
+Requires(post): systemd
+Requires(preun): systemd
+Requires(postun): systemd
+
+Conflicts: redis
+
+Provides: %{name} = %{version}-%{release}
+Provides: %{name}-server = %{version}-%{release}
+Provides: %{name}-sentinel = %{version}-%{release}
+
+################################################################################
+
+%description
+Valkey is a high-performance data structure server that primarily serves
+key/value workloads. It supports a wide range of native structures and an
+extensible plugin system for adding new data structures and access patterns.
+
+################################################################################
+
+%package cli
+
+Summary: Client for working with Valkey from console
+Group: Applications/Databases
+
+%description cli
+Client for working with Valkey from console
+
+################################################################################
+
+%package devel
+
+Summary: Development header for Valkey module development
+Group: Development/Libraries
+
+Provides: %{name}-static = %{version}-%{release}
+
+%description devel
+Header file required for building loadable Valkey modules.
+
+################################################################################
+
+%prep
+%crc_check
+%autosetup -p1 -n %{realname}-%{version}
+
+%build
+export BUILD_WITH_SYSTEMD=yes
+
+%{__make} %{?_smp_mflags} MALLOC=jemalloc
+
+%install
+rm -rf %{buildroot}
+
+%{__make} install PREFIX=%{buildroot}%{_prefix}
+
+install -dm 755 %{buildroot}%{_sysconfdir}
+install -dm 755 %{buildroot}%{_sysconfdir}/logrotate.d
+install -dm 755 %{buildroot}%{_sysconfdir}/sysconfig
+
+install -pm 644 %{SOURCE1} %{buildroot}%{_sysconfdir}/logrotate.d/%{realname}
+install -pm 644 %{SOURCE2} %{buildroot}%{_sysconfdir}/logrotate.d/sentinel
+
+install -pm 640 %{realname}.conf %{buildroot}%{_sysconfdir}/
+install -pm 640 sentinel.conf %{buildroot}%{_sysconfdir}/
+
+install -dm 755 %{buildroot}%{_localstatedir}/lib/%{realname}
+install -dm 755 %{buildroot}%{_localstatedir}/log/%{realname}
+install -dm 755 %{buildroot}%{_localstatedir}/run/%{realname}
+
+install -dm 755 %{buildroot}%{_unitdir}
+install -dm 755 %{buildroot}%{_sysconfdir}/systemd/system/%{realname}.service.d
+install -dm 755 %{buildroot}%{_sysconfdir}/systemd/system/sentinel.service.d
+install -pm 644 %{SOURCE3} %{buildroot}%{_unitdir}/
+install -pm 644 %{SOURCE4} %{buildroot}%{_unitdir}/
+install -pm 644 %{SOURCE5} %{buildroot}%{_sysconfdir}/systemd/system/%{realname}.service.d/limit.conf
+install -pm 644 %{SOURCE6} %{buildroot}%{_sysconfdir}/systemd/system/sentinel.service.d/limit.conf
+
+install -dm 755 %{buildroot}%{_includedir}
+install -pm 644 src/redismodule.h %{buildroot}%{_includedir}/redismodule.h
+
+chmod 755 %{buildroot}%{_bindir}/%{realname}-*
+
+rm -f %{buildroot}%{_bindir}/%{realname}-sentinel
+
+install -dm 755 %{buildroot}%{_sbindir}
+
+ln -sf %{_bindir}/%{realname}-server %{buildroot}%{_bindir}/%{realname}-sentinel
+ln -sf %{_bindir}/%{realname}-server %{buildroot}%{_sbindir}/%{realname}-server
+
+%check
+%if %{?_with_check:1}%{?_without_check:0}
+%{__make} %{?_smp_mflags} test
+%{__make} %{?_smp_mflags} test-sentinel
+%endif
+
+%pre
+getent group %{realname} &> /dev/null || groupadd -r %{realname} &> /dev/null
+getent passwd %{realname} &> /dev/null || \
+useradd -r -g %{realname} -d %{_sharedstatedir}/%{realname} -s /sbin/nologin \
+ -c 'Valkey Server' %{realname} &> /dev/null
+
+%post
+if [[ $1 -eq 1 ]] ; then
+ systemctl enable %{realname}.service &>/dev/null || :
+fi
+
+%preun
+if [[ $1 -eq 0 ]] ; then
+ systemctl --no-reload disable %{realname}.service &>/dev/null || :
+ systemctl --no-reload disable sentinel.service &>/dev/null || :
+ systemctl stop %{realname}.service &>/dev/null || :
+ systemctl stop sentinel.service &>/dev/null || :
+fi
+
+%postun
+systemctl daemon-reload &>/dev/null || :
+
+################################################################################
+
+%files
+%defattr(-,root,root,-)
+%doc 00-RELEASENOTES COPYING README.md
+%attr(-,%{realname},%{realname}) %config(noreplace) %{_sysconfdir}/*.conf
+%config(noreplace) %{_sysconfdir}/logrotate.d/%{realname}
+%config(noreplace) %{_sysconfdir}/logrotate.d/sentinel
+%dir %attr(0755,%{realname},root) %{_localstatedir}/lib/%{realname}
+%dir %attr(0755,%{realname},root) %{_localstatedir}/log/%{realname}
+%dir %attr(0755,%{realname},root) %{_localstatedir}/run/%{realname}
+%{_unitdir}/%{realname}.service
+%{_unitdir}/sentinel.service
+%{_sysconfdir}/systemd/system/%{realname}.service.d/limit.conf
+%{_sysconfdir}/systemd/system/sentinel.service.d/limit.conf
+%{_bindir}/%{realname}-*
+%{_bindir}/redis-*
+%{_sbindir}/%{realname}-server
+
+%files cli
+%defattr(-,root,root,-)
+%doc 00-RELEASENOTES COPYING README.md
+%{_bindir}/%{realname}-cli
+
+%files devel
+%doc COPYING
+%defattr(-,root,root,-)
+%{_includedir}/redismodule.h
+
+################################################################################
+
+%changelog
+* Mon Jan 13 2025 Anton Novojilov - 8.0.2-0
+- https://github.com/valkey-io/valkey/releases/tag/8.0.2
+
+* Tue Dec 24 2024 Anton Novojilov - 8.0.1-0
+- https://github.com/valkey-io/valkey/blob/8.0.1/00-RELEASENOTES
diff --git a/specs/vips.spec b/specs/vips.spec
index 1fba24252..87bf2187d 100644
--- a/specs/vips.spec
+++ b/specs/vips.spec
@@ -6,7 +6,7 @@
Name: vips
Summary: C/C++ library for processing large images
-Version: 8.15.3
+Version: 8.16.0
Release: 0%{?dist}
License: LGPLv2+
Group: System Environment/Libraries
@@ -155,6 +155,9 @@ rm -rf %{buildroot}
################################################################################
%changelog
+* Fri Jan 24 2025 Anton Novojilov - 8.16.0-0
+- https://github.com/libvips/libvips/releases/tag/v8.16.0
+
* Thu Aug 15 2024 Anton Novojilov - 8.15.3-0
- https://github.com/libvips/libvips/releases/tag/v8.15.3
diff --git a/specs/xxhash.spec b/specs/xxhash.spec
index 64be8cd6c..e0859afb4 100644
--- a/specs/xxhash.spec
+++ b/specs/xxhash.spec
@@ -18,7 +18,7 @@
Summary: Extremely fast hash algorithm
Name: xxhash
-Version: 0.8.2
+Version: 0.8.3
Release: 0%{?dist}
License: BSD-2-Clause AND GPL-2.0-or-later
Group: System Environment/Libraries
@@ -143,5 +143,8 @@ rm -rf %{buildroot}
################################################################################
%changelog
+* Fri Jan 24 2025 Anton Novojilov - 0.8.3-0
+- https://github.com/Cyan4973/xxHash/releases/tag/v0.8.3
+
* Sat Oct 28 2023 Anton Novojilov - 0.8.2-0
- Initial build for kaos repository
diff --git a/specs/yasm.spec b/specs/yasm.spec
index 2438d3aa7..be20abdac 100644
--- a/specs/yasm.spec
+++ b/specs/yasm.spec
@@ -6,9 +6,9 @@ Version: 1.3.0
Release: 0%{?dist}
License: BSD and (GPLv2+ or Artistic or LGPLv2+) and LGPLv2
Group: Development/Languages
-URL: https://yasm.tortall.net
+URL: https://github.com/yasm/yasm
-Source0: https://www.tortall.net/projects/%{name}/releases/%{name}-%{version}.tar.gz
+Source0: https://github.com/yasm/yasm/releases/download/v%{version}/%{name}-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
diff --git a/tests/7z/p7zip.recipe b/tests/7z/p7zip.recipe
deleted file mode 100644
index f2f976a16..000000000
--- a/tests/7z/p7zip.recipe
+++ /dev/null
@@ -1,33 +0,0 @@
-# Bibop recipe for p7zip
-# See more: https://kaos.sh/bibop
-
-pkg p7zip p7zip-plugins
-
-fast-finish yes
-
-command "-" "Check environment"
- app 7z
- app 7za
-
-command "-" "Check libexec"
- exist /usr/libexec/p7zip/7z
- exist /usr/libexec/p7zip/7z.so
- exist /usr/libexec/p7zip/7za
- exist /usr/libexec/p7zip/7zCon.sfx
- exist /usr/libexec/p7zip/Codecs/Rar.so
-
- mode /usr/libexec/p7zip/7z 755
- mode /usr/libexec/p7zip/7z.so 755
- mode /usr/libexec/p7zip/7za 755
- mode /usr/libexec/p7zip/7zCon.sfx 755
- mode /usr/libexec/p7zip/Codecs/Rar.so 755
-
-command "7za x test.7z" "Unpack test file"
- exit 0
- exist test.txt
- !empty test.txt
-
-command "7za a -mx=1 test2.7z test.txt" "Pack test file"
- exit 0
- exist test2.7z
- !empty test2.7z
diff --git a/tests/nodejs/nodejs-el9.recipe b/tests/nodejs/nodejs-el9.recipe
deleted file mode 120000
index 1d3796ade..000000000
--- a/tests/nodejs/nodejs-el9.recipe
+++ /dev/null
@@ -1 +0,0 @@
-nodejs-el8.recipe
\ No newline at end of file
diff --git a/tests/nodejs/nodejs-el8.recipe b/tests/nodejs/nodejs20.recipe
similarity index 77%
rename from tests/nodejs/nodejs-el8.recipe
rename to tests/nodejs/nodejs20.recipe
index 150b8545a..680159322 100644
--- a/tests/nodejs/nodejs-el8.recipe
+++ b/tests/nodejs/nodejs20.recipe
@@ -1,7 +1,7 @@
-# Bibop recipe for NodeJS
+# Bibop recipe for NodeJS 20.x
# See more: https://kaos.sh/bibop
-pkg nodejs nodejs-devel
+pkg nodejs20 nodejs20-devel
fast-finish yes
diff --git a/tests/nodejs/nodejs22.recipe b/tests/nodejs/nodejs22.recipe
new file mode 100644
index 000000000..141be5322
--- /dev/null
+++ b/tests/nodejs/nodejs22.recipe
@@ -0,0 +1,15 @@
+# Bibop recipe for NodeJS 22.x
+# See more: https://kaos.sh/bibop
+
+pkg nodejs22 nodejs22-devel
+
+fast-finish yes
+
+command "-" "Check environment"
+ app node
+ app npm
+ app npx
+
+command "node test.js" "Execute basic script"
+ exit 0
+ output-contains "NODE WORKS"
diff --git a/tests/pgbouncer/pgbouncer.recipe b/tests/pgbouncer/pgbouncer.recipe
index 089636f4c..3ab0df82e 100644
--- a/tests/pgbouncer/pgbouncer.recipe
+++ b/tests/pgbouncer/pgbouncer.recipe
@@ -12,6 +12,7 @@ var config_dir /etc/pgbouncer
var service_config {config_dir}/pgbouncer.ini
var users_list {config_dir}/userlist.txt
var logrotate_config /etc/logrotate.d/pgbouncer
+var log_file /var/log/pgbouncer/pgbouncer.log
var default_port 6432
var postgres_version 12
@@ -78,12 +79,26 @@ command "systemctl restart {service_name}" "Restart pgbouncer daemon"
wait-service {service_name} 5
connect tcp :{default_port}
+command "systemctl status {service_name}" "Check status of pgbouncer daemon"
+ expect "active (running)"
+
command "psql 'postgresql://pgbtest:Test1234!@127.0.0.1:6432/pgbtest' -t -c 'SELECT * FROM test WHERE id = 2;'" "Select from DB using pgbouncer"
exit 0
output-contains "2 | 1234"
-command "systemctl status {service_name}" "Check status of pgbouncer daemon"
- expect "active (running)"
+command "-" "Clean pgbouncer log before reloading configuration"
+ truncate {log_file}
+
+command "systemctl reload {service_name}" "Reload pgbouncer daemon configuration"
+ wait 1
+ connect tcp :{default_port}
+
+command "-" "Check if log file contains record about reloading configuration"
+ file-contains {log_file} "LOG got SIGHUP, re-reading config"
+
+command "psql 'postgresql://pgbtest:Test1234!@127.0.0.1:6432/pgbtest' -t -c 'SELECT * FROM test WHERE id = 2;'" "Select from DB using pgbouncer"
+ exit 0
+ output-contains "2 | 1234"
command "systemctl stop {service_name}" "Stop pgbouncer daemon"
!wait-service {service_name} 5
@@ -98,4 +113,5 @@ command "systemctl stop {postgres_service}" "Stop PostgreSQL server"
command:teardown "-" "Data cleanup"
backup-restore {service_config}
backup-restore {users_list}
+ truncate {log_file}
cleanup {postgres_data_dir}/data
diff --git a/tests/postgresql/postgresql17-libs.recipe b/tests/postgresql/postgresql17-libs.recipe
new file mode 100644
index 000000000..1ca333edf
--- /dev/null
+++ b/tests/postgresql/postgresql17-libs.recipe
@@ -0,0 +1,54 @@
+# Bibop recipe for PostgreSQL 17 Libraries
+# See more: https://kaos.sh/bibop
+
+pkg gcc postgresql17-devel postgresql17-libs
+
+var version 17
+var install_dir /usr/pgsql-{version}
+var lib_dir {install_dir}/lib
+var include_dir {install_dir}/include
+
+var libpq_linking_flags "-lpq"
+var libpgtypes_linking_flags "-lpgtypes"
+var libecpg_linking_flags "-lecpg"
+var libecpg_compat_linking_flags "-lecpg_compat"
+
+command "-" "Check development environment"
+ lib-loaded libecpg.so.*
+ lib-loaded libecpg_compat.so.*
+ lib-loaded libpgtypes.so.*
+ lib-loaded libpq.so.*
+ lib-loaded libpqwalreceiver.so
+
+ lib-config libecpg_compat
+ lib-config libecpg
+ lib-config libpgtypes
+ lib-config libpq
+
+command "gcc -o test_libpq_bin -I {include_dir} -L {lib_dir} {libpq_linking_flags} test_libpq.c" "Compile binary with libpq"
+ exit 0
+ exist test_libpq_bin
+
++command "./test_libpq_bin" "Execute built binary"
+ exit 0
+
+command "gcc -o test_libpgtypes_bin -I {include_dir} -L {lib_dir} {libpgtypes_linking_flags} test_libpgtypes.c" "Compile binary with libpgtypes"
+ exit 0
+ exist test_libpgtypes_bin
+
++command "./test_libpgtypes_bin" "Execute built binary"
+ exit 0
+
+command "gcc -o test_libecpg_bin -I {include_dir} -L {lib_dir} {libecpg_linking_flags} test_libecpg.c" "Compile binary with libecpg"
+ exit 0
+ exist test_libecpg_bin
+
++command "./test_libecpg_bin" "Execute built binary"
+ exit 0
+
+command "gcc -o test_libecpg_compat_bin -I {include_dir} -L {lib_dir} {libecpg_compat_linking_flags} test_libecpg_compat.c" "Compile binary with libecpg_compat"
+ exit 0
+ exist test_libecpg_compat_bin
+
++command "./test_libecpg_compat_bin" "Execute built binary"
+ exit 0
diff --git a/tests/postgresql/postgresql17.recipe b/tests/postgresql/postgresql17.recipe
new file mode 100644
index 000000000..aabb0d111
--- /dev/null
+++ b/tests/postgresql/postgresql17.recipe
@@ -0,0 +1,243 @@
+# Bibop recipe for PostgreSQL 17
+# See more: https://kaos.sh/bibop
+
+pkg postgresql17-contrib postgresql17-devel postgresql17-docs postgresql17-libs postgresql17-llvmjit postgresql17-plperl postgresql17-plpython3 postgresql17-pltcl postgresql17-server postgresql17-test
+
+require-root yes
+unsafe-actions yes
+
+var version 17
+var service_name postgresql-{version}
+var service_user postgres
+var service_group postgres
+var sysconfig /etc/sysconfig/{service_name}
+var install_dir /usr/pgsql-{version}
+var lib_dir {install_dir}/lib
+var state_dir /var/lib/pgsql
+var data_dir {state_dir}/{version}
+var pid_file /var/run/postgresql{version}.pid
+var port 5432
+
+var wait_fs 15
+var wait_connect 15
+
+var python3_lib libpython{PYTHON3_VERSION}*
+var perl_lib libperl.*
+var tcl_lib libtcl8.*
+
+var test_data_dir {WORKDIR}/db{version}
+
+## ENVIRONMENT #################################################################
+
+command "-" "Check environment"
+ app psql
+ app pg_dump
+ app pg_config
+
+ service-present {service_name}
+
+ user-exist {service_user}
+ user-id {service_user} 26
+ group-exist {service_group}
+
+ exist /etc/sysconfig/{service_name}
+ mode /etc/sysconfig/{service_name} 644
+ exist /etc/init.d/{service_name}
+ mode /etc/init.d/{service_name} 755
+
+command "-" "Check configuration files for external systems"
+ exist /etc/pam.d/postgresql{version}
+ mode /etc/pam.d/postgresql{version} 644
+
+ exist /usr/lib/tmpfiles.d/postgresql-{version}.conf
+ mode /usr/lib/tmpfiles.d/postgresql-{version}.conf 644
+
+command "-" "Check default data directory"
+ exist {data_dir}/backups
+ exist {data_dir}/data
+ owner {data_dir}/data {service_user}
+ mode {data_dir}/data 700
+
+command "-" "Check binaries"
+ exist {install_dir}/bin/createdb
+ exist {install_dir}/bin/createuser
+ exist {install_dir}/bin/dropdb
+ exist {install_dir}/bin/dropuser
+ exist {install_dir}/bin/initdb
+ exist {install_dir}/bin/pg_config
+ exist {install_dir}/bin/pg_ctl
+ exist {install_dir}/bin/pg_dump
+ exist {install_dir}/bin/pg_dumpall
+ exist {install_dir}/bin/pg_restore
+ exist {install_dir}/bin/postgres
+ exist {install_dir}/bin/psql
+
+ mode {install_dir}/bin/createdb 755
+ mode {install_dir}/bin/createuser 755
+ mode {install_dir}/bin/dropdb 755
+ mode {install_dir}/bin/dropuser 755
+ mode {install_dir}/bin/initdb 755
+ mode {install_dir}/bin/pg_config 755
+ mode {install_dir}/bin/pg_ctl 755
+ mode {install_dir}/bin/pg_dump 755
+ mode {install_dir}/bin/pg_dumpall 755
+ mode {install_dir}/bin/pg_restore 755
+ mode {install_dir}/bin/postgres 755
+ mode {install_dir}/bin/psql 755
+
+command "-" "Check bash_profile"
+ exist {install_dir}/share/bash_profile
+ mode {install_dir}/share/bash_profile 700
+ owner {install_dir}/share/bash_profile {service_user}:{service_group}
+
+ link {state_dir}/.bash_profile {install_dir}/share/bash_profile
+
+command "-" "Check development environment"
+ exist {install_dir}/include/libpq-fe.h
+ exist {install_dir}/include/pgtypes.h
+
+ lib-loaded libecpg.so.*
+ lib-loaded libecpg_compat.so.*
+ lib-loaded libpgtypes.so.*
+ lib-loaded libpq.so.*
+ lib-loaded libpqwalreceiver.so
+
+ lib-config libecpg_compat
+ lib-config libecpg
+ lib-config libpgtypes
+ lib-config libpq
+
+command "-" "Check symlinks linker and pkgconfig configs"
+ exist /etc/ld.so.conf.d/postgresql-pgdg-libs.conf
+ exist {LIBDIR}/pkgconfig/libecpg_compat.pc
+ exist {LIBDIR}/pkgconfig/libecpg.pc
+ exist {LIBDIR}/pkgconfig/libpgtypes.pc
+ exist {LIBDIR}/pkgconfig/libpq.pc
+
+ link /etc/ld.so.conf.d/postgresql-pgdg-libs.conf {install_dir}/share/postgresql-{version}-libs.conf
+ link {LIBDIR}/pkgconfig/libecpg_compat.pc {install_dir}/lib/pkgconfig/libecpg_compat.pc
+ link {LIBDIR}/pkgconfig/libecpg.pc {install_dir}/lib/pkgconfig/libecpg.pc
+ link {LIBDIR}/pkgconfig/libpgtypes.pc {install_dir}/lib/pkgconfig/libpgtypes.pc
+ link {LIBDIR}/pkgconfig/libpq.pc {install_dir}/lib/pkgconfig/libpq.pc
+
+command "-" "Check LLVM Bitcode"
+ exist {lib_dir}/bitcode
+ exist {lib_dir}/llvmjit.so
+
+ dir {lib_dir}/bitcode
+ !empty-dir {lib_dir}/bitcode
+
+command "-" "Check PL/Python3U"
+ exist {lib_dir}/hstore_plpython3.so
+ exist {lib_dir}/jsonb_plpython3.so
+ exist {lib_dir}/ltree_plpython3.so
+ exist {lib_dir}/plpython3.so
+
+ lib-linked {lib_dir}/hstore_plpython3.so {python3_lib}
+ lib-linked {lib_dir}/jsonb_plpython3.so {python3_lib}
+ lib-linked {lib_dir}/ltree_plpython3.so {python3_lib}
+ lib-linked {lib_dir}/plpython3.so {python3_lib}
+
+command "-" "Check PL/PerlU"
+ exist {lib_dir}/bool_plperl.so
+ exist {lib_dir}/hstore_plperl.so
+ exist {lib_dir}/plperl.so
+
+ lib-linked {lib_dir}/bool_plperl.so {perl_lib}
+ lib-linked {lib_dir}/hstore_plperl.so {perl_lib}
+ lib-linked {lib_dir}/plperl.so {perl_lib}
+
+command "-" "Check PL/PerlU"
+ exist {lib_dir}/pltcl.so
+
+ lib-linked {lib_dir}/pltcl.so {tcl_lib}
+
+## SERVER ######################################################################
+
+command "-" "Create directory for data"
+ mkdir {test_data_dir}
+ chown {test_data_dir} {service_user}:{service_group}
+
+command "-" "Replace default sysconfig"
+ backup {sysconfig}
+ template sysconfig.tmpl {sysconfig}
+
+command "service {service_name} initdb" "Database initialization with default locale"
+ exit 0
+ exist {test_data_dir}/PG_VERSION
+ exist {test_data_dir}/pg_hba.conf
+ exist {test_data_dir}/pg_ident.conf
+ exist {test_data_dir}/postgresql.conf
+ exist {test_data_dir}/pg_wal
+ mode {test_data_dir}/pg_hba.conf 600
+ mode {test_data_dir}/pg_ident.conf 600
+ mode {test_data_dir}/postgresql.conf 600
+ mode {test_data_dir}/pg_wal 700
+ !empty {test_data_dir}/pg_hba.conf
+ !empty {test_data_dir}/pg_ident.conf
+ !empty {test_data_dir}/postgresql.conf
+ owner {test_data_dir}/pg_hba.conf {service_user}
+ owner {test_data_dir}/pg_ident.conf {service_user}
+ owner {test_data_dir}/postgresql.conf {service_user}
+
++command "-" "Remove data"
+ cleanup {test_data_dir}
+
+command "service {service_name} initdb en_GB.UTF-8" "Database initialization with custom locale"
+ exit 0
+ exist {test_data_dir}/PG_VERSION
+ exist {test_data_dir}/pg_hba.conf
+ exist {test_data_dir}/pg_ident.conf
+ exist {test_data_dir}/postgresql.conf
+ exist {test_data_dir}/pg_wal
+ mode {test_data_dir}/pg_hba.conf 600
+ mode {test_data_dir}/pg_ident.conf 600
+ mode {test_data_dir}/postgresql.conf 600
+ mode {test_data_dir}/pg_wal 700
+ !empty {test_data_dir}/pg_hba.conf
+ !empty {test_data_dir}/pg_ident.conf
+ !empty {test_data_dir}/postgresql.conf
+ owner {test_data_dir}/pg_hba.conf {service_user}
+ owner {test_data_dir}/pg_ident.conf {service_user}
+ owner {test_data_dir}/postgresql.conf {service_user}
+
++command "systemctl start {service_name}" "Start PostgreSQL server"
+ wait-fs {test_data_dir}/postmaster.pid {wait_fs}
+ wait-connect tcp :{port} {wait_connect}
+ wait-service {service_name}
+ checksum-read {pid_file} pid_sha
+
++command "systemctl status {service_name}" "Check status of PostgreSQL server"
+ expect "active (running)"
+
++command "{service_user}:{install_dir}/bin/psql -t -c 'SELECT version();'" "Check PostgreSQL version"
+ exit 0
+ output-contains "PostgreSQL {version}"
+
++command "{service_user}:{install_dir}/bin/psql -t -c 'SHOW LC_MESSAGES;'" "Check locale"
+ exit 0
+ output-contains "en_GB.UTF-8"
+
++command "systemctl restart {service_name}" "Restart PostgreSQL server"
+ wait-fs {test_data_dir}/postmaster.pid {wait_fs}
+ wait-connect tcp :{port} {wait_connect}
+ wait-service {service_name}
+ !checksum {pid_file} {pid_sha}
+
++command "systemctl stop {service_name}" "Stop PostgreSQL server"
+ !wait-fs {test_data_dir}/postmaster.pid {wait_fs}
+ !wait-connect tcp :{port} {wait_connect}
+ !wait-service {service_name}
+
++command "service pg{version} start" "Check start using service with shortname link"
+ wait-fs {test_data_dir}/postmaster.pid {wait_fs}
+ wait-connect tcp :{port} {wait_connect}
+ wait-service {service_name}
+
++command "service pg{version} stop" "Check stop using service with shortname link"
+ !wait-fs {test_data_dir}/postmaster.pid {wait_fs}
+ !wait-connect tcp :{port} {wait_connect}
+ !wait-service {service_name}
+
+command:teardown "-" "Restore original sysconfig file"
+ backup-restore {sysconfig}
diff --git a/tests/valkey/valkey.recipe b/tests/valkey/valkey.recipe
new file mode 100644
index 000000000..265a4b2b2
--- /dev/null
+++ b/tests/valkey/valkey.recipe
@@ -0,0 +1,91 @@
+# Bibop recipe for Valkey
+# See more: https://kaos.sh/bibop
+
+pkg valkey valkey-cli
+
+require-root yes
+unsafe-actions yes
+
+var service_user valkey
+var service_group valkey
+var service_name valkey
+
+var valkey_config /etc/valkey.conf
+var sentinel_config /etc/sentinel.conf
+var valkey_logrotate /etc/logrotate.d/valkey
+var sentinel_logrotate /etc/logrotate.d/sentinel
+
+var dump_file /var/lib/valkey/dump.rdb
+var log_file /var/log/valkey/valkey.log
+
+command "-" "Check environment"
+ app valkey-server
+ app valkey-sentinel
+ app valkey-benchmark
+ app valkey-check-aof
+ app valkey-check-rdb
+ app valkey-cli
+
+ service-present valkey
+ service-present sentinel
+
+ user-exist {service_user}
+ group-exist {service_group}
+
+ exist {valkey_config}
+ mode {valkey_config} 640
+ exist {sentinel_config}
+ mode {sentinel_config} 640
+
+ exist {valkey_logrotate}
+ mode {valkey_logrotate} 644
+ exist {sentinel_logrotate}
+ mode {sentinel_logrotate} 644
+
+ exist /var/lib/{service_name}
+ owner /var/lib/{service_name} {service_user}
+
+ exist /var/run/{service_name}
+ owner /var/run/{service_name} {service_user}
+
+ exist /var/log/{service_name}
+ owner /var/log/{service_name} {service_user}
+
+command "systemctl start {service_name}" "Start Valkey service"
+ wait-service {service_name} 5
+ connect tcp :6379
+
+command "systemctl status {service_name}" "Check status of Valkey service"
+ expect "active (running)"
+
+command "systemctl restart {service_name}" "Restart Valkey service"
+ wait-service {service_name} 5
+ connect tcp :6379
+
+command "valkey-cli SET TEST ACBD1234" "Set test key"
+ exit 0
+
+command "valkey-cli GET TEST" "Get test key"
+ exit 0
+ output-contains "ACBD1234"
+
+command "valkey-cli CONFIG GET logfile" "Check Valkey Client"
+ exit 0
+ output-contains "{log_file}"
+
+command "valkey-cli SAVE" "Create database dump"
+ exit 0
+
++command "-" "Check created dump file"
+ wait-fs {dump_file} 5
+
+ exist {dump_file}
+ mode {dump_file} 644
+ owner {dump_file} {service_user}
+
+command "systemctl stop {service_name}" "Stop Valkey service"
+ !wait-service {service_name} 5
+ !connect tcp :6379
+
+command "-" "Cleanup"
+ remove {dump_file}
diff --git a/tests/valkey/valkey72.recipe b/tests/valkey/valkey72.recipe
new file mode 100644
index 000000000..6705f18b8
--- /dev/null
+++ b/tests/valkey/valkey72.recipe
@@ -0,0 +1,90 @@
+# Bibop recipe for Valkey 7.2.x
+# See more: https://kaos.sh/bibop
+
+pkg valkey72 valkey72-cli
+
+require-root yes
+unsafe-actions yes
+
+var service_user valkey
+var service_group valkey
+var service_name valkey
+
+var valkey_config /etc/valkey.conf
+var sentinel_config /etc/sentinel.conf
+var valkey_logrotate /etc/logrotate.d/valkey
+var sentinel_logrotate /etc/logrotate.d/sentinel
+
+var dump_file /var/lib/valkey/dump.rdb
+var log_file /var/log/valkey/valkey.log
+
+command "-" "Check environment"
+ app valkey-server
+ app valkey-sentinel
+ app valkey-benchmark
+ app valkey-check-aof
+ app valkey-check-rdb
+ app valkey-cli
+
+ service-present valkey
+ service-present sentinel
+
+ user-exist {service_user}
+ group-exist {service_group}
+
+ exist {valkey_config}
+ mode {valkey_config} 640
+ exist {sentinel_config}
+ mode {sentinel_config} 640
+
+ exist {valkey_logrotate}
+ mode {valkey_logrotate} 644
+ exist {sentinel_logrotate}
+ mode {sentinel_logrotate} 644
+
+ exist /var/lib/{service_name}
+ owner /var/lib/{service_name} {service_user}
+
+ exist /var/run/{service_name}
+ owner /var/run/{service_name} {service_user}
+
+ exist /var/log/{service_name}
+ owner /var/log/{service_name} {service_user}
+
+command "systemctl start {service_name}" "Start Valkey service"
+ wait-service {service_name} 5
+ connect tcp :6379
+
+command "systemctl status {service_name}" "Check status of Valkey service"
+ expect "active (running)"
+
+command "systemctl restart {service_name}" "Restart Valkey service"
+ wait-service {service_name} 5
+ connect tcp :6379
+
+command "valkey-cli SET TEST ACBD1234" "Set test key"
+ exit 0
+
+command "valkey-cli GET TEST" "Get test key"
+ exit 0
+ output-contains "ACBD1234"
+
+command "valkey-cli CONFIG GET logfile" "Check Valkey Client"
+ exit 0
+ output-contains "{log_file}"
+
+command "valkey-cli SAVE" "Create database dump"
+ exit 0
+
++command "-" "Check created dump file"
+ wait-fs {dump_file} 5
+ exist {dump_file}
+ mode {dump_file} 644
+ owner {dump_file} {service_user}
+
+command "systemctl stop {service_name}" "Stop Valkey service"
+ !wait-service {service_name} 5
+ !connect tcp :6379
+
+command "-" "Cleanup"
+ remove {dump_file}
diff --git a/tests/valkey/valkey80.recipe b/tests/valkey/valkey80.recipe
new file mode 100644
index 000000000..22ac9e215
--- /dev/null
+++ b/tests/valkey/valkey80.recipe
@@ -0,0 +1,90 @@
+# Bibop recipe for Valkey 8.0.x
+# See more: https://kaos.sh/bibop
+
+pkg valkey80 valkey80-cli
+
+require-root yes
+unsafe-actions yes
+
+var service_user valkey
+var service_group valkey
+var service_name valkey
+
+var valkey_config /etc/valkey.conf
+var sentinel_config /etc/sentinel.conf
+var valkey_logrotate /etc/logrotate.d/valkey
+var sentinel_logrotate /etc/logrotate.d/sentinel
+
+var dump_file /var/lib/valkey/dump.rdb
+var log_file /var/log/valkey/valkey.log
+
+command "-" "Check environment"
+ app valkey-server
+ app valkey-sentinel
+ app valkey-benchmark
+ app valkey-check-aof
+ app valkey-check-rdb
+ app valkey-cli
+
+ service-present valkey
+ service-present sentinel
+
+ user-exist {service_user}
+ group-exist {service_group}
+
+ exist {valkey_config}
+ mode {valkey_config} 640
+ exist {sentinel_config}
+ mode {sentinel_config} 640
+
+ exist {valkey_logrotate}
+ mode {valkey_logrotate} 644
+ exist {sentinel_logrotate}
+ mode {sentinel_logrotate} 644
+
+ exist /var/lib/{service_name}
+ owner /var/lib/{service_name} {service_user}
+
+ exist /var/run/{service_name}
+ owner /var/run/{service_name} {service_user}
+
+ exist /var/log/{service_name}
+ owner /var/log/{service_name} {service_user}
+
+command "systemctl start {service_name}" "Start Valkey service"
+ wait-service {service_name} 5
+ connect tcp :6379
+
+command "systemctl status {service_name}" "Check status of Valkey service"
+ expect "active (running)"
+
+command "systemctl restart {service_name}" "Restart Valkey service"
+ wait-service {service_name} 5
+ connect tcp :6379
+
+command "valkey-cli SET TEST ACBD1234" "Set test key"
+ exit 0
+
+command "valkey-cli GET TEST" "Get test key"
+ exit 0
+ output-contains "ACBD1234"
+
+command "valkey-cli CONFIG GET logfile" "Check Valkey Client"
+ exit 0
+ output-contains "{log_file}"
+
+command "valkey-cli SAVE" "Create database dump"
+ exit 0
+
++command "-" "Check created dump file"
+ wait-fs {dump_file} 5
+ exist {dump_file}
+ mode {dump_file} 644
+ owner {dump_file} {service_user}
+
+command "systemctl stop {service_name}" "Stop Valkey service"
+ !wait-service {service_name} 5
+ !connect tcp :6379
+
+command "-" "Cleanup"
+ remove {dump_file}