[Kde-imaging] extragear/libs/kipi-plugins/rawconverter [POSSIBLY UNSAFE]

Gilles Caulier caulier.gilles at free.fr
Tue Oct 10 14:35:56 CEST 2006


SVN commit 594192 by cgilles:

kipi-plugins from trunk : RAW Converter : bye bye external dcraw depency :

Raw onverter plugin use a dedicaced dcraw binary program to run. This is mandatory since dcraw author have broken the command line options 
compatibility with the 8.x serie.

Also, dcraw is not available like a library!

The dcraw.c source code embeded in plugin is just a copy of official implementation, but this one have been completly tested with plugin. 

CCMAIL: kde-imaging at kde.org

 M  +24 -0     Makefile.am  
 A             dcraw.c   [POSSIBLY UNSAFE: scanf] [License: GENERATED FILE]
 M  +1 -1      dcrawbinary.cpp  
 M  +6 -3      dcrawiface.cpp  
 M  +15 -14    plugin_rawconverter.cpp  


--- trunk/extragear/libs/kipi-plugins/rawconverter/Makefile.am #594191:594192
@@ -1,3 +1,6 @@
+# Requires by dcraw.c implementation.
+KDE_OPTIONS = nofinal
+
 METASOURCES = AUTO
 SUBDIRS = profiles
 
@@ -31,3 +34,24 @@
 messages: rc.cpp
 	$(XGETTEXT) *.cpp *.h -o $(podir)/kipiplugin_rawconverter.pot
 
+#-- dcraw binary -------------------------------------------------
+
+# RawConverter plugin use a dedicaced dcraw binary program to run. This is mandatory 
+# since dcraw author have broken the command line options 
+# compatibility with the 8.x serie.
+# Also, dcraw is not available like a library.
+# The dcraw.c source code is just a copy of official implementation, but 
+# this one have been completly tested with this plugin. 
+# Note: dcraw project page is http://cybercom.net/~dcoffin
+
+bin_PROGRAMS = kipidcraw
+
+# This line is require to disable color management support (using LCMS library) witch 
+# is not yet supported by plugin.
+kipidcraw_CFLAGS = -DNO_LCMS -w 
+
+kipidcraw_SOURCES = dcraw.c
+
+kipidcraw_LDFLAGS = $(all_libraries) $(LIBJPEG) -lm
+
+
--- trunk/extragear/libs/kipi-plugins/rawconverter/dcrawbinary.cpp #594191:594192
@@ -93,7 +93,7 @@
 
 const char *DcrawBinary::path()
 {
-    return "dcraw";
+    return "kipidcraw";
 }
 
 bool DcrawBinary::isAvailable() const
--- trunk/extragear/libs/kipi-plugins/rawconverter/dcrawiface.cpp #594191:594192
@@ -149,7 +149,8 @@
     // -e : Extract the camera-generated thumbnail, not the raw image (JPEG or a PPM file).
     // Note : this code require at least dcraw version 8.x
 
-    command  = "dcraw -c -e ";
+    command  = DcrawBinary::path();
+    command += " -c -e ";
     command += QFile::encodeName( KProcess::quote( path ) );
     kdDebug( 51000 ) << "Running dcraw command " << command << endl;
 
@@ -194,7 +195,8 @@
     // -w : Use camera white balance, if possible
 
     f=NULL;
-    command  = "dcraw -c -h -w -a ";
+    command  = DcrawBinary::path();
+    command += " -c -h -w -a ";
     command += QFile::encodeName( KProcess::quote( path ) );
     kdDebug( 51000 ) << "Running dcraw command " << command << endl;
 
@@ -264,7 +266,8 @@
     // -c : write to stdout
     // -i : identify files without decoding them.
 
-    command  = "dcraw -c -i ";
+    command  = DcrawBinary::path();
+    command += " -c -i ";
     command += QFile::encodeName( KProcess::quote( path ) );
     kdDebug( 51000 ) << "Running dcraw command " << command << endl;
 
--- trunk/extragear/libs/kipi-plugins/rawconverter/plugin_rawconverter.cpp #594191:594192
@@ -131,13 +131,12 @@
     {
         KMessageBox::information(
                      kapp->activeWindow(),
-                     i18n("<qt><p>Unable to find the dcraw executable:<br> "
-                          "This program is required by this plugin to support raw file decoding. "
-                          "Please install dcraw as a package from your distributor "
-                          "or <a href=\"%1\">download the source</a>.</p>"
-                          "<p>Note: at least, dcraw version %2 is required by this plugin.</p></qt>")
-                          .arg("http://www.cybercom.net/~dcoffin/dcraw")
-                          .arg(dcrawBinary.minimalVersion()),
+                     i18n("<qt><p>Unable to find the <b>%1</b> executable:<br>"
+                          "This program is required by this plugin to support "
+                          "Raw files decoding. "
+                          "Please check %2 installation on your computer.</p></qt>")
+                          .arg(dcrawBinary.path())
+                          .arg(dcrawBinary.path()),
                      QString::null,
                      QString::null,
                      KMessageBox::Notify | KMessageBox::AllowLink);
@@ -148,15 +147,17 @@
     {
         KMessageBox::information(
                      kapp->activeWindow(),
-                     i18n("<qt><p>dcraw executable isn't up to date:<br> "
-                          "The version %1 of dcraw have been found on your computer. "
+                     i18n("<qt><p><b>%1</b> executable isn't up to date:<br>"
+                          "The version %2 of %3 have been found on your computer. "
                           "This version is too old to run properly with this plugin. "
-                          "Please update dcraw as a package from your distributor "
-                          "or <a href=\"%2\">download the source</a>.</p>"
-                          "<p>Note: at least, dcraw version %3 is required by this "
-                          "plugin</p></qt>")
+                          "Please check %4 installation on your computer.</p>"
+                          "<p>Note: at least, %5 version %6 is required by this "
+                          "plugin.</p></qt>")
+                          .arg(dcrawBinary.path())
                           .arg(dcrawVersion)
-                          .arg("http://www.cybercom.net/~dcoffin/dcraw")
+                          .arg(dcrawBinary.path())
+                          .arg(dcrawBinary.path())
+                          .arg(dcrawBinary.path())
                           .arg(dcrawBinary.minimalVersion()),
                      QString::null,
                      QString::null,


More information about the Kde-imaging mailing list