http://qs321.pair.com?node_id=810915

creamygoodness has asked for the wisdom of the Perl Monks concerning the following question:

The Devel::PPPort docs suggest distributing ppport.h directly rather than requiring the Devel::PPPort module as a prerequisite:

Don't direct the users of your module to download Devel::PPPort . They are most probably no XS writers. Also, don't make ppport.h optional. Rather, just take the most recent copy of ppport.h that you can find (e.g. by generating it with the latest Devel::PPPort release from CPAN), copy it into your project, adjust your project to use it, and distribute the header along with your module.

However, the copyright section of ppport.h indicates that it can only be distributed under something compatible with the Perl license:

=head1 COPYRIGHT Version 3.x, Copyright (c) 2004-2009, Marcus Holland-Moritz. Version 2.x, Copyright (C) 2001, Paul Marquess. Version 1.x, Copyright (C) 1999, Kenneth Albanowski. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

I'd like to follow the suggestion in the docs, but the project I'm working on right now is hosted at Apache, so it carries the Apache license. I don't believe that we can distribute the generated file. I haven't misunderstood anything here, have I?

Other projects which generate code, e.g. Bison, sometimes allow you to distribute generated files:

/* As a special exception, when this file is copied by Bison into a Bison output file, you may use that output file without restriction +. This special exception was added by the Free Software Foundation in version 1.24 of Bison. */

It would be a stretch to describe ppport.h as "output", though.