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

NixOS closure size increase #8990

Closed
edolstra opened this issue Jul 25, 2015 · 10 comments
Closed

NixOS closure size increase #8990

edolstra opened this issue Jul 25, 2015 · 10 comments

Comments

@edolstra
Copy link
Member

The closure size of my KDE4-based configuration has increased significantly between 14.12 and 15.07 (6ad8fab), from 3.2 GB to 4.1 GB.

Some causes:

  • OpenJDK is now pulled in by libbluray.
  • Mysql has been replaced by mariadb, which is much larger.
  • firmware-linux-nonfree has exploded from 34 MB to 106 MB.
  • Samba has grown by 20 MB.
  • mesa-noglu has a runtime dependency on llvm.
  • libdmtx (whatever that is) now pulls in imagemagick and graphviz.
  • Emacs and librsvg now depends on GTK+ 3, causing the system closure to contain 2 versions of GTK+.
  • Heimdal pulls in flex.
  • Libtool pulls in gnum4.

Non-regressions: the system closure contains linux-dev and 2 versions of ffmpeg.

@edolstra edolstra self-assigned this Jul 25, 2015
@edolstra edolstra added this to the 15.07 milestone Jul 25, 2015
vcunat added a commit that referenced this issue Jul 26, 2015
I found no reason for the dependency at all, and it was even propagated.
Neither Debian nor Arch have any kind of it.
@vcunat
Copy link
Member

vcunat commented Jul 26, 2015

  • Pushed a libdmtx fix.
  • Libtool: it's because I made it a propagated build input in 0ffb988. I don't see any documentation why (and don't remember clearly), so we can try no longer propagating it and fixup builds that do need m4 with libtool. It's ~0.5 MB, pulls in nothing else, and I consider libtool a build tool that shouldn't be in system closures anyway, but we can try it.
  • Heimdal: attribute heimdalFull pulls flex but libHeimdal doesn't. /cc maintainer @wkennington.

@vcunat
Copy link
Member

vcunat commented Jul 26, 2015

  • libbluray: I read java support is required for BR player compliance. /cc maintainer @abbradar. Personally, I wouldn't need any BR support by default in players, but having basic support (without java) might be a good compromise.

@abbradar
Copy link
Member

Fair enough; if someone actually needs it, he can override it for his
video player of choice making build times manageable (disclaimer: I
don't watch BRs by myself and don't know someone who does, so I cannot
assess how common BD-J is). I can't do this till Tuesday, but I don't
mind if you (or someone else) change the withJava default earlier.

On 07/26/2015 11:43 AM, Vladimír Čunát wrote:


Reply to this email directly or view it on GitHub
#8990 (comment).

Nikolay.

vcunat added a commit that referenced this issue Jul 26, 2015
- libXvMC* should be found fine in $drivers
- for d3d state tracker, I don't know how it works,
  but it's a non-critical thing and maybe no nixers use it yet
edolstra added a commit that referenced this issue Jul 26, 2015
GTK+ 2 is still our default, so packages should generally not depend
on GTK+ 3. For instance, this causes Emacs to depend on both GTK+ 2
and 3, which is obviously a bad thing.

Issue #8990.
edolstra added a commit that referenced this issue Jul 26, 2015
Depending on the JDK increases the closure size by a few hundred MB.

Issue #8990.
@edolstra
Copy link
Member Author

Also of interest: the closure contains 3 copies of poppler:

6.2M    /nix/store/grx717yjk1i06db171cp9gfqvs26vsyx-poppler-glib-0.32.0/
6.9M    /nix/store/5sgyjzp9cmpkplzigw8rkdcqywwl82z1-poppler-qt4-0.32.0/
6.8M    /nix/store/1k2zyrww5c0zh71ddabq4ba78zncf97n-poppler-utils-0.32.0/

@vcunat
Copy link
Member

vcunat commented Jul 26, 2015

The separate building of poppler parts is a problem; maybe with some extra amount of work it could be fixed. c0d5cd0 Therefore, we either get a bloat in space or in build-time dependencies (qt4, qt5).

vcunat added a commit that referenced this issue Jul 26, 2015
- Don't use static bin/gs.
- Split docs into a separate output.
- Split fonts into another derivation, so they're not reinstalled when
  something changes.
- Drop --disable-sse2
  e723c512c#commitcomment-12361078
- Some cleanups.
edolstra added a commit that referenced this issue Jul 26, 2015
Packages should not depend on JACK by default to reduce dependency
bloat.

Issue #8990.
edolstra added a commit that referenced this issue Jul 26, 2015
ctheune pushed a commit to ctheune/nixpkgs that referenced this issue Jul 31, 2015
I found no reason for the dependency at all, and it was even propagated.
Neither Debian nor Arch have any kind of it.
ctheune pushed a commit to ctheune/nixpkgs that referenced this issue Jul 31, 2015
GTK+ 2 is still our default, so packages should generally not depend
on GTK+ 3. For instance, this causes Emacs to depend on both GTK+ 2
and 3, which is obviously a bad thing.

Issue NixOS#8990.
ctheune pushed a commit to ctheune/nixpkgs that referenced this issue Jul 31, 2015
Depending on the JDK increases the closure size by a few hundred MB.

Issue NixOS#8990.
ctheune pushed a commit to ctheune/nixpkgs that referenced this issue Jul 31, 2015
Packages should not depend on JACK by default to reduce dependency
bloat.

Issue NixOS#8990.
ctheune pushed a commit to ctheune/nixpkgs that referenced this issue Jul 31, 2015
@rbvermaa
Copy link
Member

rbvermaa commented Aug 4, 2015

Is this still a blocker? What is left to do here? What are the goal closure sizes before we can release?

@domenkozar
Copy link
Member

@edolstra is this done?

@edolstra
Copy link
Member Author

I think the staging branch still needs to be merged, but there currently is some breakage there (4a495cf#commitcomment-12780893). Also, the whole thing needs to be rebuilt due to a Glibc security patch.

edolstra added a commit that referenced this issue Aug 25, 2015
Also, make wine32 the default again to prevent a huge closure size
regression. (It recently grew by ~1 GB:
http://hydra.nixos.org/job/nixos/trunk-combined/nixpkgs.wineStable.x86_64-linux#tabs-charts)

Issue #8990.
@domenkozar
Copy link
Member

This is now in master

@vcunat
Copy link
Member

vcunat commented Sep 29, 2015

All resolved now, I believe.

@vcunat vcunat closed this as completed Sep 29, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants