anymeal
Database
Score 66%
Description:

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.
Last changelog:

12 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

6 years ago

Ubuntu Maverick will only instal v3.0 through Synaptic so I tried to compile from source. After hurdling some dependencies problems (installd xorg-dev) the following has stumped me:

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

7 years ago

First once: Many thanks that you continue the work on this software.

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

7 years ago

Well, to my disgrace I must admit that I haven't worked on it lately. Maybe I will try to do something with Qt4QtRuby and CouchDB some time but I won't promise.

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

7 years ago

Yes, unfortunately, there was a long time with no new release/adaption. (Hence, I have used a virtual machine (Debian 64bi)to use your software)

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

7 years ago

I'm not sure. I looked up the package contents of libXalan-c-110 at http://rpmseek.com/. Apparently there is an extra library in that package with the file name 'libxalanMsg.so.110'. Probably you need to link this as well. Please try to run make with this option

make LDFLAGS='-lxalanMsg'

Report

mmpm

7 years ago

Excellent! The compileprocess now runs through. - I did a make install and tried to start as normal user from kde-menu: i get the message: Could not load image "pics/splash.jpg". After clicking OK the start is exited. Next i used a console with the same result.

- 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

7 years ago

You need to run make install from the directory anymeal-0.31-1. If you run make install from the sub-directory anymeal-0.31-1/src, only part of the software will be installed.

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

7 years ago

I hope you managed to get the splash-screen installed. I released AnyMeal-0.31-2 with a modified configuration scripts which checks for libxalanMsg.so and links it if it exists.

Report

mmpm

7 years ago

Hi,

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

7 years ago

You could trace the system calls of AnyMeal and check where it expects the file splash.jpg:

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

7 years ago

I'm sorry, my own fault.- I did forget to reset the default permissionset on SuSE. Thank you for the commandline, the output shows: permission denied - immediately i knew, whats going wrong.

Now i corrected my mistake - it works!! And with german translation again.

Report

wedesoft

7 years ago

Ok, great. Thanks for your feedback. You helped me to fix two bugs!

Report

smileaf

10 years ago

Are there any planes to support other databases? such as Postgresql and sqlite?

Report

wedesoft

10 years ago

You probably already know, that unfortunately each database (MySQL, PostgreSQL, SQLite, ...) has a different SQL-dialect. Also the interface for setting up a database always is different.

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

10 years ago

Why don't you do a wrapper and call your own functions? I think you don't need all MySQL/PostgreSQL/SQLite/whatever functions. So you could wrap only the ones you use and make a "select_engine" function.

Report

wedesoft

10 years ago

Thanks for your feedback.
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

Hi,

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

I think that the distinguishing features of AnyMeal at the moment are:
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

10 years ago

Why not use a smaller, lighter, easier to manage database like sqlite instead of mysql?

Report

wedesoft

10 years ago

Unfortunately each database (MySQL, PostgreSQL, SQLite, ...) has a different SQL-dialect. Also the interface for setting up a database always is different.

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

I tried to compile the sources on OpenSuSE 10.1 Here are the error messages:

[...]

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 found a bug, which only is reported by your new version of the GCC compiler.
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

Thanks for fix. I tried compiling with your now version. The previous error is fixed but there is another one, which prevents finishing the make-procedure.

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

An include-statement has to be added to the file src/destroyDialog.ui to fix this bug. I hope the build goes through this time.

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

Thanks! Compile now goes on without any error.

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

12 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.

product-maker 36 74

File (click to download) Version Description Filetype Packagetype License Downloads Date Filesize OCS-Install DL
Details
version
0.31
updated Feb 28 2010
added Feb 27 2005
downloads today
0
page views today 2