Bug fix: Non-portable functions
[geeqie.git] / README.md
index 41933cf..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.
 
 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.
 
-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)
+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).
 
-For more info see: http://www.geeqie.org/
+(Unless you first subscribe to the mailing list, you will not receive automated responses)
 
-Please send any question or suggestions to geeqie-devel@lists.sourceforge.net or
-open an issue on Github (https://github.com/BestImageViewer/geeqie/issues)
+Subscribe to the mailing list [here](https://www.freelists.org/list/geeqie).
+
+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
-    * Installation
-    * Description / Features
-    * Documentation (keyboard shortcuts)
-    * Editor command macros
-    * Additional comments
-    * Translation status
-    * Credits
+* Features
+* Downloading
+* Installation
+* 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.
+
+* Collections.
+
+* Support for stereoscopic images
+    * input: side-by-side (JPS) and MPO format
+    * output: single image, anaglyph, SBS, mirror, SBS half size (3DTV)
+
+*   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.
+
+* Preview and thumbnails of video clips can be displayed. Clips can be run via a defined external program.
+
+* 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.
+
+* 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.
+
+* 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.
+
+* Geeqie supports applying the colour profile embedded in an image along with the system monitor profile (or a user-specified monitor profile).
+
+* Geeqie sessions can be remotely controlled from external software, so it can be used as an image-viewer component of a bigger application.
+
+* 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").
 
-  Known bugs:
-
-    See the Geeqie Bug Tracker at https://github.com/BestImageViewer/geeqie/issues
-
-## Installation
-
-  Compilation: ./autogen.sh ; make
-  Show compile options: ./autogen.sh --help
-  General install: make install
-  Removal: make uninstall
-
-## Description / Features
-
-  Geeqie is a graphics file viewer. Basic features:
-
-    - 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)
-
-## 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
-
-     Sandokan <cortex@nextra.sk>
-     Ivan Priesol <priesol@iris-sk.sk>
-     Mgr. Peter Tuharsky <tuharsky@misbb.sk>
-         for Slovak translation
-
-     Rodrigo Sancho Senosiain <ruy_ikari@bigfoot.com>
-     Ariel Fermani <the_end@bbs.frc.utn.edu.ar>
-         for Spanish 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.
 
-     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
+* 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.
 
-     Fâtih Demir <kabalak@gmx.net>
-         for Turkish translation
+# <a name="downloading"></a>
+## Downloading
 
-     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
+Geeqie is available:  
 
-     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
+* as a package for Linux and BSD systems (See the [project web page](https://www.geeqie.org)).
 
-     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 [flatpak](https://flathub.org/apps/details/org.geeqie.Geeqie) from the [Flathub site](https://flathub.org/home).
 
-     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 an [AppImage](https://www.geeqie.org/AppImage/index.html) (Generated from the latest sources).
 
-     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 a [Homebrew](https://formulae.brew.sh/formula/geeqie) package for macOS.
 
-     Matej Erman <matej.erman@guest.arnes.si>
-         for Slovene translation
+However Geeqie is stable and you may compile the latest version from sources.
 
-     MÃtyÃs Tibor <templar@tempi.scene.hu>
-     Koblinger Egmont <egmont@uhulinux.hu>
-     Sári Gábor <saga@externet.hu>
-         for Hungarian translation
+There are two scripts which will download and compile the sources for you.
 
-     Wu Yulun <migr@operamail.com>
-     Charles Wang <charlesw1234cn@yahoo.com.cn>
-         for simplified Chinese 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`
 
-     H.J.Visser <H.J.Visser@harrie.mine.nu>
-     Tino Meinen <a.t.meinen@chello.nl>
-         for Dutch 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`
 
-     Lauri Nurmi <lanurmi@iki.fi>
-         for Finnish translation
 
-     Ilmar Kerm <ikerm@hot.ee>
-         for Estonian translation
+If you wish to compile the sources yourself you may download the latest version (if you have installed git) from here:
 
-     Volodymyr M. Lisivka <lvm@mystery.lviv.net>
-         for Ukrainian translation
+Either: `git clone git://www.geeqie.org/geeqie.git`
 
-     Birger Langkjer <birger.langkjer@image.dk>
-         for Danish translation
+Or: `git clone http://www.geeqie.org/git/geeqie.git`
 
-     Torgeir Ness Sundli <torgeir@mp3bil.no>
-         for Norwegian translation
+## Manual Installation
 
-     Jan Raska <jan.raska@tiscali.cz>
-     Michal Bukovjan <bukm@centrum.cz>
-         for Czech translation
+List compile options: `./autogen.sh --help`
 
-     Phanumas Thanyaboon <maskung@hotmail.com>
-         for Thai translation
+Common options:
+`./autogen.sh --disable-gtk3`,
 
-     Harald Ersch <hersch@romatsa.ro>
-         for Romanian translation
+Compilation: `./autogen.sh [options]; make -j`
 
-     pclouds <pclouds@vnlinux.org>
-         for Vietnamese translation
+Install: `[sudo] make install`
 
-     Tedi Heriyanto <tedi_h@gmx.net>
-         for Indonesian translation
+Removal: `[sudo] make uninstall`
 
-     Vladimir Petrov <vladux@mail.bg>
-         for Bulgarian 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.
 
-     Hans Öfverbeck <hans.ofverbeck@home.se>
-         for Swedish 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.
 
-     Youssef Assad <youssef@devcabal.org>
-         for Arabic translation
+However if you leave the folder intact, whenever new features or patches are available, execute:
 
-     catux.org <mecatxis@ya.com>
-         for Catalan translation
+`git pull; sudo make uninstall; sudo make maintainer-clean; ./autogen.sh; make -j<no. of cpu cores>; sudo make install`
 
-     Hyun-Jin Moon <moonhyunjin@gmail.com
-         for Korean translation
+Only the changed sources are downloaded, which makes this a quick operation.
 
-     Pavel Piatruk <berserker@neolocation.com>
-         for Belarusian translation
+Your configuration file, history file and desktop files are not affected by this process.
 
-     Piarres Beobide <pi@beobide.net>
-         for Basque translation
 
-     Antonio C. Codazzi <f_sophia@libero.it>
-         for Esperanto translation
 
-     Nikos Papadopoulos
-        for Greek translation
+## Notes and changes for the latest release
 
- Fixes, additions, and patches:
+See the NEWS file in the installation folder, or [Geeqie News at GitHub](https://github.com/BestImageViewer/geeqie/blob/master/NEWS)
 
-     Eric Swalens
-     Quy Tonthat
-         for initial Exif support.
+And either the ChangeLog file or [Geeqie ChangeLog](http://geeqie.org/cgi-bin/gitweb.cgi?p=geeqie.git;a=shortlog)
 
-     Daniel M. German <dmgerman at uvic.ca>
-         for Canon raw image support.
 
-     Lars Ellenberg
-         for Fujifilm raw image support.
+## Requirements
 
-     Diederen Damien <D.Diederen@student.ulg.ac.be>
-         for .xvpics thumbnail reading support.
+### 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
+
+    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
+
+    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
+
+    lua 5.1
+        www.lua.org
+        support for lua scripting
+        enabled by default
+        disable with configure option: --disable-lua
 
-     Uwe Ohse
-         for Exif enhancements, histogram and other patches
+    librsvg2-common
+        for displaying .svg images
 
-     Timo Horstschäfer
-         for customizable fullscreen overlay
+    libwmf0.2-7-gtk
+        for displaying .wmf images
 
-     Michael Mokeev
-         for print related enhancements
+    (see also "Additional pixbuf loaders" in the References section of the Help file)
 
-     Carles Pina i Estany
-         for copy path to clipboard patch
+    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>