Files
nixos/common/flakes/fet/flake.nix
2026-03-23 21:24:20 +01:00

80 lines
1.9 KiB
Nix

{
description = "FET - Free Timetabling Software";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
};
outputs = {
self,
nixpkgs,
flake-utils,
}:
flake-utils.lib.eachDefaultSystem (
system: let
pkgs = nixpkgs.legacyPackages.${system};
in {
packages.default = pkgs.stdenv.mkDerivation rec {
pname = "fet";
version = "7.8.0";
src = pkgs.fetchurl {
url = "https://lalescu.ro/liviu/fet/download/fet-${version}.tar.xz";
sha256 = "01hr3digrg2qs5wh10qzpgwi4clqmzd46d099r0yrx3278qvz9wj";
};
enableParallelBuilding = true;
nativeBuildInputs = with pkgs; [
copyDesktopItems
qt6.qmake
qt6.wrapQtAppsHook
];
buildInputs = with pkgs; [
qt6.qtbase
];
configurePhase = ''
qmake fet.pro
'';
desktopItems = [
(pkgs.makeDesktopItem {
name = "fet";
exec = "fet";
icon = "fet";
comment = "Free Timetabling Software";
desktopName = "FET";
categories = [
"Education"
"Qt"
];
})
];
installPhase = ''
runHook preInstall
mkdir -p $out/bin
cp fet $out/bin/
mkdir -p $out/share/icons/hicolor/128x128/apps
cp icons/fet.png $out/share/icons/hicolor/128x128/apps/fet.png
runHook postInstall
'';
meta = with pkgs.lib; {
description = "Free software for automatically scheduling timetables";
homepage = "https://lalescu.ro/liviu/fet/";
license = licenses.agpl3Plus;
platforms = platforms.linux;
mainProgram = "fet";
};
};
}
);
}