Unverified Commit 390237b3 authored by Sandro Jäckel's avatar Sandro Jäckel Committed by GitHub
Browse files

goverlay: 1.3-2 -> 1.6.1, pascube: init at 1.5.1 (#451539)

parents 36354048 9faec8f5
Loading
Loading
Loading
Loading
+49 −55
Original line number Diff line number Diff line
{
  lib,
  stdenv,
  fetchFromGitHub,
  bash,
  autoPatchelfHook,
  coreutils,
  fetchFromGitHub,
  fontconfig,
  fpc,
  git,
  gnugrep,
  gnused,
  iproute2,
  kmod,
  lazarus-qt6,
  libGL,
  libGLU,
  lib,
  libnotify,
  libX11,
  mangohud,
  nix-update-script,
  p7zip,
  pascube,
  pciutils,
  polkit,
  procps,
  qt6Packages,
  systemd,
  util-linux,
  vulkan-tools,
  which,
  stdenv,
  wget,
}:

stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
  pname = "goverlay";
  version = "1.3-2";
  version = "1.6.1";

  src = fetchFromGitHub {
    owner = "benjamimgois";
    repo = "goverlay";
    rev = version;
    sha256 = "sha256-Vxmmsf/l3OK1Q6UKdhCWvU4WPJkdQG2Hn+s9tS+D5KM=";
    tag = finalAttrs.version;
    hash = "sha256-uJdX0Q8SO16U4AuDZWGeEFwVW0m8c4gNeAntWSWLvoU=";
  };

  outputs = [
@@ -41,67 +39,63 @@ stdenv.mkDerivation rec {
  ];

  postPatch = ''
    substituteInPlace Makefile \
      --replace-fail 'prefix = /usr/local' "prefix = $out"

    substituteInPlace overlayunit.pas \
      --replace-fail '/usr/share/icons/hicolor/128x128/apps/goverlay.png' "$out/share/icons/hicolor/128x128/apps/goverlay.png" \
      --replace-fail '/sbin/ip' "${lib.getExe' iproute2 "ip"}" \
      --replace-fail '/bin/bash' "${lib.getExe' bash "bash"}" \
      --replace-fail '/bin/uname' "${lib.getExe' coreutils "uname"}" \
      --replace-fail '/usr/bin/lspci' "${lib.getExe' pciutils "lspci"}" \
      --replace-fail "FONTFOLDER := '/usr/share/fonts/'" "FONTFOLDER := GetEnvironmentVariable('HOME') + '/.local/share/fonts/'" \
      --replace-fail "'/usr/share/fonts/'" 'FONTFOLDER'
    substituteInPlace data/goverlay.sh.in --replace-fail 'mangohud' "${lib.getExe' mangohud "mangohud"}"
  '';

  nativeBuildInputs = [
    autoPatchelfHook
    fpc
    lazarus-qt6
    qt6Packages.wrapQtAppsHook
  ];

  buildInputs = [
    libGL
    libGLU
    qt6Packages.libqtpas
    libX11
    qt6Packages.qtbase
  ];

  NIX_LDFLAGS = "-lGLU -lGL -rpath ${lib.makeLibraryPath buildInputs}";
  installPhase = ''
    runHook preInstall
    make prefix=$out install
    runHook postInstall
  '';

  buildPhase = ''
    runHook preBuild
    HOME=$(mktemp -d) lazbuild --lazarusdir=${lazarus-qt6}/share/lazarus -B goverlay.lpi
    HOME=$(mktemp -d) lazbuild --lazarusdir=${lazarus-qt6}/share/lazarus -B goverlay.lpi --bm=Release
    runHook postBuild
  '';

  qtWrapperArgs = [
    "--prefix PATH : ${
  preFixup = ''
    qtWrapperArgs+=(
      --suffix PATH : ${
        lib.makeBinPath [
        bash
          coreutils
        git
          fontconfig
          gnugrep
          gnused
          iproute2
          kmod
          libnotify
          mangohud
          p7zip
          pascube
          pciutils
          polkit
        procps
        systemd
        util-linux.bin
        vulkan-tools
        which
          wget
        ]
    }"
  ];
      })
  '';

  passthru.updateScript = nix-update-script { };

  meta = with lib; {
  meta = {
    description = "Opensource project that aims to create a Graphical UI to help manage Linux overlays";
    homepage = "https://github.com/benjamimgois/goverlay";
    license = licenses.gpl3Plus;
    maintainers = with maintainers; [ RoGreat ];
    platforms = platforms.linux;
    changelog = "https://github.com/benjamimgois/goverlay/releases/tag/${finalAttrs.version}";
    license = lib.licenses.gpl3Plus;
    maintainers = with lib.maintainers; [ RoGreat ];
    mainProgram = "goverlay";
    platforms = lib.platforms.linux;
  };
}
})
+96 −0
Original line number Diff line number Diff line
{
  autoPatchelfHook,
  copyDesktopItems,
  fetchFromGitHub,
  fpc,
  lazarus-qt6,
  lib,
  libGLU,
  makeDesktopItem,
  nix-update-script,
  qt6Packages,
  stdenv,
}:

stdenv.mkDerivation (finalAttrs: {
  pname = "pascube";
  version = "1.5.1";

  src = fetchFromGitHub {
    owner = "benjamimgois";
    repo = "pascube";
    tag = "v${finalAttrs.version}";
    hash = "sha256-djkrMgX3RTTXSLISYpBfdyCIh3/WWODxd473M53iFKE=";
  };

  nativeBuildInputs = [
    autoPatchelfHook
    copyDesktopItems
    fpc
    lazarus-qt6
    qt6Packages.wrapQtAppsHook
  ];

  buildInputs = [
    qt6Packages.libqtpas
    qt6Packages.qtbase
  ];

  runtimeDependencies = [
    libGLU
  ];

  buildPhase = ''
    runHook preBuild
    HOME=$(mktemp -d) lazbuild \
      --lazarusdir=${lazarus-qt6}/share/lazarus \
      --widgetset=qt6 \
      pascube.lpi
    runHook postBuild
  '';

  installPhase = ''
    runHook preInstall
    install -Dm755 pascube $out/bin/pascube
    for sz in 128x128 256x256 512x512; do
      install -Dm644 "data/icons/''${sz}/pascube.png" \
        "$out/share/icons/hicolor/''${sz}/apps/pascube.png"
    done
    install -Dm644 "data/skybox.png" "$out/share/pascube/skybox.png"
    runHook postInstall
  '';

  desktopItems = [
    (makeDesktopItem {
      name = "pascube";
      desktopName = "pasCube";
      comment = finalAttrs.meta.description;
      exec = finalAttrs.meta.mainProgram;
      icon = "pascube";
      terminal = false;
      categories = [
        "Graphics"
        "Education"
        "Qt"
      ];
    })
  ];

  preFixup = ''
    qtWrapperArgs+=(
      --set QT_QPA_PLATFORM xcb
    )
  '';

  passthru.updateScript = nix-update-script { };

  meta = {
    description = "Simple OpenGL spinning cube written in Pascal";
    homepage = "https://github.com/benjamimgois/pascube";
    changelog = "https://github.com/benjamimgois/pascube/releases/tag/v${finalAttrs.version}";
    license = lib.licenses.gpl2Plus;
    maintainers = with lib.maintainers; [ RoGreat ];
    mainProgram = "pascube";
    platforms = lib.platforms.linux;
  };
})