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

Darwin does not imply case-insensitive file system #1446

Open
davidchambers opened this issue Jul 7, 2017 · 4 comments
Open

Darwin does not imply case-insensitive file system #1446

davidchambers opened this issue Jul 7, 2017 · 4 comments
Assignees
Labels
bug installer macos Nix on macOS, aka OS X, aka darwin

Comments

@davidchambers
Copy link

I am running macOS Sierra but I have /nix on an external SSD which is formatted as Case-sensitive Journaled HFS+.

According to @shlevy, Nix assumes that Darwin implies a case-insensitive file system. The Darwin hacks were causing problems for me when running nix-build in a Haskell project due to a conflict between a package named Compactable and another named compactable. Adding use-case-hack = false to my nix.conf fixed the issue.

Rather than make assumptions about the file system, Nix should determine whether the file system is case-sensitive.

@shlevy
Copy link
Member

shlevy commented Jul 7, 2017

Specifically, the problem was with callHackage and the fact that nix removed the compactable directory of all-cabal-hashes in favor of the Compactable directory

@LisannaAtHome
Copy link

Ran into this today. Currently there is no good workaround for this without using the bleeding edge version of Nix, due to #2009 and 2b61c74 only just recently getting merged.

@stale
Copy link

stale bot commented Feb 15, 2021

I marked this as stale due to inactivity. → More info

@stale stale bot added the stale label Feb 15, 2021
@siraben
Copy link
Member

siraben commented Nov 8, 2021

Any updates on this?

@stale stale bot removed the stale label Nov 8, 2021
@stale stale bot added the stale label Aug 13, 2022
bltavares added a commit to bltavares/nixpkgs-upstream that referenced this issue Mar 28, 2024
…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
bltavares added a commit to bltavares/nixpkgs-upstream that referenced this issue Mar 28, 2024
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
bltavares added a commit to bltavares/nixpkgs-upstream that referenced this issue Apr 1, 2024
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
jcaesar pushed a commit to jcaesar/fork2pr-nixpkgs that referenced this issue May 17, 2024
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
jcaesar pushed a commit to jcaesar/fork2pr-nixpkgs that referenced this issue May 18, 2024
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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug installer macos Nix on macOS, aka OS X, aka darwin
Projects
None yet
Development

No branches or pull requests

7 participants