[Top][All Lists]
[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
- Runtime errors on OpenBSD,
David Jedlinsky <=