Bug fix: Non-portable functions
[geeqie.git] / README.md
index 8ea2448..b5b23f0 100644 (file)
--- a/README.md
+++ b/README.md
@@ -1,7 +1,8 @@
+
       ###################################################################
       ##                          Geeqie x.x                           ##
       ##                                                               ##
-      ##              Copyright (C) 2008 - 2016 The Geeqie Team        ##
+      ##              Copyright (C) 2008 - 2021 The Geeqie Team        ##
       ##              Copyright (C) 1999 - 2006 John Ellis.            ##
       ##                                                               ##
       ##                      Use at your own risk!                    ##
 
 This is Geeqie, a successor of GQview.
 
-[![Build Status](https://api.travis-ci.org/BestImageViewer/geeqie.svg?branch=master)](https://travis-ci.org/BestImageViewer/geeqie)
-
 Geeqie has been forked from GQview project, because it was not possible to
-contact GQview author and the only maintainer. Geeqie projects goal is to move
-the development forward and also integrate the existing patches.
+contact the GQview author and only maintainer.
+
+The Geeqie project will continue the development forward and maintain the existing code.
+
+Geeqie is currently considered stable.
+
+Please send any questions, problems or suggestions to the [mailing list](mailto:geeqie@freelists.org) or
+open an issue on [Geeqie at GitHub](https://github.com/BestImageViewer/geeqie/issues).
 
-Geeqie is currently considered stable. Please report any crash or odd behavior
-to the [mailing list](https://lists.sourceforge.net/lists/listinfo/geeqie-devel)
-and/or to [Github](https://github.com/BestImageViewer/geeqie/issues)
+(Unless you first subscribe to the mailing list, you will not receive automated responses)
 
-For more info see: http://www.geeqie.org/
+Subscribe to the mailing list [here](https://www.freelists.org/list/geeqie).
 
-Please send any question or suggestions to geeqie-devel@lists.sourceforge.net or
-open an issue on Github (https://github.com/BestImageViewer/geeqie/issues)
+The project website is <http://www.geeqie.org/> and you will find the latest sources in the
+[Geeqie repository](http://geeqie.org/cgi-bin/gitweb.cgi?p=geeqie.git).
 
 # README contents:
 
-* Requirements
-* Notes and changes for this release
+* Features
+* Downloading
 * Installation
-* Description / Features
-* Documentation (keyboard shortcuts)
-* Editor command macros
-* Additional comments
-* Translation status
-* Credits
+* Notes and changes for the latest release
+* Requirements
 
-## Requirements
 
-  Required libraries:
-    GTK+ 3.00
-               www.gtk.org
-               enabled by default
-               disable with configure option: --disable-gtk3
-    or
-    GTK+ 2.20
-               disabled by default when GTK+3 libraries are found.
-               enable with configure option: --disable-gtk3
-              optional items map display and GPU acceleration are not available
-              with GTK2
+## Features
 
-              Note: GTK+3 is still somehow experimental. It is needed for some
-              features but we have several complains about the GTK+3 usability.
+Geeqie is a graphics file viewer. Basic features:
 
-              So if you need a stable version, you are advised to compile it
-              with GTK+2. If you want to play with the cool new features, use
-              GTK+3.
 
-  Optional libraries:
-    lcms2 2.0
-    or
-    lcms 1.14
-               www.littlecms.com
-               for color management support
-               enabled by default
-               disable with configure option: --disable-lcms
+* Single click image viewing / navigation.
 
-    exiv2 0.11
-               www.exiv2.org
-               for enhanced exif support
-               enabled by default
-               disable with configure option: --disable-exiv2
+* Zoom functions.
 
-    lirc
-               www.lirc.org
-               for remote control support
-               enabled by default
-               disable with configure option: --disable-lirc
+* Thumbnails, with optional caching and .xvpics support.
 
-    libchamplain-gtk 0.12
-    libchamplain 0.12
-    libclutter 1.0
-               wiki.gnome.org/Projects/libchamplain
-               for map display
-               disabled by default
-               enable with configure option: --enable-map
-               enabling will also enable GPU acceleration
+* Multiple file selection for move, copy, delete, rename, drag and drop.
 
-    libclutter 1.0
-               www.clutter-project.org
-               for GPU acceleration (a check-box on Preferences/Image must also be ticked)
-               disabled by default
-               enable with configure option: --enable-gpu-accel
-               explicitly disabling will also disable the map feature
+* Thumbnail preview of the destination for move, copy and rename functions.
 
-    lua 5.1
-               www.lua.org
-               support for lua scripting
-               enabled by default
-               disable with configure option: --disable-lua
+* On-the-fly renaming for move and copy functions, with formatted and auto-rename features.
 
-## Notes and changes for this release            [section:release_notes]
+* File grouping (an image having jpeg, RAW and xmp files will appear as a single entity).
 
-See NEWS file.
+* Selectable exif auto-rotation of images.
 
-  Code hackers:
 
-    If you plan on making any major changes to the code that will be offered for
-    inclusion to the main source, please contact us first - so that we can avoid
-    duplication of effort.
-                                                         The Geeqie Team
+* Single click file copy or move to pre-defined folders - with undo feature.
+* Drag and drop.
 
-  Known bugs:
+* Collections.
 
-    See the Geeqie Bug Tracker at https://github.com/BestImageViewer/geeqie/issues
+* Support for stereoscopic images
+    * input: side-by-side (JPS) and MPO format
+    * output: single image, anaglyph, SBS, mirror, SBS half size (3DTV)
 
-## Installation
+*   Viewing raster and vector images, in the following formats:
+3FR, ANI, APM, ARW, AVIF, BMP, CR2, CR3, CRW, CUR, DDS, DjVu, DNG, ERF, GIF, HEIC, HEIF, ICNS, ICO, JP2. JPE/JPEG/JPG, JPEG XL, JPS, KDC, MEF, MOS, MPO, MRW, NEF, ORF, PBM/PGM/PNM/PPM, PEF, PNG, PSD, PTX, QIF/QTIF (QuickTime Image Format), RAF, RAW, RW2, SR2, SRF, SVG/SVGZ, TGA/TARGA, TIF/TIFF, WEBP, WMF, XBM, XPM.
+    * Display images in archive files (.ZIP, .RAR etc.).
+    * Animated GIFs are supported.
 
-Compilation: ./autogen.sh ; make
-Show compile options: ./autogen.sh --help
-General install: make install
-Removal: make uninstall
+* Preview and thumbnails of video clips can be displayed. Clips can be run via a defined external program.
 
-## Description / Features
+* Images can be displayed singly in normal or fullscreen mode; static or slideshow mode; in sets of two or four per page for comparison; or as thumbnails of various sizes. Synchronised zoom when multi images are displayed.
 
-Geeqie is a graphics file viewer. Basic features:
+* Pan(orama) view displays image thumbnails in calendar, grid, folder and other layouts.
+* All available metadata and Exif/IPTC/XMP data can be displayed, as well as colour histograms and assigned tags, keywords and comments.
 
-* Single click image viewing / navigation.
-* Zoom functions.
-* Thumbnails, with optional caching and .xvpics support.
-* Multiple file selection for move, copy, delete, rename, drag and drop.
-* Drag and drop.
-* Slideshow.
-* Full screen.
-* Ability to open images in external editors (configurable).
-* Collections.
-* Comparison of images to find duplicates by name, size, date, dimensions, or image content similarity.
-    * Rotation invariant detection
-* EXIF support.
-* support for stereoscopic images
-    * input: side-by-side (JPS) and MPO format
-    * output: single image, anaglyph, SBS, mirror, SBS half size (3DTV)
+* Selectable image overlay display box - can contain any text or meta-data.
+
+* Panels can be docked or floating.
+
+* Tags, both predefined and custom, can be assigned to images, and stored either as image metadata (where the file format allows), sidecar files, or in directory metadata files. Keywords and comments can also be assigned.
+
+* Basic editing in the form of lossless 90/180-degree rotation and flipping is supported; external programs such as GIMP, Inkscape, and custom scripts using ImageMagick can be linked to allow further processing.
+
+* Advanced searching is available using criteria such as filename, file size, age, image dimensions, similarity to a specified image, or by keywords or comments. If images have GPS coordinates embedded, you may also search for images within a radius of a geographical point.
 
-## Credits                                             [section:credits]
-
-  Translations:
-
-     Grzegorz Kowal <g_kowal@poczta.onet.pl>
-     Zbigniew Chyla <cyba@gnome.pl>
-     Emil Nowak <emil5@go2.pl>
-     Wit Wilinski <wit.wilinski@gmail.com>
-     Tomasz Golinski <tomaszg@math.uwb.edu.pl>
-         for Polish translation
-
-     Christopher R. Gabriel <cgabriel@pluto.linux.it>
-     Di Maggio Salvatore <Salvatore.Dimaggio@bologna.marelli.it>
-     Costantino <inverness1ATvirgilio.it>
-         for Italian translation
+* Geeqie supports applying the colour profile embedded in an image along with the system monitor profile (or a user-specified monitor profile).
 
-     Sandokan <cortex@nextra.sk>
-     Ivan Priesol <priesol@iris-sk.sk>
-     Mgr. Peter Tuharsky <tuharsky@misbb.sk>
-         for Slovak translation
+* Geeqie sessions can be remotely controlled from external software, so it can be used as an image-viewer component of a bigger application.
 
-     Rodrigo Sancho Senosiain <ruy_ikari@bigfoot.com>
-     Ariel Fermani <the_end@bbs.frc.utn.edu.ar>
-         for Spanish translation
+* Geeqie includes a 'find duplicates' tool which can compare images using a variety of criteria (filename, file size, visual similarity, dimensions, image content), either within a single folder or between two folders. Finding duplicates ignoring the rotation of images is also supported.
+* Images may be given a rating value (also known as a "star rating").
 
-     Laurent Monin <i18n@norz.org>
-     Eric Lassauge <lassauge@users.sf.net>
-     Jean-Pierre Pedron <jppedron@club-internet.fr>
-     Pascal Bleser <pascal.bleser@atosorigin.com>
-     Nicolas Boos <nicolas.boos@wanadoo.fr>
-     Nicolas Bonifas <nicolas_bonifas@users.sf.net>
-         for French translation
+* Maps from [OpenStreetMap](http://www.openstreetmap.org) may be displayed in a side panel. If an image has GPS coordinates embedded, its position will be displayed on the map - if Image Direction is encoded, that will be displayed also. If an image does not have embedded GPS coordinates, it may be dragged-and-dropped onto the map to encode its position.
 
-     Fâtih Demir <kabalak@gmx.net>
-         for Turkish translation
+* Speed of operation can be increased by caching thumbnails and similarity data of images. When Geeqie is run as a stand-alone command line program (`geeqie --cache-maintenance <path>`) these data will be recursively created from the defined start point. This program can be called from `cron` or `anacron` so that cache updating is automatically done at specified intervals.
 
-     Kam Tik <kamtik@hongkong.com>
-     Abel Cheung <deaddog@deaddog.ws>
-     S.J. Luo <crystal@mickey.ee.nctu.edu.tw>
-     Levin <zjlevin@hotmail.com>
-         for Traditional Chinese (Big5) translation
+# <a name="downloading"></a>
+## Downloading
 
-     Junichi Uekawa <dancer@debian.org>
-     Oleg Andrjushenko <oandr@itec.cn.ua>
-     Michael Bravo <mbravo@tag-ltd.spb.ru>
-     Sergey Pinaev <dfo@antex.ru>
-         for Russian translation
+Geeqie is available:  
 
-     Guilherme M. Schroeder <slump@ieg.com.br>
-     Vitor Fernandes <vitor_fernandes@SoftHome.net>
-     Herval Ribeiro de Azevêdo <heraze@gmail.com>
-         for Brazilian Portuguese translation
+* as a package for Linux and BSD systems (See the [project web page](https://www.geeqie.org)).
 
-     Shingo Akagaki <akagaki@ece.numazu-ct.ac.jp>
-     Yuuki Ninomiya <gm@debian.or.jp>
-     Sato Satoru <ss@gnome.gr.jp>
-     Takeshi AIHANA <aihana@gnome.gr.jp>
-         for Japanese translation
+* as a [flatpak](https://flathub.org/apps/details/org.geeqie.Geeqie) from the [Flathub site](https://flathub.org/home).
 
-     Matthias Warkus <mawarkus@t-online.de>
-     Thomas Klausner <wiz@danbala.ifoer.tuwien.ac.at>
-     Danny Milosavljevic <danny_milo@yahoo.com>
-     Ronny Steiner <Post@SIRSteiner.de>
-     Klaus Ethgen <Klaus@Ethgen.de>
-         for German translation
+* as an [AppImage](https://www.geeqie.org/AppImage/index.html) (Generated from the latest sources).
 
-     Matej Erman <matej.erman@guest.arnes.si>
-         for Slovene translation
+* as a [Homebrew](https://formulae.brew.sh/formula/geeqie) package for macOS.
 
-     MÃtyÃs Tibor <templar@tempi.scene.hu>
-     Koblinger Egmont <egmont@uhulinux.hu>
-     Sári Gábor <saga@externet.hu>
-         for Hungarian translation
+However Geeqie is stable and you may compile the latest version from sources.
 
-     Wu Yulun <migr@operamail.com>
-     Charles Wang <charlesw1234cn@yahoo.com.cn>
-         for simplified Chinese translation
+There are two scripts which will download and compile the sources for you.
 
-     H.J.Visser <H.J.Visser@harrie.mine.nu>
-     Tino Meinen <a.t.meinen@chello.nl>
-         for Dutch translation
+The first script will install Geeqie to a defined location, and will run under any system. However, it is left to you to make sure dependencies are fulfilled.
+To get the script, from the command line type:<br/><br/>
+`wget https://raw.githubusercontent.com/pixlsus/Scripts/master/build-geeqie`
 
-     Lauri Nurmi <lanurmi@iki.fi>
-         for Finnish translation
+The second script will run only on Debian-based system, but will fulfil all dependencies and also give you the opportunity to include additional pixbuf loaders and other useful programs.
+To get the script, from the command line type:<br/><br/>
+`wget https://raw.githubusercontent.com/BestImageViewer/geeqie/master/web/geeqie-install-debian.sh`
 
-     Ilmar Kerm <ikerm@hot.ee>
-         for Estonian translation
 
-     Volodymyr M. Lisivka <lvm@mystery.lviv.net>
-         for Ukrainian translation
+If you wish to compile the sources yourself you may download the latest version (if you have installed git) from here:
 
-     Birger Langkjer <birger.langkjer@image.dk>
-         for Danish translation
+Either: `git clone git://www.geeqie.org/geeqie.git`
 
-     Torgeir Ness Sundli <torgeir@mp3bil.no>
-         for Norwegian translation
+Or: `git clone http://www.geeqie.org/git/geeqie.git`
 
-     Jan Raska <jan.raska@tiscali.cz>
-     Michal Bukovjan <bukm@centrum.cz>
-         for Czech translation
+## Manual Installation
 
-     Phanumas Thanyaboon <maskung@hotmail.com>
-         for Thai translation
+List compile options: `./autogen.sh --help`
 
-     Harald Ersch <hersch@romatsa.ro>
-         for Romanian translation
+Common options:
+`./autogen.sh --disable-gtk3`,
 
-     pclouds <pclouds@vnlinux.org>
-         for Vietnamese translation
+Compilation: `./autogen.sh [options]; make -j`
 
-     Tedi Heriyanto <tedi_h@gmx.net>
-         for Indonesian translation
+Install: `[sudo] make install`
 
-     Vladimir Petrov <vladux@mail.bg>
-         for Bulgarian translation
+Removal: `[sudo] make uninstall`
 
-     Hans Öfverbeck <hans.ofverbeck@home.se>
-         for Swedish translation
+#### Note:
+The zip and gzip files at geeqie.org and GitHub contain only the sources - they cannot, by themselves, be used to install Geeqie.
 
-     Youssef Assad <youssef@devcabal.org>
-         for Arabic translation
+It is recommended to always use `git clone  git://www.geeqie.org/geeqie.git` to download Geeqie. After installing Geeqie you may delete the folder you have cloned Geeqie into.
 
-     catux.org <mecatxis@ya.com>
-         for Catalan translation
+However if you leave the folder intact, whenever new features or patches are available, execute:
 
-     Hyun-Jin Moon <moonhyunjin@gmail.com
-         for Korean translation
+`git pull; sudo make uninstall; sudo make maintainer-clean; ./autogen.sh; make -j<no. of cpu cores>; sudo make install`
 
-     Pavel Piatruk <berserker@neolocation.com>
-         for Belarusian translation
+Only the changed sources are downloaded, which makes this a quick operation.
 
-     Piarres Beobide <pi@beobide.net>
-         for Basque translation
+Your configuration file, history file and desktop files are not affected by this process.
 
-     Antonio C. Codazzi <f_sophia@libero.it>
-         for Esperanto translation
 
-     Nikos Papadopoulos
-        for Greek translation
 
- Fixes, additions, and patches:
+## Notes and changes for the latest release
 
-     Eric Swalens
-     Quy Tonthat
-         for initial Exif support.
+See the NEWS file in the installation folder, or [Geeqie News at GitHub](https://github.com/BestImageViewer/geeqie/blob/master/NEWS)
 
-     Daniel M. German <dmgerman at uvic.ca>
-         for Canon raw image support.
+And either the ChangeLog file or [Geeqie ChangeLog](http://geeqie.org/cgi-bin/gitweb.cgi?p=geeqie.git;a=shortlog)
 
-     Lars Ellenberg
-         for Fujifilm raw image support.
 
-     Diederen Damien <D.Diederen@student.ulg.ac.be>
-         for .xvpics thumbnail reading support.
+## Requirements
+
+### Required libraries:
+    GTK+ 3.00
+        www.gtk.org
+        enabled by default
+        disable with configure option: --disable-gtk3
+    or
+    GTK+ 2.20
+        disabled by default when GTK+3 libraries are found.
+        enable with configure option: --disable-gtk3
+        optional items map display and GPU acceleration are not available
+        with GTK2
 
-     Nick Rusnov <nick@grawk.net>
-     Ryan Murray <rmurray@debian.org>
-         for man page.
+        Both GTK2 and GTK3 versions have been in use for several
+        years, and both may be considered stable.
 
-     Martin Pool <mbp@samba.org>
-         for sort by number, misc. improvements.
+### Optional libraries:
+    lcms2 2.0
+    or
+    lcms 1.14
+        www.littlecms.com
+        for color management support
+        enabled by default
+        disable with configure option: --disable-lcms
 
-     Jörg Mensmann <joerg.mensmann@gmx.de>
-         for Xinerama support patch.
+    exiv2 0.11
+        www.exiv2.org
+        for enhanced exif support
+        enabled by default
+        disable with configure option: --disable-exiv2
 
-     Vadim Shliakhov
-         for miscellaneous fixes.
+    lirc
+        www.lirc.org
+        for remote control support
+        enabled by default
+        disable with configure option: --disable-lirc
 
-     Uwe Ohse
-         for Exif enhancements, histogram and other patches
+    libchamplain-gtk 0.12
+    libchamplain 0.12
+    libclutter 1.0
+        wiki.gnome.org/Projects/libchamplain
+        for map display
+        enabled by default
+        disable with configure option: --disable-map
 
-     Timo Horstschäfer
-         for customizable fullscreen overlay
+    libclutter 1.0
+        www.clutter-project.org
+        for GPU acceleration (a check-box on Preferences/Image must also be ticked)
+        enabled by default
+        disable with configure option: --disable-gpu-accel
+        explicitly disabling will also disable the map feature
 
-     Michael Mokeev
-         for print related enhancements
+    lua 5.1
+        www.lua.org
+        support for lua scripting
+        enabled by default
+        disable with configure option: --disable-lua
 
-     Carles Pina i Estany
-         for copy path to clipboard patch
+    librsvg2-common
+        for displaying .svg images
+
+    libwmf0.2-7-gtk
+        for displaying .wmf images
+
+    (see also "Additional pixbuf loaders" in the References section of the Help file)
+
+    awk
+        when running Geeqie, to use the geo-decode function
+
+    markdown
+        when compiling Geeqie, to create this file in html format
+
+    libffmpegthumbnailer 2.1.0
+        https://github.com/dirkvdb/ffmpegthumbnailer
+        for thumbnailing camera video clips
+        disable with configure option: --disable-ffmpegthumbnailer
+
+    libpoppler-glib-dev 0.62
+        for displaying pdf files
+        disable with configure option: --disable-pdf
+
+    libimage-exiftool-perl
+        For the jpeg extraction plugin
+
+    liblcms2-utils
+        For the command-line tool jpgicc, used by the jpeg extraction plugin
+
+     ImageMagick
+     exiftran
+     gphoto2
+     ufraw
+     exiv2
+        Additional command-line tools for various operations
+
+    libheif
+        For displaying HEIF images
+
+    libwebp
+        For displaying webp images
+
+    libdjvulibre
+        For displaying DjVu images
+
+    libopenjp2
+        For displaying JP2 images
+
+    libraw 0.20
+        For displaying CR3 images
+
+    libarchive 3.4.3
+        For opening archive files (.ZIP, .RAR etc.)
+
+    yelp-tools
+        For creating the Help files
+
+### Code hackers:
+
+If you plan on making any major changes to the code that will be offered for
+inclusion to the main source, please contact us first - so that we can avoid
+duplication of effort.
+                                                         The Geeqie Team
 
-     Kjell Morgenstern
-         for random slide show speedup patch
+### Known bugs:
 
-     And...
-         Thanks to the users for finding Geeqie useful.
+See the Geeqie Bug Tracker at <https://github.com/BestImageViewer/geeqie/issues>