Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 541604 - x11-libs/qscintilla & dev-python/qscintilla-python: add support for Qt5/PyQt5
Summary: x11-libs/qscintilla & dev-python/qscintilla-python: add support for Qt5/PyQt5
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: High enhancement with 1 vote (vote)
Assignee: Qt Bug Alias
URL:
Whiteboard:
Keywords:
: 559174 (view as bug list)
Depends on:
Blocks: 577850 600482
  Show dependency tree
 
Reported: 2015-02-28 09:19 UTC by Helmut Jarausch
Modified: 2017-01-21 22:37 UTC (History)
11 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
qscintilla-2.9-r1.ebuild (qscintilla-2.9-r1.ebuild,3.16 KB, text/plain)
2015-05-05 08:03 UTC, Joakim Gebart Nohlgård
Details
qt5_libname.patch (qt5_libname.patch,1.90 KB, patch)
2015-05-05 08:04 UTC, Joakim Gebart Nohlgård
Details | Diff
qt5_mkspecs_path.patch (qt5_mkspecs_path.patch,671 bytes, patch)
2015-05-05 08:04 UTC, Joakim Gebart Nohlgård
Details | Diff
qscintilla-python-2.9-r1.ebuild (qscintilla-python-2.9-r1.ebuild,2.91 KB, text/plain)
2015-05-05 08:05 UTC, Joakim Gebart Nohlgård
Details
qsci_link.patch (qsci_link.patch,645 bytes, patch)
2015-05-05 08:06 UTC, Joakim Gebart Nohlgård
Details | Diff
qt5_includes.patch (qt5_includes.patch,909 bytes, patch)
2015-05-05 08:06 UTC, Joakim Gebart Nohlgård
Details | Diff
qt5_python_libname.patch (qt5_python_libname.patch,1.28 KB, patch)
2015-05-05 08:06 UTC, Joakim Gebart Nohlgård
Details | Diff
qscintilla-python-2.9-r1.ebuild (qscintilla-python-2.9-r1.ebuild,3.03 KB, text/plain)
2015-05-05 10:37 UTC, Joakim Gebart Nohlgård
Details
qscintilla-multibuild.patch (qscintilla-multibuild.patch,2.92 KB, patch)
2016-03-31 14:24 UTC, Michael Palimaka (kensington)
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Helmut Jarausch 2015-02-28 09:19:47 UTC
I have the qt5 flag enabled here.
When I try to emerge eric-6.0.0 I get
Found PyQt5
Sorry, please install QScintilla2 and
its PyQt5/PyQt4 wrapper.
Error: cannot import name 'Qsci'

But, unfortunatelym QScintilla2 is not in the tree, yet.


emerge --info dev-util/eric
Portage 2.2.17 (python 3.4.2-final-0, default/linux/amd64/13.0/desktop, gcc-4.9.2, glibc-2.20-r2, 4.0.0-rc1 x86_64)
=================================================================
                         System Settings
=================================================================
System uname: Linux-4.0.0-rc1-x86_64-AMD_Phenom-tm-_II_X4_940_Processor-with-gentoo-2.2
KiB Mem:     7906164 total,   1542856 free
KiB Swap:    2097148 total,   2095304 free
Timestamp of repository gentoo: Sat, 28 Feb 2015 06:45:01 +0000
sh bash 4.3_p33-r2
ld GNU ld (Gentoo 2.25 p1.0) 2.25
ccache version 3.2.1 [disabled]
app-shells/bash:          4.3_p33-r2::gentoo
dev-java/java-config:     2.2.0::gentoo
dev-lang/perl:            5.20.2::gentoo
dev-lang/python:          2.7.9-r2::gentoo, 3.4.2::gentoo
dev-util/ccache:          3.2.1-r1::gentoo
dev-util/cmake:           3.1.0::gentoo
dev-util/pkgconfig:       0.28-r2::gentoo
sys-apps/baselayout:      2.2::gentoo
sys-apps/openrc:          0.13.11::gentoo
sys-apps/sandbox:         2.6-r1::gentoo
sys-devel/autoconf:       2.13::gentoo, 2.69::gentoo
sys-devel/automake:       1.9.6-r4::gentoo, 1.10.3-r1::gentoo, 1.11.6-r1::gentoo, 1.12.6::gentoo, 1.13.4::gentoo, 1.14.1::gentoo, 1.15::gentoo
sys-devel/binutils:       2.25::gentoo
sys-devel/gcc:            4.8.4::gentoo, 4.9.2::gentoo, 5.0.0_alpha20150118::local
sys-devel/gcc-config:     1.8::gentoo
sys-devel/libtool:        2.4.6::gentoo
sys-devel/make:           4.1-r1::gentoo
sys-kernel/linux-headers: 3.19::gentoo (virtual/os-headers)
sys-libs/glibc:           2.20-r2::gentoo
Repositories:

gentoo
    location: /usr/portage
    sync-type: rsync
    sync-uri: rsync://rsync15.de.gentoo.org/gentoo-portage
    priority: -1000

local
    location: /usr/local/portage
    masters: gentoo
    priority: 0

sunrise
    location: /usr/local/portage/layman/sunrise
    masters: gentoo
    priority: 1

lisp
    location: /usr/local/portage/layman/lisp
    masters: gentoo
    priority: 2

ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="*"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-mtune=native -O2 -msse3 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/lib64/libreoffice/program/sofficerc /usr/share/config /usr/share/gnupg/qualified.txt /var/lib/hsqldb /var/lib/neatx/home"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5.4/ext-active/ /etc/php/apache2-php5.5/ext-active/ /etc/php/apache2-php5.6/ext-active/ /etc/php/cgi-php5.4/ext-active/ /etc/php/cgi-php5.5/ext-active/ /etc/php/cgi-php5.6/ext-active/ /etc/php/cli-php5.4/ext-active/ /etc/php/cli-php5.5/ext-active/ /etc/php/cli-php5.6/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"
CXXFLAGS="-mtune=native -O2 -msse3 -pipe"
DISTDIR="/usr/portage/distfiles"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs buildpkg config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned sandbox sfperms splitdebug strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="ftp://sunsite.informatik.rwth-aachen.de/pub/Linux/gentoo "
LANG="en_US.iso88591"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j4"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
USE="3dnow 3dnowext 3dnowprefetch X a52 aac acl acpi alsa amd64 avahi berkdb branding bzip2 cairo cdda cdr cli consolekit cracklib crypt cups cxx dbus dri dts dvd dvdr emboss encode exif fam ffmpeg fftw firefox flac fortran fuse gdbm gfortran gif gimp glamor gpm gtk gtk3 iconv ipv6 jpeg lapack lcms libnotify mad mmx mmxext mng modules mp3 mp4 mpeg multilib ncurses nls nptl nptlonly ogg opengl openmp pam pango pcre pdf png policykit ppds python qt qt3support qt4 qt5 readline sdl session smp spell sqlite sqlite3 sse sse2 sse3 sse4a ssl startup-notification svg systemd tcl tcpd threads tiff tk truetype udev udisks unicode upower usb vorbis wxwidgets x264 xcb xml xulrunner xv xvid zlib" ABI_X86="64" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="3dnow mmx 3dnowext mmxext popcnt sse sse2 sse3 sse4a" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ublox ubx" GRUB_PLATFORMS="pc multiboot" INPUT_DEVICES="keyboard mouse evdev wacom" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="en de" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-5" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_4" RUBY_TARGETS="ruby22" USERLAND="GNU" VIDEO_CARDS="radeon radeonsi" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON

=================================================================
                        Package Settings
=================================================================

dev-util/eric-5.5.2::gentoo was built with the following:
USE="" ABI_X86="64" LINGUAS="de en -cs -es -fr -it -pt -ru -tr -zh_CN" PYTHON_SINGLE_TARGET="python3_4 -python2_7 -python3_3" PYTHON_TARGETS="python2_7 python3_4 -python3_3"
Comment 1 Davide Pesavento (RETIRED) gentoo-dev 2015-03-01 16:26:22 UTC
Where did you find eric-6? It's not in tree.

QScintilla2 *is* in tree. What's missing is the PyQt5 wrapper of qscintilla-python, i.e. USE=qt5 for qscintilla-python
Comment 2 Joakim Gebart Nohlgård 2015-05-05 08:03:38 UTC
Created attachment 402688 [details]
qscintilla-2.9-r1.ebuild

Added the qt5 USE flag to the qscintilla ebuild. 
I used the same procedures and some patches from the Debian qscintilla2 source package https://packages.debian.org/jessie/python3-pyqt5.qsci
Comment 3 Joakim Gebart Nohlgård 2015-05-05 08:04:16 UTC
Created attachment 402690 [details, diff]
qt5_libname.patch
Comment 4 Joakim Gebart Nohlgård 2015-05-05 08:04:39 UTC
Created attachment 402692 [details, diff]
qt5_mkspecs_path.patch
Comment 5 Joakim Gebart Nohlgård 2015-05-05 08:05:53 UTC
Created attachment 402694 [details]
qscintilla-python-2.9-r1.ebuild
Comment 6 Joakim Gebart Nohlgård 2015-05-05 08:06:12 UTC
Created attachment 402696 [details, diff]
qsci_link.patch
Comment 7 Joakim Gebart Nohlgård 2015-05-05 08:06:27 UTC
Created attachment 402698 [details, diff]
qt5_includes.patch
Comment 8 Joakim Gebart Nohlgård 2015-05-05 08:06:45 UTC
Created attachment 402700 [details, diff]
qt5_python_libname.patch
Comment 9 Joakim Gebart Nohlgård 2015-05-05 08:08:41 UTC
qsci_link.patch qt5_includes.patch qt5_python_libname.patch belong with qscintilla-python-2.9-r1.ebuild
qt5_libname.patch qt5_mkspecs_path.patch belong with qscintilla-2.9-r1.ebuild
Comment 10 Joakim Gebart Nohlgård 2015-05-05 10:37:13 UTC
Created attachment 402706 [details]
qscintilla-python-2.9-r1.ebuild

Updated ebuild with some more dependencies
Comment 11 Davide Pesavento (RETIRED) gentoo-dev 2015-05-05 11:11:24 UTC
This is going to become a maintenance nightmare if upstream isn't interested (as it seems) in supporting co-installability of qt4 and qt5 versions.
Comment 12 Joakim Gebart Nohlgård 2015-05-05 15:28:29 UTC
As long as Debian is handling co-installability in their package builds it should be quite straightforward to reuse their patches.
Comment 13 Davide Pesavento (RETIRED) gentoo-dev 2015-05-05 15:37:17 UTC
Yeah true that, both Debian and Fedora support co-installability, so we can keep stealing the patches from them ;)
Comment 14 Ian Delaney (RETIRED) gentoo-dev 2015-05-20 01:20:58 UTC
It seems this issue of (not) supporting co-installability of qt4 and qt5 versions upstream has a common thread or theme with others packages. vlc also
Comment 15 Davide Pesavento (RETIRED) gentoo-dev 2015-05-20 10:08:44 UTC
(In reply to Ian Delaney from comment #14)
> It seems this issue of (not) supporting co-installability of qt4 and qt5
> versions upstream has a common thread or theme with others packages. vlc also

vlc is an application, it wouldn't make sense to install both a qt4 and a qt5 version...
Comment 16 Ben de Groot (RETIRED) gentoo-dev 2015-05-20 12:54:17 UTC
(In reply to Davide Pesavento from comment #15)
> (In reply to Ian Delaney from comment #14)
> > It seems this issue of (not) supporting co-installability of qt4 and qt5
> > versions upstream has a common thread or theme with others packages. vlc also
> 
> vlc is an application, it wouldn't make sense to install both a qt4 and a
> qt5 version...

He means VLC doesn't provide for proper detection of parallel installed Qt4 and Qt5.
Comment 17 Davide Pesavento (RETIRED) gentoo-dev 2015-05-20 12:56:02 UTC
And how is that relevant to this bug?
Comment 18 Davide Pesavento (RETIRED) gentoo-dev 2015-08-30 20:44:26 UTC
*** Bug 559174 has been marked as a duplicate of this bug. ***
Comment 19 Arnaud Vallette d'Osia 2016-01-13 11:40:45 UTC
Following closely so I can emerge Juffed built against Qt5
Comment 20 Sergey S. Starikoff 2016-03-22 14:14:45 UTC
(In reply to Ian Delaney from comment #14)
> It seems this issue of (not) supporting co-installability of qt4 and qt5
> versions upstream has a common thread or theme with others packages. vlc also

I also think [at least] x11-libs/qscintilla needs in support of Qt slots.
Comment 21 Michael Palimaka (kensington) gentoo-dev 2016-03-31 14:24:27 UTC
Created attachment 429376 [details, diff]
qscintilla-multibuild.patch

Attached diff introduces USE="qt4 qt5" to qscintilla using multibuild.

There isn't a disk file collision without any patches (/usr/lib64/libqscintilla2.so and /usr/lib64/qt4/libqscintilla2.so), but I haven't tested revdeps yet to see if they pick it up by accident.
Comment 22 Michael Palimaka (kensington) gentoo-dev 2016-03-31 15:01:13 UTC
(In reply to Michael Palimaka (kensington) from comment #21)
> Created attachment 429376 [details, diff] [details, diff]
> qscintilla-multibuild.patch
> 
> Attached diff introduces USE="qt4 qt5" to qscintilla using multibuild.
> 
> There isn't a disk file collision without any patches
> (/usr/lib64/libqscintilla2.so and /usr/lib64/qt4/libqscintilla2.so), but I
> haven't tested revdeps yet to see if they pick it up by accident.

And qscintilla-python immediately links to the qt5 version.

I would generally be against any coinstallability solution that requires patching of revdeps.
Comment 23 Davide Pesavento (RETIRED) gentoo-dev 2016-04-18 16:30:32 UTC
(In reply to Michael Palimaka (kensington) from comment #22)
> I would generally be against any coinstallability solution that requires
> patching of revdeps.

I would tend to agree. Although note that the two libs have the same soname, which means that we'd still have to rename one of the two (probably the qt5 one) even if they don't collide on the filesystem.

Anyway, can we do REQUIRED_USE="^^ ( qt4 qt5 )" instead?
Comment 24 Davide Pesavento (RETIRED) gentoo-dev 2016-04-18 16:34:24 UTC
(In reply to Davide Pesavento from comment #23)
> (In reply to Michael Palimaka (kensington) from comment #22)
> > I would generally be against any coinstallability solution that requires
> > patching of revdeps.
> 
> I would tend to agree. Although note that the two libs have the same soname,
> which means that we'd still have to rename one of the two (probably the qt5
> one) even if they don't collide on the filesystem.

If it wasn't clear, the consequence of this lib renaming is that reverse deps should continue to work unpatched and link against the non-renamed (i.e. qt4) library.
Only reverse deps interested in supporting qt5 would have to be patched.
Comment 25 Davide Pesavento (RETIRED) gentoo-dev 2016-07-12 13:46:59 UTC
@kensington, any further thoughts?
Comment 26 Michael Palimaka (kensington) gentoo-dev 2016-07-13 13:03:06 UTC
(In reply to Davide Pesavento from comment #23)
> Anyway, can we do REQUIRED_USE="^^ ( qt4 qt5 )" instead?

IMO this is our only option.
Comment 27 Davide Pesavento (RETIRED) gentoo-dev 2016-07-13 13:25:52 UTC
(In reply to Michael Palimaka (kensington) from comment #26)
> (In reply to Davide Pesavento from comment #23)
> > Anyway, can we do REQUIRED_USE="^^ ( qt4 qt5 )" instead?
> 
> IMO this is our only option.

just to clarify, you wouldn't support renaming the qt5 version of the library then (like debian and fedora are doing)?
Comment 28 Michael Palimaka (kensington) gentoo-dev 2016-07-13 13:30:19 UTC
(In reply to Davide Pesavento from comment #27)
> (In reply to Michael Palimaka (kensington) from comment #26)
> > (In reply to Davide Pesavento from comment #23)
> > > Anyway, can we do REQUIRED_USE="^^ ( qt4 qt5 )" instead?
> > 
> > IMO this is our only option.
> 
> just to clarify, you wouldn't support renaming the qt5 version of the
> library then (like debian and fedora are doing)?

If this requires any revdep patching I believe it's a bad idea, but I don't care enough to try and block that from happening or something.
Comment 29 Davide Pesavento (RETIRED) gentoo-dev 2016-12-23 01:32:03 UTC
qscintilla-2.9.3-r2 can be built against Qt5: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5445db343d15bf741f107fc6e65112f4696ecc82
Comment 30 Helmut Jarausch 2017-01-13 15:57:35 UTC
(In reply to Joakim Gebart Nohlgård from comment #10)
> Created attachment 402706 [details]
> qscintilla-python-2.9-r1.ebuild
> 
> Updated ebuild with some more dependencies

Hi Joakim.

I've tried your patch version for qscintilla-python but it fails here:

 * python3_5: running run_in_build_dir configuration_qt4
/usr/bin/python3.5 ../configure.py --qmake=/usr/lib64/qt4/bin/qmake --destdir=/usr/lib64/python3.5/site-packages/PyQt4 --sip-incdir=/usr/include/python3.5m --pyqt=PyQt4
Error: Qsci/qsciglobal.h could not be found in /usr/include/qt4. If QScintilla
is installed then use the --qsci-incdir argument to explicitly specify the
correct directory.


What am I missing?

Many thanks for a hint,
Helmut
Comment 31 Davide Pesavento (RETIRED) gentoo-dev 2017-01-21 22:37:56 UTC
qscintilla-python has Qt5/PyQt5 support too now.

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=94c379bcbe5c40707197f209da31547e4e3702eb