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}