about summary refs log tree commit diff
path: root/nixpkgs/pkgs/desktops/deepin/go-package/startdde/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/desktops/deepin/go-package/startdde/default.nix')
-rw-r--r--nixpkgs/pkgs/desktops/deepin/go-package/startdde/default.nix102
1 files changed, 102 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/desktops/deepin/go-package/startdde/default.nix b/nixpkgs/pkgs/desktops/deepin/go-package/startdde/default.nix
new file mode 100644
index 000000000000..e0502deaf9cf
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/deepin/go-package/startdde/default.nix
@@ -0,0 +1,102 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, buildGoPackage
+, pkg-config
+, go-dbus-factory
+, go-gir-generator
+, go-lib
+, gettext
+, dde-api
+, libgnome-keyring
+, gtk3
+, alsa-lib
+, libpulseaudio
+, libgudev
+, libsecret
+, jq
+, wrapGAppsHook
+, runtimeShell
+, dde-polkit-agent
+}:
+
+buildGoPackage rec {
+  pname = "startdde";
+  version = "5.10.1";
+
+  goPackagePath = "github.com/linuxdeepin/startdde";
+
+  src = fetchFromGitHub {
+    owner = "linuxdeepin";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-dbTcYS7dEvT0eP45jKE8WiG9Pm4LU6jvR8hjMQv/yxU=";
+  };
+
+  patches = [
+    ./0001-avoid-use-hardcode-path.patch
+  ];
+
+  postPatch = ''
+    substituteInPlace display/manager.go session.go \
+      --replace "/bin/bash" "${runtimeShell}"
+    substituteInPlace display/manager.go main.go utils.go session.go \
+      --replace "/usr/lib/deepin-daemon" "/run/current-system/sw/lib/deepin-daemon"
+    substituteInPlace misc/xsessions/deepin.desktop.in --subst-var-by PREFIX $out
+    substituteInPlace watchdog/dde_polkit_agent.go misc/auto_launch/{default.json,chinese.json} \
+      --replace "/usr/lib/polkit-1-dde/dde-polkit-agent" "${dde-polkit-agent}/lib/polkit-1-dde/dde-polkit-agent"
+    substituteInPlace startmanager.go launch_group.go memchecker/config.go \
+      --replace "/usr/share/startdde" "$out/share/startdde"
+    substituteInPlace misc/lightdm.conf --replace "/usr" "$out"
+  '';
+
+  goDeps = ./deps.nix;
+
+  nativeBuildInputs = [
+    gettext
+    pkg-config
+    jq
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    go-dbus-factory
+    go-gir-generator
+    go-lib
+    dde-api
+    libgnome-keyring
+    gtk3
+    alsa-lib
+    libpulseaudio
+    libgudev
+    libsecret
+  ];
+
+  buildPhase = ''
+    runHook preBuild
+    addToSearchPath GOPATH "${go-dbus-factory}/share/gocode"
+    addToSearchPath GOPATH "${go-gir-generator}/share/gocode"
+    addToSearchPath GOPATH "${go-lib}/share/gocode"
+    addToSearchPath GOPATH "${dde-api}/share/gocode"
+    make -C go/src/${goPackagePath}
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    make install DESTDIR="$out" PREFIX="/" -C go/src/${goPackagePath}
+  '';
+
+  passthru.providedSessions = [ "deepin" ];
+
+  meta = with lib; {
+    description = "Starter of deepin desktop environment";
+    longDescription = ''
+      Startdde is used for launching DDE components and invoking user's
+      custom applications which compliant with xdg autostart specification
+    '';
+    homepage = "https://github.com/linuxdeepin/startdde";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = teams.deepin.members;
+  };
+}