Skip to content

Commit 5b18d9e

Browse files
committed
Merge 7483 via svg_icon-28+knots
2 parents d4c1e55 + 4db3dd0 commit 5b18d9e

16 files changed

+186
-27
lines changed

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ jobs:
105105
run: |
106106
# A workaround for "The `brew link` step did not complete successfully" error.
107107
brew install --quiet python@3 || brew link --overwrite python@3
108-
brew install --quiet automake libtool pkg-config gnu-getopt ccache boost libevent miniupnpc libnatpmp zeromq qt@5 qrencode
108+
brew install --quiet automake libtool pkg-config gnu-getopt ccache boost libevent miniupnpc libnatpmp zeromq qt@5 qrencode imagemagick libicns librsvg
109109
110110
- name: Set Ccache directory
111111
run: echo "CCACHE_DIR=${RUNNER_TEMP}/ccache_dir" >> "$GITHUB_ENV"

Makefile.am

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ OSX_APP=Bitcoin-Qt.app
3737
OSX_VOLNAME = $(subst $(space),-,$(PACKAGE_NAME))
3838
OSX_ZIP = $(OSX_VOLNAME).zip
3939
OSX_DEPLOY_SCRIPT=$(top_srcdir)/contrib/macdeploy/macdeployqtplus
40-
OSX_INSTALLER_ICONS=$(top_srcdir)/src/qt/res/icons/bitcoin.icns
40+
OSX_INSTALLER_ICONS=src/qt/res/rendered_icons/bitcoin.icns
4141
OSX_PLIST=$(top_builddir)/share/qt/Info.plist #not installed
4242

4343
DIST_CONTRIB = \
@@ -57,9 +57,9 @@ BIN_CHECKS=$(top_srcdir)/contrib/devtools/symbol-check.py \
5757
$(top_srcdir)/contrib/devtools/security-check.py \
5858
$(top_srcdir)/contrib/devtools/utils.py
5959

60-
WINDOWS_PACKAGING = $(top_srcdir)/share/pixmaps/bitcoin.ico \
61-
$(top_srcdir)/share/pixmaps/nsis-header.bmp \
62-
$(top_srcdir)/share/pixmaps/nsis-wizard.bmp \
60+
WINDOWS_PACKAGING = src/qt/res/rendered_icons/bitcoin.ico \
61+
src/qt/res/rendered_icons/nsis-header.bmp \
62+
src/qt/res/rendered_icons/nsis-wizard.bmp \
6363
$(top_srcdir)/doc/README_windows.txt
6464

6565
OSX_PACKAGING = $(OSX_DEPLOY_SCRIPT) $(OSX_INSTALLER_ICONS) \
@@ -70,11 +70,14 @@ COVERAGE_INFO = $(COV_TOOL_WRAPPER) baseline.info \
7070
baseline_filtered.info functional_test.info functional_test_filtered.info \
7171
test_bitcoin_coverage.info test_bitcoin.info fuzz.info fuzz_filtered.info fuzz_coverage.info
7272

73+
src/qt/res/rendered_icons/%: FORCE
74+
$(MAKE) -C src $(patsubst src/%,%,$@)
75+
7376
dist-hook:
7477
-$(GIT) archive --format=tar HEAD -- src/clientversion.cpp | $(AMTAR) -C $(top_distdir) -xf -
7578

7679
if TARGET_WINDOWS
77-
$(BITCOIN_WIN_INSTALLER): all-recursive
80+
$(BITCOIN_WIN_INSTALLER): all-recursive $(WINDOWS_PACKAGING)
7881
$(MKDIR_P) $(top_builddir)/release
7982
STRIPPROG="$(STRIP)" $(INSTALL_STRIP_PROGRAM) $(BITCOIND_BIN) $(top_builddir)/release
8083
STRIPPROG="$(STRIP)" $(INSTALL_STRIP_PROGRAM) $(BITCOIN_QT_BIN) $(top_builddir)/release
@@ -314,6 +317,8 @@ EXTRA_DIST += \
314317
test/util/data/txreplacesingleinput.hex \
315318
test/util/rpcauth-test.py
316319

320+
EXTRA_DIST += src/qt/res/rendered_icons/bitcoin_testnet.ico
321+
317322
CLEANFILES = $(OSX_ZIP) $(BITCOIN_WIN_INSTALLER)
318323

319324
DISTCHECK_CONFIGURE_FLAGS = --enable-man
@@ -330,6 +335,9 @@ docs:
330335
@echo "error: doxygen not found"
331336
endif
332337

338+
src_files: $(DISTFILES)
339+
@true
340+
333341
clean-docs:
334342
rm -rf doc/doxygen
335343

ci/test/00_setup_env.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ export BASE_BUILD_DIR=${BASE_BUILD_DIR:-$BASE_SCRATCH_DIR/build}
6666
# The folder for previous release binaries.
6767
# This folder exists only on the ci guest, and on the ci host as a volume.
6868
export PREVIOUS_RELEASES_DIR=${PREVIOUS_RELEASES_DIR:-$BASE_ROOT_DIR/prev_releases}
69-
export CI_BASE_PACKAGES=${CI_BASE_PACKAGES:-build-essential libtool autotools-dev automake pkg-config bsdmainutils curl ca-certificates ccache python3 rsync git procps bison e2fsprogs cmake}
69+
export CI_BASE_PACKAGES=${CI_BASE_PACKAGES:-build-essential libtool autotools-dev automake pkg-config bsdmainutils curl ca-certificates ccache python3 rsync git procps bison e2fsprogs cmake icnsutils librsvg2-bin imagemagick}
7070
export GOAL=${GOAL:-install}
7171
export DIR_QA_ASSETS=${DIR_QA_ASSETS:-${BASE_SCRATCH_DIR}/qa-assets}
7272
export CI_RETRY_EXE=${CI_RETRY_EXE:-"retry --"}

ci/test/00_setup_env_i686_centos.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ export LC_ALL=C.UTF-8
99
export HOST=i686-pc-linux-gnu
1010
export CONTAINER_NAME=ci_i686_centos
1111
export CI_IMAGE_NAME_TAG="quay.io/centos/amd64:stream9"
12-
export CI_BASE_PACKAGES="gcc-c++ glibc-devel.x86_64 libstdc++-devel.x86_64 glibc-devel.i686 libstdc++-devel.i686 ccache libtool make git python3 python3-pip which patch lbzip2 xz procps-ng dash rsync coreutils bison util-linux e2fsprogs cmake"
12+
export CI_BASE_PACKAGES="gcc-c++ glibc-devel.x86_64 libstdc++-devel.x86_64 glibc-devel.i686 libstdc++-devel.i686 ccache libtool make git python3 python3-pip which patch lbzip2 xz procps-ng dash rsync coreutils bison util-linux e2fsprogs cmake libicns-utils librsvg2-tools ImageMagick"
1313
export PIP_PACKAGES="pyzmq"
1414
export GOAL="install"
1515
export NO_WERROR=1 # Suppress error: #warning _FORTIFY_SOURCE > 2 is treated like 2 on this platform [-Werror=cpp]

ci/test/00_setup_env_mac_cross.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ export SDK_URL=${SDK_URL:-https://bitcoincore.org/depends-sources/sdks}
1111
export CONTAINER_NAME=ci_macos_cross
1212
export CI_IMAGE_NAME_TAG="docker.io/ubuntu:24.04"
1313
export HOST=x86_64-apple-darwin
14-
export PACKAGES="clang lld llvm zip"
14+
export PACKAGES="clang lld llvm zip icnsutils imagemagick librsvg2-bin"
1515
export XCODE_VERSION=15.0
1616
export XCODE_BUILD_ID=15A240d
1717
export RUN_UNIT_TESTS=false

configure.ac

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -663,6 +663,17 @@ AC_ARG_WITH([daemon],
663663
[build_bitcoind=$withval],
664664
[build_bitcoind=yes])
665665

666+
can_render_icons=yes
667+
AC_PATH_PROGS([RSVG_CONVERT],[rsvg-convert rsvg],no)
668+
AC_PATH_PROGS([IMAGEMAGICK_CONVERT],[magick convert],no)
669+
AC_PATH_PROGS([PNG2ICNS],[png2icns],no)
670+
671+
if test x$RSVG_CONVERT = xno; then
672+
can_render_icons='rsvg-convert'
673+
elif test x$IMAGEMAGICK_CONVERT = xno; then
674+
can_render_icons='ImageMagick'
675+
fi
676+
666677
case $host in
667678
*mingw*)
668679
TARGET_OS=windows
@@ -718,8 +729,15 @@ case $host in
718729
dnl Avoid the use of aligned vector instructions when building for Windows.
719730
dnl See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54412.
720731
AX_CHECK_COMPILE_FLAG([-Wa,-muse-unaligned-vector-move], [CORE_CXXFLAGS="$CORE_CXXFLAGS -Wa,-muse-unaligned-vector-move"], [], [$CXXFLAG_WERROR])
732+
733+
AC_PATH_PROGS([RSVG_CONVERT], [rsvg-convert rsvg],rsvg-convert)
734+
AC_PATH_PROGS([IMAGEMAGICK_CONVERT], [magick convert],convert)
721735
;;
722736
*darwin*)
737+
if test x$PNG2ICNS = xno; then
738+
can_render_icons='png2icns'
739+
fi
740+
723741
TARGET_OS=darwin
724742
if test $cross_compiling != "yes"; then
725743
BUILD_OS=darwin
@@ -1395,6 +1413,13 @@ else
13951413
fi
13961414
fi
13971415

1416+
AM_CONDITIONAL([CAN_RENDER_ICONS], [test "$can_render_icons" = "yes"])
1417+
if test "$can_render_icons" != "yes"; then
1418+
if test "$bitcoin_enable_qt" != "no" && test ! -f "${srcdir}/src/qt/res/rendered_icons/bitcoin.ico"; then
1419+
AC_MSG_ERROR([Couldn't find ${can_render_icons} (required to build GUI from git)])
1420+
fi
1421+
fi
1422+
13981423
if test "$enable_fuzz_binary" = "yes"; then
13991424
AC_MSG_CHECKING([whether main function is needed for fuzz binary])
14001425
TEMP_LDFLAGS="$LDFLAGS"

contrib/guix/libexec/make_release_tarball.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ cd "${DISTNAME}"
2424

2525
./autogen.sh
2626
./configure --prefix=/ --disable-ccache --disable-maintainer-mode --disable-dependency-tracking
27+
make src_files
2728
make distclean
2829

2930
cd ..

contrib/guix/manifest.scm

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@
1010
(gnu packages file)
1111
(gnu packages gawk)
1212
(gnu packages gcc)
13+
(gnu packages gnome)
14+
(gnu packages image)
15+
(gnu packages imagemagick)
1316
((gnu packages installers) #:select (nsis-x86_64))
1417
((gnu packages linux) #:select (linux-libre-headers-6.1 util-linux))
1518
(gnu packages llvm)
@@ -22,6 +25,7 @@
2225
((gnu packages tls) #:select (openssl))
2326
((gnu packages version-control) #:select (git-minimal))
2427
(guix build-system cmake)
28+
(guix build-system font)
2529
(guix build-system gnu)
2630
(guix build-system python)
2731
(guix build-system pyproject)
@@ -163,6 +167,25 @@ chain for " target " development."))
163167
(home-page (package-home-page pthreads-xgcc))
164168
(license (package-license pthreads-xgcc)))))
165169

170+
(define-public font-tuffy
171+
(package
172+
(name "font-tuffy")
173+
(version "20120614")
174+
(source
175+
(origin
176+
(method url-fetch)
177+
(uri (string-append "http://tulrich.com/fonts/tuffy-" version ".tar.gz"))
178+
(file-name (string-append name "-" version ".tar.gz"))
179+
(sha256
180+
(base32
181+
"02vf72bgrp30vrbfhxjw82s115z27dwfgnmmzfb0n9wfhxxfpyf6"))))
182+
(build-system font-build-system)
183+
(home-page "http://tulrich.com/fonts/")
184+
(synopsis "The Tuffy Truetype Font Family")
185+
(description
186+
"Thatcher Ulrich's first outline font design. He started with the goal of producing a neutral, readable sans-serif text font. There are lots of \"expressive\" fonts out there, but he wanted to start with something very plain and clean, something he might want to actually use. ")
187+
(license license:public-domain)))
188+
166189
;; While LIEF is packaged in Guix, we maintain our own package,
167190
;; to simplify building, and more easily apply updates.
168191
;; Moreover, the Guix's package uses cmake, which caused build
@@ -531,6 +554,9 @@ inspecting signatures in Mach-O binaries.")
531554
autoconf-2.71
532555
automake
533556
pkg-config
557+
imagemagick
558+
libicns
559+
librsvg-2.40
534560
;; Scripting
535561
python-minimal ;; (3.10)
536562
;; Git
@@ -539,7 +565,7 @@ inspecting signatures in Mach-O binaries.")
539565
python-lief)
540566
(let ((target (getenv "HOST")))
541567
(cond ((string-suffix? "-mingw32" target)
542-
(list zip
568+
(list font-tuffy zip
543569
(make-mingw-pthreads-cross-toolchain "x86_64-w64-mingw32")
544570
nsis-x86_64
545571
nss-certs

doc/build-unix.md

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,11 @@ Some notes on how to build Bitcoin Core in Unix.
77
To Build
88
---------------------
99

10+
If you are building from git directly, you need to run `./autogen.sh` before
11+
the first time you build. This is not required if you downloaded the source
12+
code from the website.
13+
1014
```bash
11-
./autogen.sh
1215
./configure
1316
make # use "-j N" for N parallel jobs
1417
make install # optional
@@ -87,6 +90,10 @@ Additionally, to support Wayland protocol for modern desktop environments:
8790

8891
sudo apt install qtwayland5
8992

93+
If you are building directly from git (instead of the official source code release), you will also need:
94+
95+
sudo apt install librsvg2-bin imagemagick
96+
9097
libqrencode (optional) can be installed with:
9198

9299
sudo apt-get install libqrencode-dev
@@ -144,6 +151,10 @@ Additionally, to support Wayland protocol for modern desktop environments:
144151

145152
sudo dnf install qt5-qtwayland
146153

154+
If you are building directly from git (instead of the official source code release), you will also need:
155+
156+
sudo dnf install librsvg2-tools ImageMagick
157+
147158
libqrencode (optional) can be installed with:
148159

149160
sudo dnf install qrencode-devel
@@ -202,8 +213,8 @@ Setup and Build Example: Arch Linux
202213
-----------------------------------
203214
This example lists the steps necessary to setup and build a command line only distribution of the latest changes on Arch Linux:
204215

205-
pacman --sync --needed autoconf automake boost gcc git libevent libtool make pkgconf python sqlite
206-
git clone https://github.com/bitcoin/bitcoin.git
216+
pacman --sync --needed autoconf automake boost gcc git libevent libtool make pkgconf python sqlite librsvg imagemagick
217+
git clone https://github.com/bitcoinknots/bitcoin.git
207218
cd bitcoin/
208219
./autogen.sh
209220
./configure

share/setup.nsi.in

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,11 @@ Unicode true
1515
!define URL @PACKAGE_URL@
1616

1717
# MUI Symbol Definitions
18-
!define MUI_ICON "@abs_top_srcdir@/share/pixmaps/bitcoin.ico"
19-
!define MUI_WELCOMEFINISHPAGE_BITMAP "@abs_top_srcdir@/share/pixmaps/nsis-wizard.bmp"
18+
!define MUI_ICON "@abs_top_srcdir@/src/qt/res/rendered_icons/bitcoin.ico"
19+
!define MUI_WELCOMEFINISHPAGE_BITMAP "@abs_top_builddir@/src/qt/res/rendered_icons/nsis-wizard.bmp"
2020
!define MUI_HEADERIMAGE
2121
!define MUI_HEADERIMAGE_RIGHT
22-
!define MUI_HEADERIMAGE_BITMAP "@abs_top_srcdir@/share/pixmaps/nsis-header.bmp"
22+
!define MUI_HEADERIMAGE_BITMAP "@abs_top_builddir@/src/qt/res/rendered_icons/nsis-header.bmp"
2323
!define MUI_FINISHPAGE_NOAUTOCLOSE
2424
!define MUI_STARTMENUPAGE_REGISTRY_ROOT HKLM
2525
!define MUI_STARTMENUPAGE_REGISTRY_KEY ${REGKEY}
@@ -28,7 +28,7 @@ Unicode true
2828
!define MUI_FINISHPAGE_RUN "$WINDIR\explorer.exe"
2929
!define MUI_FINISHPAGE_RUN_PARAMETERS $INSTDIR\@BITCOIN_GUI_NAME@@EXEEXT@
3030
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico"
31-
!define MUI_UNWELCOMEFINISHPAGE_BITMAP "@abs_top_srcdir@/share/pixmaps/nsis-wizard.bmp"
31+
!define MUI_UNWELCOMEFINISHPAGE_BITMAP "@abs_top_builddir@/src/qt/res/rendered_icons/nsis-wizard.bmp"
3232
!define MUI_UNFINISHPAGE_NOAUTOCLOSE
3333

3434
# Included files

0 commit comments

Comments
 (0)