Ticket #121 (closed enhancement: wontfix)

Opened 6 years ago

Last modified 2 years ago

CPAN Repository Support

Reported by: ciaranm Owned by: ciaranm
Priority: ProjectIdeas Milestone:
Component: core/paludis Version:
Keywords: Cc:
Blocked By: Blocking:
Distribution: Gentoo

Description (last modified by ciaranm) (diff)

Paludis supports multiple repository formats. Aside from the Gentoo things, we currently also support CRAN (the package format for GNU R). It would be nice to support CPAN (Perl's packages) natively as well.

The project will require development of two repository classes:

  • A repository format class for installable CPAN packages.
  • A repository format class for CPAN packages that are already installed.

Existing repository classes are good demonstrations of this.

It will also require extensive unit tests.

We expect that some extensions will have to be made to core Paludis libraries, in particular with respect to package metadata.

There are a few problems we expect you'll encounter:

  • Getting metadata for CPAN packages upfront is somewhat tricky. Some CPAN packages don't seem to ship YAML descriptions.
  • The CPAN documentation is less than perfect.
  • CPAN's dependency specifications are slightly obtuse.

These are all solvable problems. Anyone attempting this project is encouraged to think about these before rushing in and coding.

Change History

comment:1 Changed 6 years ago by ciaranm

  • Description modified (diff)

comment:2 Changed 2 years ago by ciaranm

  • Status changed from new to closed
  • Distribution set to Gentoo
  • Resolution set to wontfix
  • Description modified (diff)
15:02 < pioto> metadata.yaml is just a guide
15:02 < pioto> errm META.yml
15:03 < pioto> and, it comes from more recent Module::Build and such with their 'dist' build target
15:03 < ciaranm> eternaleye: ^^ if that's accurate, we can't support cpan even if we ignore all the stupid versions
15:03 < pioto> but, basically, META.yml depends upon how Makefile.PL or Build.PL act on the machine it's built on
15:03 < pioto> you can have conditional deps, though, on $^O (os type) etdc
15:04 < pioto> but META.yml can't express those
Note: See TracTickets for help on using tickets.