Commit Graph

99 Commits

Author SHA1 Message Date
Nikola Knezevic
6d8539c1d8 perl: Enable threading on darwin
Perl on darwin (and any other sane platform) has a pretty good threading
support, enable it.

As it turns out, we were building non-multithreaded perl on all systems,
since glibc was not part of the stdenv anymore:

    nix-repl> pkgs = import <nixpkgs> {}

    nix-repl> pkgs.stdenv ? glibc
    false

meaning that the comments were incorrect. Thus, clear up the confusion
and remove the misleading comments, while enabling multithreading by
default. The builds will fail on unsupported platforms, and in this case
the only place is the bootstrap, where we already force
non-multithreaded perl.

As a consequence of the above, this change will cause the full rebuild
of stdenv on all platforms, including linux.
2020-02-20 08:35:45 +01:00
Andrew Childs
68317c736e perl: fix configure phase for Aarch32
In "perl: fuse configureFlags" [1] the effects of the preConfigure
phase were merged into configureFlags. After this change values with
spaces do not reach the configure script intact.

The only flag this affects is `ldflags` for Aarch32 and Mips, and perl
builds without it on armv7l-linux so it's probably no longer required
on any platform.

Fixes:

    configuring
    configure flags: -de -Dcc=cc <...> -Dldflags=\"-lm -lrt\"
    ./Configure: eval: line 1677: unexpected EOF while looking for matching `"'
    ./Configure: eval: line 1678: syntax error: unexpected end of file
    Configure: unknown option -lrt"

[1] 3b50d0462a
2020-01-04 09:51:10 +09:00
Frederik Rietdijk
555037a667 Merge master into staging-next 2019-12-31 16:35:53 +01:00
John Ericson
cfd013813e
Merge pull request #74090 from obsidiansystems/ghcjs-cross-without-cc
stdenv, haskell: bonafied GHCJS cross compilation without stdenv.cc
2019-12-30 16:40:43 -08:00
Robin Gloster
3b50d0462a
perl: fuse configureFlags 2019-12-30 11:13:36 +01:00
John Ericson
6bc456c91c Merge remote-tracking branch 'upstream/master' into ghcjs-cross-without-cc 2019-11-25 00:23:07 +00:00
John Ericson
63bd851e95 stdenv: Introduce hasCC attribute
Before, we'd always use `cc = null`, and check for that. The problem is
this breaks for cross compilation to platforms that don't support a C
compiler.

It's a very subtle issue. One might think there is no problem because we
have `stdenvNoCC`, and presumably one would only build derivations that
use that. The problem is that one still wants to use tools at build-time
that are themselves built with a C compiler, and those are gotten via
"splicing". The runtime version of those deps will explode, but the
build time / `buildPackages` versions of those deps will be fine, and
splicing attempts to work this by using `builtins.tryEval` to filter out
any broken "higher priority" packages (runtime is the default and
highest priority) so that both `foo` and `foo.nativeDrv` works.

However, `tryEval` only catches certain evaluation failures (e.g.
exceptions), and not arbitrary failures (such as `cc.attr` when `cc` is
null). This means `tryEval` fails to let us use our build time deps, and
everything comes apart.

The right solution is, as usually, to get rid of splicing. Or, baring
that, to make it so `foo` never works and one has to explicitly do
`foo.*`. But that is a much larger change, and certaily one unsuitable
to be backported to stable.

Given that, we instead make an exception-throwing `cc` attribute, and
create a `hasCC` attribute for those derivations which wish to
condtionally use a C compiler: instead of doing `stdenv.cc or null ==
null` or something similar, one does `stdenv.hasCC`. This allows quering
without "tripping" the exception, while also allowing `tryEval` to work.

No platform without a C compiler is yet wired up by default. That will
be done in a following commit.
2019-11-25 00:12:38 +00:00
volth
83bacb1ca7 perl: 5.30.0 -> 5.30.1 2019-11-23 12:39:54 +00:00
Ben Wolsieffer
49afaab294 perl: fix errant references when cross-compiling 2019-11-05 00:34:34 -05:00
volth
62ba206c88 perldevel: 5.30.0 -> 5.31.2 2019-08-06 09:39:29 +00:00
volth
5c8b5fb456 perl530: init at 5.30.0 2019-05-28 08:52:43 +02:00
volth
e5d3583be8
allow overriding perl528 and perldevel in overlays
There was a mix of overrideable-in-overlays ```buildPackages.perl528``` & ```buildPackages.perldevel``` and local ```perl528``` & ```perldevel``` which were unaffected by overlays
2019-05-08 14:09:19 +00:00
volth
120398ab4b perlPackages: fix build packages for non-default perl 2019-05-03 10:53:36 +00:00
volth
1709d3a748
perl-cross: update for perl 5.28.2 2019-04-24 17:02:20 +00:00
Matthew Bauer
84d00355e8 Merge remote-tracking branch 'NixOS/master' into staging 2019-04-23 22:00:42 -04:00
volth
dd927553f3 perl: 5.28.1 -> 5.28.2 2019-04-22 16:01:25 +00:00
volth
0fad0b4e5b perl.meta.priority += 1
give priority to perl libraries when they meet the perl derivation in `buildEnv`.

The notable case is `buildEnv` inside `perl.withPackages`.

The `perl' derivation includes obsolete versions of some CPAN packages
which leads to collissions when there are newer versions
of the same libraries are on the right hand side
of `perl.withPackages` (perhaps indirectly).

Fixes #60025
2019-04-22 15:50:46 +00:00
volth
03eaa480bd perl: add .withPackages 2019-04-12 09:09:06 +00:00
volth
39fc981fca
perldevel: 5.29.6 -> 5.29.9 2019-03-24 15:43:16 +01:00
Michael Raskin
a059fc7420
Merge pull request #56067 from oxij/tree/fetchurl-boot
treewide: assemble all `fetchurlBoot` uses in overrides to `fetchurl`
2019-02-21 09:43:11 +00:00
Jan Malakhovski
a1fec8667d treewide: assemble all fetchurlBoot uses in overrides to fetchurl itself
The only outside-curl uses of `fetchurlBoot` left are `stdenv`
and `apple-source-releases`. The latter one can probably be removed
too, but I can't test it.

Pros:

- Aggregates all behind-the-scenes insanity in a single place.

Cons:

- At the cost of 10 more derivations (but 0 new outpaths).
2019-02-19 20:55:59 +00:00
Graham Christensen
df8b6728a8
perl: make reproducible
Perl likes to capture impure data, needlessly.

 - Configure time (cf_time): make 1 second past epoch
 - Target system (uname): use less uname information
2019-02-04 09:10:22 -05:00
Frederik Rietdijk
092e3b50a8 Merge master into staging-next 2019-01-02 21:08:27 +01:00
Vladimír Čunát
70bff06140
Merge branch 'master' into staging 2019-01-02 17:19:23 +01:00
volth
098d919425 perldevel: 5.29.4 -> 5.29.6 (#52510) 2019-01-01 19:08:44 +01:00
volth
b22f1b0e9e perl526: drop 2018-12-14 14:52:52 +00:00
Jörg Thalheim
ec59713c5c
perl: update perl-cross archive 2018-12-09 23:04:18 +00:00
volth
03b9bc9e66
perl526: 5.26.2 -> 5.26.3 2018-12-03 13:46:42 +00:00
volth
873967b7a5
perl:5.28.0 -> 5.28.1 2018-12-03 13:10:54 +00:00
volth
c246b5283c perldevel: 5.29.3 -> 5.29.4 (#49624) 2018-11-02 03:10:11 +01:00
Frederik Rietdijk
6f5142e48e Merge master into staging 2018-10-13 09:48:20 +02:00
volth
05bcae1595
perl-cross: 1.2 -> gitmaster 2018-10-11 21:53:52 +00:00
volth
8a7cf66ed0
remove support for pre-5.26 Perl 2018-10-03 20:34:04 +00:00
volth
5f91657ad1 remove support for pre-5.26 Perl 2018-10-03 19:29:58 +00:00
Daiderd Jordan
1383c08f2c
Merge branch 'master' into staging-next 2018-10-01 19:42:07 +02:00
volth
507b2fdde3 remove Perl 5.22 and 5.24 (end-of-life upstream few months ago) 2018-09-27 09:58:50 +00:00
volth
b7ac8824af
perldevel: use double quote to preserve ''\.'' 2018-09-25 20:52:31 +00:00
volth
06faf5cc5c perl: add devel version at 5.29.3 2018-09-25 19:51:20 +00:00
Matthew Bauer
6910a9d1e2 perl: disallow reference to cc
Fixes #46077
2018-09-23 00:28:23 -05:00
Matthew Bauer
379fc894de Merge remote-tracking branch 'origin/master' into staging 2018-08-21 15:41:53 -05:00
Markus Kowalewski
2521f7cbdc
perl: set license to artistic 2018-08-18 23:11:55 +02:00
Markus Kowalewski
a3990e734d
perl: add license 2018-08-18 00:11:32 +02:00
volth
6635879ff1
perl: remove duplicated code 2018-08-17 12:51:07 +00:00
volth
52f53c69ce pkgs/*: remove unreferenced function arguments 2018-07-21 02:48:04 +00:00
Will Dietz
063132c22c perl-cross: remove patch that's now included 2018-07-20 12:56:07 -05:00
Will Dietz
fdb9f10e4e perl: 1.1.8 -> 1.2, fix w/newer perl 2018-07-20 12:54:32 -05:00
Vladimír Čunát
f7781f5293
Merge branch 'master' into staging 2018-06-30 01:41:59 +02:00
volth
3fb3031f93 [staging] always expose perl.version (#42644)
always expose perl.version (currently it is only visible if (stdenv.buildPlatform != stdenv.hostPlatform))
2018-06-27 15:37:36 +02:00
volth
dd366701ce perl528: init at 5.28.0 2018-06-25 13:33:09 +00:00
volth
3c43bb7871
perl526: 5.26.1 -> 5.26.2 2018-06-25 13:23:33 +00:00