-
-
Notifications
You must be signed in to change notification settings - Fork 14.6k
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
rapidcheck: refactor postInstall
to install all extras
#106376
rapidcheck: refactor postInstall
to install all extras
#106376
Conversation
RapidCheck's extras were not accessible through the package, with the exception of boost_test, which was being copied directly into the core include directory. RapidTest's documentation for that module says to add the `extras/boost_test/include` directory to your include path, but the nixpkgs derivation for it puts the file in `$out/include/rapidtest`. > This support is available through the `extras/boost_test` module. You can either directly add the `extras/boost_test/include` directory to your include path or link against the `rapidcheck_boost_test` target in your `CMakeLists.txt`. You can then simply `#include <rapidcheck/boost_test.h>`. Note that `rapidcheck/boost_test.h` needs to be included after any Boost Test headers. This commit repaces the copy of that one header with an `rsync` of all files, except `CMakeLists.txt`s, from `$src/extras` into `$out/extras` so that the output path matches what the rapidtest documentation expects. Accessing all extras is now possible by adding `"${pkgs.rapidtest}/extras/<extra>/include"` to your list of include paths.
I haven't done any cross platform testing of this, only confirmed that it works in WSL Debian with gcc 9.3.0. One thing that isn't clear to me yet is whether or not the |
postInstall = '' | ||
cp ../extras/boost_test/include/rapidcheck/boost_test.h $out/include/rapidcheck | ||
cd $src | ||
rsync --filter="- **CMakeLists.txt" -acRv extras $out |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you please use mv or cp?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I originally had tried using cp
, but you can't filter the files being copied. Considering that it already depends on cmake
I was thinking that a dependency on rsync
at build time would be preferable to having installed the extras includes with the CMakeLists.txt
files still lying around in there. The thing I had tried was a recursive cp
followed by an rm **/CMakeLists.txt
, but the destination files were read only, so I switched. If that approach would work by changing the file permissions in $out
before doing the rm
, then I'm happy to do that.
I played around with builtins.filterSource
as well, but it isn't allowed to refer to store paths, so I was left wondering if there was a way to use a nix function to filter that directory, but wasn't sure what to try.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I tried with the chmod +w
and rm
for the CMakeLists.txt
files and it is producing the same result as the rsync
, just in a more roundabout way.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It is preferable to only use rsync if there is no other way. 4 Lines bash instead is fine for me.
Removed the dependency on rsync in favor of cp/chmod/rm to do the filtering.
Result of 1 package built:
|
Result of 1 package built:
|
## Changelog for nixpkgs: Commits: [NixOS/nixpkgs@29679363...e9158eca](NixOS/nixpkgs@2967936...e9158ec) * [`ba6b3cb7`](NixOS/nixpkgs@ba6b3cb) ortp: unstable-2020-03-17 -> 4.4.9 * [`c17a8f27`](NixOS/nixpkgs@c17a8f2) mediastreamer: unstable-2020-03-20 -> 4.4.13 * [`64f42418`](NixOS/nixpkgs@64f4241) belle-sip: unstable-2020-02-18 -> 4.4.13 * [`64c7999f`](NixOS/nixpkgs@64c7999) liblinphone: unstable-2020-03-20 -> 4.4.15 * [`c7447bc8`](NixOS/nixpkgs@c7447bc) minizip2: init at 2.10.4 * [`a3031041`](NixOS/nixpkgs@a303104) linphone: unstable-2020-03-06 -> 4.2.4 * [`18a5777c`](NixOS/nixpkgs@18a5777) fedora-backgrounds: use stdenvNoCC (NixOS/nixpkgs#106149) * [`ba549afe`](NixOS/nixpkgs@ba549af) goxel: 0.10.6 -> 0.10.7 * [`1b14ecd3`](NixOS/nixpkgs@1b14ecd) gnomeExtensions.caffeine: 2020-03-13 -> 37 * [`2f91bade`](NixOS/nixpkgs@2f91bad) ceph: 15.2.6 -> 15.2.7 * [`eb5b6614`](NixOS/nixpkgs@eb5b661) gping: 1.1.0 -> 1.2.0-post * [`3ef8d3e6`](NixOS/nixpkgs@3ef8d3e) pythonPackages.ledgerwallet: init at 0.1.2 (NixOS/nixpkgs#104506) * [`42cfd521`](NixOS/nixpkgs@42cfd52) pythonPackages.llfuse: downgrade pytest version * [`07aee751`](NixOS/nixpkgs@07aee75) openrgb: 0.4 -> 0.5 * [`6ba3e0ea`](NixOS/nixpkgs@6ba3e0e) openrgb: add udev rules * [`68d1006c`](NixOS/nixpkgs@68d1006) openrgb: update installCheck * [`90f6e8bd`](NixOS/nixpkgs@90f6e8b) linux_latest-libre: 17768 -> 17788 * [`f76184d6`](NixOS/nixpkgs@f76184d) linux/hardened/patches/4.14: 4.14.208.a -> 4.14.210.a * [`8a15d28a`](NixOS/nixpkgs@8a15d28) linux/hardened/patches/4.19: 4.19.159.a -> 4.19.161.a * [`78066098`](NixOS/nixpkgs@7806609) linux/hardened/patches/5.4: 5.4.79.a -> 5.4.81.a * [`893f6368`](NixOS/nixpkgs@893f636) linux/hardened/patches/5.9: 5.9.10.a -> 5.9.12.a * [`94ba22c1`](NixOS/nixpkgs@94ba22c) gnome-podcasts: add dependency gst-plugins-good * [`2313a290`](NixOS/nixpkgs@2313a29) htop: 3.0.2 -> 3.0.3 * [`d0207e31`](NixOS/nixpkgs@d0207e3) maintainers: add wildsebastian * [`c281128a`](NixOS/nixpkgs@c281128) iosevka-bin: 4.0.0 -> 4.0.2 * [`60651e35`](NixOS/nixpkgs@60651e3) pythonPackages.patiencediff: init at 0.2.1 * [`598af09d`](NixOS/nixpkgs@598af09) python3Packages.breezy: fix build * [`06fe1afa`](NixOS/nixpkgs@06fe1af) jackett: 0.16.2291 -> 0.16.2347 * [`0ed4d34f`](NixOS/nixpkgs@0ed4d34) nixos-shell: 0.1.1 -> 0.2 * [`717beb92`](NixOS/nixpkgs@717beb9) opentracker: use makeFlags instead of patching (refactoring) * [`e4c3cda1`](NixOS/nixpkgs@e4c3cda) doc: rename gnome to section * [`16dfe8d7`](NixOS/nixpkgs@16dfe8d) pandoc: Add patches for nixpkgs docs * [`64b8489d`](NixOS/nixpkgs@64b8489) doc: clean up makefile * [`be8a3b8d`](NixOS/nixpkgs@be8a3b8) doc: convert GNOME platform docs to markdown * [`62248877`](NixOS/nixpkgs@6224887) doc/stdenv: Fix xref to gdk-pixbuf setup hook * [`920c4399`](NixOS/nixpkgs@920c439) thermald: Fix systemd service definition. * [`4437752e`](NixOS/nixpkgs@4437752) netbeans: 12.1 -> 12.2 * [`ba70e46e`](NixOS/nixpkgs@ba70e46) nim: 1.4.0 -> 1.4.2 * [`60d8c843`](NixOS/nixpkgs@60d8c84) python3Packages.hjson: fix wrapper * [`94ede7a6`](NixOS/nixpkgs@94ede7a) pythonPackages.pygame: switch to SDL2, fix build * [`d4d86340`](NixOS/nixpkgs@d4d8634) mg: 6.7 -> 6.8.1 * [`a9616e52`](NixOS/nixpkgs@a9616e5) netbeans: remove windows binaries before copying package to output * [`61d95bbd`](NixOS/nixpkgs@61d95bb) python39Packages.rtmidi-python: fix build * [`55324b51`](NixOS/nixpkgs@55324b5) pythonPackages.traitlets: disable for Python 2 * [`76bedb5b`](NixOS/nixpkgs@76bedb5) linux-rt_5_9: init at 5.9.1-rt20 * [`a85e96dd`](NixOS/nixpkgs@a85e96d) musikcube: 0.95.0 -> 0.96.1 * [`5101b357`](NixOS/nixpkgs@5101b35) flashplayer: 32.0.0.445 -> 32.0.0.453 (NixOS/nixpkgs#103441) * [`537b1abc`](NixOS/nixpkgs@537b1ab) mympd: 6.8.1 -> 6.8.3 * [`47134948`](NixOS/nixpkgs@4713494) Apply suggestions from code review * [`c18ffac4`](NixOS/nixpkgs@c18ffac) pbgopy: 0.1.1 -> 0.2.0 * [`01ca7ead`](NixOS/nixpkgs@01ca7ea) pgmetrics: 1.10.2 -> 1.10.3 * [`24f37c85`](NixOS/nixpkgs@24f37c8) postsrsd: 1.8 -> 1.9 * [`7c20dfa5`](NixOS/nixpkgs@7c20dfa) ngt: 1.8.4 -> 1.12.3-alpha (NixOS/nixpkgs#101790) * [`497afae7`](NixOS/nixpkgs@497afae) sauerbraten: 5492 -> 2020-12-04 * [`298d45b0`](NixOS/nixpkgs@298d45b) pugixml: 1.11 -> 1.11.1 * [`908896c2`](NixOS/nixpkgs@908896c) pythonPackages.poetry: Apply patch to fix failing tests * [`1ecb8e72`](NixOS/nixpkgs@1ecb8e7) rednotebook: 2.20 -> 2.21 * [`d83c4461`](NixOS/nixpkgs@d83c446) resvg: 0.11.0 -> 0.12.0 * [`c5c3edff`](NixOS/nixpkgs@c5c3edf) seaweedfs: 2.13 -> 2.14 * [`342421b4`](NixOS/nixpkgs@342421b) sickgear: 0.23.4 -> 0.23.5 * [`3cd1a670`](NixOS/nixpkgs@3cd1a67) unbound: Add AF_NETLINK to allowed address families. * [`3c50d74f`](NixOS/nixpkgs@3c50d74) svls: 0.1.17 -> 0.1.18 * [`ccca330f`](NixOS/nixpkgs@ccca330) ugrep: 3.0.5 -> 3.0.6 * [`9659da62`](NixOS/nixpkgs@9659da6) vale: 2.6.4 -> 2.6.5 * [`5e81263c`](NixOS/nixpkgs@5e81263) visidata: 2.0.1 -> 2.1 * [`8ad76db4`](NixOS/nixpkgs@8ad76db) gnome3.mutter: 3.38.1 -> 3.38.2 * [`34318b7c`](NixOS/nixpkgs@34318b7) webhook: 2.7.0 -> 2.8.0 * [`147fae2b`](NixOS/nixpkgs@147fae2) zktree:: init at 0.0.1 * [`609fd365`](NixOS/nixpkgs@609fd36) maintainers: add alirezameskin. * [`9231ea93`](NixOS/nixpkgs@9231ea9) abcm2ps: 8.14.10 -> 8.14.11 * [`af3dc15a`](NixOS/nixpkgs@af3dc15) alpine-make-vm-image: 0.6.0 -> 0.7.0 * [`d35b6356`](NixOS/nixpkgs@d35b635) chromedriver.src: Update the hash * [`374c3ff5`](NixOS/nixpkgs@374c3ff) linux_zen: 5.9.12 -> 5.9.13 * [`ba44cf1c`](NixOS/nixpkgs@ba44cf1) ckbcomp: 1.198 -> 1.199 * [`7e8e71f7`](NixOS/nixpkgs@7e8e71f) nice-dcv-client: init at 2020.2.1737-1 * [`833c76d1`](NixOS/nixpkgs@833c76d) maintainers: add rmcgibbo * [`8ee53823`](NixOS/nixpkgs@8ee5382) ocamlPackages.tls: 0.12.7 -> 0.12.8 * [`72d2cb86`](NixOS/nixpkgs@72d2cb8) cppcheck: 2.2 -> 2.3 * [`827bb3b9`](NixOS/nixpkgs@827bb3b) coin3d: 4.0.0 -> 2020-12-07-unstable * [`2e64b946`](NixOS/nixpkgs@2e64b94) soqt: 1.6.0 -> 2020-12-05-unstable * [`ee545c66`](NixOS/nixpkgs@ee545c6) freecad: 2020-10-17 -> 2020-12-08 * [`e4a7c426`](NixOS/nixpkgs@e4a7c42) ocaml-ng.ocamlPackages_4_12.ocaml: 4.12.0~α1 → 4.12.0~α2 * [`02698c96`](NixOS/nixpkgs@02698c9) hsphfpd: 2020-11-27 -> 2020-12-05 * [`e56e8d4f`](NixOS/nixpkgs@e56e8d4) ocamlPackages.mirage-time: use Dune 2 * [`46281741`](NixOS/nixpkgs@4628174) ocamlPackages.graphql: use Dune 2 * [`73182c14`](NixOS/nixpkgs@73182c1) ocamlPackages.gmap: use Dune 2 * [`bee0a512`](NixOS/nixpkgs@bee0a51) ocamlPackages.domain-name: use Dune 2 * [`30487789`](NixOS/nixpkgs@3048778) ocamlPackages.duration: use Dune 2 * [`567e02e2`](NixOS/nixpkgs@567e02e) ocamlPackages.alcotest: 1.0.1 → 1.2.3 * [`24b4e109`](NixOS/nixpkgs@24b4e10) ocamlPackages.ocplib-json-typed: use Dune 2 * [`57f22850`](NixOS/nixpkgs@57f2285) stog: fix compatibility with uri ≥ 4.0.0 * [`d702e6e6`](NixOS/nixpkgs@d702e6e) ocamlPackages.uri: 3.1.0 → 4.0.0 * [`a9ba7578`](NixOS/nixpkgs@a9ba757) musescore: build in release configuration * [`1c6b12de`](NixOS/nixpkgs@1c6b12d) pythonPackages.nix-prefetch-github: 4.0.2 -> 4.0.3 * [`6d369f81`](NixOS/nixpkgs@6d369f8) python3Packages.botocore: 1.19.25 -> 1.19.31 * [`27dd3291`](NixOS/nixpkgs@27dd329) python3Packages.boto3: 1.16.25 -> 1.16.31 * [`12beaac9`](NixOS/nixpkgs@12beaac) awscli: 1.18.185 -> 1.18.191 * [`46f2b86d`](NixOS/nixpkgs@46f2b86) krew: init at 0.4.0 * [`5e665171`](NixOS/nixpkgs@5e66517) vimPlugins.lens-vim: init at 2020-04-24 * [`50812a34`](NixOS/nixpkgs@50812a3) dnscontrol: 3.4.2 -> 3.5.0 * [`7f50f982`](NixOS/nixpkgs@7f50f98) scala: Make overridable * [`c6549522`](NixOS/nixpkgs@c654952) berry: fix missing libXext * [`163bd93f`](NixOS/nixpkgs@163bd93) feh: 3.6 -> 3.6.1 * [`90113564`](NixOS/nixpkgs@9011356) less: 551 -> 563 (NixOS/nixpkgs#101407) * [`cfbc1af1`](NixOS/nixpkgs@cfbc1af) podman: 2.2.0 -> 2.2.1 * [`4a7bcab1`](NixOS/nixpkgs@4a7bcab) flask-appbuilder: fix flask-babel dep * [`0bb69986`](NixOS/nixpkgs@0bb6998) pythonPackages.llfuse: 1.3.6 -> 1.3.8 * [`b445bc62`](NixOS/nixpkgs@b445bc6) pythonPackages.llfuse: fix tests with pytest 6 * [`799e3308`](NixOS/nixpkgs@799e330) Revert "pythonPackages.llfuse: downgrade pytest version" * [`925b70cd`](NixOS/nixpkgs@925b70c) pythonPackages.pyfuse3: init at 3.1.1 * [`2f109e7a`](NixOS/nixpkgs@2f109e7) fluent-bit: 1.6.7 -> 1.6.8 * [`8d041d04`](NixOS/nixpkgs@8d041d0) fedora-coreos-config-transpiler: 0.7.0 -> 0.8.0 * [`d9415d11`](NixOS/nixpkgs@d9415d1) vimPlugins: update * [`098c0152`](NixOS/nixpkgs@098c015) vimPlugins.vim-nong-theme: init at 2020-12-03 * [`35bab12e`](NixOS/nixpkgs@35bab12) inchi: init at 1.05 * [`f4679d33`](NixOS/nixpkgs@f4679d3) lc3tools: fix errors due to incorrect hardcoded paths * [`d84bd749`](NixOS/nixpkgs@d84bd74) fd: 8.2.0 -> 8.2.1 * [`b43c42d0`](NixOS/nixpkgs@b43c42d) material-icon-theme: init at 4.4.0 * [`4c842c97`](NixOS/nixpkgs@4c842c9) standardnotes: 3.3.3 -> 3.5.11 * [`3dd31672`](NixOS/nixpkgs@3dd3167) mirrors: fix lua mirrors * [`7d15a05b`](NixOS/nixpkgs@7d15a05) even-better-toml: init at 0.9.3 * [`3c9e1eb9`](NixOS/nixpkgs@3c9e1eb) python3Packages.markdown-it-py: init at 0.5.6 * [`b2d64e2c`](NixOS/nixpkgs@b2d64e2) python3Packages.jupytext: fix build by adding missing markdown-it-py dep; python3 only * [`fe94a574`](NixOS/nixpkgs@fe94a57) vscode-extensions.serayuzgur.crates: init at 0.5.3 * [`0f144cb8`](NixOS/nixpkgs@0f144cb) one-dark-theme: init at 1.7.2 * [`a8d7d5de`](NixOS/nixpkgs@a8d7d5d) vscode-ron: init at 0.9.0 * [`547376fe`](NixOS/nixpkgs@547376f) python3Packages.pandas: 1.1.4 -> 1.1.5 * [`e6bf8328`](NixOS/nixpkgs@e6bf832) steamPackages.steam-runtime: add update script, fix pname * [`f3103fe2`](NixOS/nixpkgs@f3103fe) steamPackages.steam-runtime: 0.20200720.0 → 0.20201203.1 * [`b675bbbc`](NixOS/nixpkgs@b675bbb) apk-tools: Mark broken on darwin * [`3139f425`](NixOS/nixpkgs@3139f42) imagemagick7: 7.0.10-35 -> 7.0.10-46 * [`9060c9af`](NixOS/nixpkgs@9060c9a) gnome3.gnome-shell: 3.38.1 -> 3.38.2 * [`9a31966f`](NixOS/nixpkgs@9a31966) pandoc-lua-filters: init at 2020-11-30 * [`ba11a966`](NixOS/nixpkgs@ba11a96) doc: Add staging workflow diagram * [`d028eb3c`](NixOS/nixpkgs@d028eb3) gnome3.gnome-chess: 3.38.0 -> 3.38.1 * [`872cb2fc`](NixOS/nixpkgs@872cb2f) rapidcheck: refactor `postInstall` to install all extras (NixOS/nixpkgs#106376) * [`40a7c98c`](NixOS/nixpkgs@40a7c98) mycli: fix build with sqlparse 0.4.x (NixOS/nixpkgs#106334) * [`289ef7f5`](NixOS/nixpkgs@289ef7f) python37Packages.azure-mgmt-cdn: 5.1.0 -> 5.2.0 * [`c13d8fda`](NixOS/nixpkgs@c13d8fd) python37Packages.azure-batch: 9.0.0 -> 10.0.0 * [`337c3d77`](NixOS/nixpkgs@337c3d7) python37Packages.dependency-injector: 4.5.1 -> 4.5.3 * [`33e23118`](NixOS/nixpkgs@33e2311) python37Packages.aniso8601: 8.0.0 -> 8.1.0 * [`d3419c98`](NixOS/nixpkgs@d3419c9) python37Packages.cocotb: 1.3.2 -> 1.4.0 * [`e9ade83e`](NixOS/nixpkgs@e9ade83) python37Packages.alerta: 8.0.0 -> 8.2.0 * [`23290bd1`](NixOS/nixpkgs@23290bd) python37Packages.azure-mgmt-network: 16.0.0 -> 17.0.0 * [`a35e7daa`](NixOS/nixpkgs@a35e7da) compcert: 3.7 → 3.8 * [`563ff4ad`](NixOS/nixpkgs@563ff4a) kubernetes: misc fixes * [`d183736d`](NixOS/nixpkgs@d183736) kubectl: use installShellFiles * [`5bdcc316`](NixOS/nixpkgs@5bdcc31) amsn: remove application * [`ace04464`](NixOS/nixpkgs@ace0446) knot-resolver: 5.2.0 -> 5.2.1 * [`02b7ec6a`](NixOS/nixpkgs@02b7ec6) routinator: 0.8.1 -> 0.8.2 * [`e9158eca`](NixOS/nixpkgs@e9158ec) fetchfirefoxaddon: support for SRI hashes
RapidCheck's extras were not accessible through the package, with the exception of boost_test, which was being copied directly into the core include directory. RapidTest's documentation for that module says to add the
extras/boost_test/include
directory to your include path, but the nixpkgs derivation for it puts the file in$out/include/rapidtest
.This commit replaces the copy of that one header with an
rsync
of all files, exceptCMakeLists.txt
s, from$src/extras
into$out/extras
so that the output path matches what the rapidtest documentation expects. Accessing all extras is now possible by adding"${pkgs.rapidtest}/extras/<extra>/include"
to your list of include paths.Things done
sandbox
innix.conf
on non-NixOS linux)nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
./result/bin/
)nix path-info -S
before and after)