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

chicken: support darwin platform #103748

merged 1 commit into from Nov 15, 2020

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 requested a review from corngood Nov 13, 2020
@landakram landakram marked this pull request as ready for review Nov 13, 2020
@veprbl
Copy link
Member

@veprbl 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

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 landakram force-pushed the landakram:chicken-darwin branch from efa0479 to cd31a5d Nov 14, 2020
@landakram
Copy link
Contributor Author

@landakram landakram commented Nov 14, 2020

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

@ofborg ofborg bot requested a review from corngood Nov 14, 2020
Copy link
Contributor

@corngood corngood left a comment

Looks good. Thanks!

@landakram landakram force-pushed the landakram:chicken-darwin branch from cd31a5d to 25397d5 Nov 14, 2020
@ofborg ofborg bot requested a review from corngood Nov 14, 2020
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.
@landakram landakram force-pushed the landakram:chicken-darwin branch from 25397d5 to a9b077b Nov 14, 2020
@veprbl
veprbl approved these changes Nov 15, 2020
Copy link
Member

@veprbl veprbl left a comment

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
19 checks passed
19 checks passed
tests
Details
action
Details
Evaluation Performance Report Evaluator Performance Report
Details
Wait for ofborg
Details
chicken, chicken.passthru.tests on aarch64-linux Success
Details
chicken, chicken.passthru.tests on x86_64-linux Success
Details
grahamcofborg-eval ^.^!
Details
grahamcofborg-eval-check-maintainers matching changed paths to changed attrs...
Details
grahamcofborg-eval-check-meta config.nix: checkMeta = true
Details
grahamcofborg-eval-darwin nix-instantiate --arg nixpkgs { outPath=./.; revCount=999999; shortRev="a9b077b"; rev="a9b077b5dd2d250e5a13949eed3d2ef5cb9b1f45"; } ./pkgs/t
Details
grahamcofborg-eval-lib-tests nix-build --arg pkgs import ./. {} ./lib/tests/release.nix
Details
grahamcofborg-eval-nixos nix-instantiate --arg nixpkgs { outPath=./.; revCount=999999; shortRev="a9b077b"; rev="a9b077b5dd2d250e5a13949eed3d2ef5cb9b1f45"; } ./nixos/
Details
grahamcofborg-eval-nixos-manual nix-instantiate --arg nixpkgs { outPath=./.; revCount=999999; shortRev="a9b077b"; rev="a9b077b5dd2d250e5a13949eed3d2ef5cb9b1f45"; } ./nixos/
Details
grahamcofborg-eval-nixos-options nix-instantiate --arg nixpkgs { outPath=./.; revCount=999999; shortRev="a9b077b"; rev="a9b077b5dd2d250e5a13949eed3d2ef5cb9b1f45"; } ./nixos/
Details
grahamcofborg-eval-nixpkgs-manual nix-instantiate --arg nixpkgs { outPath=./.; revCount=999999; shortRev="a9b077b"; rev="a9b077b5dd2d250e5a13949eed3d2ef5cb9b1f45"; } ./pkgs/t
Details
grahamcofborg-eval-nixpkgs-tarball nix-instantiate --arg nixpkgs { outPath=./.; revCount=999999; shortRev="a9b077b"; rev="a9b077b5dd2d250e5a13949eed3d2ef5cb9b1f45"; } ./pkgs/t
Details
grahamcofborg-eval-nixpkgs-unstable-jobset nix-instantiate --arg nixpkgs { outPath=./.; revCount=999999; shortRev="a9b077b"; rev="a9b077b5dd2d250e5a13949eed3d2ef5cb9b1f45"; } ./pkgs/t
Details
grahamcofborg-eval-package-list nix-env -qa --json --file .
Details
grahamcofborg-eval-package-list-no-aliases nix-env -qa --json --file . --arg config { allowAliases = false; }
Details
AnisimoffNikita added a commit to AnisimoffNikita/nixpkgs that referenced this pull request Nov 16, 2020
Fix4 (#1)
* 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
Linked issues

Successfully merging this pull request may close these issues.

3 participants
You can’t perform that action at this time.