mirror of
https://github.com/SebastianWendel/nixpkgs.git
synced 2024-09-24 14:10:17 +02:00
57d5e2b20d
include gtk3 to fix atom's path such that file open dialogs wont cause atom to crash due to missing GIO files
83 lines
2.7 KiB
Nix
83 lines
2.7 KiB
Nix
{ stdenv, pkgs, fetchurl, makeWrapper, wrapGAppsHook, gvfs, atomEnv, gtk3}:
|
|
|
|
let
|
|
common = pname: {version, sha256, beta ? null}:
|
|
let fullVersion = version + stdenv.lib.optionalString (beta != null) "-beta${toString beta}";
|
|
name = "${pname}-${fullVersion}";
|
|
in stdenv.mkDerivation {
|
|
inherit name;
|
|
version = fullVersion;
|
|
|
|
src = fetchurl {
|
|
url = "https://github.com/atom/atom/releases/download/v${fullVersion}/atom-amd64.deb";
|
|
name = "${name}.deb";
|
|
inherit sha256;
|
|
};
|
|
|
|
nativeBuildInputs = [
|
|
wrapGAppsHook # Fix error: GLib-GIO-ERROR **: No GSettings schemas are installed on the system
|
|
gtk3 # Fix error: GLib-GIO-ERROR **: Settings schema 'org.gtk.Settings.FileChooser' is not installed
|
|
];
|
|
|
|
preFixup = ''
|
|
gappsWrapperArgs+=(
|
|
--prefix "PATH" : "${gvfs}/bin" \
|
|
)
|
|
'';
|
|
|
|
buildCommand = ''
|
|
mkdir -p $out/usr/
|
|
ar p $src data.tar.xz | tar -C $out -xJ ./usr
|
|
substituteInPlace $out/usr/share/applications/${pname}.desktop \
|
|
--replace /usr/share/${pname} $out/bin
|
|
mv $out/usr/* $out/
|
|
rm -r $out/share/lintian
|
|
rm -r $out/usr/
|
|
sed -i "s/${pname})/.${pname}-wrapped)/" $out/bin/${pname}
|
|
|
|
fixupPhase
|
|
|
|
share=$out/share/${pname}
|
|
|
|
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
|
|
--set-rpath "${atomEnv.libPath}:$share" \
|
|
$share/atom
|
|
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
|
|
--set-rpath "${atomEnv.libPath}" \
|
|
$share/resources/app/apm/bin/node
|
|
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
|
|
$share/resources/app.asar.unpacked/node_modules/symbols-view/vendor/ctags-linux
|
|
|
|
dugite=$share/resources/app.asar.unpacked/node_modules/dugite
|
|
rm -f $dugite/git/bin/git
|
|
ln -s ${pkgs.git}/bin/git $dugite/git/bin/git
|
|
rm -f $dugite/git/libexec/git-core/git
|
|
ln -s ${pkgs.git}/bin/git $dugite/git/libexec/git-core/git
|
|
|
|
find $share -name "*.node" -exec patchelf --set-rpath "${atomEnv.libPath}:$share" {} \;
|
|
|
|
paxmark m $share/atom
|
|
paxmark m $share/resources/app/apm/bin/node
|
|
'';
|
|
|
|
meta = with stdenv.lib; {
|
|
description = "A hackable text editor for the 21st Century";
|
|
homepage = https://atom.io/;
|
|
license = licenses.mit;
|
|
maintainers = with maintainers; [ offline nequissimus synthetica ysndr ];
|
|
platforms = platforms.x86_64;
|
|
};
|
|
};
|
|
in stdenv.lib.mapAttrs common {
|
|
atom = {
|
|
version = "1.29.0";
|
|
sha256 = "0f0qpn8aw2qlqk8ah71xvk4vcmwsnsf2f3g4hz0rvaqnhb9ri9fz";
|
|
};
|
|
|
|
atom-beta = {
|
|
version = "1.30.0";
|
|
beta = 1;
|
|
sha256 = "0ygqj81xlwhzmmci0d0rd2q7xfskxd1k7h6db3zvvjdxjcnyqp1z";
|
|
};
|
|
}
|