mirror of
https://github.com/Smaug123/nix-dotfiles
synced 2025-10-11 09:28:39 +00:00
Fix up gmp properly
This commit is contained in:
@@ -2,12 +2,6 @@
|
||||
|
||||
let python = import ./python.nix { inherit pkgs; }; in
|
||||
|
||||
let gmp =
|
||||
if pkgs.stdenv.isDarwin then
|
||||
import ./gmp.nix { inherit pkgs; }
|
||||
else pkgs.gmp
|
||||
; in
|
||||
|
||||
{
|
||||
|
||||
nix.useDaemon = true;
|
||||
@@ -26,7 +20,6 @@ let gmp =
|
||||
pkgs.rustup
|
||||
pkgs.libiconv
|
||||
pkgs.clang
|
||||
#gmp
|
||||
#pkgs.keepassxc
|
||||
python
|
||||
];
|
||||
@@ -50,12 +43,13 @@ let gmp =
|
||||
|
||||
# Auto upgrade nix package and the daemon service.
|
||||
services.nix-daemon.enable = true;
|
||||
nix.package = pkgs.nix;
|
||||
nix.package = pkgs.nixFlakes;
|
||||
nix.gc.automatic = true;
|
||||
nix.useSandbox = true;
|
||||
|
||||
nix.extraOptions = ''
|
||||
auto-optimise-store = true
|
||||
experimental-features = nix-command flakes
|
||||
'';
|
||||
|
||||
# Used for backwards compatibility, please read the changelog before changing.
|
||||
|
17
gmp.nix
17
gmp.nix
@@ -1,17 +0,0 @@
|
||||
{ pkgs ? import <nixpkgs> {} }:
|
||||
|
||||
# If this fails, `chmod -R a+rw /usr/local/opt/gmp/lib`
|
||||
pkgs.runCommandLocal "gmp-symlink" {} ''
|
||||
dest="/usr/local/opt/gmp/lib/libgmp.10.dylib"
|
||||
existing=$(readlink "$dest")
|
||||
if [ $? -eq 1 ]; then
|
||||
ln -s ${pkgs.gmp}/lib/libgmp.10.dylib "$dest" && mkdir -p $out && touch $out/done.txt
|
||||
else
|
||||
if [[ "$existing" == /nix/store/* ]]; then
|
||||
ln -fs ${pkgs.gmp}/lib/libgmp.10.dylib "$dest" && mkdir -p $out && touch $out/done.txt
|
||||
else
|
||||
echo "Existing symlink is $existing, refusing to overwrite"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
''
|
36
gmp/default.nix
Normal file
36
gmp/default.nix
Normal file
@@ -0,0 +1,36 @@
|
||||
{ pkgs, config, lib, ... }:
|
||||
|
||||
|
||||
let link = ./link.sh; in
|
||||
let gmp-symlink =
|
||||
pkgs.stdenv.mkDerivation {
|
||||
|
||||
name = "gmp-symlink";
|
||||
src = ./link.sh;
|
||||
phases = [ "unpackPhase" ];
|
||||
unpackPhase = ''
|
||||
mkdir -p "$out"
|
||||
cp ${link} "$out/link.sh"
|
||||
chmod u+x "$out/link.sh"
|
||||
sed -i 's_NIX-GMP_${config.gmp-symlink.gmp}_' "$out/link.sh"
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
'';
|
||||
};
|
||||
in
|
||||
|
||||
{
|
||||
options = {
|
||||
gmp-symlink.enable = lib.mkOption { default = false; };
|
||||
gmp-symlink.gmp = lib.mkOption { default = pkgs.gmp; };
|
||||
};
|
||||
|
||||
config = lib.mkIf config.gmp-symlink.enable {
|
||||
home.activation.gmp-symlink = lib.hm.dag.entryAfter [ "writeBoundary" ] ''
|
||||
${gmp-symlink}/link.sh
|
||||
'';
|
||||
};
|
||||
|
||||
}
|
||||
|
15
gmp/link.sh
Normal file
15
gmp/link.sh
Normal file
@@ -0,0 +1,15 @@
|
||||
#!/bin/bash
|
||||
|
||||
dest="/usr/local/opt/gmp/lib/libgmp.10.dylib"
|
||||
sudo mkdir -p "$(dirname "$dest")"
|
||||
existing=$(readlink "$dest")
|
||||
if [ $? -eq 1 ]; then
|
||||
sudo ln -s "NIX-GMP/lib/libgmp.10.dylib" "$dest"
|
||||
else
|
||||
if [[ "$existing" == /nix/store/* ]]; then
|
||||
sudo ln -fs "NIX-GMP/lib/libgmp.10.dylib" "$dest"
|
||||
else
|
||||
echo "Existing symlink is $existing, refusing to overwrite"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
7
home.nix
7
home.nix
@@ -4,9 +4,10 @@ let username = "Patrick"; in
|
||||
let dotnet = pkgs.dotnet-sdk_6; in
|
||||
|
||||
{
|
||||
imports = [ ./rider ];
|
||||
imports = [ ./rider ./gmp ];
|
||||
|
||||
rider = { enable = true; username = username; dotnet = dotnet; };
|
||||
gmp-symlink = { enable = true; };
|
||||
|
||||
# Let Home Manager install and manage itself.
|
||||
programs.home-manager.enable = true;
|
||||
@@ -32,6 +33,7 @@ let dotnet = pkgs.dotnet-sdk_6; in
|
||||
pkgs.wget
|
||||
pkgs.youtube-dl
|
||||
pkgs.cmake
|
||||
pkgs.gnumake
|
||||
pkgs.gcc
|
||||
pkgs.gdb
|
||||
pkgs.hledger
|
||||
@@ -48,6 +50,7 @@ let dotnet = pkgs.dotnet-sdk_6; in
|
||||
pkgs.hugo
|
||||
#pkgs.agda
|
||||
pkgs.pijul
|
||||
pkgs.universal-ctags
|
||||
];
|
||||
|
||||
programs.vscode = {
|
||||
@@ -96,6 +99,7 @@ let dotnet = pkgs.dotnet-sdk_6; in
|
||||
vim = "nvim";
|
||||
view = "vim -R";
|
||||
nix-upgrade = "sudo -i sh -c 'nix-channel --update && nix-env -iA nixpkgs.nix && launchctl remove org.nixos.nix-daemon && launchctl load /Library/LaunchDaemons/org.nixos.nix-daemon.plist'";
|
||||
cmake = "cmake -DCMAKE_MAKE_PROGRAM=${pkgs.gnumake}/bin/make";
|
||||
};
|
||||
};
|
||||
|
||||
@@ -135,6 +139,7 @@ let dotnet = pkgs.dotnet-sdk_6; in
|
||||
programs.neovim.enable = true;
|
||||
programs.neovim.plugins = with pkgs.vimPlugins; [
|
||||
molokai
|
||||
tagbar
|
||||
{ plugin = rust-vim;
|
||||
config = "let g:rustfmt_autosave = 1"; }
|
||||
{ plugin = syntastic;
|
||||
|
Reference in New Issue
Block a user