Archive for Source code

Build instructions for the net.imgseek.imgdb module

The net.imgseek.imgdb source module implements the core image similarity engine behind isk-daemon (server-side version) and imgSeek (desktop version). It may need to be manually built for isk-daemon to support your current environment.

Essentially, it compiles into the _imgdb.pyd (Windows) or imgdb.so (Unix) dynamic libraries which should be found on the imgSeekLib directory of both isk-daemon and imgSeek.

Requirements

  • Subversion client (for getting the latest source code)
  • Python and its development package.
  • A C++ compiler and development libraries: on Unix systems g++ and for Windows systems MSVC++ Express or cygwin.
  • ImageMagick libraries and development headers for C++.
    • On a Linux system that means the following packages:
      • imagemagick
      • libmagick++9-dev
      • libmagick9-dev
      • libmagick++9c2a
      • libmagick9
    • On a Windows system the binary release for ImageMagick provides both the dynamic link libraries and development headers.

First, get the source code for the Subversion repository:

$ svn checkout https://imgseek.svn.sourceforge.net/svnroot/imgseek/trunk/net.imgseek.imgdb

Building under Linux or Cygwin

Inside the checked out module there is a src/net/imgseek/imgdb/core directory. From inside it, invoke the build script:

$ python build-python.py build

If all goes well you should find the newly compiled _imgdb.so library somewhere deep under the build directory. The resulting dynamic libraries (imgdb.so/pyd) should then replace the original version from the official isk-daemon distribution (located inside the imgSeekLib dir).

Sometimes the .so library is created without a leading underscore. If starting isk-daemon doesn’t work, try renaming the .so file and prefix it with an underscore so it looks like “_imgdb.so”. The error message in this case looks like this:

 File “/isk-daemon-0.6.2/imgSeekLib/ImageDB.py”, line 38, in ?
import imgdb
ImportError: dynamic module does not define init function (initimgdb)

Building under Windows

Inside the checked out module there is a imgdb-msvc directory. Inside this directory you can find a Microsoft Visual C++ Express (free download from MS) solution file.

Open and build it. You may need to setup linking options (additional library dirs) to tell MSVC where to find the ImageMagick and Pythons libraries and development headers.

Please use one of the mailing lists if you run into any trouble.

Comments

Developers mailing lists

Google Groups

There are two mailing lists for developers:

Comments

Source code

You may want to check the Compiling instructions and other development resources.

Web Access

If you just wish to browse around or download a few individual files, try the public web repository browser or a more simple view.

Anonymous Subversion

To access the Subversion repository anonymously, you will need a Subversion client. You can also browse for projects via https://imgseek.svn.sourceforge.net/svnroot/imgseek/

Choose the module you would like and check it out. For example, to get the isk-daemon module, use:

svn checkout https://imgseek.svn.sourceforge.net/svnroot/imgseek/trunk/isk-daemon/ isk-daemon

For more help on using Subversion, consult the Subversion website or Subversion book. The web site provides a list of clients and useful links (including a link to the Eclipse plug-in).

Source modules available

  • isk-daemon: exposes the image similarity engine through XML-RPC and SOAP. Requires the net.imgseek.imgdb module.
  • net.imgseek.imgdb: core image similarity engine. Compiles into the _imgdb.pyd (Windows) or imgdb.so (Unix) dynamic libraries.
  • imgseek-python: classic desktop version.

Committer Subversion Access

We currently use HTTPS basic authentication for logging in to Subversion (certificate info below). The user name and password is the same as the one you use at SourceForge.

Now, when you make changes, you can commit them with your username/password combination, i.e.

svn co https://imgseek.svn.sourceforge.net/svnroot/imgseek/isk-daemon/trunk/ isk-daemon-trunkcd isl-daemon-trunk

echo "test" > test.txt

svn add test.txt

svn commit --username your-name --password your-password

--message "Trying out svn"

svnserve is not supported, nor is svn+ssh.

Committers will need to properly configure their svn client. One particular issue is OS-specific line-endings for text files. When you add a new text file, especially when applying patches from Bugzilla, first ensure that the line-endings are appropriate for your system, then do …

svn add test.txtsvn propset svn:eol-style native test.txt

Your svn client can be configured to do that automatically for some common file types. Add the list to your ~/.subversion/config file. However, you should still pay attention to the messages from your svn client when you do ’svn commit’.

Snapshots

Currently not available.

These are simply tarballs containing the most up-to-date source code captured inside a single file.

Subversions: DOs and DON’Ts

  • DO NOT use svn lock.
  • DO NOT write cron jobs that poll the subversion repository more frequently than once an hour.

Comments (2)