diff --git a/pkgs/applications/misc/authenticator/default.nix b/pkgs/applications/misc/authenticator/default.nix new file mode 100644 index 00000000000..46b61720d0a --- /dev/null +++ b/pkgs/applications/misc/authenticator/default.nix @@ -0,0 +1,99 @@ +{ lib +, stdenv +, fetchFromGitLab +, fetchpatch +, appstream-glib +, desktop-file-utils +, meson +, ninja +, pkg-config +, python3 +, rustPlatform +, wrapGAppsHook +, gdk-pixbuf +, glib +, gst_all_1 +, gtk4 +, libadwaita +, openssl +, sqlite +, wayland +, zbar +}: + +stdenv.mkDerivation rec { + pname = "authenticator"; + version = "4.0.3"; + + src = fetchFromGitLab { + domain = "gitlab.gnome.org"; + owner = "World"; + repo = "Authenticator"; + rev = version; + sha256 = "0fvs76f3fm5pxn7wg6sjbqpgip5w2j7xrh4siasdcl2bx6vsld8b"; + }; + + cargoDeps = rustPlatform.fetchCargoTarball { + inherit src; + name = "${pname}-${version}"; + sha256 = "1s97jyszxf24rs3ni11phiyvmp1wm8sicb0rh1jgwz4bn1cnakx4"; + }; + + postPatch = '' + patchShebangs build-aux + ''; + + nativeBuildInputs = [ + appstream-glib + desktop-file-utils + meson + ninja + pkg-config + python3 + wrapGAppsHook + ] ++ (with rustPlatform; [ + cargoSetupHook + rust.cargo + rust.rustc + ]); + + buildInputs = [ + gdk-pixbuf + glib + gst_all_1.gstreamer + gst_all_1.gst-plugins-base + + # gst-plugins-good needs gtk4 support: + # https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/767 + # We copy the way it is built from the Flatpak: + # https://gitlab.gnome.org/World/Authenticator/-/blob/master/build-aux/com.belmoussaoui.Authenticator.Devel.json + (gst_all_1.gst-plugins-good.overrideAttrs (old: { + patches = old.patches or [ ] ++ [ + "${src}/build-aux/767.patch" + ]; + mesonFlags = old.mesonFlags ++ [ + "-Dgtk3=disabled" + "-Dgtk4=enabled" + "-Dgtk4-experiments=true" + ]; + buildInputs = old.buildInputs ++ [ + gtk4 + ]; + })) + + (gst_all_1.gst-plugins-bad.override { enableZbar = true; }) + gtk4 + libadwaita + openssl + sqlite + wayland + zbar + ]; + + meta = with lib; { + description = "Two-factor authentication code generator for GNOME"; + homepage = "https://gitlab.gnome.org/World/Authenticator"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ dotlambda ]; + }; +} diff --git a/pkgs/development/libraries/libadwaita/default.nix b/pkgs/development/libraries/libadwaita/default.nix new file mode 100644 index 00000000000..486326f15f8 --- /dev/null +++ b/pkgs/development/libraries/libadwaita/default.nix @@ -0,0 +1,67 @@ +{ lib +, stdenv +, fetchFromGitLab +, docbook-xsl-nons +, gtk-doc +, meson +, ninja +, pkg-config +, sassc +, vala +, gobject-introspection +, gtk4 +, xvfb_run +}: + +stdenv.mkDerivation rec { + pname = "libadwaita"; + version = "unstable-2021-05-01"; + + outputs = [ "out" "dev" "devdoc" ]; + outputBin = "dev"; + + src = fetchFromGitLab { + domain = "gitlab.gnome.org"; + owner = "GNOME"; + repo = "libadwaita"; + rev = "8d66b987a19979d9d7b85dacc6bad5ce0c8743fe"; + sha256 = "0i3wav6jsyi4w4i2r1rad769m5y5s9djj4zqb7dfyh0bad24ba3q"; + }; + + nativeBuildInputs = [ + docbook-xsl-nons + gtk-doc + meson + ninja + pkg-config + sassc + vala + ]; + + mesonFlags = [ + "-Dgtk_doc=true" + ]; + + buildInputs = [ + gobject-introspection + gtk4 + ]; + + checkInputs = [ + xvfb_run + ]; + + doCheck = true; + + checkPhase = '' + xvfb-run meson test + ''; + + meta = with lib; { + description = "Library to help with developing UI for mobile devices using GTK/GNOME"; + homepage = "https://gitlab.gnome.org/GNOME/libadwaita"; + license = licenses.lgpl21Plus; + maintainers = with maintainers; [ dotlambda ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 7ead415dc9b..a9f24ab1d51 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1085,6 +1085,8 @@ in audiowaveform = callPackage ../tools/audio/audiowaveform { }; + authenticator = callPackage ../applications/misc/authenticator { }; + autoflake = callPackage ../development/tools/analysis/autoflake { }; autospotting = callPackage ../applications/misc/autospotting { }; @@ -15313,6 +15315,8 @@ in libacr38u = callPackage ../tools/security/libacr38u { }; + libadwaita = callPackage ../development/libraries/libadwaita { }; + libaec = callPackage ../development/libraries/libaec { }; libagar = callPackage ../development/libraries/libagar { };