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

Get rid of the Perl dependency #341

Closed
12 tasks done
edolstra opened this issue Sep 16, 2014 · 98 comments
Closed
12 tasks done

Get rid of the Perl dependency #341

edolstra opened this issue Sep 16, 2014 · 98 comments
Assignees
Milestone

Comments

@edolstra
Copy link
Member

edolstra commented Sep 16, 2014

I.e. rewrite nix-build, download-from-binary-cache etc. in C++.

Darwin:

@edolstra edolstra self-assigned this Sep 16, 2014
@linquize
Copy link
Contributor

👍 to rewrite in C++

@wmertens
Copy link
Contributor

👍!

Just to have an idea of the scope:

$ git grep -l perl scripts/ corepkgs/ | xargs wc -l | sort -n
  17 corepkgs/config.nix.in
  28 corepkgs/buildenv.nix
  51 scripts/nix-generate-patches.in
  65 scripts/nix-collect-garbage.in
  73 scripts/show-duplication.pl
  79 scripts/find-runtime-roots.pl.in
 100 scripts/nix-copy-closure.in
 102 scripts/copy-from-other-stores.pl.in
 102 scripts/nix-pull.in
 132 scripts/nix-prefetch-url.in
 143 scripts/nix-install-package.in
 168 corepkgs/buildenv.pl
 212 scripts/nix-channel.in
 282 scripts/build-remote.pl.in
 288 scripts/nix-build.in
 294 scripts/nix-push.in
 377 scripts/download-using-manifests.pl.in
 612 scripts/download-from-binary-cache.pl.in
3125 total

and

  42 perl//lib/Nix/Config.pm.in
 114 perl//lib/Nix/CopyClosure.pm
  42 perl//lib/Nix/Crypto.pm
 340 perl//lib/Nix/GeneratePatches.pm
 468 perl//lib/Nix/Manifest.pm
 103 perl//lib/Nix/SSH.pm
  92 perl//lib/Nix/Store.pm
 292 perl//lib/Nix/Store.xs
  47 perl//lib/Nix/Utils.pm
  40 perl//local.mk
   7 perl//MANIFEST
1587 total

@domenkozar
Copy link
Member

👍

3 similar comments
@offlinehacker
Copy link
Contributor

+1

@matejc
Copy link

matejc commented Oct 24, 2014

👍

@hilyjiang
Copy link

+1

@domenkozar
Copy link
Member

Would also get rid of #19

@copumpkin
Copy link
Member

👍 obviously. Seems like it wouldn't have to be a monolithic work item. I'm guessing many of the *.pm files are just wrapping functionality that's already in the C++ library, so some of that wouldn't even be necessary anymore. The individual utilities could be replaced one at a time if someone didn't want to take on the entire task at once.

@lucabrunox
Copy link
Contributor

I'm on nix-collect-garbage :) starting low

@copumpkin
Copy link
Member

Yay!

@edolstra
Copy link
Member Author

🍺

@lucabrunox
Copy link
Contributor

I'm now on find-runtime-roots.pl

@edolstra
Copy link
Member Author

Rather than replacing it with an external C++ program, please add it directly to gc.cc.

@domenkozar
Copy link
Member

I've added a 50$ bounty for this issue at https://www.bountysource.com/issues/4399291-get-rid-of-the-perl-dependency

@bjornfor
Copy link
Contributor

bjornfor commented Nov 7, 2015

Is there a bounty service that doesn't require sign-up? I'd like to support, but I don't want yet another account on some web service...

@domenkozar
Copy link
Member

You can login with github account. But no :)

On Sat, 7 Nov 2015, 10:17 Bjørn Forsman notifications@github.com wrote:

Is there a bounty service that doesn't require sign-up? I'd like to
support, but I don't want yet another account on some web service...


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

@vcunat
Copy link
Member

vcunat commented Nov 7, 2015

And you can always make promises without any service at all...

@bjornfor
Copy link
Contributor

bjornfor commented Nov 7, 2015

Ah, I didn't know bountysource was "a promise", I thought it was direct payment.

@vcunat
Copy link
Member

vcunat commented Nov 7, 2015

Well, maybe, but I think there's an unavoidable tricky point: who decides that the issue is solved well-enough?

@AndersonTorres
Copy link
Member

Also, what if multiple people solve it?

@domenkozar
Copy link
Member

The one offering the bounty decides how the money should be split.

@domenkozar
Copy link
Member

nix-channel port away from perl free Nix? 👯

@shlevy
Copy link
Member

shlevy commented Aug 11, 2016

nix-channel in #1026

@davidak
Copy link
Member

davidak commented Aug 11, 2016

@shlevy Thank you! I just added another $50 to the bounty.

https://www.bountysource.com/issues/4399291-get-rid-of-the-perl-dependency

Don't forget to claim it when it is complete.

@shlevy
Copy link
Member

shlevy commented Aug 11, 2016

I consider the core work finished (if all PRs are merged and a simple final Makefile tweak added on top, nix on Linux has no dependency on perl) and the bounty is linked to this github issue. Any objections to me closing the issue to claim the bounty, and using the perl-to-c++ milestone to track the remaining bits?

@domenkozar
Copy link
Member

@shlevy sure, if PRs are merged and Nix can compile without perl, feel free to claim this :)

@vcunat
Copy link
Member

vcunat commented Aug 12, 2016

I understood it as a suggestion to close/claim before merging the PRs.

@davidak
Copy link
Member

davidak commented Aug 12, 2016

@vcunat No, the issue is solved for me when every change is merged in master. (and properly works together)

@shlevy
Copy link
Member

shlevy commented Aug 12, 2016

OK, thought I'd check 😄

shlevy added a commit to shlevy/nix that referenced this issue Aug 12, 2016
@shlevy
Copy link
Member

shlevy commented Aug 12, 2016

#1027

@domenkozar
Copy link
Member

@shlevy I'd say you have done your part of the work so it's fine if you collect the bounty.

@shlevy
Copy link
Member

shlevy commented Nov 1, 2016

@domenkozar Do I have to do anything besides just close the issue?

@domenkozar
Copy link
Member

I think you have to claim bounty on bountysource manually.

@shlevy
Copy link
Member

shlevy commented Nov 2, 2016

From https://github.com/bountysource/core/wiki/Frequently-Asked-Questions it looks like the only way is to close the issue, maybe even the only way is to merge a commit that closes the issue. I will try closing this, let me know if you get the confirmation email.

@shlevy shlevy closed this as completed Nov 2, 2016
@domenkozar
Copy link
Member

domenkozar commented Nov 2, 2016

I needed to refresh about 6 times before you showed up as a claimer on https://www.bountysource.com/issues/4399291-get-rid-of-the-perl-dependency, but it's accepted from me.

I'll try to write up a summary for all chip-in-ers :)

@shlevy
Copy link
Member

shlevy commented Nov 2, 2016

Did my summary not show up?

@domenkozar
Copy link
Member

Nope

@nixos-discourse
Copy link

This issue has been mentioned on NixOS Discourse. There might be relevant details there:

https://discourse.nixos.org/t/java-nix-reproducibility/13825/13

@nixos-discourse
Copy link

This issue has been mentioned on NixOS Discourse. There might be relevant details there:

https://discourse.nixos.org/t/2023-10-23-nix-team-meeting-minutes-97/34561/1

zolodev pushed a commit to zolodev/nix that referenced this issue Jan 1, 2024
…hix/cachix-action-11

chore(deps): bump cachix/cachix-action from 10 to 11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests