lilypond-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Runtime errors on OpenBSD


From: David Jedlinsky
Subject: Runtime errors on OpenBSD
Date: Thu, 17 Mar 2005 14:32:26 -0500 (EST)

I am running OpenBSD 3.3, which is too out of date for the development
efforts of Matt Jibson and Matthias Kilian.  Therefore, I decided to
take on the task of updating all the required packages on my system,
and build lilypond myself.

Using gcc 3.4.3, and fairly recent versions of every required package,
I was able to build lilypond-2.4.5 with only a few changes to the
source, as well as fixing a crash in fontforge.  In addition, I was
able to build lilypond-2.5.15.  However, running 2.5.15 fails on the
same input file that works on 2.4.5.

The input is this:

<<
    \relative {
        \clef bass
        d,2 d c4 bes a2 \break
        c2 c d4 f g2
    }
    \addlyrics {
        My first Li -- ly song,
        Not much can go wrong!
    }
>>

The failure is this:

GNU LilyPond 2.5.15
Processing `test.ly'
Parsing...
Interpreting music... [5]
Preprocessing graphical objects... 
Calculating line breaks... 
(process:8208): GLib-GObject-CRITICAL **: g_object_ref: assertion
`G_IS_OBJECT (object)' failed

(process:8208): Pango-CRITICAL **: _pango_engine_shape_shape:
assertion `PANGO_IS_FONT (font)' failed

Pango-ERROR **: file shape.c: line 75 (pango_shape): assertion failed:
(glyphs->num_glyphs > 0)
aborting...
Abort (core dumped) 

I traced the problem to the lyrics, but I'm not sure what sort of font
issue is causing the trouble.

By the way, the changes I had to make to lilypond in order to compile
it on my system were these two (from 2.4.5, but I made the same change
in 2.5.15):

--- lily-guile.hh~      Thu Oct  7 15:39:30 2004
+++ lily-guile.hh       Thu Mar 17 12:13:10 2005
@@ -194,7 +194,7 @@
 void add_scm_init_func (void (*) ());
 
 extern "C" {
-typedef SCM (*Scheme_function_unknown) ();
+typedef SCM (*Scheme_function_unknown) (...);
 }
 
 #if __GNUC__ > 2 || __GNUC_MINOR__ >= 96

--- ly-module.cc~       Thu Oct  7 15:39:28 2004
+++ ly-module.cc        Thu Mar 17 12:17:09 2005
@@ -65,7 +65,7 @@
 }
 
 /* Ugh signature of scm_internal_hash_fold () is inaccurate.  */
-typedef SCM (*Hash_cl_func)();
+typedef SCM (*Hash_cl_func)(...);
 
 /*
   Check me. This is NOT an actual import. It just copies the


I'm not very well versed in C++, so I don't know why it was necessary,
but it worked.  In addition, for 2.5.15, I had to do the same
utf8/wchar.h changes that Matt Jibson had to make.

For those who are having trouble with fontforge building the
emmentaler fonts, here is the fix I found to prevent the out-of-bounds
crash:

--- tottfgpos.c~        Sun Feb 13 15:58:36 2005
+++ tottfgpos.c Wed Mar 16 15:44:26 2005
@@ -4285,14 +4285,16 @@
            used[fpst->script_lang_index] = true;
 
     smax = 0;
-    for ( i=0; sf->script_lang[i]!=NULL; ++i ) if ( used[i] ) {
-       for ( j=0; sf->script_lang[i][j].script!=0; ++j );
-       smax += j;
-    }
+    for ( i=0; sf->script_lang[i]!=NULL; ++i )
+      if ( i<sf->sli_cnt && used[i] ) {
+         for ( j=0; sf->script_lang[i][j].script!=0; ++j );
+         smax += j;
+       }
 
     scripts = galloc((smax+1)*sizeof(uint32));
     smax = 0;
-    for ( i=0; sf->script_lang[i]!=NULL; ++i ) if ( used[i] ) {
+    for ( i=0; sf->script_lang[i]!=NULL; ++i ) 
+      if ( i<sf->sli_cnt && used[i] ) {
        for ( j=0; sf->script_lang[i][j].script!=0; ++j )
            scripts[smax++] = sf->script_lang[i][j].script;
     }


Finally, I had a problem with ec-fonts-mftraced because I only
installed autotrace, not potrace.  The GNUmakefile calls mftrace with
--potrace, which causes it to fail if potrace isn't installed.
Removing the --potrace from GNUmakefile fixes the problem.

-Dave Jedlinsky




reply via email to

[Prev in Thread] Current Thread [Next in Thread]