develooper Front page | perl.module-authors | Postings from September 2018

executable only Perl distributions & CPAN

Thread Next
From:
Diab Jerius
Date:
September 7, 2018 20:00
Subject:
executable only Perl distributions & CPAN
Message ID:
CADpyd5AYoB5p3M0PKzKbnX73vVmT7ngJGSZeTApha7sdcsCkyw@mail.gmail.com
Howdy,

My apologies if this topic has been covered elsewhere; I've been
unable to concoct a search which would efficiently find it.

I've authored a distribution which contains a single executable and no
supporting modules. After injecting the tarball into my local darkpan
via orepan2-inject, cpanm is unable to find it.

I believe the problem is that as there are no packages, the "provides"
field in META.yml is empty, and as 02packages.detail.txt lists only
packages, it won't show up there.

I see two options:

1.  Create an empty package which gets indexed; or
2.  Add an entry to the "provides" field mapping the distribution's
"package" name (App::pltvectors) to the script file.

Unfortunately, if a tool uses the "provides" field to verify that the
listed package is in the script file it will fail, so this approach
may lead to breakage.

Is there a third option which doesn't require creating the empty file?


Thanks,

Diab

P.S. I'm interested not just for my package, but also one of my
old-time favorites on CPAN, makepatch, which isn't indexed on metacpan
because of this (see
https://github.com/metacpan/metacpan-web/issues/601) and thus isn't
installable by CPAN clients, or indeed discoverable by metacpan, which
is a shame.


P.P.S. FWIW, here's the META.yml (without dependency entries):


---
abstract: 'plot vectors as arrows or rectangles'
author:
  - 'Diab Jerius <djerius@cfa.harvard.edu>'
build_requires:
  ExtUtils::MakeMaker: '0'
configure_requires:
  ExtUtils::MakeMaker: '0'
dynamic_config: 0
generated_by: 'Dist::Zilla version 6.010, CPAN::Meta::Converter
version 2.150010'
license: gpl
meta-spec:
  url: http://module-build.sourceforge.net/META-spec-v1.4.html
  version: '1.4'
name: App-pltvectors
no_index:
  directory:
    - eg
    - examples
    - inc
    - share
    - t
    - xt
provides: {}
resources: {}
version: '2.1'
x_serialization_backend: 'YAML::Tiny version 1.70'

Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About