summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--pkgs/applications/audio/miniaudicle/default.nix4
-rw-r--r--pkgs/applications/gis/qgis/unwrapped.nix2
-rw-r--r--pkgs/applications/misc/sqliteman/default.nix8
-rw-r--r--pkgs/development/libraries/qscintilla-qt4/default.nix60
-rw-r--r--pkgs/development/libraries/qscintilla-qt4/fix-qt4-build.patch (renamed from pkgs/development/libraries/qscintilla/fix-qt4-build.patch)0
-rw-r--r--pkgs/development/libraries/qscintilla/default.nix33
-rw-r--r--pkgs/development/python-modules/qscintilla-qt4/default.nix42
-rw-r--r--pkgs/development/python-modules/qscintilla-qt5/default.nix54
-rw-r--r--pkgs/top-level/all-packages.nix4
-rw-r--r--pkgs/top-level/python-packages.nix4
-rw-r--r--pkgs/top-level/qt5-packages.nix4
11 files changed, 156 insertions, 59 deletions
diff --git a/pkgs/applications/audio/miniaudicle/default.nix b/pkgs/applications/audio/miniaudicle/default.nix
index 90821b01476..e469a96ab72 100644
--- a/pkgs/applications/audio/miniaudicle/default.nix
+++ b/pkgs/applications/audio/miniaudicle/default.nix
@@ -7,7 +7,7 @@
 , alsa-lib
 , libsndfile
 , qt4
-, qscintilla
+, qscintilla-qt4
 , libpulseaudio
 , libjack2
 , audioBackend ? "pulse" # "pulse", "alsa", or "jack"
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
     alsa-lib
     libsndfile
     qt4
-    qscintilla
+    qscintilla-qt4
   ] ++ lib.optional (audioBackend == "pulse") libpulseaudio
     ++ lib.optional (audioBackend == "jack")  libjack2;
 
diff --git a/pkgs/applications/gis/qgis/unwrapped.nix b/pkgs/applications/gis/qgis/unwrapped.nix
index 0ec81c785b4..14bafb6c51b 100644
--- a/pkgs/applications/gis/qgis/unwrapped.nix
+++ b/pkgs/applications/gis/qgis/unwrapped.nix
@@ -114,7 +114,7 @@ in mkDerivation rec {
   cmakeFlags = [
     "-DCMAKE_SKIP_BUILD_RPATH=OFF"
     "-DPYQT5_SIP_DIR=${python3Packages.pyqt5}/${python3Packages.python.sitePackages}/PyQt5/bindings"
-    "-DQSCI_SIP_DIR=${python3Packages.qscintilla-qt5}/share/sip/PyQt5"
+    "-DQSCI_SIP_DIR=${python3Packages.qscintilla-qt5}/${python3Packages.python.sitePackages}/PyQt5/bindings"
   ] ++ lib.optional (!withWebKit) "-DWITH_QTWEBKIT=OFF"
     ++ lib.optional withGrass "-DGRASS_PREFIX7=${grass}/${grass.name}";
 
diff --git a/pkgs/applications/misc/sqliteman/default.nix b/pkgs/applications/misc/sqliteman/default.nix
index a0ddf8db053..556c635e60b 100644
--- a/pkgs/applications/misc/sqliteman/default.nix
+++ b/pkgs/applications/misc/sqliteman/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, cmake, qt4, qscintilla }:
+{ lib, stdenv, fetchFromGitHub, cmake, qt4, qscintilla-qt4 }:
 
 stdenv.mkDerivation rec {
   pname = "sqliteman";
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ cmake ];
-  buildInputs = [ qt4 qscintilla ];
+  buildInputs = [ qt4 qscintilla-qt4 ];
 
   prePatch = ''
     sed -i 's,m_file(0),m_file(QString()),' Sqliteman/sqliteman/main.cpp
@@ -20,8 +20,8 @@ stdenv.mkDerivation rec {
 
   preConfigure = ''
     cd Sqliteman
-    sed -i 's,/usr/include/Qsci,${qscintilla}/include/Qsci,' cmake/modules/FindQScintilla.cmake
-    sed -i 's,PATHS ''${QT_LIBRARY_DIR},PATHS ${qscintilla}/libs,' cmake/modules/FindQScintilla.cmake
+    sed -i 's,/usr/include/Qsci,${qscintilla-qt4}/include/Qsci,' cmake/modules/FindQScintilla.cmake
+    sed -i 's,PATHS ''${QT_LIBRARY_DIR},PATHS ${qscintilla-qt4}/libs,' cmake/modules/FindQScintilla.cmake
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/libraries/qscintilla-qt4/default.nix b/pkgs/development/libraries/qscintilla-qt4/default.nix
new file mode 100644
index 00000000000..7cefdec97ca
--- /dev/null
+++ b/pkgs/development/libraries/qscintilla-qt4/default.nix
@@ -0,0 +1,60 @@
+{ stdenv, lib, fetchurl, unzip, qt4, qmake4Hook
+}:
+
+stdenv.mkDerivation rec {
+  pname = "qscintilla-qt4";
+  version = "2.11.6";
+
+  src = fetchurl {
+    url = "https://www.riverbankcomputing.com/static/Downloads/QScintilla/${version}/QScintilla-${version}.tar.gz";
+    sha256 = "5zRgV9tH0vs4RGf6/M/LE6oHQTc8XVk7xytVsvDdIKc=";
+  };
+
+  sourceRoot = "QScintilla-${version}/Qt4Qt5";
+
+  buildInputs = [ qt4 ];
+
+  nativeBuildInputs = [ unzip qmake4Hook ];
+
+  patches = ./fix-qt4-build.patch;
+
+  # Make sure that libqscintilla2.so is available in $out/lib since it is expected
+  # by some packages such as sqlitebrowser
+  postFixup = ''
+    ln -s $out/lib/libqscintilla2_qt?.so $out/lib/libqscintilla2.so
+  '';
+
+  dontWrapQtApps = true;
+
+  postPatch = ''
+    substituteInPlace qscintilla.pro \
+      --replace '$$[QT_INSTALL_LIBS]'         $out/lib \
+      --replace '$$[QT_INSTALL_HEADERS]'      $out/include \
+      --replace '$$[QT_INSTALL_TRANSLATIONS]' $out/translations \
+      --replace '$$[QT_HOST_DATA]/mkspecs'    $out/mkspecs \
+      --replace '$$[QT_INSTALL_DATA]/mkspecs' $out/mkspecs \
+      --replace '$$[QT_INSTALL_DATA]'         $out/share
+  '';
+
+  meta = with lib; {
+    description = "A Qt port of the Scintilla text editing library";
+    longDescription = ''
+      QScintilla is a port to Qt of Neil Hodgson's Scintilla C++ editor
+      control.
+
+      As well as features found in standard text editing components,
+      QScintilla includes features especially useful when editing and
+      debugging source code. These include support for syntax styling,
+      error indicators, code completion and call tips. The selection
+      margin can contain markers like those used in debuggers to
+      indicate breakpoints and the current line. Styling choices are
+      more open than with many editors, allowing the use of
+      proportional fonts, bold and italics, multiple foreground and
+      background colours and multiple fonts.
+    '';
+    homepage = "https://www.riverbankcomputing.com/software/qscintilla/intro";
+    license = with licenses; [ gpl3 ]; # and commercial
+    maintainers = with maintainers; [ peterhoeg ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/development/libraries/qscintilla/fix-qt4-build.patch b/pkgs/development/libraries/qscintilla-qt4/fix-qt4-build.patch
index 520a55b1ea2..520a55b1ea2 100644
--- a/pkgs/development/libraries/qscintilla/fix-qt4-build.patch
+++ b/pkgs/development/libraries/qscintilla-qt4/fix-qt4-build.patch
diff --git a/pkgs/development/libraries/qscintilla/default.nix b/pkgs/development/libraries/qscintilla/default.nix
index fc2ef6c09a6..3dcbc22e15f 100644
--- a/pkgs/development/libraries/qscintilla/default.nix
+++ b/pkgs/development/libraries/qscintilla/default.nix
@@ -1,33 +1,27 @@
 { stdenv, lib, fetchurl, unzip
-, qt4 ? null, qmake4Hook ? null
-, withQt5 ? false, qtbase ? null, qtmacextras ? null, qmake ? null
+, qtbase, qtmacextras
+, qmake
 , fixDarwinDylibNames
 }:
 
-let
-  pname = "qscintilla-qt${if withQt5 then "5" else "4"}";
-  version = "2.11.6";
-
-in stdenv.mkDerivation rec {
-  inherit pname version;
+stdenv.mkDerivation rec {
+  pname = "qscintilla-qt5";
+  version = "2.13.1";
 
   src = fetchurl {
-    url = "https://www.riverbankcomputing.com/static/Downloads/QScintilla/${version}/QScintilla-${version}.tar.gz";
-    sha256 = "5zRgV9tH0vs4RGf6/M/LE6oHQTc8XVk7xytVsvDdIKc=";
+    url = "https://www.riverbankcomputing.com/static/Downloads/QScintilla/${version}/QScintilla_src-${version}.tar.gz";
+    sha256 = "gA49IHGpa8zNdYE0avDS/ij8MM1oUwy4MCaF0BOv1Uo=";
   };
 
-  sourceRoot = "QScintilla-${version}/Qt4Qt5";
+  sourceRoot = "QScintilla_src-${version}/src";
 
-  buildInputs = [ (if withQt5 then qtbase else qt4) ];
+  buildInputs = [ qtbase ];
 
-  propagatedBuildInputs = lib.optional (withQt5 && stdenv.isDarwin) qtmacextras;
+  propagatedBuildInputs = lib.optionals stdenv.isDarwin [ qtmacextras ];
 
-  nativeBuildInputs = [ unzip ]
-    ++ (if withQt5 then [ qmake ] else [ qmake4Hook ])
+  nativeBuildInputs = [ unzip qmake ]
     ++ lib.optional stdenv.isDarwin fixDarwinDylibNames;
 
-  patches = lib.optional (!withQt5) ./fix-qt4-build.patch;
-
   # Make sure that libqscintilla2.so is available in $out/lib since it is expected
   # by some packages such as sqlitebrowser
   postFixup = ''
@@ -36,14 +30,13 @@ in stdenv.mkDerivation rec {
 
   dontWrapQtApps = true;
 
-  postPatch = ''
+  preConfigure = ''
     substituteInPlace qscintilla.pro \
       --replace '$$[QT_INSTALL_LIBS]'         $out/lib \
       --replace '$$[QT_INSTALL_HEADERS]'      $out/include \
       --replace '$$[QT_INSTALL_TRANSLATIONS]' $out/translations \
       --replace '$$[QT_HOST_DATA]/mkspecs'    $out/mkspecs \
-      --replace '$$[QT_INSTALL_DATA]/mkspecs' $out/mkspecs \
-      --replace '$$[QT_INSTALL_DATA]'         $out/share${lib.optionalString (! withQt5) "/qt"}
+      --replace '$$[QT_INSTALL_DATA]'         $out/share
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/qscintilla-qt4/default.nix b/pkgs/development/python-modules/qscintilla-qt4/default.nix
new file mode 100644
index 00000000000..bc3f3596923
--- /dev/null
+++ b/pkgs/development/python-modules/qscintilla-qt4/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, buildPythonPackage
+, disabledIf
+, isPy3k
+, isPyPy
+, pkgs
+, python
+, pyqt4
+}:
+
+disabledIf (isPy3k || isPyPy)
+  (buildPythonPackage {
+    pname = "qscintilla";
+    version = pkgs.qscintilla.version;
+    format = "other";
+
+    src = pkgs.qscintilla.src;
+
+    nativeBuildInputs = [ pkgs.xorg.lndir ];
+
+    buildInputs = [ pyqt4.qt pyqt4 ];
+
+    preConfigure = ''
+      mkdir -p $out
+      lndir ${pyqt4} $out
+      rm -rf "$out/nix-support"
+      cd Python
+      ${python.executable} ./configure-old.py \
+          --destdir $out/lib/${python.libPrefix}/site-packages/PyQt4 \
+          --apidir $out/api/${python.libPrefix} \
+          -n ${pkgs.qscintilla}/include \
+          -o ${pkgs.qscintilla}/lib \
+          --sipdir $out/share/sip
+    '';
+
+    meta = with lib; {
+      description = "A Python binding to QScintilla, Qt based text editing control";
+      license = licenses.lgpl21Plus;
+      maintainers = with maintainers; [ danbst ];
+      platforms = platforms.linux;
+    };
+  })
diff --git a/pkgs/development/python-modules/qscintilla-qt5/default.nix b/pkgs/development/python-modules/qscintilla-qt5/default.nix
index 70ee4308913..11445c99f4f 100644
--- a/pkgs/development/python-modules/qscintilla-qt5/default.nix
+++ b/pkgs/development/python-modules/qscintilla-qt5/default.nix
@@ -2,51 +2,53 @@
 , pythonPackages
 , qscintilla
 , qtbase
+, qmake
+, qtmacextras
+, stdenv
 }:
 
 let
-  inherit (pythonPackages) buildPythonPackage isPy3k python sip_4 pyqt5;
+  inherit (pythonPackages) buildPythonPackage isPy3k python sip sipbuild pyqt5 pyqt-builder;
 in buildPythonPackage rec {
   pname = "qscintilla";
   version = qscintilla.version;
   src = qscintilla.src;
-  format = "other";
+  format = "pyproject";
 
   disabled = !isPy3k;
 
-  nativeBuildInputs = [ sip_4 qtbase ];
-  buildInputs = [ qscintilla ];
-  propagatedBuildInputs = [ pyqt5 ];
+  nativeBuildInputs = [ sip qmake pyqt-builder qscintilla ];
+  buildInputs = [ qtbase ];
+  propagatedBuildInputs = [ pyqt5 ] ++ lib.optionals stdenv.isDarwin [ qtmacextras ];
 
   dontWrapQtApps = true;
 
   postPatch = ''
-    substituteInPlace Python/configure.py \
+    cd Python
+    cp pyproject-qt5.toml pyproject.toml
+    echo '[tool.sip.project]' >> pyproject.toml
+    echo 'sip-include-dirs = [ "${pyqt5}/${python.sitePackages}/PyQt5/bindings"]' \
+       >> pyproject.toml
+  '' + lib.optionalString stdenv.isDarwin ''
+    substituteInPlace project.py \
       --replace \
-      "target_config.py_module_dir" \
-      "'$out/${python.sitePackages}'"
-  '';
+      "if self.project.qsci_external_lib:
+                if self.qsci_features_dir is not None:" \
+      "if self.project.qsci_external_lib:
+                self.builder_settings.append('QT += widgets')
 
-  preConfigure = ''
-    # configure.py will look for this folder
-    mkdir -p $out/share/sip/PyQt5
+                self.builder_settings.append('QT += printsupport')
 
-    cd Python
-    substituteInPlace configure.py \
-      --replace "qmake = {'CONFIG': 'qscintilla2'}" "qmake = {'CONFIG': 'qscintilla2', 'QT': 'widgets printsupport'}"
-    ${python.executable} ./configure.py \
-      --pyqt=PyQt5 \
-      --destdir=$out/${python.sitePackages}/PyQt5 \
-      --stubsdir=$out/${python.sitePackages}/PyQt5 \
-      --apidir=$out/api/${python.libPrefix} \
-      --qsci-incdir=${qscintilla}/include \
-      --qsci-featuresdir=${qscintilla}/mkspecs/features \
-      --qsci-libdir=${qscintilla}/lib \
-      --pyqt-sipdir=${pyqt5}/${python.sitePackages}/PyQt5/bindings \
-      --qsci-sipdir=$out/share/sip/PyQt5 \
-      --sip-incdir=${sip_4}/include
+                if self.qsci_features_dir is not None:"
   '';
 
+  dontConfigure = true;
+
+  build = ''
+    sip-install --qsci-features-dir ${qscintilla}/mkspecs/features \
+    --qsci-include-dir ${qscintilla}/include \
+    --qsci-library-dir ${qscintilla}/lib --api-dir ${qscintilla}/share";
+  '';
   postInstall = ''
     # Needed by pythonImportsCheck to find the module
     export PYTHONPATH="$out/${python.sitePackages}:$PYTHONPATH"
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 7af550049f8..bc24b12640e 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -9094,7 +9094,9 @@ with pkgs;
 
   qprint = callPackage ../tools/text/qprint { };
 
-  qscintilla = callPackage ../development/libraries/qscintilla { };
+  qscintilla = libsForQt5.callPackage ../development/libraries/qscintilla { };
+
+  qscintilla-qt4 = callPackage ../development/libraries/qscintilla-qt4 { };
 
   qshowdiff = callPackage ../tools/text/qshowdiff { };
 
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index e2d2b193f86..14f128a8657 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -8289,13 +8289,13 @@ in {
 
   qreactor = callPackage ../development/python-modules/qreactor { };
 
-  qscintilla-qt4 = callPackage ../development/python-modules/qscintilla { };
+  qscintilla-qt4 = callPackage ../development/python-modules/qscintilla-qt4 { };
 
   qscintilla-qt5 = pkgs.libsForQt5.callPackage ../development/python-modules/qscintilla-qt5 {
     pythonPackages = self;
   };
 
-  qscintilla = self.qscintilla-qt4;
+  qscintilla = self.qscintilla-qt5;
 
   qtawesome = callPackage ../development/python-modules/qtawesome { };
 
diff --git a/pkgs/top-level/qt5-packages.nix b/pkgs/top-level/qt5-packages.nix
index a2bd8dc6a54..d9cc05afe71 100644
--- a/pkgs/top-level/qt5-packages.nix
+++ b/pkgs/top-level/qt5-packages.nix
@@ -190,9 +190,7 @@ in (kdeFrameworks // plasmaMobileGear // plasma5 // plasma5.thirdParty // kdeGea
 
   qoauth = callPackage ../development/libraries/qoauth { };
 
-  qscintilla = callPackage ../development/libraries/qscintilla {
-    withQt5 = true;
-  };
+  qscintilla = callPackage ../development/libraries/qscintilla { };
 
   qt5ct = callPackage ../tools/misc/qt5ct { };