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

cmake: add manpage #31344

Closed
wants to merge 1 commit into from
Closed

cmake: add manpage #31344

wants to merge 1 commit into from

Conversation

teto
Copy link
Member

@teto teto commented Nov 7, 2017

Motivation for this change

Wanted cmake manpage:
#30561

I enabled it by default.

Things done
  • Tested using sandboxing (nix.useSandbox on NixOS, or option build-use-sandbox in nix.conf on non-NixOS)
  • 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 nox --run "nox-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Fits CONTRIBUTING.md.

@LnL7
Copy link
Member

LnL7 commented Nov 7, 2017

Enabling this by default will introduce a whole bunch of python dependencies into the darwin stdenv, we had a similar problem with llvm/clang.

@teto
Copy link
Member Author

teto commented Nov 7, 2017

disabling it upstream implies that enabling it locally will trigger may local builds.
What makes darwin special ? it will also pull the python env for linux.
Would disabling it for darwin be a satisfactory solution ?

@copumpkin
Copy link
Member

For stuff like this, we could add some sort of stdenv.isBootstrapping flag that is set for all the bootstrap phases but not in the final stdenv (assuming packages don't get propagated through it) and then have withDoc ? !stdenv.isBootstrapping. That would conceivably allow us to build more minimal versions of packages during the bootstrap, and skip stuff like this, while still giving end users the bells and whistles they want.

@LnL7
Copy link
Member

LnL7 commented Nov 7, 2017

I disabled the manpages by default for clang, but added clang.man and lowPrio clang-manpages pointing to a variant with the manpages enabled to avoid rebuilds.

https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/compilers/llvm/4/default.nix#L34-L38

@teto
Copy link
Member Author

teto commented Nov 8, 2017

Doesn't overrideManOutput always includes manpages ?

llvm = overrideManOutput llvm;
with
  # Add man output without introducing extra dependencies.
  overrideManOutput = drv:
    let drv-manpages = drv.override { enableManpages = true; }; in
    drv // { man = drv-manpages.man; /*outputs = drv.outputs ++ ["man"];*/ };

didn't know about lowPrio that's interesting

@teto teto mentioned this pull request Jan 5, 2018
8 tasks
@vcunat
Copy link
Member

vcunat commented Jan 7, 2018

stdenv.isBootstrapping: similar situation doesn't only happen during stdenv bootstrapping. There are other cases where we have "lighter" versions to reduce the build-time closure or even break cycles (sometimes also run-time closure, but multiple outputs can often handle that one).

@LnL7
Copy link
Member

LnL7 commented Jan 7, 2018

Yeah, there are a number of cases where we want to reduce build dependencies compared to interactive use. Even tho clang/cmake are not part of the stdenv on linux those still cause a verly large amount of rebuilds.

@teto
Copy link
Member Author

teto commented Mar 13, 2018

Anything feel free to take over, I don't intend to continue working on this (due to time constraints).

@teto teto closed this Mar 13, 2018
@teto teto mentioned this pull request Mar 16, 2020
10 tasks
@teto teto deleted the cmake branch May 13, 2020 09:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants