From 7940b5b7606f4c9df2dd614a275092e932a51d5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Merlin=20G=C3=B6ttlinger?= Date: Fri, 5 Jan 2018 12:11:52 +0100 Subject: [PATCH 1/3] Beginnings of a inboxer derivation --- .../mailreaders/inboxer/default.nix | 28 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 30 insertions(+) create mode 100644 pkgs/applications/networking/mailreaders/inboxer/default.nix diff --git a/pkgs/applications/networking/mailreaders/inboxer/default.nix b/pkgs/applications/networking/mailreaders/inboxer/default.nix new file mode 100644 index 00000000000..0534b8b8472 --- /dev/null +++ b/pkgs/applications/networking/mailreaders/inboxer/default.nix @@ -0,0 +1,28 @@ +{ stdenv, fetchFromGitHub, nodejs }: + +stdenv.mkDerivation rec { + name = "inboxer-${version}"; + version = "1.0.0"; + + meta = with stdenv.lib; { + description = "Unofficial, free and open-source Google Inbox Desktop App"; + homepage = "https://denysdovhan.com/inboxer"; + maintainers = [ maintainers.mgttlinger ]; + license = licenses.mit; + platforms = [ "x86_64-linux" ]; + }; + + src = fetchFromGitHub { + owner = "denysdovhan"; + repo = "inboxer"; + rev = "v${version}"; + sha256 = "0mvkvsqc36y3r2lxa5f4rjrj2z5jxwadpcx585sdsx37ndi1z9m5"; + }; + + buildInputs = [ nodejs ]; + + buildPhase = '' + npm install + npm test + ''; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 2074d9986ee..480e0f35b81 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2792,6 +2792,8 @@ with pkgs; inadyn = callPackage ../tools/networking/inadyn { }; + inboxer = callPackage ../applications/networking/mailreaders/inboxer { }; + inetutils = callPackage ../tools/networking/inetutils { }; inform7 = callPackage ../development/compilers/inform7 { }; From 8f610383628aa01cde9857eb3877016f02308eab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Merlin=20G=C3=B6ttlinger?= Date: Sat, 6 Jan 2018 12:31:54 +0100 Subject: [PATCH 2/3] All ldd misses fixed --- .../mailreaders/inboxer/default.nix | 65 ++++++++++++++++--- 1 file changed, 55 insertions(+), 10 deletions(-) diff --git a/pkgs/applications/networking/mailreaders/inboxer/default.nix b/pkgs/applications/networking/mailreaders/inboxer/default.nix index 0534b8b8472..fdc011e040e 100644 --- a/pkgs/applications/networking/mailreaders/inboxer/default.nix +++ b/pkgs/applications/networking/mailreaders/inboxer/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, nodejs }: +{ stdenv, fetchurl, binutils, patchelf, expat, xorg, gdk_pixbuf, glib, gnome2, cairo, atk, freetype, fontconfig, dbus, nss, nspr, gtk2-x11, alsaLib, cups }: stdenv.mkDerivation rec { name = "inboxer-${version}"; @@ -12,17 +12,62 @@ stdenv.mkDerivation rec { platforms = [ "x86_64-linux" ]; }; - src = fetchFromGitHub { - owner = "denysdovhan"; - repo = "inboxer"; - rev = "v${version}"; - sha256 = "0mvkvsqc36y3r2lxa5f4rjrj2z5jxwadpcx585sdsx37ndi1z9m5"; + src = fetchurl { + url = "https://github.com/denysdovhan/inboxer/releases/download/v${version}/inboxer_${version}_amd64.deb"; + sha256 = "01384fi5vrfqpznk9389nf3bwpi2zjbnkg84g6z1css8f3gp5i1c"; }; - buildInputs = [ nodejs ]; + unpackPhase = '' + ar p $src data.tar.xz | tar xJ + ''; + buildInputs = [ binutils patchelf ]; - buildPhase = '' - npm install - npm test + preFixup = with stdenv.lib; let + lpath = makeLibraryPath [ + alsaLib + atk + cairo + cups + dbus + nss + nspr + freetype + fontconfig + gtk2-x11 + xorg.libX11 + xorg.libXcursor + xorg.libXdamage + xorg.libXi + xorg.libXext + xorg.libXfixes + xorg.libXrandr + xorg.libXrender + xorg.libXcomposite + xorg.libXtst + xorg.libXScrnSaver + xorg.libxcb + gdk_pixbuf + glib + gnome2.pango + gnome2.GConf + expat + stdenv.cc.cc.lib + ]; + in '' + patchelf \ + --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ + --set-rpath "$out/opt/Inboxer:${lpath}" \ + $out/opt/Inboxer/inboxer + ''; + + installPhase = '' + mkdir -p $out/bin + cp -R usr/share opt $out/ + # fix the path in the desktop file + substituteInPlace \ + $out/share/applications/inboxer.desktop \ + --replace /opt/ $out/opt/ + # symlink the binary to bin/ + ln -s $out/opt/Inboxer/inboxer $out/bin/inboxer ''; } From 6fbe54623ba8d51fa0ffb5af1d2d74a4740b5866 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Merlin=20G=C3=B6ttlinger?= Date: Wed, 10 Jan 2018 21:12:31 +0100 Subject: [PATCH 3/3] seems to work now --- .../networking/mailreaders/inboxer/default.nix | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/networking/mailreaders/inboxer/default.nix b/pkgs/applications/networking/mailreaders/inboxer/default.nix index fdc011e040e..ef66f69f979 100644 --- a/pkgs/applications/networking/mailreaders/inboxer/default.nix +++ b/pkgs/applications/networking/mailreaders/inboxer/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, binutils, patchelf, expat, xorg, gdk_pixbuf, glib, gnome2, cairo, atk, freetype, fontconfig, dbus, nss, nspr, gtk2-x11, alsaLib, cups }: +{ stdenv, fetchurl, binutils, patchelf, makeWrapper, expat, xorg, gdk_pixbuf, glib, gnome2, cairo, atk, freetype, fontconfig, dbus, nss, nspr, gtk2-x11, alsaLib, cups, libpulseaudio, libudev }: stdenv.mkDerivation rec { name = "inboxer-${version}"; @@ -20,7 +20,7 @@ stdenv.mkDerivation rec { unpackPhase = '' ar p $src data.tar.xz | tar xJ ''; - buildInputs = [ binutils patchelf ]; + buildInputs = [ binutils patchelf makeWrapper ]; preFixup = with stdenv.lib; let lpath = makeLibraryPath [ @@ -52,12 +52,23 @@ stdenv.mkDerivation rec { gnome2.GConf expat stdenv.cc.cc.lib + libpulseaudio + libudev ]; in '' + patchelf \ + --set-rpath "$out/opt/Inboxer:${lpath}" \ + $out/opt/Inboxer/libnode.so + patchelf \ + --set-rpath "$out/opt/Inboxer:${lpath}" \ + $out/opt/Inboxer/libffmpeg.so + patchelf \ --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ --set-rpath "$out/opt/Inboxer:${lpath}" \ $out/opt/Inboxer/inboxer + + wrapProgram $out/opt/Inboxer/inboxer --set LD_LIBRARY_PATH "${xorg.libxkbfile}/lib:${lpath}" ''; installPhase = ''