push sheeet
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

This commit is contained in:
Dark Steveneq
2025-10-09 14:15:47 +02:00
commit 646b892680
49168 changed files with 5897842 additions and 0 deletions

View File

@@ -0,0 +1,12 @@
diff --git a/paperwork-backend/tests/docimport/tests_converted.py b/paperwork-backend/tests/docimport/tests_converted.py
index 1d1ae39b..bda63fce 100644
--- a/paperwork-backend/tests/docimport/tests_converted.py
+++ b/paperwork-backend/tests/docimport/tests_converted.py
@@ -102,6 +102,7 @@ class TestConvertedImport(unittest.TestCase):
)
)
+ @unittest.skip("flaky test: https://gitlab.gnome.org/World/OpenPaperwork/paperwork/-/issues/1035#note_1493700")
def test_import_duplicated_docx(self):
with tempfile.TemporaryDirectory() as tmp_dir:
self.config.settings = {

View File

@@ -0,0 +1,64 @@
{
buildPythonPackage,
lib,
callPackage,
isPy3k,
isPyPy,
distro,
setuptools,
psutil,
certifi,
setuptools-scm,
pkgs,
}:
buildPythonPackage rec {
pname = "openpaperwork-core";
inherit (callPackage ./src.nix { }) version src;
format = "pyproject";
sourceRoot = "${src.name}/openpaperwork-core";
# Python 2.x is not supported.
disabled = !isPy3k && !isPyPy;
patchPhase = ''
chmod a+w -R ..
patchShebangs ../tools
'';
propagatedBuildInputs = [
distro
setuptools
psutil
certifi
];
nativeBuildInputs = [
pkgs.gettext
pkgs.which
setuptools-scm
];
preBuild = ''
make l10n_compile
'';
preCheck = ''
export HOME=$(mktemp -d)
'';
meta = {
description = "Backend part of Paperwork (Python API, no UI)";
homepage = "https://openpaper.work/";
license = lib.licenses.gpl3Plus;
maintainers = with lib.maintainers; [
aszlig
symphorien
];
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,64 @@
{
buildPythonPackage,
lib,
callPackage,
isPy3k,
isPyPy,
openpaperwork-core,
pillow,
pygobject3,
distro,
setuptools-scm,
pkgs,
}:
buildPythonPackage rec {
pname = "openpaperwork-gtk";
inherit (callPackage ./src.nix { }) version src;
format = "pyproject";
sourceRoot = "${src.name}/openpaperwork-gtk";
# Python 2.x is not supported.
disabled = !isPy3k && !isPyPy;
patchPhase = ''
chmod a+w -R ..
patchShebangs ../tools
'';
nativeBuildInputs = [
pkgs.gettext
pkgs.which
setuptools-scm
];
preBuild = ''
make l10n_compile
'';
propagatedBuildInputs = [
pillow
pygobject3
pkgs.poppler_gi
pkgs.gtk3
pkgs.libhandy
distro
pkgs.pango
openpaperwork-core
];
meta = {
description = "Reusable GTK components of Paperwork";
homepage = "https://openpaper.work/";
license = lib.licenses.gpl3Plus;
maintainers = with lib.maintainers; [
aszlig
symphorien
];
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,96 @@
{
buildPythonPackage,
lib,
callPackage,
pyenchant,
scikit-learn,
pypillowfight,
pycountry,
whoosh,
termcolor,
pygobject3,
pyocr,
natsort,
libinsane,
distro,
openpaperwork-core,
openpaperwork-gtk,
psutil,
gtk3,
poppler_gi,
gettext,
which,
shared-mime-info,
libreoffice,
unittestCheckHook,
setuptools-scm,
}:
buildPythonPackage rec {
pname = "paperwork-backend";
inherit (callPackage ./src.nix { }) version src;
format = "pyproject";
sourceRoot = "${src.name}/paperwork-backend";
patches = [
# disables a flaky test https://gitlab.gnome.org/World/OpenPaperwork/paperwork/-/issues/1035#note_1493700
./flaky_test.patch
];
patchFlags = [ "-p2" ];
postPatch = ''
chmod a+w -R ..
patchShebangs ../tools
'';
propagatedBuildInputs = [
distro
gtk3
libinsane
natsort
openpaperwork-core
pyenchant
pycountry
pygobject3
pyocr
pypillowfight
poppler_gi
scikit-learn
termcolor
whoosh
];
nativeBuildInputs = [
gettext
shared-mime-info
which
setuptools-scm
];
preBuild = ''
make l10n_compile
'';
nativeCheckInputs = [
libreoffice
openpaperwork-gtk
psutil
unittestCheckHook
];
preCheck = ''
export HOME=$TMPDIR
'';
meta = with lib; {
description = "Backend part of Paperwork (Python API, no UI)";
homepage = "https://openpaper.work";
license = licenses.gpl3Plus;
maintainers = with maintainers; [
aszlig
symphorien
];
};
}

View File

@@ -0,0 +1,162 @@
{
lib,
callPackage,
python3Packages,
gtk3,
cairo,
adwaita-icon-theme,
librsvg,
xvfb-run,
dbus,
libnotify,
wrapGAppsHook3,
which,
gettext,
gobject-introspection,
gdk-pixbuf,
texliveSmall,
imagemagick,
perlPackages,
writeScript,
}:
let
documentation_deps = [
(texliveSmall.withPackages (
ps: with ps; [
wrapfig
gensymb
]
))
xvfb-run
imagemagick
perlPackages.Po4a
];
inherit (callPackage ./src.nix { }) version src sample_documents;
in
python3Packages.buildPythonApplication rec {
inherit src version;
pname = "paperwork";
format = "pyproject";
sample_docs = sample_documents // {
# a trick for the update script
name = "sample_documents";
src = sample_documents;
};
sourceRoot = "${src.name}/paperwork-gtk";
postPatch = ''
chmod a+w -R ..
patchShebangs ../tools
export HOME=$(mktemp -d)
'';
preBuild = ''
make l10n_compile
'';
postInstall = ''
# paperwork-shell needs to be re-wrapped with access to paperwork
for exe in paperwork-cli paperwork-json; do
cp ${python3Packages.paperwork-shell}/bin/.$exe-wrapped $out/bin/$exe
done
# install desktop files and icons
XDG_DATA_HOME=$out/share $out/bin/paperwork-gtk install --user
# fixes [WARNING] [openpaperwork_core.resources.setuptools] Failed to find
# resource file paperwork_gtk.icon.out/paperwork_128.png, tried at path
# /nix/store/3n5lz6y8k9yks76f0nar3smc8djan3xr-paperwork-2.0.2/lib/python3.8/site-packages/paperwork_gtk/icon/out/paperwork_128.png.
site=$out/${python3Packages.python.sitePackages}/paperwork_gtk
for i in $site/data/paperwork_*.png; do
ln -s $i $site/icon/out;
done
export XDG_DATA_DIRS=$XDG_DATA_DIRS:${adwaita-icon-theme}/share
# build the user manual
PATH=$out/bin:$PATH PAPERWORK_TEST_DOCUMENTS=${sample_docs} make data
for i in src/paperwork_gtk/model/help/out/*.pdf; do
install -Dt $site/model/help/out $i
done
'';
nativeCheckInputs = [ dbus ];
nativeBuildInputs = [
wrapGAppsHook3
gobject-introspection
python3Packages.setuptools-scm
(lib.getBin gettext)
which
gdk-pixbuf # for the setup hook
]
++ documentation_deps;
buildInputs = [
adwaita-icon-theme
libnotify
librsvg
gtk3
cairo
];
dontWrapGApps = true;
preFixup = ''
makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
'';
checkPhase = ''
runHook preCheck
# A few parts of chkdeps need to have a display and a dbus session, so we not
# only need to run a virtual X server + dbus but also have a large enough
# resolution, because the Cairo test tries to draw a 200x200 window.
xvfb-run -s '-screen 0 800x600x24' dbus-run-session \
--config-file=${dbus}/share/dbus-1/session.conf \
$out/bin/paperwork-gtk chkdeps
$out/bin/paperwork-cli chkdeps
$out/bin/paperwork-json chkdeps
# content of make test, without the dep on make install
python -m unittest discover --verbose -s tests
runHook postCheck
'';
propagatedBuildInputs = with python3Packages; [
paperwork-backend
paperwork-shell
openpaperwork-gtk
openpaperwork-core
pypillowfight
pyxdg
setuptools
];
disallowedRequisites = documentation_deps;
passthru.updateScript = writeScript "update.sh" ''
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl common-updater-scripts
version=$(list-git-tags | sed 's/^v//' | sort -V | tail -n1)
update-source-version paperwork "$version" --file=pkgs/applications/office/paperwork/src.nix
docs_version="$(curl https://gitlab.gnome.org/World/OpenPaperwork/paperwork/-/raw/$version/paperwork-gtk/src/paperwork_gtk/model/help/screenshot.sh | grep TEST_DOCS_TAG= | cut -d'"' -f2)"
update-source-version paperwork.sample_docs "$docs_version" --file=pkgs/applications/office/paperwork/src.nix --version-key=rev
'';
meta = {
description = "Personal document manager for scanned documents";
homepage = "https://openpaper.work/";
license = lib.licenses.gpl3Plus;
maintainers = with lib.maintainers; [
aszlig
symphorien
];
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,74 @@
{
buildPythonPackage,
lib,
callPackage,
isPy3k,
isPyPy,
openpaperwork-core,
openpaperwork-gtk,
paperwork-backend,
fabulous,
rich,
getkey,
psutil,
shared-mime-info,
setuptools-scm,
pkgs,
}:
buildPythonPackage rec {
pname = "paperwork-shell";
inherit (callPackage ./src.nix { }) version src;
format = "pyproject";
sourceRoot = "${src.name}/paperwork-shell";
# Python 2.x is not supported.
disabled = !isPy3k && !isPyPy;
patchPhase = ''
chmod a+w -R ..
patchShebangs ../tools
'';
propagatedBuildInputs = [
openpaperwork-core
paperwork-backend
fabulous
getkey
psutil
rich
];
nativeCheckInputs = [
shared-mime-info
openpaperwork-gtk
];
nativeBuildInputs = [
pkgs.gettext
pkgs.which
setuptools-scm
];
preBuild = ''
make l10n_compile
'';
preCheck = ''
export HOME=$(mktemp -d)
"$out/bin/paperwork-cli" chkdeps
'';
meta = {
description = "CLI for Paperwork";
homepage = "https://openpaper.work/";
license = lib.licenses.gpl3Plus;
maintainers = with lib.maintainers; [
aszlig
symphorien
];
};
}

View File

@@ -0,0 +1,43 @@
{
fetchFromGitLab,
srcOnly,
fetchpatch,
stdenv,
}:
rec {
version = "2.2.5";
src = srcOnly {
pname = "paperwork-patched-src";
inherit version stdenv;
src = fetchFromGitLab {
domain = "gitlab.gnome.org";
repo = "paperwork";
group = "World";
owner = "OpenPaperwork";
rev = version;
sha256 = "sha256-PRh0ohmPLwpM76qYfbExFqq4OK6Hm0fbdzrjXungSoY=";
};
patches = [
# fix installing translations
# remove on next release
(
assert version == "2.2.5";
fetchpatch {
url = "https://gitlab.gnome.org/World/OpenPaperwork/paperwork/-/commit/b8e2633ace0f3d9d57e68c27db8f594b8a5ddd7e.patch";
hash = "sha256-VUT86kF0ZHLGK457ZrrIBMeiZqg/rPRpbkBA/ua9rU8=";
}
)
];
};
sample_documents = fetchFromGitLab {
domain = "gitlab.gnome.org";
repo = "paperwork-test-documents";
group = "World";
owner = "OpenPaperwork";
# https://gitlab.gnome.org/World/OpenPaperwork/paperwork/-/blob/master/paperwork-gtk/src/paperwork_gtk/model/help/screenshot.sh see TEST_DOCS_TAG
rev = "2.1";
sha256 = "0m79fgc1ycsj0q0alqgr0axn16klz1sfs2km1h83zn3kysqcs6xr";
};
}