Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 827802 - dev-lang/rakudo lacks an ebuild for the zef module installer
Summary: dev-lang/rakudo lacks an ebuild for the zef module installer
Status: UNCONFIRMED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: Normal normal with 2 votes (vote)
Assignee: Patrick Lauer
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: raku 834943
  Show dependency tree
 
Reported: 2021-11-28 20:03 UTC by Jeff Gazso
Modified: 2022-07-28 00:47 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
rakudo.eclass (rakudo.eclass,1.08 KB, text/plain)
2022-03-11 15:58 UTC, anonymous
Details
dev-raku/zef-0.13.7.ebuild (zef-0.13.7.ebuild,570 bytes, text/plain)
2022-03-11 15:59 UTC, anonymous
Details
dev-raku/Digest-MD5-0.05_p20170425.ebuild (Digest-MD5-0.05_p20170425.ebuild,497 bytes, text/plain)
2022-03-11 16:00 UTC, anonymous
Details
rakudo.eclass (rakudo.eclass,1.08 KB, text/plain)
2022-03-11 16:04 UTC, anonymous
Details
rakudo.eclass (rakudo.eclass,1.08 KB, text/plain)
2022-03-11 16:07 UTC, anonymous
Details
rakudo.eclass (rakudo.eclass,1.29 KB, text/plain)
2022-03-11 23:13 UTC, anonymous
Details
dev-raku/zef-0.13.7.ebuild (zef-0.13.7.ebuild,563 bytes, text/plain)
2022-03-11 23:13 UTC, anonymous
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Jeff Gazso 2021-11-28 20:03:59 UTC
Raku exists in portage but its module installer zef does not. The following Raku language related packages are present:

dev-lang/rakudo
dev-lang/nqp
dev-lang/moarvm

Those packages are the bare minimum required to build and run the language. But without zef, it's not possible to plug into the Raku ecosystem and install modules. This is every bit like having a Python package and no pip or a Perl package and no cpan client, etc.

Reproducible: Always

Steps to Reproduce:
emerge --ask dev-lang/zef
Actual Results:  
emerge: there are no ebuilds to satisfy "dev-lang/zef".


Expected Results:  
The ebuild dev-lang/zef should exist.

The zef module installer source code is available on GitHub at https://github.com/ugexe/zef and releases are tagged.
Comment 1 anonymous 2022-03-11 13:31:05 UTC
dev-lang/rakudo should install tools/install-dist.raku.

install-dist.raku should be used to install every raku module including zef.
install-dist.raku should be used in rakudo.eclass.
Comment 2 anonymous 2022-03-11 13:32:17 UTC
zef cannot cleanly handle installing raku modules as gentoo packages, but install-dist.raku can.
Comment 3 anonymous 2022-03-11 13:33:14 UTC
zef is great if you want to install raku modules as a non-root user into ${HOME}/.raku
Comment 4 anonymous 2022-03-11 15:56:34 UTC
To dev-lang/rakudo-xxx.ebuild, I needed to add the following lines to src_install so that installing and removing zef doesn't remove directories created by rakudo.

newbin tools/install-dist.p6 raku-install-dist
raku="$D/usr/bin/raku"
func="CompUnit::RepositoryRegistry.repository-for-name"
site=$($raku -e "say $func('site')")
site=${site#inst#}
keepdir "$site/bin"
keepdir "$site/dist"
keepdir "$site/precomp"
keepdir "$site/resources"
keepdir "$site/short"
keepdir "$site/sources"
vendor=$($raku -e "say $func('vendor')")
vendor=${vendor#inst#}
keepdir "$vendor/bin"
keepdir "$vendor/dist"
keepdir "$vendor/precomp"
keepdir "$vendor/resources"
keepdir "$vendor/short"
keepdir "$vendor/sources"
Comment 5 anonymous 2022-03-11 15:58:18 UTC
Created attachment 766797 [details]
rakudo.eclass

This is the secret sauce.
Comment 6 anonymous 2022-03-11 15:59:29 UTC
Created attachment 766798 [details]
dev-raku/zef-0.13.7.ebuild

Behold.
Comment 7 anonymous 2022-03-11 16:00:31 UTC
Created attachment 766799 [details]
dev-raku/Digest-MD5-0.05_p20170425.ebuild

This is a minimal example of a raku module.
Comment 8 anonymous 2022-03-11 16:04:07 UTC
Created attachment 766800 [details]
rakudo.eclass

My secret sauce.
Comment 9 anonymous 2022-03-11 16:07:35 UTC
Created attachment 766801 [details]
rakudo.eclass
Comment 10 anonymous 2022-03-11 23:13:00 UTC
Created attachment 766804 [details]
rakudo.eclass
Comment 11 anonymous 2022-03-11 23:13:17 UTC
Created attachment 766805 [details]
dev-raku/zef-0.13.7.ebuild
Comment 12 anonymous 2022-03-11 23:17:30 UTC
Perhaps, I should install raku-install-dist as /usr/share/perl6/core/tools/install-dist.p6
Comment 13 anonymous 2022-03-12 13:27:19 UTC
I added rakudo.eclass, my own version of dev-lang/rakudo, dev-raku/zef, and dev-raku/Digest-MD5 to my overlay. Check them out, and add them to gentoo overlay.
Comment 14 anonymous 2022-03-12 13:28:47 UTC
rakudo.eclass requires my version of dev-lang/rakudo. Be careful.
Comment 15 anonymous 2022-03-27 08:53:27 UTC
My crocket-overlay now contains dev-raku/zef for development, dev-raku/App-Prove6 for tests, and dev-raku/Inline-Perl5 for interoperation with perl 5.

rakudo.eclass has been nearly perfected.

Gentoo linux should just take rakudo.eclass, dev-lang/rakudo, and dev-raku/* from my overlay.
Comment 16 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2022-04-27 02:58:44 UTC
(In reply to crocket from comment #15)
> My crocket-overlay now contains dev-raku/zef for development,
> dev-raku/App-Prove6 for tests, and dev-raku/Inline-Perl5 for interoperation
> with perl 5.
> 
> rakudo.eclass has been nearly perfected.
> 
> Gentoo linux should just take rakudo.eclass, dev-lang/rakudo, and dev-raku/*
> from my overlay.

To submit them, attach a git am-able patch (from git format-patch) and also submit the eclass to the gentoo-dev ML via git send-email.
Comment 17 anonymous 2022-04-30 11:25:47 UTC
(In reply to Sam James from comment #16)
> To submit them, attach a git am-able patch (from git format-patch) and also
> submit the eclass to the gentoo-dev ML via git send-email.

Is this the only way to submit a patch? Is there any documentation on submitting changes to gentoo ebuilds?
Comment 18 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2022-06-01 00:13:01 UTC
(In reply to crocket from comment #17)
> (In reply to Sam James from comment #16)
> > To submit them, attach a git am-able patch (from git format-patch) and also
> > submit the eclass to the gentoo-dev ML via git send-email.
> 
> Is this the only way to submit a patch? Is there any documentation on
> submitting changes to gentoo ebuilds?

In general:
- make a change locally
- git commit it (ideally use 'pkgdev commit')
- when you're done, either push it to a branch somewhere, and open a pull request, OR run 'git format-patch' and attach the patches which it makes in your directory to a bug.

So, for eclasses, we have to send new eclasses to the gentoo-dev mailing list. You can do this by using the 'git send-email' command.

For general contributions, you can attach those git format-patch patches to bugs, but sometimes it works better to make a PR on github, it depends on the maintainer.

https://wiki.gentoo.org/wiki/Project:Proxy_Maintainers/User_Guide#How_to_submit_package_updates tries to explain it but I can give more info
Comment 19 Anna Vyalkova 2022-06-01 00:29:31 UTC
If there are no consumers in ::gentoo, consider contributing to GURU:
https://wiki.gentoo.org/wiki/Project:GURU
Comment 20 Jeff Gazso 2022-06-01 01:58:12 UTC
(In reply to Anna Vyalkova from comment #19)
> If there are no consumers in ::gentoo, consider contributing to GURU:
> https://wiki.gentoo.org/wiki/Project:GURU

What do you mean, "if there are no consumers?"
Comment 21 anonymous 2022-06-01 05:29:39 UTC
I don't like mailing lists. I also don't feel comfortable about depending on microsoft infrastructure.

I think gentoo project should create its own self-hosted gitea/gitlab instance.
Comment 22 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2022-06-01 05:30:44 UTC
(In reply to crocket from comment #21)
> I don't like mailing lists. I also don't feel comfortable about depending on
> microsoft infrastructure.
> 
> I think gentoo project should create its own self-hosted gitea/gitlab
> instance.

You don't have to use microsoft infrastructure. I was just giving github PRs as an option. As for self-hosted gitlab, it's being worked on.

But we do eclass review via mailing list. You can do the rest via Bugzilla if you wish.
Comment 23 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2022-06-01 05:32:08 UTC
(In reply to Jeff Gazso from comment #20)
> (In reply to Anna Vyalkova from comment #19)
> > If there are no consumers in ::gentoo, consider contributing to GURU:
> > https://wiki.gentoo.org/wiki/Project:GURU
> 
> What do you mean, "if there are no consumers?"

If no packages in gentoo.git need it, you can do it in guru.
Comment 24 anonymous 2022-06-01 05:42:31 UTC
I wish mailing list was replaced with gitlab discussion or gentoo forum.

At least, the forum interface is easier to use.

I can't configure my webmail client properly.