Skip to content

Comments

kdeApplications: Use latest qt515 by default#101369

Merged
FRidh merged 18 commits intoNixOS:masterfrom
doronbehar:pkg/kdeApplications/qt515
Nov 1, 2020
Merged

kdeApplications: Use latest qt515 by default#101369
FRidh merged 18 commits intoNixOS:masterfrom
doronbehar:pkg/kdeApplications/qt515

Conversation

@doronbehar
Copy link
Contributor

@doronbehar doronbehar commented Oct 22, 2020

Motivation for this change

Fix #100707 , Fix #102167 , Fix #100854 , Fix #98268. (cc @ttuegel ).

Things done
  • Iterate all qt applications affected and make sure they work.

In order to do that, before building, one can verify whether incompatible versions are used using the following steps:

  1. Download this script: https://paste.sr.ht/~jorsn/307bd7a99855c7d6f34923ebe2f41a9f2d0f6f8a and save it as dep-ver-consistent.nix.
  2. Run the following to test for incompatible versions with $pkg substituted for the attribute path you want to test:
$(nix-build --no-out-link -A nixUnstable)/bin/nix eval --impure  --expr \
  'with import ./. {}; import ./dep-ver-consistent.nix lib false 4 "qtbase" '$pkg

You can use 1 or 2 or any other number instead of 4 in the command above to adjust the depth for which inputs of inputs will be checked. The command will print true if no issues are found, and false + a trace, if there _are _ incompatible qt versions used.

Given a list of attributes in a file you can iterate them all with:

cat broken-for-sure | while read pkg; do
 $(nix-build --no-out-link -A nixUnstable)/bin/nix eval --impure --expr 'with import ./. {}; import ./dep-ver-consistent.nix lib false 4 "qtbase" '$pkg
done

I think all of affected packages now have no mismatched versions used together, up to depth 4. Upcoming ofborg evals may tell differently.

Here's the current list of affected packages, kdeFrameworks. and kdeApplications. prefixes were cut in favor of maintaining uniqueness.

  • akonadi
  • akonadi-calendar
  • akonadiconsole
  • akonadi-contacts
  • akonadi-import-wizard
  • akonadi-mime
  • akonadi-notes
  • akonadi-search
  • akregator
  • alkimia
  • amarok
  • amarok-kf5
  • antimicroX
  • ark
  • attica
  • baloo
  • baloo-widgets
  • bcompare
  • bluedevil
  • bluez-qt
  • bomber
  • bovo
  • breeze-gtk
  • breeze-icons
  • breeze-plymouth
  • breeze-qt5
  • calamares
  • calendarsupport
  • calligra
  • colord-kde
  • digikam
  • discover
  • dolphin
  • dolphin-plugins
  • dragon
  • drawpile
  • drawpile-server-headless
  • elisa
  • espanso
  • eventviews
  • extra-cmake-modules
  • falkon
  • fcitx
  • fcitx-configtool
  • fcitx-engines.anthy
  • fcitx-engines.chewing
  • fcitx-engines.cloudpinyin
  • fcitx-engines.hangul
  • fcitx-engines.libpinyin
  • fcitx-engines.m17n
  • fcitx-engines.mozc
  • fcitx-engines.rime
  • fcitx-engines.skk
  • fcitx-engines.table-extra
  • fcitx-engines.table-other
  • fcitx-engines.unikey
  • fcitx-qt5
  • ffmpegthumbs
  • filelight
  • flat-remix-icon-theme
  • frameworkintegration
  • gmic-qt-krita
  • granatier
  • grantleetheme
  • gwenview
  • heaptrack
  • hotspot
  • incidenceeditor
  • k3b
  • k4dirstat
  • k9copy
  • kactivities
  • kactivities-stats
  • kactivitymanagerd
  • kaddressbook
  • kalarm
  • kalarmcal
  • kalzium
  • kapidox
  • kapman
  • kapptemplate
  • karchive
  • kate
  • katomic
  • kauth
  • kblackbox
  • kblocks
  • kbookmarks
  • kbounce
  • kbreakout
  • kcachegrind
  • kcalc
  • kcalendarcore
  • kcalutils
  • kcharselect
  • kcmutils
  • kcodecs
  • kcolorchooser
  • kcompletion
  • kconfig
  • kconfigwidgets
  • kcontacts
  • kcoreaddons
  • kcrash
  • kdav
  • kdb
  • kdbg
  • kdbusaddons
  • kde2-decoration
  • kdebugsettings
  • kdeclarative
  • kde-cli-tools
  • kdeconnect
  • kdecoration
  • kded
  • kdegraphics-mobipocket
  • kdegraphics-thumbnailers
  • kde-gtk-config
  • kdelibs4support
  • kdenetwork-filesharing
  • kdenlive
  • kdepim-addons
  • kdepim-apps-libs
  • kdepim-runtime
  • kdeplasma-addons
  • kdesignerplugin
  • kdesu
  • kdevelop
  • kdevelop-pg-qt
  • kdevelop-unwrapped
  • kdev-php
  • kdev-python
  • kdewebkit
  • kdf
  • kdiagram
  • kdialog
  • kdiamond
  • kdiff3
  • kdnssd
  • kdoctools
  • keditbookmarks
  • kemoticons
  • kexi
  • keysmith
  • kf5gpgmepp
  • kfilemetadata
  • kfind
  • kfloppy
  • kgamma5
  • kgeography
  • kget
  • kglobalaccel
  • kgpg
  • kgraphviewer
  • kguiaddons
  • khelpcenter
  • kholidays
  • khotkeys
  • khtml
  • ki18n
  • kiconthemes
  • kid3
  • kidentitymanagement
  • kidletime
  • kig
  • kigo
  • kile
  • killbots
  • kimageformats
  • kimap
  • kinfocenter
  • kinit
  • kio
  • kio-extras
  • kipi-plugins
  • kirigami2
  • kitemmodels
  • kitemviews
  • kitinerary
  • kjobwidgets
  • kjs
  • kjsembed
  • kldap
  • kleopatra
  • klettres
  • klines
  • kmag
  • kmahjongg
  • kmail
  • kmail-account-wizard
  • kmailtransport
  • kmbox
  • kmediaplayer
  • kmenuedit
  • kmime
  • kmines
  • kmix
  • kmplayer
  • kmplot
  • kmymoney
  • knavalbattle
  • knetwalk
  • knewstuff
  • knights
  • knotes
  • knotifications
  • knotifyconfig
  • kolf
  • kollision
  • kolourpaint
  • kompare
  • konqueror
  • konquest
  • konsole
  • kontact
  • kontactinterface
  • konversation
  • korganizer
  • kpackage
  • kparts
  • kpat
  • kpeople
  • kpeoplevcard
  • kpimtextedit
  • kpkpass
  • kplotting
  • kpmcore
  • kproperty
  • kpty
  • kpurpose
  • kqtquickcharts
  • kquickcharts
  • krdc
  • krename
  • kreport
  • kreversi
  • krfb
  • krita
  • krohnkite
  • kronometer
  • kross
  • kruler
  • krunner
  • krunner-pass
  • krusader
  • kscreen
  • kscreenlocker
  • kservice
  • kshisen
  • ksmoothdock
  • ksmtp
  • kspaceduel
  • ksquares
  • ksshaskpass
  • kstars
  • ksudoku
  • ksysguard
  • ksystemlog
  • kteatime
  • ktexteditor
  • ktextwidgets
  • ktimer
  • ktimetracker
  • ktnef
  • ktorrent
  • ktouch
  • kturtle
  • kunitconversion
  • kwallet
  • kwalletcli
  • kwalletmanager
  • kwallet-pam
  • kwave
  • kwayland
  • kwayland-integration
  • kwidgetsaddons
  • kwin
  • kwindowsystem
  • kwin-dynamic-workspaces
  • kwin-tiling
  • kwrited
  • kxmlgui
  • kxmlrpcclient
  • latte-dock
  • libgravatar
  • libkcddb
  • libkdcraw
  • libkdegames
  • libkdepim
  • libkexiv2
  • libkgapi
  • libkipi
  • libkleo
  • libkmahjongg
  • libkomparediff2
  • libksane
  • libkscreen
  • libksieve
  • libksysguard
  • libktorrent
  • libqtav
  • libreoffice-qt
  • luna-icons
  • lxqt.lxqt-config
  • maia-icon-theme
  • mailcommon
  • mailimporter
  • marble
  • massif-visualizer
  • mbox-importer
  • messagelib
  • milou
  • minitube
  • minuet
  • mlterm
  • modemmanager-qt
  • networkmanager-qt
  • okteta
  • okular
  • oxygen
  • oxygen-icons5
  • papirus-icon-theme
  • papirus-maia-icon-theme
  • partition-manager
  • peruse
  • phonon
  • phonon-backend-gstreamer
  • phonon-backend-vlc
  • photoqt
  • picmi
  • pimcommon
  • pim-data-exporter
  • pim-sieve-editor
  • plasma-applet-caffeine-plus
  • plasma-applet-volumewin7mixer
  • plasma-browser-integration
  • plasma-desktop
  • plasma-framework
  • plasma-integration
  • plasma-nm
  • plasma-pa
  • plasma-vault
  • plasma-wayland-protocols
  • plasma-workspace
  • plasma-workspace-wallpapers
  • playbar2
  • polkit-kde-agent
  • pop-icon-theme
  • powerdevil
  • print-manager
  • prison
  • pulseaudio-qt
  • qqc2-desktop-style
  • qstopmotion
  • qtcurve
  • quassel
  • quasselClient
  • redshift-plasma-applet
  • rocs
  • rsibreak
  • sddm
  • sddm-kcm
  • skanlite
  • skrooge
  • solid
  • sonnet
  • soundkonverter
  • spectacle
  • syncthingtray
  • syndication
  • syntax-highlighting
  • systemsettings
  • tellico
  • threadweaver
  • tora
  • trojita
  • user-manager
  • virt-manager-qt
  • wacomtablet
  • x2goclient
  • xdg-desktop-portal-kde
  • yakuake
  • zafiro-icons
  • zanshin
  • zeal
  • zombietrackergps
  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
  • Built on platform(s)
    • NixOS
    • macOS
    • other Linux distributions
  • Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
  • Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Determined the impact on package closure size (by running nix path-info -S before and after)
  • Ensured that relevant documentation is up to date
  • Fits CONTRIBUTING.md.

@ofborg ofborg bot added the ofborg-internal-error Ofborg encountered an error label Oct 22, 2020
@doronbehar doronbehar force-pushed the pkg/kdeApplications/qt515 branch from e0d667b to ed82afe Compare October 22, 2020 14:35
@ofborg ofborg bot added 10.rebuild-darwin: 1-10 This PR causes between 1 and 10 packages to rebuild on Darwin. 10.rebuild-darwin: 1 This PR causes 1 package to rebuild on Darwin. 10.rebuild-linux: 101-500 This PR causes between 101 and 500 packages to rebuild on Linux. labels Oct 22, 2020
@cole-h cole-h removed the ofborg-internal-error Ofborg encountered an error label Oct 22, 2020
@doronbehar doronbehar added the 6.topic: qt/kde Object-oriented framework for GUI creation label Oct 22, 2020
@doronbehar doronbehar force-pushed the pkg/kdeApplications/qt515 branch from ed82afe to ead227d Compare October 22, 2020 20:44
@doronbehar doronbehar mentioned this pull request Oct 22, 2020
10 tasks
@ofborg ofborg bot added 10.rebuild-darwin: 11-100 This PR causes between 11 and 100 packages to rebuild on Darwin. 10.rebuild-linux: 501+ This PR causes many rebuilds on Linux and should normally target the staging branches. 10.rebuild-linux: 501-1000 This PR causes many rebuilds on Linux and should normally target the staging branches. and removed 6.topic: qt/kde Object-oriented framework for GUI creation 10.rebuild-darwin: 1 This PR causes 1 package to rebuild on Darwin. 10.rebuild-darwin: 1-10 This PR causes between 1 and 10 packages to rebuild on Darwin. 10.rebuild-linux: 101-500 This PR causes between 101 and 500 packages to rebuild on Linux. labels Oct 22, 2020
@doronbehar
Copy link
Contributor Author

doronbehar commented Oct 23, 2020

The list above was filtered from the original ofborg eval gist with:

curl -Ls 'https://gist.githubusercontent.com/GrahamcOfBorg/851d243bb3123e5c5985f1ffcbf2c64c/raw/2977e56f16ed4da57f125099736af2198bcccfaa/Changed%2520Paths' | awk '{sub(/(libsForQt5.?.?|kde(Applications|Frameworks)|plasma5)\./, "", $2); print "   - [ ] "$2}' | sort -u | wlc```

@doronbehar doronbehar force-pushed the pkg/kdeApplications/qt515 branch 2 times, most recently from 80d8558 to 2de9cf7 Compare October 23, 2020 07:27
doronbehar added a commit to doronbehar/nixpkgs that referenced this pull request Oct 23, 2020
Make sure only compatible qt versions are used for it (NixOS#101369) -
kdeFrameworks is always using `libsForQt5` where e.g
`libsForQt514.kpmcore` would have otherwise used a kio compiled with
qt515.
doronbehar added a commit to doronbehar/nixpkgs that referenced this pull request Oct 23, 2020
Part of NixOS#101369: In order to avoid packages using the default `kdesu`
always built with qt515, we put it in scope only for packages defined
with a `libsForQt5`, to avoid incompatible qt versions used together in
inputs of a package.
@doronbehar
Copy link
Contributor Author

All of the above now don't use mixed qt versions.

@nixos-discourse
Copy link

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:

https://discourse.nixos.org/t/456-potentially-broken-qt-applications-libraries-need-your-help/9609/1

@doronbehar
Copy link
Contributor Author

From kile, I get:

ZENIX-selection-2020-10-23T10:34:35+03:00

I wonder if it means it's broken or it's just because I don't use kde. cc @piegamesde .

Use fetchFromGitLab as it seems to be unavailable in the previous url.
@FRidh
Copy link
Member

FRidh commented Nov 1, 2020

Just a note for myself.

The following is the KDE Plasma release schedule https://community.kde.org/Schedules/Plasma_5#Support_status_by_Release_Series.

We currently have:

@FRidh
Copy link
Member

FRidh commented Nov 1, 2020

@doronbehar the kdeconnect revert got removed

edit: nevermind, it got moved as it should

@FRidh FRidh mentioned this pull request Nov 1, 2020
10 tasks
@FRidh
Copy link
Member

FRidh commented Nov 1, 2020

My system is running on this PR now without issues.

@FRidh
Copy link
Member

FRidh commented Nov 1, 2020

Backport PR #102347

FRidh pushed a commit to FRidh/nixpkgs that referenced this pull request Nov 1, 2020
Backport of the PR NixOS#101369.
All commits have been squashed, and other minor changes were made as
well to align the state of 20.09 with that of master.
@FRidh
Copy link
Member

FRidh commented Nov 1, 2020

Looking at it again, I think we may have gone too far regarding using aliases here. The applications should still be available from all-packages.nix, as long as the dependencies of each application are consistent.

@doronbehar
Copy link
Contributor Author

Looking at it again, I think we may have gone too far regarding using aliases here. The applications should still be available from all-packages.nix, as long as the dependencies of each application are consistent.

I disagree. The issue is also explained in the commit message of b5c6505 - many attributes in kdeApplications are also used as inputs to other applications that use libsForQt5.callPackage, and are not part of that set. If we (at least in the meantime) don't use a qt-applications.nix, we can never be sure that inheriting them in all-packages.nix will not cause trouble to packages using these "applications" as inputs.

I guess we (I) could have filtered out what was aliased and what was inherited by inspecting each attribute in kdeApplications and check whether it is used as an input or not in any packages, but I concluded it'd be best to alias all of them, to put us as far as possible from this potential issue.

@ajs124
Copy link
Member

ajs124 commented Nov 5, 2020

Hm, this breaks building systems with services.xserver.desktopManager.plasma5.enable = true; and nixpkgs.config.allowAliases = false;.

@alapshin alapshin mentioned this pull request Nov 7, 2020
10 tasks
@FRidh
Copy link
Member

FRidh commented Nov 7, 2020

Nice those undocumented options to Nixpkgs.

Aside from documenting this option, we should also pass it as false in make-test-python.nix. Basically, everywhere we import Nixpkgs from with Nixpkgs it should be false.

@FRidh FRidh mentioned this pull request Nov 7, 2020
10 tasks
jtojnar added a commit that referenced this pull request Nov 9, 2020
@erictapen
Copy link
Member

At first glance this looks to me as backported successfully in #102347.
Will remove the needs: port to stable then. Feel free to readd it if there is something missing.

@erictapen erictapen added 8.has: port to stable This PR already has a backport to the stable release. and removed 9.needs: port to stable A PR needs a backport to the stable release. labels Jan 14, 2021
@doronbehar doronbehar deleted the pkg/kdeApplications/qt515 branch March 2, 2023 10:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

3.skill: sprintable A larger issue which is split into distinct actionable tasks 6.topic: nixos Issues or PRs affecting NixOS modules, or package usability issues specific to NixOS 6.topic: qt/kde Object-oriented framework for GUI creation 8.has: clean-up This PR removes packages or removes other cruft 8.has: module (update) This PR changes an existing module in `nixos/` 8.has: package (new) This PR adds a new package 8.has: port to stable This PR already has a backport to the stable release. 10.rebuild-darwin: 11-100 This PR causes between 11 and 100 packages to rebuild on Darwin. 10.rebuild-linux: 501+ This PR causes many rebuilds on Linux and should normally target the staging branches. 10.rebuild-linux: 1001-2500 This PR causes many rebuilds on Linux and should target the staging branches.

Projects

None yet