- Fedora-Fr
- À propos de Fedora-Fr
- Historique
- Statistiques
- Télécharger
- Obtenir Fedora
- Toutes les méthodes de téléchargement
- Support
- Aide sur IRC
- Forums
- Documentation
- Sous-projets
- Plateforme de blog
Dernière news : Fedora 34 n'est plus maintenu
Ce n'est pas le même patch. Je ne corrige pour le moment que la détection de tse3 avec. Si je l'ai « étiquetté » gcc4, c'est :
- qu'il adapte le code de détection de tse3 à la rigueur de gcc4 ;
- que je m'attends de toute façon à d'autres soucis de ce genre dans le code antédiluvien de noteedit au fur et à mesure qu'on ira plus loin dans la compilation ; le patch aurait été enrichi en conséquence.
Ceci dit, le patch OpenSuSE nous mâche le boulot clairement. Tu peux l'utiliser à la place du mien. Niveau licence, je n'ai pas le souvenir qu'OpenSuSE fasse de la rétention de patches. Rajoute simplement un commentaire dans le .spec indiquant la provenance du patch.
« …elle excitait si puissamment le désir, que je devins alors très incrédule sur sa vertu. »
À propos de Fœdora, dans la Peau de Chagrin (Balzac)
Hors ligne
Bon,
voici ce que j'ai fait (pour être sur !) :
après décompression de l'archive :
[builder@localhost ~]$ cd noteedit-2.8.1
[builder@localhost noteedit-2.8.1]$ cp configure.in configure.in.orig
[builder@localhost noteedit-2.8.1]$ geany configure.in
à ce stade j'ai modifié les deux lignes incriminées
[builder@localhost noteedit-2.8.1]$ diff -Naur configure.in.orig configure.in > configure.in.patch
J'obtiens ce patch :
--- configure.in.orig 2011-08-05 11:30:49.963095223 +0000
+++ configure.in 2011-08-05 11:40:31.753781071 +0000
@@ -332,10 +332,10 @@
fi
cat >tse3vtest.cc << EOF
-#include <istream.h>
+#include <iostream>
#include <tse3/TSE3.h>
int main() {
- cout << TSE3::TSE3_Version() << endl;
+ std::cout << TSE3::TSE3_Version() << std::endl;
return 0;
}
EOF
Et donc, ce fichier configure.in :
dnl This file is part of the KDE libraries/packages
dnl Copyright (C) 2001 Stephan Kulow (coolo@kde.org)
dnl This file is free software; you can redistribute it and/or
dnl modify it under the terms of the GNU Library General Public
dnl License as published by the Free Software Foundation; either
dnl version 2 of the License, or (at your option) any later version.
dnl This library is distributed in the hope that it will be useful,
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
dnl Library General Public License for more details.
dnl You should have received a copy of the GNU Library General Public License
dnl along with this library; see the file COPYING.LIB. If not, write to
dnl the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
dnl Boston, MA 02111-1307, USA.
# Original Author was Kalle@kde.org
# I lifted it in some mater. (Stephan Kulow)
# I used much code from Janos Farkas
dnl Process this file with autoconf to produce a configure script.
AC_INIT(acinclude.m4) dnl a source file from your sub dir
dnl This is so we can use kde-common
AC_CONFIG_AUX_DIR(admin)
dnl This ksh/zsh feature conflicts with `cd blah ; pwd`
unset CDPATH
dnl Checking host/target/build systems, for make, install etc.
AC_CANONICAL_SYSTEM
dnl Perform program name transformation
AC_ARG_PROGRAM
dnl Automake doc recommends to do this only here. (Janos)
AM_INIT_AUTOMAKE(noteedit, 2.8.1) dnl searches for some needed programs
KDE_SET_PREFIX
dnl generate the config header
AM_CONFIG_HEADER(config.h) dnl at the distribution this done
dnl Checks for programs.
AC_CHECK_COMPILERS
AC_ENABLE_SHARED(yes)
AC_ENABLE_STATIC(no)
KDE_PROG_LIBTOOL
dnl for NLS support. Call them in this order!
dnl WITH_NLS is for the po files
AM_KDE_WITH_NLS
KDE_USE_QT(3.0.0)
AC_PATH_KDE
#MIN_CONFIG(3.0.0)
stdlibdirs="/usr/lib /usr/local/lib /usr/X11/lib /usr/X11R6/lib"
stdincdirs="/usr/include /usr/local/include /usr/X11/include /usr/X11R6/lib"
dnl
dnl FIND_PACKAGE(<name>, <libname>, <includename>,<libdirs>,<incldirs>)
dnl
AC_DEFUN(FIND_PACKAGE,[
echo -n "checking $1... "
for dir in $4
do
if test -f $dir/lib$2.so || test -f $dir/lib$2.a
then
lib_$1=$dir
break
fi
done
for dir in $5
do
if test -f $dir/$3
then
inc_$1=$dir
break
fi
done
echo "libs in $lib_$1; includes in $inc_$1"
])
dnl
dnl AC_NEW_ARG(<arg-name>)
dnl
AC_DEFUN(AC_NEW_ARG,[
AC_ARG_WITH($1-include,[ --with-$1-include=DIR $1 headers in DIR])
AC_ARG_WITH($1-libs,[ --with-$1-libs=DIR $1 libraries in DIR])
])
libtse3requ="yes"
AC_ARG_WITH(libtse3,[ --with-libtse3 (default) the new library by Pete Goodliffe <pete.goodliffe@pace.co.uk>)])
AC_NEW_ARG(libtse3)
AC_ARG_WITH(libkmid,[ --with-libkmid use libkmid instead of libtse3 (not all features available, see README)])
AC_NEW_ARG(libkmid)
AC_ARG_WITH(libs,[ --without-libs without any library (cause machine depencies, not all features available, see README)])
AC_ARG_WITH(oldlily,[ --with-oldlily use LilyPond 1.2.17 syntax to export])
AC_ARG_WITH(anthem,[ --with-anthem=DIR produce Anthem plugin, DIR=Athem source directory])
AC_ARG_WITH(fadein,[ --without-fadein say \"--without-fadein\" if (de)crescendo gives unexpected results])
AC_ARG_WITH(arts,[ --without-arts say \"--without-arts\" if you never want to create an aRts scheduler])
AC_ARG_WITH(printing,[ --without-printing say \"--without-printing\" for disabling print preview and printing support])
if test "X$USE_EXCEPTIONS" = "X"
then
echo ""
echo "########################################################"
echo "# Your compiler does not support \"-fexceptions\" option #"
echo "# This will probably cause problems during compilation #"
echo "# of \"midimapper.cpp\" file. #"
echo "########################################################"
echo ""
fi
echo -n "Testing compiler version ... "
rm -f compvers.cc compvers.o compvers
cat >compvers.cc << EOF
#include <stdio.h>
main() {
char *v = __VERSION__;
printf("%c", *v);
}
EOF
${CXX} compvers.cc -o compvers
if test $? -ne 0
then
echo "Cannot compile a simple C++ program! See compvers.cc"
exit
fi
ccversion=`./compvers`
if test $? -ne 0
then
echo "Cannot run a simple C++ program! See compvers.cc"
exit
fi
echo "$ccversion"
${CXX} compvers.cc -o compvers
if test "X$ccversion" = "X2"
then
AC_DEFINE(GCC_MAJ_VERS, 2, [main version number of gcc])
rm -f compvers.cc compvers.o compvers
elif test "X$ccversion" = "X3"
then
AC_DEFINE(GCC_MAJ_VERS, 3, [main version number of gcc])
rm -f compvers.cc compvers.o compvers
elif test "X$ccversion" = "X4"
then
AC_DEFINE(GCC_MAJ_VERS, 4, [main version number of gcc])
rm -f compvers.cc compvers.o compvers
else
echo ""
echo "Cannot determine g++ version"
echo "Check your compiler installation or"
echo "try to find out why \"./compvers\" doesn't"
echo "supply \"2\", \"3\" or \"4\"!"
echo ""
exit
fi
rm -f kde_qttest.cpp
cat >kde_qttest.cpp << EOF
#include <kapp.h>
#include <qglobal.h>
#if KDE_VERSION >= 290
#if QT_VERSION < 300
#error "you cannot use KDE3 together with QT < 3! Please check QTDIR environment variable or use configure --with-qt-dir="
#endif
#else
#if QT_VERSION >= 300
#error "you cannot use KDE2 together with QT >= 3! Please check QTDIR environment variable or use configure --with-qt-dir="
#endif
#endif
EOF
${CXX} -c kde_qttest.cpp -I$qt_includes -I$kde_includes
if test $? -ne 0
then
echo ""
echo "There seems to be a KDE <--> Qt version conflict."
echo "Please check the configure parameters. Set the"
echo "enviroment variable QTDIR or use the configure option"
echo "\"--with-qt-libs=\" and \"--with-qt-libs-includes\""
echo ""
echo "Note further: If you have different KDE/Qt versions make"
echo "sure the PATH variable only references the KDE/Qt version"
echo "you wish to use for NoteEdit!"
echo ""
rm -f kde_qttest.cpp
exit
fi
rm -f kde_qttest.cpp
if test "X$with_fadein" != "Xno"
then
AC_DEFINE(WITH_FADE_IN, 1, [disable fade in/out for (de)cresendo])
fi
AC_PROG_YACC
YACC="$YACC -d"
rm -f yacctest.y y.tab.c
cat >yacctest.y << EOF
%token Y_A
%%
start: Y_A
;
%%
EOF
$YACC yacctest.y 2>/dev/null > /dev/null
if test $? -ne 0
then
echo ""
echo "Cannot run a simple YACC/Bison program. Perhaps YACC/Bison isn't"
echo "installed? Please install! Or check why:"
echo ""
echo " $YACC yacctest.y"
echo ""
echo "doesn't work!"
echo ""
exit
fi
rm -f yacctest.y y.tab.c
LEX=""
AM_PROG_LEX
if test "X$LEX" = "X"
then
echo "This packages needs lex or flex! Please install!"
exit
fi
rm -f noteeditlextest.l noteeditlextest.c noteeditlextest
cat >noteeditlextest.l << EOF
%%
a return 2;
%%
int yywrap() {return 1;}
main() {
int a = yylineno;
}
EOF
$LEX -t noteeditlextest.l > noteeditlextest.c
if test $? -ne 0
then
echo ""
echo "ERROR: Lex does not work! Perhaps (f)lex isn't installed!"
echo "Please install or find out why why"
echo ""
echo " $MYLEX -t noteeditlextest.l"
echo ""
echo "doesn't work!"
exit
fi
${CC} -o noteeditlextest noteeditlextest.c 2>/dev/null > /dev/null
if test $? -ne 0
then
$LEX -l -t noteeditlextest.l > noteeditlextest.c
if test $? -ne 0
then
echo ""
echo "ERROR: Lex does not work! Please find out why"
echo ""
echo " $MYLEX -l -t noteeditlextest.l"
echo ""
echo "doesn't work!"
exit
fi
${CC} -o noteeditlextest noteeditlextest.c 2>/dev/null > /dev/null
if test $? -ne 0
then
echo ""
echo "ERROR: Lex does not work! Please find out why"
echo ""
echo " $MYLEX -l -t noteeditlextest.l >noteeditlextest.c"
echo " cc -o noteeditlextest noteeditlextest.c"
echo ""
echo "doesn't work!"
exit
fi
LEX="$LEX -l"
fi
rm -f noteeditlextest.l noteeditlextest.c noteeditlextest
if test "$with_libs" = "no" -o "$with_libkmid" = "yes"
then
libtse3requ="no"
fi
printingreq="yes"
if test "X$with_printing" = "Xno"
then
printingreq="no"
fi
if test "X$with_libtse3_include" = "X"
then
with_libtse3_include=$stdincdirs
fi
if test "X$with_libtse3_libs" = "X"
then
with_libtse3_libs=$stdlibdirs
fi
if test "$libtse3requ" = "yes"
then
FIND_PACKAGE(libtse3, tse3, tse3/TSE3.h, $with_libtse3_libs, $with_libtse3_include)
if test "X$lib_libtse3" = "X" -o "X$inc_libtse3" = "X"
then
echo ""
echo "libtse3 not found! Please install!"
echo "If you have installed libtse3 in an unusual directory"
echo "use \"--with-libtse3-include=\" and/or \"--with-libtse3-libs=\""
echo ""
echo "There are options to bypass libtse3! But this causes some"
echo "restrictions; see README"
echo ""
exit
fi
cat >tse3vtest.cc << EOF
#include <iostream>
#include <tse3/TSE3.h>
int main() {
std::cout << TSE3::TSE3_Version() << std::endl;
return 0;
}
EOF
${CXX} -W -Wall -ansi -pedantic -g tse3vtest.cc -I$inc_libtse3 -I$kde_includes -L$lib_libtse3 \
-Wl,-rpath $lib_libtse3 -ltse3 -L$kde_libraries -Wl,-rpath $kde_libraries -lpthread -o tse3vtest 2>/dev/null > /dev/null
if test $? -ne 0
then
echo ""
echo " ERROR: TSE3 found but unable to link a simple TSE3 example!"
echo " Please see example file \"tse3vtest.cc\" and try to find out"
echo " why it doesn't compile using the following command:"
echo " ${CXX} -W -Wall -ansi -pedantic -g tse3vtest.cc -I$inc_libtse3 -I$kde_includes -L$lib_libtse3 -Wl,-rpath $lib_libtse3 -ltse3 -L$kde_libraries -Wl,-rpath $kde_libraries -lpthread -o tse3vtest"
echo ""
exit
fi
changequote(<<, >>)dnl
VERS=`./tse3vtest`
changequote([, ])dnl
tse_maj=`echo $VERS | sed -e 's/^\(.*\)\..*\..*$/\1/'`
tse_mid=`echo $VERS | sed -e 's/^.*\.\(.*\)\..*$/\1/'`
tse_min=`echo $VERS | sed -e 's/^.*\..*\.\(.*\)$/\1/'`
if test "X$VERS" = "X"
then
echo " ERROR: TSE3 found but unable to run a simple TSE3 example!"
echo " Please see example file \"tse3vtest.cc\" and try to find out"
echo " why it doesn't run, compiled with:"
echo " ${CXX} -W -Wall -ansi -pedantic -g tse3vtest.cc -I$inc_libtse3 -I$kde_includes -L$lib_libtse3 -Wl,-rpath $lib_libtse3 -ltse3 -L$kde_libraries -Wl,-rpath $kde_libraries -lpthread -o tse3vtest"
exit
fi
if test "$tse_maj" -eq 0 -a "$tse_mid" -eq 2 -a "$tse_min" -lt 3
then
echo ""
echo " Excuse: NoteEdit cannot deal with tse3-0.2.$tse_min Please use"
echo " tse-0.2.3 or later"
echo " See http://TSE3.sourceforge.net for downloading newer versions of TSE3"
echo ""
rm -f tse3vtest tse3vtest.cc
exit
fi
if test "$tse_mid" -lt 2
then
echo ""
echo " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
echo " I found tse3-$tse_maj.$tse_mid.$tse_min"
echo " It works. But you should think about update. Probably future versions"
echo " of NoteEdit will require tse3-0.2.x"
echo " See http://TSE3.sourceforge.net for downloading newer versions of TSE3"
echo " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
echo ""
fi
if test "$tse_maj" -lt 0 -o "$tse_mid" -lt 1 -o \( "$tse_mid" -lt 2 -a "$tse_min" -lt 2 \)
then
echo ""
echo " ERROR: TSE3 $VERS found but this version of \"noteedit\" needs >= TSE3-0.1.2"
echo " or later. But NOT tse3-0.2.0!!!"
echo " See http://TSE3.sourceforge.net for downloading newer versions of TSE3"
echo ""
rm -f tse3vtest tse3vtest.cc
exit
fi
rm -f tse3vtest tse3vtest.cc
TSE3INCLUDE="-I$inc_libtse3"
TSE3LIBS="-L$lib_libtse3 -ltse3"
if test "$tse_mid" -gt 1
then
AC_DEFINE(TSE3_MID_VERSION_NR, 2, [the middle version number of TSE3])
else
AC_DEFINE(TSE3_MID_VERSION_NR, 1, [the middle version number of TSE3])
fi
if test "$with_arts" != "no"
then
echo -n "checking for TSE3 with aRts ..."
if test "$tse_mid" -gt 1
then
cat >tse3vtest2.cc << EOF
#include <tse3/plt/Factory.h>
#include <tse3/plt/Arts.h>
int main() {
TSE3::MidiSchedulerFactory theFactory_;
TSE3::MidiScheduler *theScheduler_;
TSE3::Plt::UnixMidiSchedulerFactory::setPreferredPlatform(TSE3::Plt::UnixMidiSchedulerFactory::UnixPlatform_Alsa);
theScheduler_ = theFactory_.createScheduler();
return 0;
}
EOF
else
cat >tse3vtest2.cc << EOF
#include <tse3/plt/Arts.h>
int main() {
TSE3::Plt::ArtsMidiSchedulerFactory theARtsFactory_;
TSE3::MidiScheduler *theScheduler_;
theScheduler_ = theARtsFactory_.createScheduler();
return 0;
}
EOF
fi
${CXX} -W -Wall -ansi -pedantic -g tse3vtest2.cc -I$inc_libtse3 -I$kde_includes -L$lib_libtse3 \
-Wl,-rpath $lib_libtse3 -ltse3 -L$kde_libraries -Wl,-rpath $kde_libraries -lpthread -o tse3vtest2 2>/dev/null > /dev/null
if test $? -ne 0
then
echo " no"
echo "${CXX} -W -Wall -ansi -pedantic -g tse3vtest2.cc -I$inc_libtse3 -I$kde_includes -L$lib_libtse3 \
-Wl,-rpath $lib_libtse3 -ltse3 -L$kde_libraries -Wl,-rpath $kde_libraries -lpthread -o tse3vtest2"
else
echo " yes"
AC_DEFINE(TSE3_HAS_ARTS, 1, [Define if TSE3 has an aRts MIDI scheduler])
fi
fi
rm -f tse3vtest tse3vtest.cc
fi
if test "$with_libs" = "no"
then
echo ""
echo "This produces the version without any library. Please note:"
echo " This causes some restrictions; see README"
echo ""
fi
if test "$with_libkmid" = "yes"
then
if test "X$with_libkmid_include" = "X"
then
with_libkmid_include=$stdincdirs
fi
if test "X$with_libkmid_libs" = "X"
then
with_libkmid_libs=$stdlibdirs
fi
AC_DEFINE(WITH_LIBKMID, 1, [Define if you want to use libkmid instead of libtse3])
FIND_PACKAGE(libkmid, kmid, libkmid/libkmid.h, $with_libkmid_libs, $with_libkmid_include)
if test "X$lib_libkmid" = "X" -o "X$inc_libkmid" = "X"
then
echo ""
echo "libkmid not found! Please install!"
echo "There are options to bypass all libs! But this causes some"
echo "restrictions; see README"
echo ""
exit
fi
echo ""
echo "This produces the version with libkmid. Please note:"
echo " This causes some restrictions; see README"
echo ""
KMIDINCLUDE="-I$inc_libkmid"
KMIDLIBS="-L$lib_libkmid -lkmid"
fi
if test "$printingreq" = "yes"
then
AC_DEFINE(WITH_DIRECT_PRINTING, 1, [enable print preview and printing support])
fi
if test "$libtse3requ" = "yes"
then
AC_DEFINE(WITH_TSE3, 1, [Define if libtse3 present])
fi
if test "$with_oldlily" = "yes"
then
AC_DEFINE(WITH_OLDLILY, 1, [Define if old lily present])
fi
if test $with_anthem
then
if test "X$lib_libtse3" = "X" -o "X$inc_libtse3" = "X"
then
echo "Anthem plugin requires TSE3 library!"
exit
fi
if test ! \( -f $with_anthem/anthem/phraseeditors/PhraseEditor.h \)
then
echo "File $with_anthem/anthem/phraseeditors/PhraseEditor.h"
echo does not exist!
exit
fi
AC_DEFINE(ANTHEM_PLUGIN, 1, [Define if old lily present])
ANTHEMINCLUDE=-I$with_anthem
fi
if test "$kde_qtver" = "3"
then
echo "cp noteedit/lyrics.ui.qt3 noteedit/lyrics.ui"
cp noteedit/lyrics.ui.qt3 noteedit/lyrics.ui
echo "cp kguitar_excerpt/fingerlist.h.qt3 kguitar_excerpt/fingerlist.h"
cp kguitar_excerpt/fingerlist.h.qt3 kguitar_excerpt/fingerlist.h
else
echo "cp noteedit/lyrics.ui.qt2 noteedit/lyrics.ui"
cp noteedit/lyrics.ui.qt2 noteedit/lyrics.ui
echo "cp kguitar_excerpt/fingerlist.h.qt2 kguitar_excerpt/fingerlist.h"
cp kguitar_excerpt/fingerlist.h.qt2 kguitar_excerpt/fingerlist.h
fi
LEX_PREFIX="NEDIT"
LEX_RESTART="${LEX_PREFIX}restart"
LEX_LINENO="${LEX_PREFIX}lineno"
YACC_PARSE="${LEX_PREFIX}parse"
YACC_LVAL="${LEX_PREFIX}lval"
if test "X$kde_use_final" != "Xno"
then
SPECIAL_FLAGS_FOR_FINAL="\$(PREFIX_DEF) \$(USE_EXCEPTIONS)"
else
SPECIAL_FLAGS_FOR_FINAL=""
fi
dnl PACKAGE set before
AC_SUBST(SPECIAL_FLAGS_FOR_FINAL)
AC_SUBST(LEX)
AC_SUBST(YACC)
AC_SUBST(LEX_PREFIX)
AC_SUBST(LEX_RESTART)
AC_SUBST(LEX_LINENO)
AC_SUBST(YACC_PARSE)
AC_SUBST(YACC_LVAL)
AC_SUBST(ANTHEMINCLUDE)
AC_SUBST(TSE3INCLUDE)
AC_SUBST(TSE3LIBS)
AC_SUBST(KMIDINCLUDE)
AC_SUBST(KMIDLIBS)
KDE_CREATE_SUBDIRSLIST
AC_CONFIG_FILES([ Makefile ])
AC_CONFIG_FILES([ doc/Makefile ])
AC_CONFIG_FILES([ doc/de/Makefile ])
AC_CONFIG_FILES([ doc/noteedit/Makefile ])
AC_CONFIG_FILES([ kguitar_excerpt/Makefile ])
AC_CONFIG_FILES([ noteedit/Makefile ])
AC_CONFIG_FILES([ noteedit/icons/Makefile ])
AC_CONFIG_FILES([ noteedit/resources/Makefile ])
AC_CONFIG_FILES([ po/Makefile ])
AC_OUTPUT
if test "$all_tests" = "bad"; then
if test ! "$cache_file" = "/dev/null"; then
echo ""
echo "Please remove the file $cache_file after changing your setup"
echo "so that configure will find the changes next time."
echo ""
fi
else
echo ""
echo "Good - your configure finished. Start make now"
echo ""
fi
Le fichier .orig ne doit pas être modifié, il s'agit des sources originelles, non ?
Je voulais essayer, pour voir si j'avais bien compris les commandes de gurulab, mais peut-être que la doc est obsolète ?
Dernière modification par joyce-day (06/08/2011 23:26:34)
Hors ligne
Oui, ça ne se fait pas comme ça sous Fedora ? Je ne trouve pas la doc : patcher les sources, ...
Hors ligne
Salut,
J'ai réalisé trois patches d'après ceux du built service de SuSE.
Pour le test tse3, ça a l'air de fonctionner !
Pour la suite, je rame ! Je vais t'envoyer le config.log via fedora past :
Voici le nouveau spec :
Name : noteedit
Version : 2.8.1
Release : 1%{dist}
Summary : noteedit a WYSIWYG music score editor
Group : multimedia
License : GPLv2+
Source0 : http://download.berlios.de/%{name}/%{name}-%{version}.tar.gz
Patch0 : configure.patch
Patch1 : configure.in.patch
Patch2 : configure.in.in.patch
Patch3 : keyoffs.cpp.patch
Patch4 : midimapper.cpp.patch
Patch5 : multistaffinfo.cpp.patch
URL : http://noteedit.berlios.de/
BuildRoot : %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires : qt3-devel, bison, flex, kdelibs3-devel, tse3-devel
%description
NoteEdit is a music score editor that supports an unlimited number of staffs,
an unlimited length of staffs, up to 9 voices per staff, a MIDI playback of
written notes, a number of import and export filters to many formats like MIDI,
MusicXML, ABC Music, PMX, MusiXTeX and LilyPond and more!
%prep
%setup -q
%patch0 -p1
%patch1 -p1
%patch2 -p1
##%patch3 -p1
##%patch4 -p1
##%patch5 -p1
%build
%configure \
--with-libtse3-libs=%{_libdir} \
--with-qt-dir=%{_libdir}/qt-3.3
make %{?_smp_mflags}
%install
rm -rf $RPM_BUILD_ROOT
make install DESTDIR=$RPM_BUILD_ROOT
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(-,root,root,-)
%doc
%changelog
*Wed Aug 04 2011 Day Parsons
<day.parsons@hotmail.fr>
- Initial RPM release
Hors ligne
Peux-tu mettre en ligne plutôt tes src.rpm ? Ce sera aussi plus pratique pour nous, pour tester ton travail.
« …elle excitait si puissamment le désir, que je devins alors très incrédule sur sa vertu. »
À propos de Fœdora, dans la Peau de Chagrin (Balzac)
Hors ligne
Ce que tu veux ce sont les sources modifiées, je crois ? Parceque pour l'instant, je n'ai pas de rpm qui se " construit " avec ce spec !
Donc, en plus de l'archive de noteedit, j'ai copié les .orig, les .in modifiés, et les .cpp modifiés dans ~/rpmbuild/SOURCES. Je crois que c'est comme cela qu'il faut faire, mais je ne suis pas sur !?
Voici donc configure :
Oh, la ! Il ne le veulent pas sur Fedora past ! trop long !!
Bon, alors, les lignes qui ont changé :
--- configure.orig 2011-08-05 19:38:23.721331901 +0000
+++ configure 2011-08-05 19:43:16.374652737 +0000
@@ -31565,10 +31565,10 @@
fi
cat >tse3vtest.cc << EOF
-#include <istream.h>
+#include <iostream>
#include <tse3/TSE3.h>
int main() {
- cout << TSE3::TSE3_Version() << endl;
+ std::cout << TSE3::TSE3_Version() << std::endl;
return 0;
}
EOF
Configure.in :
dnl This file is part of the KDE libraries/packages
dnl Copyright (C) 2001 Stephan Kulow (coolo@kde.org)
dnl This file is free software; you can redistribute it and/or
dnl modify it under the terms of the GNU Library General Public
dnl License as published by the Free Software Foundation; either
dnl version 2 of the License, or (at your option) any later version.
dnl This library is distributed in the hope that it will be useful,
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
dnl Library General Public License for more details.
dnl You should have received a copy of the GNU Library General Public License
dnl along with this library; see the file COPYING.LIB. If not, write to
dnl the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
dnl Boston, MA 02111-1307, USA.
# Original Author was Kalle@kde.org
# I lifted it in some mater. (Stephan Kulow)
# I used much code from Janos Farkas
dnl Process this file with autoconf to produce a configure script.
AC_INIT(acinclude.m4) dnl a source file from your sub dir
dnl This is so we can use kde-common
AC_CONFIG_AUX_DIR(admin)
dnl This ksh/zsh feature conflicts with `cd blah ; pwd`
unset CDPATH
dnl Checking host/target/build systems, for make, install etc.
AC_CANONICAL_SYSTEM
dnl Perform program name transformation
AC_ARG_PROGRAM
dnl Automake doc recommends to do this only here. (Janos)
AM_INIT_AUTOMAKE(noteedit, 2.8.1) dnl searches for some needed programs
KDE_SET_PREFIX
dnl generate the config header
AM_CONFIG_HEADER(config.h) dnl at the distribution this done
dnl Checks for programs.
AC_CHECK_COMPILERS
AC_ENABLE_SHARED(yes)
AC_ENABLE_STATIC(no)
KDE_PROG_LIBTOOL
dnl for NLS support. Call them in this order!
dnl WITH_NLS is for the po files
AM_KDE_WITH_NLS
KDE_USE_QT(3.0.0)
AC_PATH_KDE
#MIN_CONFIG(3.0.0)
stdlibdirs="/usr/lib /usr/local/lib /usr/X11/lib /usr/X11R6/lib"
stdincdirs="/usr/include /usr/local/include /usr/X11/include /usr/X11R6/lib"
dnl
dnl FIND_PACKAGE(<name>, <libname>, <includename>,<libdirs>,<incldirs>)
dnl
AC_DEFUN(FIND_PACKAGE,[
echo -n "checking $1... "
for dir in $4
do
if test -f $dir/lib$2.so || test -f $dir/lib$2.a
then
lib_$1=$dir
break
fi
done
for dir in $5
do
if test -f $dir/$3
then
inc_$1=$dir
break
fi
done
echo "libs in $lib_$1; includes in $inc_$1"
])
dnl
dnl AC_NEW_ARG(<arg-name>)
dnl
AC_DEFUN(AC_NEW_ARG,[
AC_ARG_WITH($1-include,[ --with-$1-include=DIR $1 headers in DIR])
AC_ARG_WITH($1-libs,[ --with-$1-libs=DIR $1 libraries in DIR])
])
libtse3requ="yes"
AC_ARG_WITH(libtse3,[ --with-libtse3 (default) the new library by Pete Goodliffe <pete.goodliffe@pace.co.uk>)])
AC_NEW_ARG(libtse3)
AC_ARG_WITH(libkmid,[ --with-libkmid use libkmid instead of libtse3 (not all features available, see README)])
AC_NEW_ARG(libkmid)
AC_ARG_WITH(libs,[ --without-libs without any library (cause machine depencies, not all features available, see README)])
AC_ARG_WITH(oldlily,[ --with-oldlily use LilyPond 1.2.17 syntax to export])
AC_ARG_WITH(anthem,[ --with-anthem=DIR produce Anthem plugin, DIR=Athem source directory])
AC_ARG_WITH(fadein,[ --without-fadein say \"--without-fadein\" if (de)crescendo gives unexpected results])
AC_ARG_WITH(arts,[ --without-arts say \"--without-arts\" if you never want to create an aRts scheduler])
AC_ARG_WITH(printing,[ --without-printing say \"--without-printing\" for disabling print preview and printing support])
if test "X$USE_EXCEPTIONS" = "X"
then
echo ""
echo "########################################################"
echo "# Your compiler does not support \"-fexceptions\" option #"
echo "# This will probably cause problems during compilation #"
echo "# of \"midimapper.cpp\" file. #"
echo "########################################################"
echo ""
fi
echo -n "Testing compiler version ... "
rm -f compvers.cc compvers.o compvers
cat >compvers.cc << EOF
#include <stdio.h>
main() {
char *v = __VERSION__;
printf("%c", *v);
}
EOF
${CXX} compvers.cc -o compvers
if test $? -ne 0
then
echo "Cannot compile a simple C++ program! See compvers.cc"
exit
fi
ccversion=`./compvers`
if test $? -ne 0
then
echo "Cannot run a simple C++ program! See compvers.cc"
exit
fi
echo "$ccversion"
${CXX} compvers.cc -o compvers
if test "X$ccversion" = "X2"
then
AC_DEFINE(GCC_MAJ_VERS, 2, [main version number of gcc])
rm -f compvers.cc compvers.o compvers
elif test "X$ccversion" = "X3"
then
AC_DEFINE(GCC_MAJ_VERS, 3, [main version number of gcc])
rm -f compvers.cc compvers.o compvers
elif test "X$ccversion" = "X4"
then
AC_DEFINE(GCC_MAJ_VERS, 4, [main version number of gcc])
rm -f compvers.cc compvers.o compvers
else
echo ""
echo "Cannot determine g++ version"
echo "Check your compiler installation or"
echo "try to find out why \"./compvers\" doesn't"
echo "supply \"2\", \"3\" or \"4\"!"
echo ""
exit
fi
rm -f kde_qttest.cpp
cat >kde_qttest.cpp << EOF
#include <kapp.h>
#include <qglobal.h>
#if KDE_VERSION >= 290
#if QT_VERSION < 300
#error "you cannot use KDE3 together with QT < 3! Please check QTDIR environment variable or use configure --with-qt-dir="
#endif
#else
#if QT_VERSION >= 300
#error "you cannot use KDE2 together with QT >= 3! Please check QTDIR environment variable or use configure --with-qt-dir="
#endif
#endif
EOF
${CXX} -c kde_qttest.cpp -I$qt_includes -I$kde_includes
if test $? -ne 0
then
echo ""
echo "There seems to be a KDE <--> Qt version conflict."
echo "Please check the configure parameters. Set the"
echo "enviroment variable QTDIR or use the configure option"
echo "\"--with-qt-libs=\" and \"--with-qt-libs-includes\""
echo ""
echo "Note further: If you have different KDE/Qt versions make"
echo "sure the PATH variable only references the KDE/Qt version"
echo "you wish to use for NoteEdit!"
echo ""
rm -f kde_qttest.cpp
exit
fi
rm -f kde_qttest.cpp
if test "X$with_fadein" != "Xno"
then
AC_DEFINE(WITH_FADE_IN, 1, [disable fade in/out for (de)cresendo])
fi
AC_PROG_YACC
YACC="$YACC -d"
rm -f yacctest.y y.tab.c
cat >yacctest.y << EOF
%token Y_A
%%
start: Y_A
;
%%
EOF
$YACC yacctest.y 2>/dev/null > /dev/null
if test $? -ne 0
then
echo ""
echo "Cannot run a simple YACC/Bison program. Perhaps YACC/Bison isn't"
echo "installed? Please install! Or check why:"
echo ""
echo " $YACC yacctest.y"
echo ""
echo "doesn't work!"
echo ""
exit
fi
rm -f yacctest.y y.tab.c
LEX=""
AM_PROG_LEX
if test "X$LEX" = "X"
then
echo "This packages needs lex or flex! Please install!"
exit
fi
rm -f noteeditlextest.l noteeditlextest.c noteeditlextest
cat >noteeditlextest.l << EOF
%%
a return 2;
%%
int yywrap() {return 1;}
main() {
int a = yylineno;
}
EOF
$LEX -t noteeditlextest.l > noteeditlextest.c
if test $? -ne 0
then
echo ""
echo "ERROR: Lex does not work! Perhaps (f)lex isn't installed!"
echo "Please install or find out why why"
echo ""
echo " $MYLEX -t noteeditlextest.l"
echo ""
echo "doesn't work!"
exit
fi
${CC} -o noteeditlextest noteeditlextest.c 2>/dev/null > /dev/null
if test $? -ne 0
then
$LEX -l -t noteeditlextest.l > noteeditlextest.c
if test $? -ne 0
then
echo ""
echo "ERROR: Lex does not work! Please find out why"
echo ""
echo " $MYLEX -l -t noteeditlextest.l"
echo ""
echo "doesn't work!"
exit
fi
${CC} -o noteeditlextest noteeditlextest.c 2>/dev/null > /dev/null
if test $? -ne 0
then
echo ""
echo "ERROR: Lex does not work! Please find out why"
echo ""
echo " $MYLEX -l -t noteeditlextest.l >noteeditlextest.c"
echo " cc -o noteeditlextest noteeditlextest.c"
echo ""
echo "doesn't work!"
exit
fi
LEX="$LEX -l"
fi
rm -f noteeditlextest.l noteeditlextest.c noteeditlextest
if test "$with_libs" = "no" -o "$with_libkmid" = "yes"
then
libtse3requ="no"
fi
printingreq="yes"
if test "X$with_printing" = "Xno"
then
printingreq="no"
fi
if test "X$with_libtse3_include" = "X"
then
with_libtse3_include=$stdincdirs
fi
if test "X$with_libtse3_libs" = "X"
then
with_libtse3_libs=$stdlibdirs
fi
if test "$libtse3requ" = "yes"
then
FIND_PACKAGE(libtse3, tse3, tse3/TSE3.h, $with_libtse3_libs, $with_libtse3_include)
if test "X$lib_libtse3" = "X" -o "X$inc_libtse3" = "X"
then
echo ""
echo "libtse3 not found! Please install!"
echo "If you have installed libtse3 in an unusual directory"
echo "use \"--with-libtse3-include=\" and/or \"--with-libtse3-libs=\""
echo ""
echo "There are options to bypass libtse3! But this causes some"
echo "restrictions; see README"
echo ""
exit
fi
cat >tse3vtest.cc << EOF
#include <iostream>
#include <tse3/TSE3.h>
int main() {
std::cout << TSE3::TSE3_Version() << std::endl;
return 0;
}
EOF
${CXX} -W -Wall -ansi -pedantic -g tse3vtest.cc -I$inc_libtse3 -I$kde_includes -L$lib_libtse3 \
-Wl,-rpath $lib_libtse3 -ltse3 -L$kde_libraries -Wl,-rpath $kde_libraries -lpthread -o tse3vtest 2>/dev/null > /dev/null
if test $? -ne 0
then
echo ""
echo " ERROR: TSE3 found but unable to link a simple TSE3 example!"
echo " Please see example file \"tse3vtest.cc\" and try to find out"
echo " why it doesn't compile using the following command:"
echo " ${CXX} -W -Wall -ansi -pedantic -g tse3vtest.cc -I$inc_libtse3 -I$kde_includes -L$lib_libtse3 -Wl,-rpath $lib_libtse3 -ltse3 -L$kde_libraries -Wl,-rpath $kde_libraries -lpthread -o tse3vtest"
echo ""
exit
fi
changequote(<<, >>)dnl
VERS=`./tse3vtest`
changequote([, ])dnl
tse_maj=`echo $VERS | sed -e 's/^\(.*\)\..*\..*$/\1/'`
tse_mid=`echo $VERS | sed -e 's/^.*\.\(.*\)\..*$/\1/'`
tse_min=`echo $VERS | sed -e 's/^.*\..*\.\(.*\)$/\1/'`
if test "X$VERS" = "X"
then
echo " ERROR: TSE3 found but unable to run a simple TSE3 example!"
echo " Please see example file \"tse3vtest.cc\" and try to find out"
echo " why it doesn't run, compiled with:"
echo " ${CXX} -W -Wall -ansi -pedantic -g tse3vtest.cc -I$inc_libtse3 -I$kde_includes -L$lib_libtse3 -Wl,-rpath $lib_libtse3 -ltse3 -L$kde_libraries -Wl,-rpath $kde_libraries -lpthread -o tse3vtest"
exit
fi
if test "$tse_maj" -eq 0 -a "$tse_mid" -eq 2 -a "$tse_min" -lt 3
then
echo ""
echo " Excuse: NoteEdit cannot deal with tse3-0.2.$tse_min Please use"
echo " tse-0.2.3 or later"
echo " See http://TSE3.sourceforge.net for downloading newer versions of TSE3"
echo ""
rm -f tse3vtest tse3vtest.cc
exit
fi
if test "$tse_mid" -lt 2
then
echo ""
echo " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
echo " I found tse3-$tse_maj.$tse_mid.$tse_min"
echo " It works. But you should think about update. Probably future versions"
echo " of NoteEdit will require tse3-0.2.x"
echo " See http://TSE3.sourceforge.net for downloading newer versions of TSE3"
echo " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
echo ""
fi
if test "$tse_maj" -lt 0 -o "$tse_mid" -lt 1 -o \( "$tse_mid" -lt 2 -a "$tse_min" -lt 2 \)
then
echo ""
echo " ERROR: TSE3 $VERS found but this version of \"noteedit\" needs >= TSE3-0.1.2"
echo " or later. But NOT tse3-0.2.0!!!"
echo " See http://TSE3.sourceforge.net for downloading newer versions of TSE3"
echo ""
rm -f tse3vtest tse3vtest.cc
exit
fi
rm -f tse3vtest tse3vtest.cc
TSE3INCLUDE="-I$inc_libtse3"
TSE3LIBS="-L$lib_libtse3 -ltse3"
if test "$tse_mid" -gt 1
then
AC_DEFINE(TSE3_MID_VERSION_NR, 2, [the middle version number of TSE3])
else
AC_DEFINE(TSE3_MID_VERSION_NR, 1, [the middle version number of TSE3])
fi
if test "$with_arts" != "no"
then
echo -n "checking for TSE3 with aRts ..."
if test "$tse_mid" -gt 1
then
cat >tse3vtest2.cc << EOF
#include <tse3/plt/Factory.h>
#include <tse3/plt/Arts.h>
int main() {
TSE3::MidiSchedulerFactory theFactory_;
TSE3::MidiScheduler *theScheduler_;
TSE3::Plt::UnixMidiSchedulerFactory::setPreferredPlatform(TSE3::Plt::UnixMidiSchedulerFactory::UnixPlatform_Alsa);
theScheduler_ = theFactory_.createScheduler();
return 0;
}
EOF
else
cat >tse3vtest2.cc << EOF
#include <tse3/plt/Arts.h>
int main() {
TSE3::Plt::ArtsMidiSchedulerFactory theARtsFactory_;
TSE3::MidiScheduler *theScheduler_;
theScheduler_ = theARtsFactory_.createScheduler();
return 0;
}
EOF
fi
${CXX} -W -Wall -ansi -pedantic -g tse3vtest2.cc -I$inc_libtse3 -I$kde_includes -L$lib_libtse3 \
-Wl,-rpath $lib_libtse3 -ltse3 -L$kde_libraries -Wl,-rpath $kde_libraries -lpthread -o tse3vtest2 2>/dev/null > /dev/null
if test $? -ne 0
then
echo " no"
echo "${CXX} -W -Wall -ansi -pedantic -g tse3vtest2.cc -I$inc_libtse3 -I$kde_includes -L$lib_libtse3 \
-Wl,-rpath $lib_libtse3 -ltse3 -L$kde_libraries -Wl,-rpath $kde_libraries -lpthread -o tse3vtest2"
else
echo " yes"
AC_DEFINE(TSE3_HAS_ARTS, 1, [Define if TSE3 has an aRts MIDI scheduler])
fi
fi
rm -f tse3vtest tse3vtest.cc
fi
if test "$with_libs" = "no"
then
echo ""
echo "This produces the version without any library. Please note:"
echo " This causes some restrictions; see README"
echo ""
fi
if test "$with_libkmid" = "yes"
then
if test "X$with_libkmid_include" = "X"
then
with_libkmid_include=$stdincdirs
fi
if test "X$with_libkmid_libs" = "X"
then
with_libkmid_libs=$stdlibdirs
fi
AC_DEFINE(WITH_LIBKMID, 1, [Define if you want to use libkmid instead of libtse3])
FIND_PACKAGE(libkmid, kmid, libkmid/libkmid.h, $with_libkmid_libs, $with_libkmid_include)
if test "X$lib_libkmid" = "X" -o "X$inc_libkmid" = "X"
then
echo ""
echo "libkmid not found! Please install!"
echo "There are options to bypass all libs! But this causes some"
echo "restrictions; see README"
echo ""
exit
fi
echo ""
echo "This produces the version with libkmid. Please note:"
echo " This causes some restrictions; see README"
echo ""
KMIDINCLUDE="-I$inc_libkmid"
KMIDLIBS="-L$lib_libkmid -lkmid"
fi
if test "$printingreq" = "yes"
then
AC_DEFINE(WITH_DIRECT_PRINTING, 1, [enable print preview and printing support])
fi
if test "$libtse3requ" = "yes"
then
AC_DEFINE(WITH_TSE3, 1, [Define if libtse3 present])
fi
if test "$with_oldlily" = "yes"
then
AC_DEFINE(WITH_OLDLILY, 1, [Define if old lily present])
fi
if test $with_anthem
then
if test "X$lib_libtse3" = "X" -o "X$inc_libtse3" = "X"
then
echo "Anthem plugin requires TSE3 library!"
exit
fi
if test ! \( -f $with_anthem/anthem/phraseeditors/PhraseEditor.h \)
then
echo "File $with_anthem/anthem/phraseeditors/PhraseEditor.h"
echo does not exist!
exit
fi
AC_DEFINE(ANTHEM_PLUGIN, 1, [Define if old lily present])
ANTHEMINCLUDE=-I$with_anthem
fi
if test "$kde_qtver" = "3"
then
echo "cp noteedit/lyrics.ui.qt3 noteedit/lyrics.ui"
cp noteedit/lyrics.ui.qt3 noteedit/lyrics.ui
echo "cp kguitar_excerpt/fingerlist.h.qt3 kguitar_excerpt/fingerlist.h"
cp kguitar_excerpt/fingerlist.h.qt3 kguitar_excerpt/fingerlist.h
else
echo "cp noteedit/lyrics.ui.qt2 noteedit/lyrics.ui"
cp noteedit/lyrics.ui.qt2 noteedit/lyrics.ui
echo "cp kguitar_excerpt/fingerlist.h.qt2 kguitar_excerpt/fingerlist.h"
cp kguitar_excerpt/fingerlist.h.qt2 kguitar_excerpt/fingerlist.h
fi
LEX_PREFIX="NEDIT"
LEX_RESTART="${LEX_PREFIX}restart"
LEX_LINENO="${LEX_PREFIX}lineno"
YACC_PARSE="${LEX_PREFIX}parse"
YACC_LVAL="${LEX_PREFIX}lval"
if test "X$kde_use_final" != "Xno"
then
SPECIAL_FLAGS_FOR_FINAL="\$(PREFIX_DEF) \$(USE_EXCEPTIONS)"
else
SPECIAL_FLAGS_FOR_FINAL=""
fi
dnl PACKAGE set before
AC_SUBST(SPECIAL_FLAGS_FOR_FINAL)
AC_SUBST(LEX)
AC_SUBST(YACC)
AC_SUBST(LEX_PREFIX)
AC_SUBST(LEX_RESTART)
AC_SUBST(LEX_LINENO)
AC_SUBST(YACC_PARSE)
AC_SUBST(YACC_LVAL)
AC_SUBST(ANTHEMINCLUDE)
AC_SUBST(TSE3INCLUDE)
AC_SUBST(TSE3LIBS)
AC_SUBST(KMIDINCLUDE)
AC_SUBST(KMIDLIBS)
KDE_CREATE_SUBDIRSLIST
AC_CONFIG_FILES([ Makefile ])
AC_CONFIG_FILES([ doc/Makefile ])
AC_CONFIG_FILES([ doc/de/Makefile ])
AC_CONFIG_FILES([ doc/noteedit/Makefile ])
AC_CONFIG_FILES([ kguitar_excerpt/Makefile ])
AC_CONFIG_FILES([ noteedit/Makefile ])
AC_CONFIG_FILES([ noteedit/icons/Makefile ])
AC_CONFIG_FILES([ noteedit/resources/Makefile ])
AC_CONFIG_FILES([ po/Makefile ])
AC_OUTPUT
if test "$all_tests" = "bad"; then
if test ! "$cache_file" = "/dev/null"; then
echo ""
echo "Please remove the file $cache_file after changing your setup"
echo "so that configure will find the changes next time."
echo ""
fi
else
echo ""
echo "Good - your configure finished. Start make now"
echo ""
fi
Les lignes que le patch modifie :
--- configure.in.orig 2011-08-05 11:30:49.963095223 +0000
+++ configure.in 2011-08-05 11:40:31.753781071 +0000
@@ -332,10 +332,10 @@
fi
cat >tse3vtest.cc << EOF
-#include <istream.h>
+#include <iostream>
#include <tse3/TSE3.h>
int main() {
- cout << TSE3::TSE3_Version() << endl;
+ std::cout << TSE3::TSE3_Version() << std::endl;
return 0;
}
EOF
configure.in.in :
#MIN_CONFIG(3.0.0)
stdlibdirs="/usr/lib /usr/local/lib /usr/X11/lib /usr/X11R6/lib"
stdincdirs="/usr/include /usr/local/include /usr/X11/include /usr/X11R6/lib"
dnl
dnl FIND_PACKAGE(<name>, <libname>, <includename>,<libdirs>,<incldirs>)
dnl
AC_DEFUN(FIND_PACKAGE,[
echo -n "checking $1... "
for dir in $4
do
if test -f $dir/lib$2.so || test -f $dir/lib$2.a
then
lib_$1=$dir
break
fi
done
for dir in $5
do
if test -f $dir/$3
then
inc_$1=$dir
break
fi
done
echo "libs in $lib_$1; includes in $inc_$1"
])
dnl
dnl AC_NEW_ARG(<arg-name>)
dnl
AC_DEFUN(AC_NEW_ARG,[
AC_ARG_WITH($1-include,[ --with-$1-include=DIR $1 headers in DIR])
AC_ARG_WITH($1-libs,[ --with-$1-libs=DIR $1 libraries in DIR])
])
libtse3requ="yes"
AC_ARG_WITH(libtse3,[ --with-libtse3 (default) the new library by Pete Goodliffe <pete.goodliffe@pace.co.uk>)])
AC_NEW_ARG(libtse3)
AC_ARG_WITH(libkmid,[ --with-libkmid use libkmid instead of libtse3 (not all features available, see README)])
AC_NEW_ARG(libkmid)
AC_ARG_WITH(libs,[ --without-libs without any library (cause machine depencies, not all features available, see README)])
AC_ARG_WITH(oldlily,[ --with-oldlily use LilyPond 1.2.17 syntax to export])
AC_ARG_WITH(anthem,[ --with-anthem=DIR produce Anthem plugin, DIR=Athem source directory])
AC_ARG_WITH(fadein,[ --without-fadein say \"--without-fadein\" if (de)crescendo gives unexpected results])
AC_ARG_WITH(arts,[ --without-arts say \"--without-arts\" if you never want to create an aRts scheduler])
AC_ARG_WITH(printing,[ --without-printing say \"--without-printing\" for disabling print preview and printing support])
if test "X$USE_EXCEPTIONS" = "X"
then
echo ""
echo "########################################################"
echo "# Your compiler does not support \"-fexceptions\" option #"
echo "# This will probably cause problems during compilation #"
echo "# of \"midimapper.cpp\" file. #"
echo "########################################################"
echo ""
fi
echo -n "Testing compiler version ... "
rm -f compvers.cc compvers.o compvers
cat >compvers.cc << EOF
#include <stdio.h>
main() {
char *v = __VERSION__;
printf("%c", *v);
}
EOF
${CXX} compvers.cc -o compvers
if test $? -ne 0
then
echo "Cannot compile a simple C++ program! See compvers.cc"
exit
fi
ccversion=`./compvers`
if test $? -ne 0
then
echo "Cannot run a simple C++ program! See compvers.cc"
exit
fi
echo "$ccversion"
${CXX} compvers.cc -o compvers
if test "X$ccversion" = "X2"
then
AC_DEFINE(GCC_MAJ_VERS, 2, [main version number of gcc])
rm -f compvers.cc compvers.o compvers
elif test "X$ccversion" = "X3"
then
AC_DEFINE(GCC_MAJ_VERS, 3, [main version number of gcc])
rm -f compvers.cc compvers.o compvers
elif test "X$ccversion" = "X4"
then
AC_DEFINE(GCC_MAJ_VERS, 4, [main version number of gcc])
rm -f compvers.cc compvers.o compvers
else
echo ""
echo "Cannot determine g++ version"
echo "Check your compiler installation or"
echo "try to find out why \"./compvers\" doesn't"
echo "supply \"2\", \"3\" or \"4\"!"
echo ""
exit
fi
rm -f kde_qttest.cpp
cat >kde_qttest.cpp << EOF
#include <kapp.h>
#include <qglobal.h>
#if KDE_VERSION >= 290
#if QT_VERSION < 300
#error "you cannot use KDE3 together with QT < 3! Please check QTDIR environment variable or use configure --with-qt-dir="
#endif
#else
#if QT_VERSION >= 300
#error "you cannot use KDE2 together with QT >= 3! Please check QTDIR environment variable or use configure --with-qt-dir="
#endif
#endif
EOF
${CXX} -c kde_qttest.cpp -I$qt_includes -I$kde_includes
if test $? -ne 0
then
echo ""
echo "There seems to be a KDE <--> Qt version conflict."
echo "Please check the configure parameters. Set the"
echo "enviroment variable QTDIR or use the configure option"
echo "\"--with-qt-libs=\" and \"--with-qt-libs-includes\""
echo ""
echo "Note further: If you have different KDE/Qt versions make"
echo "sure the PATH variable only references the KDE/Qt version"
echo "you wish to use for NoteEdit!"
echo ""
rm -f kde_qttest.cpp
exit
fi
rm -f kde_qttest.cpp
if test "X$with_fadein" != "Xno"
then
AC_DEFINE(WITH_FADE_IN, 1, [disable fade in/out for (de)cresendo])
fi
AC_PROG_YACC
YACC="$YACC -d"
rm -f yacctest.y y.tab.c
cat >yacctest.y << EOF
%token Y_A
%%
start: Y_A
;
%%
EOF
$YACC yacctest.y 2>/dev/null > /dev/null
if test $? -ne 0
then
echo ""
echo "Cannot run a simple YACC/Bison program. Perhaps YACC/Bison isn't"
echo "installed? Please install! Or check why:"
echo ""
echo " $YACC yacctest.y"
echo ""
echo "doesn't work!"
echo ""
exit
fi
rm -f yacctest.y y.tab.c
LEX=""
AM_PROG_LEX
if test "X$LEX" = "X"
then
echo "This packages needs lex or flex! Please install!"
exit
fi
rm -f noteeditlextest.l noteeditlextest.c noteeditlextest
cat >noteeditlextest.l << EOF
%%
a return 2;
%%
int yywrap() {return 1;}
main() {
int a = yylineno;
}
EOF
$LEX -t noteeditlextest.l > noteeditlextest.c
if test $? -ne 0
then
echo ""
echo "ERROR: Lex does not work! Perhaps (f)lex isn't installed!"
echo "Please install or find out why why"
echo ""
echo " $MYLEX -t noteeditlextest.l"
echo ""
echo "doesn't work!"
exit
fi
${CC} -o noteeditlextest noteeditlextest.c 2>/dev/null > /dev/null
if test $? -ne 0
then
$LEX -l -t noteeditlextest.l > noteeditlextest.c
if test $? -ne 0
then
echo ""
echo "ERROR: Lex does not work! Please find out why"
echo ""
echo " $MYLEX -l -t noteeditlextest.l"
echo ""
echo "doesn't work!"
exit
fi
${CC} -o noteeditlextest noteeditlextest.c 2>/dev/null > /dev/null
if test $? -ne 0
then
echo ""
echo "ERROR: Lex does not work! Please find out why"
echo ""
echo " $MYLEX -l -t noteeditlextest.l >noteeditlextest.c"
echo " cc -o noteeditlextest noteeditlextest.c"
echo ""
echo "doesn't work!"
exit
fi
LEX="$LEX -l"
fi
rm -f noteeditlextest.l noteeditlextest.c noteeditlextest
if test "$with_libs" = "no" -o "$with_libkmid" = "yes"
then
libtse3requ="no"
fi
printingreq="yes"
if test "X$with_printing" = "Xno"
then
printingreq="no"
fi
if test "X$with_libtse3_include" = "X"
then
with_libtse3_include=$stdincdirs
fi
if test "X$with_libtse3_libs" = "X"
then
with_libtse3_libs=$stdlibdirs
fi
if test "$libtse3requ" = "yes"
then
FIND_PACKAGE(libtse3, tse3, tse3/TSE3.h, $with_libtse3_libs, $with_libtse3_include)
if test "X$lib_libtse3" = "X" -o "X$inc_libtse3" = "X"
then
echo ""
echo "libtse3 not found! Please install!"
echo "If you have installed libtse3 in an unusual directory"
echo "use \"--with-libtse3-include=\" and/or \"--with-libtse3-libs=\""
echo ""
echo "There are options to bypass libtse3! But this causes some"
echo "restrictions; see README"
echo ""
exit
fi
cat >tse3vtest.cc << EOF
#include <iostream>
#include <tse3/TSE3.h>
int main() {
std::cout << TSE3::TSE3_Version() << std::endl;
return 0;
}
EOF
${CXX} -W -Wall -ansi -pedantic -g tse3vtest.cc -I$inc_libtse3 -I$kde_includes -L$lib_libtse3 \
-Wl,-rpath $lib_libtse3 -ltse3 -L$kde_libraries -Wl,-rpath $kde_libraries -lpthread -o tse3vtest 2>/dev/null > /dev/null
if test $? -ne 0
then
echo ""
echo " ERROR: TSE3 found but unable to link a simple TSE3 example!"
echo " Please see example file \"tse3vtest.cc\" and try to find out"
echo " why it doesn't compile using the following command:"
echo " ${CXX} -W -Wall -ansi -pedantic -g tse3vtest.cc -I$inc_libtse3 -I$kde_includes -L$lib_libtse3 -Wl,-rpath $lib_libtse3 -ltse3 -L$kde_libraries -Wl,-rpath $kde_libraries -lpthread -o tse3vtest"
echo ""
exit
fi
changequote(<<, >>)dnl
VERS=`./tse3vtest`
changequote([, ])dnl
tse_maj=`echo $VERS | sed -e 's/^\(.*\)\..*\..*$/\1/'`
tse_mid=`echo $VERS | sed -e 's/^.*\.\(.*\)\..*$/\1/'`
tse_min=`echo $VERS | sed -e 's/^.*\..*\.\(.*\)$/\1/'`
if test "X$VERS" = "X"
then
echo " ERROR: TSE3 found but unable to run a simple TSE3 example!"
echo " Please see example file \"tse3vtest.cc\" and try to find out"
echo " why it doesn't run, compiled with:"
echo " ${CXX} -W -Wall -ansi -pedantic -g tse3vtest.cc -I$inc_libtse3 -I$kde_includes -L$lib_libtse3 -Wl,-rpath $lib_libtse3 -ltse3 -L$kde_libraries -Wl,-rpath $kde_libraries -lpthread -o tse3vtest"
exit
fi
if test "$tse_maj" -eq 0 -a "$tse_mid" -eq 2 -a "$tse_min" -lt 3
then
echo ""
echo " Excuse: NoteEdit cannot deal with tse3-0.2.$tse_min Please use"
echo " tse-0.2.3 or later"
echo " See http://TSE3.sourceforge.net for downloading newer versions of TSE3"
echo ""
rm -f tse3vtest tse3vtest.cc
exit
fi
if test "$tse_mid" -lt 2
then
echo ""
echo " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
echo " I found tse3-$tse_maj.$tse_mid.$tse_min"
echo " It works. But you should think about update. Probably future versions"
echo " of NoteEdit will require tse3-0.2.x"
echo " See http://TSE3.sourceforge.net for downloading newer versions of TSE3"
echo " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
echo ""
fi
if test "$tse_maj" -lt 0 -o "$tse_mid" -lt 1 -o \( "$tse_mid" -lt 2 -a "$tse_min" -lt 2 \)
then
echo ""
echo " ERROR: TSE3 $VERS found but this version of \"noteedit\" needs >= TSE3-0.1.2"
echo " or later. But NOT tse3-0.2.0!!!"
echo " See http://TSE3.sourceforge.net for downloading newer versions of TSE3"
echo ""
rm -f tse3vtest tse3vtest.cc
exit
fi
rm -f tse3vtest tse3vtest.cc
TSE3INCLUDE="-I$inc_libtse3"
TSE3LIBS="-L$lib_libtse3 -ltse3"
if test "$tse_mid" -gt 1
then
AC_DEFINE(TSE3_MID_VERSION_NR, 2, [the middle version number of TSE3])
else
AC_DEFINE(TSE3_MID_VERSION_NR, 1, [the middle version number of TSE3])
fi
if test "$with_arts" != "no"
then
echo -n "checking for TSE3 with aRts ..."
if test "$tse_mid" -gt 1
then
cat >tse3vtest2.cc << EOF
#include <tse3/plt/Factory.h>
#include <tse3/plt/Arts.h>
int main() {
TSE3::MidiSchedulerFactory theFactory_;
TSE3::MidiScheduler *theScheduler_;
TSE3::Plt::UnixMidiSchedulerFactory::setPreferredPlatform(TSE3::Plt::UnixMidiSchedulerFactory::UnixPlatform_Alsa);
theScheduler_ = theFactory_.createScheduler();
return 0;
}
EOF
else
cat >tse3vtest2.cc << EOF
#include <tse3/plt/Arts.h>
int main() {
TSE3::Plt::ArtsMidiSchedulerFactory theARtsFactory_;
TSE3::MidiScheduler *theScheduler_;
theScheduler_ = theARtsFactory_.createScheduler();
return 0;
}
EOF
fi
${CXX} -W -Wall -ansi -pedantic -g tse3vtest2.cc -I$inc_libtse3 -I$kde_includes -L$lib_libtse3 \
-Wl,-rpath $lib_libtse3 -ltse3 -L$kde_libraries -Wl,-rpath $kde_libraries -lpthread -o tse3vtest2 2>/dev/null > /dev/null
if test $? -ne 0
then
echo " no"
echo "${CXX} -W -Wall -ansi -pedantic -g tse3vtest2.cc -I$inc_libtse3 -I$kde_includes -L$lib_libtse3 \
-Wl,-rpath $lib_libtse3 -ltse3 -L$kde_libraries -Wl,-rpath $kde_libraries -lpthread -o tse3vtest2"
else
echo " yes"
AC_DEFINE(TSE3_HAS_ARTS, 1, [Define if TSE3 has an aRts MIDI scheduler])
fi
fi
rm -f tse3vtest tse3vtest.cc
fi
if test "$with_libs" = "no"
then
echo ""
echo "This produces the version without any library. Please note:"
echo " This causes some restrictions; see README"
echo ""
fi
if test "$with_libkmid" = "yes"
then
if test "X$with_libkmid_include" = "X"
then
with_libkmid_include=$stdincdirs
fi
if test "X$with_libkmid_libs" = "X"
then
with_libkmid_libs=$stdlibdirs
fi
AC_DEFINE(WITH_LIBKMID, 1, [Define if you want to use libkmid instead of libtse3])
FIND_PACKAGE(libkmid, kmid, libkmid/libkmid.h, $with_libkmid_libs, $with_libkmid_include)
if test "X$lib_libkmid" = "X" -o "X$inc_libkmid" = "X"
then
echo ""
echo "libkmid not found! Please install!"
echo "There are options to bypass all libs! But this causes some"
echo "restrictions; see README"
echo ""
exit
fi
echo ""
echo "This produces the version with libkmid. Please note:"
echo " This causes some restrictions; see README"
echo ""
KMIDINCLUDE="-I$inc_libkmid"
KMIDLIBS="-L$lib_libkmid -lkmid"
fi
if test "$printingreq" = "yes"
then
AC_DEFINE(WITH_DIRECT_PRINTING, 1, [enable print preview and printing support])
fi
if test "$libtse3requ" = "yes"
then
AC_DEFINE(WITH_TSE3, 1, [Define if libtse3 present])
fi
if test "$with_oldlily" = "yes"
then
AC_DEFINE(WITH_OLDLILY, 1, [Define if old lily present])
fi
if test $with_anthem
then
if test "X$lib_libtse3" = "X" -o "X$inc_libtse3" = "X"
then
echo "Anthem plugin requires TSE3 library!"
exit
fi
if test ! \( -f $with_anthem/anthem/phraseeditors/PhraseEditor.h \)
then
echo "File $with_anthem/anthem/phraseeditors/PhraseEditor.h"
echo does not exist!
exit
fi
AC_DEFINE(ANTHEM_PLUGIN, 1, [Define if old lily present])
ANTHEMINCLUDE=-I$with_anthem
fi
if test "$kde_qtver" = "3"
then
echo "cp noteedit/lyrics.ui.qt3 noteedit/lyrics.ui"
cp noteedit/lyrics.ui.qt3 noteedit/lyrics.ui
echo "cp kguitar_excerpt/fingerlist.h.qt3 kguitar_excerpt/fingerlist.h"
cp kguitar_excerpt/fingerlist.h.qt3 kguitar_excerpt/fingerlist.h
else
echo "cp noteedit/lyrics.ui.qt2 noteedit/lyrics.ui"
cp noteedit/lyrics.ui.qt2 noteedit/lyrics.ui
echo "cp kguitar_excerpt/fingerlist.h.qt2 kguitar_excerpt/fingerlist.h"
cp kguitar_excerpt/fingerlist.h.qt2 kguitar_excerpt/fingerlist.h
fi
LEX_PREFIX="NEDIT"
LEX_RESTART="${LEX_PREFIX}restart"
LEX_LINENO="${LEX_PREFIX}lineno"
YACC_PARSE="${LEX_PREFIX}parse"
YACC_LVAL="${LEX_PREFIX}lval"
if test "X$kde_use_final" != "Xno"
then
SPECIAL_FLAGS_FOR_FINAL="\$(PREFIX_DEF) \$(USE_EXCEPTIONS)"
else
SPECIAL_FLAGS_FOR_FINAL=""
fi
AM_INIT_AUTOMAKE(noteedit, 2.8.1)
AC_SUBST(SPECIAL_FLAGS_FOR_FINAL)
AC_SUBST(LEX)
AC_SUBST(YACC)
AC_SUBST(LEX_PREFIX)
AC_SUBST(LEX_RESTART)
AC_SUBST(LEX_LINENO)
AC_SUBST(YACC_PARSE)
AC_SUBST(YACC_LVAL)
AC_SUBST(ANTHEMINCLUDE)
AC_SUBST(TSE3INCLUDE)
AC_SUBST(TSE3LIBS)
AC_SUBST(KMIDINCLUDE)
AC_SUBST(KMIDLIBS)
Le patch :
--- configure.in.in.orig 2011-08-05 18:42:07.481777005 +0000
+++ configure.in.in 2011-08-05 18:46:14.379673045 +0000
@@ -275,10 +275,10 @@
fi
cat >tse3vtest.cc << EOF
-#include <istream.h>
+#include <iostream>
#include <tse3/TSE3.h>
int main() {
- cout << TSE3::TSE3_Version() << endl;
+ std::cout << TSE3::TSE3_Version() << std::endl;
return 0;
}
EOF
Après, j'ai fait des patches sur le code (.cpp), qui corrigent cette même entrée avec " <iostream> " mais ils ne s'appliquent pas ! Il faut corriger cela partout pour que ça marche (c'est ce que je crois avoir compris des patches de SuSE). Si je fais fausse route, n'hésite pas à m'arrêter !!
Je crois qu'il y a une histoire d'encodage des caractères utf8 à inclure (encore un patch !!)
a appliquer sur mainframewidget.cpp ???? Si ce n'est pas ça, dites le moi, avant que je continue !!!
Chez SuSe c'est ce correctif :
Index: noteedit/mainframewidget.cpp
===================================================================
--- noteedit/mainframewidget.cpp.orig
+++ noteedit/mainframewidget.cpp
@@ -3893,6 +3893,7 @@ void NMainFrameWidget::exportABCImm() {
abcOpts.exprAbove = false;
abcOpts.scale = 75;
abcOpts.measNumInBox = false;
+ abcOpts.useUtf8Encoding = true;
exportDialog_->setABCOptions(abcOpts);
NABCExport abc;
QRegExp notSuff(".not$");
Merci pour ta patience avec moi !!!
Hors ligne
Tu peux tout à fait générer un RPM source sans que ton RPM compile :
rpmbuild -bs fichier.spec
Tu obitendras ainsi un beau fichier .src.rpm que tu pourras mettre à disposition. Accessoirement, c'est un prérequis demandé lorsqu'on poste des demandes d'aide dans cette section du forum. Ainsi on a tout sous la main : fichier .spec, sources et patches. Ce sera plus simple pour toi (plus besoin de poster des patchs) et pour nous (on reconstruit le RPM source sans peine).
« …elle excitait si puissamment le désir, que je devins alors très incrédule sur sa vertu. »
À propos de Fœdora, dans la Peau de Chagrin (Balzac)
Hors ligne
Génial,
T'aurais pu me dire cela plus tôt !!
Où est-ce que je peux poster cette archive ?
Hors ligne
Voila, pour rétablir les choses, telles qu'elles auraient dues être mises en oeuvres !
Toutes mes excuses pour mes erreurs de débutant !!
Résumé du test : Euh ? Et bien, le rpm n'est pas prêt d'être construit pour l' instant !! Damned !
Résumé de la description : a WYSIWYG music score editor
URL Spec : noteedit.spec
URL SRPM : noteedit-2.8.1-1.fc15.src.rpm
Description : NoteEdit is a music score editor that supports an unlimited number of staffs,
an unlimited length of staffs, up to 9 voices per staff, a MIDI playback of
written notes, a number of import and export filters to many formats like MIDI,
MusicXML, ABC Music, PMX, MusiXTeX and LilyPond and more!
Hors ligne
Après de très nombreux bricolages de mon spec et autant d'essais infructueux pour construire ce RPM, je ne vois pas ce que je peux faire de plus. Les patches issus du build service s'appliquent et corrigent les problèmes relatif au test tse3, mais ensuite d'autres erreurs surviennent, ...
Pourtant, il me parait étonnant que ce logiciel ait besoin d'autant de correctifs.
Je pensais naïvement que le script permettait d'adapter différentes options pour installer un paquet en évitant au maximum de modifier les sources !
Ceci est sans doute vrai pour un logiciel toujours en développement.
Si vous avez des idées ?
A bientôt !
Dernière modification par joyce-day (10/08/2011 01:45:54)
Hors ligne