[Bug 810676] Review Request: aws - Ada Web Server (Web framework for Ada)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



https://bugzilla.redhat.com/show_bug.cgi?id=810676

Björn Persson <bjorn@xxxxxxxxxxxxxxxxxxxx> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
              Flags|                            |needinfo?(pavel@xxxxxxxxxxx
                   |                            |)

--- Comment #28 from Björn Persson <bjorn@xxxxxxxxxxxxxxxxxxxx> ---
Generic MUST Items:

· rpmlint must be run on the source rpm and all binary rpms the build produces.

  aws-doc.x86_64: E: devel-dependency aws(x86-64)-devel
    → ISSUE: I can't find a rule that says explicitly that a -doc package must
not depend on a -devel package – except maybe that "files marked as
documentation must not cause the package to pull in more dependencies than it
would without the documentation" – but it's true that one can read the
documents without having the library installed. I think this dependency should
be removed. Note that this will make the -doc subpackage independent of the
base package, so it will need a copy of the license file.
  aws-doc.x86_64: W: file-not-utf8 /usr/share/doc/aws/demos/zdemo/adains.png.gz
    → Nonsense.
  aws-doc.x86_64: W: file-not-utf8
/usr/share/doc/aws/demos/web_mail/wm_summary.thtml
    → You probably shouldn't touch that file.
  aws.x86_64: W: executable-stack /usr/lib64/aws/libaws.so.2.11.0
    → OK as noted in the Ada packaging guidelines.
  aws-tools.x86_64: W: no-documentation
  aws-tools.x86_64: W: no-manual-page-for-binary awsres
  aws-tools.x86_64: W: no-manual-page-for-binary wsdl2aws
    → See the separate point below.
  aws.src: W: invalid-url Source1: aws-fedora.tgz
    → I assume that you're going to check that file into Git. Otherwise you
would need to provide a URL to it.
  aws.src: W: invalid-url Source0: aws-gpl-2.11.0-src.tgz
    → As usual, this is because Adacore and RPM have incompatible ideas of how
to publish tarballs.
  aws-devel.x86_64: W: spelling-error %description -l en_US subpackage -> sub
package, sub-package, package's
    → I think RPMlint is wrong here. "Subpackage" is consistently written
without a hyphen in the guidelines.

· The package must be named according to the Package Naming Guidelines.
  → OK.

· The spec file name must match the base package %{name}, in the format
%{name}.spec unless your package has an exemption.
  → OK. The names match.

· The package must meet the Packaging Guidelines.
  → ISSUES:
    · The -doc subpackage should be in the Documentation group.
    · The comment about the SSL versions patch needs to be expanded to explain
whether you have sent the patch upstream, or whether it's Fedora-specific for
some reason.
    · It's unclear whether IPv6 is enabled. build_aws.gpr points to both
aws-net-std__gnat.adb and aws-net-std__ipv6.adb as implementations of
AWS.Net.Std, and it's not easy to know which of them takes effect. aws.gpr only
points to aws-net-std__gnat.adb.

· The package must be licensed with a Fedora approved license and meet the
Licensing Guidelines.
  → OK.

· The License field in the package spec file must match the actual license.
  → ISSUE: As far as I can see the license should be "GPLv3+ with exceptions
and GPLv2+" on the main package, and "GPLv3+" on aws-tools. (Memory_Streams is
GPLv2+.)

· If (and only if) the source package includes the text of the license(s) in
its own file, then that file, containing the text of the license(s) for the
package must be included in %doc.
  → NOTE: A copy of COPYING3 must be included in aws-doc if its dependency on
aws-devel is removed.

· The spec file must be written in American English.
  → OK. The spelling and grammar aren't perfect but it's comprehensible.

· The spec file for the package MUST be legible.
  → OK.

· The sources used to build the package must match the upstream source, as
provided in the spec URL.
  → OK.

· The package MUST successfully compile and build into binary rpms on at least
one primary architecture.
  → OK. It builds in Koji on at least x86 and x86-64.

· If the package does not successfully compile, build or work on an
architecture, then those architectures should be listed in the spec in
ExcludeArch.
  → OK, ExclusiveArch is used.

· All build dependencies must be listed in BuildRequires, except for any that
are listed in the exceptions section of the Packaging Guidelines.
  → OK except as noted below.

· The spec file MUST handle locales properly.
  → N/A. No translations are included.

· Every binary RPM package (or subpackage) which stores shared library files
(not just symlinks) in any of the dynamic linker's default paths, must call
ldconfig in %post and %postun.
  → OK. ldconfig is called.

· The package must NOT bundle copies of system libraries.

  → ISSUE: Zlib-Ada is now packaged so include/zlib* must be deleted. "-lz"
should be deleted from build_aws.gpr, and «with "zlib_ada";» added to
build_aws.gpr and aws.gpr. The build dependencies and the dependencies of
aws-devel must reflect this.

  Templates_Parser and Zlib are deleted in %prep, which is right.

  Memory_Streams is not distributed independently anywhere and Dmitriy
Anisimkov considers it a part of AWS. The situation with Strings_Cutter seems
to be the same; I can't find it anywhere else on the web. These are not bundled
libraries.

  John Halleck's SHA-1 code doesn't seem to be used. It was also recently
deleted from AWS's Git repository, so we don't need to worry about it.

· If the package is designed to be relocatable, the packager must state this
fact in the request for review, along with the rationalization for relocation
of that specific package.
  → OK. The package isn't relocatable.

· The package must own all directories that it creates.
  → OK.

· The package must not list a file more than once in the spec file's %files
listings. (Notable exception: license texts in specific situations)
  → OK.

· Permissions on files must be set properly.
  → OK.

· The package must consistently use macros.
  → OK.

· The package must contain code, or permissable content.
  → OK. Code and documentation.

· Large documentation files must go in a -doc subpackage.
  → OK.

· If a package includes something as %doc, it must not affect the runtime of
the application.
  → OK.

· Static libraries must be in a -static package.
  → N/A. Only shared libraries are packaged.

· Development files must be in a -devel package.
  → OK.

· In the vast majority of cases, devel packages must require the base package
using a fully versioned dependency.
  → OK.

· Packages must NOT contain any .la libtool archives.
  → OK.

· Packages containing GUI applications must include a %{name}.desktop file.
  → N/A. This isn't a GUI application.

· Packages must not own files or directories already owned by other packages.
  → OK.

· All filenames in rpm packages must be valid UTF-8.
  → OK.


Ada-specific MUST items:

· The package must have "BuildRequires: gcc-gnat".
  → ISSUE: gcc-gnat is missing from the build dependencies.

· The appropriate flags macro must be used for each GNAT tool that is invoked.
  → OK. GPRbuild_optflags is used.

· If there is a need to prevent attempts to build the package on secondary
architectures where GNAT has not been bootstrapped, then this MUST be done with
"ExclusiveArch: %{GNAT_arches}".
  → NOTE: Once the package is imported and the branches have been set up,
please change to "ExclusiveArch: %{GNAT_arches}" in the f17, f18 and master
branches.

· The package must have "BuildRequires: fedora-gnat-project-common".
  → OK.

· Ada library packages MUST have a -devel subpackage containing all the files
that are necessary for compilation of code that uses the library.
  → OK.

· The -devel package MUST NOT contain any makefiles or other files that are
only used for recompiling the library.
  → OK.

· The -devel package MUST NOT contain any *.o files.
  → OK.

· The -devel package MUST contain one or more GNAT project files to be imported
by other projects that use the library.
  → OK.

· Project files MUST be architecture-independent.
  → OK.

· Project files MUST NOT contain hard-coded directory names.
  → OK.

· If the "directories" project is used, then the -devel package MUST have an
explicit "Requires: fedora-gnat-project-common".
  → OK.

· Project files MUST have an Externally_Built attribute equal to "true".
  → OK.

· Ada source files in -devel packages MUST be placed in the %{_includedir}
directory or a subdirectory thereof.
  → OK.

· Ada library information files MUST be placed in a subdirectory of %{_libdir}.
  → OK.

· GNAT projects files MUST be placed in the %{_GNAT_project_dir} directory or a
subdirectory thereof.
  → OK.


SHOULD items:

· If the source package does not include license text(s) as a separate file
from upstream, the packager SHOULD query upstream to include it.
  → OK, there is a COPYING3.

· The description and summary sections in the package spec file should contain
translations for supported Non-English languages, if available.
  → No translations are included but that's OK.

· The reviewer should test that the package builds in mock.
  → OK.

· The package should compile and build into binary rpms on all supported
architectures.
  → OK. It builds on all two primary architectures.

· The reviewer should test that the package functions as described.
  → ISSUES: Trying to compile the demos reveals several problems:
    · aws.gpr tries to import "aws/template_parser", which doesn't exist.
    · aws.gpr imports xmlada.gpr, so aws-devel must require xmlada-devel.
    · AWS speces reference Templates Parser speces, so aws.gpr must import
templates_parser.gpr and aws-devel must require templates_parser-devel.
    · aws.gpr points to aws-net-ssl__openssl.adb instead of
aws-net-ssl__gnutls.adb.

· If scriptlets are used, those scriptlets must be sane.
  → OK.

· Usually, subpackages other than devel should require the base package using a
fully versioned dependency.
  → OK. The -tools subpackage has this. I don't think this applies to the -doc
subpackage.

· The placement of pkgconfig(.pc) files depends on their usecase, and this is
usually for development purposes, so should be placed in a -devel pkg.
  → N/A. There are no pkgconfig files.

· If the package has file dependencies outside of /etc, /bin, /sbin, /usr/bin,
or /usr/sbin consider requiring the package which provides the file instead of
the file itself.
  → OK. There are no file dependencies other than /sbin/ldconfig.

· The package should contain man pages for binaries/scripts. If it doesn't,
work with upstream to add them where they make sense.
  → ISSUE: There are no man pages for awsres and wsdl2aws. Debian has man pages
however, so you should try to adapt those for Fedora. In a quick check I found
one thing that needs to be adjusted: They refer to the manual in the -doc
subpackage, but Debian's package has a different name. You could change it to
"aws-doc", but it might be better to remove the package name so that the man
pages can be upstreamed.


Common sense stuff not mentioned in the guidelines:

· ISSUE: The group of the -tools subpackage is wrong. The tools aren't
libraries. I think "Applications/Text" is the best choice.

· ISSUE: The -doc subpackage should be noarch (and thus not use _isa).

-- 
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
package-review mailing list
package-review@xxxxxxxxxxxxxxxxxxxxxxx
https://admin.fedoraproject.org/mailman/listinfo/package-review



[Index of Archives]     [Fedora Legacy]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite News]     [KDE Users]     [Fedora Tools]