nixpkgs/pkgs/desktops/deepin/dde-api/default.nix

128 lines
3.5 KiB
Nix
Raw Normal View History

2020-05-03 20:52:19 +01:00
{ stdenv
, buildGoPackage
, fetchFromGitHub
, pkgconfig
, alsaLib
, bc
, blur-effect
, coreutils
, deepin
, deepin-gettext-tools
, fontconfig
, go
, go-dbus-factory
, go-gir-generator
, go-lib
, grub2
, gtk3
, libcanberra
, libgudev
, librsvg
, poppler
, pulseaudio
, rfkill
, xcur2png
2018-11-27 17:23:55 +00:00
}:
2018-10-12 12:07:58 +01:00
buildGoPackage rec {
pname = "dde-api";
2019-11-12 01:08:37 +00:00
version = "5.0.0";
2018-10-12 12:07:58 +01:00
goPackagePath = "pkg.deepin.io/dde/api";
src = fetchFromGitHub {
owner = "linuxdeepin";
repo = pname;
rev = version;
2019-11-12 01:08:37 +00:00
sha256 = "0iv4krj6dqdknwvmax7aj40k1h96259kqcfnljadrwpl7cvsvp5p";
2018-10-12 12:07:58 +01:00
};
goDeps = ./deps.nix;
nativeBuildInputs = [
pkgconfig
2018-11-27 17:23:55 +00:00
deepin-gettext-tools # build
deepin.setupHook
2018-10-12 12:07:58 +01:00
2020-03-18 13:44:15 +00:00
# TODO: using $PATH to find run time executable does not work with cross compiling
2018-11-27 17:23:55 +00:00
bc # run (to adjust grub theme?)
blur-effect # run (is it really needed?)
coreutils # run (is it really needed?)
fontconfig # run (is it really needed?)
2020-03-18 13:44:15 +00:00
rfkill # run
xcur2png # run
2018-11-27 17:23:55 +00:00
grub2 # run (is it really needed?)
2020-03-18 13:44:15 +00:00
];
buildInputs = [
go-dbus-factory # needed
go-gir-generator # needed
go-lib # build
alsaLib # needed
#glib # ? arch
2018-11-27 17:23:55 +00:00
gtk3 # build run
libcanberra # build run
libgudev # needed
librsvg # build run
poppler # build run
pulseaudio # needed
#locales # run (locale-helper needs locale-gen, which is unavailable on NixOS?)
];
2018-10-12 12:07:58 +01:00
postPatch = ''
searchHardCodedPaths # debugging
2018-11-27 17:23:55 +00:00
fixPath $out /usr/lib/deepin-api \
lunar-calendar/main.go \
misc/services/com.deepin.api.CursorHelper.service \
misc/services/com.deepin.api.Graphic.service \
misc/services/com.deepin.api.LunarCalendar.service \
misc/services/com.deepin.api.Pinyin.service \
misc/system-services/com.deepin.api.Device.service \
misc/system-services/com.deepin.api.LocaleHelper.service \
misc/system-services/com.deepin.api.SoundThemePlayer.service \
misc/systemd/system/deepin-shutdown-sound.service \
theme_thumb/gtk/gtk.go \
thumbnails/gtk/gtk.go
fixPath $out /boot/grub Makefile # TODO: confirm where to install grub themes
fixPath $out /var Makefile
# This package wants to install polkit local authority files into
# /var/lib. Nix does not allow a package to install files into /var/lib
# because it is outside of the Nix store and should contain applications
# state information (persistent data modified by programs as they
# run). Polkit looks for them in both /etc/polkit-1 and
# /var/lib/polkit-1 (with /etc having priority over /var/lib). An
# work around is to install them to $out/etc and simlnk them to
# /etc in the deepin module.
sed -i -e "s,/var/lib/polkit-1,/etc/polkit-1," Makefile
2018-10-12 12:07:58 +01:00
'';
buildPhase = ''
2019-02-28 01:46:32 +00:00
export GOCACHE="$TMPDIR/go-cache";
2018-10-12 12:07:58 +01:00
make -C go/src/${goPackagePath}
'';
installPhase = ''
2018-11-27 17:23:55 +00:00
make install PREFIX="$out" SYSTEMD_LIB_DIR="$out/lib" -C go/src/${goPackagePath}
mv $out/share/gocode $out/share/go
remove-references-to -t ${go} $out/lib/deepin-api/*
2018-10-12 12:07:58 +01:00
'';
postFixup = ''
searchHardCodedPaths $out # debugging
'';
passthru.updateScript = deepin.updateScript { inherit pname version src; };
2018-10-30 22:17:45 +00:00
2018-10-12 12:07:58 +01:00
meta = with stdenv.lib; {
description = "Go-lang bindings for dde-daemon";
homepage = "https://github.com/linuxdeepin/dde-api";
2018-10-12 12:07:58 +01:00
license = licenses.gpl3;
platforms = platforms.linux;
maintainers = with maintainers; [ romildo ];
};
}