diff options
author | rillig <rillig@pkgsrc.org> | 2022-02-06 21:07:44 +0000 |
---|---|---|
committer | rillig <rillig@pkgsrc.org> | 2022-02-06 21:07:44 +0000 |
commit | 2f0170cf9cf82af621b1217dc5af348917c02e4e (patch) | |
tree | 8d421b7d999c19685d7e5d89008c4f8829c328dc /pkgtools/url2pkg | |
parent | 541da73facb52cd8d4783b9b9723cb0b74f81bb3 (diff) | |
download | pkgsrc-2f0170cf9cf82af621b1217dc5af348917c02e4e.tar.gz |
url2pkg: add support for metacpan.org URLs
Diffstat (limited to 'pkgtools/url2pkg')
-rw-r--r-- | pkgtools/url2pkg/files/url2pkg.py | 29 | ||||
-rw-r--r-- | pkgtools/url2pkg/files/url2pkg_test.py | 10 |
2 files changed, 31 insertions, 8 deletions
diff --git a/pkgtools/url2pkg/files/url2pkg.py b/pkgtools/url2pkg/files/url2pkg.py index 0d47d4f3814..10234328ff6 100644 --- a/pkgtools/url2pkg/files/url2pkg.py +++ b/pkgtools/url2pkg/files/url2pkg.py @@ -1,5 +1,5 @@ #! @PYTHONBIN@ -# $NetBSD: url2pkg.py,v 1.40 2022/02/06 20:08:49 rillig Exp $ +# $NetBSD: url2pkg.py,v 1.41 2022/02/06 21:07:44 rillig Exp $ # Copyright (c) 2019 The NetBSD Foundation, Inc. # All rights reserved. @@ -353,6 +353,7 @@ class PackageVars: self.adjust_site_SourceForge() self.adjust_site_GitHub_archive() self.adjust_site_GitHub_release() + self.adjust_site_CPAN() self.adjust_site_from_sites_mk(pkgsrcdir) self.adjust_site_PyPI() self.adjust_site_other() @@ -401,6 +402,30 @@ class PackageVars: sys.exit('url2pkg: to create R packages, ' 'use pkgtools/R2pkg instead') + def adjust_site_CPAN(self): + pattern = r'''(?x) + ^ + https://cpan.metacpan.org/authors + /id/(?:\w+/)+ + (\w+-)+ # namespace prefixes + ( # distname + (\w+) # project name + -v?[0-9].+ + ) + $ + ''' + m = re.search(pattern, self.url) + if not m: + return + + prefixes, distfile, name = m.groups() + prefixes_slash = prefixes.replace('-', '/') + prefixes_colon = prefixes.replace('-', '::') + self.master_sites = f'${{MASTER_SITE_PERL_CPAN:={prefixes_slash}}}' + self.homepage = f'https://metacpan.org/pod/{prefixes_colon}{name}' + self.distfile = f'{prefixes}{distfile}' + self.pkgname_prefix = 'p5-' + def adjust_site_SourceForge(self): pattern = r'''(?x) ^ @@ -551,7 +576,7 @@ class PackageVars: return '' if 'MASTER_SITE_PYPI' in self.master_sites: return f'py-{m[1]}' - if 'MASTER_SITE_CPAN' in self.master_sites: + if 'MASTER_SITE_PERL_CPAN' in self.master_sites: return f'p5-{m[1]}' return m[1] diff --git a/pkgtools/url2pkg/files/url2pkg_test.py b/pkgtools/url2pkg/files/url2pkg_test.py index 25632382dae..8d0f885482d 100644 --- a/pkgtools/url2pkg/files/url2pkg_test.py +++ b/pkgtools/url2pkg/files/url2pkg_test.py @@ -1,4 +1,4 @@ -# $NetBSD: url2pkg_test.py,v 1.39 2022/02/06 20:08:49 rillig Exp $ +# $NetBSD: url2pkg_test.py,v 1.40 2022/02/06 21:07:44 rillig Exp $ import pytest from url2pkg import * @@ -587,14 +587,12 @@ def test_PackageVars_adjust_site_from_sites_mk__CPAN(): mkcvsid, '', 'DISTNAME= Algorithm-CheckDigits-v1.3.6', - 'PKGNAME= ${DISTNAME:S,-v,-,}', + 'PKGNAME= p5-${DISTNAME:S,-v,-,}', 'CATEGORIES= pkgtools', - # TODO: Use MASTER_SITE_CPAN instead. - 'MASTER_SITES= https://cpan.metacpan.org/authors/id/M/MA/MAMAWE/', + 'MASTER_SITES= ${MASTER_SITE_PERL_CPAN:=Algorithm/}', '', 'MAINTAINER= INSERT_YOUR_MAIL_ADDRESS_HERE # or use pkgsrc-users@NetBSD.org', - # TODO: Use https://metacpan.org/dist/Algorithm-CheckDigits instead. - 'HOMEPAGE= https://cpan.metacpan.org/authors/id/M/MA/MAMAWE/', + 'HOMEPAGE= https://metacpan.org/pod/Algorithm::CheckDigits', 'COMMENT= TODO: Short description of the package', '#LICENSE= # TODO: (see mk/license.mk)', '', |