Commit Graph

138 Commits

Author SHA1 Message Date
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
fanquake
7087440894
depends: native_ds_store 1.3.0
native_ds_store now takes advantage of Pythons ability to decode binary
plists (since 3.4), so we can drop its biplist dependency.

The call to biplist.Data() in custom_dsstore doesn't seem to do anything,
and from what I can tell can just be removed.
2020-11-11 08:01:02 +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
Cory Fields
2418f739f7
macos: Bump to xcode 11.3.1 and 10.15 SDK
This gets us a newer SDK with c++17 support and retains 10.12
back-compat.

Co-authored-by: Carl Dong <contact@carldong.me>
2020-06-22 10:14:33 -04:00
Carl Dong
85b5e42088
contrib: macdeploy: Remove historical extraction notes 2020-06-22 10:14:03 -04:00
Carl Dong
351beb5c9a
contrib: macdeploy: Use apple-sdk-tools instead of xar+pbzx 2020-06-22 10:14:02 -04:00
Carl Dong
b3394ab235
contrib: macdeploy: Correctly generate macOS SDK
Previously, we did not include the macOS SDK libc++ headers in our SDK
creation process and instead used whichever libc++ headers shipped with
the clang package we downloaded in depends.

This change adds a script (which works on both GNU/Linux and macOS) to
correctly generate the macOS SDK including the libc++ headers. This can
be thought of as a simplified rewrite of tpoechtrager's script:

d3392f4eae/tools/gen_sdk_package.sh

The location within the SDK where we place the libc++ headers is chosen
such that clang's search path detection logic for sysroots would pick up
the headers properly.

We also document this change.
2020-06-19 14:35:48 -04:00
fanquake
d8ca51db5d
Merge #18589: Fix naming of macOS SDK and clarify version
eb37275a6f Fix naming of macOS SDK and clarify version (Andrew Chow)

Pull request description:

  Fixes the `MacOSX10.14.sdk.tar.gz` creation command to have `MacOSX.sdk` be correctly named as `MacOSX10.14.sdk` and for the resulting file to be placed in the current directory. Gitian requires that `tar.gz` contains a folder named `MacOSX10.14.sdk` and the command did not do this originally. Having the file be placed in the current directory is a convenience so builders don't have to go find it.

  Also clarifies which version of Xcode to download and where it can be downloaded.

ACKs for top commit:
  fanquake:
    ACK eb37275a6f - tested the macOS and Linux SDK extraction. Also noticed something seemingly broken with Apple `tar`, but will open an issue to follow up.
  Sjors:
    ACK eb37275 for the macOS instruction

Tree-SHA512: d691e14711cf195999291dd6fb7ffe552c86f8b30d2b1a77e88b4db6050dd817ba128b047cf36d29b0bb0d4183e709b7c03aa27f31b64e562ea8cd948434ca55
2020-04-24 17:22:54 +08:00
Andrew Chow
eb37275a6f Fix naming of macOS SDK and clarify version 2020-04-23 13:22:16 -04:00
MarcoFalke
fa488f131f
scripted-diff: Bump copyright headers
-BEGIN VERIFY SCRIPT-
./contrib/devtools/copyright_header.py update ./
-END VERIFY SCRIPT-
2020-04-16 13:33:09 -04:00
fanquake
7e2104433c
build: use macOS 10.14 SDK
Co-Authored-By: Carl Dong <accounts@carldong.me>
2020-02-03 19:49:46 +08:00
MarcoFalke
e09c701e01 scripted-diff: Bump copyright of files changed in 2020
-BEGIN VERIFY SCRIPT-
./contrib/devtools/copyright_header.py update ./
-END VERIFY SCRIPT-
2020-01-15 02:18:00 +07:00
MarcoFalke
aaaaad6ac9
scripted-diff: Bump copyright of files changed in 2019
-BEGIN VERIFY SCRIPT-
./contrib/devtools/copyright_header.py update ./
-END VERIFY SCRIPT-
2019-12-30 10:42:20 +13:00
Zakk
4441e58497 Update macdeploy README to include correctly named .dmg file produced from make deploy 2019-10-15 11:30:13 +01:00
Jon Layton
6aab7649d3 doc: Fix whitespace errs in .md files, bitcoin.conf, Info.plist.in, and find_bdb48.m4 2019-09-17 03:21:22 -04: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
Hennadii Stepanov
1ac454a384
Enable ShellCheck rules
Enabled ShellCheck rules:
  SC1087
  SC2001
  SC2004
  SC2005
  SC2006
  SC2016
  SC2028
  SC2048
  SC2066 (note that IFS already contains only a line feed)
  SC2116
  SC2166
  SC2181
  SC2206
  SC2207
  SC2230
  SC2236
2019-07-04 19:35:25 +03: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
DrahtBot
06ba77973e Update copyright headers to 2018 2018-12-29 10:15:01 +01:00
Jonas Schnelli
43719e0a34
[macOS] Remove DS_Store WindowBounds bytes object 2018-10-20 15:12:02 +02:00
DrahtBot
eb7daf4d60 Update copyright headers to 2018 2018-07-27 07:15:02 -04:00
DesWurstes
000000035b Obsolete #!/bin/bash shebang 2018-06-20 11:12:41 +03:00
practicalswift
3352da8da1 Add "export LC_ALL=C" to all shell scripts 2018-06-14 15:27:52 +02:00
John Newbery
bc6fdf2d15 Change all python files to use Python3 2018-03-26 16:49:33 -04:00
practicalswift
80f5f28d38 Fix incorrect quoting of quotes (the previous quotes had no effect beyond unquoting) 2017-10-18 17:10:23 +02: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
Wladimir J. van der Laan
2cc0df1fce
Merge #9514: release: Windows signing script
09fe2d9 release: update docs to show basic codesigning procedure (Cory Fields)
f642753 release: create a bundle for the new signing script (Cory Fields)
0068361 release: add win detached sig creator and our cert chain (Cory Fields)

Tree-SHA512: 032ad84697c70faaf857b9187f548282722cffca95d658e36413dc048ff02d9183253373254ffcc1158afb71140753f35abfc9fc8781ea5329c04d13c98759c0
2017-03-13 07:44:53 +01:00
practicalswift
5f62e3eb63 Fix typos 2017-01-29 18:19:55 +01:00
Cory Fields
f642753887 release: create a bundle for the new signing script
Also change the mac filename to match

The procedure remains the same, but now there's a nifty script to automate
the signing process.

Future steps:
- Build osslsigncode in the gitian-win descriptor so that the signer itself is
  deterministic.
- Verify in the gitian-win-signer descriptor that the expected cert chain was
  used.
2017-01-10 18:58:09 -05:00
Wladimir J. van der Laan
c0ddd32bf6
Merge #9450: Increment MIT licence copyright header year on files modified in 2016
27765b6 Increment MIT Licence copyright header year on files modified in 2016 (isle2983)
2017-01-04 12:09:05 +01:00
isle2983
27765b6403 Increment MIT Licence copyright header year on files modified in 2016
Edited via:

$ contrib/devtools/copyright_header.py update .
2016-12-31 11:01:21 -07: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
isle2983
0766d1cac3 [copyright] add MIT license headers to .sh scripts where missing
Years are set according to 'git log' history
2016-09-11 13:36:22 -06:00
Luke Dashjr
b729fcdb84 Include instructions to extract Mac OS X SDK on Linux using 7zip and SleuthKit 2016-08-29 01:18:39 +00: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
e4ab5e5f43 Bugfix: Correct copyright year in Mac DMG background image 2015-12-22 12:31:33 +00:00
Luke Dashjr
63bcdc5227 More complicated package name substitution for Mac deployment 2015-12-22 03:24:21 +00:00
Cory Fields
c110575a92 gitian: Use the new bitcoin-detached-sigs git repo for OSX signatures
Rather than fetching a signature.tar.gz from somewhere on the net, instruct
Gitian to use a signature from a tag in the bitcoin-detached-sigs repository
which corresponds to the tag of the release being built.

This changes detached-sig-apply.sh to take a dirname rather than a tarball as
an argument, though detached-sig-create.sh still outputs a tarball for
convenience.
2015-06-10 17:54:46 -04: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
Cory Fields
d1a3866e0b build: Cope with spaces in filenames when creating/applying OSX sigs 2015-05-19 11:03:54 +02:00
Jonas Schnelli
7cef321e65 [Mac only] rename Bitcoin-Qt.app to "Bitcoin Core.app" 2015-05-19 11:03:49 +02:00
Jonas Schnelli
95ef87c75e add new osx dmg background picture 2015-01-20 09:33:38 +01:00
Cory Fields
48bebcca79 osx packaging: update DS_Store after background changes 2015-01-20 09:32:54 +01: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
914868a05d build: add a deterministic dmg signer 2014-11-26 00:57:16 -05:00
Cory Fields
d69ed2b291 build: Clean up the dmg layout 2014-11-25 19:26:40 -05: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
Cory Fields
65f3fa8d11 build: osx: Fix incomplete framework packaging for codesigning
Starting with 10.9, Framework versions must be signed individually, rather
than as a single bundle version, in order to be properly codesigned. This
change ensures that the proper plist files and symlinks are present prior to
packaging.
2014-08-23 15:24:42 -04:00
Cory Fields
71941ce580 build: teach macdeploy the -translations-dir argument, for use with static qt
When QT is linked statically, macdeploy can't infer its paths. While plugins
and frameworks don't need to be packaged, translations still do (for now).
2014-08-06 19:29:19 -04:00
Wladimir J. van der Laan
1de2992e07
Merge pull request #4104
68aa01e Fixes error (Ian Carroll)
2014-07-30 11:45:41 +02:00
Federico Bond
502972f16b Fix Error: No file at @loader_path/libboost_system-mt.dylib 2014-07-09 20:50:30 -03:00
Wladimir J. van der Laan
b73dc953a8
Merge pull request #4187
d16f6f8 Remove unused imports in macdeploy script (Federico Bond)
2014-05-30 10:07:47 +02:00
Federico Bond
d16f6f87e1 Remove unused imports in macdeploy script 2014-05-20 10:28:16 -03:00
Federico Bond
c6e36b0492 Fix NameError in macdeploy script 2014-05-15 03:27:35 -03:00
Ian Carroll
68aa01e51f Fixes error 2014-04-28 19:36:28 -04:00
Cory Fields
01e5327cfc build: hook up "make deploy" for cross osx builds 2014-03-20 13:06:17 -04:00
Cory Fields
0f21d39ffa build: fix qt.conf case-sensitivity in the deployed dmg
For qt5.2 on osx, the qcocoa plugin is mandatory. However, it fails to load
when qt.conf specifies the "plugin" path instead of the expected "Plugin". This
is in line with the documentation:
https://qt-project.org/doc/qt-5.0/qtdoc/qt-conf.html

I'm not sure how the plugins were loading before, unless the case-sensitivity
for OSX is new.
2014-03-20 13:06:16 -04:00
Cory Fields
275d6a3115 build: allow correct tools to be used for dmg creation.
These come from the enironment, which will be properly setup by Make with
the paths gleaned from configure.
Also don't crash if plugins are static.
2014-03-20 13:06:16 -04:00
super3
27e2d8bfb5 Finished /Contrib Index. Standardized READMEs.
File and Link Fix.
2013-10-15 23:37:30 -04:00
Cory Fields
35b8af9226 autotools: switch to autotools buildsystem 2013-09-05 21:31:03 -04:00
fanquake
ced7f77df5 Update default URL in verify.sh
The current default URL doesn't seem to exist.

Unsure wether this should be updated to point to 0.7.2 now or wether
just to wait untill 0.8.0 is out and point there?

Commit also fixes a minor typo in the macdeploy notes.txt
2013-02-01 13:10:44 +08:00
Gavin Andresen
33b377a016 Port macdeployqtplus to OSX 10.8
Use 'osascript' to run AppleScript, instead of using (broken-in-10.8)
python appscript package.

And added support for code-signing the .app bundle, to make OSX's
GateKeeper happy.
2013-01-18 10:08:28 -05:00
default
fe703deae7 Deploy properly with Nokia Qt installer's Frameworks 2012-11-21 19:38:56 +00:00
Gavin Andresen
ace35a1997 Fix mac .dmg packager for latest macports qt4 2012-09-05 17:54:37 -04:00
Gavin Andresen
0104e36d4b Mac deploy tool: make dylibs writeable when copying into app bundle, so they can be stripped/nametool'ed 2012-02-06 09:33:13 -05:00
p2k
f118b5fc5d miniupnpc Porfile removed; new and improved macdeployqtplus
* My patch for miniupnpc has made it into the latest MacPorts release: https://trac.macports.org/ticket/31354
* Documentation has been changed appropriately
* New pure-Python macdeployqt; leverages all problems with the stock macdeployqt
2012-02-06 09:33:12 -05:00
Gavin Andresen
f6aacbfe6d Mac releases use macdeployqtplus 2011-11-04 10:22:55 -04:00
p2k
a8fe4b7a5f Added a copy of the GPLv3 to macdeployqtplus 2011-11-02 19:26:32 +01:00
p2k
6eaa1b36fc Mac Deployment Script
See notes.txt in contrib/macdeploy.

Also added a dash to the application name in src/qt/bitcoin.cpp
2011-11-02 14:58:50 +01:00