Git Product home page Git Product logo

software-license's People

Contributors

0xxon avatar aggrolite avatar atoomic avatar autarch avatar brechea avatar bricas avatar charsbar avatar dod38fr avatar dolmen avatar dylanwh avatar gugod avatar haarg avatar jbakerdev avatar kappa avatar karenetheridge avatar kevindawson avatar kyzn avatar leont avatar mtelka avatar neilb avatar polettix avatar rafl avatar rjbs avatar scrivnercw avatar shlomif avatar spazm avatar theory avatar xdg avatar xenu avatar xtaran avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

software-license's Issues

v0.103010 install fails on 5.14.2

Looks like the same issue is showing on CPANTESTERS

This is on Ubuntu x86_64:

Distributor ID: Ubuntu
Description:    Ubuntu 12.04.5 LTS
Release:        12.04
Codename:       precise

Test report:

Checking if your kit is complete...
Looks good
Generating a Unix-style Makefile
Writing Makefile for Software::License
Writing MYMETA.yml and MYMETA.json
cp lib/Software/License/Apache_2_0.pm blib/lib/Software/License/Apache_2_0.pm
cp lib/Software/License/Mozilla_1_1.pm blib/lib/Software/License/Mozilla_1_1.pm
cp lib/Software/License/OpenSSL.pm blib/lib/Software/License/OpenSSL.pm
cp lib/Software/License/GFDL_1_2.pm blib/lib/Software/License/GFDL_1_2.pm
cp lib/Software/License/GPL_3.pm blib/lib/Software/License/GPL_3.pm
cp lib/Software/License/BSD.pm blib/lib/Software/License/BSD.pm
cp lib/Software/License/QPL_1_0.pm blib/lib/Software/License/QPL_1_0.pm
cp lib/Software/License/Artistic_1_0.pm blib/lib/Software/License/Artistic_1_0.pm
cp lib/Software/License/GFDL_1_3.pm blib/lib/Software/License/GFDL_1_3.pm
cp lib/Software/License.pm blib/lib/Software/License.pm
cp lib/Software/License/SSLeay.pm blib/lib/Software/License/SSLeay.pm
cp lib/Software/License/Mozilla_2_0.pm blib/lib/Software/License/Mozilla_2_0.pm
cp lib/Software/License/MIT.pm blib/lib/Software/License/MIT.pm
cp lib/Software/License/CC0_1_0.pm blib/lib/Software/License/CC0_1_0.pm
cp lib/Software/LicenseUtils.pm blib/lib/Software/LicenseUtils.pm
cp lib/Software/License/Custom.pm blib/lib/Software/License/Custom.pm
cp lib/Software/License/GPL_1.pm blib/lib/Software/License/GPL_1.pm
cp lib/Software/License/GPL_2.pm blib/lib/Software/License/GPL_2.pm
cp lib/Software/License/Zlib.pm blib/lib/Software/License/Zlib.pm
cp lib/Software/License/LGPL_3_0.pm blib/lib/Software/License/LGPL_3_0.pm
cp lib/Software/License/Mozilla_1_0.pm blib/lib/Software/License/Mozilla_1_0.pm
cp lib/Software/License/FreeBSD.pm blib/lib/Software/License/FreeBSD.pm
cp lib/Software/License/None.pm blib/lib/Software/License/None.pm
cp lib/Software/License/Apache_1_1.pm blib/lib/Software/License/Apache_1_1.pm
cp lib/Software/License/Artistic_2_0.pm blib/lib/Software/License/Artistic_2_0.pm
cp lib/Software/License/Sun.pm blib/lib/Software/License/Sun.pm
cp lib/Software/License/PostgreSQL.pm blib/lib/Software/License/PostgreSQL.pm
cp lib/Software/License/Perl_5.pm blib/lib/Software/License/Perl_5.pm
cp lib/Software/License/LGPL_2_1.pm blib/lib/Software/License/LGPL_2_1.pm
cp lib/Software/License/AGPL_3.pm blib/lib/Software/License/AGPL_3.pm
Manifying 30 pod documents
PERL_DL_NONLAZY=1 "/usr/bin/perl" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
#·
#·
# Generated by Dist::Zilla::Plugin::ReportVersions::Tiny v1.10
# perl: 5.014002 (wanted 5.006) on linux from /usr/bin/perl
#·
# Carp                                          => 1.36       (want any version)
# Data::Section                                 => 0.200006   (want any version)
# ExtUtils::MakeMaker                           => 7.04       (want 6.30)···
# File::Spec                                    => 3.47       (want any version)
# IO::Dir                                       => 1.07       (want any version)
# Module::Load                                  => 0.18       (want any version)
# Sub::Install                                  => 0.928      (want any version)
# Test::More                                    => 1.001014   (want 0.96)···
# Text::Template                                => 1.46       (want any version)
# Try::Tiny                                     => 0.22       (want any version)
# parent                                        => 0.232      (want any version)
# strict                                        => 1.04       (want any version)
# warnings                                      => 1.12       (want any version)
#·
# Thanks for using my code.  I hope it works for you.
# If not, please try and include this output in the bug report.
# That will help me reproduce the issue and solve your problem.
#·
t/000-report-versions-tiny.t .. ok
t/basic.t ..................... ok
t/bsd-url.t ................... ok
t/custom.t .................... ok

#   Failed test at t/guess_meta_license.t line 57.
#     Structures begin differing at:
#          $got->[1] = 'Software::License::GPL_3_plus'
#     $expected->[1] = Does not exist
# Looks like you failed 1 test of 26.
t/guess_meta_license.t ........·
Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/26 subtests·
t/meta-names.t ................ ok
t/round-trip.t ................ ok
t/short_name.t ................ ok

#   Failed test 'guessed okay'
#   at t/utils.t line 123.
#     Structures begin differing at:
#          $got->[1] = 'Software::License::GPL_1_plus'
#     $expected->[1] = 'Software::License::GPL_2'
# Looks like you failed 1 test of 5.
t/utils.t .....................·
Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/5 subtests·

Test Summary Report
-------------------
t/guess_meta_license.t      (Wstat: 256 Tests: 26 Failed: 1)
  Failed test:  25
  Non-zero exit status: 1
t/utils.t                   (Wstat: 256 Tests: 5 Failed: 1)
  Failed test:  4
  Non-zero exit status: 1
Files=9, Tests=102,  1 wallclock secs ( 0.03 usr  0.01 sys +  0.47 cusr  0.04 csys =  0.55 CPU)
Result: FAIL
Failed 2/9 test programs. 2/102 subtests failed.
make: *** [test_dynamic] Error 1
  /usr/bin/make test -- NOT OK
Stopping: 'install' failed for 'R/RJ/RJBS/Software-License-0.103010.tar.gz'.

Less dependencies

I've recently started using Software::License in App::ModuleBuildTiny. However, it almost doubled my list of dependencies (15 to 26). Reducing its weight would be most welcome. Data::Section in particular feels rather heavy (and I suspect the direct dependency on Sub::Install isn't necessary either).

Feature Request: Add short_name() Accessor

As originally described in RT-67706, it's a short display name, something like:

--- a/lib/Software/License.pm
+++ b/lib/Software/License.pm
@@ -52,6 +52,21 @@ sub holder { $_[0]->{holder}     }
 This method returns the name of the license, suitable for shoving in the middle
 of a sentence, generally with a leading capitalized "The."
 
+=method short_name
+
+This method returns the short name of the license, suitable for link text,
+for example.
+
+=cut
+
+sub short_name {
+    my $class = ref $_[0] || $_[0];
+    my ($name) = $class =~ /([^:]+)$/; # Grab the package name.
+    $name =~ s/(\d)_(\d)/$1.$2/g;      # Use dots in versions.
+    $name =~ s/_/ /g;                  # Use spaces everywhere else.
+    return $name;
+}
+
 =method url

no support for licence with "or (at your option) any later version"

GPL licences often come with the "or (at your option) any later version" clause. For example, GPL-2 and GPL-2+ are two different licenses, and so are GPL-3 and GPL-3+. Would be nice if this would be handled since it is confusing for packagers to see GPL_3 (which infers GPL version 3 only) on the metadata files while the licence on the individual files claims to be GPL 3+.

tests fail when additional license modules are installed

Software::License::GPL_3_plus does not exist in this distribution; it appears to be installed in my system already. The tests should not fail when extra license modules exist.

--> Working on Software::License
Fetching http://mirrors.gossamer-threads.com/CPAN/authors/id/R/RJ/RJBS/Software-License-0.103012.tar.gz
-> OK
Unpacking Software-License-0.103012.tar.gz
Entering Software-License-0.103012
Checking configure dependencies from META.json
Checking if you have ExtUtils::MakeMaker 0 ... Yes (7.24)
Configuring Software-License-0.103012
Running Makefile.PL
Checking if your kit is complete...
Looks good
Generating a Unix-style Makefile
Writing Makefile for Software::License
Writing MYMETA.yml and MYMETA.json
-> OK
Checking dependencies from MYMETA.json ...
Checking if you have Try::Tiny 0 ... Yes (0.28)
Checking if you have warnings 0 ... Yes (1.12)
Checking if you have parent 0 ... Yes (0.232)
Checking if you have ExtUtils::MakeMaker 0 ... Yes (7.24)
Checking if you have File::Spec 0 ... Yes (3.62)
Checking if you have Data::Section 0 ... Yes (0.101621)
Checking if you have Carp 0 ... Yes (1.36)
Checking if you have Test::More 0.96 ... Yes (1.001014)
Checking if you have strict 0 ... Yes (1.04)
Checking if you have Module::Load 0 ... Yes (0.32)
Checking if you have IO::Dir 0 ... Yes (1.08)
Checking if you have Text::Template 0 ... Yes (1.46)
Building and testing Software-License-0.103012
cp lib/Software/License/Apache_2_0.pm blib/lib/Software/License/Apache_2_0.pm
cp lib/Software/License/Mozilla_1_1.pm blib/lib/Software/License/Mozilla_1_1.pm
cp lib/Software/License/OpenSSL.pm blib/lib/Software/License/OpenSSL.pm
cp lib/Software/License/GFDL_1_2.pm blib/lib/Software/License/GFDL_1_2.pm
cp lib/Software/License/GPL_3.pm blib/lib/Software/License/GPL_3.pm
cp lib/Software/License/BSD.pm blib/lib/Software/License/BSD.pm
cp lib/Software/License/QPL_1_0.pm blib/lib/Software/License/QPL_1_0.pm
cp lib/Software/License/Artistic_1_0.pm blib/lib/Software/License/Artistic_1_0.pm
cp lib/Software/License/GFDL_1_3.pm blib/lib/Software/License/GFDL_1_3.pm
cp lib/Software/License.pm blib/lib/Software/License.pm
cp lib/Software/License/SSLeay.pm blib/lib/Software/License/SSLeay.pm
cp lib/Software/License/Mozilla_2_0.pm blib/lib/Software/License/Mozilla_2_0.pm
cp lib/Software/License/MIT.pm blib/lib/Software/License/MIT.pm
cp lib/Software/License/CC0_1_0.pm blib/lib/Software/License/CC0_1_0.pm
cp lib/Software/LicenseUtils.pm blib/lib/Software/LicenseUtils.pm
cp lib/Software/License/Custom.pm blib/lib/Software/License/Custom.pm
cp lib/Software/License/GPL_1.pm blib/lib/Software/License/GPL_1.pm
cp lib/Software/License/GPL_2.pm blib/lib/Software/License/GPL_2.pm
cp lib/Software/License/Zlib.pm blib/lib/Software/License/Zlib.pm
cp lib/Software/License/LGPL_3_0.pm blib/lib/Software/License/LGPL_3_0.pm
cp lib/Software/License/Mozilla_1_0.pm blib/lib/Software/License/Mozilla_1_0.pm
cp lib/Software/License/FreeBSD.pm blib/lib/Software/License/FreeBSD.pm
cp lib/Software/License/None.pm blib/lib/Software/License/None.pm
cp lib/Software/License/Apache_1_1.pm blib/lib/Software/License/Apache_1_1.pm
cp lib/Software/License/Artistic_2_0.pm blib/lib/Software/License/Artistic_2_0.pm
cp lib/Software/License/Sun.pm blib/lib/Software/License/Sun.pm
cp lib/Software/License/PostgreSQL.pm blib/lib/Software/License/PostgreSQL.pm
cp lib/Software/License/Perl_5.pm blib/lib/Software/License/Perl_5.pm
cp lib/Software/License/LGPL_2_1.pm blib/lib/Software/License/LGPL_2_1.pm
cp lib/Software/License/AGPL_3.pm blib/lib/Software/License/AGPL_3.pm
Manifying 30 pod documents
PERL_DL_NONLAZY=1 "/usr/bin/perl" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/basic.t ................... ok
t/bsd-url.t ................. ok
t/custom.t .................. ok
# 
# Versions for all modules listed in MYMETA.json (including optional ones):
# 
# === Configure Requires ===
# 
#     Module              Want Have
#     ------------------- ---- ----
#     ExtUtils::MakeMaker  any 7.24
# 
# === Build Requires ===
# 
#     Module              Want Have
#     ------------------- ---- ----
#     ExtUtils::MakeMaker  any 7.24
# 
# === Test Requires ===
# 
#     Module              Want     Have
#     ------------------- ---- --------
#     ExtUtils::MakeMaker  any     7.24
#     File::Spec           any     3.62
#     Test::More          0.96 1.001014
#     Try::Tiny            any     0.28
# 
# === Test Recommends ===
# 
#     Module         Want     Have
#     ---------- -------- --------
#     CPAN::Meta 2.120900 2.150010
# 
# === Runtime Requires ===
# 
#     Module         Want     Have
#     -------------- ---- --------
#     Carp            any     1.36
#     Data::Section   any 0.101621
#     File::Spec      any     3.62
#     IO::Dir         any     1.08
#     Module::Load    any     0.32
#     Text::Template  any     1.46
#     parent          any    0.232
#     strict          any     1.04
#     warnings        any     1.12
# 
t/00-report-prereqs.t ....... ok
t/guess_license_from_pod.t .. ok
t/creative_commons.t ........ skipped: requires Software::License::CCpack to test this
t/meta-names.t .............. ok

#   Failed test at t/guess_meta_license.t line 57.
#     Structures begin differing at:
#          $got->[1] = 'Software::License::GPL_3_plus'
#     $expected->[1] = Does not exist
# Looks like you failed 1 test of 26.
t/guess_meta_license.t ...... 
Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/26 subtests 
t/round-trip.t .............. ok
t/two-dots.t ................ ok
t/short_name.t .............. ok

#   Failed test 'guessed okay'
#   at t/utils.t line 123.
#     Structures begin differing at:
#          $got->[1] = 'Software::License::GPL_1_plus'
#     $expected->[1] = 'Software::License::GPL_2'
# Looks like you failed 1 test of 5.
t/utils.t ................... 
Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/5 subtests 

Test Summary Report
-------------------
t/guess_meta_license.t    (Wstat: 256 Tests: 26 Failed: 1)
  Failed test:  25
  Non-zero exit status: 1
t/utils.t                 (Wstat: 256 Tests: 5 Failed: 1)
  Failed test:  4
  Non-zero exit status: 1
Files=12, Tests=178,  6 wallclock secs ( 0.16 usr  0.01 sys +  1.58 cusr  5.88 csys =  7.63 CPU)
Result: FAIL
Failed 2/12 test programs. 2/178 subtests failed.
make: *** [test_dynamic] Error 1
-> FAIL Installing Software::License failed. See /home/vagrant/.cpanm/work/1488304688.18380/build.log for details. Retry with --force to force install it.

Add command-line program for spitting out license etc

More than once (hey, I'm getting old) I've gone to S::L looking for a command-line script that will spit out a license according to various options.

I end up finding App::Software::License of course, but I think that such a program should be part of this dist. That uses Moose though, so in its current form it probably can't be dropped here, but how about a Mooified version?

Software::License installation issue

I tried to install the Software::License on Mac Ventura OS. Getting the following compatibility issues.
do you know if the next version will be able to support the following packages? thanks.

#     Module              Want Have
#     ------------------- ---- ----
#     ExtUtils::MakeMaker 6.78 7.34
#     JSON::PP 2.27300 4.02
#     Test::More          0.96 1.302162
#     CPAN::Meta 2.120900 2.150010
#     perl           5.006 5.030003

Artistic_1_0 has excess whitespace at EOL in "Definitions:"

 grep -C0 -n '\s$' $( perldoc -l Software::License::Artistic_1_0  )  | tr " " "_"
115:____textual_modification._
--
118:____Holder._
--
120:____the_package._
--
125:____computing_community_at_large_as_a_market_that_must_bear_the_fee.)_
--
129:____received_it._

f_74

Unclear documentation

name

This method returns the name of the license, suitable for
shoving in the middle of a sentence, generally with a leading
capitalized "The."

If the name of license is suitable for showing in the middle of a sentence, why "the" article is capitalized?

Try word trigrams or something like that for identifying licenses

Reading one of Ishigaki-san's PRs prompted an idea.

I wonder if we did word trigram (or possibly even just bigram) analysis of the snippets, could that be used to more reliably guess the license, even if things like the title etc were left out? But a lot of terminology in licenses is similar, so it might not work at all.

Wouldn't take too long to try this out, but I resisted the yak luring me in to give it a go right now, and put it onto my play-time backlog.

Recording the idea here, in case someone has more experience with this sort of thing and knows it won't work.

Wording of "MIT (X11)" is misleading

The MIT license-related text this module generates seems to misrepresent the variant of that license it actually uses. Software::License::MIT names itself "The MIT (X11) License" in output, but I do not think this is accurate.

According to Wikipedia, the MIT license has two significant variants, largely known as "X11" and "Expat" after the well-known FOSS projects that respectively adopted them.

The main difference between the two is that the X11 variant concludes with a paragraph forbidding use of the copyright holder's names in advertising or other promotion. The Expat variant does not include this language.

The full license text found in Software::License::MIT's source does not include this source, thus marking it as an Expat variant -- which doesn't agree with the X11 claim of its output. Thus this issue.

The fix would involve one of these:

  • Add the X11-variant concluding paragraph to the license text in Software::License::MIT.

  • Remove "(X11)" from Software::License::MIT's source. (My recommendation, for simplicity's sake.)

  • Replace "(X11)" with "(Expat)" in Software::License::MIT's source.

(One could also make two new submodules under Software::License::MIT, one for each variant, and treat the root module as an alias to one or the other, I suppose.)

Would be pleased to submit a pull request out of any of these. :)

guess_license_from_pod does not recognize license version in parens

In my module's license section, there is the following text (which was inserted by module-starter):

This program is free software; you can redistribute it and/or modify it
under the terms of the the Artistic License (2.0).

But, the list returned by guess_license_from_pod was:

Software::License::Artistic_1_0 Software::License::Artistic_2_0

Something can have multiple copyright holders and this should be supported.

Copyright on something like a dist can be complex, but one issue is that different parts can have different copyright holders, especially as perl modules change hands and have multiple authors. It would be nice if this were supported.

This software is Copyright (c) 2013 - 2014 by Big Bird <[email protected]>.
This software is Copyright (c) 2014 - 2019 by Elmo <[email protected]>.
This software is Copyright (c) 2019 by Oscar the Grouch <[email protected]>.
This software is Copyright (c) 2019 - 2021 by Sesame Street, Inc.

Artistic-1.0 "aggregation clause" confusion

Software::License::Artistic_1_0 has an option to include or leave out the 'sometimes-omitted "aggregation clause"', which reads

  1. The name of the Copyright Holder may not be used to endorse or promote products derived from this software without specific prior written permission.

However, according to spdx.org [1], there's a sometimes-included
clause 8 that reads

  1. Aggregation of this Package with a commercial distribution is always permitted provided that the use of this Package is embedded; that is, when no overt attempt is made to make this Package's interfaces visible to the end user of the commercial distribution. Such use shall not be construed as a distribution of this Package.

Given the reference to "aggregation" in the clause name in the
Software::License::Artistic_1_0 documentation, it seems probable that the spdx.org version is actually the "sometimes-omitted" one.

In any case, it would be nice to have an option to generate the 10-clause version ("Artistic-1.0-cl8" below.)

[1] see http://spdx.org/licenses/Artistic-1.0-cl8
and http://spdx.org/licenses/Artistic-1.0
and http://spdx.org/licenses/Artistic-1.0-Perl

(This is also https://bugs.debian.org/764756)

Artistic license confusion

As seen at http://spdx.org/licenses/, there are three variants
of the Artistic license version 1.0 around.

http://spdx.org/licenses/Artistic-1.0
http://spdx.org/licenses/Artistic-1.0-Perl
http://spdx.org/licenses/Artistic-1.0-cl8

The one that is shipped with Perl in the top level "Artistic" file (and
that is included in /usr/share/common-licenses on Debian) is the one
called "Artistic-1.0-Perl", but Software::License has "Artistic-1.0",
which has a different number of clauses and some other more or less
subtle differences.

A crude way to tell these apart is
/7.\s_C subroutines/ and out("Artistic-1.0-Perl");
/8.\s_The name of the Copyright Holder/ and out("Artistic-1.0");
/8.\s*Aggregation of this Package/ and out("Artistic-1.0-cl8");

It seems to me that at least Software::License::Perl_5 should use
Artistic-1.0-Perl instead, and that Software::License::Artistic_1_0
should possibly default to Artistic-1.0-Perl.

This affects quite a few CPAN distributions using Dist::Zilla and generating top level LICENSE files. If the author requests the same terms as Perl itself, generating a different copy of the license than the one in the Perl distribution seems to be incorrect.

(This is also https://bugs.debian.org/764753, and there's a quick script using the above heuristics at http://anonscm.debian.org/cgit/pkg-perl/scripts.git/plain/artistic-version in case that's helpful to others too.)

"Perl 5 license" issue.

The phrasing of the "perl 5" license, which is A1.0/GPL1.0+, makes unclear what the copyright holders intentions are if the "Perl 5 programming language system itself" changes license.

the same terms as the Perl 5 programming language system itself.

From the point of view of whats in the pod itself, one interpretation is that "the Perl 5 programming language system itself" is a specific term, which is then defined thereafter as A1.0/GPL1.0+.

Another interpretation is that "the Perl 5 programming language system itself" is referencing Perl 5 interpreter releases, which would then imply the the subsequent license details are for convenience. However, in the first sentence its "Perl 5 programming langauge" and the second is just "Perl programming language", this breaks this interpretation.

If so, then if the Perl5 interpreter was to relicense, it is not clear if the author of the CPAN module wishes to automatically adopt that license without doing a new release. Also, its not clear if the latest perl 5 interpreter license is to be adopted or if a specific perl 5 interpreter license should be adopted (perhaps the minimum perl version?).

Similarly, if the license in Perl_5.pm was to change, then subsequent releases via dist::zilla etc would change the license terms with minimal consent from the author(s) & copyright holders.

Also the word "use" is not mentioned at all.

A minimal potential solution which assumes the perl 5 license at the date of release:

This is free software; you can use, redistribute it and/or modify it under
the same terms as "the Perl 5 programming language system itself".
__LICENSE__
Terms of "the Perl 5 programming language system itself"

Another solution would be to make the phasing a little more specific to the date of release:

This is free software; you can use, redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself 
as at the date of release.
__LICENSE__
Terms of the Perl 5 programming language system itself as date of release

Or more wordy, that mentions that the license is the same as perl 5 as being more like an FYI so as to disconnect implied intent around relicensing:

This is free software; you can use, redistribute it and/or modify it under the following terms which at release are the same as the Perl 5 programming language system itself 
__LICENSE__
Terms of release

Apache_2_0 license does not replace year and copyright holder

Steps to reproduce:

When generating one Apache_2_0 license, we can see that the line looks like a template Copyright [yyyy] [name of copyright owner]

> perl -MSoftware::License::Apache_2_0 -E 'say Software::License::Apache_2_0->new( { holder => "me", year => 2021 } )->fulltext' | grep yyyy
   Copyright [yyyy] [name of copyright owner]

we could expect an output like Copyright 2021 me in the case described above

Is it a mistake? or is it by design?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.