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] Remove binary blobs #43263

Closed
wants to merge 6 commits into from
Closed

Conversation

matthewbauer
Copy link
Member

Motivation for this change

This removes some packages that are hopefully completely unnecessary now that a source-based alternative exists for them.

Here are the names effected:

  • firefox-bin
  • thunderbird-bin
  • tensorflow (now uses tensorflow/src.nix)

To make the transition from these easier, I think it would be good to provide some alternatives. I have added a nur-packages repo that contains the old expressions: https://github.com/matthewbauer/nur-packages

There could be a good reason for keeping these around but my understanding is that we can now use the official branding in the source-based firefox & thunderbird.

@matthewbauer matthewbauer requested a review from FRidh as a code owner July 9, 2018 18:47
@grahamc
Copy link
Member

grahamc commented Jul 9, 2018

👎 sometimes the binary versions are the only way to get certain features, and the betas are much nicer through bins.

@matthewbauer
Copy link
Member Author

matthewbauer commented Jul 9, 2018

Hmmm... Maybe this is a good chance to make the source-based versions better? Besides branding, there should be no reason we cannot build binaries just as good as Mozilla's on Nix infrastructure. Binary blobs are just never going to be as portable as a Nix .drv.

Binary blobs usually don’t work with Nixpkgs & are generally
discouraged. tor-browser-bin & firefox-bin both have equivalent
source-based derivations. We want to encourage them as much as
possible.
@matthewbauer matthewbauer changed the title Remove binary blobs [wip] Remove binary blobs Jul 9, 2018
@GrahamcOfBorg
Copy link

No attempt on aarch64-linux (full log)

The following builds were skipped because they don't evaluate on aarch64-linux: dropbox

Partial log (click to expand)

Cannot nix-instantiate `dropbox' because:
error: while evaluating 'callPackageWith' at /var/lib/gc-of-borg/nix-test-rs-20/repo/38dca4e3aa6bca43ea96d2fcc04e8229/builder/grahamc-aarch64-community-20/lib/customisation.nix:113:35, called from /var/lib/gc-of-borg/nix-test-rs-20/repo/38dca4e3aa6bca43ea96d2fcc04e8229/builder/grahamc-aarch64-community-20/pkgs/top-level/all-packages.nix:18127:13:
while evaluating 'makeOverridable' at /var/lib/gc-of-borg/nix-test-rs-20/repo/38dca4e3aa6bca43ea96d2fcc04e8229/builder/grahamc-aarch64-community-20/lib/customisation.nix:72:24, called from /var/lib/gc-of-borg/nix-test-rs-20/repo/38dca4e3aa6bca43ea96d2fcc04e8229/builder/grahamc-aarch64-community-20/lib/customisation.nix:117:8:
while evaluating anonymous function at /var/lib/gc-of-borg/nix-test-rs-20/repo/38dca4e3aa6bca43ea96d2fcc04e8229/builder/grahamc-aarch64-community-20/pkgs/applications/networking/dropbox/default.nix:1:1, called from /var/lib/gc-of-borg/nix-test-rs-20/repo/38dca4e3aa6bca43ea96d2fcc04e8229/builder/grahamc-aarch64-community-20/lib/customisation.nix:74:12:
assertion failed at /var/lib/gc-of-borg/nix-test-rs-20/repo/38dca4e3aa6bca43ea96d2fcc04e8229/builder/grahamc-aarch64-community-20/pkgs/applications/networking/dropbox/default.nix:5:1

@GrahamcOfBorg
Copy link

No attempt on x86_64-darwin (full log)

The following builds were skipped because they don't evaluate on x86_64-darwin: dropbox

Partial log (click to expand)

Cannot nix-instantiate `dropbox' because:
�[31;1merror:�[0m while evaluating 'callPackageWith' at �[1m/private/var/lib/ofborg/repo/38dca4e3aa6bca43ea96d2fcc04e8229/builder/lnl7-mac/lib/customisation.nix�[0m:113:35, called from �[1m/private/var/lib/ofborg/repo/38dca4e3aa6bca43ea96d2fcc04e8229/builder/lnl7-mac/pkgs/top-level/all-packages.nix�[0m:18127:13:
while evaluating 'makeOverridable' at �[1m/private/var/lib/ofborg/repo/38dca4e3aa6bca43ea96d2fcc04e8229/builder/lnl7-mac/lib/customisation.nix�[0m:72:24, called from �[1m/private/var/lib/ofborg/repo/38dca4e3aa6bca43ea96d2fcc04e8229/builder/lnl7-mac/lib/customisation.nix�[0m:117:8:
while evaluating anonymous function at �[1m/private/var/lib/ofborg/repo/38dca4e3aa6bca43ea96d2fcc04e8229/builder/lnl7-mac/pkgs/applications/networking/dropbox/default.nix�[0m:1:1, called from �[1m/private/var/lib/ofborg/repo/38dca4e3aa6bca43ea96d2fcc04e8229/builder/lnl7-mac/lib/customisation.nix�[0m:74:12:
assertion failed at �[1m/private/var/lib/ofborg/repo/38dca4e3aa6bca43ea96d2fcc04e8229/builder/lnl7-mac/pkgs/applications/networking/dropbox/default.nix�[0m:5:1

@GrahamcOfBorg
Copy link

No attempt on x86_64-linux (full log)

The following builds were skipped because they don't evaluate on x86_64-linux: dropbox

Partial log (click to expand)


a) For `nixos-rebuild` you can set
  { nixpkgs.config.allowUnfree = true; }
in configuration.nix to override this.

b) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
  { allowUnfree = true; }
to ~/.config/nixpkgs/config.nix.


@grahamc
Copy link
Member

grahamc commented Jul 9, 2018

Practically speaking, I can't imagine we'll want to be building all the variations of the beta / nightly releases of each of these packages on Hydra, and nobody will want to be building them locally (looking at many hours of builds). I think these bins are reasonable. I think they are valuable.

edit I'm also concerned about losing possible i18n improvements the -bin FF packages provide over what we have packaged.

@adisbladis
Copy link
Member

adisbladis commented Jul 10, 2018

The maintenance burden to maintain devedition and beta firefox is currently a few minutes every few days or so.
Building these firefox release channels would be a multi hour endeavour every few days for these packages. I would not be able to maintain these packages any more if that was the case.

It's also worth noting that the -bin variants can possibly get security updates very fast while the source derivation occasionally has problems building.

I don't know about the rest of the packages in this PR but at the very least firefox and thunderbird bins should remain.

@7c6f434c
Copy link
Member

Also, practically speaking, from time to time updating Firefox source build is a longer process than a binary release just because nss is a large-rebuild dependency.

@Mic92
Copy link
Member

Mic92 commented Jul 10, 2018

At least firefox-bin and thunderbird-bin should be kept since if a revision is broken they provide a sane way to still perform an upgrade. The other might be removed unless there is a good reason not to do this.

@FRidh
Copy link
Member

FRidh commented Jul 10, 2018

The binary tensorflow was re-added because of difficulties building from source. There are good reasons to sometimes use binaries, as mentioned already by others, so I am against this change.

@matthewbauer
Copy link
Member Author

Ok closing for now. This discussion is probably best for me to bring up in an RFC.

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

7 participants