From 778a7c93b317a805665ca1fa261e9b566ea52fa4 Mon Sep 17 00:00:00 2001 From: mjallen18 Date: Thu, 20 Nov 2025 16:02:35 -0600 Subject: [PATCH] librepods rust beta --- .../matt@macbook-pro-nixos/default.nix | 2 +- packages/librepods-beta/default.nix | 85 +++++++++++++++++++ 2 files changed, 86 insertions(+), 1 deletion(-) create mode 100644 packages/librepods-beta/default.nix diff --git a/homes/aarch64-linux/matt@macbook-pro-nixos/default.nix b/homes/aarch64-linux/matt@macbook-pro-nixos/default.nix index 8a9acd3..7862964 100755 --- a/homes/aarch64-linux/matt@macbook-pro-nixos/default.nix +++ b/homes/aarch64-linux/matt@macbook-pro-nixos/default.nix @@ -139,7 +139,7 @@ in home.packages = with pkgs; [ pkgs.${namespace}.bolt-launcher - pkgs.${namespace}.librepods + pkgs.${namespace}.librepods-beta iw iwd diff --git a/packages/librepods-beta/default.nix b/packages/librepods-beta/default.nix new file mode 100644 index 0000000..dd6722c --- /dev/null +++ b/packages/librepods-beta/default.nix @@ -0,0 +1,85 @@ +{ lib +, rustPlatform +, fetchFromGitHub +, pkg-config +, makeWrapper +, dbus +, libpulseaudio +, gtk4 +, libadwaita +, glib +, bluez +, wayland +, libxkbcommon +, libGL +, vulkan-loader +, xorg +, gsettings-desktop-schemas +}: + +rustPlatform.buildRustPackage rec { + pname = "librepods"; + version = "0.1.0"; + + src = fetchFromGitHub { + owner = "kavishdevar"; + repo = "librepods"; + rev = "4737cbfc2c1a4e227e42d095c49ab43bd8d7b64a"; + hash = "sha256-5vPCtjUiFSI/Ix5dbGmR3TGQsYIwWAUHMwx8yH6HXac="; + }; + + sourceRoot = "${src.name}/linux-rust"; + + cargoHash = "sha256-Ebqx+UU2tdygvqvDGjBSxbkmPnkR47/yL3sCVWo54CU="; + + nativeBuildInputs = [ + pkg-config + makeWrapper + ]; + + buildInputs = [ + dbus + libpulseaudio + gtk4 + libadwaita + glib + bluez + wayland + libxkbcommon + libGL + vulkan-loader + xorg.libX11 + xorg.libXcursor + xorg.libXrandr + xorg.libXi + gsettings-desktop-schemas + ]; + + # Create wrapper script instead of wrapping in-place + postInstall = '' + mv $out/bin/librepods $out/bin/.librepods-unwrapped + + makeWrapper $out/bin/.librepods-unwrapped $out/bin/librepods \ + --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ + wayland + libxkbcommon + libGL + vulkan-loader + xorg.libX11 + xorg.libXcursor + xorg.libXrandr + xorg.libXi + ]}" \ + --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" \ + --set GDK_BACKEND "wayland,x11" + ''; + + meta = with lib; { + description = "Open source alternative for AirPods"; + homepage = "https://github.com/kavishdevar/librepods"; + license = licenses.gpl3; + maintainers = [ ]; + mainProgram = "librepods"; + platforms = platforms.linux; + }; +} \ No newline at end of file