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 5ac7346..d077836 100644 --- a/bitcoin-core.spec +++ b/bitcoin-core.spec @@ -5,7 +5,7 @@ %bcond_with extended_tests Name: bitcoin-core -Version: 28.1 +Version: 29.0 Release: 1%{?dist} Summary: Peer to Peer Cryptographic Currency License: MIT @@ -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,22 +53,16 @@ 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 -%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) @@ -76,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 +182,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 +# 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=ON \ + -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 @@ -214,6 +219,9 @@ find %{buildroot} -name "*.la" -delete mkdir -p -m 755 %{buildroot}%{_sbindir} mv %{buildroot}%{_bindir}/bitcoind %{buildroot}%{_sbindir}/bitcoind +# 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 @@ -253,7 +261,7 @@ rm -f %{buildroot}%{_bindir}/test_* %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 @@ -322,6 +330,9 @@ exit 0 %{_userunitdir}/%{project_name}.service %changelog +* Sun Apr 13 2025 Simone Caronni - 29.0-1 +- Update to 29.0. + * Sat Jan 11 2025 Simone Caronni - 28.1-1 - Update to 28.1. diff --git a/bitcoin-offline-pubring.gpg b/bitcoin-offline-pubring.gpg index 6793a39..1d1269b 100644 Binary files a/bitcoin-offline-pubring.gpg and b/bitcoin-offline-pubring.gpg differ 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