Merge pull request #5 from Smaug123/aarch

Aarch
This commit is contained in:
Patrick Stevens
2021-11-28 12:07:11 +00:00
committed by GitHub
7 changed files with 72 additions and 42 deletions

View File

@@ -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;
@@ -23,10 +17,9 @@ let gmp =
environment.systemPackages =
[
pkgs.alacritty
pkgs.rustc
pkgs.cargo
pkgs.rustup
pkgs.libiconv
pkgs.clang
#gmp
#pkgs.keepassxc
python
];
@@ -44,15 +37,19 @@ let gmp =
}))
];
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
"vscode"
];
# 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
View File

@@ -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
View 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
View 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

View File

@@ -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
@@ -39,22 +41,21 @@ let dotnet = pkgs.dotnet-sdk_6; in
dotnet
pkgs.docker
pkgs.jitsi-meet
pkgs.protonmail-bridge
pkgs.handbrake
#pkgs.handbrake
pkgs.ripgrep
pkgs.elan
pkgs.coreutils-prefixed
pkgs.shellcheck
pkgs.html-tidy
pkgs.hugo
pkgs.agda
#pkgs.agda
pkgs.pijul
#pkgs.anki-bin
pkgs.universal-ctags
];
programs.vscode = {
enable = true;
package = pkgs.vscodium;
package = pkgs.vscode;
extensions = import ./vscode-extensions.nix { inherit pkgs; };
userSettings = {
workbench.colorTheme = "Default High Contrast";
@@ -85,18 +86,20 @@ let dotnet = pkgs.dotnet-sdk_6; in
};
oh-my-zsh = {
enable = true;
plugins = [ "git" "osx" "dircycle" "timer" ];
plugins = [ "git" "macos" "dircycle" "timer" ];
theme = "robbyrussell";
};
sessionVariables = {
EDITOR = "vim";
LC_ALL = "en_US.UTF-8";
LC_CTYPE = "en_US.UTF-8";
RUSTFLAGS = "-L ${pkgs.libiconv}/lib";
};
shellAliases = {
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";
};
};
@@ -136,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;

View File

@@ -35,7 +35,9 @@ in
home.activation.jetbrains-rider-settings = lib.hm.dag.entryAfter [ "writeBoundary" ] ''
dest="/Users/${config.rider.username}/Library/Application Support/JetBrains"
find "$dest" -type d -maxdepth 1 -name 'Rider*' -exec sh -c '${riderconfig}/link.sh "$0"' {} \;
if [ -e "$dest" ]; then
find "$dest" -type d -maxdepth 1 -name 'Rider*' -exec sh -c '${riderconfig}/link.sh "$0"' {} \;
fi
'';
};

View File

@@ -1,12 +1,5 @@
IgnoreUnknown AddKeysToAgent,UseKeychain
Host github.com
AddKeysToAgent yes
IgnoreUnknown UseKeychain
UseKeychain yes
IdentityFile ~/.ssh/github_rsa
HostName github.com
Host *
AddKeysToAgent yes
IgnoreUnknown UseKeychain