Matthias,Recent upstream patches to lilypond now allow it to build with clang. I've taken those patches and updated the lilypond and lilypond-devel pkgs to the latest released versions. I've attached the new files to this message. The only thing missing in the 10.7 tree is dblatex which hasn't yet been migrated from the 10.4 tree (maintainer cc'd as a reminder). Once dblatex has been migrated, can these be added to the 10.7 tree? Thanks,
Hanspeter
Package: lilypond-devel Version: 2.17.13 Revision: 1 Maintainer: Matthias Neeracher <neerac...@mac.com> GCC: 4.0 BuildDepends: << bison (>= 2.3-1003), dblatex, expat1 (>= 2.0.1-1), fink-package-precedence, fontconfig2-dev (>= 2.10.2-1), freetype219 (>= 2.4.11-1), gettext-bin, gettext-tools, glib2-dev (>= 2.22.4-5), gmp5 (>= 5.1.1-1), guile18 (>= 1.8.8-3), guile18-dev (>= 1.8.8-3), libgettext8-dev, libkpathsea6 (>= 6.0.0-100), mftrace (>= 1.2.14-1004), pango1-xft2-ft219-dev (>= 1.24.5-7), pkgconfig, texinfo (>= 4.13-1001) << BuildConflicts: ccache-default, flex Depends: << expat1-shlibs (>= 2.0.1-1), fc-ghostscript-fonts, fondu, fontconfig2-shlibs (>= 2.10.2-1), freetype219-shlibs (>= 2.4.11-1), ghostscript (>= 9.02-3), gmp5-shlibs (>= 5.1.1-1), guile18 (>= 1.8.8-3), libkpathsea6-shlibs (>= 6.0.0-100), pango1-xft2-ft219 (>= 1.24.5-7), python27, rarian-compat, urw-fonts << Conflicts: lilypond, lilypond-devel Replaces: lilypond Source: http://download.linuxaudio.org/lilypond/sources/v2.17/lilypond-%v.tar.gz Source-MD5: 6311e759cb3a576572119a8ccd5d28f3 PatchFile: %n.patch PatchFile-MD5: 905b02333b51a793416b5b48a5e530a0 SetCFLAGS: -MD SetLDFLAGS: -lexpat -L%p/lib/pango-ft219/lib ConfigureParams: -infodir='$(prefix)/share/info' --mandir='$(prefix)/share/man' --with-ncsb-dir=%p/share/fonts/urw-fonts CompileScript: << #!/bin/sh -ev export PYTHON=%p/bin/python2.7 export PYTHON_CONFIG=%p/bin/python2.7-config export GUILE=%p/bin/guile-1.8 export GUILE_CONFIG=guile-1.8-config export FLEX=/usr/bin/flex PERL=/usr/bin/perl ./autogen.sh %c mkdir mf/out gnumake fink-package-precedence --depfile-ext='\.d' . << #InfoTest: << # TestDepends: texlive-base # TestScript: << # #!/bin/sh -ev # make test-baseline # make check || exit 2 # << #<< InstallScript: << #!/bin/sh -ev rm tex/texinfo.tex gnumake DESTDIR=%d install mkdir -p %i/etc/profile.d mkdir -p %i/etc/texmf.local/tex ln -s %p/share/lilypond/%v/tex %i/etc/texmf.local/tex/lilypond for i in fonts dvips; do for j in %i/share/lilypond/%v/$i/*; do mkdir -p %i/etc/texmf.local/${j#%i/share/lilypond/%v/} ln -s %p/${j#%i/} %i/etc/texmf.local/${j#%i/share/lilypond/%v/}/lilypond done done mkdir -p input %i/share/doc/%n cp -R input %i/share/doc/%n/input << PostInstScript: << if [ -f %p/bin/mktexlsr ]; then mktexlsr %p/etc/texmf.local; fi if [ configure = "$1" ]; then scrollkeeper-update -q fi << PostRmScript: << if [ -f %p/bin/mktexlsr ]; then mktexlsr %p/etc/texmf.local; fi if [ remove != "$1" ]; then scrollkeeper-update -q fi << DocFiles: COPYING README.txt InfoDocs: lilypond-web.info Description: GNU Music Typesetter DescDetail: << LilyPond prints beautiful sheet music. It produces music notation from a description file. It excels at typesetting classical music, but you can also print pop-songs. LilyPond input is plain text. So, you can use your favorite text editor to enter it, you can put it in mail or embed it in an article like this: \key c \minor r8 c16 b c8 g as c16 b c8 d | g,4 Or you can use it to print music from other programs, using one of the numerous input filters. LilyPond output looks beautiful. The font and the layout algorithms were inspired by engraved music, so you can expect that same clear and elegant look from your LilyPond output. And if anything is not to your liking, you can tweak almost everything. << DescPort: << Clang fixes: http://code.google.com/p/lilypond/issues/detail?id=2088 4256f121bdbb6310cbb7162f1d38632dfec11519 http://code.google.com/p/lilypond/issues/detail?id=3201 22581154dd1af254e4b9113e04b620d6e7c99296 << License: GPL Homepage: http://www.lilypond.org
diff -ruN lilypond-2.15.42-orig/config.make.in lilypond-2.15.42/config.make.in --- lilypond-2.15.42-orig/config.make.in 2012-08-02 13:43:07.000000000 -0400 +++ lilypond-2.15.42/config.make.in 2013-02-20 20:43:31.000000000 -0500 @@ -27,7 +27,7 @@ PANGO_FT2_LIBS = @PANGO_FT2_LIBS@ CXXABI_LIBS = @CXXABI_LIBS@ -CONFIG_LIBS = @LIBS@ @EXTRA_LIBS@ $(GUILE_LIBS) $(PANGO_FT2_LIBS) $(FONTCONFIG_LIBS) $(FREETYPE2_LIBS) +CONFIG_LIBS = @LIBS@ @EXTRA_LIBS@ $(PANGO_FT2_LIBS) $(FONTCONFIG_LIBS) $(FREETYPE2_LIBS) $(GUILE_LIBS) CONFIG_LDFLAGS = @LDFLAGS@ PACKAGE = @PACKAGE@ @@ -65,7 +65,7 @@ stepmake = @stepmake@ package_datadir = $(datadir)/$(package) -package_infodir = $(infodir)/$(package) +package_infodir = $(infodir) package_libdir = $(libdir)/$(package) package_docdir = $(docdir)/$(package) package_omfdir = $(omfdir)/$(package) >From 4256f121bdbb6310cbb7162f1d38632dfec11519 Mon Sep 17 00:00:00 2001 From: David Kastrup <d...@gnu.org> Date: Thu, 21 Feb 2013 10:38:14 +0100 Subject: [PATCH] Issue 2088: Replace automatic pointer-to-member function conversions Those are a GCC extension and thus a portability problem. --- lily/GNUmakefile | 3 --- lily/include/lily-proto.hh | 5 ++--- lily/include/translator-group.hh | 2 +- lily/translator-dispatch-list.cc | 2 +- 4 files changed, 4 insertions(+), 8 deletions(-) diff --git a/lily/GNUmakefile b/lily/GNUmakefile index e67a883..ba19ac9 100644 --- a/lily/GNUmakefile +++ b/lily/GNUmakefile @@ -6,9 +6,6 @@ NAME = lilypond MODULE_LIBS=$(depth)/flower MODULE_INCLUDES= $(depth)/flower/include -# need this to convert between function pointers and member function pointers. -MODULE_CXXFLAGS= -Wno-pmf-conversions - HELP2MAN_EXECS = lilypond STEPMAKE_TEMPLATES=c c++ executable po help2man diff --git a/lily/include/lily-proto.hh b/lily/include/lily-proto.hh index e726c4a..53e863c 100644 --- a/lily/include/lily-proto.hh +++ b/lily/include/lily-proto.hh @@ -198,8 +198,7 @@ class Translator_group; class Transposed_music; class yyFlexLexer; -typedef void (*Engraver_void_function_engraver_grob_info) (Engraver *, - Grob_info); -typedef void (*Translator_void_method_ptr) (Translator *); +typedef void (Engraver::*Engraver_void_function_engraver_grob_info) (Grob_info); +typedef void (Translator::*Translator_void_method_ptr) (); #endif /* LILY_PROTO_HH */ diff --git a/lily/include/translator-group.hh b/lily/include/translator-group.hh index e5004c2..ad044de 100644 --- a/lily/include/translator-group.hh +++ b/lily/include/translator-group.hh @@ -43,7 +43,7 @@ struct Translator_method_binding void invoke () { if (method_) - (*method_) (translator_); + (translator_->*method_) (); } }; diff --git a/lily/translator-dispatch-list.cc b/lily/translator-dispatch-list.cc index 6c74b25..dffaa09 100644 --- a/lily/translator-dispatch-list.cc +++ b/lily/translator-dispatch-list.cc @@ -32,7 +32,7 @@ Engraver_dispatch_list::apply (Grob_info gi) if (e.engraver_ == origin) continue; - (*e.function_) (e.engraver_, gi); + (e.engraver_->*e.function_) (gi); } } -- 1.7.11.1 >From 22581154dd1af254e4b9113e04b620d6e7c99296 Mon Sep 17 00:00:00 2001 From: David Kastrup <d...@gnu.org> Date: Sat, 23 Feb 2013 09:56:06 +0100 Subject: [PATCH] Issue 3201: Don't initialize dim_cache_ array via constructor syntax This is not valid C++ and not even a documented GCC extension. It is probabably an oversight that GCC appears to be able to interpret this in some manner. Also creates a custom copy constructor for Dimension_cache for the sole purpose of being able to initialize a Dimension_cache array element-wise from a Dimension_cache array in the copy constructor of Grob. C++ clearly is lacking in some departments. --- lily/dimension-cache.cc | 10 ++++++++++ lily/grob.cc | 5 ++++- lily/include/dimension-cache.hh | 1 + 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/lily/dimension-cache.cc b/lily/dimension-cache.cc index 2d2fce4..4538f17 100644 --- a/lily/dimension-cache.cc +++ b/lily/dimension-cache.cc @@ -30,6 +30,16 @@ Dimension_cache::Dimension_cache (Dimension_cache const &d) extent_ = d.extent_ ? new Interval (*d.extent_) : 0; } +Dimension_cache & +Dimension_cache::operator = (Dimension_cache const &d) +{ + clear (); + offset_ = d.offset_ ? new Real (*d.offset_) : 0; + parent_ = d.parent_; + extent_ = d.extent_ ? new Interval (*d.extent_) : 0; + return *this; +} + Dimension_cache::Dimension_cache () { init (); diff --git a/lily/grob.cc b/lily/grob.cc index 4c54cbc..8ece3cd 100644 --- a/lily/grob.cc +++ b/lily/grob.cc @@ -87,13 +87,16 @@ Grob::Grob (SCM basicprops) } Grob::Grob (Grob const &s) - : dim_cache_ (s.dim_cache_) { original_ = (Grob *) & s; self_scm_ = SCM_EOL; immutable_property_alist_ = s.immutable_property_alist_; mutable_property_alist_ = SCM_EOL; + + for (Axis a = X_AXIS; a < NO_AXES; incr (a)) + dim_cache_ [a] = s.dim_cache_ [a]; + interfaces_ = s.interfaces_; object_alist_ = SCM_EOL; diff --git a/lily/include/dimension-cache.hh b/lily/include/dimension-cache.hh index 581bcff..6210be1 100644 --- a/lily/include/dimension-cache.hh +++ b/lily/include/dimension-cache.hh @@ -36,6 +36,7 @@ class Dimension_cache friend class Grob; Dimension_cache (Dimension_cache const &); + Dimension_cache & operator = (Dimension_cache const &d); ~Dimension_cache (); Dimension_cache (); }; -- 1.7.11.1
Package: lilypond Version: 2.16.2 Revision: 1 Maintainer: Matthias Neeracher <neerac...@mac.com> GCC: 4.0 BuildDepends: << bison (>= 2.3-1003), dblatex, expat1 (>= 2.0.1-1), fink-package-precedence, fontconfig2-dev (>= 2.10.2-1), freetype219 (>= 2.4.11-1), gettext-bin, gettext-tools, glib2-dev (>= 2.22.4-5), gmp5 (>= 5.1.1-1), guile18 (>= 1.8.8-3), guile18-dev (>= 1.8.8-3), libgettext8-dev, libkpathsea6 (>= 6.0.0-100), mftrace (>= 1.2.14-1004), pango1-xft2-ft219-dev (>= 1.24.5-7), pkgconfig, texinfo (>= 4.13-1001) << BuildConflicts: ccache-default, flex Depends: << expat1-shlibs (>= 2.0.1-1), fc-ghostscript-fonts, fondu, fontconfig2-shlibs (>= 2.10.2-1), freetype219-shlibs (>= 2.4.11-1), ghostscript | ghostscript-nox, gmp5-shlibs (>= 5.1.1-1), guile18 (>= 1.8.8-3), libkpathsea6-shlibs (>= 6.0.0-100), pango1-xft2-ft219 (>= 1.24.5-7), python27, rarian-compat, urw-fonts << Conflicts: lilypond, lilypond-devel Replaces: lilypond-devel Source: http://download.linuxaudio.org/lilypond/sources/v2.16/lilypond-%v.tar.gz Source-MD5: 6db27f17d47e4f66a3b0716c65db3041 PatchFile: %n.patch PatchFile-MD5: 013d319b244e3cbbb9cef5387008c686 SetCFLAGS: -MD SetLDFLAGS: -lexpat -L%p/lib/pango-ft219/lib ConfigureParams: -infodir='$(prefix)/share/info' --mandir='$(prefix)/share/man' --with-ncsb-dir=%p/share/fonts/urw-fonts CompileScript: << #!/bin/sh -ev export PYTHON=%p/bin/python2.7 export PYTHON_CONFIG=%p/bin/python2.7-config export GUILE=%p/bin/guile-1.8 export GUILE_CONFIG=guile-1.8-config export FLEX=/usr/bin/flex PERL=/usr/bin/perl ./autogen.sh %c mkdir mf/out gnumake fink-package-precedence --depfile-ext='\.d' . << #InfoTest: << # TestDepends: texlive-base # TestScript: << # #!/bin/sh -ev # make test-baseline # make check || exit 2 # << #<< InstallScript: << #!/bin/sh -ev rm tex/texinfo.tex gnumake DESTDIR=%d install mkdir -p %i/etc/profile.d mkdir -p %i/etc/texmf.local/tex ln -s %p/share/lilypond/%v/tex %i/etc/texmf.local/tex/lilypond for i in fonts dvips; do for j in %i/share/lilypond/%v/$i/*; do mkdir -p %i/etc/texmf.local/${j#%i/share/lilypond/%v/} ln -s %p/${j#%i/} %i/etc/texmf.local/${j#%i/share/lilypond/%v/}/lilypond done done mkdir -p input %i/share/doc/%n cp -R input %i/share/doc/%n/input << PostInstScript: << if [ -f %p/bin/mktexlsr ]; then mktexlsr %p/etc/texmf.local; fi if [ configure = "$1" ]; then scrollkeeper-update -q fi << PostRmScript: << if [ -f %p/bin/mktexlsr ]; then mktexlsr %p/etc/texmf.local; fi if [ remove != "$1" ]; then scrollkeeper-update -q fi << DocFiles: COPYING README.txt InfoDocs: lilypond-web.info Description: GNU Music Typesetter DescDetail: << LilyPond prints beautiful sheet music. It produces music notation from a description file. It excels at typesetting classical music, but you can also print pop-songs. LilyPond input is plain text. So, you can use your favorite text editor to enter it, you can put it in mail or embed it in an article like this: \key c \minor r8 c16 b c8 g as c16 b c8 d | g,4 Or you can use it to print music from other programs, using one of the numerous input filters. LilyPond output looks beautiful. The font and the layout algorithms were inspired by engraved music, so you can expect that same clear and elegant look from your LilyPond output. And if anything is not to your liking, you can tweak almost everything. << DescPort: << Clang fixes: http://code.google.com/p/lilypond/issues/detail?id=2088 4256f121bdbb6310cbb7162f1d38632dfec11519 http://code.google.com/p/lilypond/issues/detail?id=3201 22581154dd1af254e4b9113e04b620d6e7c99296 << License: GPL Homepage: http://www.lilypond.org
diff -ru lilypond-2.12.1-orig/config.make.in lilypond-2.12.1/config.make.in --- lilypond-2.12.1-orig/config.make.in 2009-01-09 19:09:22.000000000 +0100 +++ lilypond-2.12.1/config.make.in 2009-01-09 19:11:33.000000000 +0100 @@ -28,7 +28,7 @@ FREETYPE2_LIBS = @FREETYPE2_LIBS@ PANGO_FT2_LIBS = @PANGO_FT2_LIBS@ -CONFIG_LIBS = @LIBS@ @EXTRA_LIBS@ $(GUILE_LIBS) $(PANGO_FT2_LIBS) $(FONTCONFIG_LIBS) $(FREETYPE2_LIBS) +CONFIG_LIBS = @LIBS@ @EXTRA_LIBS@ $(PANGO_FT2_LIBS) $(FONTCONFIG_LIBS) $(FREETYPE2_LIBS) $(GUILE_LIBS) CONFIG_LDFLAGS = @LDFLAGS@ PACKAGE = @PACKAGE@ @@ -66,7 +66,7 @@ stepmake = @stepmake@ package_datadir = $(datadir)/$(package) -package_infodir = $(infodir)/$(package) +package_infodir = $(infodir) package_libdir = $(libdir)/$(package) package_docdir = $(docdir)/$(package) package_omfdir = $(omfdir)/$(package) >From 4256f121bdbb6310cbb7162f1d38632dfec11519 Mon Sep 17 00:00:00 2001 From: David Kastrup <d...@gnu.org> Date: Thu, 21 Feb 2013 10:38:14 +0100 Subject: [PATCH] Issue 2088: Replace automatic pointer-to-member function conversions Those are a GCC extension and thus a portability problem. --- lily/GNUmakefile | 3 --- lily/include/lily-proto.hh | 5 ++--- lily/include/translator-group.hh | 2 +- lily/translator-dispatch-list.cc | 2 +- 4 files changed, 4 insertions(+), 8 deletions(-) diff --git a/lily/GNUmakefile b/lily/GNUmakefile index e67a883..ba19ac9 100644 --- a/lily/GNUmakefile +++ b/lily/GNUmakefile @@ -6,9 +6,6 @@ NAME = lilypond MODULE_LIBS=$(depth)/flower MODULE_INCLUDES= $(depth)/flower/include -# need this to convert between function pointers and member function pointers. -MODULE_CXXFLAGS= -Wno-pmf-conversions - HELP2MAN_EXECS = lilypond STEPMAKE_TEMPLATES=c c++ executable po help2man diff --git a/lily/include/lily-proto.hh b/lily/include/lily-proto.hh index e726c4a..53e863c 100644 --- a/lily/include/lily-proto.hh +++ b/lily/include/lily-proto.hh @@ -198,8 +198,7 @@ class Translator_group; class Transposed_music; class yyFlexLexer; -typedef void (*Engraver_void_function_engraver_grob_info) (Engraver *, - Grob_info); -typedef void (*Translator_void_method_ptr) (Translator *); +typedef void (Engraver::*Engraver_void_function_engraver_grob_info) (Grob_info); +typedef void (Translator::*Translator_void_method_ptr) (); #endif /* LILY_PROTO_HH */ diff --git a/lily/include/translator-group.hh b/lily/include/translator-group.hh index e5004c2..ad044de 100644 --- a/lily/include/translator-group.hh +++ b/lily/include/translator-group.hh @@ -43,7 +43,7 @@ struct Translator_method_binding void invoke () { if (method_) - (*method_) (translator_); + (translator_->*method_) (); } }; diff --git a/lily/translator-dispatch-list.cc b/lily/translator-dispatch-list.cc index 6c74b25..dffaa09 100644 --- a/lily/translator-dispatch-list.cc +++ b/lily/translator-dispatch-list.cc @@ -32,7 +32,7 @@ Engraver_dispatch_list::apply (Grob_info gi) if (e.engraver_ == origin) continue; - (*e.function_) (e.engraver_, gi); + (e.engraver_->*e.function_) (gi); } } -- 1.7.11.1 >From 22581154dd1af254e4b9113e04b620d6e7c99296 Mon Sep 17 00:00:00 2001 From: David Kastrup <d...@gnu.org> Date: Sat, 23 Feb 2013 09:56:06 +0100 Subject: [PATCH] Issue 3201: Don't initialize dim_cache_ array via constructor syntax This is not valid C++ and not even a documented GCC extension. It is probabably an oversight that GCC appears to be able to interpret this in some manner. Also creates a custom copy constructor for Dimension_cache for the sole purpose of being able to initialize a Dimension_cache array element-wise from a Dimension_cache array in the copy constructor of Grob. C++ clearly is lacking in some departments. --- lily/dimension-cache.cc | 10 ++++++++++ lily/grob.cc | 5 ++++- lily/include/dimension-cache.hh | 1 + 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/lily/dimension-cache.cc b/lily/dimension-cache.cc index 2d2fce4..4538f17 100644 --- a/lily/dimension-cache.cc +++ b/lily/dimension-cache.cc @@ -30,6 +30,16 @@ Dimension_cache::Dimension_cache (Dimension_cache const &d) extent_ = d.extent_ ? new Interval (*d.extent_) : 0; } +Dimension_cache & +Dimension_cache::operator = (Dimension_cache const &d) +{ + clear (); + offset_ = d.offset_ ? new Real (*d.offset_) : 0; + parent_ = d.parent_; + extent_ = d.extent_ ? new Interval (*d.extent_) : 0; + return *this; +} + Dimension_cache::Dimension_cache () { init (); diff --git a/lily/grob.cc b/lily/grob.cc index 4c54cbc..8ece3cd 100644 --- a/lily/grob.cc +++ b/lily/grob.cc @@ -87,13 +87,16 @@ Grob::Grob (SCM basicprops) } Grob::Grob (Grob const &s) - : dim_cache_ (s.dim_cache_) { original_ = (Grob *) & s; self_scm_ = SCM_EOL; immutable_property_alist_ = s.immutable_property_alist_; mutable_property_alist_ = SCM_EOL; + + for (Axis a = X_AXIS; a < NO_AXES; incr (a)) + dim_cache_ [a] = s.dim_cache_ [a]; + interfaces_ = s.interfaces_; object_alist_ = SCM_EOL; diff --git a/lily/include/dimension-cache.hh b/lily/include/dimension-cache.hh index 581bcff..6210be1 100644 --- a/lily/include/dimension-cache.hh +++ b/lily/include/dimension-cache.hh @@ -36,6 +36,7 @@ class Dimension_cache friend class Grob; Dimension_cache (Dimension_cache const &); + Dimension_cache & operator = (Dimension_cache const &d); ~Dimension_cache (); Dimension_cache (); }; -- 1.7.11.1
------------------------------------------------------------------------------ Everyone hates slow websites. So do we. Make your web apps faster with AppDynamics Download AppDynamics Lite for free today: http://p.sf.net/sfu/appdyn_d2d_feb
_______________________________________________ Fink-devel mailing list Fink-devel@lists.sourceforge.net List archive: http://news.gmane.org/gmane.os.apple.fink.devel Subscription management: https://lists.sourceforge.net/lists/listinfo/fink-devel