diff options
Diffstat (limited to 'nixpkgs/pkgs/desktops/deepin/go-package/dde-api/default.nix')
-rw-r--r-- | nixpkgs/pkgs/desktops/deepin/go-package/dde-api/default.nix | 121 |
1 files changed, 121 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/desktops/deepin/go-package/dde-api/default.nix b/nixpkgs/pkgs/desktops/deepin/go-package/dde-api/default.nix new file mode 100644 index 000000000000..87038ae5e49b --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/go-package/dde-api/default.nix @@ -0,0 +1,121 @@ +{ stdenv +, lib +, fetchFromGitHub +, buildGoPackage +, wrapQtAppsHook +, wrapGAppsHook +, gtk3 +, pkg-config +, deepin-gettext-tools +, alsa-lib +, go-dbus-factory +, go-gir-generator +, go-lib +, libcanberra +, libgudev +, librsvg +, poppler +, pulseaudio +, gdk-pixbuf-xlib +, dbus +, coreutils +, deepin-desktop-base +}: + +buildGoPackage rec { + pname = "dde-api"; + version = "5.5.32"; + + goPackagePath = "github.com/linuxdeepin/dde-api"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "sha256-F+vEOSpysqVtjs8de5mCmeANuCbYUQ860ZHl5rwNYac="; + }; + + patches = [ ./0001-dont-set-PATH.patch ]; + + postPatch = '' + substituteInPlace lang_info/lang_info.go \ + --replace "/usr/share/i18n/language_info.json" "${deepin-desktop-base}/share/i18n/language_info.json" + + substituteInPlace misc/systemd/system/deepin-shutdown-sound.service \ + --replace "/usr/bin/true" "${coreutils}/bin/true" + + substituteInPlace sound-theme-player/main.go \ + --replace "/usr/sbin/alsactl" "alsactl" + + substituteInPlace misc/scripts/deepin-boot-sound.sh \ + --replace "/usr/bin/dbus-send" "${dbus}/bin/dbus-send" + + substituteInPlace lunar-calendar/huangli.go adjust-grub-theme/main.go \ + --replace "/usr/share/dde-api" "$out/share/dde-api" + + substituteInPlace themes/{theme.go,settings.go} \ + --replace "/usr/share" "/run/current-system/sw/share" + + for file in $(grep "/usr/lib/deepin-api" * -nR |awk -F: '{print $1}') + do + sed -i 's|/usr/lib/deepin-api|/run/current-system/sw/lib/deepin-api|g' $file + done + ''; + + goDeps = ./deps.nix; + + nativeBuildInputs = [ + pkg-config + deepin-gettext-tools + wrapQtAppsHook + wrapGAppsHook + ]; + dontWrapGApps = true; + + buildInputs = [ + go-dbus-factory + go-gir-generator + go-lib + gtk3 + alsa-lib + libcanberra + libgudev + librsvg + poppler + pulseaudio + gdk-pixbuf-xlib + ]; + + buildPhase = '' + runHook preBuild + addToSearchPath GOPATH "${go-dbus-factory}/share/gocode" + addToSearchPath GOPATH "${go-gir-generator}/share/gocode" + addToSearchPath GOPATH "${go-lib}/share/gocode" + make -C go/src/${goPackagePath} + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + make install DESTDIR="$out" PREFIX="/" -C go/src/${goPackagePath} + runHook postInstall + ''; + + preFixup = '' + qtWrapperArgs+=("''${gappsWrapperArgs[@]}") + ''; + + postFixup = '' + for binary in $out/lib/deepin-api/*; do + wrapProgram $binary "''${qtWrapperArgs[@]}" + done + ''; + + meta = with lib; { + description = "Dbus interfaces used for screen zone detecting, thumbnail generating, sound playing, etc"; + homepage = "https://github.com/linuxdeepin/dde-api"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} |