diff options
author | AndersonTorres <torres.anderson.85@protonmail.com> | 2022-06-26 22:51:59 -0300 |
---|---|---|
committer | AndersonTorres <torres.anderson.85@protonmail.com> | 2022-06-26 23:58:11 -0300 |
commit | 13d788ff956628ecb481787470d8bf10a95221b4 (patch) | |
tree | 49d97e8c6d4148301b056bfdae4259b2f61d8c3a /pkgs/applications/file-managers/mc | |
parent | aa1742748425e3988717ce0e562232139881d506 (diff) |
mc: move to applications/file-managers
Diffstat (limited to 'pkgs/applications/file-managers/mc')
-rw-r--r-- | pkgs/applications/file-managers/mc/default.nix | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/pkgs/applications/file-managers/mc/default.nix b/pkgs/applications/file-managers/mc/default.nix new file mode 100644 index 0000000000000..6f80c2c5e928d --- /dev/null +++ b/pkgs/applications/file-managers/mc/default.nix @@ -0,0 +1,96 @@ +{ lib, stdenv +, fetchurl +, pkg-config +, glib +, gpm +, file +, e2fsprogs +, libX11 +, libICE +, perl +, zip +, unzip +, gettext +, slang +, libssh2 +, openssl +, coreutils +, autoreconfHook +, autoSignDarwinBinariesHook + +# updater only +, writeScript +}: + +stdenv.mkDerivation rec { + pname = "mc"; + version = "4.8.28"; + + src = fetchurl { + url = "https://www.midnight-commander.org/downloads/${pname}-${version}.tar.xz"; + sha256 = "sha256-6ZTZvppxcumsSkrWIQeSH2qjEuZosFbf5bi867r1OAM="; + }; + + nativeBuildInputs = [ pkg-config autoreconfHook unzip ] + # The preFixup hook rewrites the binary, which invaliates the code + # signature. Add the fixup hook to sign the output. + ++ lib.optionals (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64) [ + autoSignDarwinBinariesHook + ]; + + buildInputs = [ + file + gettext + glib + libICE + libX11 + libssh2 + openssl + slang + zip + ] ++ lib.optionals (!stdenv.isDarwin) [ e2fsprogs gpm ]; + + enableParallelBuilding = true; + + configureFlags = [ "PERL=${perl}/bin/perl" ]; + + postPatch = '' + substituteInPlace src/filemanager/ext.c \ + --replace /bin/rm ${coreutils}/bin/rm + + substituteInPlace misc/ext.d/misc.sh.in \ + --replace /bin/cat ${coreutils}/bin/cat + ''; + + preFixup = '' + # remove unwanted build-dependency references + sed -i -e "s!PKG_CONFIG_PATH=''${PKG_CONFIG_PATH}!PKG_CONFIG_PATH=$(echo "$PKG_CONFIG_PATH" | sed -e 's/./0/g')!" $out/bin/mc + ''; + + postFixup = lib.optionalString (!stdenv.isDarwin) '' + # libX11.so is loaded dynamically so autopatch doesn't detect it + patchelf \ + --add-needed ${libX11}/lib/libX11.so \ + $out/bin/mc + ''; + + passthru.updateScript = writeScript "update-mc" '' + #!/usr/bin/env nix-shell + #!nix-shell -i bash -p curl pcre common-updater-scripts + + set -eu -o pipefail + + # Expect the text in format of "Current version is: 4.8.27; ...". + new_version="$(curl -s https://midnight-commander.org/ | pcregrep -o1 'Current version is: (([0-9]+\.?)+);')" + update-source-version mc "$new_version" + ''; + + meta = with lib; { + description = "File Manager and User Shell for the GNU Project"; + downloadPage = "https://www.midnight-commander.org/downloads/"; + homepage = "https://www.midnight-commander.org"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ sander ]; + platforms = with platforms; linux ++ darwin; + }; +} |