Commit Graph

41 Commits

Author SHA1 Message Date
Johannes Altmanninger
6056b54ddb Rename build_tools/make_pkg.sh
pkg is a pretty subtle name?
2025-09-11 14:17:40 +02:00
Johannes Altmanninger
e01aafab1c Extract github actions for interesting rust toolchain versions
Extract a github action to reduce the number of references to our MSRV and
stable (to be pinned in the next commit).

While at it, use the MSRV for macOS builds; this means that we'll be less
like accidentally to break the macOS build when bumping the MSRV.  I don't
think there is a reason for using 1.73 specifically, other than "it's the
highest we can use on old macOS", so using an even older one should be fine.
2025-06-28 09:50:18 +02:00
Johannes Altmanninger
49926cfbac Standardize shell script indent level
We have a mixture of 2 and 4 space indent.

    4 benchmarks/driver.sh
    2 build_tools/check.sh
    4 build_tools/git_version_gen.sh
    4 build_tools/mac_notarize.sh
    2 build_tools/make_pkg.sh
    2 build_tools/make_tarball.sh
    2 build_tools/make_vendor_tarball.sh
    4 docker/docker_run_tests.sh
    4 osx/install.sh
    2 tests/test_functions/sphinx-shared.sh

Our editorconfig file specifies 2, with no explicit reason.
Our fish and Python scripts use 4, so let's use that.
2025-06-24 12:02:13 +02:00
Daniel Rainer
e10573088a Clean up shell scripts
Some changes fix actual problems, e.g. missing spaces in square bracket tests,
and backticks unintentionally causing code execution when intended as formatting.

Others, such as conservative quoting probably work fine in the old version in
most situations, but it's nice to have some additional safety.

Using `{ ..; }` instead of `(..)` is just a small performance enhancement.

Many of these issues were identified by shellcheck, which might be useful in CI
as well.
2025-04-29 10:14:06 +02:00
Peter Ammon
0d5e6f356e Correct spelling of "courtesy" 2024-10-24 20:25:22 -07:00
Peter Ammon
fbf0ad98af Build macOS x86-64 with Rust 1.73.0 in make_pkg.sh
This retains compatibility with macOS 10.9.
Note that Apple Silicon Macs shipped with 10.15, so compatibility for Apple
Silicon is not a concern.
2024-10-13 14:36:02 -07:00
Peter Ammon
c33b35efd4 Set macOS version minimums harder
Fix the macOS app.
2024-10-06 16:38:21 -07:00
Peter Ammon
0e474768f4 Set macOS version minimums when building
Allows running on older versions of macOS.
2024-10-06 14:39:04 -07:00
Peter Ammon
925382dc3e Make make_pkg.sh create fat binaries again on macOS 2024-07-07 14:53:17 -07:00
Peter Ammon
96c5139254 Build, codesign, and notarize macOS packages in CI
This adds a new workflow and script to build macOS packages in GitHub CI.
It also adds some documentation for the process.
2024-07-05 17:29:28 -07:00
Peter Ammon
e67ffc1a3b Revert accidentally pushed commits
This reverts commit 81de0ee97b.
This reverts commit b4450f0ee5.
This reverts commit d5a128d342.
This reverts commit 580028816c.
2024-07-04 19:01:11 -07:00
Peter Ammon
b4450f0ee5 more 2024-07-04 18:08:22 -07:00
Peter Ammon
d5a128d342 more 2024-07-04 17:21:54 -07:00
ridiculousfish
f49efcc691 Use -DCMAKE_EXE_LINKER_FLAGS="-Wl,-ld_classic"
This works around the new linker breaking on old macOS, as documented in the
Xcode 15 release notes.

See https://stackoverflow.com/questions/77193298/crash-running-app-build-on-macos-13-6-clang-15-when-running-on-macos-11-dyna
2023-12-07 22:12:40 -08:00
ridiculousfish
ed37cb6e35 Mac package: pass -f when deleting the temp directory
CMake's FetchContent package will check out a git repo and leave
permissions as read-only, causing rm to fail. Pass -f so that rm will
succeed.
2022-07-02 18:49:54 -07:00
ridiculousfish
780fc4b566 Pass FISH_USE_SYSTEM_PCRE2=OFF in Mac package build
This ensures we don't link against a system installed libpcre2.
Comment in the script why not.
2022-07-02 18:49:44 -07:00
Aaron Gyes
0d5651b0ab .pkg scripts: remove old installs, fix install volume, logging
+ Adds a preinstall script to wipe out whatever the last .pkg
   installed. This should avoid systems that have mad many updates
   getting into strange states autoloading things that no longer
   exist. Fixes #2963

 + Run add-shell with ${DSTVOLUME} prepended to the path - the
   installer lets users intall onto any volume, so it's plausible
   not installed onto /

 + Use `logger` instead of rando /tmp files for logging - stuff
   should show up in Console.

 + make_pkg makes the pkg and also fish.app - the former was being
   built with -j12 already, make the latter do so as well.
2022-01-21 14:01:06 -08:00
ridiculousfish
667057cb0d macOS: go back to using Apple-provided productsign
Previously we used a hacked up 'xar' tool for signing packages,
since productsign produced a package that could not be installed on
macOS 10.11. That was fixed in Xcode 12.5 so we can just use Apple's
tools again.

See #7656.
Also see https://developer.apple.com/forums/thread/664842
2022-01-08 11:31:23 -08:00
ridiculousfish
e4a993c581 Use xar-based workflow for creating Mac packages
As spotted in #7656, macOS installer files built on Big Sur fail signature
verification on macOS 10.11. This is because Big Sur productsign no longer
supplies the SHA-1 hash, and 10.11 does not know how to read the SHA-256
hash.

Replace the productsign flow with a flow based on
http://users.wfu.edu/cottrell/productsign/productsign_linux.html . This
uses the xar tool to digitally sign the installer packages, with both
SHA-1 and SHA-256 hashes.

The xar tool is somewhat tricky to build, so is checked in (as binary!)
compiled for Mac.

To build a Mac package, run make_pkg.sh (which invokes the signing flow)
followed by mac_notarize.sh which adds the notarization.
2021-01-31 14:07:49 -08:00
ridiculousfish
f4f7764390 Add Apple Silicon support to make_pkg
This checks in support for Apple Silicon builds in the Mac package maker
script.
2020-12-05 14:34:00 -08:00
ridiculousfish
6721bf4031 Add the get-task-allow entitlement
This allows Mac fish to be debugged.
2020-02-29 15:29:50 -08:00
ridiculousfish
d989ce72d0 Teach make_pkg.sh to codesign
It respects MAC_CODESIGN_ID and MAC_PRODUCTSIGN_ID variables.
2020-02-18 12:55:11 -07:00
David Adam
6682f0e8ca make_pkg: use absolute source directories in all arguments 2020-02-11 14:26:00 +08:00
Rosen Penev
72bf267d96 make_pkg: Run through shellcheck
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2019-11-30 09:27:50 +01:00
David Adam
83b4adffc0 make_pkg: get static version if git is not available 2019-02-28 21:08:02 +08:00
ridiculousfish
23f8f1b6fb Remove some stale bits from make_pkg.sh 2019-02-05 22:14:43 -08:00
ridiculousfish
ecb808fb39 Teach make_pkg.sh to build fish.app via cmake 2019-02-05 22:14:43 -08:00
ridiculousfish
eaefed434d make_pkg.sh to build with CMake instead of Xcode 2019-02-05 22:14:43 -08:00
David Adam
d7a4838a54 make_pkg: allow output to an environment-controlled path 2016-05-25 17:21:05 +00:00
David Adam
6d6f67ee67 make_pkg: use a temporary directory rather than just /tmp 2016-05-25 17:11:02 +00:00
David Adam
f28a1c58f3 build_tools/make_pkg: fixups for versioning and Xcode preferences
[ci skip]
2016-04-20 14:54:49 +08:00
ridiculousfish
460bfc6853 Update OS X make_pkg script to also produce fish.app 2013-10-05 17:06:22 -07:00
ridiculousfish
a81e70350b Teach OS X package builder script to look up the version dynamically 2013-04-13 23:13:18 -07:00
ridiculousfish
22c670c3d3 Replace OS X installer PackageMaker document with a distribution file and script 2013-04-13 02:00:32 -07:00
ridiculousfish
9762a8ca1e Remove xsel from the build
https://github.com/fish-shell/fish-shell/issues/633
2013-03-30 00:13:44 -07:00
ridiculousfish
4986e6e3f9 Fix to set up 10.6 SDK correctly when building on 10.7 2012-05-30 00:27:50 -07:00
ridiculousfish
4afdcf56fc Tweak a few default colors
Fix the make_pkg script to actually build an installable package that doesn't immediately barf
2012-05-29 21:14:19 -07:00
ridiculousfish
dcd7d6769d Updated some build scripts 2012-05-24 23:56:07 -07:00
ridiculousfish
6f9a523151 Some tweaks to build tools
Started make_deb.sh for Debian package
2012-05-22 00:05:41 -07:00
ridiculousfish
2d3d6e1c17 Added PackageMaker file
Updated make_pkg.sh to use it
2012-05-11 17:26:08 -07:00
ridiculousfish
b0f4ff2879 Added build_tools folder so we can automate release builds 2012-05-10 02:11:28 -07:00