fanquake
7f5ac4520d
build: swap otool for (llvm-)objdump
...
Similar to libtool, (llvm-)otool only exists with a version suffix
on some systems (Ubuntu), which makes it annoying to use/find. Avoid
this, by switching to objdump. Which is a drop-in replacement.
This is related to #21778 , and the switchover to using vanilla LLVM for
macOS.
2024-05-08 16:36:41 +08:00
Sebastian Falbesoner
d516cf83ed
test: use built-in collection types for type hints (Python 3.9 / PEP 585)
...
Since Python 3.9, type hinting has become a little less awkward, as for
collection types one doesn't need to import the corresponding
capitalized types (`Dict`, `List`, `Set`, `Tuple`, ...) anymore, but can
use the built-in types directly. [1] [2]
This commit applies the replacement for all Python scripts (i.e. in the
contrib and test folders) for the basic types:
- typing.Dict -> dict
- typing.List -> list
- typing.Set -> set
- typing.Tuple -> tuple
[1] https://docs.python.org/3.9/whatsnew/3.9.html#type-hinting-generics-in-standard-collections
[2] https://peps.python.org/pep-0585/#implementation for a list of type
2023-10-25 01:10:21 +02:00
fanquake
33ae0bd1e4
macdeploy: remove DMG generation from deploy script
2023-09-15 13:47:50 +01:00
fanquake
c38561d6b1
build: add -zip option to macdeployqtplus
...
This zips the app bundle in /dist.
2023-09-15 13:47:49 +01:00
MarcoFalke
fa8fe5b696
scripted-diff: Use new python 3.7 keywords
...
-BEGIN VERIFY SCRIPT-
sed -i 's/universal_newlines/text/g' $(git grep -l universal_newlines)
-END VERIFY SCRIPT-
2023-01-18 13:00:34 +01:00
Hennadii Stepanov
80cd99322f
scripted-diff: Rename INSTALLNAMETOOL -> INSTALL_NAME_TOOL
...
This change makes naming of `install_name_tool` consistent across
the whole build system.
-BEGIN VERIFY SCRIPT-
sed --in-place --expression='s/INSTALLNAMETOOL/INSTALL_NAME_TOOL/g' $(git grep --files-with-matches 'INSTALLNAMETOOL')
-END VERIFY SCRIPT-
2022-04-21 10:08:45 +02:00
fanquake
3d41521569
build: perform /Applications symlink generation in macdeployqtplus
...
By generating the symlink earlier in the macdeploy process, we can unify the
logic in the deploy script.
2022-04-05 14:49:32 +01:00
fanquake
dac6936719
build: perform all .tiff copying in macdeployqtplus
...
By copying the .tiff earlier in the macdeploy process, we can unify the logic in
the deploy script.
2022-04-05 14:49:23 +01:00
Hennadii Stepanov
1513727e2b
build, qt: (Re-)sign package
...
Starting with macOS 11 on Apple silicon, executables must be signed
before they are allowed to run.
2022-02-17 14:10:17 +02:00
Hennadii Stepanov
c26a0a5af7
build, qt: Align frameworks with macOS codesign tool requirements
...
Currently the codesign tool fails to sign copied frameworks.
2022-02-17 14:10:11 +02:00
fanquake
e09773d20a
build: use a static .tiff for macOS .dmg over generating
...
Co-authored-by: Pavol Rusnak <pavol@rusnak.io>
2022-01-02 15:38:19 +08:00
fanquake
0a5723beea
macdeploy: cleanup .temp.dmg if present
2021-06-09 12:33:39 +08:00
fanquake
ecffe8689d
macdeploy: remove qt4 related code
2021-06-09 12:33:38 +08:00
fanquake
639f064253
macdeploy: select the plugins we need, rather than excluding those we don't
2021-06-09 12:33:33 +08:00
fanquake
3d26b6b9e9
macdeploy: fix framework printing when passing -verbose
2021-06-09 12:16:47 +08:00
fanquake
dca6c90329
macdeploy: remove unused plistlib import
...
Unused since #20422 , see: https://github.com/bitcoin/bitcoin/pull/20422#discussion_r534207899
2021-06-09 12:16:47 +08:00
fanquake
5d2cbdf772
macdeploy: use Python 3.6
2020-11-30 14:54:20 +08:00
fanquake
a42aa94c54
macdeploy: remove runHDIUtil in favor of directly calling subprocess.run
2020-11-30 14:54:20 +08:00
fanquake
adaa26202b
macdeploy: remove existing Bitcoin-Core.dmg if present
2020-11-30 14:54:20 +08:00
fanquake
ccb0325b1b
macdeploy: move qt_conf to where it's used
2020-11-30 14:54:20 +08:00
fanquake
6390a04862
macdeploy: consolidate .DS_Store generation
...
Rather than two lots of logic doing roughly the same thing, dependent on if
you're compiling on Linux or macOS, combine the .DS store generation into
macdeployqtplus.
This also removes the -fancy and -volname options.
2020-11-30 14:54:19 +08:00
fanquake
32347cd56a
macdeploy: assume plistlib is available
...
We already require Python 3.5 or later
2020-11-30 14:54:19 +08:00
fanquake
0ab4018c12
macdeploy: have a single level of logging output
...
4 different levels of verbosity is overkill for a fairly simple script, which
was always being run at 2 in any case.
2020-11-30 14:54:19 +08:00
fanquake
827d382aa7
macdeploy: remove add-resources argument
2020-11-30 14:54:19 +08:00
fanquake
464b34d4c3
macdeploy: remove codesigning argument
2020-11-30 14:54:19 +08:00
fanquake
4d70d3d7fe
build: automatically determine macOS translations
...
Rather than using OSX_QT_TRANSLATIONS which must be manually updated,
and we forget to update anyway, i.e: #19059 , automatically find and copy
available translations from the translations directory.
2020-11-30 14:54:18 +08:00
Jonas Schnelli
04a69c200e
macOS deploy: use the new plistlib API
...
See https://docs.python.org/3/library/plistlib.html .
The new API was added in 3.4 and old removed in 3.9.
2020-11-04 10:28:02 +01:00
fanquake
59681beb89
Merge #16477 : build: skip deploying plugins we dont use in macdeployqtplus
...
1ac7b7f66b
scripts: filter more qt plugins we don't use in macdeployqtplus (fanquake)
57cdd0697d
scripts: misc cleanups in macdeployqtplus (fanquake)
51729a4dfa
scripts: use format() in macdeployqtplus (fanquake)
1c37e81694
scripts: add type annotations to macdeployqtplus (fanquake)
Pull request description:
I frequently run `make deploy` while testing on macOS to get a properly light themed .app. With a brew installed Qt, this currently results in a pretty bloated executable:
| branch | .app size | .dmg size | `make deploy` time |
| ------- | --------- | --------- | --------------------- |
| master (febf3a856b
) | 235mb | 86mb | 38s |
| This PR (da98f6d470d236c027b7eb8b5f5552fdca04e803) | 51mb | 21mb | 22s |
Similar change to dd367ff8c9
.
```diff
'QtGui.framework'],
'pluginPath': '/usr/local/opt/qt/plugins',
'qtPath': '/usr/local/opt/qt'}
-[('platforminputcontexts', 'libqtvirtualkeyboardplugin.dylib'),
- ('geoservices', 'libqtgeoservices_esri.dylib'),
- ('geoservices', 'libqtgeoservices_mapboxgl.dylib'),
- ('geoservices', 'libqtgeoservices_nokia.dylib'),
- ('geoservices', 'libqtgeoservices_itemsoverlay.dylib'),
- ('geoservices', 'libqtgeoservices_osm.dylib'),
- ('geoservices', 'libqtgeoservices_mapbox.dylib'),
- ('sceneparsers', 'libgltfsceneexport.dylib'),
- ('sceneparsers', 'libgltfsceneimport.dylib'),
- ('platforms', 'libqwebgl.dylib'),
+[('platforms', 'libqwebgl.dylib'),
('platforms', 'libqoffscreen.dylib'),
('platforms', 'libqminimal.dylib'),
('platforms', 'libqcocoa.dylib'),
('platformthemes', 'libqxdgdesktopportal.dylib'),
- ('printsupport', 'libcocoaprintersupport.dylib'),
- ('webview', 'libqtwebview_webengine.dylib'),
- ('webview', 'libqtwebview_darwin.dylib'),
- ('geometryloaders', 'libdefaultgeometryloader.dylib'),
- ('geometryloaders', 'libgltfgeometryloader.dylib'),
('styles', 'libqmacstyle.dylib'),
- ('canbus', 'libqttinycanbus.dylib'),
- ('canbus', 'libqtpassthrucanbus.dylib'),
- ('canbus', 'libqtvirtualcanbus.dylib'),
- ('canbus', 'libqtpeakcanbus.dylib'),
('bearer', 'libqgenericbearer.dylib'),
- ('imageformats', 'libqgif.dylib'),
- ('imageformats', 'libqwbmp.dylib'),
- ('imageformats', 'libqwebp.dylib'),
- ('imageformats', 'libqico.dylib'),
- ('imageformats', 'libqmacheif.dylib'),
- ('imageformats', 'libqjpeg.dylib'),
- ('imageformats', 'libqtiff.dylib'),
- ('imageformats', 'libqicns.dylib'),
- ('imageformats', 'libqtga.dylib'),
- ('imageformats', 'libqmacjp2.dylib'),
- ('texttospeech', 'libqtexttospeech_speechosx.dylib'),
- ('generic', 'libqtuiotouchplugin.dylib'),
- ('renderplugins', 'libscene2d.dylib'),
- ('gamepads', 'libdarwingamepad.dylib'),
- ('virtualkeyboard', 'libqtvirtualkeyboard_thai.dylib'),
- ('virtualkeyboard', 'libqtvirtualkeyboard_openwnn.dylib'),
- ('virtualkeyboard', 'libqtvirtualkeyboard_hangul.dylib'),
- ('virtualkeyboard', 'libqtvirtualkeyboard_pinyin.dylib'),
- ('virtualkeyboard', 'libqtvirtualkeyboard_tcime.dylib')]
+ ('generic', 'libqtuiotouchplugin.dylib')]
```
ACKs for top commit:
laanwj:
ACK 1ac7b7f66b
(purely Python code review and the fact that this passes travis, cannot run this on a mac)
dongcarl:
tested ACK 1ac7b7f66b
Tree-SHA512: 5974eeaf7229bb5bde2b283c1331ec57ee87f624db146401f6b77dee4ee5502e0bd669958a46205f10398a371f8e6c91ddacb9f0e1943f9f7d042fb6de7957a8
2019-09-10 10:53:59 +10:00
Ben Woosley
b21680baf5
test/contrib: Fix invalid escapes in regex strings
...
Flagged by flake8 v3.6.0, as W605, plus a few others identified
incidentally, e.g. 59ffecf66cf4d08c4b431e457b083878d66a3fd6.
Note that r"\n" matches to "\n" under re.match/search.
2019-09-03 14:38:38 -04:00
fanquake
1ac7b7f66b
scripts: filter more qt plugins we don't use in macdeployqtplus
...
phonon is no longer a part of Qt as of version 5
2019-07-29 09:35:51 +08:00
fanquake
57cdd0697d
scripts: misc cleanups in macdeployqtplus
2019-07-29 08:28:41 +08:00
fanquake
51729a4dfa
scripts: use format() in macdeployqtplus
2019-07-29 08:28:41 +08:00
fanquake
1c37e81694
scripts: add type annotations to macdeployqtplus
2019-07-29 08:28:41 +08:00
Ben Woosley
4e81438f65
build: Drop macports support
...
It's untested / unmaintained, according to theuni.
https://github.com/bitcoin/bitcoin/pull/14920/files#r246964938
2019-01-16 12:13:59 -08:00
John Newbery
bc6fdf2d15
Change all python files to use Python3
2018-03-26 16:49:33 -04:00
Chris Gavin
e8babc4330
Use with
in macdeployqtplus
script.
2017-04-25 09:18:08 +01:00
Chris Gavin
4f3ac7ddd7
Remove unused variable from macdeployqtplus
script.
2017-04-25 09:18:03 +01:00
practicalswift
5f62e3eb63
Fix typos
2017-01-29 18:19:55 +01:00
Don Patterson
2fb98f6661
Fix bug in dmg builder so that it actually reads in the configuration file
2016-12-30 10:44:58 +01:00
Cory Fields
09aefb5177
build: Fix 'make deploy' for OSX
...
Native OSX uses system tools rather than 3rd party dependencies. rsvg-convert
is still required, though.
2016-12-23 09:48:52 +01:00
Wladimir J. van der Laan
a6666b25c7
depends: mac deploy Py3 compatibility
...
This fixes the gitian MacOSX build, it was broken in #7723 .
The patch to `native_mac_alias` should probably make it upstream.
2016-04-21 13:40:51 -04:00
Wladimir J. van der Laan
18f05c765c
build: python 3 compatibility
...
Ubuntu 16.04 "xenial xerus" does not come with Python 2.x by default.
It is possible to install a python-2.7 package, but this has its own
problem: no `python` or `python2` symlink (see #7717 ).
This fixes the following scripts to work with python 3:
- `make check` (bctest,py, bitcoin-util-test.py)
- `make translate` (extract_strings_qt.py)
- `make symbols-check` (symbol-check.py)
- `make security-check` (security-check.py)
Explicitly call the python commands using $(PYTHON) instead
of relying on the interpreter line at the top of the scripts.
2016-03-29 17:20:16 +02:00
Luke Dashjr
63bcdc5227
More complicated package name substitution for Mac deployment
2015-12-22 03:24:21 +00:00
Jonas Schnelli
0a32a9347e
OSX: use "Bitcoin Core" as Bundle Display Name
2015-06-03 10:06:10 +02:00
Jonas Schnelli
a2241eabfd
[OSX] revert renaming of Bitcoin-Qt.app
2015-06-01 15:42:34 +02:00
Jonas Schnelli
7cef321e65
[Mac only] rename Bitcoin-Qt.app to "Bitcoin Core.app"
2015-05-19 11:03:49 +02:00
Cory Fields
88a797320a
osx packaging: move background image to .background to match gitian builds
...
Also increase temp dmg filesize to account for a bigger background image
2015-01-20 09:32:54 +01:00
Cory Fields
dd367ff8c9
build: macdeploy: filter out irrelevant qt5 frameworks and dylibs
2014-10-01 19:26:29 -04:00
Gavin Andresen
965c306d6d
Keep symlinks when copying into .app bundle
...
Code signing failed for me on OSX 10.9.5 because the
Versions/Current symbolic links were being replaced
with a duplicate copy of the frameworks' code.
Releases were bigger than they needed to be, for the
same reason.
2014-10-01 09:58:00 -04:00
Cory Fields
af0bd5ee7f
osx: fix signing to make Gatekeeper happy (again)
...
The approach from 65f3fa8d1
worked for signing on 10.9.4, but not newer
versions. 10.9.5 (and up) want each framework to stand alone.
Now in addition to copying the plist's from Qt for each framework, we put them
in per-version dirs and only symlink to the latest, rather than using symlinks
for any contents.
2014-09-29 22:03:24 -04:00