[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [26418] trunk/blender/source/blender/imbuf /intern: Fix #20146:
Brecht Van Lommel
brecht at blender.org
Sat Jan 30 10:14:12 CET 2010
Revision: 26418
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=26418
Author: blendix
Date: 2010-01-30 10:14:12 +0100 (Sat, 30 Jan 2010)
Log Message:
-----------
Fix #20146:
* .tif not loading on newer linux distributions, wasn't looking for
libtiff version 4.
* fix dds being too verbose when testing if it can open an image file.
Modified Paths:
--------------
trunk/blender/source/blender/imbuf/intern/dds/dds_api.cpp
trunk/blender/source/blender/imbuf/intern/dynlibtiff.c
trunk/blender/source/blender/imbuf/intern/gen_dynlibtiff.py
Modified: trunk/blender/source/blender/imbuf/intern/dds/dds_api.cpp
===================================================================
--- trunk/blender/source/blender/imbuf/intern/dds/dds_api.cpp 2010-01-30 08:45:31 UTC (rev 26417)
+++ trunk/blender/source/blender/imbuf/intern/dds/dds_api.cpp 2010-01-30 09:14:12 UTC (rev 26418)
@@ -80,6 +80,10 @@
/* check if DDS is valid and supported */
if (!dds.isValid()) {
+ /* no need to print error here, just testing if it is a DDS */
+ if(flags & IB_test)
+ return (0);
+
printf("DDS: not valid; header follows\n");
dds.printInfo();
return(0);
Modified: trunk/blender/source/blender/imbuf/intern/dynlibtiff.c
===================================================================
--- trunk/blender/source/blender/imbuf/intern/dynlibtiff.c 2010-01-30 08:45:31 UTC (rev 26417)
+++ trunk/blender/source/blender/imbuf/intern/dynlibtiff.c 2010-01-30 09:14:12 UTC (rev 26418)
@@ -85,40 +85,58 @@
if (libtiff != NULL) return;
libtiff = PIL_dynlib_open("/usr/local/lib/libtiff.3.dylib");
if (libtiff != NULL) return;
+ libtiff = PIL_dynlib_open("/usr/local/lib/libtiff.4.dylib");
+ if (libtiff != NULL) return;
//inside the blender app package contents/resources
libtiff = PIL_dynlib_open("@executable_path/../resources/libtiff.dylib");
if (libtiff != NULL) return;
libtiff = PIL_dynlib_open("@executable_path/../resources/libtiff.3.dylib");
if (libtiff != NULL) return;
+ libtiff = PIL_dynlib_open("@executable_path/../resources/libtiff.4.dylib");
+ if (libtiff != NULL) return;
//inside the blender app package contents/frameworks
libtiff = PIL_dynlib_open("@executable_path/../frameworks/libtiff.dylib");
if (libtiff != NULL) return;
libtiff = PIL_dynlib_open("@executable_path/../frameworks/libtiff.3.dylib");
if (libtiff != NULL) return;
+ libtiff = PIL_dynlib_open("@executable_path/../frameworks/libtiff.4.dylib");
+ if (libtiff != NULL) return;
//along side the blender app package
libtiff = PIL_dynlib_open("@executable_path/../../../libtiff.dylib");
if (libtiff != NULL) return;
libtiff = PIL_dynlib_open("@executable_path/../../../libtiff.3.dylib");
if (libtiff != NULL) return;
+ libtiff = PIL_dynlib_open("@executable_path/../../../libtiff.4.dylib");
+ if (libtiff != NULL) return;
//inside the blender app package contents/MacOS
libtiff = PIL_dynlib_open("@executable_path/libtiff.dylib");
if (libtiff != NULL) return;
libtiff = PIL_dynlib_open("@executable_path/libtiff.3.dylib");
if (libtiff != NULL) return;
+ libtiff = PIL_dynlib_open("@executable_path/libtiff.4.dylib");
+ if (libtiff != NULL) return;
#else
libtiff = PIL_dynlib_open("libtiff.so");
if (libtiff != NULL) return;
libtiff = PIL_dynlib_open("libtiff.so.3");
if (libtiff != NULL) return;
+ libtiff = PIL_dynlib_open("libtiff.so.4");
+ if (libtiff != NULL) return;
libtiff = PIL_dynlib_open("libtiff.dll");
if (libtiff != NULL) return;
libtiff = PIL_dynlib_open("/usr/lib/libtiff.so");
if (libtiff != NULL) return;
libtiff = PIL_dynlib_open("/usr/lib/libtiff.so.3");
if (libtiff != NULL) return;
+ libtiff = PIL_dynlib_open("/usr/lib/libtiff.so.4");
+ if (libtiff != NULL) return;
#ifdef __x86_64__
+ libtiff = PIL_dynlib_open("/usr/lib64/libtiff.so");
+ if (libtiff != NULL) return;
libtiff = PIL_dynlib_open("/usr/lib64/libtiff.so.3");
if (libtiff != NULL) return;
+ libtiff = PIL_dynlib_open("/usr/lib64/libtiff.so.4");
+ if (libtiff != NULL) return;
#endif
libtiff = PIL_dynlib_open("/usr/local/lib/libtiff.so");
if (libtiff != NULL) return;
Modified: trunk/blender/source/blender/imbuf/intern/gen_dynlibtiff.py
===================================================================
--- trunk/blender/source/blender/imbuf/intern/gen_dynlibtiff.py 2010-01-30 08:45:31 UTC (rev 26417)
+++ trunk/blender/source/blender/imbuf/intern/gen_dynlibtiff.py 2010-01-30 09:14:12 UTC (rev 26418)
@@ -117,25 +117,71 @@
if (libtiff != NULL) return;
/* Try to find libtiff in a couple of standard places */
+#ifdef __APPLE__
+ /* OSX has version specific library */
+ //standard install location
+ libtiff = PIL_dynlib_open("/usr/local/lib/libtiff.dylib");
+ if (libtiff != NULL) return;
+ libtiff = PIL_dynlib_open("/usr/local/lib/libtiff.3.dylib");
+ if (libtiff != NULL) return;
+ libtiff = PIL_dynlib_open("/usr/local/lib/libtiff.4.dylib");
+ if (libtiff != NULL) return;
+ //inside the blender app package contents/resources
+ libtiff = PIL_dynlib_open("@executable_path/../resources/libtiff.dylib");
+ if (libtiff != NULL) return;
+ libtiff = PIL_dynlib_open("@executable_path/../resources/libtiff.3.dylib");
+ if (libtiff != NULL) return;
+ libtiff = PIL_dynlib_open("@executable_path/../resources/libtiff.4.dylib");
+ if (libtiff != NULL) return;
+ //inside the blender app package contents/frameworks
+ libtiff = PIL_dynlib_open("@executable_path/../frameworks/libtiff.dylib");
+ if (libtiff != NULL) return;
+ libtiff = PIL_dynlib_open("@executable_path/../frameworks/libtiff.3.dylib");
+ if (libtiff != NULL) return;
+ libtiff = PIL_dynlib_open("@executable_path/../frameworks/libtiff.4.dylib");
+ if (libtiff != NULL) return;
+ //along side the blender app package
+ libtiff = PIL_dynlib_open("@executable_path/../../../libtiff.dylib");
+ if (libtiff != NULL) return;
+ libtiff = PIL_dynlib_open("@executable_path/../../../libtiff.3.dylib");
+ if (libtiff != NULL) return;
+ libtiff = PIL_dynlib_open("@executable_path/../../../libtiff.4.dylib");
+ if (libtiff != NULL) return;
+ //inside the blender app package contents/MacOS
+ libtiff = PIL_dynlib_open("@executable_path/libtiff.dylib");
+ if (libtiff != NULL) return;
+ libtiff = PIL_dynlib_open("@executable_path/libtiff.3.dylib");
+ if (libtiff != NULL) return;
+ libtiff = PIL_dynlib_open("@executable_path/libtiff.4.dylib");
+ if (libtiff != NULL) return;
+#else
libtiff = PIL_dynlib_open("libtiff.so");
if (libtiff != NULL) return;
libtiff = PIL_dynlib_open("libtiff.so.3");
if (libtiff != NULL) return;
+ libtiff = PIL_dynlib_open("libtiff.so.4");
+ if (libtiff != NULL) return;
libtiff = PIL_dynlib_open("libtiff.dll");
if (libtiff != NULL) return;
libtiff = PIL_dynlib_open("/usr/lib/libtiff.so");
if (libtiff != NULL) return;
libtiff = PIL_dynlib_open("/usr/lib/libtiff.so.3");
if (libtiff != NULL) return;
- /* OSX has version specific library */
+ libtiff = PIL_dynlib_open("/usr/lib/libtiff.so.4");
+ if (libtiff != NULL) return;
#ifdef __x86_64__
+ libtiff = PIL_dynlib_open("/usr/lib64/libtiff.so");
+ if (libtiff != NULL) return;
libtiff = PIL_dynlib_open("/usr/lib64/libtiff.so.3");
if (libtiff != NULL) return;
+ libtiff = PIL_dynlib_open("/usr/lib64/libtiff.so.4");
+ if (libtiff != NULL) return;
#endif
libtiff = PIL_dynlib_open("/usr/local/lib/libtiff.so");
if (libtiff != NULL) return;
/* For solaris */
libtiff = PIL_dynlib_open("/usr/openwin/lib/libtiff.so");
+#endif
}
@@ -145,8 +191,11 @@
assert(libtiff != NULL);
symbol = PIL_dynlib_find_symbol(libtiff, name);
if (symbol == NULL) {
- printf("libtiff_findsymbol: error %s\\n",
- PIL_dynlib_get_error_as_string(libtiff));
+ char *err = PIL_dynlib_get_error_as_string(libtiff);
+
+ if (err) printf("libtiff_findsymbol: error %s\\n",err);
+ else printf("libtiff_findsymbol: error Unknown.\\n");
+
libtiff = NULL;
G.have_libtiff = (0);
return NULL;
More information about the Bf-blender-cvs
mailing list