diff --git a/pkgs/desktops/deepin/default.nix b/pkgs/desktops/deepin/default.nix index f3f5619d812e..4195af30e5d7 100644 --- a/pkgs/desktops/deepin/default.nix +++ b/pkgs/desktops/deepin/default.nix @@ -54,6 +54,7 @@ let go-dbus-factory = callPackage ./go-package/go-dbus-factory { }; dde-api = callPackage ./go-package/dde-api { inherit replaceAll; }; deepin-pw-check = callPackage ./go-package/deepin-pw-check { }; + deepin-desktop-schemas = callPackage ./go-package/deepin-desktop-schemas { }; #### TOOLS deepin-gettext-tools = callPackage ./tools/deepin-gettext-tools { }; diff --git a/pkgs/desktops/deepin/go-package/deepin-desktop-schemas/default.nix b/pkgs/desktops/deepin/go-package/deepin-desktop-schemas/default.nix new file mode 100644 index 000000000000..1fc24b4a283b --- /dev/null +++ b/pkgs/desktops/deepin/go-package/deepin-desktop-schemas/default.nix @@ -0,0 +1,57 @@ +{ stdenv +, lib +, fetchFromGitHub +, buildGoPackage +, go-lib +, glib +}: +buildGoPackage rec { + pname = "deepin-desktop-schemas"; + version = "5.10.11"; + + goPackagePath = "github.com/linuxdeepin/deepin-desktop-schemas"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "sha256-MboNj0zC3azavDUsmeNNafCcUa0GeoySl610+WOtNww="; + }; + + nativeBuildInputs = [ glib ]; + buildInputs = [ go-lib ]; + + postPatch = '' + # Relocate files path for backgrounds and wallpapers + for file in $(grep -rl "/usr/share") + do + substituteInPlace $file \ + --replace "/usr/share" "/run/current-system/sw/share" + done + ''; + + buildPhase = '' + runHook preBuild + GOPATH="$GOPATH:${go-lib}/share/gocode" + make ARCH=${stdenv.targetPlatform.linuxArch} -C go/src/${goPackagePath} + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + make install DESTDIR="$out" PREFIX="/" -C go/src/${goPackagePath} + runHook postInstall + ''; + + preFixup = '' + glib-compile-schemas ${glib.makeSchemaPath "$out" "${pname}-${version}"} + ''; + + meta = with lib; { + description = "GSettings deepin desktop-wide schemas"; + homepage = "https://github.com/linuxdeepin/deepin-desktop-schemas"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +}