From 0ffe0b6894ef3621ad0b345b5996509c4c95d919 Mon Sep 17 00:00:00 2001 From: Mustafa Çalışkan Date: Fri, 27 May 2022 22:34:44 +0300 Subject: nix: move files to nix/ --- flake.nix | 2 +- nix/NIX.md | 31 +++++++++++++++ nix/default.nix | 85 +++++++++++++++++++++++++++++++++++++++++ nix/flake-compat.nix | 9 +++++ packages/nix/NIX.md | 31 --------------- packages/nix/flake-compat.nix | 9 ----- packages/nix/polymc/default.nix | 85 ----------------------------------------- 7 files changed, 126 insertions(+), 126 deletions(-) create mode 100644 nix/NIX.md create mode 100644 nix/default.nix create mode 100644 nix/flake-compat.nix delete mode 100644 packages/nix/NIX.md delete mode 100644 packages/nix/flake-compat.nix delete mode 100644 packages/nix/polymc/default.nix diff --git a/flake.nix b/flake.nix index b1e81057..afc85336 100644 --- a/flake.nix +++ b/flake.nix @@ -22,7 +22,7 @@ pkgs = forAllSystems (system: nixpkgs.legacyPackages.${system}); in { - packages = forAllSystems (system: { polymc = pkgs.${system}.libsForQt5.callPackage ./packages/nix/polymc { inherit version self libnbtplusplus; }; }); + packages = forAllSystems (system: { polymc = pkgs.${system}.libsForQt5.callPackage ./nix { inherit version self libnbtplusplus; }; }); defaultPackage = forAllSystems (system: self.packages.${system}.polymc); apps = forAllSystems (system: { polymc = { type = "app"; program = "${self.defaultPackage.${system}}/bin/polymc"; }; }); diff --git a/nix/NIX.md b/nix/NIX.md new file mode 100644 index 00000000..1ceba9a3 --- /dev/null +++ b/nix/NIX.md @@ -0,0 +1,31 @@ +# How to import + +To import with flakes use +```nix +inputs = { + polymc.url = "github:PolyMC/PolyMC"; +}; + +... + +nixpkgs.overlays = [ inputs.polymc.overlay ]; ## Within configuration.nix +environment.systemPackages = with pkgs; [ polymc ]; ## +``` + +To import without flakes use channels: + +``` +nix-channel --add https://github.com/PolyMC/PolyMC/archive/master.tar.gz polymc +nix-channel --update polymc +nix-env -iA polymc +``` + +or alternatively you can use + +``` +nixpkgs.overlays = [ + (import (builtins.fetchTarball "https://github.com/PolyMC/PolyMC/archive/develop.tar.gz")).overlay +]; + +environment.systemPackages = with pkgs; [ polymc ]; +``` diff --git a/nix/default.nix b/nix/default.nix new file mode 100644 index 00000000..e347db6d --- /dev/null +++ b/nix/default.nix @@ -0,0 +1,85 @@ +{ lib +, mkDerivation +, fetchFromGitHub +, cmake +, ninja +, jdk8 +, jdk +, zlib +, file +, makeWrapper +, xorg +, libpulseaudio +, qtbase +, quazip +, libGL +, msaClientID ? "" + + # flake +, self +, version +, libnbtplusplus +}: + +let + # Libraries required to run Minecraft + libpath = with xorg; lib.makeLibraryPath [ + libX11 + libXext + libXcursor + libXrandr + libXxf86vm + libpulseaudio + libGL + ]; + + # This variable will be passed to Minecraft by PolyMC + gameLibraryPath = libpath + ":/run/opengl-driver/lib"; +in + +mkDerivation rec { + pname = "polymc"; + inherit version; + + src = lib.cleanSource self; + + nativeBuildInputs = [ cmake ninja jdk file makeWrapper ]; + buildInputs = [ qtbase quazip zlib ]; + + dontWrapQtApps = true; + + postUnpack = '' + # Copy libnbtplusplus + rm -rf source/libraries/libnbtplusplus + mkdir source/libraries/libnbtplusplus + cp -a ${libnbtplusplus}/* source/libraries/libnbtplusplus + chmod a+r+w source/libraries/libnbtplusplus/* + ''; + + cmakeFlags = [ + "-GNinja" + "-DLauncher_PORTABLE=OFF" + ] ++ lib.optionals (msaClientID != "") [ "-DLauncher_MSA_CLIENT_ID=${msaClientID}" ]; + + postInstall = '' + # xorg.xrandr needed for LWJGL [2.9.2, 3) https://github.com/LWJGL/lwjgl/issues/128 + wrapProgram $out/bin/polymc \ + "''${qtWrapperArgs[@]}" \ + --set GAME_LIBRARY_PATH ${gameLibraryPath} \ + --prefix POLYMC_JAVA_PATHS : ${jdk}/lib/openjdk/bin/java:${jdk8}/lib/openjdk/bin/java \ + --prefix PATH : ${lib.makeBinPath [ xorg.xrandr ]} + ''; + + meta = with lib; { + homepage = "https://polymc.org/"; + description = "A free, open source launcher for Minecraft"; + longDescription = '' + Allows you to have multiple, separate instances of Minecraft (each with + their own mods, texture packs, saves, etc) and helps you manage them and + their associated options with a simple interface. + ''; + platforms = platforms.unix; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ starcraft66 kloenk ]; + }; +} diff --git a/nix/flake-compat.nix b/nix/flake-compat.nix new file mode 100644 index 00000000..bb7ee13e --- /dev/null +++ b/nix/flake-compat.nix @@ -0,0 +1,9 @@ +let + lock = builtins.fromJSON (builtins.readFile ../../flake.lock); + inherit (lock.nodes.flake-compat.locked) rev narHash; + flake-compat = fetchTarball { + url = "https://github.com/edolstra/flake-compat/archive/${rev}.tar.gz"; + sha256 = narHash; + }; +in +import flake-compat { src = ../..; } diff --git a/packages/nix/NIX.md b/packages/nix/NIX.md deleted file mode 100644 index 1ceba9a3..00000000 --- a/packages/nix/NIX.md +++ /dev/null @@ -1,31 +0,0 @@ -# How to import - -To import with flakes use -```nix -inputs = { - polymc.url = "github:PolyMC/PolyMC"; -}; - -... - -nixpkgs.overlays = [ inputs.polymc.overlay ]; ## Within configuration.nix -environment.systemPackages = with pkgs; [ polymc ]; ## -``` - -To import without flakes use channels: - -``` -nix-channel --add https://github.com/PolyMC/PolyMC/archive/master.tar.gz polymc -nix-channel --update polymc -nix-env -iA polymc -``` - -or alternatively you can use - -``` -nixpkgs.overlays = [ - (import (builtins.fetchTarball "https://github.com/PolyMC/PolyMC/archive/develop.tar.gz")).overlay -]; - -environment.systemPackages = with pkgs; [ polymc ]; -``` diff --git a/packages/nix/flake-compat.nix b/packages/nix/flake-compat.nix deleted file mode 100644 index bb7ee13e..00000000 --- a/packages/nix/flake-compat.nix +++ /dev/null @@ -1,9 +0,0 @@ -let - lock = builtins.fromJSON (builtins.readFile ../../flake.lock); - inherit (lock.nodes.flake-compat.locked) rev narHash; - flake-compat = fetchTarball { - url = "https://github.com/edolstra/flake-compat/archive/${rev}.tar.gz"; - sha256 = narHash; - }; -in -import flake-compat { src = ../..; } diff --git a/packages/nix/polymc/default.nix b/packages/nix/polymc/default.nix deleted file mode 100644 index e347db6d..00000000 --- a/packages/nix/polymc/default.nix +++ /dev/null @@ -1,85 +0,0 @@ -{ lib -, mkDerivation -, fetchFromGitHub -, cmake -, ninja -, jdk8 -, jdk -, zlib -, file -, makeWrapper -, xorg -, libpulseaudio -, qtbase -, quazip -, libGL -, msaClientID ? "" - - # flake -, self -, version -, libnbtplusplus -}: - -let - # Libraries required to run Minecraft - libpath = with xorg; lib.makeLibraryPath [ - libX11 - libXext - libXcursor - libXrandr - libXxf86vm - libpulseaudio - libGL - ]; - - # This variable will be passed to Minecraft by PolyMC - gameLibraryPath = libpath + ":/run/opengl-driver/lib"; -in - -mkDerivation rec { - pname = "polymc"; - inherit version; - - src = lib.cleanSource self; - - nativeBuildInputs = [ cmake ninja jdk file makeWrapper ]; - buildInputs = [ qtbase quazip zlib ]; - - dontWrapQtApps = true; - - postUnpack = '' - # Copy libnbtplusplus - rm -rf source/libraries/libnbtplusplus - mkdir source/libraries/libnbtplusplus - cp -a ${libnbtplusplus}/* source/libraries/libnbtplusplus - chmod a+r+w source/libraries/libnbtplusplus/* - ''; - - cmakeFlags = [ - "-GNinja" - "-DLauncher_PORTABLE=OFF" - ] ++ lib.optionals (msaClientID != "") [ "-DLauncher_MSA_CLIENT_ID=${msaClientID}" ]; - - postInstall = '' - # xorg.xrandr needed for LWJGL [2.9.2, 3) https://github.com/LWJGL/lwjgl/issues/128 - wrapProgram $out/bin/polymc \ - "''${qtWrapperArgs[@]}" \ - --set GAME_LIBRARY_PATH ${gameLibraryPath} \ - --prefix POLYMC_JAVA_PATHS : ${jdk}/lib/openjdk/bin/java:${jdk8}/lib/openjdk/bin/java \ - --prefix PATH : ${lib.makeBinPath [ xorg.xrandr ]} - ''; - - meta = with lib; { - homepage = "https://polymc.org/"; - description = "A free, open source launcher for Minecraft"; - longDescription = '' - Allows you to have multiple, separate instances of Minecraft (each with - their own mods, texture packs, saves, etc) and helps you manage them and - their associated options with a simple interface. - ''; - platforms = platforms.unix; - license = licenses.gpl3Plus; - maintainers = with maintainers; [ starcraft66 kloenk ]; - }; -} -- cgit