{
stdenv,
lib,
fetchurl,
autoPatchelfHook,
makeShellWrapper,
wrapGAppsHook3,
alsa-lib,
at-spi2-atk,
at-spi2-core,
atk,
cairo,
cups,
dbus,
expat,
glib,
glibc,
gtk3,
libsecret,
mesa,
musl,
nss,
pango,
udev,
xdg-utils,
xorg,
}:
stdenv.mkDerivation rec {
pname = "publii";
version = "0.46.2";
src = fetchurl {
url = "https://getpublii.com/download/Publii-${version}.deb";
hash = "sha256-evNCXIhqKi23m/J3AoAW7u21neu6+hBFzAZ9MGz4YZ4=";
};
dontConfigure = true;
dontBuild = true;
dontWrapGApps = true;
nativeBuildInputs = [
autoPatchelfHook
makeShellWrapper
wrapGAppsHook3
];
buildInputs = [
alsa-lib
at-spi2-atk
at-spi2-core
atk
cairo
cups
dbus
expat
glib
glibc
gtk3
libsecret
mesa
musl
nss
pango
xorg.libX11
xorg.libxcb
unpackPhase = ''
ar p $src data.tar.xz | tar xJ
'';
installPhase = ''
runHook preInstall
mkdir -p $out/bin
mv usr/share $out
substituteInPlace $out/share/applications/Publii.desktop \
--replace-fail 'Exec=/opt/Publii/Publii' 'Exec=Publii'
mv opt $out
runHook postInstall
preFixup = ''
makeWrapper $out/opt/Publii/Publii $out/bin/Publii \
"''${gappsWrapperArgs[@]}" \
--suffix PATH : ${lib.makeBinPath [ xdg-utils ]} \
--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ udev ]}
meta = with lib; {
description = "Static Site CMS with GUI to build privacy-focused SEO-friendly website";
mainProgram = "Publii";
longDescription = ''
Creating a website doesn't have to be complicated or expensive. With Publii, the most
intuitive static site CMS, you can create a beautiful, safe, and privacy-friendly website
quickly and easily; perfect for anyone who wants a fast, secure website in a flash.
homepage = "https://getpublii.com";
changelog = "https://github.com/getpublii/publii/releases/tag/v${version}";
license = licenses.gpl3Only;
maintainers = with lib.maintainers; [
urandom
sebtm
platforms = [ "x86_64-linux" ];
}