Skip to content

chicken: support darwin platform#103748

Merged
veprbl merged 1 commit intoNixOS:masterfrom
landakram:chicken-darwin
Nov 15, 2020
Merged

chicken: support darwin platform#103748
veprbl merged 1 commit intoNixOS:masterfrom
landakram:chicken-darwin

Conversation

@landakram
Copy link
Contributor

@landakram landakram commented Nov 13, 2020

Motivation for this change

Darwin was not included as a supported platform for chicken. However, it compiled and
worked fine after bypassing unsupported platforms.

Things done

We make two changes to chicken's derivation. First, we add darwin as a supported
platform.

Second, we set some envvars that force the build to use nix-supplied build
tools. Chicken's Makefile for macOS hardcodes paths to gcc and other build tools
(see here). We override these envvars to use the wrapped $CC and bintools provided by
nix to make the build pure.

Fixes #12686

  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
  • Built on platform(s)
    • NixOS
    • macOS
    • other Linux distributions
  • Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
  • Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Determined the impact on package closure size (by running nix path-info -S before and after)
  • Ensured that relevant documentation is up to date
  • Fits CONTRIBUTING.md.

@ofborg ofborg bot added 6.topic: darwin Running or building packages on Darwin 8.has: package (new) This PR adds a new package labels Nov 13, 2020
@ofborg ofborg bot requested a review from corngood November 13, 2020 22:53
@ofborg ofborg bot added 10.rebuild-darwin: 1-10 This PR causes between 1 and 10 packages to rebuild on Darwin. 10.rebuild-linux: 1-10 This PR causes between 1 and 10 packages to rebuild on Linux. labels Nov 13, 2020
@landakram landakram marked this pull request as ready for review November 13, 2020 22:57
@veprbl
Copy link
Member

veprbl commented Nov 14, 2020

lib.ifEnable is deprecated

ifEnable = cond: val:

Please use lib.optional and lib.optionals

Copy link
Contributor

@corngood corngood left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These changes all look fine to me, but I'd suggest:

  • amend the first commit to avoid ifEnable in the code you've added

and one of:

  • remove the second commit (I don't see why we need to fix the existing code)
  • change the second commit message to 'chicken: ...' to be consistent

@landakram
Copy link
Contributor Author

landakram commented Nov 14, 2020

Thanks, I squashed them into a single commit. Hopefully that works!

@ofborg ofborg bot requested a review from corngood November 14, 2020 21:09
Copy link
Contributor

@corngood corngood left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good. Thanks!

@ofborg ofborg bot requested a review from corngood November 14, 2020 22:45
Darwin was not included as a supported platform for chicken. However, it compiled and
worked fine after bypassing unsupported platforms.

We make two changes to chicken's derivation. First, we add darwin as a supported
platform.

Second, we set some envvars that force the build to use nix-supplied build
tools. Chicken's Makefile for macOS hardcodes paths to gcc and other build tools
(see
https://code.call-cc.org/cgi-bin/gitweb.cgi?p=chicken-core.git;a=blob;f=Makefile.macosx;h=5d4d9b0aa1bb4c95e1ba7a55f9586fa86ee5034f;hb=317468e4994e6245d787400359726a9fb97d5d60#l31). We
override these envvars to use the wrapped $CC and bintools provided by nix to make
the build pure.
Copy link
Member

@veprbl veprbl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nixpkgs-review on x86_64-darwin:

4 package built:
chicken egg2nix ugarit ugarit-manifest-maker

Also

# nix build -f nixpkgs chickenPackages_4 chickenPackages_5
[10 built]

@veprbl veprbl merged commit 79b7866 into NixOS:master Nov 15, 2020
AnisimoffNikita added a commit to AnisimoffNikita/nixpkgs that referenced this pull request Nov 16, 2020
* vgrep: 2.5.0 -> 2.5.1

https://github.com/vrothberg/vgrep/releases/tag/v2.5.1

* ocamlPackages.digestif: 0.8.0 → 0.9.0

* tor-browser-bundle-bin: 10.0.2 -> 10.0.4

* webkitgtk: 2.30.1 → 2.30.2

https://webkitgtk.org/2020/10/23/webkitgtk2.30.2-released.html

* abcl: update source archive hash

Seems like the source archive for abcl 1.8.0 was replaced on 2020-10-30
on both common-lisp.net and abcl.org. Now using the new hash and
abcl.org for src.

* flyway: 7.1.1 -> 7.2.0

* turbo-geth: 2020.11.01 -> 2020.11.02

* geany: 1.37 -> 1.37.1

* vscodium: 1.51.0 -> 1.51.1

* vscode: 1.51.0 -> 1.51.1

* kitty: use installShellCompletion to install the shell completions

* kitty: 0.19.1 -> 0.19.2

https://github.com/kovidgoyal/kitty/releases/tag/v0.19.2

* librdf_raptor2: add patch for CVE-2017-18926

Fixes two heap overflows in the raptor2 rdf parsing library.

https://www.openwall.com/lists/oss-security/2017/06/07/1

* wofi: 1.2.1 -> 1.2.3

This also fixes a GDK Protocol error.

* gnomeExtensions.dash-to-panel: 39 -> 40

* oh-my-zsh: 2020-11-11 → 2020-11-12

* linux-rt_5_4: 5.4.74-rt41 -> 5.4.74-rt42

* gp2c: 0.0.11pl4 -> 0.0.12

* yabai: 3.3.0 -> 3.3.3

* haproxy: 2.2.4 -> 2.3.0

* pastebinit: fix basic usage

* k6: 0.28.0 -> 0.29.0

* linux: 5.10-rc2 -> 5.10-rc3

* icewm: 1.9.0 -> 1.9.2

* octant: init at 0.16.0 (NixOS#99546)

* jotta-cli: 0.7.33634 -> 0.7.35160

* zfsUnstable: 2.0.0-rc5 -> 2.0.0-rc6

* vimPlugins: update

* vimPlugins: resolve github repository redirects

* jetty: 9.4.31.v20200723 -> 9.4.34.v20201102

* igv: 2.8.11 -> 2.8.12

* libreoffice-qt: wrap application

Libreoffice-qt is not wrapped, thus does not launch. Notice that
wrapQtQAppsHook is used manually since all executables are shell
scripts which are not wrapped automatically.

* zathura: 0.4.5 -> 0.4.7

* zathura-pdf-mupdf: 0.3.5 -> 0.3.6, fix linking

* intel-media-sdk: 20.3.1 -> 20.4.1

* hackage2nix: disable broken builds to fix evaluation errors on Hydra

* hackage-packages.nix: automatic Haskell package set update

This update was generated by hackage2nix v2.15.5-27-g11a103b from Hackage revision
commercialhaskell/all-cabal-hashes@cb01aa6.

* haskell-time-compat: update to latest version so that binary-instances compiles

* haskell: add addTestToolDepends

* haskellPackages.optparse-applicative_0_16_0_0: Fix for compgen error

* haskellPackages.optparse-generic_1_4_4: Correct version of dependency

* haskellPackages.update-nix-fetchgit: Several fixes

Fix versions of dependencies

Generate shell completions

Wrap executable so that required executables are in PATH

Make sure necessary executables for tests are present during build

* update-nix-fetchgit: standalone small closure

* haskell: whitespace fixes

* haskellPackages.quickcheck-instances: no longer needs doJailbreak in ghc-8.8.

* haskellPackages.binary-instances: get building again

* haskell: Add documentationTarball to lib

* haskellPackages.pandoc: 2.11.1 -> 2.11.1.1

* haskellPackages.reflex-dom-core: Remove obsolete patches

* haskellPackages.matterhorn: Fix eval

* haskellPackages.haskell-language-server: Fix build

In preparation of the upcoming 0.6.0 release I wanted to fix hls.

It introduces two new plugin packages, which are not on hackage yet.

I remove apply-refact overrides, because current apply-refact versions
are compatible with all ghcs we support, according to their changelog.

I override more of the hls dependencies globally on the whole package
set, to avoid a lot of duplicate compilations. And because @peti changed
my mind about this being a good practice.

hls now uses a released version of ghcide

* haskell-language-server: 0.6.0rc -> 0.6.0

* haskellPackages: Fix eval errors

* haskellPackages: Cleanup unneeded builds

* haskell-language-server: Fix hydra config for deps

* haskellPackages.hls-hlint-plugin: Fix build on hydra

* lib: Add composeManyExtensions

* haskell: improve documentation on ghcWithHoogle and developPackage

* haskell: add withHoogle option to developPackage

* haskell: Add cabal2nixOptions to developPackage

Also neaten documentation slightly

* haskell-language-server: Fix build

Fixing a bound problem in ghcide and bumping ghc-exactprint

* haskellPackages.stack: Fix eval error

* haskell-pantry: update overrides for the new version

* qvge: init at 0.6.1

* julia: init at 1.5 (NixOS#101933)

* jmol: 14.31.14 -> 14.31.17

* mill: removing MILL_VERSION variable (NixOS#103736)

* last: 1133 -> 1145

* kpt: 0.36.1 -> 0.37.0

* python3Packages.dipy: 1.2.0 -> 1.3.0

* PULL_REQUEST_TEMPLATE.md: use rendered docs

* python3Packages.pytorch-metric-learning: 0.9.81 -> 0.9.94

* kubernetes-helm: 3.4.0 -> 3.4.1

* ubootRockPi4: init

This adds support for the Radxa Rock Pi 4 board which is based on
RK3399. The u-boot outputs from the introduced build are suitable to
build a generic image for the Rock Pi 4 by setting the following in a
custom build of $nixpkgs/nixos/modules/installer/cd-dvd/sd-image-aarch64.nix:

```
  sdImage.postBuildCommands = ''
    dd if=${pkgs.ubootRockPi4}/idbloader.img of=$img seek=64 conv=notrunc
    dd if=${pkgs.ubootROckPi4}/u-boot.itb of=$img seek=16384 conv=notrunc
  '';
```

* libthreadar: 1.3.0 -> 1.3.1

* antiprism: init at 0.26

* all-packages.nix: a small reorganization

Now the science/geometry expressions are in a same block of the all-packages
file.

* haproxy: add passthru.tests

* cloud-nuke: 0.1.18 -> 0.1.23

* lxd: 4.7 -> 4.8

https://discuss.linuxcontainers.org/t/lxd-4-8-has-been-released/9458

* liblinear: 2.41 -> 2.42

* mavproxy: 1.8.22 -> 1.8.23

* openocd: unstable-2020-09-02 -> unstable-2020-11-11

fix build failure with hidapi 0.10.0

* python37Packages.vowpalwabbit: 8.8.1 -> 8.9.0

* ocamlPackages.mirage-unix: use Dune 2

* ocamlPackages.mirage-runtime: use Dune 2

* ocamlPackages.mirage: init at 3.9.0

* arc_unpacker: init at unstable-2019-01-28

* python37Packages.sshtunnel: 0.2.1 -> 0.2.2

* python37Packages.gtts: 2.1.1 -> 2.1.2

* python37Packages.internetarchive: 1.9.5 -> 1.9.6

* python37Packages.sphinxcontrib-katex: 0.6.1 -> 0.7.1

* vte-ng: update patches to apply on vte 0.62

* musescore: fix unpack on darwin (NixOS#103651)

* utsushi: 3.59.2 -> unstable-2020-11-10

+ master should be roughly equivalent to 3.62.0
+ moving to the community repo because they are way better at fixing
  things, while upstream epson almost never merges fixes
+ great thanks to @mwilsoncoding for debugging the problem:
   + `autoconf-archive` was missing

* python37Packages.hyperopt: 0.1.2 -> 0.2.5

* nixos/telegraf: add support for native ping

* nixos/telegraf: add environmentFile option

* nixos/telegraf: switch to setting types

This allows to split up configuration into multiple modules

* nixos/telegraf: allow multiple env files

* telegraf: 1.15.2 -> 1.16.2

* fahviewer: 7.6.13 -> 7.6.21 (NixOS#103688)

* fahcontrol: 7.6.13 -> 7.6.21 (NixOS#103677)

* phonemizer: init at 2.2.1

* sacc: 1.01 → 1.02

* verilog: unstable-2020-10-24 -> 11.0

* vhd2vl: fix compatibility with verilog 11.0

* hsetroot: 1.0.2 -> 1.0.5

* python37Packages.casbin: 0.9.0 -> 0.10.0

* Revert "Merge NixOS#102138: thunderbird: set build timeout at eight hours"

This reverts commit ef543fb, reversing
changes made to 0d657b9.
See the parent commit.

* linux-rt_5_4: 5.4.74-rt42 -> 5.4.77-rt43

* pijul: 1.0.0-alpha -> 1.0.0-alpha.1

* simh: init at 3.11-1

* pythonPackages.notmuch2: init at 0.31

generates bindings via cffi

* doc/contributing: remove label instructions

ofborg largely does this now

* nvidia-x11: 455.28 -> 455.38 (NixOS#103830)

* cloudflared: 2020.11.3 -> 2020.11.5

* dasel: 1.2.0 -> 1.5.1

* doctl: 1.51.0 -> 1.52.0

* flyctl: 0.0.146 -> 0.0.149

* font-manager: 0.7.8 -> 0.7.9

* ft2-clone: 1.39 -> 1.40

* hugo: 0.78.1 -> 0.78.2

* iconpack-obsidian: 4.13 -> 4.14

* python37Packages.pyvips: 2.1.12 -> 2.1.13

* python37Packages.dropbox: 10.8.0 -> 10.10.0

* python37Packages.versioneer: 0.18 -> 0.19

* python2Packages.versioneer: disable python2

* python37Packages.cmd2: 1.3.11 -> 1.4.0

* python37Packages.azure-mgmt-policyinsights: 0.5.0 -> 0.6.0

* python37Packages.bpython: 0.20 -> 0.20.1

* python37Packages.distributed: 2.30.0 -> 2.30.1

* kube3d: 3.2.0 -> 3.2.1

* scheherazade-new: init at 3.000

* lazydocker: 0.9 -> 0.10

* matcha-gtk-theme: 2020-10-23 -> 2020-11-11-0

* html-proofer: 3.16.0 -> 3.17.0

* coq_8_12: 8.12.0 → 8.12.1

* musikcube: 0.94.0 -> 0.95.0

* mutt: 2.0.0 -> 2.0.1

Signed-off-by: Matthias Beyer <mail@beyermatthias.de>

* firefox: 82.0.2 -> 82.0.3

* firefox-esr: 78.4.0esr -> 78.4.1esr

* pmix: 3.2.0 -> 3.2.1

* chicken: support darwin platform (NixOS#103748)

Darwin was not included as a supported platform for chicken. However, it compiled and
worked fine after bypassing unsupported platforms.

We make two changes to chicken's derivation. First, we add darwin as a supported
platform.

Second, we set some envvars that force the build to use nix-supplied build
tools. Chicken's Makefile for macOS hardcodes paths to gcc and other build tools
(see
https://code.call-cc.org/cgi-bin/gitweb.cgi?p=chicken-core.git;a=blob;f=Makefile.macosx;h=5d4d9b0aa1bb4c95e1ba7a55f9586fa86ee5034f;hb=317468e4994e6245d787400359726a9fb97d5d60#l31). We
override these envvars to use the wrapped $CC and bintools provided by nix to make
the build pure.

* rtsp-simple-server: 0.12.0 -> 0.12.1

* cockroachdb: fix license information

* firecracker: 0.22.0 -> 0.23.0

Closes NixOS#102789.

Signed-off-by: Austin Seipp <aseipp@pobox.com>

Co-authored-by: zowoq <59103226+zowoq@users.noreply.github.com>
Co-authored-by: Vincent Laporte <Vincent.Laporte@gmail.com>
Co-authored-by: Dominik Xaver Hörl <hoe.dom@gmx.de>
Co-authored-by: Jan Tojnar <jtojnar@gmail.com>
Co-authored-by: sternenseemann <0rpkxez4ksa01gb3typccl0i@systemli.org>
Co-authored-by: R. RyanTM <ryantm-bot@ryantm.com>
Co-authored-by: David Terry <me@xwvvvvwx.com>
Co-authored-by: JesusMtnez <jesusmartinez93@gmail.com>
Co-authored-by: Martin Weinelt <mweinelt@users.noreply.github.com>
Co-authored-by: Luflosi <luflosi@luflosi.de>
Co-authored-by: Ryan Mulligan <ryan@ryantm.com>
Co-authored-by: Martin Weinelt <hexa@darmstadt.ccc.de>
Co-authored-by: Aamaruvi Yogamani <38222826+Technical27@users.noreply.github.com>
Co-authored-by: Sean Buckley <sean.bck@gmail.com>
Co-authored-by: Andreas Rammhold <andreas@rammhold.de>
Co-authored-by: Tim Steinbach <tim@nequissimus.com>
Co-authored-by: cmacrae <hi@cmacr.ae>
Co-authored-by: Arnout Engelen <arnout@bzzt.net>
Co-authored-by: Jack Kelly <dev@j-k.io>
Co-authored-by: Vladyslav M <dywedir@gra.red>
Co-authored-by: Jonathan Ringer <jonringer117@gmail.com>
Co-authored-by: Will Badart <will@willbadart.com>
Co-authored-by: Jonas Meurer <jmpunkt@outlook.com>
Co-authored-by: Frederik Rietdijk <fridh@fridh.nl>
Co-authored-by: Peter Simons <simons@cryp.to>
Co-authored-by: Joe Hermaszewski <git@monoid.al>
Co-authored-by: (cdep)illabout <cdep.illabout@gmail.com>
Co-authored-by: Malte Brandy <malte.brandy@maralorn.de>
Co-authored-by: Nikolay Korotkiy <sikmir@gmail.com>
Co-authored-by: Christoph Stich <cstich@users.noreply.github.com>
Co-authored-by: Anderson Torres <torres.anderson.85@protonmail.com>
Co-authored-by: scalavision <scalavision@gmail.com>
Co-authored-by: Ben Darwin <bcdarwin@gmail.com>
Co-authored-by: Mario Rodas <marsam@users.noreply.github.com>
Co-authored-by: Samuel Dionne-Riel <samuel@dionne-riel.com>
Co-authored-by: WORLDofPEACE <worldofpeace@protonmail.ch>
Co-authored-by: Pavol Rusnak <pavol@rusnak.io>
Co-authored-by: Doron Behar <doron.behar@gmail.com>
Co-authored-by: Timo Kaufmann <timokau@zoho.com>
Co-authored-by: midchildan <git@midchildan.org>
Co-authored-by: Daniël de Kok <me@danieldk.eu>
Co-authored-by: Jamie McClymont <jamie@kwiius.com>
Co-authored-by: Dmitry Kalinkin <dmitry.kalinkin@gmail.com>
Co-authored-by: Andrew Childs <lorne@cons.org.nz>
Co-authored-by: wucke13 <wucke13@gmail.com>
Co-authored-by: Michael Raskin <7c6f434c@mail.ru>
Co-authored-by: Jörg Thalheim <joerg@thalheim.io>
Co-authored-by: Jörg Thalheim <Mic92@users.noreply.github.com>
Co-authored-by: Ninjatrappeur <NinjaTrappeur@users.noreply.github.com>
Co-authored-by: John Ericson <git@JohnEricson.me>
Co-authored-by: Marek Mahut <marek.mahut@gmail.com>
Co-authored-by: Lassulus <github@lassul.us>
Co-authored-by: SCOTT-HAMILTON <sgn.hamilton+github@protonmail.com>
Co-authored-by: Vladimír Čunát <v@cunat.cz>
Co-authored-by: Matthieu Coudron <mcoudron@hotmail.com>
Co-authored-by: Daniel Fox Franke <dfoxfranke@gmail.com>
Co-authored-by: José Romildo Malaquias <malaquias@gmail.com>
Co-authored-by: StigP <stig@stig.io>
Co-authored-by: Michael Weiss <dev.primeos@gmail.com>
Co-authored-by: Matthias Beyer <mail@beyermatthias.de>
Co-authored-by: Aaron Andersen <aaron@fosslib.net>
Co-authored-by: Mark Hudnall <me@markhudnall.com>
Co-authored-by: markuskowa <markus.kowalewski@gmail.com>
Co-authored-by: Silvan Mosberger <contact@infinisil.com>
Co-authored-by: Antonio Nuno Monteiro <anmonteiro@gmail.com>
Co-authored-by: ajs124 <ajs124@users.noreply.github.com>
Co-authored-by: Austin Seipp <aseipp@pobox.com>
@Janik-Haag Janik-Haag added the 12.first-time contribution This PR is the author's first one; please be gentle! label Jun 12, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

6.topic: darwin Running or building packages on Darwin 8.has: package (new) This PR adds a new package 10.rebuild-darwin: 1-10 This PR causes between 1 and 10 packages to rebuild on Darwin. 10.rebuild-linux: 1-10 This PR causes between 1 and 10 packages to rebuild on Linux. 12.first-time contribution This PR is the author's first one; please be gentle!

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Can't install chicken scheme on darwin

4 participants