From 38debbf561e233227351030f0249cbd30fea98e7 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 16 Jan 2025 12:32:38 +0000 Subject: [PATCH 01/21] Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild --- bitcoin-core.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/bitcoin-core.spec b/bitcoin-core.spec index 5ac7346..112cc02 100644 --- a/bitcoin-core.spec +++ b/bitcoin-core.spec @@ -6,7 +6,7 @@ Name: bitcoin-core Version: 28.1 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Peer to Peer Cryptographic Currency License: MIT URL: https://bitcoincore.org/ @@ -322,6 +322,9 @@ exit 0 %{_userunitdir}/%{project_name}.service %changelog +* Thu Jan 16 2025 Fedora Release Engineering - 28.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + * Sat Jan 11 2025 Simone Caronni - 28.1-1 - Update to 28.1. From fceec31f92ff86f1b960dd1b2808b0309b54c5ca Mon Sep 17 00:00:00 2001 From: Simone Caronni Date: Tue, 28 Jan 2025 10:22:09 +0100 Subject: [PATCH 02/21] Update for https://fedoraproject.org/wiki/Changes/Unify_bin_and_sbin --- bitcoin-core.spec | 18 ++++++------------ bitcoin.service.system | 2 +- bitcoin.service.user | 2 +- 3 files changed, 8 insertions(+), 14 deletions(-) diff --git a/bitcoin-core.spec b/bitcoin-core.spec index 112cc02..f507101 100644 --- a/bitcoin-core.spec +++ b/bitcoin-core.spec @@ -6,7 +6,7 @@ Name: bitcoin-core Version: 28.1 -Release: 2%{?dist} +Release: 3%{?dist} Summary: Peer to Peer Cryptographic Currency License: MIT URL: https://bitcoincore.org/ @@ -61,11 +61,7 @@ BuildRequires: libnatpmp-devel BuildRequires: libtool BuildRequires: miniupnpc-devel BuildRequires: procps-ng -%if 0%{?rhel} == 8 -BuildRequires: python3.11 -%else BuildRequires: python3 -%endif BuildRequires: pkgconfig(libevent) >= 2.1.8 BuildRequires: pkgconfig(libevent_pthreads) >= 2.1.8 BuildRequires: pkgconfig(libqrencode) @@ -126,7 +122,7 @@ to create custom Bitcoin transactions. Summary: Peer-to-peer digital currency Conflicts: bitcoin-server Requires(pre): shadow-utils -Requires: (%{name}-selinux if selinux-policy) +Requires: (%{name}-selinux >= 0.1 if selinux-policy) Provides: bundled(leveldb) = 1.22.0 Provides: bundled(libdb) = 4.8.30.NC Provides: bundled(secp256k1) = 0.1 @@ -209,11 +205,6 @@ autoreconf -vif find %{buildroot} -name "*.la" -delete -# TODO: Upstream puts bitcoind in the wrong directory. Need to fix the -# upstream Makefiles to install it in the correct place. -mkdir -p -m 755 %{buildroot}%{_sbindir} -mv %{buildroot}%{_bindir}/bitcoind %{buildroot}%{_sbindir}/bitcoind - # Temporary files mkdir -p %{buildroot}%{_tmpfilesdir} install -m 0644 %{SOURCE5} %{buildroot}%{_tmpfilesdir}/%{project_name}.conf @@ -316,12 +307,15 @@ exit 0 %config(noreplace) %attr(644,root,root) %{_sysconfdir}/sysconfig/%{project_name} %{_compldir}/%{project_name}d %{_mandir}/man1/%{project_name}d.1* -%{_sbindir}/%{project_name}d +%{_bindir}/%{project_name}d %{_tmpfilesdir}/%{project_name}.conf %{_unitdir}/%{project_name}.service %{_userunitdir}/%{project_name}.service %changelog +* Tue Jan 28 2025 Simone Caronni - 28.1-3 +- Update for https://fedoraproject.org/wiki/Changes/Unify_bin_and_sbin. + * Thu Jan 16 2025 Fedora Release Engineering - 28.1-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild diff --git a/bitcoin.service.system b/bitcoin.service.system index 003ff32..44d109c 100644 --- a/bitcoin.service.system +++ b/bitcoin.service.system @@ -4,7 +4,7 @@ Documentation=man:bitcoind(1) After=syslog.target network.target [Service] -ExecStart=/usr/sbin/bitcoind -conf=${CONFIG_FILE} -datadir=${DATA_DIR} -pid=${PID_FILE} -debuglogfile=${DEBUG_FILE} $OPTIONS +ExecStart=/usr/bin/bitcoind -conf=${CONFIG_FILE} -datadir=${DATA_DIR} -pid=${PID_FILE} -debuglogfile=${DEBUG_FILE} $OPTIONS EnvironmentFile=/etc/sysconfig/bitcoin User=bitcoin Group=bitcoin diff --git a/bitcoin.service.user b/bitcoin.service.user index 4db9378..2abc9fa 100644 --- a/bitcoin.service.user +++ b/bitcoin.service.user @@ -3,7 +3,7 @@ Description=Bitcoin daemon Documentation=man:bitcoind(1) [Service] -ExecStart=/usr/sbin/bitcoind +ExecStart=/usr/bin/bitcoind Restart=on-failure TimeoutStopSec=120 From 728f312a8f924af3f13118b0c808835662aec96f Mon Sep 17 00:00:00 2001 From: Simone Caronni Date: Tue, 28 Jan 2025 12:50:33 +0100 Subject: [PATCH 03/21] Rebuild for updated depdendencies --- bitcoin-core.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/bitcoin-core.spec b/bitcoin-core.spec index f507101..a308959 100644 --- a/bitcoin-core.spec +++ b/bitcoin-core.spec @@ -6,7 +6,7 @@ Name: bitcoin-core Version: 28.1 -Release: 3%{?dist} +Release: 4%{?dist} Summary: Peer to Peer Cryptographic Currency License: MIT URL: https://bitcoincore.org/ @@ -313,6 +313,9 @@ exit 0 %{_userunitdir}/%{project_name}.service %changelog +* Tue Jan 28 2025 Simone Caronni - 28.1-4 +- Rebuild for updated dependencies. + * Tue Jan 28 2025 Simone Caronni - 28.1-3 - Update for https://fedoraproject.org/wiki/Changes/Unify_bin_and_sbin. From e9776785ee4ad92be7d068e67aa91e5f38fe0ef3 Mon Sep 17 00:00:00 2001 From: Simone Caronni Date: Fri, 7 Feb 2025 11:21:11 +0100 Subject: [PATCH 04/21] Rebuild for updated dependencies --- bitcoin-core.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/bitcoin-core.spec b/bitcoin-core.spec index a308959..c1f8c73 100644 --- a/bitcoin-core.spec +++ b/bitcoin-core.spec @@ -6,7 +6,7 @@ Name: bitcoin-core Version: 28.1 -Release: 4%{?dist} +Release: 5%{?dist} Summary: Peer to Peer Cryptographic Currency License: MIT URL: https://bitcoincore.org/ @@ -313,6 +313,9 @@ exit 0 %{_userunitdir}/%{project_name}.service %changelog +* Fri Feb 07 2025 Simone Caronni - 28.1-5 +- Rebuild for updated dependencies. + * Tue Jan 28 2025 Simone Caronni - 28.1-4 - Rebuild for updated dependencies. From eac99c0761dc4da743d77f8bc39f17424851b40f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Tue, 11 Feb 2025 14:36:20 +0100 Subject: [PATCH 05/21] Add sysusers.d config file to allow rpm to create users/groups automatically See https://fedoraproject.org/wiki/Changes/RPMSuportForSystemdSysusers. --- bitcoin-core.spec | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/bitcoin-core.spec b/bitcoin-core.spec index c1f8c73..13b2128 100644 --- a/bitcoin-core.spec +++ b/bitcoin-core.spec @@ -6,7 +6,7 @@ Name: bitcoin-core Version: 28.1 -Release: 5%{?dist} +Release: 6%{?dist} Summary: Peer to Peer Cryptographic Currency License: MIT URL: https://bitcoincore.org/ @@ -121,7 +121,6 @@ to create custom Bitcoin transactions. %package server Summary: Peer-to-peer digital currency Conflicts: bitcoin-server -Requires(pre): shadow-utils Requires: (%{name}-selinux >= 0.1 if selinux-policy) Provides: bundled(leveldb) = 1.22.0 Provides: bundled(libdb) = 4.8.30.NC @@ -165,6 +164,11 @@ touch -r db4/dist/configure db4/dist/configure.ac db4/dist/aclocal/*.m4 # Documentation (sources can not be directly reference with doc) cp -p %{SOURCE11} %{SOURCE12} %{SOURCE13} %{SOURCE14} . +# Create a sysusers.d config file +cat >bitcoin-core.sysusers.conf </dev/null || groupadd -r %{project_name} -getent passwd %{project_name} >/dev/null || - useradd -r -g %{project_name} -d /var/lib/%{project_name} -s /sbin/nologin \ - -c "Bitcoin wallet server" %{project_name} -exit 0 %post server %systemd_post %{project_name}.service @@ -311,8 +311,12 @@ exit 0 %{_tmpfilesdir}/%{project_name}.conf %{_unitdir}/%{project_name}.service %{_userunitdir}/%{project_name}.service +%{_sysusersdir}/bitcoin-core.conf %changelog +* Tue Feb 11 2025 Zbigniew Jędrzejewski-Szmek - 28.1-6 +- Add sysusers.d config file to allow rpm to create users/groups automatically + * Fri Feb 07 2025 Simone Caronni - 28.1-5 - Rebuild for updated dependencies. From bd01d61d539bdcdd50070350cf4e03452f21ddd0 Mon Sep 17 00:00:00 2001 From: Simone Caronni Date: Tue, 15 Apr 2025 17:36:34 +0200 Subject: [PATCH 06/21] Update to 29.0 --- README.md | 20 +++++------ bitcoin-core.spec | 66 +++++++++++++++++++++--------------- bitcoin-offline-pubring.gpg | Bin 52455 -> 69885 bytes sources | 6 ++-- 4 files changed, 52 insertions(+), 40 deletions(-) diff --git a/README.md b/README.md index 85e9066..d238a9e 100644 --- a/README.md +++ b/README.md @@ -4,23 +4,23 @@ The bitcoin-core package. ## Preparing a new update -Perform the following steps to prepare the update to a new version. The sample commands below are performed with version 25.0. +Perform the following steps to prepare the update to a new version. The sample commands below are performed with version 29.0. Generic package update steps: ``` $ rm -f bitcoin-*.tar.gz SHA256SUMS* -$ rpmdev-bumpspec -D -c "Update to 25.0." -n 25.0 bitcoin-core.spec +$ rpmdev-bumpspec -D -c "Update to 29.0." -n 29.0 bitcoin-core.spec $ spectool -g bitcoin-core.spec -Downloading: https://bitcoincore.org/bin/bitcoin-core-25.0/bitcoin-25.0.tar.gz +Downloading: https://bitcoincore.org/bin/bitcoin-core-29.0/bitcoin-29.0.tar.gz 100% of 10.9 MiB |#######################################################| Elapsed Time: 0:00:01 Time: 0:00:01 -Downloaded: bitcoin-25.0.tar.gz -Downloading: https://bitcoincore.org/bin/bitcoin-core-25.0/SHA256SUMS.asc +Downloaded: bitcoin-29.0.tar.gz +Downloading: https://bitcoincore.org/bin/bitcoin-core-29.0/SHA256SUMS.asc 100% of 10.3 KiB |#######################################################| Elapsed Time: 0:00:00 Time: 0:00:00 Downloaded: SHA256SUMS.asc -Downloading: https://bitcoincore.org/bin/bitcoin-core-25.0/SHA256SUMS +Downloading: https://bitcoincore.org/bin/bitcoin-core-29.0/SHA256SUMS 100% of 2.8 KiB |#######################################################| Elapsed Time: 0:00:00 Time: 0:00:00 Downloaded: SHA256SUMS Downloading: https://download.oracle.com/berkeley-db/db-4.8.30.NC.tar.gz @@ -28,9 +28,9 @@ File '/home/slaanesh/workspace/fedora/bitcoin-core/db-4.8.30.NC.tar.gz' already ``` When uploading sources, make sure the DB tarball is included even if it has not changed as otherwise will not be available in the Koji build root: ``` -$ fedpkg new-sources bitcoin-25.0.tar.gz SHA256SUMS SHA256SUMS.asc db-4.8.30.NC.tar.gz +$ fedpkg new-sources bitcoin-29.0.tar.gz SHA256SUMS SHA256SUMS.asc db-4.8.30.NC.tar.gz File already uploaded: db-4.8.30.NC.tar.gz -Uploading: bitcoin-25.0.tar.gz +Uploading: bitcoin-29.0.tar.gz ######################################################################## 100.0% Uploading: SHA256SUMS ######################################################################## 100.0% @@ -42,12 +42,12 @@ After this, based on the list of keys that have signed the release and that are ``` $ ./bitcoin-gpg.sh Prepare official script to verify releases to work offline... done. -Creating GPG keyring with public keys that have signed release 25.0... done. +Creating GPG keyring with public keys that have signed release 29.0... done. ``` After this, it's time to commit and build: ``` $ git add bitcoin-offline-pubring.gpg -$ git commit -a -m "Update to 25.0" +$ git commit -a -m "Update to 29.0" $ git push $ fedpkg build --nowait ``` diff --git a/bitcoin-core.spec b/bitcoin-core.spec index 13b2128..4b637fd 100644 --- a/bitcoin-core.spec +++ b/bitcoin-core.spec @@ -5,8 +5,8 @@ %bcond_with extended_tests Name: bitcoin-core -Version: 28.1 -Release: 6%{?dist} +Version: 29.0 +Release: 1%{?dist} Summary: Peer to Peer Cryptographic Currency License: MIT URL: https://bitcoincore.org/ @@ -39,6 +39,9 @@ Source12: README.gui.redhat Source13: README.utils.redhat Source14: README.server.redhat +# Berkeley DB will be dropped in Bitcoin 30.0! +# https://github.com/bitcoin/bitcoin/issues/20160 + # Berkeley DB non-strong cryptography variant (NC) Source15: https://download.oracle.com/berkeley-db/db-4.8.30.NC.tar.gz Source16: db-4.8.30.NC-format-security.patch @@ -50,15 +53,13 @@ Source18: %{project_name}-qt.metainfo.xml # Patch verify script to use local keyring Patch0: %{project_name}-verify-offline.patch -BuildRequires: autoconf -BuildRequires: automake BuildRequires: boost-devel >= 1.64.0 BuildRequires: checkpolicy BuildRequires: desktop-file-utils BuildRequires: gnupg2 BuildRequires: libappstream-glib BuildRequires: libnatpmp-devel -BuildRequires: libtool +BuildRequires: cmake > 3.22 BuildRequires: miniupnpc-devel BuildRequires: procps-ng BuildRequires: python3 @@ -72,6 +73,11 @@ BuildRequires: qt5-qtbase-devel BuildRequires: systemd BuildRequires: systemtap-sdt-devel +# For Berkeley BDB +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: libtool + %description Bitcoin is a digital cryptographic currency that uses peer-to-peer technology to operate with no central authority or banks; managing transactions and the @@ -180,32 +186,35 @@ pushd db4/build_unix --disable-replication %undefine _configure -%make_build -make install DESTDIR=%{_builddir}/%{buildsubdir}/db4 +%make_build libdb_cxx.a libdb.a +make install_lib install_include DESTDIR=%{_builddir}/%{buildsubdir}/db4 popd -export BDB_CFLAGS="-I%{_builddir}/%{buildsubdir}/db4%{_includedir}/" -export BDB_LIBS="-L%{_builddir}/%{buildsubdir}/db4%{_libdir}/ -ldb_cxx-4.8" -autoreconf -vif -%configure \ - --disable-bench \ - --disable-silent-rules \ - --disable-static \ - --enable-reduce-exports \ - --enable-threadlocal \ - --enable-usdt \ - --with-daemon \ - --with-gui=qt5 \ - --with-libs \ - --with-miniupnpc \ - --with-qrencode \ - --with-qtdbus \ - --with-utils +# -DBerkeleyDB_LIBRARY=%{_builddir}/%{buildsubdir}/db4%{_libdir}/libdb_cxx.a \ +%cmake \ + -DBerkeleyDB_INCLUDE_DIR=%{_builddir}/%{buildsubdir}/db4%{_includedir}/ \ + -DBerkeleyDB_LIBRARY_RELEASE=%{_builddir}/%{buildsubdir}/db4%{_libdir}/libdb_cxx.a \ + -DBUILD_CLI=ON \ + -DBUILD_DAEMON=ON \ + -DBUILD_GUI=ON \ + -DBUILD_KERNEL_LIB=OFF \ + -DBUILD_TESTS=ON \ + -DBUILD_TX=ON \ + -DBUILD_UTIL=ON \ + -DBUILD_UTIL_CHAINSTATE=ON \ + -DENABLE_WALLET=ON \ + -DINSTALL_MAN=ON \ + -DWITH_BDB=ON \ + -DWITH_DBUS=ON \ + -DWITH_QRENCODE=ON \ + -DWITH_SQLITE=ON \ + -DWITH_USDT=ON \ + -DWITH_ZMQ=ON -%make_build +%cmake_build %install -%make_install +%cmake_install find %{buildroot} -name "*.la" -delete @@ -250,7 +259,7 @@ install -m0644 -D bitcoin-core.sysusers.conf %{buildroot}%{_sysusersdir}/bitcoin %check desktop-file-validate %{buildroot}%{_datadir}/applications/%{project_name}-qt.desktop appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/%{project_name}-qt.metainfo.xml -make check +%ctest %if %{with extended_tests} test/functional/test_runner.py --tmpdirprefix `pwd` --extended %endif @@ -314,6 +323,9 @@ test/functional/test_runner.py --tmpdirprefix `pwd` --extended %{_sysusersdir}/bitcoin-core.conf %changelog +* Sun Apr 13 2025 Simone Caronni - 29.0-1 +- Update to 29.0. + * Tue Feb 11 2025 Zbigniew Jędrzejewski-Szmek - 28.1-6 - Add sysusers.d config file to allow rpm to create users/groups automatically diff --git a/bitcoin-offline-pubring.gpg b/bitcoin-offline-pubring.gpg index 6793a399c3a2a9b9e39946e5468b55b75f2439fc..1d1269b81256cce24ac304d6d3e22734bc13fdba 100644 GIT binary patch delta 17530 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 GfxiI=otY{C diff --git a/sources b/sources index 4a76748..c2b5a4d 100644 --- a/sources +++ b/sources @@ -1,4 +1,4 @@ -SHA512 (bitcoin-28.1.tar.gz) = 9ed01409e11140cdb5c00bbbe17f909bcb3d067e0a4ef335aa18faa1585a43cdcd71d384eec79d613244ed569b096276b1c1ae879dad27410fb098bc456f9b86 -SHA512 (SHA256SUMS) = c6d1c4e647e2fbec41a431b3afd695832d2e4345683cc19a0b96fd0811399b5102e7b9a750883b6d5812f34c318b42d1efdbf434f81126e18166ea8f3c70752b -SHA512 (SHA256SUMS.asc) = 780e8dca5eb04726f7e0f28c158a6801e16f9204de5db8db3dd1ac18a3989d98bb3efcf89a5f4741c54444ea7bb71511179d89e18c7bffd23f9e5f1a3ef99786 +SHA512 (bitcoin-29.0.tar.gz) = 3f5906a437592c55bfbdcec1b1457fdfbe52e9cf6ddc18e6bc153b526846f842283de88f9bf6aa43c3ac624b041d68ea8fc34090a8590bdabdac5a52650cc7dd +SHA512 (SHA256SUMS) = 623c90d83c02a693d39fdd64b952043cf65f5d120448fac9828fc48c752e1d9359582697eeb6d14691e8f00ab65e3bd45bfa1c495b84fe37fbee83655844bac7 +SHA512 (SHA256SUMS.asc) = 7023838e6d9424a47190ace412b066ba4b0412ff82c473c463d946f37778060fe591c9c474806dcefe6e8f3e18f10ebb5d9bf7bf2fe1a5973f8a9166b956dd17 SHA512 (db-4.8.30.NC.tar.gz) = 8d313f1f896e0b0c05cc510c0313324743de3fb660a0bd948c957d5a2d50f1625d8a9a36ec4e6fea09daf1d682dbe1ffccd5c3ec5f066eef72f7525343d0194c From 35df136f50bab8d54aaa31299545095343c9fdad Mon Sep 17 00:00:00 2001 From: Simone Caronni Date: Wed, 16 Apr 2025 11:53:23 +0200 Subject: [PATCH 07/21] Adjust for bitcoinkernel library build --- bitcoin-core.spec | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/bitcoin-core.spec b/bitcoin-core.spec index 4b637fd..bbbc479 100644 --- a/bitcoin-core.spec +++ b/bitcoin-core.spec @@ -190,14 +190,14 @@ pushd db4/build_unix make install_lib install_include DESTDIR=%{_builddir}/%{buildsubdir}/db4 popd -# -DBerkeleyDB_LIBRARY=%{_builddir}/%{buildsubdir}/db4%{_libdir}/libdb_cxx.a \ +# Bitcoin kernel library used only as part of the testing for now: %cmake \ -DBerkeleyDB_INCLUDE_DIR=%{_builddir}/%{buildsubdir}/db4%{_includedir}/ \ -DBerkeleyDB_LIBRARY_RELEASE=%{_builddir}/%{buildsubdir}/db4%{_libdir}/libdb_cxx.a \ -DBUILD_CLI=ON \ -DBUILD_DAEMON=ON \ -DBUILD_GUI=ON \ - -DBUILD_KERNEL_LIB=OFF \ + -DBUILD_KERNEL_LIB=ON \ -DBUILD_TESTS=ON \ -DBUILD_TX=ON \ -DBUILD_UTIL=ON \ @@ -218,6 +218,9 @@ popd find %{buildroot} -name "*.la" -delete +# Remove Bitcoin Kernel Library for now (https://github.com/bitcoin/bitcoin/issues/27587) +rm -frv %{buildroot}%{_libdir} + # Temporary files mkdir -p %{buildroot}%{_tmpfilesdir} install -m 0644 %{SOURCE5} %{buildroot}%{_tmpfilesdir}/%{project_name}.conf @@ -264,7 +267,6 @@ appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/%{project_name test/functional/test_runner.py --tmpdirprefix `pwd` --extended %endif - %post server %systemd_post %{project_name}.service From 3e6bc97f7eed0c62b05902581d93007d8b0f5358 Mon Sep 17 00:00:00 2001 From: Simone Caronni Date: Thu, 19 Jun 2025 14:18:44 +0200 Subject: [PATCH 08/21] Drop unused build dependencies --- bitcoin-core.spec | 2 -- 1 file changed, 2 deletions(-) diff --git a/bitcoin-core.spec b/bitcoin-core.spec index bbbc479..aada7cb 100644 --- a/bitcoin-core.spec +++ b/bitcoin-core.spec @@ -58,9 +58,7 @@ BuildRequires: checkpolicy BuildRequires: desktop-file-utils BuildRequires: gnupg2 BuildRequires: libappstream-glib -BuildRequires: libnatpmp-devel BuildRequires: cmake > 3.22 -BuildRequires: miniupnpc-devel BuildRequires: procps-ng BuildRequires: python3 BuildRequires: pkgconfig(libevent) >= 2.1.8 From 636befc4a48d2f9888244e63a75935421741f262 Mon Sep 17 00:00:00 2001 From: Simone Caronni Date: Thu, 19 Jun 2025 14:19:16 +0200 Subject: [PATCH 09/21] Convert to %autorelease and %autochangelog [skip changelog] --- bitcoin-core.spec | 226 +--------------------------------------------- changelog | 223 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 225 insertions(+), 224 deletions(-) create mode 100644 changelog diff --git a/bitcoin-core.spec b/bitcoin-core.spec index aada7cb..fc39176 100644 --- a/bitcoin-core.spec +++ b/bitcoin-core.spec @@ -6,7 +6,7 @@ Name: bitcoin-core Version: 29.0 -Release: 1%{?dist} +Release: %autorelease Summary: Peer to Peer Cryptographic Currency License: MIT URL: https://bitcoincore.org/ @@ -323,226 +323,4 @@ test/functional/test_runner.py --tmpdirprefix `pwd` --extended %{_sysusersdir}/bitcoin-core.conf %changelog -* Sun Apr 13 2025 Simone Caronni - 29.0-1 -- Update to 29.0. - -* Tue Feb 11 2025 Zbigniew Jędrzejewski-Szmek - 28.1-6 -- Add sysusers.d config file to allow rpm to create users/groups automatically - -* Fri Feb 07 2025 Simone Caronni - 28.1-5 -- Rebuild for updated dependencies. - -* Tue Jan 28 2025 Simone Caronni - 28.1-4 -- Rebuild for updated dependencies. - -* Tue Jan 28 2025 Simone Caronni - 28.1-3 -- Update for https://fedoraproject.org/wiki/Changes/Unify_bin_and_sbin. - -* Thu Jan 16 2025 Fedora Release Engineering - 28.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild - -* Sat Jan 11 2025 Simone Caronni - 28.1-1 -- Update to 28.1. - -* Sat Jan 11 2025 Simone Caronni - 28.0-4 -- Enable Statically Defined Tracing (USDT). - -* Wed Oct 16 2024 Simone Caronni - 28.0-3 -- Remove leftover of bitcoin-libs being erroneusly required by the devel - subpackage. - -* Tue Oct 08 2024 Simone Caronni - 28.0-2 -- Rebuild for updated miniupnpc 2.2.8. - -* Tue Oct 08 2024 Simone Caronni - 28.0-1 -- Update to 28.0. - -* Wed Jul 17 2024 Fedora Release Engineering - 27.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild - -* Sun Jun 23 2024 Simone Caronni - 27.1-1 -- Update to 27.1. - -* Wed May 22 2024 Simone Caronni - 27.0-1 -- Update to 27.0. - -* Wed Apr 24 2024 Simone Caronni - 26.1-1 -- Update to 26.1. - -* Tue Jan 23 2024 Fedora Release Engineering - 26.0-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Fri Jan 19 2024 Fedora Release Engineering - 26.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Wed Dec 13 2023 Simone Caronni - 26.0-1 -- Update to 26.0. - -* Fri Oct 20 2023 Simone Caronni - 25.1-1 -- Update to 25.1. - -* Fri Aug 11 2023 Simone Caronni - 25.0-3 -- Adjust verify script invocation. -- Fix build on el8. -- Drop unused build requirement. - -* Wed Jul 19 2023 Fedora Release Engineering - 25.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Tue May 30 2023 Simone Caronni - 25.0-1 -- Update to 25.0. -- Update verification of signatures to use the new bundled script. - -* Mon May 22 2023 Simone Caronni - 24.1-1 -- Update to 24.1. - -* Fri Mar 17 2023 Arjun Shankar - 24.0.1-3 -- Port bundled Berkeley DB 4.8 configure script to C99 (#2179373) - -* Fri Mar 17 2023 Arjun Shankar -- Fix build failure due to GCC 13 compile error (#2171449) - -* Wed Jan 18 2023 Fedora Release Engineering -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Mon Dec 12 2022 Simone Caronni - 24.0.1-1 -- Update to 24.0.1 - -* Mon Nov 21 2022 Simone Caronni - 24.0-1 -- Update to 24.0. - -* Wed Jul 20 2022 Fedora Release Engineering -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Tue Apr 26 2022 Simone Caronni - 23.0-1 -- Update to 23.0. - -* Thu Apr 07 2022 Simone Caronni - 22.0-7 -- Add AppStream metadata. - -* Tue Apr 05 2022 Simone Caronni - 22.0-6 -- Hide extended tests behind a flag. -- Allow to run the full set of extended tests including network when requested, - they run fine in mock with network enabled. - -* Sun Jan 23 2022 Simone Caronni - 22.0-5 -- Update GPG verification script (thanks Björn Persson). - -* Sun Oct 03 2021 Simone Caronni - 22.0-4 -- Switch to bundled statically linked Berkeley DB 4.8.30 (NC). - -* Sat Sep 25 2021 Simone Caronni - 22.0-3 -- Remove obsolete scriptlets. -- With RHEL/CentOS 7 no longer a target, improve systemd unit security. -- Add systemd user unit to start bitcoind in your user session. -- Move bitcoin-wallet to utils subpackage for offline wallet manipulation. -- Update README files. - -* Sat Sep 25 2021 Simone Caronni - 22.0-2 -- Prepare all keys with a script and verify all keys against the signature file. - Add reasoning on the process in the SPEC file. - -* Wed Sep 22 2021 Simone Caronni - 22.0-1 -- Update to 22.0, versioning convention change. -- Implement signature verification with a public GPG keyring and at least one - valid signature. -- Also the relative selinux package has been renamed to bitcoin-core-selinux. -- Add bitcoin-util to devel subpackage. -- Update docs. -- Add SQLite as dependency for descriptor wallets. -- Drop RHEL/CentOS 7 support. - -* Tue Sep 21 2021 Simone Caronni - 0.21.1-2 -- Rename package to bitcoin-core. -- Conflicts with bitcoin. -- Desktop subpackage renamed from "core" to "desktop". - -* Wed May 12 2021 Simone Caronni - 0.21.1-1 -- Update to 0.21.1. - -* Wed Mar 10 2021 Simone Caronni - 0.21.0-4 -- Fix build on RHEL/CentOS 8. -- Adjust SELinux requirement for server subpackage. - -* Wed Mar 10 2021 Simone Caronni - 0.21.0-3 -- Remove requirements for utils subpackage in server subpackage. -- Separate SELinux package in its own subpackage and use RPM rich booleans on - Fedora and RHEL/CentOS 8+ to install the SELinux package if the base policy is - installed. -- Update server README. - -* Wed Jan 20 2021 Simone Caronni - 0.21.0-2 -- Update to 0.21.0. -- Remove java build requirement. -- Use local folder for test output. - -* Fri Jan 15 2021 Simone Caronni - 0.21.0-1 -- Update to 0.21.0. - -* Thu Nov 19 2020 Simone Caronni - 0.20.1-2 -- Remove openssl/protobuf from build requirements. - -* Wed Oct 21 2020 Simone Caronni - 0.20.1-1 -- Update to 0.20.1. - -* Wed Jul 22 2020 Simone Caronni - 0.20.0-7 -- Use libdb 5.x instead of deprecated 4.x. Fixes build on RHEL/CentOS 8. - -* Tue Jul 21 2020 Simone Caronni - 0.20.0-6 -- Update systemd unit. -- Update configuration options. -- Declared bundled libraries/forks. - -* Tue Jul 21 2020 Simone Caronni - 0.20.0-5 -- Use HTTPS for url tag. -- Reorganize sources. Add cleaned files from the packaging repository directly; - bash completion snippets are now supported in the main sources. -- Move check section after install and include desktop file validating in there. - -* Sun Jul 19 2020 Simone Caronni - 0.20.0-4 -- Fix tests on RHEL/CentOS 7. - -* Sat Jul 18 2020 Simone Caronni - 0.20.0-3 -- Add signature verification. -- Trim changelog. -- Fix typo in the libs description. - -* Tue Jun 30 2020 Simone Caronni - 0.20.0-2 -- Update Source0 URL. -- Do not obsolete "bitcoin", just leave the provider for it. -- Let the build install the man pages. -- Make sure old post scriptlets run only on RHEL/CentOS 7. -- Do not install static library and archive. -- Be explicit with shared object versions. -- Use macros for more directories. -- Use GCC 9 and not 7 to build on RHEL/CentOS 7. - -* Fri Jun 26 2020 Simone Caronni - 0.20.0-1 -- Update to 0.20.0. - -* Mon May 04 2020 Simone Caronni - 0.19.1-1 -- Update to 0.19.1. -- Fix deprecation message with Python tests. -- Trim changelog. - -* Fri Feb 21 2020 Simone Caronni - 0.19.0.1-2 -- Fix dependencies with Python SELinux interfaces. - -* Tue Nov 19 2019 Simone Caronni - 0.19.0.1-1 -- Update to 0.19.0.1. - -* Sun Nov 17 2019 Simone Caronni - 0.19.0-1 -- Update to 0.19.0. - -* Thu Sep 12 2019 Simone Caronni - 0.18.1-1 -- Update to 0.18.1. - -* Tue May 07 2019 Simone Caronni - 0.18.0-2 -- Update systemd unit. - -* Mon May 06 2019 Simone Caronni - 0.18.0-1 -- Update to 0.18.0. -- Force C.UTF-8 for tests on Fedora and disable EPEL 7 test run. - -* Thu Jan 24 2019 Simone Caronni - 0.17.1-1 -- Update to 0.17.1. +%autochangelog diff --git a/changelog b/changelog new file mode 100644 index 0000000..62b1a76 --- /dev/null +++ b/changelog @@ -0,0 +1,223 @@ +* Sun Apr 13 2025 Simone Caronni - 29.0-1 +- Update to 29.0. + +* Tue Feb 11 2025 Zbigniew Jędrzejewski-Szmek - 28.1-6 +- Add sysusers.d config file to allow rpm to create users/groups automatically + +* Fri Feb 07 2025 Simone Caronni - 28.1-5 +- Rebuild for updated dependencies. + +* Tue Jan 28 2025 Simone Caronni - 28.1-4 +- Rebuild for updated dependencies. + +* Tue Jan 28 2025 Simone Caronni - 28.1-3 +- Update for https://fedoraproject.org/wiki/Changes/Unify_bin_and_sbin. + +* Thu Jan 16 2025 Fedora Release Engineering - 28.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Sat Jan 11 2025 Simone Caronni - 28.1-1 +- Update to 28.1. + +* Sat Jan 11 2025 Simone Caronni - 28.0-4 +- Enable Statically Defined Tracing (USDT). + +* Wed Oct 16 2024 Simone Caronni - 28.0-3 +- Remove leftover of bitcoin-libs being erroneusly required by the devel + subpackage. + +* Tue Oct 08 2024 Simone Caronni - 28.0-2 +- Rebuild for updated miniupnpc 2.2.8. + +* Tue Oct 08 2024 Simone Caronni - 28.0-1 +- Update to 28.0. + +* Wed Jul 17 2024 Fedora Release Engineering - 27.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Sun Jun 23 2024 Simone Caronni - 27.1-1 +- Update to 27.1. + +* Wed May 22 2024 Simone Caronni - 27.0-1 +- Update to 27.0. + +* Wed Apr 24 2024 Simone Caronni - 26.1-1 +- Update to 26.1. + +* Tue Jan 23 2024 Fedora Release Engineering - 26.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Jan 19 2024 Fedora Release Engineering - 26.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Wed Dec 13 2023 Simone Caronni - 26.0-1 +- Update to 26.0. + +* Fri Oct 20 2023 Simone Caronni - 25.1-1 +- Update to 25.1. + +* Fri Aug 11 2023 Simone Caronni - 25.0-3 +- Adjust verify script invocation. +- Fix build on el8. +- Drop unused build requirement. + +* Wed Jul 19 2023 Fedora Release Engineering - 25.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Tue May 30 2023 Simone Caronni - 25.0-1 +- Update to 25.0. +- Update verification of signatures to use the new bundled script. + +* Mon May 22 2023 Simone Caronni - 24.1-1 +- Update to 24.1. + +* Fri Mar 17 2023 Arjun Shankar - 24.0.1-3 +- Port bundled Berkeley DB 4.8 configure script to C99 (#2179373) + +* Fri Mar 17 2023 Arjun Shankar +- Fix build failure due to GCC 13 compile error (#2171449) + +* Wed Jan 18 2023 Fedora Release Engineering +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Mon Dec 12 2022 Simone Caronni - 24.0.1-1 +- Update to 24.0.1 + +* Mon Nov 21 2022 Simone Caronni - 24.0-1 +- Update to 24.0. + +* Wed Jul 20 2022 Fedora Release Engineering +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Tue Apr 26 2022 Simone Caronni - 23.0-1 +- Update to 23.0. + +* Thu Apr 07 2022 Simone Caronni - 22.0-7 +- Add AppStream metadata. + +* Tue Apr 05 2022 Simone Caronni - 22.0-6 +- Hide extended tests behind a flag. +- Allow to run the full set of extended tests including network when requested, + they run fine in mock with network enabled. + +* Sun Jan 23 2022 Simone Caronni - 22.0-5 +- Update GPG verification script (thanks Björn Persson). + +* Sun Oct 03 2021 Simone Caronni - 22.0-4 +- Switch to bundled statically linked Berkeley DB 4.8.30 (NC). + +* Sat Sep 25 2021 Simone Caronni - 22.0-3 +- Remove obsolete scriptlets. +- With RHEL/CentOS 7 no longer a target, improve systemd unit security. +- Add systemd user unit to start bitcoind in your user session. +- Move bitcoin-wallet to utils subpackage for offline wallet manipulation. +- Update README files. + +* Sat Sep 25 2021 Simone Caronni - 22.0-2 +- Prepare all keys with a script and verify all keys against the signature file. + Add reasoning on the process in the SPEC file. + +* Wed Sep 22 2021 Simone Caronni - 22.0-1 +- Update to 22.0, versioning convention change. +- Implement signature verification with a public GPG keyring and at least one + valid signature. +- Also the relative selinux package has been renamed to bitcoin-core-selinux. +- Add bitcoin-util to devel subpackage. +- Update docs. +- Add SQLite as dependency for descriptor wallets. +- Drop RHEL/CentOS 7 support. + +* Tue Sep 21 2021 Simone Caronni - 0.21.1-2 +- Rename package to bitcoin-core. +- Conflicts with bitcoin. +- Desktop subpackage renamed from "core" to "desktop". + +* Wed May 12 2021 Simone Caronni - 0.21.1-1 +- Update to 0.21.1. + +* Wed Mar 10 2021 Simone Caronni - 0.21.0-4 +- Fix build on RHEL/CentOS 8. +- Adjust SELinux requirement for server subpackage. + +* Wed Mar 10 2021 Simone Caronni - 0.21.0-3 +- Remove requirements for utils subpackage in server subpackage. +- Separate SELinux package in its own subpackage and use RPM rich booleans on + Fedora and RHEL/CentOS 8+ to install the SELinux package if the base policy is + installed. +- Update server README. + +* Wed Jan 20 2021 Simone Caronni - 0.21.0-2 +- Update to 0.21.0. +- Remove java build requirement. +- Use local folder for test output. + +* Fri Jan 15 2021 Simone Caronni - 0.21.0-1 +- Update to 0.21.0. + +* Thu Nov 19 2020 Simone Caronni - 0.20.1-2 +- Remove openssl/protobuf from build requirements. + +* Wed Oct 21 2020 Simone Caronni - 0.20.1-1 +- Update to 0.20.1. + +* Wed Jul 22 2020 Simone Caronni - 0.20.0-7 +- Use libdb 5.x instead of deprecated 4.x. Fixes build on RHEL/CentOS 8. + +* Tue Jul 21 2020 Simone Caronni - 0.20.0-6 +- Update systemd unit. +- Update configuration options. +- Declared bundled libraries/forks. + +* Tue Jul 21 2020 Simone Caronni - 0.20.0-5 +- Use HTTPS for url tag. +- Reorganize sources. Add cleaned files from the packaging repository directly; + bash completion snippets are now supported in the main sources. +- Move check section after install and include desktop file validating in there. + +* Sun Jul 19 2020 Simone Caronni - 0.20.0-4 +- Fix tests on RHEL/CentOS 7. + +* Sat Jul 18 2020 Simone Caronni - 0.20.0-3 +- Add signature verification. +- Trim changelog. +- Fix typo in the libs description. + +* Tue Jun 30 2020 Simone Caronni - 0.20.0-2 +- Update Source0 URL. +- Do not obsolete "bitcoin", just leave the provider for it. +- Let the build install the man pages. +- Make sure old post scriptlets run only on RHEL/CentOS 7. +- Do not install static library and archive. +- Be explicit with shared object versions. +- Use macros for more directories. +- Use GCC 9 and not 7 to build on RHEL/CentOS 7. + +* Fri Jun 26 2020 Simone Caronni - 0.20.0-1 +- Update to 0.20.0. + +* Mon May 04 2020 Simone Caronni - 0.19.1-1 +- Update to 0.19.1. +- Fix deprecation message with Python tests. +- Trim changelog. + +* Fri Feb 21 2020 Simone Caronni - 0.19.0.1-2 +- Fix dependencies with Python SELinux interfaces. + +* Tue Nov 19 2019 Simone Caronni - 0.19.0.1-1 +- Update to 0.19.0.1. + +* Sun Nov 17 2019 Simone Caronni - 0.19.0-1 +- Update to 0.19.0. + +* Thu Sep 12 2019 Simone Caronni - 0.18.1-1 +- Update to 0.18.1. + +* Tue May 07 2019 Simone Caronni - 0.18.0-2 +- Update systemd unit. + +* Mon May 06 2019 Simone Caronni - 0.18.0-1 +- Update to 0.18.0. +- Force C.UTF-8 for tests on Fedora and disable EPEL 7 test run. + +* Thu Jan 24 2019 Simone Caronni - 0.17.1-1 +- Update to 0.17.1. From f96a06c6b4bb840edecfa6c35aca3d4dbe12f76b Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 23 Jul 2025 17:43:08 +0000 Subject: [PATCH 10/21] Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild From 48048cfe137ed9f5e6604c886c308e1d252ca230 Mon Sep 17 00:00:00 2001 From: Simone Caronni Date: Sat, 6 Sep 2025 15:06:55 +0200 Subject: [PATCH 11/21] Update to 29.1 --- bitcoin-core.spec | 2 +- bitcoin-offline-pubring.gpg | Bin 69885 -> 65677 bytes sources | 6 +++--- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/bitcoin-core.spec b/bitcoin-core.spec index fc39176..578a1c3 100644 --- a/bitcoin-core.spec +++ b/bitcoin-core.spec @@ -5,7 +5,7 @@ %bcond_with extended_tests Name: bitcoin-core -Version: 29.0 +Version: 29.1 Release: %autorelease Summary: Peer to Peer Cryptographic Currency License: MIT diff --git a/bitcoin-offline-pubring.gpg b/bitcoin-offline-pubring.gpg index 1d1269b81256cce24ac304d6d3e22734bc13fdba..88a95034fd011630b1400e260f1f266295e79356 100644 GIT binary patch delta 9614 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 bg-y^kEHdEtW!Ma*ke$v-H)MN{G4Ou@fSjrg delta 13997 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 ef4SJfz??n9b{!Tf Date: Thu, 16 Oct 2025 10:54:11 +0200 Subject: [PATCH 12/21] Update to 29.2 --- bitcoin-core.spec | 2 +- bitcoin-offline-pubring.gpg | Bin 65677 -> 70592 bytes sources | 6 +++--- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/bitcoin-core.spec b/bitcoin-core.spec index 578a1c3..b51b197 100644 --- a/bitcoin-core.spec +++ b/bitcoin-core.spec @@ -5,7 +5,7 @@ %bcond_with extended_tests Name: bitcoin-core -Version: 29.1 +Version: 29.2 Release: %autorelease Summary: Peer to Peer Cryptographic Currency License: MIT diff --git a/bitcoin-offline-pubring.gpg b/bitcoin-offline-pubring.gpg index 88a95034fd011630b1400e260f1f266295e79356..3ad550acec98fd5132156f2d155981adce2acc32 100644 GIT binary patch delta 10494 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 KJk33I`u_mXu5Zo& delta 5629 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 Date: Thu, 16 Oct 2025 15:08:36 +0200 Subject: [PATCH 13/21] Update to 30.0 - Drop version for bundles, it contains snapshots for most libraries. - Drop removed BDB bits, adjust docs and information. - Add new metapackage with multiprocess bitcoin programs and new meta command "bitcoin". - Package a standalone libbitcoinkernel, which is used by the new IPC programs. - Set a shared object version on libbitcoinkernel that matches with the major release. --- README.md | 25 +- README.server.redhat | 14 +- bitcoin-core.spec | 115 +++--- db-4.8.30.NC-configure-c99.patch | 584 ----------------------------- db-4.8.30.NC-format-security.patch | 42 --- sources | 7 +- 6 files changed, 67 insertions(+), 720 deletions(-) delete mode 100644 db-4.8.30.NC-configure-c99.patch delete mode 100644 db-4.8.30.NC-format-security.patch diff --git a/README.md b/README.md index d238a9e..3915d1c 100644 --- a/README.md +++ b/README.md @@ -4,33 +4,30 @@ The bitcoin-core package. ## Preparing a new update -Perform the following steps to prepare the update to a new version. The sample commands below are performed with version 29.0. +Perform the following steps to prepare the update to a new version. The sample commands below are performed with version 30.0. Generic package update steps: ``` $ rm -f bitcoin-*.tar.gz SHA256SUMS* -$ rpmdev-bumpspec -D -c "Update to 29.0." -n 29.0 bitcoin-core.spec +$ rpmdev-bumpspec -D -c "Update to 30.0." -n 30.0 bitcoin-core.spec $ spectool -g bitcoin-core.spec -Downloading: https://bitcoincore.org/bin/bitcoin-core-29.0/bitcoin-29.0.tar.gz +Downloading: https://bitcoincore.org/bin/bitcoin-core-30.0/bitcoin-30.0.tar.gz 100% of 10.9 MiB |#######################################################| Elapsed Time: 0:00:01 Time: 0:00:01 -Downloaded: bitcoin-29.0.tar.gz -Downloading: https://bitcoincore.org/bin/bitcoin-core-29.0/SHA256SUMS.asc +Downloaded: bitcoin-30.0.tar.gz +Downloading: https://bitcoincore.org/bin/bitcoin-core-30.0/SHA256SUMS.asc 100% of 10.3 KiB |#######################################################| Elapsed Time: 0:00:00 Time: 0:00:00 Downloaded: SHA256SUMS.asc -Downloading: https://bitcoincore.org/bin/bitcoin-core-29.0/SHA256SUMS +Downloading: https://bitcoincore.org/bin/bitcoin-core-30.0/SHA256SUMS 100% of 2.8 KiB |#######################################################| Elapsed Time: 0:00:00 Time: 0:00:00 Downloaded: SHA256SUMS -Downloading: https://download.oracle.com/berkeley-db/db-4.8.30.NC.tar.gz -File '/home/slaanesh/workspace/fedora/bitcoin-core/db-4.8.30.NC.tar.gz' already present. ``` -When uploading sources, make sure the DB tarball is included even if it has not changed as otherwise will not be available in the Koji build root: +When uploading sources, make sure everything is included even if it has not changed as otherwise will not be available in the Koji build root: ``` -$ fedpkg new-sources bitcoin-29.0.tar.gz SHA256SUMS SHA256SUMS.asc db-4.8.30.NC.tar.gz -File already uploaded: db-4.8.30.NC.tar.gz -Uploading: bitcoin-29.0.tar.gz +$ fedpkg new-sources bitcoin-30.0.tar.gz SHA256SUMS SHA256SUMS.asc +Uploading: bitcoin-30.0.tar.gz ######################################################################## 100.0% Uploading: SHA256SUMS ######################################################################## 100.0% @@ -42,12 +39,12 @@ After this, based on the list of keys that have signed the release and that are ``` $ ./bitcoin-gpg.sh Prepare official script to verify releases to work offline... done. -Creating GPG keyring with public keys that have signed release 29.0... done. +Creating GPG keyring with public keys that have signed release 30.0... done. ``` After this, it's time to commit and build: ``` $ git add bitcoin-offline-pubring.gpg -$ git commit -a -m "Update to 29.0" +$ git commit -a -m "Update to 30.0" $ git push $ fedpkg build --nowait ``` diff --git a/README.server.redhat b/README.server.redhat index 7169b2e..310888f 100644 --- a/README.server.redhat +++ b/README.server.redhat @@ -49,18 +49,8 @@ group, then these commands should be sufficient: chown -R bitcoin.bitcoin /etc/bitcoin chmod -R u+rw,g+r,o= /etc/bitcoin -Berkeley DB ------------ - -On all platforms, including RHEL/CentOS/Fedora and the upstream build, bitcoin -uses Berkeley DB 4.8. -Oracle makes clear that binary compatibility is not guaranteed even between minor -releases of Berkeley DB. This has implications if you move your wallet to and -from a system with a different Berkeley DB version. - -It is strongly recommended that if you change Berkeley DB versions you first -dump your wallet from the old system into a text file, and then import the -wallet into the new system. +Legeacy wallets +--------------- To dump or import a wallet from a Bitcoin daemon, you will need to use the bitcoin-cli utility. diff --git a/bitcoin-core.spec b/bitcoin-core.spec index b51b197..0099f4c 100644 --- a/bitcoin-core.spec +++ b/bitcoin-core.spec @@ -5,7 +5,7 @@ %bcond_with extended_tests Name: bitcoin-core -Version: 29.2 +Version: 30.0 Release: %autorelease Summary: Peer to Peer Cryptographic Currency License: MIT @@ -39,23 +39,21 @@ Source12: README.gui.redhat Source13: README.utils.redhat Source14: README.server.redhat -# Berkeley DB will be dropped in Bitcoin 30.0! -# https://github.com/bitcoin/bitcoin/issues/20160 - -# Berkeley DB non-strong cryptography variant (NC) -Source15: https://download.oracle.com/berkeley-db/db-4.8.30.NC.tar.gz -Source16: db-4.8.30.NC-format-security.patch -Source17: db-4.8.30.NC-configure-c99.patch - # AppStream metadata Source18: %{project_name}-qt.metainfo.xml # Patch verify script to use local keyring Patch0: %{project_name}-verify-offline.patch +# Patch to set the shared object version to the main version +Patch1: %{project_name}-shared.patch + BuildRequires: boost-devel >= 1.64.0 +BuildRequires: capnproto +BuildRequires: capnproto-devel BuildRequires: checkpolicy BuildRequires: desktop-file-utils +BuildRequires: doxygen BuildRequires: gnupg2 BuildRequires: libappstream-glib BuildRequires: cmake > 3.22 @@ -66,28 +64,38 @@ BuildRequires: pkgconfig(libevent_pthreads) >= 2.1.8 BuildRequires: pkgconfig(libqrencode) BuildRequires: pkgconfig(libzmq) >= 4 BuildRequires: pkgconfig(sqlite3) >= 3.7.17 -BuildRequires: qt5-linguist -BuildRequires: qt5-qtbase-devel +BuildRequires: qt6-qtbase-devel +BuildRequires: qt6-qttools-devel BuildRequires: systemd BuildRequires: systemtap-sdt-devel -# For Berkeley BDB -BuildRequires: autoconf -BuildRequires: automake -BuildRequires: libtool +Requires: %{name}-desktop = %{version}-%{release} +Requires: %{name}-server = %{version}-%{release} +Requires: %{name}-utils = %{version}-%{release} +Requires: lib%{project_name}kernel = %{version}-%{release} %description Bitcoin is a digital cryptographic currency that uses peer-to-peer technology to operate with no central authority or banks; managing transactions and the issuing of bitcoins is carried out collectively by the network. +This package installs the full Bitcoin Core distribution, with utilities, server +and desktop (graphical wallet) components. + +%package -n lib%{project_name}kernel +Summary: Consensus engine and support library + +%description -n lib%{project_name}kernel +Bitcoin Core consensus engine. A stateful library that can spawn threads, do +caching, do I/O, and many other things which one may not normally expect from a +library. + %package desktop Summary: Peer to Peer Cryptographic Currency -Conflicts: bitcoin -Provides: bundled(leveldb) = 1.22.0 -Provides: bundled(libdb) = 4.8.30.NC -Provides: bundled(secp256k1) = 0.1 -Provides: bundled(univalue) = 1.1.3 +Provides: bundled(leveldb) +Provides: bundled(libmultiprocess) +Provides: bundled(secp256k1) +Provides: bundled(univalue) %description desktop Bitcoin is a digital cryptographic currency that uses peer-to-peer technology to @@ -99,9 +107,7 @@ to run a Bitcoin wallet, this is probably the package you want. %package devel Summary: Peer-to-peer digital currency -Conflicts: bitcoin-devel -Provides: %{name}-libs = %{version}-%{release} -Obsoletes: %{name}-libs < %{version}-%{release} +Requires: lib%{project_name} = %{version}-%{release} %description devel This package contains the bitcoin utility tool. @@ -110,7 +116,6 @@ Most people do not need this package installed. %package utils Summary: Peer-to-peer digital currency -Conflicts: bitcoin-utils %description utils Bitcoin is an experimental new digital currency that enables instant payments to @@ -123,13 +128,12 @@ control a Bitcoin server via its RPC protocol, and bitcoin-tx, a utility to create custom Bitcoin transactions. %package server -Summary: Peer-to-peer digital currency -Conflicts: bitcoin-server -Requires: (%{name}-selinux >= 0.1 if selinux-policy) -Provides: bundled(leveldb) = 1.22.0 -Provides: bundled(libdb) = 4.8.30.NC -Provides: bundled(secp256k1) = 0.1 -Provides: bundled(univalue) = 1.1.3 +Summary: Peer-to-peer digital currency +Requires: (%{name}-selinux >= 0.1 if selinux-policy) +Provides: bundled(leveldb) +Provides: bundled(libmultiprocess) +Provides: bundled(secp256k1) +Provides: bundled(univalue) %description server This package provides a stand-alone bitcoin-core daemon. For most users, this @@ -151,20 +155,6 @@ contrib/verify-binaries/verify.py --min-good-sigs 3 bin %{SOURCE2} %{SOURCE0} # Check the hash of the tarball, not in the same folder where we are now: grep -q $(sha256sum %{SOURCE0}) %{SOURCE2} -# No publicly available hash file, check it against what bitcoin-core expects: -export BDB_HASH=$(grep sha256_hash depends/packages/bdb.mk | sed -e "s/.*=//g") -echo $BDB_HASH %{SOURCE15} | sha256sum -c - -# Berkeley DB: -mkdir db4 -tar --strip-components=1 -xzf %{SOURCE15} -C db4 -patch -d db4 -p1 -i ../depends/patches/bdb/clang_cxx_11.patch -patch -d db4 -p1 -i %{SOURCE16} -patch -d db4 -p1 -i %{SOURCE17} -# Avoid any modification timestamp based regeneration of the configure -# script due to patching above: -touch -r db4/dist/configure db4/dist/configure.ac db4/dist/aclocal/*.m4 - # Documentation (sources can not be directly reference with doc) cp -p %{SOURCE11} %{SOURCE12} %{SOURCE13} %{SOURCE14} . @@ -174,24 +164,9 @@ u bitcoin - 'Bitcoin wallet server' /var/lib/%{project_name} - EOF %build -# Build static Berkeley DB reusing all compiler flags / hardening: -pushd db4/build_unix - -%define _configure ../dist/configure -%configure \ - --disable-shared \ - --enable-cxx \ - --disable-replication -%undefine _configure - -%make_build libdb_cxx.a libdb.a -make install_lib install_include DESTDIR=%{_builddir}/%{buildsubdir}/db4 -popd # Bitcoin kernel library used only as part of the testing for now: %cmake \ - -DBerkeleyDB_INCLUDE_DIR=%{_builddir}/%{buildsubdir}/db4%{_includedir}/ \ - -DBerkeleyDB_LIBRARY_RELEASE=%{_builddir}/%{buildsubdir}/db4%{_libdir}/libdb_cxx.a \ -DBUILD_CLI=ON \ -DBUILD_DAEMON=ON \ -DBUILD_GUI=ON \ @@ -200,9 +175,9 @@ popd -DBUILD_TX=ON \ -DBUILD_UTIL=ON \ -DBUILD_UTIL_CHAINSTATE=ON \ + -DENABLE_IPC=ON \ -DENABLE_WALLET=ON \ -DINSTALL_MAN=ON \ - -DWITH_BDB=ON \ -DWITH_DBUS=ON \ -DWITH_QRENCODE=ON \ -DWITH_SQLITE=ON \ @@ -216,9 +191,6 @@ popd find %{buildroot} -name "*.la" -delete -# Remove Bitcoin Kernel Library for now (https://github.com/bitcoin/bitcoin/issues/27587) -rm -frv %{buildroot}%{_libdir} - # Temporary files mkdir -p %{buildroot}%{_tmpfilesdir} install -m 0644 %{SOURCE5} %{buildroot}%{_tmpfilesdir}/%{project_name}.conf @@ -274,6 +246,19 @@ test/functional/test_runner.py --tmpdirprefix `pwd` --extended %postun server %systemd_postun_with_restart %{project_name}.service +%files +%{_bindir}/%{project_name} +%{_libexecdir}/bitcoin-chainstate +%{_libexecdir}/bitcoin-gui +%{_libexecdir}/bitcoin-node +%{_libexecdir}/test_bitcoin +%{_libexecdir}/test_bitcoin-qt +%{_mandir}/man1/bitcoin.1* + +%files -n libbitcoinkernel +%{_libdir}/lib%{project_name}kernel.so.%(echo %{version} | cut -d. -f 1) +%{_libdir}/lib%{project_name}kernel.so.%{version} + %files desktop %license COPYING %doc %{project_name}.conf.example README.gui.redhat README.md SECURITY.md @@ -288,6 +273,8 @@ test/functional/test_runner.py --tmpdirprefix `pwd` --extended %files devel %doc doc/developer-notes.md %{_bindir}/%{project_name}-util +%{_libdir}/pkgconfig/lib%{project_name}kernel.pc +%{_libdir}/lib%{project_name}kernel.so %{_mandir}/man1/%{project_name}-util.1* %files utils diff --git a/db-4.8.30.NC-configure-c99.patch b/db-4.8.30.NC-configure-c99.patch deleted file mode 100644 index 1e2ece2..0000000 --- a/db-4.8.30.NC-configure-c99.patch +++ /dev/null @@ -1,584 +0,0 @@ -Berkeley DB 4.8 is currently unmaintained. This is a downstream-only patch: -https://bugzilla.redhat.com/show_bug.cgi?id=2179373 - -diff -Naur db-4.8.30.NC.old/dist/aclocal/clock.m4 db-4.8.30.NC/dist/aclocal/clock.m4 ---- db-4.8.30.NC.old/dist/aclocal/clock.m4 2023-03-16 17:29:41.590391954 +0100 -+++ db-4.8.30.NC/dist/aclocal/clock.m4 2023-03-16 20:25:53.746678514 +0100 -@@ -21,6 +21,8 @@ - AC_CACHE_CHECK([for clock_gettime monotonic clock], db_cv_clock_monotonic, [ - AC_TRY_RUN([ - #include -+#include -+int - main() { - struct timespec t; - return (clock_gettime(CLOCK_MONOTONIC, &t) != 0); -diff -Naur db-4.8.30.NC.old/dist/aclocal/mutex.m4 db-4.8.30.NC/dist/aclocal/mutex.m4 ---- db-4.8.30.NC.old/dist/aclocal/mutex.m4 2023-03-16 17:29:41.591391960 +0100 -+++ db-4.8.30.NC/dist/aclocal/mutex.m4 2023-03-16 20:46:57.039502577 +0100 -@@ -4,6 +4,8 @@ - AC_DEFUN(AM_PTHREADS_SHARED, [ - AC_TRY_RUN([ - #include -+#include -+int - main() { - pthread_cond_t cond; - pthread_mutex_t mutex; -@@ -24,7 +26,8 @@ - pthread_mutexattr_destroy(&mutexattr)); - }], [db_cv_mutex="$1"],, - AC_TRY_LINK([ --#include ],[ -+#include -+#include ],[ - pthread_cond_t cond; - pthread_mutex_t mutex; - pthread_condattr_t condattr; -@@ -46,6 +49,8 @@ - AC_DEFUN(AM_PTHREADS_PRIVATE, [ - AC_TRY_RUN([ - #include -+#include -+int - main() { - pthread_cond_t cond; - pthread_mutex_t mutex; -@@ -64,7 +69,8 @@ - pthread_mutexattr_destroy(&mutexattr)); - }], [db_cv_mutex="$1"],, - AC_TRY_LINK([ --#include ],[ -+#include -+#include ],[ - pthread_cond_t cond; - pthread_mutex_t mutex; - pthread_condattr_t condattr; -@@ -158,7 +164,8 @@ - # LWP threads: _lwp_XXX - if test "$db_cv_mutex" = no; then - AC_TRY_LINK([ -- #include ],[ -+ #include -+ #include ],[ - static lwp_mutex_t mi = SHAREDMUTEX; - static lwp_cond_t ci = SHAREDCV; - lwp_mutex_t mutex = mi; -@@ -174,7 +181,8 @@ - LIBS="$LIBS -lthread" - AC_TRY_LINK([ - #include -- #include ],[ -+ #include -+ #include ],[ - mutex_t mutex; - cond_t cond; - int type = USYNC_PROCESS; -@@ -189,7 +197,8 @@ - if test "$db_cv_mutex" = no -o "$db_cv_mutex" = ui_only; then - AC_TRY_LINK([ - #include -- #include ],[ -+ #include -+ #include ],[ - mutex_t mutex; - cond_t cond; - int type = USYNC_PROCESS; -@@ -211,7 +220,8 @@ - # anyway. - # - # x86/gcc: FreeBSD, NetBSD, BSD/OS, Linux -- AC_TRY_COMPILE(,[ -+ AC_TRY_COMPILE([ -+ #include ],[ - #if (defined(i386) || defined(__i386__)) && defined(__GNUC__) - exit(0); - #else -@@ -220,7 +230,8 @@ - ], [db_cv_mutex="$db_cv_mutex/x86/gcc-assembly"]) - - # x86_64/gcc: FreeBSD, NetBSD, BSD/OS, Linux -- AC_TRY_COMPILE(,[ -+ AC_TRY_COMPILE([ -+ #include ],[ - #if (defined(x86_64) || defined(__x86_64__)) && defined(__GNUC__) - exit(0); - #else -@@ -242,7 +253,8 @@ - ], [db_cv_mutex="$db_cv_mutex/Solaris/_lock_try/membar"]) - - # Sparc/gcc: SunOS, Solaris, ultrasparc assembler support -- AC_TRY_COMPILE(,[ -+ AC_TRY_COMPILE([ -+ #include ],[ - #if defined(__sparc__) && defined(__GNUC__) - asm volatile ("membar #StoreStore|#StoreLoad|#LoadStore"); - exit(0); -@@ -280,7 +292,8 @@ - # Try HPPA before general msem test, it needs special alignment. - if test "$db_cv_mutex" = no; then - AC_TRY_LINK([ --#include ],[ -+#include -+#include ],[ - #if defined(__hppa) - typedef msemaphore tsl_t; - msemaphore x; -@@ -298,7 +311,8 @@ - if test "$db_cv_mutex" = no; then - AC_TRY_LINK([ - #include --#include ],[ -+#include -+#include ],[ - typedef msemaphore tsl_t; - msemaphore x; - msem_init(&x, 0); -@@ -324,7 +338,8 @@ - - # SCO: UnixWare has threads in libthread, but OpenServer doesn't. - if test "$db_cv_mutex" = no; then --AC_TRY_COMPILE(,[ -+AC_TRY_COMPILE([ -+#include ],[ - #if defined(__USLC__) - exit(0); - #else -@@ -381,7 +396,8 @@ - - # Tru64/cc - if test "$db_cv_mutex" = no; then --AC_TRY_COMPILE(,[ -+AC_TRY_COMPILE([ -+#include ],[ - #if defined(__alpha) && defined(__DECC) - exit(0); - #else -@@ -392,7 +408,8 @@ - - # Alpha/gcc - if test "$db_cv_mutex" = no; then --AC_TRY_COMPILE(,[ -+AC_TRY_COMPILE([ -+#include ],[ - #if defined(__alpha) && defined(__GNUC__) - exit(0); - #else -@@ -403,7 +420,8 @@ - - # ARM/gcc: Linux - if test "$db_cv_mutex" = no; then --AC_TRY_COMPILE(,[ -+AC_TRY_COMPILE([ -+#include ],[ - #if defined(__arm__) && defined(__GNUC__) - exit(0); - #else -@@ -414,7 +432,8 @@ - - # MIPS/gcc: Linux - if test "$db_cv_mutex" = no; then --AC_TRY_COMPILE(,[ -+AC_TRY_COMPILE([ -+#include ],[ - #if (defined(__mips) || defined(__mips__)) && defined(__GNUC__) - exit(0); - #else -@@ -425,7 +444,8 @@ - - # PaRisc/gcc: HP/UX - if test "$db_cv_mutex" = no; then --AC_TRY_COMPILE(,[ -+AC_TRY_COMPILE([ -+#include ],[ - #if (defined(__hppa) || defined(__hppa__)) && defined(__GNUC__) - exit(0); - #else -@@ -436,7 +456,8 @@ - - # PPC/gcc: - if test "$db_cv_mutex" = no; then --AC_TRY_COMPILE(,[ -+AC_TRY_COMPILE([ -+#include ],[ - #if (defined(__powerpc__) || defined(__ppc__)) && defined(__GNUC__) - exit(0); - #else -@@ -447,7 +468,8 @@ - - # 68K/gcc: SunOS - if test "$db_cv_mutex" = no; then --AC_TRY_COMPILE(,[ -+AC_TRY_COMPILE([ -+#include ],[ - #if (defined(mc68020) || defined(sun3)) && defined(__GNUC__) - exit(0); - #else -@@ -458,7 +480,8 @@ - - # S390/cc: IBM OS/390 Unix - if test "$db_cv_mutex" = no; then --AC_TRY_COMPILE(,[ -+AC_TRY_COMPILE([ -+#include ],[ - #if defined(__MVS__) && defined(__IBMC__) - exit(0); - #else -@@ -469,7 +492,8 @@ - - # S390/gcc: Linux - if test "$db_cv_mutex" = no; then --AC_TRY_COMPILE(,[ -+AC_TRY_COMPILE([ -+#include ],[ - #if defined(__s390__) && defined(__GNUC__) - exit(0); - #else -@@ -480,7 +504,8 @@ - - # ia64/gcc: Linux - if test "$db_cv_mutex" = no; then --AC_TRY_COMPILE(,[ -+AC_TRY_COMPILE([ -+#include ],[ - #if defined(__ia64) && defined(__GNUC__) - exit(0); - #else -@@ -491,7 +516,8 @@ - - # uts/cc: UTS - if test "$db_cv_mutex" = no; then --AC_TRY_COMPILE(,[ -+AC_TRY_COMPILE([ -+#include ],[ - #if defined(_UTS) - exit(0); - #else -@@ -812,7 +838,8 @@ - fi - - if test "$db_cv_atomic" = no; then -- AC_TRY_COMPILE(,[ -+ AC_TRY_COMPILE([ -+ #include ],[ - #if ((defined(i386) || defined(__i386__)) && defined(__GNUC__)) - exit(0); - #elif ((defined(x86_64) || defined(__x86_64__)) && defined(__GNUC__)) -@@ -825,7 +852,8 @@ - - if test "$db_cv_atomic" = no; then - AC_TRY_LINK([ --#include ],[ -+#include -+#include ],[ - volatile unsigned val = 1; - exit (atomic_inc_uint_nv(&val) != 2 || - atomic_dec_uint_nv(&val) != 1 || -diff -Naur db-4.8.30.NC.old/dist/aclocal/sequence.m4 db-4.8.30.NC/dist/aclocal/sequence.m4 ---- db-4.8.30.NC.old/dist/aclocal/sequence.m4 2023-03-16 17:29:41.591391960 +0100 -+++ db-4.8.30.NC/dist/aclocal/sequence.m4 2023-03-16 21:47:07.623110108 +0100 -@@ -43,6 +43,9 @@ - # test, which won't test for the appropriate printf format strings. - if test "$db_cv_build_sequence" = "yes"; then - AC_TRY_RUN([ -+ #include -+ #include -+ int - main() { - $db_cv_seq_type l; - unsigned $db_cv_seq_type u; -@@ -59,7 +62,9 @@ - return (1); - return (0); - }],, [db_cv_build_sequence="no"], -- AC_TRY_LINK(,[ -+ AC_TRY_LINK([ -+ #include -+ #include ],[ - $db_cv_seq_type l; - unsigned $db_cv_seq_type u; - char buf@<:@100@:>@; -diff -Naur db-4.8.30.NC.old/dist/configure db-4.8.30.NC/dist/configure ---- db-4.8.30.NC.old/dist/configure 2023-03-16 17:29:41.587391937 +0100 -+++ db-4.8.30.NC/dist/configure 2023-03-17 15:34:52.507864862 +0100 -@@ -3057,7 +3057,7 @@ - - DB_VERSION_PATCH="30" - --DB_VERSION_STRING='"Berkeley DB 4.8.30: (April 9, 2010)"' -+DB_VERSION_STRING='"Berkeley DB 4.8.30: (March 17, 2023)"' - - - # Process all options before using them. -@@ -18756,6 +18756,7 @@ - /* end confdefs.h. */ - - #include -+#include - int - main () - { -@@ -18792,6 +18793,8 @@ - /* end confdefs.h. */ - - #include -+#include -+int - main() { - pthread_cond_t cond; - pthread_mutex_t mutex; -@@ -18828,6 +18831,7 @@ - /* end confdefs.h. */ - - #include -+#include - int - main () - { -@@ -18864,6 +18868,8 @@ - /* end confdefs.h. */ - - #include -+#include -+int - main() { - pthread_cond_t cond; - pthread_mutex_t mutex; -@@ -18899,6 +18905,7 @@ - /* end confdefs.h. */ - - #include -+#include - int - main () - { -@@ -18933,6 +18940,8 @@ - /* end confdefs.h. */ - - #include -+#include -+int - main() { - pthread_cond_t cond; - pthread_mutex_t mutex; -@@ -18967,6 +18976,7 @@ - /* end confdefs.h. */ - - #include -+#include - int - main () - { -@@ -19001,6 +19011,8 @@ - /* end confdefs.h. */ - - #include -+#include -+int - main() { - pthread_cond_t cond; - pthread_mutex_t mutex; -@@ -19038,6 +19050,7 @@ - /* end confdefs.h. */ - - #include -+ #include - int - main () - { -@@ -19069,6 +19082,7 @@ - - #include - #include -+ #include - int - main () - { -@@ -19099,6 +19113,7 @@ - - #include - #include -+ #include - int - main () - { -@@ -19136,6 +19151,7 @@ - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - -+ #include - int - main () - { -@@ -19159,6 +19175,7 @@ - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - -+ #include - int - main () - { -@@ -19210,6 +19227,7 @@ - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - -+ #include - int - main () - { -@@ -19277,6 +19295,7 @@ - /* end confdefs.h. */ - - #include -+#include - int - main () - { -@@ -19310,6 +19329,7 @@ - - #include - #include -+#include - int - main () - { -@@ -19366,6 +19386,7 @@ - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - -+#include - int - main () - { -@@ -19497,6 +19518,7 @@ - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - -+#include - int - main () - { -@@ -19522,6 +19544,7 @@ - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - -+#include - int - main () - { -@@ -19547,6 +19570,7 @@ - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - -+#include - int - main () - { -@@ -19572,6 +19596,7 @@ - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - -+#include - int - main () - { -@@ -19597,6 +19622,7 @@ - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - -+#include - int - main () - { -@@ -19622,6 +19648,7 @@ - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - -+#include - int - main () - { -@@ -19647,6 +19674,7 @@ - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - -+#include - int - main () - { -@@ -19672,6 +19700,7 @@ - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - -+#include - int - main () - { -@@ -19697,6 +19726,7 @@ - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - -+#include - int - main () - { -@@ -19722,6 +19752,7 @@ - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - -+#include - int - main () - { -@@ -19747,6 +19778,7 @@ - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - -+#include - int - main () - { -@@ -20198,6 +20230,7 @@ - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - -+ #include - int - main () - { -@@ -20225,6 +20258,7 @@ - /* end confdefs.h. */ - - #include -+#include - int - main () - { -@@ -20743,6 +20777,8 @@ - /* end confdefs.h. */ - - #include -+#include -+int - main() { - struct timespec t; - return (clock_gettime(CLOCK_MONOTONIC, &t) != 0); -@@ -21600,6 +21636,8 @@ - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - -+ #include -+ #include - int - main () - { -@@ -21634,6 +21672,9 @@ - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - -+ #include -+ #include -+ int - main() { - $db_cv_seq_type l; - unsigned $db_cv_seq_type u; diff --git a/db-4.8.30.NC-format-security.patch b/db-4.8.30.NC-format-security.patch deleted file mode 100644 index 0781cbf..0000000 --- a/db-4.8.30.NC-format-security.patch +++ /dev/null @@ -1,42 +0,0 @@ -diff -Naur db-4.8.30.NC.old/repmgr/repmgr_net.c db-4.8.30.NC/repmgr/repmgr_net.c ---- db-4.8.30.NC.old/repmgr/repmgr_net.c 2021-10-03 10:22:53.391893577 +0200 -+++ db-4.8.30.NC/repmgr/repmgr_net.c 2021-10-03 10:23:03.599070978 +0200 -@@ -1331,7 +1331,7 @@ - } - - ret = net_errno; -- __db_err(env, ret, why); -+ __db_err(env, ret, "%s", why); - clean: if (s != INVALID_SOCKET) - (void)closesocket(s); - return (ret); -diff -Naur db-4.8.30.NC.old/txn/txn.c db-4.8.30.NC/txn/txn.c ---- db-4.8.30.NC.old/txn/txn.c 2021-10-03 10:22:53.445894516 +0200 -+++ db-4.8.30.NC/txn/txn.c 2021-10-03 10:23:03.632071552 +0200 -@@ -113,7 +113,7 @@ - return (ret); - if (parent != NULL && !F_ISSET(parent, TXN_SNAPSHOT) && - LF_ISSET(DB_TXN_SNAPSHOT)) { -- __db_errx(env, -+ __db_errx(env, "%s", - "Child transaction snapshot setting must match parent"); - return (EINVAL); - } -@@ -168,7 +168,7 @@ - - *txnpp = NULL; - if ((ret = __os_calloc(env, 1, sizeof(DB_TXN), &txn)) != 0) { -- __db_errx(env, TxnAlloc); -+ __db_errx(env, "%s", TxnAlloc); - return (ret); - } - -@@ -315,7 +315,7 @@ - int ret; - - if ((ret = __os_calloc(env, 1, sizeof(DB_TXN), &txn)) != 0) { -- __db_errx(env, TxnAlloc); -+ __db_errx(env, "%s", TxnAlloc); - return (ret); - } - diff --git a/sources b/sources index 60ad8be..20624b8 100644 --- a/sources +++ b/sources @@ -1,4 +1,3 @@ -SHA512 (bitcoin-29.2.tar.gz) = d858c59029f6256adecd32b26cede3f816d695f8168ddcc1cda2e775f08a90b6f29376d2354020ec8a1264729e06ceb6aa6f86d16e2c3c1a2d8003b4056c8251 -SHA512 (SHA256SUMS) = b1c507992a10fd36a52be83f2dd859551be105d10bf455d8463f0f3a868b8353b6934448bd51fffa5d364bb9e3733b2f0d05721502c670e3dec85d5eedefac66 -SHA512 (SHA256SUMS.asc) = e6e85e75f40d9091e36c80a9a7154dedf62ac363b57e6e24608ef016406c864738a3095057745379d577a10099accdfb05e5f29a109040bd111ca7fb812e1806 -SHA512 (db-4.8.30.NC.tar.gz) = 8d313f1f896e0b0c05cc510c0313324743de3fb660a0bd948c957d5a2d50f1625d8a9a36ec4e6fea09daf1d682dbe1ffccd5c3ec5f066eef72f7525343d0194c +SHA512 (bitcoin-30.0.tar.gz) = 70f0cd08cccb0b6668dc829d73ef93bd2c9cfba26b2a0ff8057db21d2ce387c7e0f60ab90019fffe9adf5c87f7ea78279f24169d5db29cf8edf9719668a8176a +SHA512 (SHA256SUMS) = 3583a13fdde7432f2ca9c8cd7919c153e8e753b1cb89d16e9fdf15ca81cfee791aa86a794d6f639c51f134a93b5f3f79c152027d77fd3f57312ef75641f17271 +SHA512 (SHA256SUMS.asc) = 993e1964fb2fbf0811f948e539f04b9f9de4713c80d11318004dc721d1dcc44d9dbe43a49605d2074d4056c922bb8498b7d796410f0df48eb2e208ec4f3f2386 From 5d445bbbac0c9b96d040e902bb19a1a74720ac7a Mon Sep 17 00:00:00 2001 From: Simone Caronni Date: Fri, 17 Oct 2025 12:31:27 +0200 Subject: [PATCH 14/21] Add missing patch --- bitcoin-shared.patch | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 bitcoin-shared.patch diff --git a/bitcoin-shared.patch b/bitcoin-shared.patch new file mode 100644 index 0000000..2d76da2 --- /dev/null +++ b/bitcoin-shared.patch @@ -0,0 +1,9 @@ +diff -Naur bitcoin-30.0.old/src/kernel/CMakeLists.txt bitcoin-30.0/src/kernel/CMakeLists.txt +--- bitcoin-30.0.old/src/kernel/CMakeLists.txt 2025-10-16 18:35:05.538795833 +0200 ++++ bitcoin-30.0/src/kernel/CMakeLists.txt 2025-10-16 18:37:54.715894722 +0200 +@@ -124,3 +124,5 @@ + DESTINATION ${CMAKE_INSTALL_LIBDIR} + COMPONENT libbitcoinkernel + ) ++ ++set_target_properties(bitcoinkernel PROPERTIES VERSION ${CLIENT_VERSION_MAJOR}.${CLIENT_VERSION_MINOR} SOVERSION ${CLIENT_VERSION_MAJOR}) From 12f71fded57aa90e211f77485d1baaded9da40d1 Mon Sep 17 00:00:00 2001 From: Simone Caronni Date: Wed, 22 Oct 2025 09:24:18 +0200 Subject: [PATCH 15/21] Fix typo --- bitcoin-core.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bitcoin-core.spec b/bitcoin-core.spec index 0099f4c..163cf5a 100644 --- a/bitcoin-core.spec +++ b/bitcoin-core.spec @@ -107,7 +107,7 @@ to run a Bitcoin wallet, this is probably the package you want. %package devel Summary: Peer-to-peer digital currency -Requires: lib%{project_name} = %{version}-%{release} +Requires: lib%{project_name}kernel = %{version}-%{release} %description devel This package contains the bitcoin utility tool. From 0877fba3a11f63c3dc4a9a296a951d9f63758931 Mon Sep 17 00:00:00 2001 From: Simone Caronni Date: Thu, 20 Nov 2025 10:37:48 +0100 Subject: [PATCH 16/21] More variable subsitution --- bitcoin-core.spec | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/bitcoin-core.spec b/bitcoin-core.spec index 163cf5a..91c92a3 100644 --- a/bitcoin-core.spec +++ b/bitcoin-core.spec @@ -12,9 +12,9 @@ License: MIT URL: https://bitcoincore.org/ # In .gitignore, so no chance to commit to SCM: -Source0: https://bitcoincore.org/bin/bitcoin-core-%{version}/%{project_name}-%{version}.tar.gz -Source1: https://bitcoincore.org/bin/bitcoin-core-%{version}/SHA256SUMS.asc -Source2: https://bitcoincore.org/bin/bitcoin-core-%{version}/SHA256SUMS +Source0: https://bitcoincore.org/bin/%{name}-%{version}/%{project_name}-%{version}.tar.gz +Source1: https://bitcoincore.org/bin/%{name}-%{version}/SHA256SUMS.asc +Source2: https://bitcoincore.org/bin/%{name}-%{version}/SHA256SUMS # Key verificaton process - Make official verify method work offline # - Keys listed to sign the release are listed in SHA256SUMS.asc. @@ -136,13 +136,13 @@ Provides: bundled(secp256k1) Provides: bundled(univalue) %description server -This package provides a stand-alone bitcoin-core daemon. For most users, this +This package provides a stand-alone %{name} daemon. For most users, this package is only needed if they need a full-node without the graphical client. Some third party wallet software will want this package to provide the actual -bitcoin-core node they use to connect to the network. +%{name} node they use to connect to the network. -If you use the graphical bitcoin-core client then you almost certainly do not +If you use the graphical %{name} client then you almost certainly do not need this package. %prep @@ -159,7 +159,7 @@ grep -q $(sha256sum %{SOURCE0}) %{SOURCE2} cp -p %{SOURCE11} %{SOURCE12} %{SOURCE13} %{SOURCE14} . # Create a sysusers.d config file -cat >bitcoin-core.sysusers.conf <%{name}.sysusers.conf < Date: Fri, 28 Nov 2025 07:50:53 -0500 Subject: [PATCH 17/21] Rebuild for capnproto 1.2.0 From 0d3b5fc33127b312a4f14b011df26b9a5ca21239 Mon Sep 17 00:00:00 2001 From: Simone Caronni Date: Sat, 3 Jan 2026 11:04:18 +0100 Subject: [PATCH 18/21] Update to 30.1 --- bitcoin-core.spec | 2 +- bitcoin-offline-pubring.gpg | Bin 70592 -> 69744 bytes sources | 6 +++--- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/bitcoin-core.spec b/bitcoin-core.spec index 91c92a3..bae3698 100644 --- a/bitcoin-core.spec +++ b/bitcoin-core.spec @@ -5,7 +5,7 @@ %bcond_with extended_tests Name: bitcoin-core -Version: 30.0 +Version: 30.1 Release: %autorelease Summary: Peer to Peer Cryptographic Currency License: MIT diff --git a/bitcoin-offline-pubring.gpg b/bitcoin-offline-pubring.gpg index 3ad550acec98fd5132156f2d155981adce2acc32..ecd29f51adf8ef2e27dca8353b42b77fdbe1dd48 100644 GIT binary patch delta 11474 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 h_)2l<S+MMv{MQ&W36{~w4%fA|0Z delta 12200 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 E3y?8@^#A|> diff --git a/sources b/sources index 20624b8..57bfb22 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (bitcoin-30.0.tar.gz) = 70f0cd08cccb0b6668dc829d73ef93bd2c9cfba26b2a0ff8057db21d2ce387c7e0f60ab90019fffe9adf5c87f7ea78279f24169d5db29cf8edf9719668a8176a -SHA512 (SHA256SUMS) = 3583a13fdde7432f2ca9c8cd7919c153e8e753b1cb89d16e9fdf15ca81cfee791aa86a794d6f639c51f134a93b5f3f79c152027d77fd3f57312ef75641f17271 -SHA512 (SHA256SUMS.asc) = 993e1964fb2fbf0811f948e539f04b9f9de4713c80d11318004dc721d1dcc44d9dbe43a49605d2074d4056c922bb8498b7d796410f0df48eb2e208ec4f3f2386 +SHA512 (bitcoin-30.1.tar.gz) = fd89386524a517def40a94e91e917208eed79492be092cb13a7dc2be07eff555b621197ac50de2e230fb6939ec4ba1481934c3a6172b1fd4f83d404a50c3fa5d +SHA512 (SHA256SUMS) = 0a4ff990543a523e12adeb80a32e8de7471ff28b3e5e2bdde5e1609d525ce503605c931574279ef0ed6059d53afca83bedb3ccc3c692b7d2e25dcbb7a11517f9 +SHA512 (SHA256SUMS.asc) = 2526db64305d0e1349a7bf48ca1bdf0aad6aa10b29e4877bae0dbc5bff1a152dc3e926105f26684f0c52d8fe447da015d5269dc725574049a42eff54890cb3f2 From 644ec4c470aa3f03dad00ed76440dd08f37dacc7 Mon Sep 17 00:00:00 2001 From: Simone Caronni Date: Sat, 3 Jan 2026 11:52:54 +0100 Subject: [PATCH 19/21] Adjust sysusers configuration file installation --- bitcoin-core.spec | 20 ++++++++------------ bitcoin.sysusers.conf | 1 + 2 files changed, 9 insertions(+), 12 deletions(-) create mode 100644 bitcoin.sysusers.conf diff --git a/bitcoin-core.spec b/bitcoin-core.spec index bae3698..ed4d015 100644 --- a/bitcoin-core.spec +++ b/bitcoin-core.spec @@ -32,12 +32,13 @@ Source7: %{project_name}.service.system Source8: %{project_name}.service.user Source9: %{project_name}-qt.protocol Source10: %{project_name}-qt.desktop +Source11: %{project_name}.sysusers.conf # Documentation -Source11: %{project_name}.conf.example -Source12: README.gui.redhat -Source13: README.utils.redhat -Source14: README.server.redhat +Source12: %{project_name}.conf.example +Source13: README.gui.redhat +Source14: README.utils.redhat +Source15: README.server.redhat # AppStream metadata Source18: %{project_name}-qt.metainfo.xml @@ -66,7 +67,7 @@ BuildRequires: pkgconfig(libzmq) >= 4 BuildRequires: pkgconfig(sqlite3) >= 3.7.17 BuildRequires: qt6-qtbase-devel BuildRequires: qt6-qttools-devel -BuildRequires: systemd +BuildRequires: systemd-rpm-macros BuildRequires: systemtap-sdt-devel Requires: %{name}-desktop = %{version}-%{release} @@ -156,12 +157,7 @@ contrib/verify-binaries/verify.py --min-good-sigs 3 bin %{SOURCE2} %{SOURCE0} grep -q $(sha256sum %{SOURCE0}) %{SOURCE2} # Documentation (sources can not be directly reference with doc) -cp -p %{SOURCE11} %{SOURCE12} %{SOURCE13} %{SOURCE14} . - -# Create a sysusers.d config file -cat >%{name}.sysusers.conf < Date: Sat, 3 Jan 2026 10:07:17 -0500 Subject: [PATCH 20/21] Rebuild for capnproto 1.3.0 From fc82495de3b0630058bbc66eab68eb53a12b6b77 Mon Sep 17 00:00:00 2001 From: Simone Caronni Date: Tue, 13 Jan 2026 16:38:15 +0100 Subject: [PATCH 21/21] Update to 30.2 --- bitcoin-core.spec | 2 +- bitcoin-offline-pubring.gpg | Bin 69744 -> 50197 bytes sources | 6 +++--- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/bitcoin-core.spec b/bitcoin-core.spec index ed4d015..3a3ca07 100644 --- a/bitcoin-core.spec +++ b/bitcoin-core.spec @@ -5,7 +5,7 @@ %bcond_with extended_tests Name: bitcoin-core -Version: 30.1 +Version: 30.2 Release: %autorelease Summary: Peer to Peer Cryptographic Currency License: MIT diff --git a/bitcoin-offline-pubring.gpg b/bitcoin-offline-pubring.gpg index ecd29f51adf8ef2e27dca8353b42b77fdbe1dd48..c104426d05cf43f8ee6f2f6f094cd5a75e531232 100644 GIT binary patch delta 301 zcmeycfMse2vjhVJg90NX1CzH?L>dDF14Cw7+CC7TC~=-SE$zU@S8-w@e-}z?d9k+N z;#wi)Gu3;k-uV@;_$SARgB5JnlQ^RwB3|(2i0|u+qsfbM8$=i1{2s~IBsiJR@;b$B8H?Yq0 z%Xuug`@!1H>*HoHGN+{--0YR`%T#3Q9`}Ss!H4~On$?bL#xa$!{(o;aIbs^fjDwpm zP2=ViF%(|D#pm%7yQlX)=lbhU*ZKK!-qy)o2PT76C>&fbBvSPK^7%>PEo+kM+%|AX s+?8nZyY_JMX`Z;zO>)@IeBz$bdqa-1x_tNqUb0H~CQi~s-t delta 19469 zcmb4qbyQs6mUMUH?(V_eHE59FPH+hBuE83DySr;}cXtTx9xMcR5Bja-_cHIzJem3a z=(W20p4D(_)vdjE)wziw5a&6NxBviv6bJ->WZr3*0ssJjg~mbbuU9PYB!tF6e9fUA zHs-<`RC2QUE~{YDlVRDn)csA*B1Z8#IKLOvG2xDpVgheHb1Sv|0u$Cs2G~$q-0x!o zOq6*>frlZ+cp z>>t9^b(5z>r2c~3XV}$sReCAF-z%g)K5%08Ck>sNe3x%Pth*R=U*N3J4$EGN*GT&7 zH)fI$;J`DyO6t3LBP#Hd~SRB7AeP!$&4H^VwweI7gw<_XJ%WEtAv%>aBVCEKZ$%CX3#gR_5+Y zy>!GBK^{|7;y~fSU<)g8+JjTb#zuVs#>I8%a90x==9iAUGsc%qC+I}U?N$7cdszXjXJQGU_BbTWzYj1?B7EQ30 z13dt-r6&}nN!7(0?f^{E((xKE_=!~=QX6ZXSR#PV`C}Ij!nu0Qx*hxHLRIgwct15v zGJ17u17iyt3rA9ECQ?@eTT){aM^ae>16xvlYXbvYH_Lb;2z)S56%qpo4-fWJdwoykBCL0isLyuP6EY~O1OfaGou&5%2KUIKyym#!e9Y74-7MkT5iOX5J~_4)PxOQj&y@ z-BJ}!y}?X-wxdexi^6040qJC!newx_so-1+e!9=_>HNsN9De7riLL9roXaw|8X5p$ zW^V=v{m%e{|1-im1_9Gha2VB=q5loxU6@yJ1ER!>q-C~4T5{>Y5ytL;=pzdB@j>z+ zT{3HJ1w3)QQW7%U^n~RVcD;yP3r|U|T|~sFP@f?c6R~vFu3JV9^>p_$`W{%b)pC`5 zyuTDbDtOe=G%xV2Tvf?S4c7Tt*Cb9WS-=pBvl6D~?7qj78M{e+PQMlU`B~s*h)&L< zniBP}sIig-!b@=LDp%XBSHf#Y-@eAx@(9$o@;$5_--mhJ$B{jH^ds1MqodU&bXbpv z^wPX@5DlgyL$bizJ7GhU!bNbJZumLmso>_YKw;p#LRGXlY({i+tk!YWW455uM^-1f zjlqC~c>OlIjk*u#bi$a7x=e}WB|_sJw*M1h>iWhve$RvqPQ+lcwLvXe~{ROxXTHIBX3nqS@pWu9n!S<)k&uJrS! z9Lj=R{sBTUeO7q5#`c(za#I8F|>H}m%lQ{%ANS+HeVjPQo8$Us=aFr zBV)+f#^qc@JYuT3J6B{C4h}Y^HmUM&B8PTWN@~ zlz&zceYRp*7^5iEi24B^Y`m2JNg9U;V%-xQG?S6>(irU0Rp9hZ3Sp>q)KD-+COy2= zx<4-e{|{lcW)oc~I0P!3`2U9RzXlk+3Fg&vFG2xanh4RWpxpa;h}TsEB1=7gzKJg} z&5;j7kv6sfuId>G4K$?2!vN?6aFI{gdkc<2zqXej^$P@KW|<*B$QhJtx=NtC{|H@^ zWe_1nSABqaf!_{~#p|%xe!^TmUfCL;V(q$?B;L1up&qQeio$*oN)+2pvuJ89``Q{! z5={^G95y3M%9Ph67Z}4($zD}wF4uQg31p&yptdibW}6ib%oS2!!HL1>z_P$?%3>8q zb4PLNd;%1n){t_Eqj{cS11}_mGxddaoDi4tbXaztTLQQn@?IIy#QK}@vHPgzX_(u` zo3Y9wWzGjr-wjXEb~{i-v_U1d5h@TuS3`sUsDwNu1`q@w`#Xn0@`v`y|18G;2W*p7 zV4mPktyCHiHJKPTdc`+KGQtXTJY}8c+Nq(mejs({M@3^_0by2;gt);x?{K3eun`rS zN1c~lPX(zxAB1hX$#NnBEL8GgzG4a$cynOESm*~7nSAKyev(Qao>j)A{g!%78Llc- zIQ{%p5l!+XK#-=us>04qB)3-RBF4o*cGL>%abQbB;l%<-|JLX7CwLl%nEK-fhp*ml z0ur@IE%(lo&$=2Pg6=fH`y^?w8I}qVrQ45gqlovx0h*pZ-$d!hypmr?4LH>_Om4}- z23Gov6cAm%efK2rZafEFje8JD@{&eyvvm~kLN)nB!1xO*ltP|w+0NP|xeMN*jiRsg z?fsp+3csO!0|olkAAkrTpnq355HuDn2o4O70QpOT|Ehie2XIG=U;z~Zw%^si2GCOw z;4GHm^h-MYfEXFpJtd48pn7SQT0UqGMat(rHouRhl9&ao(B3&{rsk#{L79zx+@5Tn zgy=pPBGv->Z;=Vr@q=TCbd9*Xvj@YXwLSXfCfw7)d(Xq;@oq?d4lDWPwzNLMAZ-uO z6eEpG=_ag2cDxt2Pv+yt(>5Jp7UQI8<%{Zea8i+2?{LCu&H(Pf>=yL_z9x1PY^c}R zhT!VlD?7o*m@+6;ZHvT|i$sYn>N&F&3c`~oWcfv)ss&$$rkeQ+HNeoGogOBH(Kc8F zH1qdYf2vK!sW}s}vMbJN98X5Bz2MxYK1<#6??2-|(d67%AxMke`U7q~%m3D72-`c_ zIosLBlR)6Y{wam=G0g-*8r9^Llk=!DcsF>Iy)8^Zf0 zWSa7`NGx1s>!N7ekCM`qoo37|k&ISvYB9lXd@}?1Np;m~6eBmHx^Xue1=}C|1h_yj zriD^qe0LCiEQ4;78y(g6Guu>yk>ZDPm)v4Q*&U^zBPzmBRhLE16oC zg((jA+E*IYmACbqn)dc}4W&Q7F!aST&=;YKl?Q%X7eC^;Adr5f!>M}ng|jWNP(f8L z<)t_mmlER>XYJdIRc57*Xh|V#TlsfM zrtH8Fq`RL&!0-%Jzf5U`_x3{TaS}bJ0GB_w|5sP>pP|$-2pIY2_F>%u77*=$7hXa} z1{etTFQm+1An1FP66zvieK|7j&#<*7NKL+!EdPFvpQ9W>2GvI3(<#INe#l ztX>&U)O=CBSIibipyX~+MF2mykzpFI0H;j_;x0C}*T!8T+6x!rE82Ro2;h7s8AR&E z^M3?d$d|-qz+?Y7c_Zj|`s`64=MdnAWJz=u+SaU&b_xaSBf((4x~*4uN=5zkZ4e>e zq6nQU>~nk5)ca$|_%?j&M>4`%hQ6fmTeb+YHpq{SHU5_Pi^~1HS7z2+uMLQ+EN=C3 z*lF*_L0d}Zn_{vTZy%VB z_`%`Tr$uIPrs88GM&o*8O)IZnXR7mO& z3}#weGvcL9TTHpT@K4er@q&|>2$zcF*!l2C>nOaMOW9B+kNXNHy{6*3JYty~ zX&9a+3bdq5E(Cr&qLN1R?M*w`Fc(triiV-5^MgkJNP_iqhwQYxI?|l#a3xEwCIvCL zMCQY%=*|#^YN1Ur>Ta)8ac*g=U<+)!v%^Q-vS1nBce3s87mKyU63W{+qy1Gjdpn3P z#TB)WT}xyyLEb4%Qc;q{Q3BR~(5z?rUj@O{!pX(R&e0^kTMhI7E(wwUJZK<7!UB@f z>ObWmDn+`U%j;~mRA}GF;3~YC40dngx|We`Qf+4Bg`~)c|Aq`kq>W&A5VwE9J6|f8 z%Xd%hJHbQQo(jW$i_2V`*5{;luEGbF)fI)QXdr6JA)FBTU_c4<$#_u~)p z|946F7ZZhYC(NrE#g%4fefT9IBh&$!kC%L4oc!dPQ)Makkxufh<*)634>Ek0`m{%A9uuk(5P85X9GR?Ou7)BssJ>jHbY0h6$Vwh0 z<*j1q=r|^f`G9`UHZ4X!&O9#B2Z1(Ih;chs_k8Mr#}}xTx;N_+0G1ClAKknPpy{PI&rcnP>Bgr2tj-Nvdh-o35bz7lYrGx9h}lUzDeM zJ&sRz*2I}f*h7Yh^L8v@j2;j3`H5KdjtCyrYQjq^ISQ+`t1WyX5c@gy;`E)%v&|nf zC%K)J^DbkH`tW~3N&Q=0|LyGXuRGf}Wv~F>l~e$bv9YB5O`_2d2c}he3R_GhYA0aR zVQ|-@mEjIawlu%g9a}4~duEfQy3**xCm9WxW6e|jcF{ayIZHUQG-$pl#t~-{%kc-e z2SPpu&1@CQv-8*i>t3kMmEPntVmW7Y^%GawMgj~jjF0m(e`&G1?Eb+T zL3U8{(d`S%Z&xSLG`CdZusrF(p@)5RKmQ$+|6fBwj0DW9lKXt+9$toH-OnieU12Ta zqYk~TsJomuV_Q8hv_Yerm{C`f(N4&V(|f#Y{hh68(>unuD{p;he5i#3Y*LS~K@rC&uP#m#ZJ-Jn3qS_L_F;80cetWYQ^ME?_}?n zgZg9(R_f6O#o0H|;w==gROlPqzb4-8E%0=?17q$(q*}qEM-&`U1E*oe52hnhk!=wA zZ&Hovvgqq#nmY(2+_>B}ZxEC%gf$tRbh3}qbxVmv$GLs!>g{e*IYt`Qhf|K_nu3jK z;D-FDTx>Nv=9>|pD+`57mVSICrF>Vv z^~z(~;mGQQ8tFROZlNB0?+HKy0)U}Fen?y(Jb(&BK>BYa?RQV!2nB~OXY=77Tc1s^ z1S}v*bs3(!Qh&=9POEfoPKA?JHB%#oQ7u|&{$!W4P31P5g>FxesV+vF-pB{v?hz!r zey=+@Pfx*gVzgo76+XU1n0#tOe?v!lNRuHUz7~?yBh#YbWlNMLgfDZ}g4lW+hX(E4 zZ+@iAhLqTKBfAk?8QR0F>gL1x&X5(%5&6g?Uo)CCC>vrFbRP1&vF84{u~p#EqcJh{ zl5N}XM&(&PW_z56acQc~>N3Jrf}+N=Zet@@M(3sYxRv{cIt&`;xJkAz3ruGR0p;#TuF+xJqo3ccpYMqGLSKbPVKp~VA&#wi z1-urQu_xVMDpE^tjA1)YB60)50-%-im6#FFqtgtKrx@&k&EPBj%38RJPhrOj;`;c3$W%Upo;F{>M8WbIsb%)2y z;-N>n@1ct9FmA@!m_pSqB{jo=38^i^9xTl*HNBIc%IZze(~@}7Sof=hvTJ6bq9w*D z$j_|J(5Y?9j;gbYdC+Ayu%UyNZ^p9@QxiP@kyM(5c1S>2z${CGl;uLylM$ks4G&J% z_NgJbEx-+4S$F07{(P=%dG&r~AcMO<|4yqe#tUP&FDoLZ{xaVw5XUjB7s4;JKkh`4#85FyyjEYVWBEKPUK^0ey%IOhNVhV6g*|ex7Z%ow?&rm%!rnyS`&Ay@Wh+RRw;IS5EXfMe8*ebsCD7kwiX^^uJBZQ0E{;di zajZb-leK`5RK1smrM{lQjA)14=p|l@M58;WG^%`z^q$H7i&P-(KY|4Y{jZ8;OADm^ zyWiWbOA3hxga<%FfqsGdOU(YHP+li6FEqe~iu9ki%c)I2waG={M53!hHqo{}DcnJ< zSrWW_{6O97TZzh};n&`53sso3PXcx-q*IAtVCZh$!e14ZRSK$fR{t69DNyQ~ILYCN zU4|cLxOj0mf=C76=1~d?=(Ufhq3Tx@3DI!7w;$QPsi@R#$G{Xqhcxe*nN?*MgueJG zOb1={V_L2iS;PX40L*4D*~zJUMSt!o<+=JrvDJ-V&#tvtgW~CtYJ?VCAqj@j$%QAI zB&vw-N)X#TtBOtL$y_Y$i{l_FP>Hr0=O#(@4sC(?PUB7gEUjT)SAA=_ew!InO;yyD zgs0>8lg|l);=WfLoL+^p*Pon*OFW;~wg&Tzb6r=`^$n@+I#kf{3J=F?-@KBo&zSL; z(vexnziCZoYH?Rc#TFeE^9hV&MuVTsF9QBZaD>Sad96J1CVu|3tOgpu-N-uQSL7H* zZbQe&EGX(igCuNaM)5h5!ko~#!e*{S3%vqKh>#?Y{IMoN++^a0%0(9NW5C3oJ3era zRwlL>h4%ZEN*^md5e$yk5%ZzFS~A~q7_W#y+G7mqa&#d2%rW**(ogX5mf^#X{vGHP z9;TH@7>iNF&mX_2=hG~aRw)6VvN;<`Wz6rRYCKCiVY}-E$G!ww4G;Mt7(AG2UVfG% zgd-lPPh+k1IcxyHx8|e?SutD$EdfJIJv#o}d@0v0i0<)NY2NsI(vg14x-DFjP5=PN z?Dn*2Xmskk$-lpdMvyQt__jdEvd zsWmB+vOihrufX+Jw>AdGMf z=@=G^Z433y0-AW<9Cq8-_~+uAqyd;d2Z_$xPV3LrhyZ|@z1i!11Ug+S$}`Nnrs zk%0efH{1~L>LolxbaTJ+lmw#}<@nw}b?1oou;khv%n;KJFu3u*1OhsI)sH6?k{1*w z3dg8TGl0w1sjR0|qa>+?iW;Uwqp*LFZ|3>EZ*=(I`%YE^LjBq}WaTzN>dOtFn+vp6 zy$|I?{F(*s1!qBpY6broGps{lhXBIDg!n+>V#5Qdu>bQO5TSnW;gOT=T$LQw2OwH<%lV>o#>}Z za3-k{*Gs=&gL=IZ;Lje8THP-@M9q^hR3_1D8b{42;NwRTm`y|Iud}o_JyBB000iw z-x$~n0ALIK3hRrX)UK*!@-gi=;`ZVp>iAfcDMtSgkW@OE?$F77Fvr>S&{b({RIOd^ z!yf`(PWG2gwPgDH95qd)f2#iwyDH-JC#*+K)ukSW5c*oW$h_{d(nM(2zNoDJ4`Kap z=7P2X003KTCoNdxAn|t)4?=>}Tqvjlq5=v<#n!!saKGmpp*Pdh5@M=MpmPlYji=O} z*$j5F+`6b!WW2Uug!NoZ>Gi7y6RJwncZY(XJ~sgQq*Gv&Qf_cC^w}FruFVnyRlcER z+A<@u47vvmVa?}^Al14I49Cq}M?GiA^VXP0AD`%gr-|OfW7+NrzU<3vhc{(eQI}jY z*OI4--K&PiLxSX{RhKHFc%y*Wtc~kT}1C| zXvqA!Em=qoh!onQ3XYcupWKTug~hcu^+Vn?!jaGS^q^$-D>7EKxDgjer>xN;`p~y1 z^iv>$g9m95^)6t{1%H^Y6jJ&R@So71vCwA$Dr&sPEzN{#EvQm$8ZLpky}09>5FcGP zD=Xk9CZ*)nml3~RaqA$Z_Lu139)&pEGDxGqMT(XT$q8LeynBfp@u=%7lC!djN$*r}X7YceB)&uwf2eaCS$>2bh3UCNAJWTmw#Tka<( zMvZp}`Bw0gU*8va+FVyzB0nO(EObWbR5jPEOlYNJ`x4HnXohK@*h6YONgE0BexePZ z*yfwJue7hlysQ|$x_m)vjP)=4+%?|Qq10B&+Ux7crL%&O89G(4;{V<>*S!BUnHn(? zJ8qESus2LgYS*OhK9FV>d&-f+JWuM^Q3M(`6%#`PCua)-TT&SpTQgD`RdW+ja|1_f z17`zUT2g)|6GJ8|7hAJ`W``LAvS4>6QylJd}SPl6i*=GAY=CiEh>ktzNRRRvhOJbm)VP#1zT zxk`q(d^ub1lfXWBAl*%9toNUsfz%FK0Ap_7RM=q!Vy!-}_R?!zW0Sp+R~#B9ABMFV zgAFbE@k7^$QD1Kz+6xBeug0bzf**V$aG{ihQD3xD8IblkRn{QDJjsZO%R~z0%OcdZ zr4q}p^}!Wd$}qsbJ@d4PXSd}>$+R81eSm?SI^=Lf9hh`1#(hda`SKWD2I~WwI>ZEp z%wSCX+nSHn47kCaw7PLXZImx|nFH`_G z>}g->axirJsTB*|4;bsr%Kf`^0wqh~MyI~Ay#>V9M?iUWl#Xd$P>c;2kwFZ;X>50D zR5#}O#z&pntSPVp0dY5KbQuFioZEV4h8z9R3HK%%wLfp5E=^>41)WoOz?lcUIw5sDhObRiqZ5DXjKy-JmdK#_ zHqUo}?)%JJ_f!lYAOIWz7Y&KfJpsPh+5O1oxm|dz%&WIl@qBB)0m`dLAMHsf75^@? zGs>Wz-H4G*o+^9cxD(#`nOFxg^>ANheXNrTD=9sX=b$6F)|Ur2SVo8tZ5TYz)V($} zJfDv9AQ&rwk~8RD=f0F9H}0~Rd31XmLaj`0PRdyJbh><)p53kDm2UbOM2SYVj5<}U zWS)!e6_DR)iVya3%2jr3eG_4S#u&CqHsGVb0oi0!fKSU?rZQ?h^KRFbY`5K%#BCsE zq+g~GG;VWbF72tY7nOm=+ybUYhe_8yUFY3kiKRzrHvxsCfFzFX{KlF!cB!sWO=|l* z9lq#GI8`2%>T}0N0Lj#yk6Gb8`@0&TVNx+#r>T2Vb!OA_r5XXLvpBr@uz3jP$XKKx zgP{Fn6g-&eX={lVRDi6h@!gpD`@^cgbj`FW-whL0i1!qPmq#&t)!g+*Ul3;!yf<}d zP}AkCjVnXR4a$Y(ZkOX1h7`;Ge1h~~y)zSgAq=y5ihFMwMrf5)@50MwR@}~5B1&{b zcS+!z%zDX>YgIvS9>N`7mTET&;IGks&NS1MaV~(niIa`A-Vbs;c%T|3(EjwFj1_2% z8;f#3?a}eeg0xb4+Tmjk-#s9N-LGLC<41ktyu->$@5CQ)gOh1hqpdjGDJV0w6W~1I zI7;zodd$NvSTGX->B6$wt24)FG&Yyc$d9?oW*v9U*u8k3$p+WTv(A|2zol?YyQIw= zAvp;yuVrM&d3x$guY4~^)5x)Ifr|wy#zM1|v{H)0&?WnL=E>Rd$oS2}FLAjxh}B<1 z5_xVert1fG-~`Oh7FdFXhWlJ8ox@qqaP_WFOf*E3#prCl(VKLwS+kisIvkB`P@L zy6ZVPvx1S5IqI!%!^}9DxKuiZ1FraNwPSMO`{wr*(9UN0W#dKXkb z%AdG7O#U{t{<7I%|JZE*s!TzF%tyQj!BBA6?pedX`qDqLQ-FgC$gJha3zv3!U=Aet zhRNw1{H&Z?)Fj@Hm>`&S{t5S?|E$OH9ru+1={Ni*tSCI@OG%$&@3;1^oHtb1`8LQX zkj9yoo0)SNC5{ZA;h^wDm#Pj6!owAJ0#sfFJu!v+F_*oX*j_>J3S@q1?_ci2n&e8x)pO&6UyPq?ky&aKe(34+ z*8^E2V}eV`npVRLK_y@TkofS)^+@q`pmR;kv!L2q%PVDtSz5l~!u}*R#Y2 z7<1Ahp{hLTk5=1cjNo@$mWgT&F(`&z>Md=lyd}`+y`P-QAGv#r)CsTC%a8FLR?goj z+{axA9cr&F^nP~Rkb^{~_2uOcK}JXn7cN!3VIbaS(YHH{AL0N{GJPYNxK7lyJ85FM zJ5eEfs3`H9beqyT*mb|ptq;7)+Ef&^2bqTnO%)giH%;{M)YW@a>bQ8!VbgZE$9K|6 z>ZDk_UUc&8(`E(9YGoPp{?MhV7Tfo+Od~Jzt?H~~uF*%x8jkSrklyQlRm8o&AVa9& zd=PkpMwh7~F?k9e#O5elYxzQg`t{5wnL93+U1RO6YP9i^`r*IpOHmUL6);tUvui(p zr?@ap@y0**JY_!5M3M!%salhUI7tki1r`CizH1s=k~NL?R>1+4S3q5ti;G3ac_ww( zv*p0J|Mh5jMw7)UFJQsdu-B$-vj!U(9M|trtE=5QOd0E8+SUKShaj6oOj(8nf(m1(IueovOrbsL zG{Lj{l!$ocfYm}<{f$291G*>bo`VgZFrm>7fpR#RlIt=~gkR}>;OXVh?xC-+V3|?1 zx^W`>?|65XMxTM(0@l&!0Sry{WnI=y@bK@Tpd7ZYnLbcy=H!iTPO|;zU;Ol$?!t9a zKCtj5JHJ@z7I99fos=p^%xqaYp?s z?&rMk4j)di6yK7IvH?0^_LJ9qN5I)wu|`8=3_%>{^YfgO~v@ zJ^A(PQ>XZ_<7-F$)%ahG=j3!K2d8wCss~$_5b1z#paT*hH%HDtXlfC#(oJQJR~#{O zB~q6PCzv0umN$zUv8WjT51EMkr7w`bT(RH! z^2-$axB8OvOI`{NK(v3Cm!99I80fbtwon9a`XxPoX2JUblvf?vcV7oK7!A=SsdAfh zaODF_H{^(*N7wjYg0eqN%Lc>JtUUsqMjt2~4MT-TVg_`PtLRo0H7jlj?l3L; z7XivCQm;1k%`h+%(YN@HW*^<*vsTA9f%{Av9yMZF@92};Oh5c=qd_{66TxxW?@1X$ zhU~B*9VJj#qA*d2tP4XMU~g!x;UYqG(YqcqG`qOMxJ1L)sL74`aT{z7;=cK4#0%+-lNwmWj22$0d5004gGJ^N8B6j#EWXk*K-R zNY)je+px9Gh&JXiS1@?SZZ4!X9)6DK@V1p$!)Po^ckVT8%Npg?a~k_cZjp0rB#<$s z=dxO-&MccSe=VvQgi++?TSAQE?+XzykkjpXB`*7Mc+K$roNUI3f}!4f%WO4ou_`sU z2S}ZxtjSdAkcU>HNy)+dCMt(bI;s+Arr8g&kYkt(hJck4X;!e(NONWhuVACzTD|@l zf_)vrZTHOxi4{U*r9t%|M>CTJnYdk4x{HWCJ9`rWQnLt+K{Dy5BXvlV@Lj%)RMcyw z8(!$X&JxPpTn!m&4p)_LY!-lm)sbcW|<&}=%9vX ze{x=bar=$n)@_fRHIH?B(MnZfsq5pVSrf}%tck*;kZZ2rrHLtZkI||I-_pQf>D1KS zaK8cUmjWy=EkbG-9aOV~3dJ(!&uesv(P%>TKIljt`!7Lm`ecEgqL{7z>fU8$XdSGQ|T{L}symf0y9|0zVb+zXoo&ESM$b9uv!DlsHw-9aVD+Vx!rv(V1-zSA*mi$f6UrSN zDVvbPDHqe(#Cu2)L4m(SGGx6FmY7uQnfm@({Hv?4QXT1p@$4#INdEt9aS{Jh2^#oS zg0c<%vBRaPL(aSdy&pOkUsx&uMNi56b7) z=44w07S{?m~&%)5VMo@IC&`Gv&{ry=~jw_1#YErbgK% z??yUj&X^aOz~Dy(uMuz=-2N6o@_SI@ov(u6i9?T&l5cVQ0iS|bZNj3o!1I@fa*F!< z^TR;4oq1X2J#U-M`I-h+PPXR3=@~b5=AY72J;VHB8#K$nI@^0K z1aUgWxkS_~W}j8EM5Wp81RwT*X4(a17jV)~V?!35ysQ2#+)6O?7kzx#my%K&TfN{m zN@$_@Oe8~_qB;(Z+_2bJUWHZ_DX3xoQ?Grb6e*J~O+zu9J^FW2Fx@C!4bII+$Nh$N zO0xxS`@w7&y z8{BZ3wfBTm4GjSQer!gs(KV)|%`Xcv`pYiyS7Iv`ty>fT0JGw6zIP`8fU)|^_ckll zme{LuhhjB*;dmSEC++?Y_x_LXode7D@scyo9x%@DH(}eKD&FJs>jAdk52@Ln-UTN$ zHwY)=<>lK*MYL}4LO1{Ad$R!m3)6(09tLv4zI+}1sQOG_Y=EGVfAYQ8|0}V9j6cUA z{*~Ay{qetz)T)VrsDRD&cM57_x~95b*WkeA<;?N71!_;{A+IB}X0A3tw)Tfj-UWN( zbp@=)Y_NEzs9)h3lhf8Mwg|hQFjm&g4wF3rf>|G6&s?Tz%S|}QgTh}WergNufq$q8 zI_6&Zo^eH(U&0k3z|HOM?$d&QbaKsc&;BS=fUB0jQ%SB+BMjVWOwZ0VnDr(5I7mlu zdcc?{0)l3txJqwL&!Hmk*GCQ49N;@K+8S2Yb(tr=Qd2}FXo+;zjFfXzrBI8V=X*o z{Uq+*NOhfC#fjBjIeEVm<`cqeSWg-4SrwD_g-g8QRUrL3$QY{-ffCM6U_Gva3uKMe zAmUA1GOGIxKEU%qS!G=b%ld1;_odn+T>T$~cB<@8B6{)u1kx6j(3=96^747TE}`xV zx;ph!apRQZ*Leqp-#kLVD!ktvox<&Xvos8$Z{6l(T0YZ+Uo)C(9S$|ls4ca5nNjAHqJ+iK0;{W;E)M_XnlY3aM}TllUaw_KpP(=LopfL z6MjyZsB-p~_y0VS5Mkna`?smGm*Mcd;@pJW;dcBR*|QoclEh}h#kC^i2i_<+;1 zi?x1r*rYOWS2hiq+`kjW3*&<^ggR`Z{~nA4C+8sOtQw#-L8`Bozm?Oz2#XVR6Eamq z9esfLwAk1(AhiP-wCVIoHE9C88G1c6;yq-JIQ5p7K%W!E6lU6Bi&?COKCN#NmbT#J zh$>s-dQRrZS_(omAV?Yy((C$dLZ$X2a^Ngas!~HrN7$%qQk9z9P9LEcw|Y*6@*KG7 z8o4-JdGREI1nT>T-7F(y_RC?SSTpV{CdGojjk)Q1kfzjIuoy|~{N%1$LZlFKZ&dnN zT6msQbkrNn;5Ec%ZhwO9jE5@%&RXd2z^Y+6QLODoz2QkCaTd-gh)=kIpJrGDsZ7Ex zr)#WpHH`F{B2+)`1xjWttzD?GDZK&jn`o#($ZC95yN=xuXfA<&^eP6LK1D?Wx^8PceJ z&W6FiU9#u?Zbch!?htHYg*ie!j1gxvJe0{QDyTXKgh4cK|6zsJfPLOA<23~quz#X) zrzHn2CX7KiW*43QV-sei)?fle1@t_taFY0ZEAxa5FpioCZ!s*ALqY1Wpx7W_`y%pE z@BB{Bn_{Z^6dOi4c{VrYJt^yCuRAM-qph+4?N{U2RCS>|xM{ly&g>(+#xmwwEwU}o zIBPwq+(gOAcslSH!eCmHyH@MhlkMwEM3wi85Vs2ErH!0+=q^fNTqX|jDE)6k2?sUz zLzw&iLi?(vw}mIu9Bp&o9&3<`HCQM*s2{)PLWQIb*M3Sjg@jwKL@U@ci27`EZG!y? zY^Y5fA&+PuMhbSw_9*O}i3&!^l*@bxbeOOZ!m-h(+gk)+{~A*f6H5qE^7`Lnk? zO&BXc!}#CHoHIkH5*$2-v5o`Q-_&=6h!4E~iQ84TvBCgb3y<0+PQFO5>gCYQjfmt+ zvs{HyZN~_fMnVsgWyPEpB1-B}Sey#{lGz&m`c7|yD^u`E|0hdkN&<~G`^12g{!Lc5 zla@6>EpqeKTV=6wsj4gmw*%YywCldMK`2dc8PRIQ60sghJn9&ioL&3o$O{jx};ZXm`OONwk zhhvDa$sqr+c7p#D&tH<%VDhVP`|}OEHY%XtoaEe$;Ty#H{k1^1j*sL^1^EZ}gwyZ2 zpE~sVv1PC%!tR+^V^~LP2Cz-jfjhfK6r|sU^eS zyY#I=K9~?Hr}}>~b9e9MkUx_)1W&ZFJ8cEg=EskFA4*q9z7Y(Y8=p&pbjZM|w{29| z080~HW9ZX3Y8!`po1xip|L7ut6tsHF)=N2D39}(;yd_j=WgO(0QD{(Pz0vy=B^Y<0 zMj$s%Bx{TGg6OrpidJ&IB3(x_26|JX9K31$^#!MC|GN(bMFsp?%fY#hJa}!+!Deaf zdweoSqRXdL-_Y8~kVk|vluEC)Z))hXM_*@6C=30fGp6R|tv2xlL<5xDkRGOONMT+!a91g*sH_dH)8yT&VX zn}?x$xsM_HbK&VlSTzl;V1n}(?)BOd64~@{V>7NxPZo70n33a!p^lzyc6so*EtS0v z*3Rn~lN(|`GLXtMDHB3)9;jsO=i;KPZ86N(%x2%yOe_v=(eDot?IaBG^DmuK`lh}p z`Ed&mR%#m?Zze_dNs~eQL@0Mx=(EpAwt`DNSd&_C`h?dx?<;RzeFQoHTd#`diSh6=^%p@W6s4rv`f8( zYFRV638>^mJ+LVq69v9?)ExIo?~c(|k?$B?TDee8YzwT=VV?rvCpnG4jP_afv7-@q zY`E)$i_@|oMA|)>5YV)L5N|P`fTBRn2w2t%l%+b*9UaNqQ!y4@*A0)#*Njmsr*9+r~I7@lupy@UBCX73yJ#e9RDx}@pCLJ09}cX1+~ z-E9{po|KJoSzPU>Zh`@s{fxn^mHpC4`NyqsC(q>ga>KwMTL*-nBEI8-*@gp$D<%R- zqXZ`Bm_^37$JFmMpcgEHp4QB!A~huDB)3WmTl!St!C&soK%{X9av(prjQ8pD%WmuuAJoLRBA= zCnjJQBXJYOv^LuMWPnrJ_iPWES%q28PYzr!Pkt~<$Y(Og}_DC34~=RwvumD6NR~(^)ZK6 zeQaJ%h~je5b0pkNas3pyHX_)`Xa`1Syefmt*?3)2^I%rDw6^00ExCQ4s{EWOrW5;- z5w^X_byIf;^>$+S<~_79)EujSEmtKR3vZKba_SKupcSQ~+Hac%Le zHIU1&`fa|F+|IX3Ua{tFdQ(FVM`T6g#Mp(H1~Mtcx~m?2q?gFUhblvJ!C7mwf5CHy zx+P{9og6t1b9xa~Dh+(BvEU}=8K3qA?M_wI_9>3(cF_yJ)r(c1K3YiA8q!Y+EEF90 z)K=_=7NI{cnw0Eiv{Av%m9q^l_dmPYHt^siyXycIqFR#ZRb! z;@re|Wf=pApB|n1t(PPbCG@Z&!*TsBqTbAqL~A$RPPRqe@a&~v;k|9+xC~u|CB?(5 zYTfHcP<*?a!fMM){vt1|9NgEPod+ovx@$J}Wr?L(z7?y%)L6{zk<$X~)KpH&uBMY_ z-1a~8rQp|)eKY)lfGnu__9xP?-KXLw>gb^M*Z&t(1graenJC_>wzNI_*rIJJ7cHk? zs6OTmMV)#_Wc1LqURKD3My2$TWZj{`_sX`NVevhAz)jc11E$s*qdR2-WXmR1ToBxG zqIxIDAhv?zf7P%z*Xl`s@Q-w=G?cJIk&S;~fiJ?VI`fiqvlN53P!1DHv~tk?Z5Ib- zoEip0n6lkImP2Y_a^*clhoew0T3 zUiGc#RP+kD)hl_H6h9n-M%a#1f3ttX{^NVFboWFf`PIv3D;+Cg>~Fg_%2@Ocdku`=1VGlNSmWI=uo3m^kJCzjpqG2#@%bp;kRR;6q+mV-KEs)3jF(a zG58u5M^d#EvDRjoLGhT?3>&O!r0sUgPLytVf3-u#vp@o5{-$*c@!r-9GYsO*D2l?% zfma_?S`c^|y9)pj0RRDs0z3p50SW*n0vjL}Ap~ctTSn)vcm*+M{xmy}fl7En82AMO zXDS@M1qlb1&KLj+2@pGvfl7En82Gil5CF~N=6er9^b^Xn?BZgoiTjnX;|3^}^7Gae zf7OqgOCJTc$0rDTftVkXHdc*6dhx?99`licYcgV`B42As1ubNQ^DR5EfGmBBVrI3_ z;noeMBekVEDk*p_&&SpzmJ$+AbVn@1bcpl*Gd;wgOE%A*PDnM~hWtSO(yJHU_R}D#zmo(Qnt3~WX z!VKxsWrl|hqBBA@R-Wz&H`qWVJL7?eWUBrc+Ae-?pt_qqHlpDw25hjqwOB9!=eR*==cp$<3yg=BB{KQ7!O|`PNB%3KKWjBHGDD1 zG80z5_DV~0vp(koE#Bw2ymut;aDcD|00U=mX8={SbP#B?cX<`wgO7}i1~>*MCwg%X CND-?5 diff --git a/sources b/sources index 57bfb22..4680f74 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (bitcoin-30.1.tar.gz) = fd89386524a517def40a94e91e917208eed79492be092cb13a7dc2be07eff555b621197ac50de2e230fb6939ec4ba1481934c3a6172b1fd4f83d404a50c3fa5d -SHA512 (SHA256SUMS) = 0a4ff990543a523e12adeb80a32e8de7471ff28b3e5e2bdde5e1609d525ce503605c931574279ef0ed6059d53afca83bedb3ccc3c692b7d2e25dcbb7a11517f9 -SHA512 (SHA256SUMS.asc) = 2526db64305d0e1349a7bf48ca1bdf0aad6aa10b29e4877bae0dbc5bff1a152dc3e926105f26684f0c52d8fe447da015d5269dc725574049a42eff54890cb3f2 +SHA512 (bitcoin-30.2.tar.gz) = 4fcdb70a016f9ad1b44539f19d61d4c9ce06d92f947be156f8d5de29026aa90a17cea8dcd0bd9bf2f7ad959a4b79d851de95a1c0d2ab87862e04c26cf89f493b +SHA512 (SHA256SUMS) = 99df424cfe37197df15c3e12890ba0b3e9fa00d75f4466f36e220d5d9a361c472d140ce9e7e050181e2a41d39f1af6f0c8fe87e1db9bea7a2fc6000b228aed12 +SHA512 (SHA256SUMS.asc) = 1bb28324b7807eaf8bd828039954698cfdbb4ac79ae09a58f84f798ed9da1178ce57459fd7586e51ab514983531045b2a33a28361e4ba302c5527104d0474d53