Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Qt wrapper causes closure bloat #69272

Closed
edolstra opened this issue Sep 22, 2019 · 3 comments
Closed

Qt wrapper causes closure bloat #69272

edolstra opened this issue Sep 22, 2019 · 3 comments
Assignees
Labels
0.kind: bug Something is broken 1.severity: blocker This is preventing another PR or issue from being completed 6.topic: closure size The final size of a derivation, including its dependencies 6.topic: qt/kde
Milestone

Comments

@edolstra
Copy link
Member

In NixOS 19.09 beta, every Qt/KDE application has a lot of unnecessary build-time dependencies in their closure, e.g. /nix/store/hqbzf9k4chwn4ch8naka5c4r6mpa5gqv-kinit-5.61.0/bin/kdeinit5 :

#! /nix/store/l6h4ya0wzb4b8mr0y58k2gh2nhfql4sn-bash-4.4-p23/bin/bash -e
export XDG_DATA_DIRS='/nix/store/4pqwfzl7mqd1rir9fhg62wwb1jmbnmcc-cmake-3.15.1/share'${XDG_DATA_DIRS:+':'}$XDG_DATA_DIRS
export XDG_DATA_DIRS='/nix/store/gyh4j0wwlry6wx4rkpb6bzyic2b1wjqx-pkg-config-0.29.2/share'${XDG_DATA_DIRS:+':'}$XDG_DATA_DIRS
export XDG_DATA_DIRS='/nix/store/fm6a6gxvibzsrf0hb53cxwynx630773z-kdoctools-5.61.0-dev/share'${XDG_DATA_DIRS:+':'}$XDG_DATA_DIRS
...

and so on for about 70 dependencies.

It also bloats the environment, for example in konsole I get

$ echo $XDG_DATA_DIRS 
/nix/store/hqbzf9k4chwn4ch8naka5c4r6mpa5gqv-kinit-5.61.0/share:/nix/store/xajgwvjkmqdiiqvimx3h5mnffly1i98l-kio-5.61.0/share:/nix/store/3vh6xxni2wq61skhmlm5hna62aad7031-kio-5.61.0-bin/share:/nix/store/5gisv4if8j6wbzxbcfhm50kf3j3rcdgz-kwallet-5.61.0/share:/nix/store/pr4v3di20qm3wybnn5c1vy34y77jzqwr-kwallet-5.61.0-bin/share:/nix/store/r264nvgmwsgzcgnl8jia82nkfpjh0baj-knotifications-5.61.0/share:/nix/store/m43ilc0yhz79h98bys7f29102jndia97-knotifications-5.61.0-bin/share:/nix/store/a934d5hlwlswzll46hhar665y1bgyapy-phonon-qt5-4.10.3/share:/nix/store/kqkakdj3v9zlxssjyphggshryi8w6cyc-solid-5.61.0/share:/nix/store/5x7zrxqgx0yswnysl1hjcvjidnr2x8c1-kjobwidgets-5.61.0/share:/nix/store/hqhx7y8vx1gpq6fhi9p1pk9lvxq2pd9l-kjobwidgets-5.61.0-bin/share:/nix/store/4i5pyn84x8n9r3fpkb3r2sgbzwxi5rk2-kbookmarks-5.61.0/share:/nix/store/xk7zrs1169xjj0z0qad6dn0f8y7fbpyh-kxmlgui-5.61.0/share:/nix/store/f1jr00jrfcka9qk365n55r0znmyzzhxz-ktextwidgets-5.61.0/share:/nix/store/agmwbcpzrc1vjwfmkhfdcvac6fmbgwdj-ktextwidgets-5.61.0-bin/share:/nix/store/7q2v3brg7xg8i209b7g6pkpxnrddrnb4-kcompletion-5.61.0/share:/nix/store/8iyyl228b3pkqha8lvr4qn8n8yqrq3qm-sonnet-5.61.0/share:/nix/store/s7vnb16gcfficxp1414zlm0ma8ilh25y-kglobalaccel-5.61.0/share:/nix/store/fi4z4sxnh6xv3163gnpzw1qgbp794i8m-kservice-5.61.0/share:/nix/store/s3fzhwnhs5q1ham88gqxvbmi6p4l3pf6-kservice-5.61.0-bin/share:/nix/store/0vraq18lgd07h1i0pfxhlmr3xbby49m2-kdbusaddons-5.61.0/share:/nix/store/h1fzpsglrv24i4vrgz5c9r9s0sh5fsyb-kiconthemes-5.61.0/share:/nix/store/njki65r6vvs23aah3q00q6phf35lppxa-kitemviews-5.61.0/share:/nix/store/qxf1c5000ayav5g8iv2gy4xkwip261fh-kconfigwidgets-5.61.0/share:/nix/store/x4zz42vj76d3c4bn24gww2pivxhdsdfy-kcodecs-5.61.0/share:/nix/store/w4zdiswzy4zmdh137q1pwgm2vp3xwxm4-kglobalaccel-5.61.0-bin/share:/nix/store/8znkycp1zklajmni743i1zrnq33v64wh-kauth-5.61.0/share:/nix/store/4z8q0yrpampzx4gpw14mks1lv8xim5vy-kwidgetsaddons-5.61.0/share:/nix/store/0ipp8rqn4n5sagsk078yznkl0idd0sbg-kcoreaddons-5.61.0/share:/nix/store/i026ap5jd7d5amfwq7mqjqr9bk2s4mf3-kcoreaddons-5.61.0-bin/share:/nix/store/c1bi65nf6vyfs4zp1jqnliq3gw074ky1-kwindowsystem-5.61.0/share:/nix/store/p7fgxa11ril4jxax0sgsn89xmq3wsl01-kconfig-5.61.0/share:/nix/store/mg1cawlixq115yxi587v9fkm32iihfjy-patchelf-0.9/share:/nix/store/b6mh0wglpy9k8m1f019g5j53najpf1hm-flex-2.6.4/share:/nix/store/j5irapsl6f9giximi74qc4viqq37q7ba-bison-3.4.1/share:/nix/store/ldx503mm7pwb037z03p7nzch10arnrl5-kdoctools-5.61.0/share:/nix/store/ni5m94zdw5yps8zbfj10b0623paz5xnx-ki18n-5.61.0/share:/nix/store/6a40srfrb6j4dn9dmf2rknarivd0anrk-qtbase-5.12.3/share:/nix/store/ag67dibj50z39rw1sr39zjd0dx6zcf2d-systemd-243/share:/nix/store/klb3xgywxi7b0d2i574q5hxwglnh7qqr-systemd-243-lib/share:/nix/store/ilk1606qj4pqzsplnnzycsxpzl6pjss8-glib-2.60.7/share:/nix/store/sdkmkbhdk886jlk43b2qswl42vadnyzx-gettext-0.19.8.1/share:/nix/store/kadjpkvp0hkxn2aw8jfph65cglnwjjk7-dbus-1.12.16/share:/nix/store/n7i4v3zz3xqg94w2wavdxj77g3gr18if-expat-2.2.7/share:/nix/store/yk8lp0x7sml42gaf9gfkr6cwx99glz7b-xz-5.2.4/share:/nix/store/fm6a6gxvibzsrf0hb53cxwynx630773z-kdoctools-5.61.0-dev/share:/nix/store/gyh4j0wwlry6wx4rkpb6bzyic2b1wjqx-pkg-config-0.29.2/share:/nix/store/4pqwfzl7mqd1rir9fhg62wwb1jmbnmcc-cmake-3.15.1/share:/nix/store/hqbzf9k4chwn4ch8naka5c4r6mpa5gqv-kinit-5.61.0/share:/nix/store/xajgwvjkmqdiiqvimx3h5mnffly1i98l-kio-5.61.0/share:/nix/store/3vh6xxni2wq61skhmlm5hna62aad7031-kio-5.61.0-bin/share:/nix/store/5gisv4if8j6wbzxbcfhm50kf3j3rcdgz-kwallet-5.61.0/share:/nix/store/pr4v3di20qm3wybnn5c1vy34y77jzqwr-kwallet-5.61.0-bin/share:/nix/store/r264nvgmwsgzcgnl8jia82nkfpjh0baj-knotifications-5.61.0/share:/nix/store/m43ilc0yhz79h98bys7f29102jndia97-knotifications-5.61.0-bin/share:/nix/store/a934d5hlwlswzll46hhar665y1bgyapy-phonon-qt5-4.10.3/share:/nix/store/kqkakdj3v9zlxssjyphggshryi8w6cyc-solid-5.61.0/share:/nix/store/5x7zrxqgx0yswnysl1hjcvjidnr2x8c1-kjobwidgets-5.61.0/share:/nix/store/hqhx7y8vx1gpq6fhi9p1pk9lvxq2pd9l-kjobwidgets-5.61.0-bin/share:/nix/store/4i5pyn84x8n9r3fpkb3r2sgbzwxi5rk2-kbookmarks-5.61.0/share:/nix/store/xk7zrs1169xjj0z0qad6dn0f8y7fbpyh-kxmlgui-5.61.0/share:/nix/store/f1jr00jrfcka9qk365n55r0znmyzzhxz-ktextwidgets-5.61.0/share:/nix/store/agmwbcpzrc1vjwfmkhfdcvac6fmbgwdj-ktextwidgets-5.61.0-bin/share:/nix/store/7q2v3brg7xg8i209b7g6pkpxnrddrnb4-kcompletion-5.61.0/share:/nix/store/8iyyl228b3pkqha8lvr4qn8n8yqrq3qm-sonnet-5.61.0/share:/nix/store/s7vnb16gcfficxp1414zlm0ma8ilh25y-kglobalaccel-5.61.0/share:/nix/store/fi4z4sxnh6xv3163gnpzw1qgbp794i8m-kservice-5.61.0/share:/nix/store/s3fzhwnhs5q1ham88gqxvbmi6p4l3pf6-kservice-5.61.0-bin/share:/nix/store/0vraq18lgd07h1i0pfxhlmr3xbby49m2-kdbusaddons-5.61.0/share:/nix/store/h1fzpsglrv24i4vrgz5c9r9s0sh5fsyb-kiconthemes-5.61.0/share:/nix/store/njki65r6vvs23aah3q00q6phf35lppxa-kitemviews-5.61.0/share:/nix/store/qxf1c5000ayav5g8iv2gy4xkwip261fh-kconfigwidgets-5.61.0/share:/nix/store/x4zz42vj76d3c4bn24gww2pivxhdsdfy-kcodecs-5.61.0/share:/nix/store/w4zdiswzy4zmdh137q1pwgm2vp3xwxm4-kglobalaccel-5.61.0-bin/share:/nix/store/8znkycp1zklajmni743i1zrnq33v64wh-kauth-5.61.0/share:/nix/store/4z8q0yrpampzx4gpw14mks1lv8xim5vy-kwidgetsaddons-5.61.0/share:/nix/store/0ipp8rqn4n5sagsk078yznkl0idd0sbg-kcoreaddons-5.61.0/share:/nix/store/i026ap5jd7d5amfwq7mqjqr9bk2s4mf3-kcoreaddons-5.61.0-bin/share:/nix/store/c1bi65nf6vyfs4zp1jqnliq3gw074ky1-kwindowsystem-5.61.0/share:/nix/store/p7fgxa11ril4jxax0sgsn89xmq3wsl01-kconfig-5.61.0/share:/nix/store/mg1cawlixq115yxi587v9fkm32iihfjy-patchelf-0.9/share:/nix/store/b6mh0wglpy9k8m1f019g5j53najpf1hm-flex-2.6.4/share:/nix/store/j5irapsl6f9giximi74qc4viqq37q7ba-bison-3.4.1/share:/nix/store/ldx503mm7pwb037z03p7nzch10arnrl5-kdoctools-5.61.0/share:/nix/store/ni5m94zdw5yps8zbfj10b0623paz5xnx-ki18n-5.61.0/share:/nix/store/6a40srfrb6j4dn9dmf2rknarivd0anrk-qtbase-5.12.3/share:/nix/store/ag67dibj50z39rw1sr39zjd0dx6zcf2d-systemd-243/share:/nix/store/klb3xgywxi7b0d2i574q5hxwglnh7qqr-systemd-243-lib/share:/nix/store/ilk1606qj4pqzsplnnzycsxpzl6pjss8-glib-2.60.7/share:/nix/store/sdkmkbhdk886jlk43b2qswl42vadnyzx-gettext-0.19.8.1/share:/nix/store/kadjpkvp0hkxn2aw8jfph65cglnwjjk7-dbus-1.12.16/share:/nix/store/n7i4v3zz3xqg94w2wavdxj77g3gr18if-expat-2.2.7/share:/nix/store/yk8lp0x7sml42gaf9gfkr6cwx99glz7b-xz-5.2.4/share:/nix/store/fm6a6gxvibzsrf0hb53cxwynx630773z-kdoctools-5.61.0-dev/share:/nix/store/gyh4j0wwlry6wx4rkpb6bzyic2b1wjqx-pkg-config-0.29.2/share:/nix/store/4pqwfzl7mqd1rir9fhg62wwb1jmbnmcc-cmake-3.15.1/share:/home/eelco/.nix-profile/share:/etc/profiles/per-user/eelco/share:/nix/var/nix/profiles/default/share:/run/current-system/sw/share

This appears to be caused by #54525. Ping @ttuegel.

Marking this as a blocker for 19.09 since making every build-time dependency a runtime dependency kind of negates any closure size improvements made in recent years. In that light I would be in favor of reverting #54525.

@edolstra edolstra added 0.kind: bug Something is broken 6.topic: qt/kde 1.severity: blocker This is preventing another PR or issue from being completed 6.topic: closure size The final size of a derivation, including its dependencies labels Sep 22, 2019
@edolstra edolstra added this to the 19.09 milestone Sep 22, 2019
@edolstra edolstra mentioned this issue Sep 22, 2019
10 tasks
@ttuegel
Copy link
Member

ttuegel commented Sep 23, 2019

The wrapper specifically targets host inputs, so I think this is just a matter of some packages leaking build tools out of nativeBuildInputs, and a revert would not be necessary.

@ttuegel ttuegel self-assigned this Sep 23, 2019
@ttuegel
Copy link
Member

ttuegel commented Sep 23, 2019

Regarding the duplicated environment entries, I commented here that this is a known issue with makeWrapper.

@ttuegel
Copy link
Member

ttuegel commented Sep 26, 2019

This needs only to merge staging-19.09 into release-19.09.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
0.kind: bug Something is broken 1.severity: blocker This is preventing another PR or issue from being completed 6.topic: closure size The final size of a derivation, including its dependencies 6.topic: qt/kde
Projects
None yet
Development

No branches or pull requests

3 participants