-
-
Notifications
You must be signed in to change notification settings - Fork 12.8k
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
Build failure: pkgsStatic.perl
(Perl interpreter statically linked to Musl libc)
#295608
Comments
pkgsStatic.perl
(Perl interpreter w/ Musl libc)pkgsStatic.perl
(Perl interpreter statically linked to Musl libc)
There is an upstream issue, with a patch reported to fix it. The commit has been already applied to Perl 5.39.2, so I'm unsure if it's better to attempt to patch 5.38 (current version), or to attempt to upgrade nixpkgs to 5.39.9 instead. |
Nice find! I think we should conditionally patch this for static builds |
This commit backports a commit introduced on Perl 5.39.2 to allow `pkgs.pkgsStatic.perl` to compile without raising errors about duplicate symbols being defined during the linking process. This fixes NixOS#295608 **Tested on:** - M1 Mac (aarch64-darwin) - NixOS VM (x86_64-linux) **Test method**: ```sh nix repl -I nixpkgs=$PWD nix repl> pkgs = import <nixpkgs> {} nix repl> :b pkgs.perl nix repl> :b pkgs.pkgsStatic.perl ```
I'm not very familiar with nix nor nixpkgs contribution process, but I'm trying it locally at this moment (and the world is being recompiled, so it's some sign of success, I guess). If I'm able to have a successful build I'll submit a PR soon. |
I'm happy to help out of course. Do you have a branch somewhere with those changes? |
@stigtsp thanks for offering to help. I've applied the patch regardless of it being a |
If you'd want to set up a PR I think that would be best, also we should be able to avoid mass rebuilds as mentioned here: 1cbba6d#r140306610 |
This commit backports a commit introduced on Perl 5.39.2 to allow `pkgs.pkgsStatic.perl` to compile without raising errors about duplicate symbols being defined during the linking process. This fixes NixOS#295608 **Tested on:** - M1 Mac (aarch64-darwin) - NixOS VM (x86_64-linux) **Test method**: ```sh nix repl -I nixpkgs=$PWD nix repl> pkgs = import <nixpkgs> {} nix repl> :b pkgs.perl nix repl> :b pkgs.pkgsStatic.perl ``` Despite the upstream commit being scoped to all environments, we are only applying this patch only on the `pkgsStatic` context to avoid rebuilding all of NixOS packages by changing Perl.
I'm still waiting on my Linux VM to finish compiling the world, which sounds like a good scenario. Meanwhile I came across a chain of PS: Another Another yak to be shaved
I'm waiting for the Linux build to conclude in order to open a Pull Request. |
…usl. This commit backports a commit introduced on Perl 5.39.2 to allow `pkgs.pkgsStatic.perl` to compile without raising errors about duplicate symbols being defined during the linking process. This fixes NixOS#295608 | Tested on | Status | | --- | --- | | M1 Mac (aarch64-darwin) | Failed due to other issues* | - NixOS VM (x86_64-linux) | Compiling | **Test method**: ```sh nix repl -I nixpkgs=$PWD nix repl> pkgs = import <nixpkgs> {} nix repl> :b pkgs.perl nix repl> :b pkgs.pkgsStatic.perl ``` Despite the upstream commit being scoped to all environments, we are only applying this patch only on the `pkgsStatic` context to avoid rebuilding all of NixOS packages by changing Perl. *MacOS: `pkgsStatic.perl` still fails to compile after this change due to MacOS case-insensitiviness affecting the build recipe under /tmp, as `perl-cross/configure` is copied over `perl/Configure` file, as well as not finding `readelf` for the `configurePhase`. NixOS#113985 (comment) NixOS/nix#1446 NixOS/nix#9318 NixOS/nix#8995
This commit backports a commit introduced on Perl 5.39.2 to allow `pkgs.pkgsStatic.perl` to compile without raising errors about duplicate symbols being defined during the linking process. This fixes NixOS#295608 | Tested on | Status | | --- | --- | | M1 Mac (aarch64-darwin) | Failed due to other issues* | | NixOS VM (x86_64-linux) | Compiled | | Nix (aarch64-linux) | Compiled | **Test method**: ```sh nix repl -I nixpkgs=$PWD nix repl> pkgs = import <nixpkgs> {} nix repl> :b pkgs.perl nix repl> :b pkgs.pkgsStatic.perl ``` Despite the upstream commit being scoped to all environments, we are only applying this patch only on the `pkgsStatic` context to avoid rebuilding all of NixOS packages by changing Perl. It includes an additional build flag [also used upstream](Perl/perl5#22052) for configuring static builds. *MacOS: `pkgsStatic.perl` still fails to compile after this change due to MacOS case-insensitiviness affecting the build recipe under /tmp, as `perl-cross/configure` is copied over `perl/Configure` file, as well as not finding `readelf` for the `configurePhase`. NixOS#113985 (comment) NixOS/nix#1446 NixOS/nix#9318 NixOS/nix#8995
This commit backports a commit introduced on Perl 5.39.2 to allow `pkgs.pkgsStatic.perl` to compile without raising errors about duplicate symbols being defined during the linking process. This fixes NixOS#295608 | Tested on | Status | | --- | --- | | M1 Mac (aarch64-darwin) | Failed due to other issues* | | NixOS VM (x86_64-linux) | Compiled | | Nix (aarch64-linux) | Compiled | **Test method**: ```sh nix repl -I nixpkgs=$PWD nix repl> pkgs = import <nixpkgs> {} nix repl> :b pkgs.perl nix repl> :b pkgs.pkgsStatic.perl ``` Despite the upstream commit being scoped to all environments, we are only applying this patch only on the `pkgsStatic` context to avoid rebuilding all of NixOS packages by changing Perl. It includes an additional build flag [also used upstream](Perl/perl5#22052) for configuring static builds. *MacOS: `pkgsStatic.perl` still fails to compile after this change due to MacOS case-insensitiviness affecting the build recipe under /tmp, as `perl-cross/configure` is copied over `perl/Configure` file, as well as not finding `readelf` for the `configurePhase`. NixOS#113985 (comment) NixOS/nix#1446 NixOS/nix#9318 NixOS/nix#8995
This commit backports a commit introduced on Perl 5.39.2 to allow `pkgs.pkgsStatic.perl` to compile without raising errors about duplicate symbols being defined during the linking process. This fixes NixOS#295608 | Tested on | Status | | --- | --- | | M1 Mac (aarch64-darwin) | Failed due to other issues* | | NixOS VM (x86_64-linux) | Compiled | | Nix (aarch64-linux) | Compiled | **Test method**: ```sh nix repl -I nixpkgs=$PWD nix repl> pkgs = import <nixpkgs> {} nix repl> :b pkgs.perl nix repl> :b pkgs.pkgsStatic.perl ``` Despite the upstream commit being scoped to all environments, we are only applying this patch only on the `pkgsStatic` context to avoid rebuilding all of NixOS packages by changing Perl. It includes an additional build flag [also used upstream](Perl/perl5#22052) for configuring static builds. *MacOS: `pkgsStatic.perl` still fails to compile after this change due to MacOS case-insensitiviness affecting the build recipe under /tmp, as `perl-cross/configure` is copied over `perl/Configure` file, as well as not finding `readelf` for the `configurePhase`. NixOS#113985 (comment) NixOS/nix#1446 NixOS/nix#9318 NixOS/nix#8995
This commit backports a commit introduced on Perl 5.39.2 to allow `pkgs.pkgsStatic.perl` to compile without raising errors about duplicate symbols being defined during the linking process. This fixes NixOS#295608 | Tested on | Status | | --- | --- | | M1 Mac (aarch64-darwin) | Failed due to other issues* | | NixOS VM (x86_64-linux) | Compiled | | Nix (aarch64-linux) | Compiled | **Test method**: ```sh nix repl -I nixpkgs=$PWD nix repl> pkgs = import <nixpkgs> {} nix repl> :b pkgs.perl nix repl> :b pkgs.pkgsStatic.perl ``` Despite the upstream commit being scoped to all environments, we are only applying this patch only on the `pkgsStatic` context to avoid rebuilding all of NixOS packages by changing Perl. It includes an additional build flag [also used upstream](Perl/perl5#22052) for configuring static builds. *MacOS: `pkgsStatic.perl` still fails to compile after this change due to MacOS case-insensitiviness affecting the build recipe under /tmp, as `perl-cross/configure` is copied over `perl/Configure` file, as well as not finding `readelf` for the `configurePhase`. NixOS#113985 (comment) NixOS/nix#1446 NixOS/nix#9318 NixOS/nix#8995
Steps To Reproduce
Steps to reproduce the behavior:
nix build -I nixpkgs=flake:github:NixOS/nixpkgs/23.11 nixpkgs#pkgsStatic.perl538
It still affects
master
as of 2024-03-12. edit: Changed title for clarity;pkgsMusl.perl
is fine.Build log
tail of build log
full log
Additional context
I'm aiming for
pkgsStatic.wine64Packages.minimal
, which may be a fool's errand but it's worth a try.Notify maintainers
@stigtsp @zakame @dasJ (and Eelco?)
Metadata
Add a 👍 reaction to issues you find important.
The text was updated successfully, but these errors were encountered: