diff --git a/pkgs/applications/networking/instant-messengers/ferdi/default.nix b/pkgs/applications/networking/instant-messengers/ferdi/default.nix new file mode 100644 index 000000000000..e0f56e2783d0 --- /dev/null +++ b/pkgs/applications/networking/instant-messengers/ferdi/default.nix @@ -0,0 +1,19 @@ +{ stdenv, mkFranzDerivation, fetchurl }: + +mkFranzDerivation rec { + pname = "ferdi"; + name = "Ferdi"; + version = "5.5.0"; + src = fetchurl { + url = "https://github.com/getferdi/ferdi/releases/download/v${version}/ferdi_${version}_amd64.deb"; + sha256 = "0i24vcnq4iz5amqmn2fgk92ff9x9y7fg8jhc3g6ksvmcfly7af3k"; + }; + meta = with stdenv.lib; { + description = "Ferdi allows you to combine your favorite messaging services into one application"; + homepage = "https://getferdi.com/"; + license = licenses.free; + maintainers = [ maintainers.davidtwco ]; + platforms = [ "x86_64-linux" ]; + hydraPlatforms = [ ]; + }; +} diff --git a/pkgs/applications/networking/instant-messengers/franz/default.nix b/pkgs/applications/networking/instant-messengers/franz/default.nix index 0c5090574fa6..9573e92727b6 100644 --- a/pkgs/applications/networking/instant-messengers/franz/default.nix +++ b/pkgs/applications/networking/instant-messengers/franz/default.nix @@ -1,57 +1,19 @@ -{ stdenv, fetchurl, makeWrapper, wrapGAppsHook, autoPatchelfHook, dpkg -, xorg, atk, glib, pango, gdk-pixbuf, cairo, freetype, fontconfig, gtk3 -, gnome2, dbus, nss, nspr, alsaLib, cups, expat, udev, libnotify, xdg_utils }: +{ stdenv, mkFranzDerivation, fetchurl }: -let - version = "5.4.1"; -in stdenv.mkDerivation { +mkFranzDerivation rec { pname = "franz"; - inherit version; + name = "Franz"; + version = "5.4.1"; src = fetchurl { url = "https://github.com/meetfranz/franz/releases/download/v${version}/franz_${version}_amd64.deb"; sha256 = "1g1z5zjm9l081hpqslfc4h7pqh4k76ccmlz71r21204wy630mw6h"; }; - - # don't remove runtime deps - dontPatchELF = true; - - nativeBuildInputs = [ autoPatchelfHook makeWrapper wrapGAppsHook dpkg ]; - buildInputs = (with xorg; [ - libXi libXcursor libXdamage libXrandr libXcomposite libXext libXfixes - libXrender libX11 libXtst libXScrnSaver - ]) ++ [ - gtk3 atk glib pango gdk-pixbuf cairo freetype fontconfig dbus - gnome2.GConf nss nspr alsaLib cups expat stdenv.cc.cc - ]; - runtimeDependencies = [ udev.lib libnotify ]; - - unpackPhase = "dpkg-deb -x $src ."; - - installPhase = '' - mkdir -p $out/bin - cp -r opt $out - ln -s $out/opt/Franz/franz $out/bin - - # provide desktop item and icon - cp -r usr/share $out - substituteInPlace $out/share/applications/franz.desktop \ - --replace /opt/Franz/franz franz - ''; - - dontWrapGApps = true; - - postFixup = '' - wrapProgram $out/opt/Franz/franz \ - --prefix PATH : ${xdg_utils}/bin \ - "''${gappsWrapperArgs[@]}" - ''; - meta = with stdenv.lib; { description = "A free messaging app that combines chat & messaging services into one application"; homepage = "https://meetfranz.com"; license = licenses.free; maintainers = [ maintainers.davidtwco ]; - platforms = ["x86_64-linux"]; - hydraPlatforms = []; + platforms = [ "x86_64-linux" ]; + hydraPlatforms = [ ]; }; } diff --git a/pkgs/applications/networking/instant-messengers/franz/generic.nix b/pkgs/applications/networking/instant-messengers/franz/generic.nix new file mode 100644 index 000000000000..d1206cdf9b25 --- /dev/null +++ b/pkgs/applications/networking/instant-messengers/franz/generic.nix @@ -0,0 +1,89 @@ +{ stdenv +, makeWrapper +, wrapGAppsHook +, autoPatchelfHook +, dpkg +, xorg +, atk +, glib +, pango +, gdk-pixbuf +, cairo +, freetype +, fontconfig +, gtk3 +, gnome2 +, dbus +, nss +, nspr +, alsaLib +, cups +, expat +, udev +, libnotify +, xdg_utils +}: + +# Helper function for building a derivation for Franz and forks. + +{ pname, name, version, src, meta }: +stdenv.mkDerivation { + inherit pname version src meta; + + # Don't remove runtime deps. + dontPatchELF = true; + + nativeBuildInputs = [ autoPatchelfHook makeWrapper wrapGAppsHook dpkg ]; + buildInputs = (with xorg; [ + libXi + libXcursor + libXdamage + libXrandr + libXcomposite + libXext + libXfixes + libXrender + libX11 + libXtst + libXScrnSaver + ]) ++ [ + gtk3 + atk + glib + pango + gdk-pixbuf + cairo + freetype + fontconfig + dbus + gnome2.GConf + nss + nspr + alsaLib + cups + expat + stdenv.cc.cc + ]; + runtimeDependencies = [ udev.lib libnotify ]; + + unpackPhase = "dpkg-deb -x $src ."; + + installPhase = '' + mkdir -p $out/bin + cp -r opt $out + ln -s $out/opt/${name}/${pname} $out/bin + + # Provide desktop item and icon. + cp -r usr/share $out + substituteInPlace $out/share/applications/${pname}.desktop \ + --replace /opt/${name}/${pname} ${pname} + ''; + + dontWrapGApps = true; + + postFixup = '' + wrapProgram $out/opt/${name}/${pname} \ + --prefix PATH : ${xdg_utils}/bin \ + "''${gappsWrapperArgs[@]}" + ''; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 8ede249d1c37..75ceb62c098c 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3601,7 +3601,13 @@ in fprintd = callPackage ../tools/security/fprintd { }; - franz = callPackage ../applications/networking/instant-messengers/franz { }; + ferdi = callPackage ../applications/networking/instant-messengers/ferdi { + mkFranzDerivation = callPackage ../applications/networking/instant-messengers/franz/generic.nix { }; + }; + + franz = callPackage ../applications/networking/instant-messengers/franz { + mkFranzDerivation = callPackage ../applications/networking/instant-messengers/franz/generic.nix { }; + }; freedroidrpg = callPackage ../games/freedroidrpg { };