Commit Graph

245 Commits

Author SHA1 Message Date
merge-script
9755d33390 Merge bitcoin/bitcoin#34808: cmake, translation: Use native Qt TS file as source for translations on Transifex
a434d66025 cmake, translation: Specify English as target language explicitly (Hennadii Stepanov)
4097d6d968 cmake, translation: Sort messages within contexts alphabetically (Hennadii Stepanov)
312ab8ab0a cmake, translation: Skip source locations in TS files (Hennadii Stepanov)
4f553bd0da cmake, translation: Remove TS to XLIFF conversion (Hennadii Stepanov)
8c30055458 translation: Switch to Qt TS source file (Hennadii Stepanov)

Pull request description:

  In Bitcoin Core v22.0, we [switched](https://github.com/bitcoin/bitcoin/pull/21694) from Qt TS to XLIFF translation source file to provide more context, specifically [developer notes](https://doc.qt.io/qt-6/i18n-source-translation.html#add-comments-for-translators), to translators on Transifex. That was very useful for translators back then, even though it required some extra complexity on our side.

  Since then, Transifex has enabled support for developer notes in [Qt TS files](https://help.transifex.com/en/articles/6223301-qt-linguist) as well.

  Therefore, I believe we should thank XLIFF for its service and retire it.

  In addition to switching back to Qt TS, this PR introduces a few tweaks to the  `lupdate` command (see the corresponding commit messages).

  To summarize, this PR brings the following benefits:
  1. Removal of obsolete code from the build system.

  2. Minimal diffs during translation updates. For a recent example, see https://github.com/bitcoin-core/gui/pull/931. One can also apply the changes from bitcoin/bitcoin#34301 and run `cmake -B build --fresh -DBUILD_GUI=ON && cmake --build build -t translate` to observe the new minimal diff.

  3. More stable string hashes on Transifex. They no longer include string `id`s, which makes this PR an alternative to https://github.com/bitcoin/bitcoin/pull/33270.

  As a potential drawback, we are tying ourselves back to Qt's proprietary translation file format.

  I've created an experimental resource on Transifex based on this branch: https://app.transifex.com/bitcoin/bitcoin/experimental-do-not-translate. Reviewers can use it to observe Transifex's support for the various features on the following messages:
  - \# 11 - Developer Notes
  - \# 144 - Plurals
  - \# 510 - A disambiguation string (provided as a second argument to the [`tr()`](https://doc.qt.io/qt-6/qobject.html#tr) function) added to the string context.

ACKs for top commit:
  l0rinc:
    Code review ACK a434d66025
  achow101:
    ACK a434d66025
  sedited:
    ACK a434d66025

Tree-SHA512: 2f79af707974acd8c955e01c06b41794ae1702964bd5f6d260dba73f2f14d0b4b6e84f502f8515d84585e00db8db5b644cb6c47f91662a7ba5b6990f2d0ba115
2026-07-23 14:55:30 +02:00
Hennadii Stepanov
a7e980af31 build: Quote host paths in NSIS installer template
The `File` instructions embed the build and source directories unquoted,
so `makensis` fails for the `deploy` target when either path contains
spaces.
2026-07-21 20:25:21 +01:00
Hennadii Stepanov
a3b5dc0572 cmake: Add GenerateWindowsInstaller script
The new script is parameterized by paths to executables. It can be used
to generate the installer from the install tree rather than the build
tree. This capability will be used by the Guix scripts in subsequent
commits.
2026-07-18 17:35:49 +01:00
Hennadii Stepanov
a434d66025 cmake, translation: Specify English as target language explicitly
Otherwise, "en_US" might be used.
2026-03-16 12:57:52 +00:00
Hennadii Stepanov
4097d6d968 cmake, translation: Sort messages within contexts alphabetically
This is done in addition to the default sorting of the contexts
themselves, further minimizing unnecessary diffs in version control.
2026-03-16 12:57:42 +00:00
Hennadii Stepanov
312ab8ab0a cmake, translation: Skip source locations in TS files
Source locations do not contribute to the string's Context on Transifex
(used for hash calculation) and only trigger unnecessary diffs in
version control.

While the `filename` attribute of the `<location>` element is rendered
as "Occurrences" on Transifex, Qt's lupdate tool does not seem to set
this attribute consistently.
2026-03-16 12:57:35 +00:00
Hennadii Stepanov
4f553bd0da cmake, translation: Remove TS to XLIFF conversion
Drop all code related to converting Qt TS files to XLIFF, enabling the
build system to handle TS source file directly.
2026-03-16 12:57:21 +00:00
MarcoFalke
fa5f297748 scripted-diff: [doc] Unify stale copyright headers
-BEGIN VERIFY SCRIPT-

 sed --in-place --regexp-extended \
   's;( 20[0-2][0-9])(-20[0-2][0-9])? The Bitcoin Core developers;\1-present The Bitcoin Core developers;g' \
   $( git grep -l 'The Bitcoin Core developers' -- ':(exclude)COPYING' ':(exclude)src/ipc/libmultiprocess' ':(exclude)src/minisketch' )

-END VERIFY SCRIPT-
2025-12-16 22:21:15 +01:00
MarcoFalke
fadad7a494 Drop support for EOL macOS 13 2025-10-01 08:09:30 +02:00
Hodlinator
79752b9c0b build(windows): Remove lingering registry entries and shortcuts upon install
Prior releases installed using these paths. Especially annoying was that the lingering registry entry for the uninstaller would show up as "Bitcoin Core (64-bit)" besides the current "Bitcoin Core" entry in the list of installed programs, and whichever was uninstalled last would fail to work as they would default to the same install directory.
2025-09-19 16:40:58 +02:00
Daniel Pfeifer
3c4a109aa8 cmake: Drop python dependency for translate
Resolves #33146
2025-08-19 10:00:05 +02:00
Daniel Pfeifer
05255d5d1e cmake: Drop dependency on sed for translate target 2025-08-18 09:03:34 +02:00
Daniel Pfeifer
d5054beca5 cmake: Introduce translate.cmake script for translate target
Using `file(GLOB)` in the generates step is discouraged because the
globbing result may be out of date when the target is built.
Performing the globbing in a script that is executed as the build
target means the result is always reproducable and the overhead
of globbing is only paid when used.

As a follow up, the dependency on `sed` may be removed by performing
the replacement with cmake. Also, the logic from extract_strings_qt.py
can be migrated to cmake.
2025-08-18 09:03:28 +02:00
Sjors Provoost
d2739d75c9 build: add bitcoin.exe to windows installer 2025-05-12 19:49:17 +01:00
Hennadii Stepanov
fb2b05b125 build: Remove bitness suffix from Windows installer
Since support for 32-bit Windows has been dropped, the suffix is no
longer necessary.
2025-03-24 14:19:11 +00:00
Hennadii Stepanov
332655cb52 build: Rename PACKAGE_* variables to CLIENT_*
The use of `PACKAGE_NAME` for the project's variable name is
problematic, as this name is commonly used in CMake's interface
variables. If third-party CMake code handles with scopes improperly,
our `PACKAGE_NAME` variable could end up with an unexpected value.

This change avoids such conflicts by renaming all `PACKAGE_*` variables
to `CLIENT_*`.
2024-10-28 12:35:55 +00:00
merge-script
684873931b Merge bitcoin/bitcoin#26334: Add Signet and testnet4 launch shortcuts for Windows
cfd03de965 Add Testnet4 launch shortcut for Windows (Sjors Provoost)
77b2923f87 Add Signet launch shortcut for Windows (Sjors Provoost)

Pull request description:

  This makes it easier to launch Signet and testnet4 on Windows. Follows the same pattern as testnet.

  Before:

  <img width="766" alt="testnet" src="https://user-images.githubusercontent.com/10217/196468934-ee29d129-871b-4612-bde4-842f191403a7.png">

  After:
  <img width="500" alt="signet1" src="https://user-images.githubusercontent.com/10217/220358057-d9efc532-272c-45e7-81fa-3a52f58a0f29.png">
  <img width="527" alt="signet2" src="https://user-images.githubusercontent.com/10217/220358067-62b3b76f-604a-4163-9d35-c903fff29df0.png">

  (the testnet4 icon is the same as testnet3, not in the above screenshot)

ACKs for top commit:
  achow101:
    ACK cfd03de965
  laanwj:
    ACK cfd03de965
  TheCharlatan:
    ACK cfd03de965

Tree-SHA512: 9a43ab55b341cacbfc4e891bf192946ee808f776c622906a2e5628e2b59cb3dd87b089dc3a8d08717d01ff136063ed35f3049d516c7f477047f8f3f620fc8b2e
2024-10-21 15:00:32 +01:00
Hennadii Stepanov
a0e089a71d build: Bump minimum supported macOS to 13.0
Running Bitcoin Core on unsupported OSes may expose users to security
issues.

macOS Monterey 12 received its final security update (12.7.6) on July
2024. Apple classifies the hardware that can run macOS 12 at most as
"obsolete worldwide".
2024-10-15 10:18:48 +01:00
kevkevinpal
a9964c0444 doc: Updating docs from autotools to cmake
replaced --enable-debug with -DCMAKE_BUILD_TYPE=Debug in developer-notes
replaced --enable-multiprocess with -DWITH_MULTIPROCESS=ON
replaced --disable-zmq with -DWITH_ZMQ=OFF
2024-09-18 11:04:52 -04:00
Sjors Provoost
cfd03de965 Add Testnet4 launch shortcut for Windows 2024-09-03 10:25:38 +02:00
Sjors Provoost
77b2923f87 Add Signet launch shortcut for Windows
cd src/qt/res/icons
convert bitcoin.png -modulate 100,87,119.4 -define icon:auto-resize="256,48,32,16" bitcoin_signet.ico

This commit also removes the 64-bit mention from testnet.
2024-09-03 09:30:19 +02:00
Hennadii Stepanov
d71ac76842 build: Remove Autotools-based build system 2024-08-30 21:31:39 +01:00
bstin
9adf949d2a contrib: rpcauth.py - Add new option (-j/--json) to output text in json format
-j/--json update and remove un-needed parens

Update README to reflect new -j/--json options
2024-04-25 08:32:28 -05:00
Cory Fields
fb61bc0c02 depends: Bump MacOS minimum runtime requirement to 11.0
This is necessary as the new fixup_chains linker behavior is only valid
when the runtime target is >=11.0.
2023-06-22 15:28:47 +00:00
Pieter Wuille
e4e17907b6 Modernize rpcauth.py and its tests 2023-02-13 17:11:15 -05:00
fanquake
495caa9a01 build: add example bitcoin conf to win installer
Addresses
https://github.com/bitcoin/bitcoin/pull/22235#discussion_r946359661.
2022-08-16 11:32:46 +01:00
fanquake
0eac1f7ba4 build: include share/rpcauth in tarball & installer
Fixes #19081.
2022-08-16 11:32:42 +01:00
fanquake
d755ffc327 build: package test_bitcoin in Windows installer 2022-08-09 09:13:23 +01:00
fanquake
aa30e046ac build: remove entire docs dir from Windows installer 2022-08-09 09:08:46 +01:00
josibake
b483084d86 doc: replace bitcoin.conf with placeholder file 2022-05-02 15:38:07 +02:00
Hennadii Stepanov
a5f67b4ca8 build: Fix make deploy for Windows when building out of source tree 2022-02-06 13:34:49 +02:00
fanquake
b3ccf26df4 build: force CRCCheck in Windows installer
Otherwise a user can pass /NCRC on the command line and bypass the
crc check, meaning they could install a potentially corrupted
installer.
2022-01-20 18:06:26 +08:00
Hennadii Stepanov
f47dda2c58 scripted-diff: Bump copyright headers
-BEGIN VERIFY SCRIPT-
./contrib/devtools/copyright_header.py update ./
-END VERIFY SCRIPT-

Commits of previous years:
* 2020: fa0074e2d8
* 2019: aaaaad6ac9
2021-12-30 19:36:57 +02:00
Hennadii Stepanov
9a1ad7bc0d test: Enable SC2086 shellcheck rule 2021-11-13 16:54:56 +02:00
Samuel Dobson
bccd1d942d Remove -rescan startup parameter 2021-09-30 12:06:27 +13:00
fanquake
a43b8e9555 build: set OSX_MIN_VERSION to 10.15
This is required to use std::filesystem on macOS as support for it only
landed in the libc++ dylib shipped with 10.15.

See also: https://developer.apple.com/documentation/xcode-release-notes/xcode-11-release-notes

Clang now supports the C++17 <filesystem> library for iOS 13, macOS 10.15, watchOS 6, and tvOS 13.
2021-09-16 17:50:19 +08:00
Jarol Rodriguez
3765c486ef qt: fix bitcoin-qt app categorization on apple silicon
On master, the deployed bitcoin-qt application is categorized as an IOS application.
This is obviously incorrect, and the built executable is not an IOS executable.
To fix this, we set the CFBundleSupportedPlatforms key in our info.plist
2021-09-13 05:17:18 -04:00
Zero-1729
021daedfa1 refactor: replace remaining binascii method calls 2021-08-16 19:30:56 +01:00
apitko
947f9734da doc: add maxuploadtarget to bitcoin.conf example
Introduce the maxuploadtarget option to the example bitcoin.conf file. This adds visibility for this option which is useful to those looking to configure bandwidth usage.
2021-05-28 12:53:17 -04:00
Hennadii Stepanov
55c012d20c qt: Extract translations correctly from UTF-8 formatted source 2021-05-17 13:21:13 +02:00
W. J. van der Laan
54617fad99 Merge bitcoin/bitcoin#21709: doc: update reduce-memory.md and bitcoin.conf -maxconnections info
300234ab66 doc: update bitcoin.conf maxconnections info (Jon Atack)
926827065f doc: update reduce-memory.md peer connections info (Jon Atack)

Pull request description:

  This patch updates the documentation in `doc/reduce-memory.md` and `share/examples/bitcoin.conf` regarding the peer connections limits and `-maxconnections`

ACKs for top commit:
  jarolrod:
    re-ACK 300234ab66
  laanwj:
    ACK 300234ab66
  prayank23:
    ACK 300234ab66

Tree-SHA512: 90f53626124afb50706e6a3b644bc7bb800bb7cf41ae7062c20c17b3d9bdf4a8d73b4cf188faec9113d772596f7e4bc36a4a69481cacb92cc55d5956181d0c31
2021-05-05 16:10:55 +02:00
Jon Atack
e041ee0a80 doc: add coinstatsindex to bitcoin.conf 2021-04-30 20:19:20 +02:00
Jon Atack
300234ab66 doc: update bitcoin.conf maxconnections info 2021-04-17 20:22:43 +02:00
MarcoFalke
3bcd278aa6 Merge bitcoin-core/gui#154: qt: Support macOS Dark mode
dc4551c22c remove incompatibility release note for darkmode on macos (Sylvain Goumy)
303cfc6227 allow darkmode on macos build (Sylvain Goumy)
78f75a2d60 Allow icon colorization on mac os to better support dark mode (Uplab)

Pull request description:

  Allow icons to be colorized on macOS to support native Dark mode color scheme.

  Rendering on macOS Big Sur before PR:
  ![macos-darkmode-before-pr](https://user-images.githubusercontent.com/5577626/102502739-43f3af80-407f-11eb-9263-5bbc27b371c2.png)

  Rendering on macOS Big Sur after PR:
  ![macos-darkmode-after-pr](https://user-images.githubusercontent.com/5577626/102502678-350cfd00-407f-11eb-8b98-e271f2688c36.png)

  Light mode stay visually unchanged.

  <del>Note, that this currently only affect the build from source, as the macos dmg includes an attributes to force light color scheme on macos windows (see https://github.com/bitcoin/bitcoin/pull/14593). </del>
  <del>But once all glitches are fixed, we will be able to remove this temporary fix. </del>
  Edit: this PR is know including the removal of `NSRequiresAquaSystemAppearance` on Info.plist file so that the color fix is apply to every build.

  Linked issues: #68 #136

ACKs for top commit:
  hebasto:
    re-ACK dc4551c22c
  jarolrod:
    ACK dc4551c22c

Tree-SHA512: 1c3a4dec796063e61fcaf80112afc2b15c8669a1cd30ebd537cea96647c20215f8f80289719f905820bb0c490c8c1f94bfae4bb32f9c6d1fdd4e8f199ebb559f
2021-03-29 11:17:19 +02:00
Jon Atack
21b6a23373 doc: add signet to share/examples/bitcoin.conf 2021-03-08 00:22:57 +01:00
fanquake
9086e0dd3c build: set Unicode true for NSIS installer
Now that we are using Focal for gitian builds, and have NSIS 3.0+
available (also in Guix), we can create installers that support unicode.

Unicode is only becoming the default beginning with the 3.07 release,
https://nsis.sourceforge.io/Docs/AppendixF.html#v3.07-cl,
so we need to set this attribute to get support.

Should close: #13817

Co-authored-by: Chun Kuan Lee <ken2812221@gmail.com>
2021-03-02 16:36:21 +08:00
Sylvain Goumy
303cfc6227 allow darkmode on macos build 2021-02-25 22:21:22 +01:00
Carl Dong
38b7b2ed72 genbuild: Specify rev-parse length 2021-01-08 11:40:01 -05:00
MarcoFalke
fa0074e2d8 scripted-diff: Bump copyright headers
-BEGIN VERIFY SCRIPT-
./contrib/devtools/copyright_header.py update ./
-END VERIFY SCRIPT-
2020-12-31 09:45:41 +01:00
Wladimir J. van der Laan
555b5d1bf9 Merge #20419: build: set minimum supported macOS to 10.14
a52ecc936a build: set minimum supported macOS to 10.14 (fanquake)

Pull request description:

  This is a requirement for C++17 support. See my comments [here](https://github.com/bitcoin/bitcoin/issues/16684#issuecomment-643722538):

  > You cannot use std::get with std::variant on macOS < 10.14, because Apples libc++ doesn't support the std::bad_variant_access exception. [Relevant comment](https://github.com/bitcoin/bitcoin/pull/19183#discussion_r439794318) in #19183.

  > While we could work around this in our own code, using std::get_if, this would still be a problem for 3rd-party dependencies.

  > I've been testing Qt 5.15LTS (we'll have to enable C++17 in qt, and may upgrade to a newer version at the same time), and you can't enable -std c++17, while targeting a macOS deployment version < 10.14, configuring will fail. They are making use of std::get with std::variant throughout their cocoa code.

  We would have to had to have bumped to at least 10.13 in any case, as Qt 5.15 (#19716) [requires 10.13+](https://doc.qt.io/qt-5/supported-platforms.html).

ACKs for top commit:
  hebasto:
    ACK a52ecc936a, I have reviewed the code and it looks OK, I agree it can be merged.

Tree-SHA512: f669b2fc777aeea1e9afdbbc7bd9afe3997418211db6ba53c934cae0e62a9b999603da539518c229f34961d275c9e2f315c7b022cf5fb97bd201a69c85d470cc
2020-11-23 14:24:58 +01:00