Spec URL: http://symetrix.com/~bjohnson/projects/fedora/perl-PDF-API2.spec SRPM URL: http://symetrix.com/~bjohnson/projects/fedora/perl-PDF-API2-0.59.002-1.src.rpm Description: A Perl Module Chain to faciliate the Creation and Modification of High-Quality "Portable Document Format (aka. PDF)" Files. In particular when you review this package, please pay attention to: 1) Licenses - multiple licenses 2) Patents - patent statements regarding PDF technology 3) Fonts - inclusion of fonts in package 4) Win32.pm - I removed these to not trigger additional dependencies Please let me know if I'm doing anything wrong here.
Spec URL: http://symetrix.com/~bjohnson/projects/fedora/perl-PDF-API2.spec SRPM URL: http://symetrix.com/~bjohnson/projects/fedora/perl-PDF-API2-0.59.002-2.src.rpm * Fri Apr 06 2007 Bernard Johnson <bjohnson> - 0.59.002-2 - moving resource to docs was a mistake, fix it
(In reply to comment #0) > In particular when you review this package, please pay attention to: > 1) Licenses - multiple licenses > 2) Patents - patent statements regarding PDF technology > 3) Fonts - inclusion of fonts in package > 4) Win32.pm - I removed these to not trigger additional dependencies > > Please let me know if I'm doing anything wrong here. It all sounds good, but when I read "patents" I get a little nervous. :) Can you elaboborate? Is there a particular part of the package we should review for this? (e.g. the fonts / PDF itself / etc) "Go read file FOO in the package" is a legit answer here... I'm just looking for a little guidance before beginning a review.
(In reply to comment #2) > It all sounds good, but when I read "patents" I get a little nervous. :) Can you > elaboborate? Is there a particular part of the package we should review for > this? (e.g. the fonts / PDF itself / etc) > > "Go read file FOO in the package" is a legit answer here... I'm just looking > for a little guidance before beginning a review. "Go read file LICENSE in the package" :)
(In reply to comment #3) > "Go read file LICENSE in the package" :) It's always this simple when I actually ask :) As to the fonts, they look perfectly fine. However, they may fall under the heading of "content", and thus need a FESCo ack... If someone with a better feel of this sections than the guidelines could post a comment here, I'd much appreciate it. Otherwise, I have a review all ready to post.
(In reply to comment #4) > As to the fonts, they look perfectly fine. However, they may fall under the > heading of "content", and thus need a FESCo ack... If someone with a better > feel of this sections than the guidelines could post a comment here, I'd much > appreciate it. Since they are an integral (or are they?) part of the package, I wasn't so worried about whether they were OK or not, just if there was a better way to handle their inclusion. The package defaults to installing them with the perl package itself, but I was wondering if it should/could be broken up to install with regular fonts (I didn't try that). Opinions?
Spec URL: http://symetrix.com/~bjohnson/projects/fedora/perl-PDF-API2.spec SRPM URL: http://symetrix.com/~bjohnson/projects/fedora/perl-PDF-API2-0.60-1.fc6.src.rpm * Sat Apr 28 2007 Bernard Johnson <bjohnson> - 0.60-1 - v 0.60 - deliberately remove 027_winfont example as it wants Win32.pm - BR on perl(Ext::MakeMaker) rather than perl
Ok, so :) Sorry for the delay, but I wanted to both think this one through (and had some sort of obsessive desire to get all of Catalyst-Devel's prereqs posted for review<grin>) So, fonts. The key bits that control where fonts are looked for appears to be at the beginning of lib/PDF/API2.pm: " @FontDirs = ( (map { "$_/PDF/API2/fonts" } @INC), qw[ /usr/share/fonts /usr/local/share/fonts c:/windows/fonts c:/winnt/fonts ] ); " They do appear to be integral to the function and operation of the package. I've taken a peek at a number of other font packages, the canonical place for fonts seems to be /usr/share/fonts... The bitstream-vera-fonts package has %post and %postun scriptlets that seem to help with enabling other apps to use these fonts. So, my suggestion here would be to: 1. make a little patch to change @FontDirs defaults to sensible paths 2. move the fonts from their location in @INC to %{_sharedir}/fonts/%{name} 3. break the fonts out into a subpackage, requiring that subpackage by the main package (but not vice-versa) 4. determine what %post/%postun scriptlets are needed to get these fonts recognized and usable by the system 5. (really post-approval/import/build) include the sub-package in the right spot in the comps.xml files such that people will see it with other fonts packages That should break these fonts out in a sensible fashion that makes them available to the rest of the system without impacting the functioning of this module.
Wait, even better... I just notice that these fonts are just deja-vu fonts and are all located in either dejavu-fonts or dejavu-fonts-experimental packages in Fedora(-Extras). So I removed the fonts from the installation entirely and pointed the FontDir to search the dejavu font directory, and now require those packages. I think that gets us what we want right? Spec URL: http://symetrix.com/~bjohnson/projects/fedora/perl-PDF-API2.spec SRPM URL: http://symetrix.com/~bjohnson/projects/fedora/perl-PDF-API2-0.60-2.fc6.src.rpm * Sun Apr 29 2007 Bernard Johnson <bjohnson> - 0.60-2 - remove fonts and depend on dejavu-fonts and dejavu-fonts-experimental - change font search path - remove font docs
I took a look at LICENSE; this package's licensing and (in specific) royalty-free, etc, etc, patent grants all look OK to me. The font license also looks similarly OK. You're missing BRs on perl(Test::More) and (a well hidden one) on perl(XML::Parser::Expat) -- both of which can be fixed post-import. + source files match upstream: 3e674248b44f68af13cc4d23f018ba50 PDF-API2-0.60.tar.gz 3e674248b44f68af13cc4d23f018ba50 PDF-API2-0.60.tar.gz.srpm + package meets naming and versioning guidelines. + specfile is properly named, is cleanly written and uses macros consistently. + dist tag is present. + build root is correct. + license field matches the actual license. + license is open source-compatible. License text included in package. + latest version is being packaged. X BuildRequires are proper. + compiler flags are appropriate (noarch) + %clean is present. + package installs properly + debuginfo package looks complete. (noarch) + rpmlint is silent. + final provides and requires are sane: ** perl-PDF-API2-0.60-2.fc6.noarch.rpm == rpmlint == provides perl(PDF::API2) perl(PDF::API2::Annotation) perl(PDF::API2::Basic::PDF::ASCII85Decode) perl(PDF::API2::Basic::PDF::ASCIIHexDecode) perl(PDF::API2::Basic::PDF::Array) perl(PDF::API2::Basic::PDF::Bool) perl(PDF::API2::Basic::PDF::Dict) perl(PDF::API2::Basic::PDF::File) perl(PDF::API2::Basic::PDF::Filter) perl(PDF::API2::Basic::PDF::FlateDecode) perl(PDF::API2::Basic::PDF::LZWDecode) perl(PDF::API2::Basic::PDF::Literal) perl(PDF::API2::Basic::PDF::Name) perl(PDF::API2::Basic::PDF::Null) perl(PDF::API2::Basic::PDF::Number) perl(PDF::API2::Basic::PDF::Objind) perl(PDF::API2::Basic::PDF::Page) perl(PDF::API2::Basic::PDF::Pages) perl(PDF::API2::Basic::PDF::RunLengthDecode) perl(PDF::API2::Basic::PDF::String) perl(PDF::API2::Basic::PDF::Utils) perl(PDF::API2::Basic::TTF::AATKern) perl(PDF::API2::Basic::TTF::AATutils) perl(PDF::API2::Basic::TTF::Anchor) perl(PDF::API2::Basic::TTF::Bsln) perl(PDF::API2::Basic::TTF::Cmap) perl(PDF::API2::Basic::TTF::Coverage) perl(PDF::API2::Basic::TTF::Cvt_) = 0.0001 perl(PDF::API2::Basic::TTF::Delta) perl(PDF::API2::Basic::TTF::Fdsc) perl(PDF::API2::Basic::TTF::Feat) perl(PDF::API2::Basic::TTF::Fmtx) perl(PDF::API2::Basic::TTF::Font) = 0.32 perl(PDF::API2::Basic::TTF::Fpgm) = 0.0001 perl(PDF::API2::Basic::TTF::GDEF) perl(PDF::API2::Basic::TTF::GPOS) perl(PDF::API2::Basic::TTF::GSUB) perl(PDF::API2::Basic::TTF::Glyf) perl(PDF::API2::Basic::TTF::Glyph) perl(PDF::API2::Basic::TTF::Hdmx) perl(PDF::API2::Basic::TTF::Head) perl(PDF::API2::Basic::TTF::Hhea) perl(PDF::API2::Basic::TTF::Hmtx) perl(PDF::API2::Basic::TTF::Kern) perl(PDF::API2::Basic::TTF::Kern::ClassArray) perl(PDF::API2::Basic::TTF::Kern::CompactClassArray) perl(PDF::API2::Basic::TTF::Kern::OrderedList) perl(PDF::API2::Basic::TTF::Kern::StateTable) perl(PDF::API2::Basic::TTF::Kern::Subtable) perl(PDF::API2::Basic::TTF::LTSH) perl(PDF::API2::Basic::TTF::Loca) perl(PDF::API2::Basic::TTF::Maxp) perl(PDF::API2::Basic::TTF::Mort) perl(PDF::API2::Basic::TTF::Mort::Chain) perl(PDF::API2::Basic::TTF::Mort::Contextual) perl(PDF::API2::Basic::TTF::Mort::Insertion) perl(PDF::API2::Basic::TTF::Mort::Ligature) perl(PDF::API2::Basic::TTF::Mort::Noncontextual) perl(PDF::API2::Basic::TTF::Mort::Rearrangement) perl(PDF::API2::Basic::TTF::Mort::Subtable) perl(PDF::API2::Basic::TTF::Name) = 1.1 perl(PDF::API2::Basic::TTF::OS_2) perl(PDF::API2::Basic::TTF::OldCmap) perl(PDF::API2::Basic::TTF::OldMort) perl(PDF::API2::Basic::TTF::PCLT) perl(PDF::API2::Basic::TTF::PSNames) perl(PDF::API2::Basic::TTF::Post) = 0.01 perl(PDF::API2::Basic::TTF::Prep) = 0.0001 perl(PDF::API2::Basic::TTF::Prop) perl(PDF::API2::Basic::TTF::Segarr) = 0.0001 perl(PDF::API2::Basic::TTF::Table) = 0.0001 perl(PDF::API2::Basic::TTF::Ttc) = 0.0001 perl(PDF::API2::Basic::TTF::Ttopen) perl(PDF::API2::Basic::TTF::Utils) = 0.0001 perl(PDF::API2::Basic::TTF::Vhea) perl(PDF::API2::Basic::TTF::Vmtx) perl(PDF::API2::Basic::TTF::XMLparse) perl(PDF::API2::Content) perl(PDF::API2::Content::Text) perl(PDF::API2::Lite) perl(PDF::API2::Matrix) perl(PDF::API2::NamedDestination) perl(PDF::API2::Outline) perl(PDF::API2::Outlines) perl(PDF::API2::Page) perl(PDF::API2::Resource) perl(PDF::API2::Resource::BaseFont) perl(PDF::API2::Resource::CIDFont) perl(PDF::API2::Resource::CIDFont::CJKFont) perl(PDF::API2::Resource::CIDFont::TrueType) perl(PDF::API2::Resource::CIDFont::TrueType::FontFile) perl(PDF::API2::Resource::ColorSpace) perl(PDF::API2::Resource::ColorSpace::DeviceN) perl(PDF::API2::Resource::ColorSpace::Indexed) perl(PDF::API2::Resource::ColorSpace::Indexed::ACTFile) perl(PDF::API2::Resource::ColorSpace::Indexed::Hue) perl(PDF::API2::Resource::ColorSpace::Indexed::WebColor) perl(PDF::API2::Resource::ColorSpace::Separation) perl(PDF::API2::Resource::ExtGState) perl(PDF::API2::Resource::Font) perl(PDF::API2::Resource::Font::BdFont) perl(PDF::API2::Resource::Font::CoreFont) perl(PDF::API2::Resource::Font::CoreFont::bankgothic) perl(PDF::API2::Resource::Font::CoreFont::courier) perl(PDF::API2::Resource::Font::CoreFont::courierbold) perl(PDF::API2::Resource::Font::CoreFont::courierboldoblique) perl(PDF::API2::Resource::Font::CoreFont::courieroblique) perl(PDF::API2::Resource::Font::CoreFont::georgia) perl(PDF::API2::Resource::Font::CoreFont::georgiabold) perl(PDF::API2::Resource::Font::CoreFont::georgiabolditalic) perl(PDF::API2::Resource::Font::CoreFont::georgiaitalic) perl(PDF::API2::Resource::Font::CoreFont::helvetica) perl(PDF::API2::Resource::Font::CoreFont::helveticabold) perl(PDF::API2::Resource::Font::CoreFont::helveticaboldoblique) perl(PDF::API2::Resource::Font::CoreFont::helveticaoblique) perl(PDF::API2::Resource::Font::CoreFont::symbol) perl(PDF::API2::Resource::Font::CoreFont::timesbold) perl(PDF::API2::Resource::Font::CoreFont::timesbolditalic) perl(PDF::API2::Resource::Font::CoreFont::timesitalic) perl(PDF::API2::Resource::Font::CoreFont::timesroman) perl(PDF::API2::Resource::Font::CoreFont::trebuchet) perl(PDF::API2::Resource::Font::CoreFont::trebuchetbold) perl(PDF::API2::Resource::Font::CoreFont::trebuchetbolditalic) perl(PDF::API2::Resource::Font::CoreFont::trebuchetitalic) perl(PDF::API2::Resource::Font::CoreFont::verdana) perl(PDF::API2::Resource::Font::CoreFont::verdanabold) perl(PDF::API2::Resource::Font::CoreFont::verdanabolditalic) perl(PDF::API2::Resource::Font::CoreFont::verdanaitalic) perl(PDF::API2::Resource::Font::CoreFont::webdings) perl(PDF::API2::Resource::Font::CoreFont::wingdings) perl(PDF::API2::Resource::Font::CoreFont::zapfdingbats) perl(PDF::API2::Resource::Font::Postscript) perl(PDF::API2::Resource::Font::SynFont) perl(PDF::API2::Resource::Pattern) perl(PDF::API2::Resource::Shading) perl(PDF::API2::Resource::UniFont) perl(PDF::API2::Resource::XObject) perl(PDF::API2::Resource::XObject::Form) perl(PDF::API2::Resource::XObject::Form::BarCode) perl(PDF::API2::Resource::XObject::Form::BarCode::codabar) perl(PDF::API2::Resource::XObject::Form::BarCode::code128) perl(PDF::API2::Resource::XObject::Form::BarCode::code3of9) perl(PDF::API2::Resource::XObject::Form::BarCode::ean13) perl(PDF::API2::Resource::XObject::Form::BarCode::int2of5) perl(PDF::API2::Resource::XObject::Form::Hybrid) perl(PDF::API2::Resource::XObject::Image) perl(PDF::API2::Resource::XObject::Image::GD) perl(PDF::API2::Resource::XObject::Image::GIF) perl(PDF::API2::Resource::XObject::Image::JPEG) perl(PDF::API2::Resource::XObject::Image::PNG) perl(PDF::API2::Resource::XObject::Image::PNM) perl(PDF::API2::Resource::XObject::Image::TIFF) perl(PDF::API2::UniWrap) perl(PDF::API2::Util) perl(PDF::API2::Version) = 0.60 perl(TiffFile) perl-PDF-API2 = 0.60-2.fc6 == requires dejavu-fonts dejavu-fonts-experimental perl >= 0:5.006 perl >= 0:5.008 perl(:MODULE_COMPAT_5.8.8) perl(Carp) perl(Compress::Zlib) perl(Data::Dumper) perl(Encode) perl(Exporter) perl(File::Basename) perl(File::Find) perl(FileHandle) perl(IO::File) perl(List::Util) perl(Math::Trig) perl(PDF::API2) perl(PDF::API2::Annotation) perl(PDF::API2::Basic::PDF::Array) perl(PDF::API2::Basic::PDF::Bool) perl(PDF::API2::Basic::PDF::Dict) perl(PDF::API2::Basic::PDF::File) perl(PDF::API2::Basic::PDF::Filter) perl(PDF::API2::Basic::PDF::Literal) perl(PDF::API2::Basic::PDF::Name) perl(PDF::API2::Basic::PDF::Null) perl(PDF::API2::Basic::PDF::Number) perl(PDF::API2::Basic::PDF::Objind) perl(PDF::API2::Basic::PDF::Page) perl(PDF::API2::Basic::PDF::Pages) perl(PDF::API2::Basic::PDF::String) perl(PDF::API2::Basic::PDF::Utils) perl(PDF::API2::Basic::TTF::AATKern) perl(PDF::API2::Basic::TTF::AATutils) perl(PDF::API2::Basic::TTF::Anchor) perl(PDF::API2::Basic::TTF::Bsln) perl(PDF::API2::Basic::TTF::Cmap) perl(PDF::API2::Basic::TTF::Coverage) perl(PDF::API2::Basic::TTF::Cvt_) perl(PDF::API2::Basic::TTF::Delta) perl(PDF::API2::Basic::TTF::Fdsc) perl(PDF::API2::Basic::TTF::Feat) perl(PDF::API2::Basic::TTF::Fmtx) perl(PDF::API2::Basic::TTF::Font) perl(PDF::API2::Basic::TTF::Fpgm) perl(PDF::API2::Basic::TTF::GDEF) perl(PDF::API2::Basic::TTF::GPOS) perl(PDF::API2::Basic::TTF::GSUB) perl(PDF::API2::Basic::TTF::Glyf) perl(PDF::API2::Basic::TTF::Glyph) perl(PDF::API2::Basic::TTF::Hdmx) perl(PDF::API2::Basic::TTF::Head) perl(PDF::API2::Basic::TTF::Hhea) perl(PDF::API2::Basic::TTF::Hmtx) perl(PDF::API2::Basic::TTF::Kern) perl(PDF::API2::Basic::TTF::Kern::ClassArray) perl(PDF::API2::Basic::TTF::Kern::CompactClassArray) perl(PDF::API2::Basic::TTF::Kern::OrderedList) perl(PDF::API2::Basic::TTF::Kern::StateTable) perl(PDF::API2::Basic::TTF::Kern::Subtable) perl(PDF::API2::Basic::TTF::LTSH) perl(PDF::API2::Basic::TTF::Loca) perl(PDF::API2::Basic::TTF::Maxp) perl(PDF::API2::Basic::TTF::Mort) perl(PDF::API2::Basic::TTF::Mort::Chain) perl(PDF::API2::Basic::TTF::Mort::Contextual) perl(PDF::API2::Basic::TTF::Mort::Insertion) perl(PDF::API2::Basic::TTF::Mort::Ligature) perl(PDF::API2::Basic::TTF::Mort::Noncontextual) perl(PDF::API2::Basic::TTF::Mort::Rearrangement) perl(PDF::API2::Basic::TTF::Mort::Subtable) perl(PDF::API2::Basic::TTF::Name) perl(PDF::API2::Basic::TTF::OS_2) perl(PDF::API2::Basic::TTF::PCLT) perl(PDF::API2::Basic::TTF::Post) perl(PDF::API2::Basic::TTF::Prep) perl(PDF::API2::Basic::TTF::Prop) perl(PDF::API2::Basic::TTF::Segarr) perl(PDF::API2::Basic::TTF::Table) perl(PDF::API2::Basic::TTF::Ttopen) perl(PDF::API2::Basic::TTF::Utils) perl(PDF::API2::Basic::TTF::Vhea) perl(PDF::API2::Basic::TTF::Vmtx) perl(PDF::API2::Content) perl(PDF::API2::Content::Text) perl(PDF::API2::Matrix) perl(PDF::API2::NamedDestination) perl(PDF::API2::Outline) perl(PDF::API2::Outlines) perl(PDF::API2::Page) perl(PDF::API2::Resource) perl(PDF::API2::Resource::BaseFont) perl(PDF::API2::Resource::CIDFont) perl(PDF::API2::Resource::CIDFont::CJKFont) perl(PDF::API2::Resource::CIDFont::TrueType) perl(PDF::API2::Resource::CIDFont::TrueType::FontFile) perl(PDF::API2::Resource::ColorSpace) perl(PDF::API2::Resource::ColorSpace::DeviceN) perl(PDF::API2::Resource::ColorSpace::Indexed) perl(PDF::API2::Resource::ColorSpace::Indexed::ACTFile) perl(PDF::API2::Resource::ColorSpace::Indexed::Hue) perl(PDF::API2::Resource::ColorSpace::Indexed::WebColor) perl(PDF::API2::Resource::ColorSpace::Separation) perl(PDF::API2::Resource::ExtGState) perl(PDF::API2::Resource::Font) perl(PDF::API2::Resource::Font::BdFont) perl(PDF::API2::Resource::Font::CoreFont) perl(PDF::API2::Resource::Font::Postscript) perl(PDF::API2::Resource::Font::SynFont) perl(PDF::API2::Resource::Pattern) perl(PDF::API2::Resource::Shading) perl(PDF::API2::Resource::UniFont) perl(PDF::API2::Resource::XObject) perl(PDF::API2::Resource::XObject::Form) perl(PDF::API2::Resource::XObject::Form::BarCode) perl(PDF::API2::Resource::XObject::Form::BarCode::codabar) perl(PDF::API2::Resource::XObject::Form::BarCode::code128) perl(PDF::API2::Resource::XObject::Form::BarCode::code3of9) perl(PDF::API2::Resource::XObject::Form::BarCode::ean13) perl(PDF::API2::Resource::XObject::Form::BarCode::int2of5) perl(PDF::API2::Resource::XObject::Form::Hybrid) perl(PDF::API2::Resource::XObject::Image) perl(PDF::API2::Resource::XObject::Image::GD) perl(PDF::API2::Resource::XObject::Image::GIF) perl(PDF::API2::Resource::XObject::Image::JPEG) perl(PDF::API2::Resource::XObject::Image::PNG) perl(PDF::API2::Resource::XObject::Image::PNM) perl(PDF::API2::Resource::XObject::Image::TIFF) perl(PDF::API2::Util) perl(PDF::API2::Version) perl(POSIX) perl(Symbol) perl(Unicode::UCD) perl(XML::Parser::Expat) perl(base) perl(bytes) perl(constant) perl(strict) perl(utf8) perl(vars) + %check is present and all tests pass: All tests successful. Files=1, Tests=1, 1 wallclock secs ( 0.69 cusr + 0.07 csys = 0.76 CPU) + no shared libraries are added to the regular linker search paths. + owns the directories it creates. + doesn't own any directories it shouldn't. + no duplicates in %files. + file permissions are appropriate. + no scriptlets present. + code, not content. + documentation is small, so no -docs subpackage is necessary. + %docs are not necessary for the proper functioning of the package. + no headers. + no pkgconfig files. + no libtool .la droppings. + not a GUI app. APPROVED
(In reply to comment #9) > You're missing BRs on perl(Test::More) and (a well hidden one) on > perl(XML::Parser::Expat) -- both of which can be fixed post-import. ok, I give.. What makes perl(XML::Parser::Expat) a BR?
New Package CVS Request ======================= Package Name: perl-PDF-API2 Short Description: Perl module for creation and modification of PDF files Owners: bjohnson Branches: FC-5 FC-6 InitialCC: fedora-perl-devel-list
(In reply to comment #10) > (In reply to comment #9) > > You're missing BRs on perl(Test::More) and (a well hidden one) on > > perl(XML::Parser::Expat) -- both of which can be fixed post-import. > > ok, I give.. What makes perl(XML::Parser::Expat) a BR? PDF/API2/Basic/TTF/XMLparse.pm uses it. The module will build w/o it being installed, but if the test suite ever actally starts being comprehensive, chances are something will fail. So I'd call it a BR, though I may just be being super pedantic here...
(In reply to comment #12) > PDF/API2/Basic/TTF/XMLparse.pm uses it. The module will build w/o it being > installed, but if the test suite ever actally starts being comprehensive, > chances are something will fail. So I'd call it a BR, though I may just be > being super pedantic here... Ok, I'm convinced :)
Building, thanks for the review.
Package Change Request ====================== Package Name: perl-PDF-API2 New Branches: el6 Owners: bjohnson InitialCC: fedora-perl-devel-list
(In reply to comment #15) > InitialCC: fedora-perl-devel-list This doesn't seem right to me. This likely should be InitialCC: perl-sig However, the packagedb already shows perl-sig as InitialCC:.
Owners and InitialCC need to be FAS accounts, not email addresses. Do you possibly mean perl-sig?
Package Change Request ====================== Package Name: perl-PDF-API2 New Branches: el6 Owners: bjohnson InitialCC: perl-sig
Git done (by process-git-requests).
Package Change Request ====================== Package Name: perl-PDF-API2 New Branches: epel7 Owners: bjohnson InitialCC: perl-sig