
Anymeal is a Linux recipe database software developed using MySQL and XML to maintain a cookbook. It can handle more than 100,000 recipes and allows to search, display and edit recipes. It is designed to be lean and flexible. Happy cooking!
AnyMeal has reached alpha-status. Now the focus is on stability and making out important features, which may be missing.
13 years ago
0.31:
MySQL 5.0 handles booleans in a different way which required a bugfix in AnyMeal (the bug was "SAXParseException: Invalid character (Unicode: 0x1)").
0.30:
The speed of the recipe-display was improved. A man-page was contributed by Sandro Tosi.
0.29-4:
Minor fixes: The configure-script was not generating the file docbookToFo.xsl. An include-statement was missing in the file destroyDialog.ui.
0.29-3:
Bugfix: Declaration and a definition in different namespaces (bug report by mmpm).
0.29-2:
A line with whitespace-characters in a Mealmaster recipe now will be correctly threated as an empty line.
0.29:
Leading whitespaces in recipe-instructions in Mealmaster files are skipped now.
Added experimental import of RecipeML-files.
13 years ago
0.31:
MySQL 5.0 handles booleans in a different way which required a bugfix in AnyMeal (the bug was "SAXParseException: Invalid character (Unicode: 0x1)").
0.30:
The speed of the recipe-display was improved. A man-page was contributed by Sandro Tosi.
0.29-4:
Minor fixes: The configure-script was not generating the file docbookToFo.xsl. An include-statement was missing in the file destroyDialog.ui.
0.29-3:
Bugfix: Declaration and a definition in different namespaces (bug report by mmpm).
0.29-2:
A line with whitespace-characters in a Mealmaster recipe now will be correctly threated as an empty line.
0.29:
Leading whitespaces in recipe-instructions in Mealmaster files are skipped now.
Added experimental import of RecipeML-files.

aixin
7 years ago
checking for Qt... configure: error: Qt (>= Qt 3.0 and < 4.0) (headers and libraries) not found. Please check your installation!
For more details about this problem, look at the end of config.log.
config.log reads:
configure: failed program was:
| /* confdefs.h. */
Any suggestions?
Report
mmpm
8 years ago
I tried to compile it and i get the following error:
Quote:make[2]: Entering directory `/_src/anymeal-0.31/src'
g++ -DHAVE_CONFIG_H -I. -I.. -I/usr/include/xercesc -I/usr/include/xalan -I/usr/include/xalanc -I/opt/kde3/include -I/usr/lib/qt3/include -I. -Wno-long-long -Wundef -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -O2 -Wformat-security -Wmissing-format-attribute -Wno-non-virtual-dtor -fno-exceptions -fno-check-new -fno-common -fexceptions -I/usr/include/xalanc -I/usr/include/xalan -Wno-long-long -Wundef -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -O2 -Wformat-security -Wmissing-format-attribute -Wno-non-virtual-dtor -fno-exceptions -fno-check-new -fno-common -fexceptions -MT mysqlDaemon.o -MD -MP -MF .deps/mysqlDaemon.Tpo -c -o mysqlDaemon.o mysqlDaemon.cpp
mysqlDaemon.cpp: In constructor ‘MySQLDaemon::MySQLDaemon(const std::string&, const std::string&)’:
mysqlDaemon.cpp:55: error: ‘strerror’ was not declared in this scope
mysqlDaemon.cpp: In static member function ‘static std::string MySQLDaemon::create(const std::string&, const std::string&)’:
mysqlDaemon.cpp:93: error: ‘popen’ was not declared in this scope
mysqlDaemon.cpp:97: error: ‘feof’ was not declared in this scope
mysqlDaemon.cpp:100: error: no matching function for call to ‘getline(char**, size_t*, FILE*&)’
make[2]: *** [mysqlDaemon.o] Error 1
make[2]: Leaving directory `/_src/anymeal-0.31/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/_src/anymeal-0.31'
make: *** [all] Error 2
I am now using OpenSuSE 11.2 - kde3 of course too
Are there any options to fix the error?
Report
wedesoft
8 years ago
Regarding your bug report: One just needs to include cstdio and cstring. I've added the include statements and I uploaded the modified source [1] (I will release it on Sourceforge later). Thanks for letting me know about the problem! Let me know if there are any more problems.
[1] http://www.wedesoft.de/downloads/anymeal-0.31-1.tar.bz2
Report
mmpm
8 years ago
Thank you very much, the fix has helped something.
Now, nevertheless, the compiler still hangs with:
Quote:n file included from ../xalanc/XPath/MutableNodeRefList.hpp:28,
from ../xalanc/XPath/XPathExecutionContext.hpp:45,
from ../xalanc/XPath/XObject.hpp:44,
from ../xalanc/XPath/Function.hpp:33,
from ../xalanc/XPath/XPathEnvSupport.hpp:32,
from /usr/include/xalanc/XPath/XPathEnvSupportDefault.hpp:25,
from xmlDocument.hpp:28,
from searchDialog.cc:42:
../xalanc/XPath/NodeRefList.hpp: In member function ‘void xalanc_1_11::NodeRefList::ensureAllocation(size_t)’:
../xalanc/XPath/NodeRefList.hpp:134: warning: enumeral and non-enumeral type in conditional expression
mv -f .deps/searchDialog.Tpo .deps/searchDialog.Po
/bin/sh ../libtool --silent --tag=CXX --mode=link g++ -Wno-long-long -Wundef -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -DNDEBUG -DNO_DEBUG -O2 -Wformat-security -Wmissing-format-attribute -Wno-non-virtual-dtor -fno-exceptions -fno-check-new -fno-common -fexceptions -R /opt/kde3/lib64 -R /opt/kde3/lib64 -R /usr/lib/qt3/lib64 -R /usr/lib64 -L/opt/kde3/lib64 -L/usr/lib/qt3/lib64 -L/usr/lib64 -o anymeal main.o categoryListItem.o chainedCompiler.o checkOverWrite.o compiler.o cookBook.o database.o error.o ingredientViewItem.o anymeal-mealMaster.o mealMasterCompiler.o mysqlDaemon.o mysqlDatabase.o mysqlNetwork.o mysqlSocket.o mysqlResultRow.o mysqlStatement.o mealMasterParseError.o mealMasterParseErrorHandler.o mealMasterStoreErroneousHandler.o object.o recipeListItem.o recoder.o timer.o unitMap.o utils.o xmlDocument.o xmlErrorHandler.o xmlNodeReferenceList.o xmlReference.o xslCompiler.o xsu.o xslParseErrorHandler.o anyMeal.o connectDialog.o databaseWizard.o destroyDialog.o importMealMasterDialog.o importRecipeMLDialog.o logWindow.o recipeDisplay.o recipeEditor.o recipeListDisplay.o searchDialog.o -lkwalletclient -lktexteditor -lkdeui -lxalan-c -lxerces-c -L/usr/lib64/mysql -lmysqlclient -lz -lcrypt -lnsl -lm -L/usr/lib -L/usr/lib64 -lssl -lcrypto -lrecode -lmagic
/usr/lib64/libxalan-c.so: undefined reference to `xalanc_1_11::XalanMsgContainer::getMessageCount()'
/usr/lib64/libxalan-c.so: undefined reference to `xalanc_1_11::XalanMsgContainer::getMessage(unsigned long)'
collect2: ld returned 1 exit status
make[2]: *** [anymeal] Error 1
make[2]: Leaving directory `/_src/anymeal-0.31-1/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/_src/anymeal-0.31-1'
make: *** [all] Error 2
If you need further information let me now.
Best regards.
PR
Report
wedesoft
8 years ago
make LDFLAGS='-lxalanMsg'
Report
mmpm
8 years ago
- Hower, i tried a start from console at the compile directory: now anymeal starts and it can be used as expected. (I am glad to be able to use my database directly again.)
Maybe you also have a solution for this strange start-behavior.
Report
wedesoft
8 years ago
If it still doesn't work you can run the following command to check whether pics/splash.jpg was installed:
find `kde-config --prefix`/share/apps/anymeal
It should list splash.jpg among other files. I think under openSuse 10.3 the complete filename would be:
/opt/kde3/share/apps/anymeal/pics/splash.jpg
Report
wedesoft
8 years ago
Report
mmpm
8 years ago
unfortunately i am not able to solve the problem with the startup. As usual i did my make-install from 'base'-compile-directory (as you told). The install-script copies all necessary files correct to the target directories. Nothing is missing.
I suppose it is a special SuSE problem (may be it depends on the kde-startscripts - they are often changed to let kde3 coexist with kde4.
Spontaneously i have no really good idea what to do.
Best regards
PR
Report
wedesoft
8 years ago
strace anymeal 2>&1 | grep splash.jpg
On my system (Kubuntu 8.04) at some point it reports success:
access("/usr/share/apps/anymeal/pics/splash.jpg", R_OK) = 0
Report
mmpm
8 years ago
Now i corrected my mistake - it works!! And with german translation again.
Report
wedesoft
8 years ago
Report
smileaf
11 years ago
Report
wedesoft
11 years ago
In the beginning I used unixODBC to be able to connect to any database, but providing a user-friendly setup is extremely hard (setting up MySQL/PostgreSQL/SQLite first and then unixODBC as well). Also unixODBC does not solve the problem of multiple SQL-dialects. Furthermore I encountered linking problems when trying to link with MySQL and unixODBC (where unixODBC does some dynamic linking as well).
I also considered to provide SQLite support. The problem with SQLite is, that it represents all data as strings resulting in a low performance. SQLite is only suitable for small databases. I decided to stick to a single database for the moment and I cannot base my application on SQLite exclusively.
I may consider providing backends for other databases in the future. The problem is that from the moment, I'm providing support for multiple
databases, I'll have to do much more testing. I'll reconsider after reaching Beta-status.
Report
bufalo73
11 years ago
Report
wedesoft
11 years ago
Well, I actually do have wrapper providing for doing the abstraction (except for the setup of the database and the embedded MySQL-server). I'm expecting problems and lots of work with different SQL-dialects and different setup procedures.
At the moment there are other urgent things to do:
finish RecipeML-import/export
printing of recipes
support pictures
porting to Qt4
I'm sorry, but right now I don't have time to add support for other databases.
It is on my wish list of desirable features though.
Report
pocm
11 years ago
I'm quites curious about the differences of this software to Krecipes. Does it bring anything new?
Cheers,
Paulo Matos
Report
wedesoft
11 years ago
Manage a large number of recipes (more than 100,000)
Fast Mealmaster-import allowing to store erroneous recipes in another file
Password management with kwallet
Running MySQL as embedded database is possible
Of course there are also some missing features. Why don't you just install both programs and try them out yourself (they're free anyway)? Let me know if you have some suggestions on how to improve the software.
Report
GreatBunzinni
11 years ago
Report
wedesoft
11 years ago
In the beginning I used unixODBC to be able to connect to any database, but providing a user-friendly setup is extremely hard. Also unixODBC does not solve the problem of multiple SQL-dialects.
I also considered to provide SQLite support. The problem with SQLite is, that it represents all data as strings resulting in a low performance. SQLite is more suitable for small databases.
I may consider providing backends for other databases in the future. The problem is that from the moment, I'm providing support for multiple databases, I'll have to do much more testing.
Report
mmpm
11 years ago
[...]
then mv -f ".deps/xmlNodeReferenceList.Tpo" ".deps/xmlNodeReferenceList.Po"; else rm -f ".deps/xmlNodeReferenceList.Tpo"; exit 1; fi
/usr/include/xalanc/XPath/NodeRefList.hpp: In member function ‘void xalanc_1_10::NodeRefList::ensureAllocation(size_t)’:
/usr/include/xalanc/XPath/NodeRefList.hpp:128: warning: enumeral and non-enumeral type in conditional expression
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/include/xercesc -I/usr/include/xalan -I/usr/include/xalanc -I/opt/kde3/include -I/usr/lib/qt3/include -I/usr/X11R6/include -Wno-long-long -Wundef -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -Wchar-subscripts -Wall -W -Wpointer-arith -O2 -Wformat-security -Wmissing-format-attribute -Wno-non-virtual-dtor -fno-exceptions -fno-check-new -fno-common -fexceptions -I/usr/include/xalanc -I/usr/include/xalan -Wno-long-long -Wundef -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -Wchar-subscripts -Wall -W -Wpointer-arith -O2 -Wformat-security -Wmissing-format-attribute -Wno-non-virtual-dtor -fno-exceptions -fno-check-new -fno-common -fexceptions -MT xmlReference.o -MD -MP -MF ".deps/xmlReference.Tpo" -c -o xmlReference.o xmlReference.cpp; \
then mv -f ".deps/xmlReference.Tpo" ".deps/xmlReference.Po"; else rm -f ".deps/xmlReference.Tpo"; exit 1; fi
../xalanc/XPath/NodeRefList.hpp: In member function ‘void xalanc_1_10::NodeRefList::ensureAllocation(size_t)’:
../xalanc/XPath/NodeRefList.hpp:128: warning: enumeral and non-enumeral type in conditional expression
xmlReference.cpp: At global scope:
xmlReference.cpp:35: error: specialization of ‘XMLReference XMLReference::selectNode(const std::string&) [with T = xalanc_1_10::XalanElement]’ in different namespace
xmlReference.cpp:35: error: from definition of ‘XMLReference XMLReference::selectNode(const std::string&) [with T = xalanc_1_10::XalanElement]’
xmlReference.cpp:84: error: specialization of ‘bool XMLReference::existNode(const std::string&) [with T = xalanc_1_10::XalanElement]’ in different namespace
xmlReference.cpp:84: error: from definition of ‘bool XMLReference::existNode(const std::string&) [with T = xalanc_1_10::XalanElement]’
make[2]: *** [xmlReference.o] Error 1
make[2]: Leaving directory `/_devel/anymeal-0.29/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/_devel/anymeal-0.29'
make: *** [all] Error 2
I tried several configure-options. The result is always the same.
Report
wedesoft
11 years ago
You simply need to remove the line namespace mimas { and the corresponding closing bracket at the end of the file src/xmlReference.cpp.
Sorry about that. The fix will be included in the next release (anymeal-0.29-3). Thanks for your bugreport.
--- xmlReference.cpp 28 Mar 2006 21:27:38 -0000 1.6
+++ xmlReference.cpp 3 Jun 2006 15:43:50 -0000
@@ -28,8 +28,6 @@
using namespace boost;
-namespace mimas {
-
template
XMLReference< XalanNode > XMLReference< XalanElement >::selectNode
( const std::string &xPath ) throw (Error,XMLException)
@@ -86,4 +84,3 @@
return selectNodes( xPath ).getLength() >= 1;
}
-};
Report
mmpm
11 years ago
Here are the messages:
rm -f databaseWizard.cc.temp ;\
if test "$ret" = 0; then echo '#include "databaseWizard.moc"' >> databaseWizard.cc; else rm -f databaseWizard.cc ; exit $ret ; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/include/xercesc -I/usr/include/xalan -I/usr/include/xalanc -I/opt/kde3/include -I/usr/lib/qt3/include -I/usr/X11R6/include -Wno-long-long -Wundef -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -Wchar-subscripts -Wall -W -Wpointer-arith -O2 -Wformat-security -Wmissing-format-attribute -Wno-non-virtual-dtor -fno-exceptions -fno-check-new -fno-common -fexceptions -I/usr/include/xalanc -I/usr/include/xalan -Wno-long-long -Wundef -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -Wchar-subscripts -Wall -W -Wpointer-arith -O2 -Wformat-security -Wmissing-format-attribute -Wno-non-virtual-dtor -fno-exceptions -fno-check-new -fno-common -fexceptions -MT databaseWizard.o -MD -MP -MF ".deps/databaseWizard.Tpo" -c -o databaseWizard.o databaseWizard.cc; \
then mv -f ".deps/databaseWizard.Tpo" ".deps/databaseWizard.Po"; else rm -f ".deps/databaseWizard.Tpo"; exit 1; fi
/usr/lib/qt3/bin/moc destroyDialog.h -o destroyDialog.moc
rm -f destroyDialog.cc
echo '#include ' > destroyDialog.cc
echo '#include ' >> destroyDialog.cc
/usr/lib/qt3/bin/uic -L /opt/kde3/lib/kde3/plugins/designer -nounload -tr tr2i18n -i destroyDialog.h ./destroyDialog.ui > destroyDialog.cc.temp ; ret=$?; \
/usr/bin/perl -pe "s,tr2i18n( \"\" ),QString::null,g" destroyDialog.cc.temp | /usr/bin/perl -pe "s,tr2i18n( \"\"\, \"\" ),QString::null,g" | /usr/bin/perl -pe "s,image([0-9][0-9]*)_data,img\$1_destroyDialog,g" | /usr/bin/perl -pe "s,: QWizard\(,: KWizard(,g" >> destroyDialog.cc ;\
rm -f destroyDialog.cc.temp ;\
if test "$ret" = 0; then echo '#include "destroyDialog.moc"' >> destroyDialog.cc; else rm -f destroyDialog.cc ; exit $ret ; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/include/xercesc -I/usr/include/xalan -I/usr/include/xalanc -I/opt/kde3/include -I/usr/lib/qt3/include -I/usr/X11R6/include -Wno-long-long -Wundef -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -Wchar-subscripts -Wall -W -Wpointer-arith -O2 -Wformat-security -Wmissing-format-attribute -Wno-non-virtual-dtor -fno-exceptions -fno-check-new -fno-common -fexceptions -I/usr/include/xalanc -I/usr/include/xalan -Wno-long-long -Wundef -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -Wchar-subscripts -Wall -W -Wpointer-arith -O2 -Wformat-security -Wmissing-format-attribute -Wno-non-virtual-dtor -fno-exceptions -fno-check-new -fno-common -fexceptions -MT destroyDialog.o -MD -MP -MF ".deps/destroyDialog.Tpo" -c -o destroyDialog.o destroyDialog.cc; \
then mv -f ".deps/destroyDialog.Tpo" ".deps/destroyDialog.Po"; else rm -f ".deps/destroyDialog.Tpo"; exit 1; fi
./destroyDialog.ui.h: In member function ‘virtual void DestroyDialog::init()’:
./destroyDialog.ui.h:13: error: ‘assert’ was not declared in this scope
make[2]: *** [destroyDialog.o] Error 1
make[2]: Leaving directory `/_devel/anymeal-0.29-3/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/_devel/anymeal-0.29-3'
make: *** [all] Error 2
schrulle:/_devel/anymeal-0.29-3 #
Report
wedesoft
11 years ago
You can also download the modified file for anymeal-0.29-3 here:
http://www.wedesoft.demon.co.uk/downloads/destroyDialog.ui
--- src/destroyDialog.ui 23 Mar 2006 23:49:51 -0000 1.8
+++ src/destroyDialog.ui 4 Jun 2006 11:59:18 -0000
@@ -433,7 +433,7 @@
- klocale.h
+ cassert
kfiledialog.h
destroyDialog.ui.h
Report
mmpm
11 years ago
Your program is very good! It is very very fast: I imported an mealmaster file within 17000 recipes within 5 minutes. Thats great.
Greetings
Report