From 72be45b1bd45cc2bf4c56518e12f148f8bc24f86 Mon Sep 17 00:00:00 2001 From: Emily Date: Mon, 29 Jul 2024 13:44:41 +0100 Subject: [PATCH 1/3] openlp: drop MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This was a major version behind and using outdated or insecure packages like sqlalchemy-migrate and Qt WebKit. It hadn’t seen any attention since it was added in 2020. If anyone wants to step up to update it to the latest version and maintain it, that would be great! --- pkgs/applications/misc/openlp/default.nix | 87 ------------------ pkgs/applications/misc/openlp/lib.nix | 103 ---------------------- pkgs/top-level/aliases.nix | 1 + pkgs/top-level/all-packages.nix | 8 -- 4 files changed, 1 insertion(+), 198 deletions(-) delete mode 100644 pkgs/applications/misc/openlp/default.nix delete mode 100644 pkgs/applications/misc/openlp/lib.nix diff --git a/pkgs/applications/misc/openlp/default.nix b/pkgs/applications/misc/openlp/default.nix deleted file mode 100644 index c77b494f08ca..000000000000 --- a/pkgs/applications/misc/openlp/default.nix +++ /dev/null @@ -1,87 +0,0 @@ -# This file contains all runtime glue: Bindings to optional runtime dependencies -# for pdfSupport, presentationSupport, and media playback. -{ lib, mkDerivation, wrapGAppsHook3, python3Packages - -# qt deps -, qtbase, qtmultimedia - -# optional deps -, pdfSupport ? false, mupdf # alternatively could use ghostscript -, presentationSupport ? false, libreoffice-unwrapped -, vlcSupport ? false -, gstreamerSupport ? false, gst_all_1, gstPlugins ? (gst: [ - gst.gst-plugins-base - gst.gst-plugins-good - gst.gst-plugins-bad - gst.gst-plugins-ugly - ]) - -#, enableMySql ? false # Untested. If interested, contact maintainer. -#, enablePostgreSql ? false # Untested. If interested, contact maintainer. -#, enableJenkinsApi ? false # Untested. If interested, contact maintainer. -}: - -let p = gstPlugins gst_all_1; -# If gstreamer is activated but no plugins are given, it will at runtime -# create the false illusion of being usable. -in assert gstreamerSupport -> (builtins.isList p && builtins.length p > 0); - -let - # optional packages - libreofficePath = "${libreoffice-unwrapped}/lib/libreoffice/program"; - - # lib functions - inherit (lib.lists) optional optionals; - wrapSetVar = var: ''--set ${var} "''$${var}"''; - - # base pkg/lib - baseLib = python3Packages.callPackage ./lib.nix { }; -in mkDerivation { - pname = baseLib.pname + lib.optionalString (pdfSupport && presentationSupport && vlcSupport && gstreamerSupport) "-full"; - inherit (baseLib) version src; - - nativeBuildInputs = [ python3Packages.wrapPython wrapGAppsHook3 ]; - buildInputs = [ qtbase ] ++ optionals gstreamerSupport - ([ qtmultimedia.bin gst_all_1.gstreamer ] ++ gstPlugins gst_all_1); - propagatedBuildInputs = optional pdfSupport mupdf - ++ optional presentationSupport libreoffice-unwrapped; - pythonPath = [ baseLib ] ++ optional vlcSupport python3Packages.python-vlc; - # ++ optional enableMySql mysql-connector # Untested. If interested, contact maintainer. - # ++ optional enablePostgreSql psycopg2 # Untested. If interested, contact maintainer. - # ++ optional enableJenkinsApi jenkinsapi # Untested. If interested, contact maintainer. - - PYTHONPATH = libreofficePath; - URE_BOOTSTRAP = "vnd.sun.star.pathname:${libreofficePath}/fundamentalrc"; - UNO_PATH = libreofficePath; - LD_LIBRARY_PATH = libreofficePath; - JAVA_HOME = "${libreoffice-unwrapped.jdk.home}"; - - dontWrapQtApps = true; - dontWrapGApps = true; - - # defined in gappsWrapperHook - wrapPrefixVariables = optionals presentationSupport - [ "PYTHONPATH" "LD_LIBRARY_PATH" "JAVA_HOME" ]; - makeWrapperArgs = [ - "\${gappsWrapperArgs[@]}" - "\${qtWrapperArgs[@]}" - ] ++ optionals presentationSupport - ([ "--prefix PATH : ${libreoffice-unwrapped}/bin" ] - ++ map wrapSetVar [ "URE_BOOTSTRAP" "UNO_PATH" ]); - - installPhase = '' - install -D openlp.py $out/bin/openlp - ''; - - preFixup = '' - wrapPythonPrograms - ''; - - meta = baseLib.meta // { - hydraPlatforms = [ ]; # this is only the wrapper; baseLib gets built - }; - - passthru = { - inherit baseLib; - }; -} diff --git a/pkgs/applications/misc/openlp/lib.nix b/pkgs/applications/misc/openlp/lib.nix deleted file mode 100644 index ea22f54ac022..000000000000 --- a/pkgs/applications/misc/openlp/lib.nix +++ /dev/null @@ -1,103 +0,0 @@ -# This file contains the base package, some of which is compiled. -# Runtime glue to optinal runtime dependencies is in 'default.nix'. -{ fetchurl, lib, qt5 - -# python deps -, python, buildPythonPackage -, alembic, beautifulsoup4, chardet, lxml, mako, pyenchant -, pyqt5-webkit, pyxdg, sip4, sqlalchemy, sqlalchemy-migrate -}: - -buildPythonPackage rec { - pname = "openlp"; - version = "2.4.6"; - - src = fetchurl { - url = "https://get.openlp.org/${version}/OpenLP-${version}.tar.gz"; - sha256 = "f63dcf5f1f8a8199bf55e806b44066ad920d26c9cf67ae432eb8cdd1e761fc30"; - }; - - doCheck = false; - # FIXME: checks must be disabled because they are lacking the qt env. - # They fail like this, even if built and wrapped with all Qt and - # runtime dependencies: - # - # running install tests - # qt.qpa.plugin: Could not find the Qt platform plugin "xcb" in "" - # This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem. - # - # Available platform plugins are: wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx. - # - # See also https://discourse.nixos.org/t/qt-plugin-path-unset-in-test-phase/ - - #nativeCheckInputs = [ mock nose ]; - nativeBuildInputs = [ qt5.qttools ]; - propagatedBuildInputs = [ - alembic - beautifulsoup4 - chardet - lxml - mako - pyenchant - pyqt5-webkit - pyxdg - sip4 - sqlalchemy - sqlalchemy-migrate - ]; - - prePatch = '' - echo 'from vlc import *' > openlp/core/ui/media/vendor/vlc.py - ''; - - dontWrapQtApps = true; - dontWrapGApps = true; - postInstall = '' - ( # use subshell because of cd - tdestdir="$out/i18n" - mkdir -p "$tdestdir" - cd ./resources/i18n - for file in *.ts; do - lconvert -i "$file" -o "$tdestdir/''${file%%ts}qm" - done - ) - ''; - - preFixup = '' - rm -r $out/${python.sitePackages}/tests - rm -r $out/bin - ''; - - meta = with lib; { - description = "Free church presentation software"; - homepage = "https://openlp.org/"; - downloadPage = "https://openlp.org/#downloads"; - platforms = platforms.unix; - license = licenses.gpl2Only; - maintainers = [ maintainers.jorsn ]; - - longDescription = '' - OpenLP is a free church presentation software. - - Features: - - * Cross platform between Linux, Windows, OS X and FreeBSD - * Display songs, Bible verses, presentations, images, audio and video - * Control OpenLP remotely via the Android remote, iOS remote or mobile web browser - * Quickly and easily import songs from other popular presentation packages - * Easy enough to use to get up and running in less than 10 minutes - - Remark: This pkg only supports sqlite dbs. If you wish to have support for - mysql or postgresql dbs, or Jenkins, please contact the maintainer. - - Bugs which affect this software packaged in Nixpkgs: - - 1. The package must disable checks, because they are lacking the qt env. - (see pkg source and https://discourse.nixos.org/t/qt-plugin-path-unset-in-test-phase/) - 2. There is a segfault on exit. Not a real problem, according to debug log, everything - shuts down correctly. Maybe related to https://forums.openlp.org/discussion/3620/crash-on-exit. - Plan: Wait for OpenLP-3, since it is already in beta 1 - (2021-02-09; news: https://openlp.org/blog/). - ''; - }; -} diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index 35d8138fdfa4..1e6c99e7c13a 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -1071,6 +1071,7 @@ mapAliases ({ openimageio_1 = throw "'openimageio_1' has been removed, please update to 'openimageio' 2"; # Added 2023-06-14 openisns = open-isns; # Added 2020-01-28 openjpeg_2 = openjpeg; # Added 2021-01-25 + openlp = throw "openlp has been removed for now because the outdated version depended on insecure and removed packages and it needs help to upgrade and maintain it; see https://github.com/NixOS/nixpkgs/pull/314882"; # Added 2024-07-29 openmpt123 = libopenmpt; # Added 2021-09-05 openssl_3_0 = openssl_3; # Added 2022-06-27 openvpn_24 = throw "openvpn_24 has been removed, because it went EOL. 2.5.x or newer is still available"; # Added 2023-01-23 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 94c74d914ebd..09522213bc1b 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -37099,14 +37099,6 @@ with pkgs; octopus = callPackage ../applications/science/chemistry/octopus { }; - openlp = libsForQt5.callPackage ../applications/misc/openlp { }; - openlpFull = openlp.override { - pdfSupport = true; - presentationSupport = true; - vlcSupport = true; - gstreamerSupport = true; - }; - autodock-vina = callPackage ../applications/science/chemistry/autodock-vina { }; dkh = callPackage ../applications/science/chemistry/dkh { }; From 3e31525d6ebc24a0730821ce56ed897048883a2f Mon Sep 17 00:00:00 2001 From: Emily Date: Mon, 29 Jul 2024 13:46:53 +0100 Subject: [PATCH 2/3] python3Packages.sqlalchemy-migrate: drop --- .../sqlalchemy-migrate/default.nix | 83 ------------------- .../sqlalchemy-migrate/python3.11-comp.diff | 13 --- pkgs/top-level/python-aliases.nix | 1 + pkgs/top-level/python-packages.nix | 2 - 4 files changed, 1 insertion(+), 98 deletions(-) delete mode 100644 pkgs/development/python-modules/sqlalchemy-migrate/default.nix delete mode 100644 pkgs/development/python-modules/sqlalchemy-migrate/python3.11-comp.diff diff --git a/pkgs/development/python-modules/sqlalchemy-migrate/default.nix b/pkgs/development/python-modules/sqlalchemy-migrate/default.nix deleted file mode 100644 index 93703010e592..000000000000 --- a/pkgs/development/python-modules/sqlalchemy-migrate/default.nix +++ /dev/null @@ -1,83 +0,0 @@ -{ - lib, - stdenv, - buildPythonPackage, - fetchPypi, - fetchpatch, - python, - scripttest, - pytz, - pbr, - tempita, - decorator, - sqlalchemy, - six, - sqlparse, - testrepository, -}: - -buildPythonPackage rec { - pname = "sqlalchemy-migrate"; - version = "0.13.0"; - format = "setuptools"; - - src = fetchPypi { - inherit pname version; - sha256 = "1y0lcqii7b4vp7yh9dyxrl4i77hi8jkkw7d06mgdw2h458ljxh0b"; - }; - - patches = [ - # See: https://review.openstack.org/#/c/608382/ - # https://github.com/openstack/sqlalchemy-migrate/pull/18 - (fetchpatch { - url = "https://github.com/openstack/sqlalchemy-migrate/commit/a5d69a17d9354ec1a792493280f96484740cf7ff.patch"; - sha256 = "1qyfq2m7w7xqf0r9bc2x42qcra4r9k9l9g1jy5j0fvlb6bvvjj07"; - }) - ./python3.11-comp.diff - ]; - - postPatch = '' - substituteInPlace test-requirements.txt \ - --replace "ibm_db_sa>=0.3.0;python_version<'3.0'" "" \ - --replace "ibm-db-sa-py3;python_version>='3.0'" "" \ - --replace "tempest-lib>=0.1.0" "" \ - --replace "testtools>=0.9.34,<0.9.36" "" \ - --replace "pylint" "" - ''; - - nativeCheckInputs = [ - scripttest - pytz - testrepository - ]; - propagatedBuildInputs = [ - pbr - tempita - decorator - sqlalchemy - six - sqlparse - ]; - - doCheck = !stdenv.isDarwin; - - checkPhase = '' - export PATH=$PATH:$out/bin - echo sqlite:///__tmp__ > test_db.cfg - # depends on ibm_db_sa - rm migrate/tests/changeset/databases/test_ibmdb2.py - # wants very old testtools - rm migrate/tests/versioning/test_schema.py - # transient failures on py27 - substituteInPlace migrate/tests/versioning/test_util.py --replace "test_load_model" "noop" - ${python.interpreter} setup.py test - ''; - - meta = with lib; { - homepage = "https://opendev.org/x/sqlalchemy-migrate"; - description = "Schema migration tools for SQLAlchemy"; - license = licenses.asl20; - maintainers = teams.openstack.members ++ (with maintainers; [ makefu ]); - broken = lib.versionAtLeast sqlalchemy.version "2.0.0"; - }; -} diff --git a/pkgs/development/python-modules/sqlalchemy-migrate/python3.11-comp.diff b/pkgs/development/python-modules/sqlalchemy-migrate/python3.11-comp.diff deleted file mode 100644 index c8e201b0ca6d..000000000000 --- a/pkgs/development/python-modules/sqlalchemy-migrate/python3.11-comp.diff +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/migrate/versioning/shell.py b/migrate/versioning/shell.py -index 5fb86b1..fae0ce4 100644 ---- a/migrate/versioning/shell.py -+++ b/migrate/versioning/shell.py -@@ -108,7 +108,7 @@ def main(argv=None, **kwargs): - parser.error("Invalid command %s" % command) - - parser.set_usage(inspect.getdoc(command_func)) -- f_args, f_varargs, f_kwargs, f_defaults = inspect.getargspec(command_func) -+ f_args, f_varargs, f_kwargs, f_defaults, _, _, _ = inspect.getfullargspec(command_func) - for arg in f_args: - parser.add_option( - "--%s" % arg, diff --git a/pkgs/top-level/python-aliases.nix b/pkgs/top-level/python-aliases.nix index 9af93bd53e76..0b51733f49fd 100644 --- a/pkgs/top-level/python-aliases.nix +++ b/pkgs/top-level/python-aliases.nix @@ -555,6 +555,7 @@ mapAliases ({ sphinxcontrib_newsfeed = sphinxcontrib-newsfeed; # added 2023-07-20 sphinxcontrib_plantuml = sphinxcontrib-plantuml; # added 2021-08-02 sphinx-navtree = throw "sphinx-navtree has been removed since it is not compatible with sphinx 3.3 and unmaintained"; # added 2023-07-03 + sqlalchemy-migrate = throw "sqlalchemy-migrate has been removed because it is abandoned upstream and incompatible with SQLAlchemy 2"; # added 2024-07-29 sqlalchemy_migrate = sqlalchemy-migrate; # added 2021-10-28 SQLAlchemy-ImageAttach = throw "sqlalchemy-imageattach has been removed as it is incompatible with sqlalchemy 1.4 and unmaintained"; # added 2022-04-23 sqlsoup = throw "sqlsoup has been removed as it is incompatible with modern SQLAlchemy and unmaintained"; # added 2024-05-13 diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 43d0cf17b055..3d0d5b64ead7 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -14792,8 +14792,6 @@ self: super: with self; { sqlalchemy-jsonfield = callPackage ../development/python-modules/sqlalchemy-jsonfield { }; - sqlalchemy-migrate = callPackage ../development/python-modules/sqlalchemy-migrate { }; - sqlalchemy-mixins = callPackage ../development/python-modules/sqlalchemy-mixins { }; sqlalchemy-utils = callPackage ../development/python-modules/sqlalchemy-utils { }; From f409d1bb66be5764d345cff090b5888d87e42d9d Mon Sep 17 00:00:00 2001 From: Emily Date: Mon, 29 Jul 2024 13:43:41 +0100 Subject: [PATCH 3/3] python3Packages.tempita: drop --- .../python-modules/tempita/default.nix | 27 ------------------- pkgs/top-level/python-aliases.nix | 1 + pkgs/top-level/python-packages.nix | 2 -- 3 files changed, 1 insertion(+), 29 deletions(-) delete mode 100644 pkgs/development/python-modules/tempita/default.nix diff --git a/pkgs/development/python-modules/tempita/default.nix b/pkgs/development/python-modules/tempita/default.nix deleted file mode 100644 index 718eeb93eb2d..000000000000 --- a/pkgs/development/python-modules/tempita/default.nix +++ /dev/null @@ -1,27 +0,0 @@ -{ - lib, - buildPythonPackage, - fetchFromGitHub, - nose, -}: - -buildPythonPackage { - version = "0.5.3-2016-09-28"; - format = "setuptools"; - pname = "tempita"; - - src = fetchFromGitHub { - owner = "agramfort"; - repo = "tempita"; - rev = "47414a7c6e46a9a9afe78f0bce2ea299fa84d10"; - sha256 = "0f33jjjs5rvp7ar2j6ggyfykcrsrn04jaqcq71qfvycf6b7nw3rn"; - }; - - buildInputs = [ nose ]; - - meta = { - homepage = "https://github.com/agramfort/tempita"; - description = "Very small text templating language"; - license = lib.licenses.mit; - }; -} diff --git a/pkgs/top-level/python-aliases.nix b/pkgs/top-level/python-aliases.nix index 0b51733f49fd..d888b42fc2cd 100644 --- a/pkgs/top-level/python-aliases.nix +++ b/pkgs/top-level/python-aliases.nix @@ -564,6 +564,7 @@ mapAliases ({ supervise_api = supervise-api; # added 2023-10-11 suseapi = throw "suseapi has been removed because it is no longer maintained"; # added 2023-02-27 sysv_ipc = sysv-ipc; # added 2024-01-07 + tempita = throw "tempita has been removed because it is unmaintained and the upstream repository is gone"; # added 2024-07-29 tensorflow-bin_2 = tensorflow-bin; # added 2021-11-25 tensorflow-build_2 = tensorflow-build; # added 2021-11-25 tensorflow-estimator = tensorflow-estimator-bin; # added 2023-01-17 diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 3d0d5b64ead7..ceae5443a597 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -15218,8 +15218,6 @@ self: super: with self; { tempest = callPackage ../development/python-modules/tempest { }; - tempita = callPackage ../development/python-modules/tempita { }; - templateflow = callPackage ../development/python-modules/templateflow { }; tempora = callPackage ../development/python-modules/tempora { };