Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

93 lines
2.2 KiB
Nix
Raw Permalink Normal View History

2025-05-18 01:01:52 +02:00
{
lib,
buildGoModule,
fetchFromGitHub,
symlinkJoin,
versionCheckHook,
makeWrapper,
wrapGAppsHook4,
cairo,
gdk-pixbuf,
glib,
graphene,
gtk4,
libadwaita,
pango,
}:
buildGoModule (finalAttrs: {
pname = "geteduroam";
2025-06-06 09:45:08 +00:00
version = "0.12";
2025-05-18 01:01:52 +02:00
src = fetchFromGitHub {
owner = "geteduroam";
repo = "linux-app";
tag = finalAttrs.version;
2025-06-06 09:45:08 +00:00
hash = "sha256-+3mluLby3R0xVU9fIG+1B1A4yM1IfyUvw4wclwnV5s8=";
2025-05-18 01:01:52 +02:00
};
2025-06-06 09:45:08 +00:00
vendorHash = "sha256-l9hge1TS+7ix9/6LKWq+lTMjNM4/Lnw8gNrWB6hWCTk=";
2025-05-18 01:01:52 +02:00
subPackages = [
"cmd/geteduroam-gui"
"cmd/geteduroam-notifcheck"
];
postInstall = ''
wrapProgram $out/bin/geteduroam-gui \
--set-default PUREGOTK_LIB_FOLDER ${finalAttrs.passthru.libraryPath}/lib \
''${gappsWrapperArgs[@]}
# copy notifcheck service
mkdir -p $out/lib/systemd/system/
cp -v systemd/user/geteduroam/* $out/lib/systemd/system/
substituteInPlace $out/lib/systemd/system/geteduroam-notifs.service \
--replace-fail \
"ExecStart=/usr/bin/geteduroam-notifcheck" \
"ExecStart=$out/bin/geteduroam-notifcheck"
# copy icons and desktop entries
cp -r cmd/geteduroam-gui/resources/share $out/
'';
nativeBuildInputs = [
wrapGAppsHook4
makeWrapper
];
dontWrapGApps = true;
nativeInstallCheckInputs = [
versionCheckHook
];
versionCheckProgram = "${placeholder "out"}/bin/geteduroam-gui";
versionCheckProgramArg = "--version";
doInstallCheck = true;
passthru = {
libraryPath = symlinkJoin {
name = "eduroam-gui-puregotk-lib";
# based on https://github.com/jwijenbergh/puregotk/blob/bc1a52f44fd4c491947f7af85296c66173da17ba/internal/core/core.go#L41
paths = [
cairo
gdk-pixbuf
glib.out
graphene
gtk4
libadwaita
pango.out
];
};
};
meta = {
description = "GUI client to configure eduroam";
homepage = "https://eduroam.app";
license = lib.licenses.bsd3;
maintainers = with lib.maintainers; [ pbsds ];
platforms = lib.platforms.linux;
changelog = "https://github.com/geteduroam/linux-app/releases/tag/${finalAttrs.version}";
mainProgram = "geteduroam-gui";
};
})