Coder Social home page Coder Social logo

libexif-gtk's Introduction

              libexif-gtk
	      ===========

WHAT IT IS
==========

libexif-gtk is a library of widgets to help display EXIF tags in GTK
programs.


REQUIREMENTS
============

libexif-gtk is written in C and requires libexif and gtk+.
GNU gettext is used for language translation, if available.


BUILDING
========

Building from the source tar ball usually involves the commands:

  ./configure
  make
  sudo make install

When building from source out of git, please run "autoreconf -i" first.


NOTE TO PACKAGERS
=================

The default is to build the gtk2 version of the library (minimum gtk2
version: 2.4).  The configure option --with-gtk3 allows building with the gtk3
version of the library. Both versions can be installed on a system at
the same time.


NOTE TO DEVELOPERS
==================

To link to the gtk2 version of libexif-gtk, use the 'libexif-gtk' pkgconfig
information.  To link your application to the gtk3 version of this library, use
the 'libexif-gtk3' pkgconfig information.

A simple example program using the libexif-gtk widgets is available
in tests/test-libexif-gtk.c


LINKS
=====

libexif-gtk is a part of the libexif project at https://libexif.github.io/

libexif-gtk's People

Contributors

alaunay avatar dfandrich avatar hughmcmaster avatar msmeissn avatar ndim avatar norwayfun avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

libexif-gtk's Issues

libexif-gtk does libtool library versioning different than libexif - and only one can be right

I have just stumbled across the way libexif-gtk does its soname versioning which appears to differ from the way libexif does it.

Summarizing:

  • libexif-gtk uses --version-info $(($CURRENT + $REVISION)):$AGE:$REVISION.
  • libexif uses --version-info $CURRENT:$AGE:$REVISION

while the descriptions for the *_CURRENT, *_REVISION, and _AGE numbers are the same.

This is what libexif-gtk does, in more detail:

LIBEXIF_GTK_AGE=0
LIBEXIF_GTK_REVISION=1
LIBEXIF_GTK_CURRENT=5
AC_SUBST([LIBEXIF_GTK_AGE])
AC_SUBST([LIBEXIF_GTK_REVISION])
AC_SUBST([LIBEXIF_GTK_CURRENT])
LIBEXIF_GTK_VERSION_INFO=`expr $LIBEXIF_GTK_CURRENT + $LIBEXIF_GTK_REVISION`:$LIBEXIF_GTK_AGE:$LIBEXIF_GTK_REVISION
AC_SUBST([LIBEXIF_GTK_VERSION_INFO])
libexif-gtk/Makefile.am:libexif_@LIBEXIF_GTK_EXTENSION@_la_LDFLAGS = -version-info @LIBEXIF_GTK_VERSION_INFO@

For comparison, this is what libexif does:

LIBEXIF_CURRENT=15
LIBEXIF_AGE=3
LIBEXIF_REVISION=4
AC_SUBST([LIBEXIF_AGE])
AC_SUBST([LIBEXIF_REVISION])
AC_SUBST([LIBEXIF_CURRENT])
AC_SUBST([LIBEXIF_CURRENT_MIN],[`expr $LIBEXIF_CURRENT - $LIBEXIF_AGE`])
LIBEXIF_VERSION_INFO="$LIBEXIF_CURRENT:$LIBEXIF_REVISION:$LIBEXIF_AGE"
AC_SUBST([LIBEXIF_VERSION_INFO])
libexif/Makefile.am:    -no-undefined -version-info @LIBEXIF_VERSION_INFO@

libgphoto2 does the same thing libexif does, so I presume libexif-gtk is the odd one out here and should be fixed to use the same mechanism, correct?

Why not build both libexif-gtk (for gtk2) and libexif-gtk3 at the same time? Why rename the *.pot and *.po files?

I realize that I am a bit late to the party here, but I am wondering why #2 and #3 change the name of the translation files to become specific to the libexif-gtk gtk2 and gtk3 versions?

I also do not understand why libexif-gtk does not build both the gtk2 and the gtk3 version from a single source tree build.

PKG_CHECK_MODULES([GTK2], [gtk+-2.0 >= 2.4])
PKG_CHECK_MODULES([GTK3], [gtk+-3.0])

and then later use GTK2_LIBS for libexif_gtk_LIBADD and GTK3_LIBS for libexif_gtk3_LIBADD.

Why can't both libexif-gtk.so.* (gtk2) and libexif-gtk3.so.* (gtk3) use the same file /usr/share/locale/de/LC_MESSAGES/libexif-gtk5.mo? Then the package with libexif-gtk and libexif-gtk3 can both depend on the same (possibly even noarch) -translations subpackage.

Just renaming the translation files does not change their content, after all, so I do not see what renaming and duplicating the files buys us.

(Also, the name of the *.pot and *.po files changing might confuse translators and their toolchains.)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.