Re: dropping QT4 support

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Re: dropping QT4 support

Rik-4
On 11/02/2019 12:10 AM, [hidden email] wrote:
Subject:
Require Qt5 for the upcoming 6.1 release?
From:
"John W. Eaton" [hidden email]
Date:
11/01/2019 01:01 PM
To:
Octave Maintainers List [hidden email]
List-Post:
[hidden email]
Content-Transfer-Encoding:
7bit
Precedence:
list
MIME-Version:
1.0
Message-ID:
[hidden email]
Content-Type:
text/plain; charset=utf-8; format=flowed
Message:
1

I just wasted WAY more time than I would like to admit debugging a signal/slot connection because of a stupid ONE-CHARACTER TYPO.  Instead of

  connect (p, SIGNAL (settings_changed (const gui_settings *)),
           this, SLOT (handle_settings (const gui_settings *)));

I wrote

  connect (p, SIGNAL (settings_changed (const gui_ettings *)),
           this, SLOT (handle_settings (const gui_settings *)));

It seems obvious now, but of course there was no warning and I simply could not spot the error among all the other changes I had made.  Gah.

Can we just please give up on Qt4 already and start using Qt5-style signal/slot connections that would catch this kind of error at compile time?

We discussed dropping support for Qt4 back in March and June of this year.  I think most of us agreed that it was a good idea but we haven't followed through.

If we agree that this is the right move for 6.1, then I'm willing to do most or all of the work to fix the configure script and start updating the sources immediately.  If we delay, I think we will have to wait until after the 6.1 release as this is a fairly big change so deserves sufficient time for testing.

No objection.  The last Qt4 release was December, 2011 or approximately 8 years ago.  Even most long-term release distributions provide only 3 or 5 years support, so the number of users for Octave who require this feature is already very small.

--Rik
Reply | Threaded
Open this post in threaded view
|

Re: dropping QT4 support

John W. Eaton
Administrator
On 11/4/19 10:37 AM, Rik wrote:
> "John W. Eaton" <[hidden email]> wrote:

>> We discussed dropping support for Qt4 back in March and June of this
>> year.  I think most of us agreed that it was a good idea but we
>> haven't followed through.
>>
>> If we agree that this is the right move for 6.1, then I'm willing to
>> do most or all of the work to fix the configure script and start
>> updating the sources immediately.  If we delay, I think we will have
>> to wait until after the 6.1 release as this is a fairly big change so
>> deserves sufficient time for testing.
>
> No objection.  The last Qt4 release was December, 2011 or approximately
> 8 years ago.  Even most long-term release distributions provide only 3
> or 5 years support, so the number of users for Octave who require this
> feature is already very small.

I thought I would have time to work on this issue by now but all my
spare moments disappeared.  So for version 6 I think it is best to keep
support for Qt4 in the sources but consider it unsupported.  Then we can
move forward with removing support for it early in the version 7
development cycle.

jwe


Reply | Threaded
Open this post in threaded view
|

Re: dropping QT4 support

siko1056
On 12/14/19 1:15 PM, John W. Eaton wrote:

> On 11/4/19 10:37 AM, Rik wrote:
>> "John W. Eaton" <[hidden email]> wrote:
>
>>> We discussed dropping support for Qt4 back in March and June of this
>>> year.  I think most of us agreed that it was a good idea but we
>>> haven't followed through.
>>>
>>> If we agree that this is the right move for 6.1, then I'm willing to
>>> do most or all of the work to fix the configure script and start
>>> updating the sources immediately.  If we delay, I think we will have
>>> to wait until after the 6.1 release as this is a fairly big change so
>>> deserves sufficient time for testing.
>>
>> No objection.  The last Qt4 release was December, 2011 or
>> approximately 8 years ago.  Even most long-term release distributions
>> provide only 3 or 5 years support, so the number of users for Octave
>> who require this feature is already very small.
>
> I thought I would have time to work on this issue by now but all my
> spare moments disappeared.  So for version 6 I think it is best to keep
> support for Qt4 in the sources but consider it unsupported.  Then we can
> move forward with removing support for it early in the version 7
> development cycle.
>
> jwe
>
>

Yes, might be too time consuming removing all Qt4/Qt5 branches for 6.1.
 I can add a note to NEWS similar to 5.1.0 [1]

### Dependencies

- The GUI requires Qt libraries.  The minimum Qt version supported is
  Qt5.X.  Qt4 is no longer supported.

What minor Qt5 revision X in 5.X does Octave support now?  5.9 is a Qt
LTS, supported until middle of 2020 [2].  Compared to some Linux
distributions:

CentOS (7, June 2024 [3])          ==> 5.9.7  [12]
CentOS (8,  May 2029 [3])          ==> 5.11.1 [12]
Debian (Jessie,  June 2020 [7])    ==> 5.3.2  [4]
Debian (Stretch, June 2022 [7])    ==> 5.7.1  [5]
Debian (Buster,       2024 [7])    ==> 5.11.3 [6]
Ubuntu (14.04 LTS, April 2022 [8]) ==> 5.2.1  [9]
Ubuntu (16.04 LTS, April 2024 [8]) ==> 5.5.1  [10]
Ubuntu (18.04 LTS, April 2028 [8]) ==> 5.9.5  [11]

The only blockers here might be Debian Stretch and Ubuntu (16.04).  I
suggest to require 5.9 LTS.  On servers, mostly relying on LTS versions
a lot, there might not be a need for a Qt GUI in customized builds of
newer Octave versions.  Functional octave versions with respective
dependencies are provided by the distributors.

Best,
Kai

[1]:
https://hg.savannah.gnu.org/hgweb/octave/file/f426dd9750a3/etc/NEWS.5#l68
[2]: https://en.wikipedia.org/wiki/Qt_version_history
[3]: https://en.wikipedia.org/wiki/CentOS#End-of-support_schedule
[4]: https://packages.debian.org/jessie/qtbase5-dev
[5]: https://packages.debian.org/stretch/qtbase5-dev
[6]: https://packages.debian.org/buster/qtbase5-dev
[7]: https://en.wikipedia.org/wiki/Debian_version_history#Release_table
[8]: https://en.wikipedia.org/wiki/Ubuntu_version_history#Table_of_versions
[9]: https://packages.ubuntu.com/trusty/allpackages (search "qtbase5-dev")
[10]: https://packages.ubuntu.com/xenial/qtbase5-dev
[11]: https://packages.ubuntu.com/bionic/qtbase5-dev
[12]: yum info qt5-qtbase-devel (on that system)

Reply | Threaded
Open this post in threaded view
|

Re: dropping QT4 support

Rik-4
On 12/14/2019 06:15 PM, Kai Torben Ohlhus wrote:

> On 12/14/19 1:15 PM, John W. Eaton wrote:
>> On 11/4/19 10:37 AM, Rik wrote:
>>> "John W. Eaton" <[hidden email]> wrote:
>>>> We discussed dropping support for Qt4 back in March and June of this
>>>> year.  I think most of us agreed that it was a good idea but we
>>>> haven't followed through.
>>>>
>>>> If we agree that this is the right move for 6.1, then I'm willing to
>>>> do most or all of the work to fix the configure script and start
>>>> updating the sources immediately.  If we delay, I think we will have
>>>> to wait until after the 6.1 release as this is a fairly big change so
>>>> deserves sufficient time for testing.
>>> No objection.  The last Qt4 release was December, 2011 or
>>> approximately 8 years ago.  Even most long-term release distributions
>>> provide only 3 or 5 years support, so the number of users for Octave
>>> who require this feature is already very small.
>> I thought I would have time to work on this issue by now but all my
>> spare moments disappeared.  So for version 6 I think it is best to keep
>> support for Qt4 in the sources but consider it unsupported.  Then we can
>> move forward with removing support for it early in the version 7
>> development cycle.
>>
>> jwe
>>
>>
> Yes, might be too time consuming removing all Qt4/Qt5 branches for 6.1.
>  I can add a note to NEWS similar to 5.1.0 [1]
>
> ### Dependencies
>
> - The GUI requires Qt libraries.  The minimum Qt version supported is
>   Qt5.X.  Qt4 is no longer supported.
>
> What minor Qt5 revision X in 5.X does Octave support now?  5.9 is a Qt
> LTS, supported until middle of 2020 [2].  Compared to some Linux
> distributions:
>
> CentOS (7, June 2024 [3])          ==> 5.9.7  [12]
> CentOS (8,  May 2029 [3])          ==> 5.11.1 [12]
> Debian (Jessie,  June 2020 [7])    ==> 5.3.2  [4]
> Debian (Stretch, June 2022 [7])    ==> 5.7.1  [5]
> Debian (Buster,       2024 [7])    ==> 5.11.3 [6]
> Ubuntu (14.04 LTS, April 2022 [8]) ==> 5.2.1  [9]
> Ubuntu (16.04 LTS, April 2024 [8]) ==> 5.5.1  [10]
> Ubuntu (18.04 LTS, April 2028 [8]) ==> 5.9.5  [11]
>
> The only blockers here might be Debian Stretch and Ubuntu (16.04).  I
> suggest to require 5.9 LTS.  On servers, mostly relying on LTS versions
> a lot, there might not be a need for a Qt GUI in customized builds of
> newer Octave versions.  Functional octave versions with respective
> dependencies are provided by the distributors.
>
> Best,
> Kai
>
> [1]:
> https://hg.savannah.gnu.org/hgweb/octave/file/f426dd9750a3/etc/NEWS.5#l68
> [2]: https://en.wikipedia.org/wiki/Qt_version_history
> [3]: https://en.wikipedia.org/wiki/CentOS#End-of-support_schedule
> [4]: https://packages.debian.org/jessie/qtbase5-dev
> [5]: https://packages.debian.org/stretch/qtbase5-dev
> [6]: https://packages.debian.org/buster/qtbase5-dev
> [7]: https://en.wikipedia.org/wiki/Debian_version_history#Release_table
> [8]: https://en.wikipedia.org/wiki/Ubuntu_version_history#Table_of_versions
> [9]: https://packages.ubuntu.com/trusty/allpackages (search "qtbase5-dev")
> [10]: https://packages.ubuntu.com/xenial/qtbase5-dev
> [11]: https://packages.ubuntu.com/bionic/qtbase5-dev
> [12]: yum info qt5-qtbase-devel (on that system)
>
>

I checked in this changeset
(https://hg.savannah.gnu.org/hgweb/octave/rev/a8c5255c34b1) which announces
the change in the NEWS file and emits a warning about the deprecation if a
user runs configure with the option '--with-qt=4'.

Also, I am not able to compile the dev version of Octave with Qt4.  I filed
a bug about that here: https://savannah.gnu.org/bugs/index.php?57420.

--Rik