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.
http://www.pathname.com/fhs/pub/fhs-2.3.html#USRSRCSOURCECODE
"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
runtime/parrot/library/Curses.pir
./parrot.exe -o runtime/parrot/library/SDL.pbc runtime/parrot/library/SDL.pir
./parrot.exe -o runtime/parrot/library/random_lib.pbc
runtime/parrot/library/random_lib.pir
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
man1=${D}/usr/share/man/man1
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
else
rm $f
fi
done
6) rakudo current git 7b81c0590b4
$ perl Configure.pl
$ make
make: *** No rule to make target
`/usr/src/perl/parrot/parrot-1.4.0-1/build/runtime/parrot/library/PGE/Perl6Grammar.pbc',
needed by `src/gen_grammar.pir'. Stop.
Blocking.
The BUILD_DIR does not exist at the client. rakudo is therefore not packable.
Looks like nobody looked at the patch at
http://code.google.com/p/cygwin-rurban/source/browse/trunk/release/parrot/rakudo-200904-1.src.patch
Summary:
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