Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chicken: support darwin platform #103748

Merged
merged 1 commit into from Nov 15, 2020
Merged

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) labels Nov 13, 2020
@ofborg ofborg bot requested a review from corngood November 13, 2020 22:53
@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!

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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Can't install chicken scheme on darwin
4 participants