1.4.0 packaging results

Reini Urban rurban at x-ray.at
Wed Jul 22 10:09:49 UTC 2009

So I've tried packaging parrot-1.4.0 without any of my previous cygwin patches.
I've posted my patches here several times, so there was enough time to
look at them.

1) Several files are still missing to be installed, the
MANIFEST.generated is a bit better than with 1.1, but still blocking.
Very interesting is that dynoplibs.pl is not installed at all, so a
-devel package is useless.

--- origsrc/parrot-1.4.0/MANIFEST.generated	2009-07-21 10:08:37.000000000 +0200
+++ src/parrot-1.4.0/MANIFEST.generated	2009-07-22 09:03:54.906250000 +0200
@@ -7,6 +7,8 @@ blib/lib/libparrot.a
 blib/lib/libparrot.dylib                          [main]lib
 blib/lib/libparrot.so.1.4.0                       [main]lib
 blib/lib/libparrot.so                             [main]lib
+cygparrot1_4_0.dll                                [main]bin
+libparrot.dll.a                                   [main]lib
 compilers/json/JSON/grammar.pbc                   [json]
 compilers/json/JSON.pbc                           [json]
 compilers/json/JSON/pge2pir.pbc                   [json]
@@ -58,8 +60,6 @@ installable_pbc_disassemble.exe
 installable_pbc_disassemble                       [main]bin
 installable_pbc_dump.exe                          [main]bin
 installable_pbc_dump                              [main]bin
-installable_pbc_info.exe                          [main]bin
-installable_pbc_info                              [main]bin
 installable_pbc_merge.exe                         [main]bin
 installable_pbc_merge                             [main]bin
 installable_pbc_to_exe.exe                        [main]bin
@@ -153,8 +153,6 @@ runtime/parrot/library/Math/Rand.pbc
 runtime/parrot/library/MIME/Base64.pbc            [main]
 runtime/parrot/library/NCI/call_toolkit_init.pbc  [main]
 runtime/parrot/library/ncurses.pbc                [main]
-runtime/parrot/library/OpenGL_funcs.pir           [main]
-runtime/parrot/library/OpenGL_funcs.pbc           [main]
 runtime/parrot/library/OpenGL.pbc                 [main]
 runtime/parrot/library/P6object.pbc               [main]
 runtime/parrot/library/Parrot/Capture_PIR.pbc     [main]
@@ -168,6 +166,7 @@ runtime/parrot/library/PCT/Grammar.pbc
 runtime/parrot/library/PCT/HLLCompiler.pbc        [pct]
 runtime/parrot/library/PCT/PAST.pbc               [pct]
 runtime/parrot/library/PCT.pbc                    [pct]
+runtime/parrot/library/Pg.pbc                     [main]
 runtime/parrot/library/PGE/Dumper.pbc             [main]
 runtime/parrot/library/PGE/Glob.pbc               [main]
 runtime/parrot/library/PGE/Hs.pbc                 [main]
@@ -175,6 +174,7 @@ runtime/parrot/library/PGE.pbc
 runtime/parrot/library/PGE/Perl6Grammar.pbc       [main]
 runtime/parrot/library/PGE/Text.pbc               [main]
 runtime/parrot/library/PGE/Util.pbc               [main]
+runtime/parrot/library/postgres.pbc               [main]
 runtime/parrot/library/Protoobject.pbc            [main]
 runtime/parrot/library/Range.pbc                  [main]
 runtime/parrot/library/Stream/Base.pbc            [main]
@@ -196,14 +196,18 @@ runtime/parrot/library/Test/Builder.pbc
 runtime/parrot/library/Test/Class.pbc             [main]
 runtime/parrot/library/Test/More.pbc              [main]
 runtime/parrot/library/TGE.pbc                    [tge]
+runtime/parrot/library/uuid.pbc                   [main]
+runtime/parrot/library/yaml_dumper.pbc            [main]
 runtime/parrot/library/YAML/Dumper/Base.pmc       [main]
 runtime/parrot/library/YAML/Dumper/Default.pmc    [main]
 runtime/parrot/library/YAML/Dumper.pbc            [main]
+runtime/parrot/library/YAML/Parser/Syck.pbc       [main]
 src/call_list.txt                                 [devel]src
 src/glut_callbacks.c                              []
 src/jit_emit.h                                    []
-src/nci.c                                         []
+src/nci.c                                         [devel]src
 src/null_config.c                                 []
+src/null_config.o                                 [devel]src
 src/ops/core_ops_cgp.c                            []
 src/ops/core_ops_switch.c                         []
 src/parrot_config.c                               []
@@ -241,5 +245,6 @@ src/pmc/string.dump
 src/pmc/sub.dump                                  [devel]src
 src/pmc/undef.dump                                [devel]src
 src/string_private_cstring.h                      []
-tools/build/dynpmc.pl                             []
+tools/build/dynpmc.pl                             [devel]
+tools/build/dynoplibs.pl                          [devel]
 vtable.dump                                       [devel]src

2) devel still installs into /usr/src/parrot/1.4.0 which is not FHS recommended.
- Blocking. It pollutes my workdir and --srcdir is not supported. src
files must only come with the src package.

"Source code may be place placed in this subdirectory, only for
reference purposes
[35] Generally, source should not be built within this hierarchy."

In my 1.1.0 patches I've put that into /usr/lib/parrot/1.1.0/src

3) Several runtime library pbc's are missing, and cannot even be
compiled without syntax errors:

$ for pir in runtime/parrot/library/*.pir; do pbc=$(echo $pir|sed
's,.pir$,.pbc,'); test -f $pbc || make $pbc; done
./parrot.exe -o runtime/parrot/library/Pg.pbc runtime/parrot/library/Pg.pir
./parrot.exe -o runtime/parrot/library/Curses.pbc
./parrot.exe -o runtime/parrot/library/SDL.pbc runtime/parrot/library/SDL.pir
./parrot.exe -o runtime/parrot/library/random_lib.pbc
error:imcc:syntax error, unexpected STRINGC, expecting '(' ('"_last_seed"')
        in file 'runtime/parrot/library/random_lib.pir' line 14
error:imcc:syntax error, unexpected STRINGC, expecting '(' ('"_last_seed"')
        in file 'runtime/parrot/library/random_lib.pir' line 20
make: *** [runtime/parrot/library/random_lib.pbc] Error 1
- non-critical

4) OpenGL still cannot find the cygwin dll's
TT #253 r37202 opengl detection
- non-critical

--- origsrc/parrot-1.4.0/runtime/parrot/library/OpenGL.pir	2009-06-26
02:58:22.000000000 +0200
+++ src/parrot-1.4.0/runtime/parrot/library/OpenGL.pir	2009-07-22
08:56:12.468750000 +0200
@@ -113,6 +113,7 @@ the known different filenames for each l
     push libnames, 'libGL.so.1'
     push libnames, 'libGL'
     push libnames, 'opengl32'
+    push libnames, '/usr/bin/cygGL-1.dll'
     push libnames, '/System/Library/Frameworks/OpenGL.framework/OpenGL'
     libgl = _load_lib_with_fallbacks('GL', libnames)
     set_global '_libgl', libgl
@@ -120,6 +121,7 @@ the known different filenames for each l
     libnames = new 'ResizableStringArray'
     push libnames, 'libGLU'
     push libnames, 'glu32'
+    push libnames, '/usr/bin/cygGLU-1.dll'
     push libnames, '/System/Library/Frameworks/OpenGL.framework/OpenGL'
     libglu = _load_lib_with_fallbacks('GLU', libnames)
     set_global '_libglu', libglu
@@ -127,6 +129,7 @@ the known different filenames for each l
     libnames = new 'ResizableStringArray'
     push libnames, 'libglut'
     push libnames, 'glut32'
+    push libnames, '/usr/bin/cygglut-3.dll'
     push libnames, '/System/Library/Frameworks/GLUT.framework/GLUT'
     libglut = _load_lib_with_fallbacks('GLUT', libnames)
     set_global '_libglut', libglut

5) still no man(1) files for the main binaries which is blocking on
debian at least.
- packagers patch required

The gentoo alike recipe is:
  # man(1) for the main binaries
  pod2man docs/running.pod > $man1/parrot.1
  pod2man src/parrot_debugger.c > $man1/parrot_debugger.1
  pod2man src/pbc_disassemble.c > $man1/pbc_disassemble.1
  pod2man src/pbc_dump.c > $man1/pbc_dump.1
  pod2man tools/build/parrot_config_c.pl > $man1/parrot_config.1
  pod2man src/pbc_merge.c > $man1/pbc_merge.1
  pod2man tools/dev/pbc_to_exe.pir > $man1/pbc_to_exe.1

  cd $man1
  for f in *.1; do
    b=$(basename $f .1)
    if [ -e ${D}/usr/bin/$b.exe ]; then
      test -s $f || rm $f
      gzip $f
      rm $f

6) rakudo current git 7b81c0590b4
$ perl Configure.pl
$ make
make: *** No rule to make target
needed by `src/gen_grammar.pir'.  Stop.

The BUILD_DIR does not exist at the client. rakudo is therefore not packable.
Looks like nobody looked at the patch at

This is only the very basic check, without checking installed samples
and compiling other languages.
perl6 and pipp can not be built without major patches.
For me it still looks like an early alpha pre-release, by far not
releasable in distros.
Reini Urban
http://phpwiki.org/           http://murbreak.at/

More information about the parrot-dev mailing list