Bug 498390 - Review Request: rakudo - Rakudo - A Perl compiler for Parrot
Review Request: rakudo - Rakudo - A Perl compiler for Parrot
Status: CLOSED NEXTRELEASE
Product: Fedora
Classification: Fedora
Component: Package Review (Show other bugs)
rawhide
All Linux
medium Severity medium
: ---
: ---
Assigned To: Christoph Wickert
Fedora Extras Quality Assurance
http://rakudo.org
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2009-04-30 05:07 EDT by Gerd Pokorra
Modified: 2010-05-20 15:35 EDT (History)
8 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2009-10-09 14:53:20 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
cwickert: fedora‑review+
kevin: fedora‑cvs+


Attachments (Terms of Use)

  None (edit)
Description Gerd Pokorra 2009-04-30 05:07:10 EDT
Spec URL: ftp://ftp.uni-siegen.de/pub/parrot.rpms/rakudo/rakudo.spec
SRPM URL: ftp://ftp.uni-siegen.de/pub/parrot.rpms/rakudo/rakudo.src.rpm
Description: Rakudo Perl is a Perl 6 compiler for the Parrot virtual machine.

This is only a placeholder, because Rakudo do not build from an installed
parrot. It makes no sense to make a rpm for Rakudo with an integrated parrot. The Parrot community is at the moment activ working that general languages build with an installed parrot. I think it will coming soon so I made already this 'Review Request' but it is only a placeholder until Rakudo build on an installed parrot.
Comment 1 Chris Weyl 2009-05-03 16:37:07 EDT
Do you have a timeframe in which you plan on submitting this?
Comment 2 Gerd Pokorra 2009-05-05 03:29:54 EDT
There is no timeframe, because nobody know how long it will take that the basis arrives (rakudo builds on an installed parrot). I also can not say how long the review will be. By be making some tests with an include parrot in the meantime.
(So it will start when rakudo builds on an installed parrot and end when it is done. But then it think, it will be updated the next ten years a lot of times.)
Comment 3 Gerd Pokorra 2009-07-23 14:48:19 EDT
The first scratch build has a patch added for the file 'build/Makefile.in' so that the make starts.

http://koji.fedoraproject.org/koji/taskinfo?taskID=1495665

There is to see that 'build/gen_objectref_pmc.pl' as to be patched as next.

Parrot 1.4.0 and Rakudo 2009.07 is used.
Comment 4 Gerd Pokorra 2009-07-27 09:59:28 EDT
The next step to build Rakudo Perl 6 from the parrot package is done. The Spec- and SRPM-files on the FTP-Server are updated.

URL of the current srcatch build:
https://koji.fedoraproject.org/koji/taskinfo?taskID=1539789

As next "dynpmc.pl" will be fixed.
Comment 5 Bill McGonigle 2009-07-27 19:58:05 EDT
here, on f11 x86_64, the package builds and installs without error.

  > make test
  ...
  All tests successful.
  Files=29, Tests=236, 34 wallclock secs ( 0.09 usr  0.06 sys + 30.40 cusr    2.21 csys = 32.76 CPU)
  Result: PASS

nice.  

I got a couple backtraces during spectest:
  http://fpaste.org/paste/20093


  > make spectest
  ...
  Test Summary Report
  -------------------
  t/spec/S12-attributes/class.rakudo                           (Wstat: 6 Tests: 26 Failed: 0)
    Non-zero wait status: 6
t/spec/S14-roles/basic.rakudo                                (Wstat: 6 Tests: 33 Failed: 0)
    Non-zero wait status: 6
  Files=416, Tests=14575, 622 wallclock secs ( 4.60 usr  1.17 sys + 1599.25 cusr 61.22 csys = 1666.24 CPU)
  Result: FAIL
Comment 6 Gerd Pokorra 2009-07-29 14:48:53 EDT
URLs of successful koji scratch builds:

F11:
https://koji.fedoraproject.org/koji/taskinfo?taskID=1541662

F12:
https://koji.fedoraproject.org/koji/taskinfo?taskID=1541637
Comment 7 Tim Nelson 2009-07-30 00:23:05 EDT
The appropriate rakudo bug is: http://rt.perl.org/rt3//Public/Bug/Display.html?id=63360
Comment 8 Gerd Pokorra 2009-07-31 12:30:04 EDT
The spec-file at the URL:
ftp://ftp.uni-siegen.de/pub/parrot.rpms/rakudo/rakudo.spec
it updated.

The SRPM according to this spec has the URL:

ftp://ftp.uni-siegen.de/pub/parrot.rpms/rakudo/SRPMS/rakudo-0.2009.07-2.fc11.src.rpm

Successful scratch builds for F11 and F12 are at:
http://koji.fedoraproject.org/koji/taskinfo?taskID=1570122
http://koji.fedoraproject.org/koji/taskinfo?taskID=1569940

The rpmlint output for the spec-file and the srpm has 0 errors and 0 warnings.
The rpmlint output for the binary rpm has 0 errors and 1 warning.
Comment 9 Christoph Wickert 2009-07-31 14:14:42 EDT
Looks good so far, stay tuned for the formal review.
Comment 10 Thomas Moschny 2009-07-31 18:31:32 EDT
You should remove the "exit 0" statements because that prevents the debuginfo from being extracted. Then you can also remove the %define debug_package %{nil} line.
Comment 11 Christoph Wickert 2009-07-31 19:59:43 EDT
REVIEW FOR b9e3e00e3ad9a0c99ea5b190c14fa84f  rakudo-0.2009.07-2.fc11.src.rpm

FAIL - MUST: rpmlint must be run on every package. The output should be posted in the review.
$ rpmlint Desktop/rakudo-0.2009.07-2.fc11.src.rpm 
1 packages and 0 specfiles checked; 0 errors, 0 warnings.

$ rpmlint fedora/rpmbuild/RPMS/x86_64/rakudo-0.2009.07-2.fc11.x86_64.rpm 
rakudo.x86_64: W: unstripped-binary-or-object /usr/bin/perl6

see comment # 10 for a fix.

FAIL - MUST: The package is named according to the Package Naming Guidelines: Versioning is not correct
OK - MUST: The spec file name matches the base package %{name}, in the format %{name}.spec.
FAIL - MUST: The package meets the Packaging Guidelines. RPM_OPT_FLAGS are not honored, SourceURLs not ok.
OK - MUST: The package is licensed with a Fedora approved license and meets the Licensing Guidelines: Artistic 2.0
OK - MUST: The License field in the package spec file matches the actual license.
OK - MUST: The license file from the source package is included in %doc.
OK - MUST: The spec file is in American English.
OK - MUST: The spec file for the package is legible.
OK - MUST: The sources used to build the package match the upstream source by MD5 df841289a91a804a5bd2fe3125dfc06b
OK - MUST: The package successfully compiles and builds into binary rpms on x86_64
N/A - MUST: 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 - MUST: All build dependencies are listed in BuildRequires.
N/A - MUST: The spec file handles locales properly with the %find_lang macro.
N/A - MUST: 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.
N/A - MUST: 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 - MUST: The package owns all directories that it creates (none except in docdir)
OK - MUST: The package does not contain any duplicate files in the %files listing.
OK - MUST: Permissions on files are set properly. Every %files section includes a %defattr(...) line.
OK - MUST: The package has a %clean section, which contains rm -rf $RPM_BUILD_ROOT.
OK - MUST: The package consistently uses macros, as described in the macros section of Packaging Guidelines.
OK - MUST: The package contains code, or permissable content.
N/A - MUST: Large documentation files should go in a -doc subpackage.
OK - MUST: Files included as %doc do not affect the runtime of the application.
N/A - MUST: Header files must be in a -devel package.
N/A - MUST: Static libraries must be in a -static package.
N/A - MUST: Packages containing pkgconfig(.pc) files must 'Requires: pkgconfig'.
N/A - MUST: If a package contains library files with a suffix (e.g. libfoo.so.1.1), then library files that end in .so (without suffix) must go in a -devel package.
N/A - MUST: In the vast majority of cases, devel packages must require the base package using a fully versioned dependency: Requires: %{name} = %{version}-%{release}
OK - MUST: The package does not contain any .la libtool archives.
N/A - MUST: Packages containing GUI applications must include a %{name}.desktop file, and that file must be properly installed with desktop-file-install in the %install section.
OK - MUST: The packages does not own files or directories already owned by other packages.
OK - MUST: At the beginning of %install, the package runs rm -rf $RPM_BUILD_ROOT.
OK - MUST: All filenames in rpm packages are valid UTF-8.


SHOULD Items:
N/A - SHOULD: If the source package does not include license text(s) as a separate file from upstream, the packager SHOULD query upstream to include it.
N/A - SHOULD: The description and summary sections in the package spec file should contain translations for supported Non-English languages, if available.
OK - SHOULD: The the package builds in mock.
OK - SHOULD: The package should compile and build into binary rpms on all supported architectures.
OK - SHOULD: The package functions as described.
N/A - SHOULD: If scriptlets are used, those scriptlets must be sane. This is vague, and left up to the reviewers judgement to determine sanity.
N/A - SHOULD: Usually, subpackages other than devel should require the base package using a fully versioned dependency.
N/A - SHOULD: 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 - SHOULD: 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.


OTHER Items:
OK - latest version packaged
OK - timestamps are matching
OK - Provides and Requires are sane:
$ rpm -qp --provides rakudo-0.2009.07-2.fc11.x86_64.rpm
rakudo = 0.2009.07-2.fc11
rakudo(x86-64) = 0.2009.07-2.fc11


Issues:
- Use complete SourceURLs, see http://fedoraproject.org/wiki/Packaging/SourceURL
- Version should be 2009.7, drop the leading 0. If you want a leading 0, put it in release. See: http://fedoraproject.org/wiki/Packaging/NamingGuidelines#Snapshot_packages
- export CFLAGS="$RPM_OPT_FLAGS" to honor Fedora's compiler flags.



Gerd is going to upload a new package in a few hours and I think can approve it.
Comment 12 Gerd Pokorra 2009-08-01 05:42:58 EDT
The spec-file at the URL:
ftp://ftp.uni-siegen.de/pub/parrot.rpms/rakudo/rakudo.spec
it updated.

The SRPM according to this spec has the URL:

ftp://ftp.uni-siegen.de/pub/parrot.rpms/rakudo/SRPMS/rakudo-2009.07-3.fc11.src.rpm

Successful scratch builds for F11 and F12 are at:
http://koji.fedoraproject.org/koji/taskinfo?taskID=1571582
http://koji.fedoraproject.org/koji/taskinfo?taskID=1571566

[gz016@vgerd2 beide]$ rpmlint rakudo.spec
0 packages and 1 specfiles checked; 0 errors, 0 warnings.
[gz016@vgerd2 beide]$
[gz016@vgerd2 beide]$ rpmlint /home/gz016/rpmbuild/SRPMS/rakudo-2009.07-3.fc11.src.rpm
1 packages and 0 specfiles checked; 0 errors, 0 warnings.
[gz016@vgerd2 beide]$
[gz016@vgerd2 beide]$ rpmlint /home/gz016/rpmbuild/RPMS/x86_64/rakudo-2009.07-3.fc11.x86_64.rpm 
1 packages and 0 specfiles checked; 0 errors, 0 warnings.
[gz016@vgerd2 beide]$
Comment 13 Christoph Wickert 2009-08-01 08:09:09 EDT
Let's see what we've got:

OK - RPM_OPT_FLAGS are used
OK - SourceURLs are correct
OK - Versioning is correct


One thing is left: make spectest is not running correctly, but this is something that you and upstream can work on once the package is in the repo. The Makefile also could need some changes, but for now the package is 

APPROVED
Comment 14 Christoph Wickert 2009-08-02 16:09:37 EDT
Gerd, just setting fedora-cvs? is not enough, you also need to fill out the template from http://fedoraproject.org/wiki/PackageMaintainers/CVSAdminProcedure#New_Packages
Comment 15 Gerd Pokorra 2009-08-02 16:16:50 EDT
New Package CVS Request
=======================
Package Name: rakudo
Short Description: A Perl compiler for Parrot
Owners: gerd
Branches: F-11
InitialCC: gerd
Comment 16 Jason Tibbitts 2009-08-02 19:32:08 EDT
CVS done.
Comment 17 Gerd Pokorra 2009-08-05 07:10:19 EDT
The current Rakudo source only build from the Parrot package on the ppc64,
i386 and x86_64 cpu-architecture. Interesting is that it build on ppc64
but not on ppc.


The error message where the build on ppc stops is:

+ make
/usr/bin/parrot  /usr/lib/parrot/1.4.0/library/PGE/Perl6Grammar.pbc \
            --output=src/gen_grammar.pir --encoding=utf8 \
            src/parser/grammar.pg src/parser/grammar-oper.pg
make: *** [src/gen_grammar.pir] Segmentation fault
error: Bad exit status from /var/tmp/rpm-tmp.SWs6bb (%build)


Also only on ppc a build of pynie fails with a simular error:

+ ./setup.py build
running build
/usr/bin/parrot /usr/lib//parrot/1.4.0/library/PGE/Perl6Grammar.pbc --output=include/gen_grammar.pir Grammar/Grammar.pg
error: command '/usr/bin/parrot' terminated by signal 11
error: Bad exit status from /var/tmp/rpm-tmp.0zM1GQ (%build)
RPM build errors:
    Bad exit status from /var/tmp/rpm-tmp.0zM1GQ (%build)


The current spec file and source rpm are:
spec URL: ftp://ftp.uni-siegen.de/pub/parrot.rpms/rakudo/rakudo.spec
SRPM URL: ftp://ftp.uni-siegen.de/pub/parrot.rpms/rakudo/rakudo-0.0.2009.07_1.4.0-1.fc11.src.rpm
Comment 18 Gerd Pokorra 2009-08-06 12:42:30 EDT
The problem with ppc is a bug in Parrot a ticket is created:

https://trac.parrot.org/parrot/ticket/904
Comment 19 Christoph Wickert 2009-10-09 14:53:20 EDT
rakudo is in the repos for quite a while now. Closing.
Comment 20 Gerd Pokorra 2010-05-19 13:19:08 EDT
Package Change Request
======================
Package Name: rakudo
New Branches: EL-6
Owners: gerd
Comment 21 Kevin Fenzi 2010-05-20 15:35:01 EDT
cvs done.

Note You need to log in before you can comment on or make changes to this bug.