___ _ _ ____ __ _| _ \___ __| |__| |___ _ _ |__ / / _` | _/ _ \/ _` / _` / -_) '_| |_ \ \__, |_| \___/\__,_\__,_\___|_| |___/ |___/ Media aggregator and podcast client ............................................................................ Copyright 2005-2016 Thomas Perl and the gPodder Team [ LICENSE ] gPodder is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. gPodder is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . [ DEPENDENCIES ] - Python 2.7.9 or newer http://python.org/ - Podcastparser 0.6.0 or newer http://gpodder.org/podcastparser/ - mygpoclient 1.7 or newer http://gpodder.org/mygpoclient/ - Python D-Bus bindings As an alternative to python-dbus on Mac OS X and Windows, you can use the dummy (no-op) D-Bus module provided in "tools/fake-dbus-module/". For quick testing, you can use the script tools/localdepends.py to install local copies of podcastparser and mygpoclient into "src/" from PyPI. With this, you get a self-contained gPodder CLI codebase. [ GTK UI - ADDITIONAL DEPENDENCIES ] - PyGTK 2.16 or newer http://pygtk.org/ [ OPTIONAL DEPENDENCIES ] - Bluetooth file sending: gnome-obex-send or bluetooth-sendto - Size detection on Windows: PyWin32 - Native OS X support: ige-mac-integration - MP3 Player Sync Support: python-eyed3 (0.7 or newer) - iPod Sync Support: python-gpod - Clickable links in GTK UI show notes: html5lib [ BUILD DEPENDENCIES ] - help2man - intltool [ TEST DEPENDENCIES ] - python-minimock - python-coverage - desktop-file-utils [ TESTING ] To run tests, use... make unittest To set a specific python binary set PYTHON: PYTHON=python2 make unittest Tests in gPodder are written in two different ways: - doctests (see http://docs.python.org/2/library/doctest.html) - unittests (see http://docs.python.org/2/library/unittest.html) If you want to add doctests, simply write the doctest and make sure that the module appears in "doctest_modules" in src/gpodder/unittests.py. For example, the doctests in src/gpodder/util.py are added as 'util' (the "gpodder" prefix must not be specified there). If you want to add unit tests for a specific module (ex: gpodder.model), you should add the tests as gpodder.test.model, or in other words: The file src/gpodder/model.py is tested by src/gpodder/test/model.py After you've added the test, make sure that the module appears in "test_modules" in src/gpodder/unittests.py - for the example above, the unittests in src/gpodder/test/model.py are added as 'model'. For unit tests, coverage reporting happens for the tested module (that's why the test module name should mirror the module to be tested). [ RUNNING AND INSTALLATION ] To run gPodder from source, use.. bin/gpodder for the Gtk+ UI bin/gpo for the command-line interface To install gPodder system-wide, use "make install". By default, this will install *all* UIs and all translations. The following environment variables are processed by setup.py: LINGUAS space-separated list of languages to install GPODDER_INSTALL_UIS space-separated list of UIs to install GPODDER_MANPATH_NO_SHARE if set, install manpages to $PREFIX/man/man1 See setup.py for a list of recognized UIs. Example: Install the CLI and Gtk UI with German and Dutch translations: export LINGUAS="de nl" export GPODDER_INSTALL_UIS="cli gtk" make install The "make install" target also supports DESTDIR and PREFIX for installing into an alternative root (default /) and prefix (default /usr): make install DESTDIR=tmp/ PREFIX=/usr/local/ [ PYTHON 3 SUPPORT ] For Python 3 support, we recommend you use the "gtk3" branch [from a git clone](https://github.com/gpodder/gpodder/wiki/Run-from-Git). There, gPodder has been updated to use to gtk3 and Python 3. [ PORTABLE MODE / ROAMING PROFILES ] The run-time environment variable GPODDER_HOME is used to set the location for storing the database and downloaded files. This can be used for multiple configurations or to store the download directory directly on a MP3 player or USB disk: export GPODDER_HOME=/media/usbdisk/gpodder-data/ OS X Specific Notes default GPODDER_HOME="$HOME/Library/Application Support/gPodder" default GPODDER_DOWNLOAD_DIR="$HOME/Library/Application Support/gPodder/download" These settings may be modified by editing the following file of the .app : /Applications/gPodder.app/Contents/MacOSX/_launcher Add and edit the following lines to alter the launch enviroment on OS X : export GPODDER_HOME="$HOME/Library/Application Support/gPodder" export GPODDER_DOWNLOAD_DIR="$HOME/Library/Application Support/gPodder/download" [ CHANGING THE DOWNLOAD DIRECTORY ] The run-time environment variable GPODDER_DOWNLOAD_DIR is used to set the location for storing the downloads only (independent of the data directory GPODDER_HOME): export GPODDER_DOWNLOAD_DIR=/media/BigDisk/Podcasts/ In this case, the database and settings will be stored in the default location, with the downloads stored in /media/BigDisk/Podcasts/. Another example would be to set both environment variables: export GPODDER_HOME=~/.config/gpodder/ export GPODDER_DOWNLOAD_DIR=~/Podcasts/ This will store the database and settings files in ~/.config/gpodder/ and the downloads in ~/Podcasts/. If GPODDER_DOWNLOAD_DIR is not set, $GPODDER_HOME/Downloads/ will be used if it is set. [ LOGGING ] By default, gPodder writes log files to $GPODDER_HOME/Logs/ and removes them after a certain amount of times. To avoid this behavior, you can set the environment variable GPODDER_WRITE_LOGS to "no", e.g: export GPODDER_WRITE_LOGS=no [ EXTENSIONS ] Extensions are normally loaded from gPodder's "extensions/" folder (in share/gpodder/extensions/) and from $GPODDER_HOME/Extensions/ - you can override this by setting an environment variable: export GPODDER_EXTENSIONS="/path/to/extension1.py extension2.py" In addition to that, if you want to disable loading of all extensions, you can do this by setting the following environment variable to a non- empty value: export GPODDER_DISABLE_EXTENSIONS=yes If you want to report a bug, please try to disable all extensions and check if the bug still appears to see if an extension causes the bug. [ MORE INFORMATION ] - Homepage http://gpodder.org/ - Bug tracker https://github.com/gpodder/gpodder/issues - Mailing list http://freelists.org/list/gpodder - IRC channel #gpodder on irc.freenode.net ............................................................................ Last updated: 2016-11-30 by Thomas Perl