Files
Dark Steveneq 646b892680
Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s
push sheeet
2025-10-09 14:15:47 +02:00

173 lines
3.4 KiB
Nix

{
lib,
stdenv,
fetchFromGitLab,
nix-update-script,
meson,
ninja,
pkg-config,
python3,
wayland-scanner,
wrapGAppsHook4,
libadwaita,
libhandy,
libxkbcommon,
libgudev,
callaudiod,
pulseaudio,
evince,
glib,
modemmanager,
gtk4,
gnome-bluetooth,
gnome-control-center,
gnome-desktop,
gnome-session,
gnome-shell,
gcr,
pam,
systemd,
upower,
wayland,
dbus,
xvfb-run,
phoc,
feedbackd,
networkmanager,
polkit,
libsecret,
evolution-data-server,
nixosTests,
gmobile,
appstream,
}:
let
# Derived from subprojects/libcall-ui.wrap
libcall-ui = fetchFromGitLab {
domain = "gitlab.gnome.org";
group = "World";
owner = "Phosh";
repo = "libcall-ui";
tag = "v0.1.4";
hash = "sha256-6fiqdvagcMnvaZ9UxC05haBwObcsqwgJL/V03LuSMF8=";
};
# Derived from subprojects/gvc.wrap
gvc = fetchFromGitLab {
domain = "gitlab.gnome.org";
owner = "GNOME";
repo = "libgnome-volume-control";
rev = "5f9768a2eac29c1ed56f1fbb449a77a3523683b6";
hash = "sha256-gdgTnxzH8BeYQAsvv++Yq/8wHi7ISk2LTBfU8hk12NM=";
};
in
stdenv.mkDerivation (finalAttrs: {
pname = "phosh";
version = "0.48.0";
src = fetchFromGitLab {
domain = "gitlab.gnome.org";
group = "World";
owner = "Phosh";
repo = "phosh";
tag = "v${finalAttrs.version}";
hash = "sha256-HnjR0hVjkGfoD8RYCJqpGjRhl0W+QO8tYwSo71XFL6A=";
};
nativeBuildInputs = [
libadwaita
meson
ninja
pkg-config
python3
wayland-scanner
wrapGAppsHook4
];
buildInputs = [
evince
phoc
libhandy
libsecret
libxkbcommon
libgudev
callaudiod
evolution-data-server
pulseaudio
modemmanager
gcr
networkmanager
polkit
gmobile
gnome-bluetooth
gnome-control-center
gnome-desktop
gnome-session
gtk4
pam
systemd
upower
wayland
feedbackd
appstream
];
nativeCheckInputs = [
dbus
xvfb-run
];
# Temporarily disabled - Test is broken (SIGABRT)
doCheck = false;
postPatch = ''
ln -s ${libcall-ui} subprojects/libcall-ui
ln -s ${gvc} subprojects/gvc
'';
mesonFlags = [
"-Dcompositor=${phoc}/bin/phoc"
# Save some time building if tests are disabled
"-Dtests=${lib.boolToString finalAttrs.finalPackage.doCheck}"
"-Dc_args=-I${glib.dev}/include/gio-unix-2.0/"
];
checkPhase = ''
runHook preCheck
export NO_AT_BRIDGE=1
xvfb-run -s '-screen 0 800x600x24' dbus-run-session \
--config-file=${dbus}/share/dbus-1/session.conf \
meson test --print-errorlogs
runHook postCheck
'';
# Depends on GSettings schemas in gnome-shell
preFixup = ''
gappsWrapperArgs+=(
--prefix XDG_DATA_DIRS : "${glib.getSchemaDataDirPath gnome-shell}"
--set GNOME_SESSION "${gnome-session}/bin/gnome-session"
)
'';
passthru = {
providedSessions = [ "phosh" ];
tests.phosh = nixosTests.phosh;
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Pure Wayland shell prototype for GNOME on mobile devices";
homepage = "https://gitlab.gnome.org/World/Phosh/phosh";
changelog = "https://gitlab.gnome.org/World/Phosh/phosh/-/blob/v${finalAttrs.version}/debian/changelog";
license = licenses.gpl3Plus;
maintainers = with maintainers; [
masipcat
zhaofengli
armelclo
];
platforms = platforms.linux;
mainProgram = "phosh-session";
};
})