[102716] trunk/dports/science/bob

ciserlohn at macports.org ciserlohn at macports.org
Thu Feb 7 06:29:10 PST 2013


Revision: 102716
          https://trac.macports.org/changeset/102716
Author:   ciserlohn at macports.org
Date:     2013-02-07 06:29:10 -0800 (Thu, 07 Feb 2013)
Log Message:
-----------
bob: add patches to cope with the ffmpeg-1.1.1 update (see #37833)

Modified Paths:
--------------
    trunk/dports/science/bob/Portfile

Added Paths:
-----------
    trunk/dports/science/bob/files/
    trunk/dports/science/bob/files/diff-disable-ffmpeg-gif-support.patch
    trunk/dports/science/bob/files/diff-fix-issue108-ffmpeg-1.1.x-compatibility.patch
    trunk/dports/science/bob/files/diff-fix-issue109-libsvm-bug.patch

Modified: trunk/dports/science/bob/Portfile
===================================================================
--- trunk/dports/science/bob/Portfile	2013-02-07 14:24:49 UTC (rev 102715)
+++ trunk/dports/science/bob/Portfile	2013-02-07 14:29:10 UTC (rev 102716)
@@ -28,6 +28,10 @@
 checksums           rmd160  70555bfd84d53c59950b4d049f238c4d651e7268 \
                     sha256  f756f3cb68d373966314a5e23a54dd538f204a6cf7e18cbc200d6ad98215681a  
 
+patchfiles          diff-fix-issue108-ffmpeg-1.1.x-compatibility.patch \
+                    diff-fix-issue109-libsvm-bug.patch \
+                    diff-disable-ffmpeg-gif-support.patch
+
 depends_lib         port:blitz \
     path:lib/libavcodec.dylib:ffmpeg \
     port:matio \

Added: trunk/dports/science/bob/files/diff-disable-ffmpeg-gif-support.patch
===================================================================
--- trunk/dports/science/bob/files/diff-disable-ffmpeg-gif-support.patch	                        (rev 0)
+++ trunk/dports/science/bob/files/diff-disable-ffmpeg-gif-support.patch	2013-02-07 14:29:10 UTC (rev 102716)
@@ -0,0 +1,36 @@
+diff --git src/io/cxx/CodecRegistry.cc src/io/cxx/CodecRegistry.cc
+index 8e32d76..1663611 100644
+--- src/io/cxx/CodecRegistry.cc
++++ src/io/cxx/CodecRegistry.cc
+@@ -25,6 +25,7 @@
+ #include <boost/filesystem.hpp>
+ #include <boost/format.hpp>
+ 
++#include "bob/core/logging.h"
+ #include "bob/io/CodecRegistry.h"
+ 
+ #include<iostream>
+@@ -68,8 +69,9 @@ void io::CodecRegistry::registerExtension(const std::string& extension,
+     s_extension2description[extension] = description;
+   }
+   else {
+-    boost::format m("extension already registered: %s");
+-    m % extension;
++    boost::format m("extension already registered: %s - ignoring second registration with description `%s'");
++    m % extension % description;
++    bob::core::error << m.str() << std::endl;
+     throw std::runtime_error(m.str());
+   }
+ 
+diff --git src/io/cxx/VideoFile.cc src/io/cxx/VideoFile.cc
+index 3033132..de04728 100644
+--- src/io/cxx/VideoFile.cc
++++ src/io/cxx/VideoFile.cc
+@@ -260,6 +260,7 @@ static bool register_codec() {
+   static std::string tmp[] = {
+     ".bmp",
+     ".dpx",
++    ".gif",
+     ".jpeg", 
+     ".jpg", 
+     ".jp2", 

Added: trunk/dports/science/bob/files/diff-fix-issue108-ffmpeg-1.1.x-compatibility.patch
===================================================================
--- trunk/dports/science/bob/files/diff-fix-issue108-ffmpeg-1.1.x-compatibility.patch	                        (rev 0)
+++ trunk/dports/science/bob/files/diff-fix-issue108-ffmpeg-1.1.x-compatibility.patch	2013-02-07 14:29:10 UTC (rev 102716)
@@ -0,0 +1,347 @@
+diff --git include/bob/daq/Camera.h include/bob/daq/Camera.h
+index c989732..e40f747 100644
+--- include/bob/daq/Camera.h
++++ include/bob/daq/Camera.h
+@@ -35,7 +35,7 @@ public:
+   /**
+    * Pixel format
+    */
+-  enum PixelFormat {
++  enum CamPixFormat {
+     OTHER,
+     YUYV,
+     MJPEG,
+@@ -61,7 +61,7 @@ public:
+      * @param frameNb     frame number
+      * @param timestamp   frame timestamp (in seconds)
+      */
+-    virtual void imageReceived(unsigned char* image, PixelFormat pixelFormat, int width, int height, int stride, int size, int frameNb, double timestamp) = 0;
++    virtual void imageReceived(unsigned char* image, CamPixFormat pixelFormat, int width, int height, int stride, int size, int frameNb, double timestamp) = 0;
+   };
+ 
+   /**
+@@ -134,7 +134,7 @@ public:
+    * @param[out] pixelFormats supported pixel formats
+    * @return 0 on success
+    */
+-  virtual int getSupportedPixelFormats(std::vector<PixelFormat>& pixelFormats) = 0;
++  virtual int getSupportedCamPixFormats(std::vector<CamPixFormat>& pixelFormats) = 0;
+   
+   /**
+    * Get the list of supported frame sizes for a pixel format
+@@ -143,7 +143,7 @@ public:
+    * @param[out] frameSizes supported frame sizes
+    * @return 0 on success
+    */
+-  virtual int getSupportedFrameSizes(PixelFormat pixelFormat, std::vector<FrameSize>& frameSizes) = 0;
++  virtual int getSupportedFrameSizes(CamPixFormat pixelFormat, std::vector<FrameSize>& frameSizes) = 0;
+   
+   /**
+    * Get the list of supported frame intervals for a pixel format and a frame size
+@@ -153,10 +153,10 @@ public:
+    * @param[out] frameIntervals supported frame intervals
+    * @return 0 on success
+    */
+-  virtual int getSupportedFrameIntervals(PixelFormat pixelFormat, FrameSize& frameSize, std::vector<FrameInterval>& frameIntervals) = 0;
++  virtual int getSupportedFrameIntervals(CamPixFormat pixelFormat, FrameSize& frameSize, std::vector<FrameInterval>& frameIntervals) = 0;
+ 
+-  virtual PixelFormat getPixelFormat() const = 0;
+-  virtual void setPixelFormat(PixelFormat pixelFormat) = 0;
++  virtual CamPixFormat getCamPixFormat() const = 0;
++  virtual void setCamPixFormat(CamPixFormat pixelFormat) = 0;
+   
+   virtual FrameSize getFrameSize() const = 0;
+   virtual void setFrameSize(FrameSize& frameSize) = 0;
+diff --git include/bob/daq/SimpleController.h include/bob/daq/SimpleController.h
+index ead7fa7..0c22413 100644
+--- include/bob/daq/SimpleController.h
++++ include/bob/daq/SimpleController.h
+@@ -34,7 +34,7 @@ public:
+   virtual ~SimpleController();
+   
+   virtual void keyPressed(int key);
+-  virtual void imageReceived(unsigned char* image, Camera::PixelFormat pixelformat, int width, int height, int stride, int size, int frameNb, double timestamp);
++  virtual void imageReceived(unsigned char* image, Camera::CamPixFormat pixelformat, int width, int height, int stride, int size, int frameNb, double timestamp);
+ 
+   void stop();
+   
+diff --git include/bob/daq/V4LCamera.h include/bob/daq/V4LCamera.h
+index 5c5e79a..068cbf1 100644
+--- include/bob/daq/V4LCamera.h
++++ include/bob/daq/V4LCamera.h
+@@ -43,12 +43,12 @@ public:
+   void stop();
+   void wait();
+ 
+-  int getSupportedPixelFormats(std::vector<PixelFormat>& pixelFormats);
+-  int getSupportedFrameSizes(PixelFormat pixelFormat, std::vector<FrameSize>& frameSizes);
+-  int getSupportedFrameIntervals(PixelFormat pixelFormat, FrameSize& frameSize, std::vector<FrameInterval>& frameIntervals);
++  int getSupportedCamPixFormats(std::vector<CamPixFormat>& pixelFormats);
++  int getSupportedFrameSizes(CamPixFormat pixelFormat, std::vector<FrameSize>& frameSizes);
++  int getSupportedFrameIntervals(CamPixFormat pixelFormat, FrameSize& frameSize, std::vector<FrameInterval>& frameIntervals);
+ 
+-  PixelFormat getPixelFormat() const;
+-  void setPixelFormat(PixelFormat pixelFormat);
++  CamPixFormat getCamPixFormat() const;
++  void setCamPixFormat(CamPixFormat pixelFormat);
+   
+   FrameSize getFrameSize() const;
+   void setFrameSize(FrameSize& frameSize);
+diff --git include/bob/daq/VideoReaderCamera.h include/bob/daq/VideoReaderCamera.h
+index a88a0c5..31b597c 100644
+--- include/bob/daq/VideoReaderCamera.h
++++ include/bob/daq/VideoReaderCamera.h
+@@ -40,12 +40,12 @@ public:
+   void stop();
+   void wait();
+ 
+-  int getSupportedPixelFormats(std::vector<PixelFormat>& pixelFormats);
+-  int getSupportedFrameSizes(PixelFormat pixelFormat, std::vector<FrameSize>& frameSizes);
+-  int getSupportedFrameIntervals(PixelFormat pixelFormat, FrameSize& frameSize, std::vector<FrameInterval>& frameIntervals);
++  int getSupportedCamPixFormats(std::vector<Camera::CamPixFormat>& pixelFormats);
++  int getSupportedFrameSizes(Camera::CamPixFormat pixelFormat, std::vector<FrameSize>& frameSizes);
++  int getSupportedFrameIntervals(Camera::CamPixFormat pixelFormat, FrameSize& frameSize, std::vector<FrameInterval>& frameIntervals);
+ 
+-  PixelFormat getPixelFormat() const;
+-  void setPixelFormat(PixelFormat pixelFormat);
++  Camera::CamPixFormat getCamPixFormat() const;
++  void setCamPixFormat(Camera::CamPixFormat pixelFormat);
+   
+   FrameSize getFrameSize() const;
+   void setFrameSize(FrameSize& frameSize);
+diff --git src/daq/cxx/SimpleController.cc src/daq/cxx/SimpleController.cc
+index 9689cb9..3899a59 100644
+--- src/daq/cxx/SimpleController.cc
++++ src/daq/cxx/SimpleController.cc
+@@ -247,7 +247,7 @@ static void jpeg_mem_src(j_decompress_ptr cinfo, void* buffer, long nbytes)
+ }
+ //////////////////////////////////////////////////////////////////////////////
+ 
+-void SimpleController::imageReceived(unsigned char* image, Camera::PixelFormat pixelFormat,
++void SimpleController::imageReceived(unsigned char* image, Camera::CamPixFormat pixelFormat,
+                                     int width, int height, int stride, int size, int frameNb, double timestamp) {
+   ControllerCallback::CaptureStatus status;
+   status.totalSessionTime = length + recordingDelay;
+diff --git src/daq/cxx/V4LCamera.cc src/daq/cxx/V4LCamera.cc
+index 531b547..6a56e05 100644
+--- src/daq/cxx/V4LCamera.cc
++++ src/daq/cxx/V4LCamera.cc
+@@ -292,9 +292,9 @@ int V4LCamera::open() {
+ }
+ 
+ /**
+- * Convert v4l2 pixel format to Camera::PixelFormat
++ * Convert v4l2 pixel format to Camera::CamPixFormat
+  */
+-Camera::PixelFormat convertPixelFormat(unsigned int v4l2_pixelFormat) {
++Camera::CamPixFormat convertCamPixFormat(unsigned int v4l2_pixelFormat) {
+   switch (v4l2_pixelFormat) {
+     case V4L2_PIX_FMT_YUYV:
+       return Camera::YUYV;
+@@ -308,9 +308,9 @@ Camera::PixelFormat convertPixelFormat(unsigned int v4l2_pixelFormat) {
+ }
+ 
+ /**
+- * Convert Camera::PixelFormat to v4l2 pixel format
++ * Convert Camera::CamPixFormat to v4l2 pixel format
+  */
+-unsigned int convertPixelFormat(Camera::PixelFormat pixelFormat) {
++unsigned int convertCamPixFormat(Camera::CamPixFormat pixelFormat) {
+   switch (pixelFormat) {
+     case Camera::YUYV:
+       return V4L2_PIX_FMT_YUYV;
+@@ -327,7 +327,7 @@ unsigned int convertPixelFormat(Camera::PixelFormat pixelFormat) {
+   }
+ }
+ 
+-int V4LCamera::getSupportedPixelFormats(std::vector<PixelFormat>& pixelFormats) {
++int V4LCamera::getSupportedCamPixFormats(std::vector<CamPixFormat>& pixelFormats) {
+   if (v4lstruct->opened) {
+     pixelFormats.clear();
+     
+@@ -337,7 +337,7 @@ int V4LCamera::getSupportedPixelFormats(std::vector<PixelFormat>& pixelFormats)
+     fmtdesc.index = 0;
+ 
+     while (xioctl(v4lstruct->device, VIDIOC_ENUM_FMT, &fmtdesc) != -1) {
+-      pixelFormats.push_back(convertPixelFormat(fmtdesc.pixelformat));
++      pixelFormats.push_back(convertCamPixFormat(fmtdesc.pixelformat));
+       fmtdesc.index++;
+     }
+   }
+@@ -345,13 +345,13 @@ int V4LCamera::getSupportedPixelFormats(std::vector<PixelFormat>& pixelFormats)
+   return 0;
+ }
+ 
+-int V4LCamera::getSupportedFrameSizes(PixelFormat pixelFormat, std::vector<FrameSize>& frameSizes) {
++int V4LCamera::getSupportedFrameSizes(CamPixFormat pixelFormat, std::vector<FrameSize>& frameSizes) {
+   if (v4lstruct->opened) {
+     frameSizes.clear();
+     
+     v4l2_frmsizeenum frmsizeenum;
+     memset(&frmsizeenum, 0, sizeof(v4l2_frmsizeenum));
+-    frmsizeenum.pixel_format = convertPixelFormat(pixelFormat);
++    frmsizeenum.pixel_format = convertCamPixFormat(pixelFormat);
+     frmsizeenum.index = 0;
+     
+     while (xioctl(v4lstruct->device, VIDIOC_ENUM_FRAMESIZES, &frmsizeenum) != -1) {
+@@ -369,12 +369,12 @@ int V4LCamera::getSupportedFrameSizes(PixelFormat pixelFormat, std::vector<Frame
+   return 0;
+ }
+ 
+-int V4LCamera::getSupportedFrameIntervals(PixelFormat pixelFormat, FrameSize& frameSize,
++int V4LCamera::getSupportedFrameIntervals(CamPixFormat pixelFormat, FrameSize& frameSize,
+                                          std::vector<FrameInterval>& frameIntervals) {
+   if (v4lstruct->opened) {
+     v4l2_frmivalenum frmivalenum;
+     memset(&frmivalenum, 0, sizeof(v4l2_frmivalenum));
+-    frmivalenum.pixel_format = convertPixelFormat(pixelFormat);
++    frmivalenum.pixel_format = convertCamPixFormat(pixelFormat);
+     frmivalenum.height = frameSize.height;
+     frmivalenum.width = frameSize.width;
+     frmivalenum.index = 0;
+@@ -394,23 +394,23 @@ int V4LCamera::getSupportedFrameIntervals(PixelFormat pixelFormat, FrameSize& fr
+   return 0;
+ }
+ 
+-Camera::PixelFormat V4LCamera::getPixelFormat() const {
++Camera::CamPixFormat V4LCamera::getCamPixFormat() const {
+   if (v4lstruct->opened) {
+-    return convertPixelFormat(v4lstruct->format.pixelformat);
++    return convertCamPixFormat(v4lstruct->format.pixelformat);
+   }
+   else {
+     return Camera::OTHER;
+   }
+ }
+ 
+-void V4LCamera::setPixelFormat(PixelFormat pixelFormat) {
++void V4LCamera::setCamPixFormat(CamPixFormat pixelFormat) {
+   if (v4lstruct->opened) {
+     v4l2_format format;
+     memset(&format, 0, sizeof(v4l2_format));
+     format.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+     format.fmt.pix = v4lstruct->format;
+ 
+-    format.fmt.pix.pixelformat = convertPixelFormat(pixelFormat);
++    format.fmt.pix.pixelformat = convertCamPixFormat(pixelFormat);
+ 
+     if (xioctl(v4lstruct->device, VIDIOC_S_FMT, &format) == -1) {
+       perror("Error setting parameters (VIDIOC_S_FMT)");
+@@ -601,7 +601,7 @@ int V4LCamera::start() {
+ 
+ 
+ void V4LCamera::captureLoop() {
+-  const PixelFormat pixelformat = getPixelFormat();
++  const CamPixFormat pixelformat = getCamPixFormat();
+   
+   while(!mustStop) {
+     // Select manpage say that we can't trust the value of timeout after
+diff --git src/daq/cxx/VideoReaderCamera.cc src/daq/cxx/VideoReaderCamera.cc
+index f87d5d0..7682a0e 100644
+--- src/daq/cxx/VideoReaderCamera.cc
++++ src/daq/cxx/VideoReaderCamera.cc
+@@ -105,11 +105,11 @@ void VideoReaderCamera::printSummary() {
+   bob::core::info << videoReader->info().c_str() << std::endl;
+ }
+ 
+-Camera::PixelFormat VideoReaderCamera::getPixelFormat() const {
+-  return RGB24;
++Camera::CamPixFormat VideoReaderCamera::getCamPixFormat() const {
++  return Camera::RGB24;
+ }
+ 
+-void VideoReaderCamera::setPixelFormat(Camera::PixelFormat pixelFormat) {
++void VideoReaderCamera::setCamPixFormat(Camera::CamPixFormat pixelFormat) {
+   return;
+ }
+ 
+@@ -129,26 +129,26 @@ void VideoReaderCamera::setFrameInterval(Camera::FrameInterval& frameInterval) {
+   return;
+ }
+ 
+-int VideoReaderCamera::getSupportedPixelFormats(std::vector<PixelFormat>& pixelFormats) {
++int VideoReaderCamera::getSupportedCamPixFormats(std::vector<Camera::CamPixFormat>& pixelFormats) {
+   pixelFormats.clear();;
+-  pixelFormats.push_back(getPixelFormat());
++  pixelFormats.push_back(getCamPixFormat());
+ 
+   return 0;
+ }
+ 
+-int VideoReaderCamera::getSupportedFrameSizes(PixelFormat pixelFormat, std::vector<FrameSize>& frameSizes) {
++int VideoReaderCamera::getSupportedFrameSizes(Camera::CamPixFormat pixelFormat, std::vector<FrameSize>& frameSizes) {
+   frameSizes.clear();
+-  if (pixelFormat == getPixelFormat()) {
++  if (pixelFormat == getCamPixFormat()) {
+     frameSizes.push_back(getFrameSize());
+   }
+ 
+   return 0;
+ }
+ 
+-int VideoReaderCamera::getSupportedFrameIntervals(PixelFormat pixelFormat, FrameSize& frameSize,
++int VideoReaderCamera::getSupportedFrameIntervals(Camera::CamPixFormat pixelFormat, FrameSize& frameSize,
+                                          std::vector<FrameInterval>& frameIntervals) {
+   frameIntervals.clear();
+-  if (pixelFormat == getPixelFormat() && frameSize == getFrameSize()) {
++  if (pixelFormat == getCamPixFormat() && frameSize == getFrameSize()) {
+     frameIntervals.push_back(getFrameInterval());
+   }
+   
+diff --git src/daq/python/all.cc src/daq/python/all.cc
+index 640e47b..3b4c4fa 100644
+--- src/daq/python/all.cc
++++ src/daq/python/all.cc
+@@ -45,9 +45,9 @@
+ 
+ using namespace bob::daq;
+ 
+-static boost::python::object getSupportedPixelFormats(Camera& cam) {
+-  std::vector<Camera::PixelFormat> pfs;
+-  cam.getSupportedPixelFormats(pfs);
++static boost::python::object getSupportedCamPixFormats(Camera& cam) {
++  std::vector<Camera::CamPixFormat> pfs;
++  cam.getSupportedCamPixFormats(pfs);
+ 
+   boost::python::list l;
+ 
+@@ -58,7 +58,7 @@ static boost::python::object getSupportedPixelFormats(Camera& cam) {
+   return l;
+ }
+ 
+-static boost::python::object getSupportedFrameSizes(Camera& cam, Camera::PixelFormat pf) {
++static boost::python::object getSupportedFrameSizes(Camera& cam, Camera::CamPixFormat pf) {
+   std::vector<Camera::FrameSize> vec;
+   cam.getSupportedFrameSizes(pf, vec);
+ 
+@@ -71,7 +71,7 @@ static boost::python::object getSupportedFrameSizes(Camera& cam, Camera::PixelFo
+   return l;
+ }
+ 
+-static boost::python::object getSupportedFrameIntervals(Camera& cam, Camera::PixelFormat pf, Camera::FrameSize& fs) {
++static boost::python::object getSupportedFrameIntervals(Camera& cam, Camera::CamPixFormat pf, Camera::FrameSize& fs) {
+   std::vector<Camera::FrameInterval> vec;
+   cam.getSupportedFrameIntervals(pf, fs, vec);
+ 
+@@ -169,7 +169,7 @@ void bind_daq_all() {
+     .def("on_detection", &FaceLocalizationCallback::onDetection, (arg("boundingbox")));
+     
+   /// Cameras
+-  enum_<Camera::PixelFormat>("PixelFormat")
++  enum_<Camera::CamPixFormat>("PixelFormat")
+     .value("YUYV", Camera::YUYV)
+     .value("MJPEG", Camera::MJPEG)
+     .value("RGB24", Camera::RGB24)
+@@ -192,10 +192,10 @@ void bind_daq_all() {
+     .def("start", &Camera_start, (arg("self")))
+     .def("add_camera_callback", &Camera::addCameraCallback, (arg("self"), arg("callback")))
+     .def("remove_camera_callback", &Camera::removeCameraCallback, (arg("self"), arg("callback")))
+-    .def("get_supported_pixel_formats", &getSupportedPixelFormats, (arg("self")), "Get the list of supported pixel formats")
++    .def("get_supported_pixel_formats", &getSupportedCamPixFormats, (arg("self")), "Get the list of supported pixel formats")
+     .def("get_supported_frame_sizes", &getSupportedFrameSizes, (arg("self"), arg("pixel_format")), "Get the list of supported frame sizes for a pixel format")
+     .def("get_supported_frame_intervals", &getSupportedFrameIntervals, (arg("self"), arg("pixel_format"), arg("frame_size")), "Get the list of supported frame intervals for a pixel format and a frame size")
+-    .add_property("pixel_format", &Camera::getPixelFormat, &Camera::setPixelFormat)
++    .add_property("pixel_format", &Camera::getCamPixFormat, &Camera::setCamPixFormat)
+     .add_property("frame_size", &Camera::getFrameSize, &Camera::setFrameSize)
+     .add_property("frame_interval", &Camera::getFrameInterval, &Camera::setFrameInterval)
+     .def("print_summary", &Camera::printSummary, (arg("self")), "Print information about the device");

Added: trunk/dports/science/bob/files/diff-fix-issue109-libsvm-bug.patch
===================================================================
--- trunk/dports/science/bob/files/diff-fix-issue109-libsvm-bug.patch	                        (rev 0)
+++ trunk/dports/science/bob/files/diff-fix-issue109-libsvm-bug.patch	2013-02-07 14:29:10 UTC (rev 102716)
@@ -0,0 +1,45 @@
+diff --git src/machine/cxx/SVM.cc src/machine/cxx/SVM.cc
+index 142b4e7..70fcff7 100644
+--- src/machine/cxx/SVM.cc
++++ src/machine/cxx/SVM.cc
+@@ -178,6 +178,15 @@ blitz::Array<uint8_t,1> mach::svm_pickle
+   return buffer;
+ }
+ 
++static boost::shared_ptr<svm_model> make_model(const char* filename) {
++  boost::shared_ptr<svm_model> retval(svm_load_model(filename), 
++      std::ptr_fun(svm_model_free));
++#if LIBSVM_VERSION > 315
++  if (retval) retval->sv_indices = 0; ///< force initialization: see ticket #109
++#endif 
++  return retval;
++}
++
+ /**
+  * Reverts the pickling process, returns the model
+  */
+@@ -193,8 +202,13 @@ boost::shared_ptr<svm_model> mach::svm_unpickle
+   binfile.close();
+ 
+   //reload the file using the appropriate libsvm loading method
+-  boost::shared_ptr<svm_model> retval(svm_load_model(tmp_filename), 
+-      std::ptr_fun(svm_model_free));
++  boost::shared_ptr<svm_model> retval = make_model(tmp_filename);
++
++  if (!retval) {
++    boost::format s("cannot open model file '%s'");
++    s % tmp_filename;
++    throw std::runtime_error(s.str());
++  }
+ 
+   //unlinks the temporary file
+   boost::filesystem::remove(tmp_filename); 
+@@ -224,7 +238,7 @@ void mach::SupportVector::reset() {
+ }
+ 
+ mach::SupportVector::SupportVector(const std::string& model_file):
+-  m_model(svm_load_model(model_file.c_str()), std::ptr_fun(svm_model_free))
++  m_model(make_model(model_file.c_str()))
+ {
+   if (!m_model) {
+     boost::format s("cannot open model file '%s'");
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20130207/9814628c/attachment.html>


More information about the macports-changes mailing list