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/ _______________________________________________ http://lists.parrot.org/mailman/listinfo/parrot-dev
