Bug 498390

Summary: Review Request: rakudo - Perl 6 compiler implementation that runs on MoarVM
Product: [Fedora] Fedora Reporter: Gerd Pokorra <gp>
Component: Package ReviewAssignee: Petr Pisar <ppisar>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: bill-bugzilla.redhat.com, cweyl, cwickert, emmanuel, fedora-package-review, notting, ppisar, thomas.moschny, wayland
Target Milestone: ---Keywords: Reopened
Target Release: ---Flags: ppisar: fedora‑review+
kevin: fedora‑cvs+
Hardware: All   
OS: Linux   
URL: http://rakudo.org
See Also: https://bugzilla.redhat.com/show_bug.cgi?id=1431195
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-03-19 21:50:55 EDT Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

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.
Comment 22 Gerd Pokorra 2016-12-14 20:57:04 EST
Plesae review this package again. I want to unretire this package. It was a mistake to move from the rakudo package to the rakudo-star package, so I want to move back.

A first successful scratch build is at:
https://koji.fedoraproject.org/koji/taskinfo?taskID=16892417
Comment 23 Gerd Pokorra 2016-12-15 23:19:48 EST
The current spec file and source rpm are:

spec URL: ftp://ftp.uni-siegen.de/pub/review/rakudo/spec/rakudo.spec.1
SRPM URL: ftp://ftp.uni-siegen.de/pub/review/rakudo/srpm/rakudo-0.2016.11-1.fc25.src.rpm


During the review the following links to the current spec file and current srpm will maintained:

spec URL: ftp://ftp.uni-siegen.de/pub/review/rakudo/spec/rakudo.spec
SRPM URL: ftp://ftp.uni-siegen.de/pub/review/rakudo/srpm/rakudo.src.rpm


The rpmlint output is:
$  rpmlint rakudo.spec 
0 packages and 1 specfiles checked; 0 errors, 0 warnings.


The last scratch build in rawhide (f26) is at:
https://koji.fedoraproject.org/koji/taskinfo?taskID=16907351
Comment 24 Gerd Pokorra 2016-12-16 05:56:16 EST
The rpmlint output of the package is:

$ rpmlint rakudo-0.2016.11-1.fc25.x86_64.rpm 
rakudo.x86_64: E: arch-dependent-file-in-usr-share /usr/share/perl6/runtime/dynext/libperl6_ops_moar.so
rakudo.x86_64: W: no-manual-page-for-binary perl6-debug-m
rakudo.x86_64: W: no-manual-page-for-binary perl6-gdb-m
rakudo.x86_64: W: no-manual-page-for-binary perl6-eval-server
rakudo.x86_64: W: no-manual-page-for-binary perl6-valgrind-m
rakudo.x86_64: W: no-manual-page-for-binary perl6-debug-j
rakudo.x86_64: W: no-manual-page-for-binary perl6-jdb-server
rakudo.x86_64: W: uncompressed-zip /usr/share/perl6/runtime/rakudo-runtime.jar
rakudo.x86_64: W: desktopfile-without-binary /usr/share/applications/perl6_doc_link.desktop xdg-open
rakudo.x86_64: W: desktopfile-without-binary /usr/share/applications/rakudo_guide_pdf.desktop xdg-open
1 packages and 0 specfiles checked; 1 errors, 9 warnings.

The last scratch build in rawhide (f26) is at:
https://koji.fedoraproject.org/koji/taskinfo?taskID=16912231
Comment 25 Gerd Pokorra 2016-12-18 03:22:57 EST
The rakudo package is done more rpmlint conform:

$ rpmlint rakudo
rakudo.x86_64: W: dangling-symlink /usr/share/perl6/runtime/dynext /usr/lib64/dynext
rakudo.x86_64: W: no-manual-page-for-binary perl6-debug-j
rakudo.x86_64: W: no-manual-page-for-binary perl6-eval-server
rakudo.x86_64: W: no-manual-page-for-binary perl6-debug-m
rakudo.x86_64: W: no-manual-page-for-binary perl6-jdb-server
rakudo.x86_64: W: no-manual-page-for-binary perl6-valgrind-m
rakudo.x86_64: W: no-manual-page-for-binary perl6-gdb-m
rakudo.x86_64: W: uncompressed-zip /usr/share/perl6/runtime/rakudo-runtime.jar
1 packages and 0 specfiles checked; 0 errors, 8 warnings.


The link /usr/share/perl6/runtime/dynext is not really broken.
Comment 26 Gerd Pokorra 2016-12-18 08:59:18 EST
The jar file will now be compredded. The rpmlint output is now:

$ rpmlint rakudo-0.2016.11-1.fc25.x86_64.rpm 
rakudo.x86_64: W: dangling-symlink /usr/share/perl6/runtime/dynext /usr/lib64/dynext
rakudo.x86_64: W: no-manual-page-for-binary perl6-debug-m
rakudo.x86_64: W: no-manual-page-for-binary perl6-valgrind-m
rakudo.x86_64: W: no-manual-page-for-binary perl6-debug-j
rakudo.x86_64: W: no-manual-page-for-binary perl6-jdb-server
rakudo.x86_64: W: no-manual-page-for-binary perl6-eval-server
rakudo.x86_64: W: no-manual-page-for-binary perl6-gdb-m
1 packages and 0 specfiles checked; 0 errors, 7 warnings.

At the moment the corresponding 2016.11 moarvm, nqp and nqp-jvm packages of fc25 are in the updates-testing repository. (dnf install moarvm --enablerepo=updates-testing)
Comment 27 Christoph Wickert 2016-12-19 08:26:53 EST
Hi Gerd, unfortunately I am currently unable to review this package. Please ask somebody else. Reassigning to default assignee.
Comment 28 Gerd Pokorra 2017-02-15 03:11:52 EST
A scratch build of the current rakudo release (2017.01) on rawhide (f26) is at:

https://koji.fedoraproject.org/koji/taskinfo?taskID=17854857
Comment 29 Gerd Pokorra 2017-02-15 10:27:11 EST
A scratch build of the current rakudo release (2017.01) on Fedora 25 is at:

https://koji.fedoraproject.org/koji/taskinfo?taskID=17886592


Please feel free to take the review!
Comment 30 Gerd Pokorra 2017-02-20 03:30:02 EST
The current spec file and source rpm are:

spec URL: ftp://ftp.uni-siegen.de/pub/review/rakudo/spec/rakudo.spec.2
SRPM URL: ftp://ftp.uni-siegen.de/pub/review/rakudo/srpm/rakudo-0.2017.01-1.fc25.src.rpm
Comment 31 Gerd Pokorra 2017-02-22 04:07:48 EST
The review request is changed to include only the backend for the MoarVM.

The current spec file and source rpm are:

spec URL: ftp://ftp.uni-siegen.de/pub/review/rakudo/spec/rakudo.spec.3

The SRPM file is overwritten:
ftp://ftp.uni-siegen.de/pub/review/rakudo/srpm/rakudo-0.2017.01-1.fc25.src.rpm
Comment 32 Gerd Pokorra 2017-02-22 04:12:31 EST
A successful rawhide scratch build is at:

https://koji.fedoraproject.org/koji/taskinfo?taskID=17988954
Comment 33 Petr Pisar 2017-02-22 11:57:34 EST
URL is usable. Ok.
Source0 (SHA-256: 2651f60f3123aeb015e9fa11d55c5b506abb88a1725f1fdd801dd3ea34f2a783) is original. Ok.
Source1 (SHA-256: 0b6957ec19eb5b219ad671ae389bb41a4dae365af04fb6d49153675fe592e7ca) is original. Ok.
TODO: Remove the leading `A' from the summary.
TODO: Correct typos in description. The first sentence does not have any verb. The second sentence starts with "Is is". Summary text should end a full stop symbol. I recommends rewrite it like this:

Rakudo Perl 6, or just Rakudo, is an implementation of the Perl 6 language specification. More information about Perl 6 is available from <http://perl6.org/>. This package provides a Perl 6 compiler built for
MoarVM virtual machine.

License verified from t/spec/LICENSE, README.md, LICENSE. Ok.

TODO: The `Obsoletes: rakudo-star <= 0.0.2017.01-2' should use `<' operator as 0.0.2017.01 is the last one in Fedora.

FIX: Build-require `perl' (rakudo.spec:54).
FIX: Use %{__prefix} in `Configure.pl --prefix=/usr' instead of `/usr'.
FIX: Build-require `make' (rakudo.spec:55).
FIX: Build-require `perl-podlators' (rakudo.spec:63).
FIX: Build-require `coreutils' (rakudo.spec:82).

FIX: Build-require `perl(base)' (tools/lib/NQP/Configure.pm:8).
FIX: Build-require `perl(Cwd)' (Configure.pl:10).
FIX: Build-require `perl(Exporter)' (tools/lib/NQP/Configure.pm:8).
FIX: Build-require `perl(File::Copy)' (tools/lib/NQP/Configure.pm:5).
FIX: Build-require `perl(File::Spec)' (Configure.pl:9).
FIX: Build-require `perl(Getopt::Long)' (Configure.pl:8).
FIX: Build-require `perl(lib)' (Configure.pl:11).
FIX: Build-require `perl(strict)' (Configure.pl:5).
FIX: Build-require `perl(Text::ParseWords)' (Configure.pl:7).
FIX: Build-require `perl(warnings)' (Configure.pl:6).

FIX: Build-require `gcc'.

FIX: Build-require `perl(FindBin)' for tests (t/harness5:9).
FIX: Build-require `perl(List::Util)' for tests (t/harness5:11).
FIX: Build-require `perl(Test::Harness)' for tests (t/harness5:15).

FIX: Remove %defattr from %files section.
TODO: Package docs/ChangeLog as a documentation.

All tests pass. Ok.

TODO: The `-ltommath -latomic_ops -luv -lm -lpthread -lrt -ldl' linker options come from `/usr/bin/nqp-m --show-config' tool, therefore I think it would make more sense to move the dependency on libtommath-devel and other libraries from rakudo.spec to nqp or moarvm-devel. I grepped for header files included by rakudo and I could not find any usage of them. (Maybe the are not needed at all).
TODO: Is the build-time dependency on readline-devel needed? It's nowhere used and docs/ChangeLog reads it was removed.

$ rpmlint rakudo.spec ../SRPMS/rakudo-0.2017.01-1.fc26.src.rpm ../RPMS/x86_64/rakudo-*
rakudo.x86_64: W: self-obsoletion rakudo-star <= 0.0.2017.01-2 obsoletes rakudo-star = 0.0.0.2017.01-1.fc26
rakudo.x86_64: E: arch-dependent-file-in-usr-share /usr/share/perl6/runtime/dynext/libperl6_ops_moar.so
rakudo.x86_64: W: hidden-file-or-dir /usr/share/perl6/precomp/.lock
rakudo.x86_64: E: zero-length /usr/share/perl6/precomp/.lock
rakudo.x86_64: E: zero-length /usr/share/perl6/repo.lock
rakudo.x86_64: W: no-manual-page-for-binary perl6-debug-m
rakudo.x86_64: W: no-manual-page-for-binary perl6-gdb-m
rakudo.x86_64: W: no-manual-page-for-binary perl6-valgrind-m
3 packages and 1 specfiles checked; 3 errors, 5 warnings.

FIX: Move the libperl6_ops_moar.so out of /usr/share (to /usr/lib64/perl6 or somewhere else).
FIX: Are the *.moarvm files stored under /usr/share differ on each architecture. They must be moved somewhere else. Quick fix would be to install everything under %{__libbdir}. But if the 'share' component comes from nqp or moarvm, then they need to be moved first.

$ rpm -q --requires -p ../RPMS/x86_64/rakudo-0.2017.01-1.fc26.x86_64.rpm | sort -f | uniq -c
      1 /bin/sh
      1 libatomic_ops.so.1()(64bit)
      1 libc.so.6()(64bit)
      1 libc.so.6(GLIBC_2.2.5)(64bit)
      1 libc.so.6(GLIBC_2.4)(64bit)
      1 libdl.so.2()(64bit)
      1 libm.so.6()(64bit)
      1 libmoar.so()(64bit)
      1 libpthread.so.0()(64bit)
      1 librt.so.1()(64bit)
      1 libtommath.so.1()(64bit)
      1 libuv.so.1()(64bit)
      1 nqp >= 0.0.2017.01
      1 rpmlib(CompressedFileNames) <= 3.0.4-1
      1 rpmlib(FileDigests) <= 4.6.0-1
      1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
      1 rpmlib(PayloadIsXz) <= 5.2-1
      1 rtld(GNU_HASH)
Binary requires are Ok.

TODO: I grep binary package of some libuv.so.1 symbols and I could not find any. I suspect that many of libraries are not needed.

$ rpm -q --provides -p ../RPMS/x86_64/rakudo-0.2017.01-1.fc26.x86_64.rpm | sort -f | uniq -c
      1 libperl6_ops_moar.so()(64bit)
      1 perl6 = 0.2017.01-1.fc26
      1 rakudo = 0.2017.01-1.fc26
      1 rakudo(x86-64) = 0.2017.01-1.fc26
      1 rakudo-star = 0.0.0.2017.01-1.fc26
Binary provides are Ok.

Notice: I have no idea what the `perl6' Provide means. If it's about implemented language version, then it should be something like `2016.c'. See <https://github.com/perl6/roast#introduction>.

$ resolvedeps rawhide ../RPMS/x86_64/rakudo-0.2017.01-1.fc26.x86_64.rpm
Binary dependencies resolvable. Ok.

Package builds in F26 (https://koji.fedoraproject.org/koji/taskinfo?taskID=17993233). Ok.

Please correct all `FIX' items, consider fixing `TODO' items and provide a new spec file.
Resolution: Package NOT approved.
Comment 34 Gerd Pokorra 2017-02-23 10:20:17 EST
A new spec file and source rpm are at:

spec URL: ftp://ftp.uni-siegen.de/pub/review/rakudo/spec/rakudo.spec.2

The SRPM file is overwritten:
ftp://ftp.uni-siegen.de/pub/review/rakudo/srpm/rakudo-0.2017.01-2.fc25.src.rpm

The links are updated:

pec URL: ftp://ftp.uni-siegen.de/pub/review/rakudo/spec/rakudo.spec
SRPM URL: ftp://ftp.uni-siegen.de/pub/review/rakudo/srpm/rakudo.src.rpm

Changes:

- summary tab, description and operator in obsoletes tag is changed
- dependency on readline-devel is removed
- _prefix marcro is used
- docs/ChangeLog is packaged as documentation
- general build-requires are added

- the 'perl6' Provides is removed


I will check it is possible to move libperl6_ops_moar.so and *.moarvm files. I am afraid that then the compiler will not work.
Comment 35 Gerd Pokorra 2017-02-24 09:17:31 EST
The help of the configuration (perl Configure.pl --help) from NPQ and rakudo do not show an option to specify a destination path other then /usr/share.
MoarVM, NQP and Rakudo only support to specify a prefix.

*.moarvm files are at:

/usr/share/nqp/lib/Perl6

 and

/usr/share/perl6/runtime


The paths are hard coded in perl5 files. The file
rakudo-2017.01/tools/build/Makefile-Moar.in has the following lines where paths are hard coded:
M_LIBPATH = $(PREFIX)@slash@share@slash@nqp@slash@lib

        $(CP) $(M_PERL6_LANG_OUTPUT) $(DESTDIR)$(M_LIBPATH)/Perl6

$(MKPATH) $(DESTDIR)$(PERL6_LANG_DIR)/runtime


A hard coded path in akudo-2017.01/tools/build/Makefile-common-macros.in:
PERL6_LANG_DIR = $(PREFIX)/share/perl6


Maintaining patches for the package that do changing the paths would be hard work. I think the best way is to leave the paths as they are designed.
Comment 36 Petr Pisar 2017-02-24 10:49:58 EST
If the moarvm files were portable (could you try overwriting e.g. the x86_64 files by i686 files and check that rakudo still works?), then keeping the files under /usr/share, but packaging them into noarch sub-package could work (i.e. comply to packaging guidelines and not break Fedora infrastructure).

I think the best thing would be ask rakudo developers why they chose /usr/share and if the files are indeed portable.

The reality is that most of the Fedora packages are not multilib ready, so bending rakudo in order to not have architecture-varying files in /usr/share is not worth of the struggle. I will ask on <packaging@lists.fedoraproject.org> for their opinion.
Comment 38 Petr Pisar 2017-02-27 03:53:57 EST
People on the packaging list also think that the only way is to patch all the packages to install files that differ into %{__libdir}.
Comment 39 Gerd Pokorra 2017-02-27 09:29:38 EST
I have done an architecture dependent nqp scratch build at:

https://koji.fedoraproject.org/koji/taskinfo?taskID=18093323

From the scratch build I downloaded nqp-0.0.2017.01-1.fc25.i686.rpm and nqp-0.0.2017.01-1.fc25.x86_64.rpm.

I could install both rpms and both rpms are working at my x86_64 machine.

# rpm -qa nqp | grep nqp
nqp-0.0.2017.01-1.fc25.i686
# nqp --e 'say("Hello!");'
Hello!
# uname -a
Linux ..fc25.x86_64 #1 SMP Fri Jan 6 18:11:49 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

The Java bytecode goes to /usr/share/java.
Comment 40 Gerd Pokorra 2017-02-28 01:37:02 EST
At https://koji.fedoraproject.org/koji/taskinfo?taskID=18104785 I tried a scratch build with a noarch subpackage.

The subpackage should store only the moarvm files from
%{_datadir}/nqp/lib/Perl6

The build fails with:

18104785 build (f25, rakudo-0.2017.01-3.fc25.src.rpm): open (buildhw-05.phx2.fedoraproject.org) -> FAILED: BuildError: The following noarch package built differently on different architectures: rakudo-moar-0.2017.01-3.fc25.noarch.rpm
rpmdiff output was:
error: cannot open Packages index using db5 - Permission denied (13)
error: cannot open Packages database in /var/lib/rpm
error: cannot open Packages database in /var/lib/rpm
removed     REQUIRES rakudo(armv7hl-32) = 0.2017.01-3.fc25
added       REQUIRES rakudo(x86-64) = 0.2017.01-3.fc25
  0 free  0 open  3 done  1 failed

18104785 build (f25, rakudo-0.2017.01-3.fc25.src.rpm) failed
Comment 41 Gerd Pokorra 2017-02-28 02:14:18 EST
A rakudo build on top of an architecture dependent nqp would also store the files at

 /usr/share/perl6

and

 /usr/share/nqp/lib/Perl6
Comment 42 Petr Pisar 2017-02-28 02:45:00 EST
Thanks for testing. We can see Fedora infrastructure enforces noarch package to contain identical files. Provided FHS and Packaging list and my opinions, I believe the only option is to patch the packages to install moarvm files under %{__libdir} (until upstream makes the file identical).
Comment 43 Gerd Pokorra 2017-02-28 06:07:19 EST
The are a lot of files that are installed under /usr/share. I am not sure if understand correct which of that files should installed under %{_libdir}. Should all that files installed under %{_libdir} or only the files with the filename extension moarvm?
Comment 44 Petr Pisar 2017-03-01 03:49:40 EST
Moving all the files is the simplest way and probably the right to do. Obviously shareable files as manual pages should be kept under /usr/shrare. I think the move should be applied to /usr/share/nqp(/lib?) and /usr/share/perl6.
Comment 45 Gerd Pokorra 2017-03-01 08:56:50 EST
I just added a nice improvement. The shared library 'libperl6_ops_moar.so' will now be installed at %{_libdir} were it belongs to. This do not break to obsolete the rakudo-star package.

A new spec file and source rpm are at:

spec URL: ftp://ftp.uni-siegen.de/pub/review/rakudo/spec/rakudo.spec.3
ftp://ftp.uni-siegen.de/pub/review/rakudo/srpm/rakudo-0.2017.01-3.fc25.src.rpm

The links are updated:

pec URL: ftp://ftp.uni-siegen.de/pub/review/rakudo/spec/rakudo.spec
SRPM URL: ftp://ftp.uni-siegen.de/pub/review/rakudo/srpm/rakudo.src.rpm


In the spec file I added the two tags:

%post -p /sbin/ldconfig

%postun -p /sbin/ldconfig

It works also without the 'post' and 'postun' tags. I am not sure if the new two lines with that tags should remain in the spec file.

New scratch builds for f25 and rawhide are at
rawhide: https://koji.fedoraproject.org/koji/taskinfo?taskID=18124408      
F25: https://koji.fedoraproject.org/koji/taskinfo?taskID=18124396
Comment 46 Gerd Pokorra 2017-03-06 19:45:43 EST
Here is an other version of the rakudo.spec and srpm of release 3.

The alternative release 3 is uploaded at:

spec file URL:  ftp://ftp.uni-siegen.de/pub/review/rakudo/spec/new/rakudo.spec
that link points to
ftp://ftp.uni-siegen.de/pub/review/rakudo/spec/new/rakudo.spec.3
SRPM URL: ftp://ftp.uni-siegen.de/pub/review/rakudo/srpm/new/rakudo-0.2017.01-3.fc25.src.rpm

By this version of release 3 the whole directory /usr/share/perl6 is install to ${_libdir]/perl6.

Would you please let me know with which version or release 3 from the spec file I should go on in this review?
Comment 47 Petr Pisar 2017-03-07 03:19:46 EST
(In reply to Gerd Pokorra from comment #46)
> spec file URL: 
> ftp://ftp.uni-siegen.de/pub/review/rakudo/spec/new/rakudo.spec
> that link points to
> ftp://ftp.uni-siegen.de/pub/review/rakudo/spec/new/rakudo.spec.3
> SRPM URL:
> ftp://ftp.uni-siegen.de/pub/review/rakudo/srpm/new/rakudo-0.2017.01-3.fc25.
> src.rpm
> 
> By this version of release 3 the whole directory /usr/share/perl6 is install
> to ${_libdir]/perl6.
> 
> Would you please let me know with which version or release 3 from the spec
> file I should go on in this review?

This one is better of the two spec files. Though there are still some moarvm files under /usr/share that should be moved either:

/usr/share/nqp/lib/Perl6/Actions.moarvm
/usr/share/nqp/lib/Perl6/BOOTSTRAP.moarvm
/usr/share/nqp/lib/Perl6/Compiler.moarvm
/usr/share/nqp/lib/Perl6/DebugPod.moarvm
/usr/share/nqp/lib/Perl6/Grammar.moarvm
/usr/share/nqp/lib/Perl6/Metamodel.moarvm
/usr/share/nqp/lib/Perl6/ModuleLoader.moarvm
/usr/share/nqp/lib/Perl6/Ops.moarvm
/usr/share/nqp/lib/Perl6/Optimizer.moarvm
/usr/share/nqp/lib/Perl6/Pod.moarvm
/usr/share/nqp/lib/Perl6/World.moarvm
Comment 48 Gerd Pokorra 2017-03-07 05:06:01 EST
I already made some tests to do that.

NQP has the not documented configuration option --libdir. I installed a nqp package on my computer which has the configuration --libdir=%{_libdir}. This nqp rpm works fine.

In the rakudo.spec file I added the lines:

%{__sed} -i -e 's#$(PREFIX)/share/nqp/lib#%{_libdir}/nqp#g' Makefile
%{__sed} -i -e 's#/usr/share/nqp/lib#%{_libdir}/nqp#g' Makefile

So with that modifications all is installed at /usr/lib64/nqp on my computer:
# ls /usr/lib64/nqp
JASTNodes.jar           NQPHLL.jar       NQPP5QRegex.moarvm  QASTNode.jar
MASTNodes.moarvm        NQPHLL.moarvm    NQPP6QRegex.jar     QASTNode.moarvm
MASTOps.moarvm          nqp.jar          NQPP6QRegex.moarvm QRegex.jarModuleLoader.jar        nqp.moarvm       Perl6               QRegex.moarvm
...

But executing same perl6 code fails:

[gz016@vgerd2 ~]$ perl6 -e 'say 10'
While looking for '/usr/share/nqp/lib/Perl6/BOOTSTRAP.moarvm': no such file or directory
   at gen/moar/ModuleLoader.nqp:83  (/usr/lib64/nqp/Perl6/ModuleLoader.moarvm:)
 from gen/moar/ModuleLoader.nqp:75  (/usr/lib64/nqp/Perl6/ModuleLoader.moarvm:load_module)
...

The reason for that problem seems to be that the path $[prefix}/share/nqp/lib is hardcoded in rakudo source files.

The source file src/Perl6/ModuleLoader.nqp has the following code at line 51:

            $file := ($include ?? $include ~ '/' !! nqp::getcomp('perl6').config<prefix> ~ '/share/nqp/lib/') ~ $file;


For moving (installing) the files /usr/share/nqp/lib/Perl/*.moarvm also this source files have to been changed. 
A other solution would be to configure the moarvm, nqp and rakudo rpms with the configuration --prefix=%{_libdir}. I do not like this solution.
Comment 49 Gerd Pokorra 2017-03-07 17:14:02 EST
The necessary nqp rebuilds with use of %{_libdir} are done for f25, f26 and rawhide.

nqp-0.0.2017.01-2.fc27
https://koji.fedoraproject.org/koji/taskinfo?taskID=18251423

nqp-0.0.2017.01-2.fc26
https://koji.fedoraproject.org/koji/taskinfo?taskID=18254115

nqp-0.0.2017.01-2.fc25
https://koji.fedoraproject.org/koji/taskinfo?taskID=18254213


For not breaking the dependencies the rakudo-star packages on top of NQP are rebuilt.

A new spec file and source rpm are at:

spec URL: ftp://ftp.uni-siegen.de/pub/review/rakudo/spec/rakudo.spec.4
srpm URL: ftp://ftp.uni-siegen.de/pub/review/rakudo/srpm/rakudo-0.2017.01-4.fc25.src.rpm

The links are updated:

pec URL: ftp://ftp.uni-siegen.de/pub/review/rakudo/spec/rakudo.spec
SRPM URL: ftp://ftp.uni-siegen.de/pub/review/rakudo/srpm/rakudo.src.rpm

/usr/share/nqp/lib/Perl6 now goes to %{_libdir}/nqp/Perl6 and the perl6 executable seems to be still working.

F25 scratch build:
https://koji.fedoraproject.org/koji/taskinfo?taskID=18254650

build owerrides for nqp:
gerd's nqp-0.0.2017.01-2.fc25 override (expires 2017-03-14 20:31:33)
gerd's nqp-0.0.2017.01-2.fc26 override (expires 2017-03-14 20:25:42)
Comment 50 Gerd Pokorra 2017-03-08 03:55:31 EST
According updates URLs for nqp with rakudo-star are at:

F25: https://bodhi.fedoraproject.org/updates/FEDORA-2017-70bcbcad25
F26: https://bodhi.fedoraproject.org/updates/FEDORA-2017-45f5b1c2a6
Comment 51 Gerd Pokorra 2017-03-09 01:41:07 EST
nqp-0.0.2017.01-2.fc25 is currently in the updates-testing repository.

dnf update --enablerepo=updates-testing nqp

The rakudo rpm release 4 can only be checked on top of this new nqp package.
Comment 52 Petr Pisar 2017-03-09 04:52:28 EST
Reviewing release 4:

> TODO: Remove the leading `A' from the summary.
Ok.

> TODO: Correct typos in description. The first sentence does not have any verb. 
> The second sentence starts with "Is is". Summary text should end a full stop
> symbol.
Ok.

> TODO: The `Obsoletes: rakudo-star <= 0.0.2017.01-2' should use `<' operator
> as 0.0.2017.01 is the last one in Fedora.
Ok.

> FIX: Build-require `perl' (rakudo.spec:54).
Ok.

> FIX: Use %{__prefix} in `Configure.pl --prefix=/usr' instead of `/usr'.
Ok.

> FIX: Build-require `make' (rakudo.spec:55).
> FIX: Build-require `perl-podlators' (rakudo.spec:63).
> FIX: Build-require `coreutils' (rakudo.spec:82).
Ok.

> FIX: Build-require `perl(base)' (tools/lib/NQP/Configure.pm:8).
> FIX: Build-require `perl(Cwd)' (Configure.pl:10).
> FIX: Build-require `perl(Exporter)' (tools/lib/NQP/Configure.pm:8).
> FIX: Build-require `perl(File::Copy)' (tools/lib/NQP/Configure.pm:5).
> FIX: Build-require `perl(File::Spec)' (Configure.pl:9).
> FIX: Build-require `perl(Getopt::Long)' (Configure.pl:8).
> FIX: Build-require `perl(lib)' (Configure.pl:11).
> FIX: Build-require `perl(strict)' (Configure.pl:5).
> FIX: Build-require `perl(Text::ParseWords)' (Configure.pl:7).
> FIX: Build-require `perl(warnings)' (Configure.pl:6).
Ok.

> FIX: Build-require `gcc'.
Ok.

> FIX: Build-require `perl(FindBin)' for tests (t/harness5:9).
> FIX: Build-require `perl(List::Util)' for tests (t/harness5:11).
> FIX: Build-require `perl(Test::Harness)' for tests (t/harness5:15).
Ok.

FIX: Do not build-require `perl(ExtUtils::Command)'. It's not used. Configure.pl  use it only on non-UNIX platforms and t/spec/test_summary contains it only in a documentation.

> FIX: Remove %defattr from %files section.
Ok.

> TODO: Package docs/ChangeLog as a documentation.
Ok.

> TODO: The `-ltommath -latomic_ops -luv -lm -lpthread -lrt -ldl' linker
> options come from `/usr/bin/nqp-m --show-config' tool, therefore I think it
> would make more sense to move the dependency on libtommath-devel and other
> libraries from rakudo.spec to nqp or moarvm-devel. I grepped for header files
> included by rakudo and I could not find any usage of them. (Maybe the are not
> needed at all).
Not addressed. Ok.

> TODO: Is the build-time dependency on readline-devel needed? It's nowhere
> used and docs/ChangeLog reads it was removed.
Ok.

$ rpmlint rakudo.spec ../SRPMS/rakudo-0.2017.01-4.fc27.src.rpm ../RPMS/x86_64/rakudo-*
rakudo.src: W: spelling-error %description -l en_US http -> HTTP
rakudo.x86_64: W: spelling-error %description -l en_US http -> HTTP
rakudo.x86_64: W: self-obsoletion rakudo-star < 0.0.2017.01-3 obsoletes rakudo-star = 0.0.0.2017.01-4.fc27
rakudo.x86_64: W: hidden-file-or-dir /usr/lib64/perl6/precomp/.lock
rakudo.x86_64: E: zero-length /usr/lib64/perl6/precomp/.lock
rakudo.x86_64: E: zero-length /usr/lib64/perl6/repo.lock
rakudo.x86_64: W: no-manual-page-for-binary perl6-debug-m
rakudo.x86_64: W: no-manual-page-for-binary perl6-gdb-m
rakudo.x86_64: W: no-manual-page-for-binary perl6-valgrind-m
3 packages and 1 specfiles checked; 2 errors, 14 warnings.

FIX: The `rakudo-star' Provides has a superfluous "0" because %{version} already contains one.

TODO: I have no idea how the .lock files are used. But if they are used for write-locking, then it will not work if /usr is a readonly file system. In that case they should be placed into /var or /run with tmpfiles.d technique <https://fedoraproject.org/wiki/Packaging:Tmpfiles.d> and rakudo should have be patched accordingly. I thing this a good candidate for a bug report to upstream.

> FIX: Move the libperl6_ops_moar.so out of /usr/share (to /usr/lib64/perl6 or somewhere else).
> FIX: Are the *.moarvm files stored under /usr/share differ on each architecture. They must be moved somewhere
> else. Quick fix would be to install everything under %{__libbdir}. But if the 'share' component comes from nqp
> or moarvm, then they need to be moved first.
Ok.

> TODO: I grep binary package of some libuv.so.1 symbols and I could not find any. I suspect that many of
> libraries are not needed.
Not addressed. Ok. Should be reported to upstream.

TODO: You can remove `Group:' tag. It's usage is discouraged.

$ rpm -q --provides  -p ../RPMS/x86_64/rakudo-0.2017.01-4.fc27.x86_64.rpm | sort -f | uniq -c
      1 libperl6_ops_moar.so()(64bit)
      1 rakudo = 0.2017.01-4.fc27
      1 rakudo(x86-64) = 0.2017.01-4.fc27
      1 rakudo-star = 0.0.0.2017.01-4.fc27

TODO: The libperl6_ops_moar.so()(64bit) Provides comes from non-standard shared library path (/usr/lib64/perl6/runtime/dynext/). As such it's not a public rakudo ABI and it should not be provided by the RPM package. You can filter the autogenerated dependency with __provides_exclude_from <https://fedoraproject.org/wiki/Packaging:AutoProvidesAndRequiresFiltering>.

Otherwise the package looks good. Thank you very much for implementing the changes. This was a tough review.

Please correct the `FIX' items and consider fixing the `TODO' item before building this package.
Resolution: Package APPROVED.
Comment 53 Petr Pisar 2017-03-09 05:19:45 EST
(In reply to Petr Pisar from comment #52)
> TODO: I have no idea how the .lock files are used. But if they are used for
> write-locking, then it will not work if /usr is a readonly file system. In
> that case they should be placed into /var or /run with tmpfiles.d technique
> <https://fedoraproject.org/wiki/Packaging:Tmpfiles.d> and rakudo should have
> be patched accordingly. I thing this a good candidate for a bug report to
> upstream.
> 
docs/module_management.md reads:

  When we install a distribution, we do the following:

  1. Create the `repo.lock` file; if it already exists, fail.

So maybe the repo.lock file should not exist at all in rakudo binary package. And maybe it's irrelevant for read-only /usr because user won't be able to install any Perl6 distribution at all.

What worries me is precomp directory that will need to regenerate its content when updating a distribution that is used by an already installed distribution. If it won't be be possible to prebuild in Koji, there will need to be some postscript in each RPM package or I don't know.
Comment 54 Gerd Pokorra 2017-03-09 10:46:34 EST
- fix the rakudo-star version that is provided
- group tag removed
- remove zero-length files
- preventing to provides libperl6_ops_moar.so from non-standard path

I hope that I have not forgotten something.

The links for the spec file and source rpm are updated.

spec file URL: ftp://ftp.uni-siegen.de/pub/review/rakudo/spec/rakudo.spec
srpm URL: ftp://ftp.uni-siegen.de/pub/review/rakudo/srpm/rakudo-0.2017.01-5.fc25.src.rpm

Thank you for doing the review. Sorry that it was tough.

I will start to retire the rakudo-star package, first.
Comment 55 Gerd Pokorra 2017-03-09 10:54:38 EST
Scratch build URL:

https://koji.fedoraproject.org/koji/taskinfo?taskID=18281895
Comment 56 Gerd Pokorra 2017-03-09 11:24:59 EST
Asking Unretirement do not work for the master branch.

I get the following message:
Could not save the request for branch: master, has it already been requested?

It was requested before.

Do I have to wait or what can I do?
Comment 57 Petr Pisar 2017-03-09 11:32:45 EST
It looks like bug in the package database tools. You can complain at <https://pagure.io/releng/issues>.
Comment 58 Gerd Pokorra 2017-03-10 04:20:10 EST
The releng ticket URL is:
https://pagure.io/releng/issue/6694

May be I have to remove the flag: fedora-cvs+
Comment 59 Fedora Update System 2017-03-10 16:25:09 EST
rakudo-0.2017.01-5.fc25 has been submitted as an update to Fedora 25. https://bodhi.fedoraproject.org/updates/FEDORA-2017-5476a3b710
Comment 60 Fedora Update System 2017-03-11 09:27:04 EST
rakudo-0.2017.01-5.fc25 has been pushed to the Fedora 25 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2017-5476a3b710
Comment 61 Petr Pisar 2017-03-15 05:06:03 EDT
(In reply to Petr Pisar from comment #36)
> If the moarvm files were portable (could you try overwriting e.g. the x86_64
> files by i686 files and check that rakudo still works?), then keeping the
> files under /usr/share, but packaging them into noarch sub-package could
> work (i.e. comply to packaging guidelines and not break Fedora
> infrastructure).
> 
> I think the best thing would be ask rakudo developers why they chose
> /usr/share and if the files are indeed portable.
> 
Upstream answer is:

The bytecode, strings, callframe info, and debug annotations forth are all
certainly portable. That leaves the serialized objects blob, which represents
a bunch of objects and types. In Perl 6 terms, this stores stuff like
meta-objects, code objects, signatures, parameters and so forth - but also the
results of all BEGIN-time computation including constants.

The objects serialized on, say, a 64-bit LE architecture can be deserialized
on a 32-bit BE architecture, for example. Indeed, we rely on this, since we
store a single stage0 binary compiler in the NQP repository, which is used as
the base of the bootstrap. However, users can do anything they want at BEGIN
time, including using things such as $?BITS which will be platform-dependent.
This means that a .moarvm file potentially can end up being
platform-dependent.
Comment 62 Fedora Update System 2017-03-19 21:50:55 EDT
rakudo-0.2017.01-5.fc25 has been pushed to the Fedora 25 stable repository. If problems still persist, please make note of it in this bug report.