Commit aac4ae77 authored by Romain Bignon's avatar Romain Bignon

Merge remote branch 'cbenz/debian_packages'

Conflicts:
	.gitignore
parents ca39a323 88385dac
......@@ -6,3 +6,4 @@ Session.vim
build
dist
deb
MANIFEST.in
Weboob installation
===================
Like any Python package using setuptools, Weboob can be installed in normal or
development mode.
Like any Python package using setuptools, Weboob can be installed:
* from eggs
* from Debian packages
* from setup.py in install mode or in development mode
Weboob is distributed with many packages. There is one package for the core
From Eggs
---------
Weboob is distributed using many packages. There is one package for the core
library, many packages for backends (grouped by capabilities), and one package
for each application.
To install:
TODO: no packages released for the moment
Eggs install
------------
To uninstall:
TODO: no packages released for the moment
Call the helper script which will build the packages and install them all:
# ./tools/all_packages.sh install
From Debian packages
--------------------
To uninstall:
* remove the Weboob eggs:
# rm -rf /usr/lib/python2.5/site-packages/weboob_*.egg
* remove the weboob lines in
/usr/lib/python2.5/site-packages/easy-install.pth
Install from the Weboob repository:
TODO: no Debian repository exists
For developers: build yourself Debian packages using
$ ./tools/packaging/create_debian_packages.sh
Development mode
----------------
From setup.py
-------------
The install mode copies files to /usr/lib/python2.5/site-packages
or /usr/local/lib/python2.6/dist-packages
The development mode doesn't copy files, but it creates an egg-link
which points to the development directory.
......@@ -32,35 +43,18 @@ It is useful for development when files often change.
# ./setup.py develop
Creates /usr/lib/python2.5/site-packages/weboob_dev.egg-link
or /usr/local/lib/python2.6/dist-packages/weboob_dev.egg-link
Scripts are not copied to /usr/bin, so you must launch them with:
$ ./scripts/videoob (for example)
To uninstall, remove this egg-link and remove the weboob_dev line in
/usr/lib/python2.5/site-packages/easy-install.pth
Debian note
-----------
When using Debian, it is advised to install Python Debian packages, and not the
PyPI ones (when they are available).
To achieve this, use the --no-deps option of setup.py:
If you don't want to install all the dependencies, use the --no-deps option:
# ./setup.py develop --no-deps
and install dependencies by hand from your distribution packages, or from PyPI
using easy_install, or the more modern pip.
Scripts are copied to /usr/bin.
Then, please install the following packages before installing Weboob:
* pyqt4-dev-tools
* python-dateutil
* python-feedparser
* python-gdata
* python-html5lib
* python-imaging
* python-lxml
* python-qt4
* python-qt4-phonon
* python-simplejson
* python-yaml
To uninstall, remove the egg-link and remove the weboob_dev line in
/usr/lib/python2.5/site-packages/easy-install.pth
or /usr/local/lib/python2.6/dist-packages/easy-install.pth
Bash completion
......
Weboob is a project which provides a core library, backends and applications.
The core library defines capabilities: features common to various websites. For
example, http://www.youtube.com and http://www.dailymotion.com are both videos
providers: Weboob defines the “ICapVideo” capability.
Each backend interfaces a website and implements one or many of these
capabilities. Backends can be configured, which means that the end-user can
provide personal information to access the underlaying website (login/password
for example).
Applications offer the ability to the end-user to work with many backends in
parallel, in a multi-threaded way. For example, one could search a video on
many providers websites. Applications are toolkit-agnostic. They can use Gtk,
Qt or text-only, more adapted to reuse data through pipes.
The core library provides base classes which help the developer to write
backends and applications.
Weboob is written in Python and is distributed under the GPLv3 license.
......@@ -33,10 +33,27 @@ setup(
description='Weboob, Web Out Of Browsers - core library',
author='Romain Bignon',
author_email='weboob@lists.symlink.me',
maintainer='Christophe Benz',
maintainer_email='christophe.benz@gmail.com',
license='GPLv3',
url='http://www.weboob.org',
packages=find_packages(),
scripts=[os.path.join('scripts', script) for script in os.listdir('scripts')],
install_requires=[
'ClientForm', # python-clientform
'elementtidy', # python-elementtidy
'FeedParser', # python-feedparser
'gdata', # python-gdata
'html5lib', # python-html5lib
'lxml', # python-lxml
'Mako', # python-mako
'mechanize', # python-mechanize
'PIL', # python-imaging
'PyQt', # python-qt4
'python-dateutil', # python-dateutil
'PyYAML', # python-yaml
'Routes', # python-routes
'simplejson', # python-simplejson
'WebOb', # python-webob
],
)
include weboob/backends/bnporc/data/*
include weboob/backends/aum/data/*
This package provides a dialog box used to configure backends.
This dialog box can be integrated in a Qt GUI.
......@@ -4,8 +4,6 @@ SCRIPT_DIRNAME=$(dirname $0)
[ -z "$1" ] && echo "no command provided" && exit 1
COMMAND="$1"
SETUP_PY_LIST="
$SCRIPT_DIRNAME/setup.py.d/core.py
$SCRIPT_DIRNAME/setup.py.d/core-qt.py
......@@ -37,5 +35,5 @@ $SCRIPT_DIRNAME/setup.py.d/wetboobs.py
for f in $SETUP_PY_LIST
do
python $f clean --all
python $f "$COMMAND"
python $f $@
done
This package was debianized by Christophe Benz <christophe.benz@gmail.com>
It was downloaded from : http://www.weboob.org
Upstream Authors:
Romain Bignon <weboob@lists.symlink.me>
Christophe Benz <weboob@lists.symlink.me>
Copyright:
See each source file for effective copyright.
License:
This package 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.
This package 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 package; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
On Debian systems, the complete text of the GNU General
Public License can be found in `/usr/share/common-licenses/GPL-3'.
#!/bin/sh
#
# This script generates one .deb packages for Weboob.
# It is based on python-stdeb setuptools extension.
#
# To accelerate the procedure, it is advised to disable the stdeb
# automatic depencies search feature.
# This requires a patch:
# # patch -p0 < stdeb.patch
[ ! -d /usr/share/pyshared/stdeb ] && echo 'Please install the python-stdeb package' && exit
FILEPATH="$1"
DEB_DIRPATH="$PWD/deb"
DIST_DIRPATH="$PWD/dist"
SCRIPT_DIRPATH=$(dirname $(readlink -f "$0"))
PKGNAME=$(basename $FILEPATH .py)
rm -f MANIFEST.in
MANIFEST_IN=$SCRIPT_DIRPATH/MANIFEST.in.d/$PKGNAME
[ -f $MANIFEST_IN ] && ln -s $MANIFEST_IN MANIFEST.in
README=$SCRIPT_DIRPATH/README.d/$PKGNAME
[ -f $README ] && mv README README.old && ln -s $README README
python $FILEPATH sdist
cd $DIST_DIRPATH
TARGZ=$(find -maxdepth 1 -regex ".*$PKGNAME-[0-9]\.[0-9]\.tar\.gz")
[ ! -f $TARGZ ] && echo "$TARGZ not found" && exit
tar xf $TARGZ
TARGZ_DIRPATH=$(basename $TARGZ .tar.gz)
[ ! -d $TARGZ_DIRPATH ] && echo "$TARGZ_DIRPATH not found" && exit
rm -f $TARGZ
cd $TARGZ_DIRPATH
ln -s $FILEPATH setup.py
[ -f $MANIFEST_IN ] && ln -sf $MANIFEST_IN MANIFEST.in
python setup.py --command-packages=stdeb.command sdist_dsc --extra-cfg-file $SCRIPT_DIRPATH/stdeb.cfg --copyright-file $SCRIPT_DIRPATH/copyright
[ ! -d deb_dist/$TARGZ_DIRPATH ] && echo "deb_dist/$TARGZ_DIRPATH not found" && exit
cd deb_dist/$TARGZ_DIRPATH
dpkg-buildpackage -rfakeroot
cd ..
[ ! -f *.deb ] && echo "Debian package not found" && exit
mv *.deb *.diff.gz *.changes *.orig.tar.gz $DEB_DIRPATH
cd ../../..
[ -f $README ] && mv README.old README
#!/bin/sh
#
# This script generates the .deb packages for Weboob.
# It is based on python-stdeb setuptools extension.
#
# To accelerate the procedure, it is advised to disable the stdeb
# automatic depencies search feature.
# This requires a patch:
# # patch -p0 < stdeb.patch
[ ! -d /usr/share/pyshared/stdeb ] && echo 'Please install the python-stdeb package' && exit
DEB_DIRPATH="$PWD/deb"
DIST_DIRPATH="$PWD/dist"
SCRIPT_DIRPATH=$(dirname $(readlink -f "$0"))
SETUP_PY_LIST="
$SCRIPT_DIRPATH/setup.py.d/core.py
$SCRIPT_DIRPATH/setup.py.d/core-qt.py
$SCRIPT_DIRPATH/setup.py.d/core-webkit-formatter.py
$SCRIPT_DIRPATH/setup.py.d/backends-bank.py
$SCRIPT_DIRPATH/setup.py.d/backends-dating.py
$SCRIPT_DIRPATH/setup.py.d/backends-messages.py
$SCRIPT_DIRPATH/setup.py.d/backends-torrent.py
$SCRIPT_DIRPATH/setup.py.d/backends-travel.py
$SCRIPT_DIRPATH/setup.py.d/backends-video.py
$SCRIPT_DIRPATH/setup.py.d/backends-video-nsfw.py
$SCRIPT_DIRPATH/setup.py.d/backends-weather.py
$SCRIPT_DIRPATH/setup.py.d/boobank.py
$SCRIPT_DIRPATH/setup.py.d/havesex.py
$SCRIPT_DIRPATH/setup.py.d/masstransit.py
$SCRIPT_DIRPATH/setup.py.d/monboob.py
$SCRIPT_DIRPATH/setup.py.d/qboobmsg.py
$SCRIPT_DIRPATH/setup.py.d/qhavesex.py
$SCRIPT_DIRPATH/setup.py.d/qvideoob.py
$SCRIPT_DIRPATH/setup.py.d/qweboobcfg.py
$SCRIPT_DIRPATH/setup.py.d/travel.py
$SCRIPT_DIRPATH/setup.py.d/videoob.py
$SCRIPT_DIRPATH/setup.py.d/videoob_web.py
$SCRIPT_DIRPATH/setup.py.d/weboorrents.py
$SCRIPT_DIRPATH/setup.py.d/wetboobs.py
"
rm -rf $DEB_DIRPATH $DIST_DIRPATH MANIFEST.in *.egg-info
mkdir $DEB_DIRPATH
for filepath in $SETUP_PY_LIST
do
echo "========== Creating Debian package for $filepath"
$SCRIPT_DIRPATH/create_debian_package.sh $filepath
done
rm -rf $DIST_DIRPATH MANIFEST.in *.egg-info
echo
echo "Packages are in the $DEB_DIRPATH directory"
#!/bin/sh
# This script greps imports excluding standard packages (the list is not exhaustive).
# It helps finding dependencies on a given directory.
# Execute it on a setuptools sdist directory.
#
# For example:
# ./tools/packaging/setup.py.d/core.py sdist
# => generates dist/weboob-core-x.y.tar.gz
# cd dist
# tar xzf weboob-core-x.y.tar.gz
# cd ..
# ./tools/packaging/find_imports.sh dist/weboob-core-x.y/weboob
#
# Then, add the results to the setup.py.d files,
# and to the tools/packaging/stdeb.cfg for Debian dependencies.
[ -z "$1" ] && echo "Please specify a directory" && exit
grep 'import' "$1" -r --include=*.py | \
egrep -w -v '^.+:.*weboob|__import__|__future__|logging|threading|ConfigParser|from \..*|copy|'\
'optparse|functools|inspect|datetime|ordereddict|from\ HTMLParser|xml\.etree|sqlite3|'\
're|time|os|sys|hashlib|subprocess|stat|__builtin__|tempfile|urllib|urllib2|types|traceback|'\
'getpass|htmlentitydefs|random|StringIO|minidom|from\ email|from\ smtplib|from\ smtpd|asyncore|'\
'wsgiref'
echo
echo "Used parsers:"
grep "tools\.parsers" "$1" -r --include=*.py
......@@ -26,6 +26,8 @@ setup(
description='Weboob backends implementing bank capability',
author='Laurent Bachelier',
author_email='weboob@lists.symlink.me',
maintainer='Christophe Benz',
maintainer_email='christophe.benz@gmail.com',
license='GPLv3',
url='http://www.weboob.org/ICapBank',
namespace_packages = ['weboob', 'weboob.backends'],
......@@ -33,14 +35,19 @@ setup(
'weboob',
'weboob.backends',
'weboob.backends.bnporc',
'weboob.backends.bnporc.data',
'weboob.backends.bnporc.pages',
'weboob.backends.cragr',
'weboob.backends.cragr.pages',
],
include_package_data=True,
package_data={
'weboob.backends.bnporc': ['data/*'],
},
install_requires=[
'weboob-core',
# bnporc requires Image module
#'PIL',
'weboob-core', # python-weboob-core
'ClientForm', # python-clientform
# not Pypi packages:
# Suggests
# python-imaging
],
)
......@@ -26,6 +26,8 @@ setup(
description='Weboob backends implementing dating capability',
author='Romain Bignon',
author_email='weboob@lists.symlink.me',
maintainer='Christophe Benz',
maintainer_email='christophe.benz@gmail.com',
license='GPLv3',
url='http://www.weboob.org/ICapDating',
namespace_packages = ['weboob', 'weboob.backends'],
......@@ -33,12 +35,17 @@ setup(
'weboob',
'weboob.backends',
'weboob.backends.aum',
'weboob.backends.aum.data',
'weboob.backends.aum.optim',
'weboob.backends.aum.pages',
],
include_package_data=True,
package_data={
'weboob.backends.aum': ['data/*'],
},
install_requires=[
'weboob-core',
# html5lib, no egg?
'weboob-core', # python-weboob-core
'html5lib', # python-html5lib
'PIL', # python-imaging
'simplejson', # python-simplejson
],
)
......@@ -26,6 +26,8 @@ setup(
description='Weboob backends implementing messages capability',
author='Romain Bignon',
author_email='weboob@lists.symlink.me',
maintainer='Christophe Benz',
maintainer_email='christophe.benz@gmail.com',
license='GPLv3',
url='http://www.weboob.org/ICapMessages',
namespace_packages = ['weboob', 'weboob.backends'],
......@@ -38,7 +40,7 @@ setup(
'weboob.backends.fourchan.pages',
],
install_requires=[
'weboob-core',
# feedparser, no egg?
'weboob-core', # python-weboob-core
'FeedParser', # python-feedparser
],
)
......@@ -26,6 +26,8 @@ setup(
description='Weboob backends implementing torrent capability',
author='Romain Bignon',
author_email='weboob@lists.symlink.me',
maintainer='Christophe Benz',
maintainer_email='christophe.benz@gmail.com',
license='GPLv3',
url='http://www.weboob.org/ICapTorrent',
namespace_packages = ['weboob.backends'],
......@@ -36,6 +38,6 @@ setup(
'weboob.backends.gazelle.pages',
],
install_requires=[
'weboob-core',
'weboob-core', # python-weboob-core
],
)
......@@ -26,6 +26,8 @@ setup(
description='Weboob backends implementing travel capability',
author='Romain Bignon, Julien Hébert',
author_email='weboob@lists.symlink.me',
maintainer='Christophe Benz',
maintainer_email='christophe.benz@gmail.com',
license='GPLv3',
url='http://www.weboob.org/ICapTravel',
namespace_packages = ['weboob', 'weboob.backends'],
......@@ -37,6 +39,6 @@ setup(
'weboob.backends.transilien.pages',
],
install_requires=[
'weboob-core',
'weboob-core', # python-weboob-core
],
)
......@@ -26,6 +26,8 @@ setup(
description='Weboob backends implementing video capability - non-suitable for work',
author='Romain Bignon, Roger Philibert',
author_email='weboob@lists.symlink.me',
maintainer='Christophe Benz',
maintainer_email='christophe.benz@gmail.com',
license='GPLv3',
url='http://www.weboob.org/ICapVideo',
namespace_packages = ['weboob', 'weboob.backends'],
......@@ -38,6 +40,6 @@ setup(
'weboob.backends.youporn.pages',
],
install_requires=[
'weboob-core',
'weboob-core', # python-weboob-core
],
)
......@@ -26,6 +26,8 @@ setup(
description='Weboob backends implementing video capability',
author='Christophe Benz, Romain Bignon',
author_email='weboob@lists.symlink.me',
maintainer='Christophe Benz',
maintainer_email='christophe.benz@gmail.com',
license='GPLv3',
url='http://www.weboob.org/ICapVideo',
namespace_packages = ['weboob', 'weboob.backends'],
......@@ -35,14 +37,13 @@ setup(
'weboob.backends.ina',
'weboob.backends.ina.pages',
'weboob.backends.youtube',
'weboob.backends.youtube.pages',
],
include_package_data=True,
package_data={
'weboob.backends.ina': ['data/*'],
},
install_requires=[
'weboob-core',
# gdata, no egg?
'weboob-core', # python-weboob-core
'gdata', # python-gdata
],
)
......@@ -26,6 +26,8 @@ setup(
description='Weboob backends implementing weather capability',
author='Romain Bignon',
author_email='weboob@lists.symlink.me',
maintainer='Christophe Benz',
maintainer_email='christophe.benz@gmail.com',
license='GPLv3',
url='http://www.weboob.org/ICapWeather',
namespace_packages = ['weboob', 'weboob.backends'],
......@@ -35,6 +37,6 @@ setup(
'weboob.backends.yweather',
],
install_requires=[
'weboob-core',
'weboob-core', # python-weboob-core
],
)
......@@ -27,6 +27,8 @@ setup(
long_description='List your bank accounts and get info about them',
author='Christophe Benz, Romain Bignon',
author_email='weboob@lists.symlink.me',
maintainer='Christophe Benz',
maintainer_email='christophe.benz@gmail.com',
license='GPLv3',
url='http://www.weboob.org/Boobank',
namespace_packages = ['weboob', 'weboob.applications'],
......@@ -39,6 +41,6 @@ setup(
'scripts/boobank',
],
install_requires=[
'weboob-backends-bank',
'weboob-backends-bank', # python-weboob-backends-bank
],
)
......@@ -31,6 +31,8 @@ setup(
long_description='Configure backends using a Qt GUI.',
author='Romain Bignon',
author_email='weboob@lists.symlink.me',
maintainer='Christophe Benz',
maintainer_email='christophe.benz@gmail.com',
license='GPLv3',
url='http://www.weboob.org',
namespace_packages = [
......@@ -44,15 +46,11 @@ setup(
'weboob.applications.qweboobcfg',
'weboob.tools.application.qt',
],
data_files=[
('weboob/tools', ['weboob/tools/__init__.py']),
('weboob/tools/application', ['weboob/tools/application/__init__.py']),
],
scripts=[
'scripts/weboob-config-qt',
],
install_requires=[
'weboob-core',
#'PyQt',
'weboob-core', # python-weboob-core
'PyQt', # python-qt4
],
)
......@@ -26,6 +26,8 @@ setup(
description='Weboob, Web Out Of Browsers - core library, WebKit formatter',
author='Christophe Benz',
author_email='weboob@lists.symlink.me',
maintainer='Christophe Benz',
maintainer_email='christophe.benz@gmail.com',
license='GPLv3',
url='http://www.weboob.org',
classifiers=[
......@@ -38,22 +40,20 @@ setup(
'Topic :: Internet',
],
namespace_packages = [
'weboob',
'weboob',
'weboob.tools',
'weboob.tools.application',
'weboob.tools.application.formatters',
],
packages=[
'weboob',
'weboob',
'weboob.tools.application.formatters.webkit',
],
data_files=[
('weboob/tools', ['weboob/tools/__init__.py']),
('weboob/tools/application', ['weboob/tools/application/__init__.py']),
('weboob/tools/application/formatters', ['weboob/tools/application/formatters/__init__.py']),
],
install_requires=[
'weboob-core',
# webkit dependency, is not an egg?
'weboob-core', # python-weboob-core
# not Pypi packages:
# Depends
# python-gtk2
# python-webkit
],
)
......@@ -17,16 +17,23 @@
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
from __future__ import with_statement
from setuptools import setup
with open('README') as f:
readme_data = f.read()
setup(
name='weboob-core',
version='0.1',
description='Weboob, Web Out Of Browsers - core library',
# long_description=read('README'),
long_description=readme_data,
author='Romain Bignon',
author_email='weboob@lists.symlink.me',
maintainer='Christophe Benz',
maintainer_email='christophe.benz@gmail.com',
license='GPLv3',
url='http://www.weboob.org',
classifiers=[
......@@ -40,8 +47,8 @@ setup(
],
# keywords='',
namespace_packages = [
'weboob',
'weboob.applications',
'weboob',
'weboob.applications',
'weboob.tools',
'weboob.tools.application',
],
......@@ -62,10 +69,25 @@ setup(
],
scripts=[
'scripts/weboob-config',
'scripts/weboob-debug',
'scripts/weboob-tests',
# 'scripts/weboob-debug',
# 'scripts/weboob-tests',
],
install_requires=[
'python-dateutil',
'elementtidy', # python-elementtidy
'lxml', # python-lxml
'mechanize', # python-mechanize
'python-dateutil', # python-dateutil
'PyYAML', # python-yaml
],
# package name / Debian package name
#
# Recommends
# html2text / python-html2text
# PrettyTable / python-prettytable
#
# Suggests
# ClientForm / python-clientform
# ipython / ipython
# nose / python-nose
# pysqlite / python-pysqlite2
)
......@@ -27,6 +27,8 @@ setup(
long_description='Optimize your probabilities to have sex on dating websites',
author='Romain Bignon',
author_email='weboob@lists.symlink.me',
maintainer='Christophe Benz',
maintainer_email='christophe.benz@gmail.com',
license='GPLv3',
url='http://www.weboob.org/HaveSex',
namespace_packages = ['weboob', 'weboob.applications'],
......@@ -39,6 +41,6 @@ setup(
'scripts/havesex',
],
install_requires=[
'weboob-backends-dating',
'weboob-backends-dating', # python-weboob-backends-dating
],
)
......@@ -27,6 +27,8 @@ setup(
long_description='Search for train stations and departure timegrids',
author='Julien Hébert',
author_email='weboob@lists.symlink.me',
maintainer='Christophe Benz',
maintainer_email='christophe.benz@gmail.com',
license='GPLv3',
url='http://www.weboob.org/Masstransit',
namespace_packages = ['weboob', 'weboob.applications'],
......@@ -39,6 +41,9 @@ setup(
'scripts/masstransit',
],
install_requires=[
'weboob-backends-travel',
'weboob-backends-travel', # python-weboob-backends-travel
# python-gtk
# python-conic, on Maemo
# python-hildon, on Maemo
],
)
......@@ -26,6 +26,8 @@ setup(
description='Monboob, the Weboob e-mail swiss-knife',
author='Romain Bignon',
author_email='weboob@lists.symlink.me',
maintainer='Christophe Benz',
maintainer_email='christophe.benz@gmail.com',
license='GPLv3',
url='http://www.weboob.org/Monboob',
namespace_packages = ['weboob', 'weboob.applications'],
......@@ -38,6 +40,6 @@ setup(
'scripts/monboob',
],
install_requires=[
'weboob-backends-messages',
'weboob-backends-messages', # python-weboob-backends-messages
],
)
......@@ -30,6 +30,8 @@ setup(
description='QBoobMsg, the Weboob e-mail swiss-knife, Qt version',
author='Romain Bignon',
author_email='weboob@lists.symlink.me',
maintainer='Christophe Benz',
maintainer_email='christophe.benz@gmail.com',
license='GPLv3',
url='http://www.weboob.org/QBoobMsg',
namespace_packages = ['weboob', 'weboob.applications'],
......@@ -43,6 +45,7 @@ setup(
'scripts/qboobmsg',
],
install_requires=[
'weboob-backends-messages',
'weboob-core-qt', # python-weboob-core-qt
'weboob-backends-messages', # python-weboob-backends-messages