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

WIP: lowdown: Split out "bin" and "man" outputs #97070

Draft
wants to merge 1 commit into
base: master
from

Conversation

@Ericson2314
Copy link
Member

@Ericson2314 Ericson2314 commented Sep 4, 2020

Motivation for this change
Things done
  • 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.
@sternenseemann
Copy link
Member

@sternenseemann sternenseemann commented Sep 4, 2020

We discussed this originally.

The decision was in the end to keep the man pages in the bin and dev/lib outputs respectively, since the man pages don't take up a lot of space and it's more convenient this way. Also a package with 5 outputs which lowdown would become then would be kinda confusing I suppose…

@Ericson2314
Copy link
Member Author

@Ericson2314 Ericson2314 commented Sep 4, 2020

I don't really care about man pages, but it's very nice to separate bin and libraries. I use this with Nix itself, in fact, which needs the executables at build time, but libraries at run time.

@sternenseemann
Copy link
Member

@sternenseemann sternenseemann commented Sep 4, 2020

The library is installed to dev, out only contains the binary and man pages.

@Ericson2314
Copy link
Member Author

@Ericson2314 Ericson2314 commented Sep 4, 2020

@sternenseemann you are saying .so are in dev? or just .a? I see. Well that definitely is unidiomatic, shared objects should always be in out or lib. That does mean my PR needs more work, however.

@Ericson2314 Ericson2314 changed the title lowdown: Split out "bin" and "man" outputs WIP: lowdown: Split out "bin" and "man" outputs Sep 4, 2020
Also fix to not always static link
@Ericson2314 Ericson2314 force-pushed the obsidiansystems:lowdown-outputs branch from a7247a5 to 48a7d31 Sep 5, 2020
@sternenseemann
Copy link
Member

@sternenseemann sternenseemann commented Sep 5, 2020

@Ericson2314 There's no liblowdown.so, see the Makefile.

Copy link
Member

@sternenseemann sternenseemann left a comment

Why patch in a shared object? As long as nothing depends on lowdown providing a shared object (which isn't the case in nixpkgs yet and I generally doubt, since It isn't the case for upstream), I don't see a reason to patch one in and to maintain the patch etc.

@Ericson2314
Copy link
Member Author

@Ericson2314 Ericson2314 commented Sep 5, 2020

By default, we install libraries as shared objects. I don't see why this library should be different?

@ryantm ryantm marked this pull request as draft Oct 23, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

2 participants
You can’t perform that action at this time.