Skip to content

Commit

Permalink
bs-manager: init at 1.5.0-alpha.8
Browse files Browse the repository at this point in the history
  • Loading branch information
Mistyttm committed Jan 14, 2025
1 parent cfc9936 commit c020154
Showing 1 changed file with 173 additions and 0 deletions.
173 changes: 173 additions & 0 deletions pkgs/by-name/bs/bs-manager/package.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,173 @@
{
alsa-lib,
autoPatchelfHook,
atk,
bash,
cairo,
cups,
dbus,
dpkg,
fetchurl,
ffmpeg,
glib,
glibc,
gtk3,
lib,
libappindicator-gtk3,
libdrm,
libxkbfile,
libxkbcommon,
makeWrapper,
mesa,
nss,
nspr,
nix-update-script,
pango,
pkgs,
python3,
opencomposite,
stdenv,
systemd,
vulkan-loader,
xorg,
depotdownloader,
openssl,
wrapGAppsHook3,
}:
let
version = "1.5.0-alpha.8";

src =
if stdenv.hostPlatform.system == "x86_64-linux" then
fetchurl {
url = "https://github.com/Zagrios/bs-manager/releases/download/v1.5.0-alpha.8/bs-manager_1.5.0-alpha.8_amd64.deb";
hash = "sha256-xQ3ha6J1wqzZj25QwlMX2lwDDNXlzVvpUqXkaH9kCbE=";
}
else
throw "BSManager is not available for your platform";

rpath = lib.makeLibraryPath [
alsa-lib
atk
cairo
cups
dbus
ffmpeg
glib
glibc
gtk3
libappindicator-gtk3
libdrm
libxkbcommon
libxkbfile
mesa
nspr
nss
pango
stdenv.cc.cc
vulkan-loader
xorg.libX11
xorg.libXcomposite
xorg.libXcursor
xorg.libXdamage
xorg.libXext
xorg.libXfixes
xorg.libXi
xorg.libXrandr
xorg.libXrender
xorg.libXScrnSaver
xorg.libXtst
xorg.libxcb
xorg.libxkbfile
];
in
stdenv.mkDerivation {
pname = "bs-manager";
inherit version;

system = "x86_64-linux";

inherit src;

runtimeDependencies = [
bash
opencomposite
python3
systemd
depotdownloader
openssl
];

nativeBuildInputs = [
autoPatchelfHook
ffmpeg
gtk3
mesa
nspr
nss
makeWrapper
openssl.dev
wrapGAppsHook3
];

buildInputs = [
dpkg
ffmpeg
openssl.dev
];

dontUnpack = true;

installPhase = ''
runHook preInstall
mkdir -p $out
dpkg -x $src $out
cp -av $out/usr/* $out
rm -rf $out/usr
# Otherwise it looks "suspicious"
chmod -R g-w $out
export FONTCONFIG_FILE=${pkgs.makeFontsConf { fontDirectories = [ ]; }}
patchelf --set-rpath $out/opt/BSManager $out/opt/BSManager/bs-manager
for file in $(find $out -type f \( -perm /0111 -o -name \*.so\* \)); do
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$file" || true
patchelf --set-rpath ${rpath} "$file" || true
done
mkdir -p $out/bin
ln -s $out/opt/BSManager/bs-manager $out/bin/bs-manager
runHook postInstall
'';

postInstall = ''
# Create a wrapper script to use the correct LD_LIBRARY_PATH
mv $out/opt/BSManager/resources/assets/scripts/DepotDownloader $out/opt/BSManager/resources/assets/scripts/DepotDownload
makeWrapper \
"$out/opt/BSManager/resources/assets/scripts/DepotDownload" \
"$out/opt/BSManager/resources/assets/scripts/DepotDownloader" \
--set LD_LIBRARY_PATH "${openssl.out}/lib:$LD_LIBRARY_PATH"
chmod +x $out/opt/BSManager/resources/assets/scripts/DepotDownloader
# Update the desktop file
substituteInPlace $out/share/applications/bs-manager.desktop \
--replace-fail /opt/BSManager/bs-manager bs-manager
'';

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

meta = {
changelog = "https://github.com/Zagrios/bs-manager/blob/master/CHANGELOG.md";
description = "BSManager: Your Beat Saber Assistant";
homepage = "https://github.com/Zagrios/bs-manager";
license = lib.licenses.gpl3Only;
mainProgram = "bs-manager";
maintainers = with lib.maintainers; [ mistyttm ];
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
};
}

0 comments on commit c020154

Please sign in to comment.