From f1e667234daebed9c74895bd2b78e59fd8bd825d Mon Sep 17 00:00:00 2001 From: Florian Klink Date: Fri, 28 Aug 2020 12:28:16 +0200 Subject: [PATCH 1/3] oh-my-zsh: cleanup - use fetchFromGitHub instead of fetchgit - indent the `installPhase` properly - remove unused `pathsToLink` - don't hardcode `phases` to allow patching - don't copy from $src, but . to allow patching --- pkgs/shells/zsh/oh-my-zsh/default.nix | 84 +++++++++++++-------------- 1 file changed, 41 insertions(+), 43 deletions(-) diff --git a/pkgs/shells/zsh/oh-my-zsh/default.nix b/pkgs/shells/zsh/oh-my-zsh/default.nix index 2fce32e018e5..ddc0ae1a2adb 100644 --- a/pkgs/shells/zsh/oh-my-zsh/default.nix +++ b/pkgs/shells/zsh/oh-my-zsh/default.nix @@ -1,70 +1,68 @@ # This script was inspired by the ArchLinux User Repository package: # # https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=oh-my-zsh-git -{ stdenv, fetchgit }: +{ stdenv, fetchFromGitHub }: stdenv.mkDerivation rec { version = "2020-08-24"; pname = "oh-my-zsh"; - rev = "cfb86cd08d3b24fd4b59d0d35b3af1f589c891fa"; - src = fetchgit { inherit rev; - url = "https://github.com/ohmyzsh/ohmyzsh"; + src = fetchFromGitHub { + owner = "ohmyzsh"; + repo = "ohmyzsh"; + rev = "cfb86cd08d3b24fd4b59d0d35b3af1f589c891fa"; sha256 = "0af37smv0bqw37bng2halzgszf8y3m2sxahdff54m16asm0py2cr"; }; - pathsToLink = [ "/share/oh-my-zsh" ]; - - phases = "installPhase"; installPhase = '' - outdir=$out/share/oh-my-zsh - template=templates/zshrc.zsh-template + outdir=$out/share/oh-my-zsh + template=templates/zshrc.zsh-template - mkdir -p $outdir - cp -r $src/* $outdir - cd $outdir + mkdir -p $outdir + cp -r * $outdir + cd $outdir - rm LICENSE.txt - rm -rf .git* + rm LICENSE.txt + rm -rf .git* - chmod -R +w templates + chmod -R +w templates - # Change the path to oh-my-zsh dir and disable auto-updating. - sed -i -e "s#ZSH=\$HOME/.oh-my-zsh#ZSH=$outdir#" \ - -e 's/\# \(DISABLE_AUTO_UPDATE="true"\)/\1/' \ - $template + # Change the path to oh-my-zsh dir and disable auto-updating. + sed -i -e "s#ZSH=\$HOME/.oh-my-zsh#ZSH=$outdir#" \ + -e 's/\# \(DISABLE_AUTO_UPDATE="true"\)/\1/' \ + $template - chmod +w oh-my-zsh.sh + chmod +w oh-my-zsh.sh - # Both functions expect oh-my-zsh to be in ~/.oh-my-zsh and try to - # modify the directory. - cat >> oh-my-zsh.sh <<- EOF + # Both functions expect oh-my-zsh to be in ~/.oh-my-zsh and try to + # modify the directory. + cat >> oh-my-zsh.sh <<- EOF - # Undefine functions that don't work on Nix. - unfunction uninstall_oh_my_zsh - unfunction upgrade_oh_my_zsh - EOF + # Undefine functions that don't work on Nix. + unfunction uninstall_oh_my_zsh + unfunction upgrade_oh_my_zsh + EOF - # Look for .zsh_variables, .zsh_aliases, and .zsh_funcs, and source - # them, if found. - cat >> $template <<- EOF + # Look for .zsh_variables, .zsh_aliases, and .zsh_funcs, and source + # them, if found. + cat >> $template <<- EOF - # Load the variables. - if [ -f ~/.zsh_variables ]; then - . ~/.zsh_variables - fi + # Load the variables. + if [ -f ~/.zsh_variables ]; then + . ~/.zsh_variables + fi - # Load the functions. - if [ -f ~/.zsh_funcs ]; then - . ~/.zsh_funcs - fi + # Load the functions. + if [ -f ~/.zsh_funcs ]; then + . ~/.zsh_funcs + fi - # Load the aliases. - if [ -f ~/.zsh_aliases ]; then - . ~/.zsh_aliases - fi - EOF + # Load the aliases. + if [ -f ~/.zsh_aliases ]; then + . ~/.zsh_aliases + fi + EOF ''; meta = with stdenv.lib; { From b07a1dc743837562087406e6d62aa011deb88f06 Mon Sep 17 00:00:00 2001 From: Florian Klink Date: Fri, 28 Aug 2020 12:29:15 +0200 Subject: [PATCH 2/3] oh-my-zsh: apply patch to remove usages of perl https://github.com/NixOS/nixpkgs/pull/91213 removed `perl` from $PATH. This adds a patch to oh-my-zsh, using `sed` instead of `perl` to do the regexp substitution. --- pkgs/shells/zsh/oh-my-zsh/default.nix | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/pkgs/shells/zsh/oh-my-zsh/default.nix b/pkgs/shells/zsh/oh-my-zsh/default.nix index ddc0ae1a2adb..b70d62ffb101 100644 --- a/pkgs/shells/zsh/oh-my-zsh/default.nix +++ b/pkgs/shells/zsh/oh-my-zsh/default.nix @@ -1,7 +1,7 @@ # This script was inspired by the ArchLinux User Repository package: # # https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=oh-my-zsh-git -{ stdenv, fetchFromGitHub }: +{ stdenv, fetchFromGitHub, fetchpatch }: stdenv.mkDerivation rec { version = "2020-08-24"; @@ -14,6 +14,12 @@ stdenv.mkDerivation rec { sha256 = "0af37smv0bqw37bng2halzgszf8y3m2sxahdff54m16asm0py2cr"; }; + patches = [(fetchpatch { + # TODO: remove once https://github.com/ohmyzsh/ohmyzsh/pull/9210 is merged + name = "0001-pygmalion-use-pure-zsh-instead-of-perl.patch"; + url = "https://github.com/flokli/ohmyzsh/commit/299b48ce422957c0f5ca06cd5ccade55e0a08d87.patch"; + sha256 = "1cxj3c9bbcqd8zj9fccn117n2rzhx6krzbl4db059g2vsycadwmi"; + })]; installPhase = '' outdir=$out/share/oh-my-zsh From c23a404cb6ee3a490583c1d08ef67c22b494880c Mon Sep 17 00:00:00 2001 From: Tim Steinbach Date: Mon, 31 Aug 2020 09:08:49 -0400 Subject: [PATCH 3/3] Remove fetchpatch --- pkgs/shells/zsh/oh-my-zsh/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/shells/zsh/oh-my-zsh/default.nix b/pkgs/shells/zsh/oh-my-zsh/default.nix index fc87a3a2b312..2a98f43fb331 100644 --- a/pkgs/shells/zsh/oh-my-zsh/default.nix +++ b/pkgs/shells/zsh/oh-my-zsh/default.nix @@ -1,7 +1,7 @@ # This script was inspired by the ArchLinux User Repository package: # # https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=oh-my-zsh-git -{ stdenv, fetchFromGitHub, fetchpatch }: +{ stdenv, fetchFromGitHub }: stdenv.mkDerivation rec { version = "2020-08-28";