diff --git a/.gitignore b/.gitignore index ba250443..c2b4dbb9 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ Session.vim build dist deb +MANIFEST.in diff --git a/INSTALL b/INSTALL index 00d66872..eaab8f46 100644 --- a/INSTALL +++ b/INSTALL @@ -1,30 +1,41 @@ 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. - -Eggs install ------------- - -Call the helper script which will build the packages and install them all: - -# ./tools/all_packages.sh install +To install: +TODO: no packages released for the moment 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 +TODO: no packages released for the moment -Development mode ----------------- +From Debian packages +-------------------- + +Install from the Weboob repository: +TODO: no Debian repository exists + +For developers: build yourself Debian packages using +$ ./tools/packaging/create_debian_packages.sh + + +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. -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 +Scripts are copied to /usr/bin. + +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 diff --git a/README b/README new file mode 100644 index 00000000..519b226a --- /dev/null +++ b/README @@ -0,0 +1,20 @@ +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. diff --git a/setup.py b/setup.py index 98e2f191..d8a1b8a7 100755 --- a/setup.py +++ b/setup.py @@ -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 ], ) diff --git a/tools/packaging/MANIFEST.in.d/backends-bank b/tools/packaging/MANIFEST.in.d/backends-bank new file mode 100644 index 00000000..878ccf52 --- /dev/null +++ b/tools/packaging/MANIFEST.in.d/backends-bank @@ -0,0 +1 @@ +include weboob/backends/bnporc/data/* diff --git a/tools/packaging/MANIFEST.in.d/backends-dating b/tools/packaging/MANIFEST.in.d/backends-dating new file mode 100644 index 00000000..092769aa --- /dev/null +++ b/tools/packaging/MANIFEST.in.d/backends-dating @@ -0,0 +1 @@ +include weboob/backends/aum/data/* diff --git a/tools/packaging/README.d/core-qt b/tools/packaging/README.d/core-qt new file mode 100644 index 00000000..ce1ef259 --- /dev/null +++ b/tools/packaging/README.d/core-qt @@ -0,0 +1,2 @@ +This package provides a dialog box used to configure backends. +This dialog box can be integrated in a Qt GUI. diff --git a/tools/all_packages.sh b/tools/packaging/all_packages.sh similarity index 96% rename from tools/all_packages.sh rename to tools/packaging/all_packages.sh index f7109bb5..fefeb11c 100755 --- a/tools/all_packages.sh +++ b/tools/packaging/all_packages.sh @@ -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 diff --git a/tools/packaging/copyright b/tools/packaging/copyright new file mode 100644 index 00000000..89aed629 --- /dev/null +++ b/tools/packaging/copyright @@ -0,0 +1,29 @@ +This package was debianized by Christophe Benz + +It was downloaded from : http://www.weboob.org + +Upstream Authors: + Romain Bignon + Christophe Benz + +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'. diff --git a/tools/packaging/create_debian_package.sh b/tools/packaging/create_debian_package.sh new file mode 100755 index 00000000..3104e4d2 --- /dev/null +++ b/tools/packaging/create_debian_package.sh @@ -0,0 +1,44 @@ +#!/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 diff --git a/tools/packaging/create_debian_packages.sh b/tools/packaging/create_debian_packages.sh new file mode 100755 index 00000000..09760180 --- /dev/null +++ b/tools/packaging/create_debian_packages.sh @@ -0,0 +1,58 @@ +#!/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" diff --git a/tools/packaging/find_imports.sh b/tools/packaging/find_imports.sh new file mode 100755 index 00000000..d8eb18d1 --- /dev/null +++ b/tools/packaging/find_imports.sh @@ -0,0 +1,28 @@ +#!/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 diff --git a/tools/setup.py.d/backends-bank.py b/tools/packaging/setup.py.d/backends-bank.py similarity index 79% rename from tools/setup.py.d/backends-bank.py rename to tools/packaging/setup.py.d/backends-bank.py index 998248bd..35504b25 100755 --- a/tools/setup.py.d/backends-bank.py +++ b/tools/packaging/setup.py.d/backends-bank.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 ], ) diff --git a/tools/setup.py.d/backends-dating.py b/tools/packaging/setup.py.d/backends-dating.py similarity index 79% rename from tools/setup.py.d/backends-dating.py rename to tools/packaging/setup.py.d/backends-dating.py index 622e2c8e..a59df629 100755 --- a/tools/setup.py.d/backends-dating.py +++ b/tools/packaging/setup.py.d/backends-dating.py @@ -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 ], ) diff --git a/tools/setup.py.d/backends-messages.py b/tools/packaging/setup.py.d/backends-messages.py similarity index 88% rename from tools/setup.py.d/backends-messages.py rename to tools/packaging/setup.py.d/backends-messages.py index f27c31b1..2ad685a2 100755 --- a/tools/setup.py.d/backends-messages.py +++ b/tools/packaging/setup.py.d/backends-messages.py @@ -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 ], ) diff --git a/tools/setup.py.d/backends-torrent.py b/tools/packaging/setup.py.d/backends-torrent.py similarity index 90% rename from tools/setup.py.d/backends-torrent.py rename to tools/packaging/setup.py.d/backends-torrent.py index b481af3d..4fef7f49 100755 --- a/tools/setup.py.d/backends-torrent.py +++ b/tools/packaging/setup.py.d/backends-torrent.py @@ -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 ], ) diff --git a/tools/setup.py.d/backends-travel.py b/tools/packaging/setup.py.d/backends-travel.py similarity index 91% rename from tools/setup.py.d/backends-travel.py rename to tools/packaging/setup.py.d/backends-travel.py index 8e49ebf4..35ed14fe 100755 --- a/tools/setup.py.d/backends-travel.py +++ b/tools/packaging/setup.py.d/backends-travel.py @@ -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 ], ) diff --git a/tools/setup.py.d/backends-video-nsfw.py b/tools/packaging/setup.py.d/backends-video-nsfw.py similarity index 91% rename from tools/setup.py.d/backends-video-nsfw.py rename to tools/packaging/setup.py.d/backends-video-nsfw.py index 1bb5d560..6ad07da1 100755 --- a/tools/setup.py.d/backends-video-nsfw.py +++ b/tools/packaging/setup.py.d/backends-video-nsfw.py @@ -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 ], ) diff --git a/tools/setup.py.d/backends-video.py b/tools/packaging/setup.py.d/backends-video.py similarity index 89% rename from tools/setup.py.d/backends-video.py rename to tools/packaging/setup.py.d/backends-video.py index a3714e9e..4a382ed9 100755 --- a/tools/setup.py.d/backends-video.py +++ b/tools/packaging/setup.py.d/backends-video.py @@ -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 ], ) diff --git a/tools/setup.py.d/backends-weather.py b/tools/packaging/setup.py.d/backends-weather.py similarity index 90% rename from tools/setup.py.d/backends-weather.py rename to tools/packaging/setup.py.d/backends-weather.py index 80765c7b..da80a287 100755 --- a/tools/setup.py.d/backends-weather.py +++ b/tools/packaging/setup.py.d/backends-weather.py @@ -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 ], ) diff --git a/tools/setup.py.d/boobank.py b/tools/packaging/setup.py.d/boobank.py similarity index 90% rename from tools/setup.py.d/boobank.py rename to tools/packaging/setup.py.d/boobank.py index b45bb0d2..df2a5162 100755 --- a/tools/setup.py.d/boobank.py +++ b/tools/packaging/setup.py.d/boobank.py @@ -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 ], ) diff --git a/tools/setup.py.d/core-qt.py b/tools/packaging/setup.py.d/core-qt.py similarity index 89% rename from tools/setup.py.d/core-qt.py rename to tools/packaging/setup.py.d/core-qt.py index 974bf7e5..54905bbb 100755 --- a/tools/setup.py.d/core-qt.py +++ b/tools/packaging/setup.py.d/core-qt.py @@ -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 ], ) diff --git a/tools/setup.py.d/core-webkit-formatter.py b/tools/packaging/setup.py.d/core-webkit-formatter.py similarity index 83% rename from tools/setup.py.d/core-webkit-formatter.py rename to tools/packaging/setup.py.d/core-webkit-formatter.py index 2504d196..88a9037e 100755 --- a/tools/setup.py.d/core-webkit-formatter.py +++ b/tools/packaging/setup.py.d/core-webkit-formatter.py @@ -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 ], ) diff --git a/tools/setup.py.d/core.py b/tools/packaging/setup.py.d/core.py similarity index 71% rename from tools/setup.py.d/core.py rename to tools/packaging/setup.py.d/core.py index 451f20aa..9b72ded6 100755 --- a/tools/setup.py.d/core.py +++ b/tools/packaging/setup.py.d/core.py @@ -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 ) diff --git a/tools/setup.py.d/havesex.py b/tools/packaging/setup.py.d/havesex.py similarity index 90% rename from tools/setup.py.d/havesex.py rename to tools/packaging/setup.py.d/havesex.py index 1d07a3de..584175fd 100755 --- a/tools/setup.py.d/havesex.py +++ b/tools/packaging/setup.py.d/havesex.py @@ -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 ], ) diff --git a/tools/setup.py.d/masstransit.py b/tools/packaging/setup.py.d/masstransit.py similarity index 85% rename from tools/setup.py.d/masstransit.py rename to tools/packaging/setup.py.d/masstransit.py index 6f2bdbc2..a785ff64 100755 --- a/tools/setup.py.d/masstransit.py +++ b/tools/packaging/setup.py.d/masstransit.py @@ -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 ], ) diff --git a/tools/setup.py.d/monboob.py b/tools/packaging/setup.py.d/monboob.py similarity index 89% rename from tools/setup.py.d/monboob.py rename to tools/packaging/setup.py.d/monboob.py index 489144db..51f39203 100755 --- a/tools/setup.py.d/monboob.py +++ b/tools/packaging/setup.py.d/monboob.py @@ -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 ], ) diff --git a/tools/setup.py.d/qboobmsg.py b/tools/packaging/setup.py.d/qboobmsg.py similarity index 87% rename from tools/setup.py.d/qboobmsg.py rename to tools/packaging/setup.py.d/qboobmsg.py index 4789a970..23440f4f 100755 --- a/tools/setup.py.d/qboobmsg.py +++ b/tools/packaging/setup.py.d/qboobmsg.py @@ -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 ], ) diff --git a/tools/setup.py.d/qhavesex.py b/tools/packaging/setup.py.d/qhavesex.py similarity index 88% rename from tools/setup.py.d/qhavesex.py rename to tools/packaging/setup.py.d/qhavesex.py index 3b906072..c479be04 100755 --- a/tools/setup.py.d/qhavesex.py +++ b/tools/packaging/setup.py.d/qhavesex.py @@ -31,6 +31,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/QHaveSex', namespace_packages = ['weboob', 'weboob.applications'], @@ -44,7 +46,7 @@ setup( 'scripts/qhavesex', ], install_requires=[ - 'weboob-backends-dating', - #'yaml', + 'weboob-core-qt', # python-weboob-core-qt + 'weboob-backends-dating', # python-weboob-backends-dating ], ) diff --git a/tools/setup.py.d/qvideoob.py b/tools/packaging/setup.py.d/qvideoob.py similarity index 86% rename from tools/setup.py.d/qvideoob.py rename to tools/packaging/setup.py.d/qvideoob.py index d15a5cc4..cc12af04 100755 --- a/tools/setup.py.d/qvideoob.py +++ b/tools/packaging/setup.py.d/qvideoob.py @@ -31,6 +31,8 @@ setup( long_description='Search for videos on many websites, and get info about them', 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/QVideoob', namespace_packages = ['weboob', 'weboob.applications'], @@ -44,7 +46,8 @@ setup( 'scripts/qvideoob', ], install_requires=[ - 'weboob-backends-video', - # python-qt4-phonon + 'weboob-core-qt', # python-weboob-core-qt + 'weboob-backends-video', # python-weboob-backends-video + # python-qt4-phonon ], ) diff --git a/tools/setup.py.d/travel.py b/tools/packaging/setup.py.d/travel.py similarity index 89% rename from tools/setup.py.d/travel.py rename to tools/packaging/setup.py.d/travel.py index 5e03e67c..2bbbb308 100755 --- a/tools/setup.py.d/travel.py +++ b/tools/packaging/setup.py.d/travel.py @@ -27,6 +27,8 @@ setup( long_description='Search for train stations and departure timegrids', 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/Travel', namespace_packages = ['weboob', 'weboob.applications'], @@ -39,6 +41,6 @@ setup( 'scripts/travel', ], install_requires=[ - 'weboob-backends-travel', + 'weboob-backends-travel', # python-weboob-backends-travel ], ) diff --git a/tools/setup.py.d/videoob.py b/tools/packaging/setup.py.d/videoob.py similarity index 90% rename from tools/setup.py.d/videoob.py rename to tools/packaging/setup.py.d/videoob.py index f8481653..d86e159b 100755 --- a/tools/setup.py.d/videoob.py +++ b/tools/packaging/setup.py.d/videoob.py @@ -27,6 +27,8 @@ setup( long_description='Search for videos on many websites, and get info about them', 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/Videoob', namespace_packages = ['weboob', 'weboob.applications'], @@ -39,6 +41,6 @@ setup( 'scripts/videoob', ], install_requires=[ - 'weboob-backends-video', + 'weboob-backends-video', # python-weboob-backends-video ], ) diff --git a/tools/setup.py.d/videoob_web.py b/tools/packaging/setup.py.d/videoob_web.py similarity index 86% rename from tools/setup.py.d/videoob_web.py rename to tools/packaging/setup.py.d/videoob_web.py index 0b7c57cd..95276908 100755 --- a/tools/setup.py.d/videoob_web.py +++ b/tools/packaging/setup.py.d/videoob_web.py @@ -27,6 +27,8 @@ setup( long_description='Search for videos on many websites, and get info about them', 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/VideoobWeb', namespace_packages = ['weboob', 'weboob.applications'], @@ -41,6 +43,9 @@ setup( 'scripts/videoob-web-server', ], install_requires=[ - 'weboob-backends-video', + 'weboob-backends-video', # python-weboob-backends-video + 'Mako', # python-mako + 'Routes', # python-routes + 'WebOb', # python-webob ], ) diff --git a/tools/setup.py.d/weboorrents.py b/tools/packaging/setup.py.d/weboorrents.py similarity index 90% rename from tools/setup.py.d/weboorrents.py rename to tools/packaging/setup.py.d/weboorrents.py index 267271fb..389e0f01 100755 --- a/tools/setup.py.d/weboorrents.py +++ b/tools/packaging/setup.py.d/weboorrents.py @@ -27,6 +27,8 @@ setup( long_description='Search for torrents on many websites, and get info about them', 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/Weboorrents', namespace_packages = ['weboob', 'weboob.applications'], @@ -39,6 +41,6 @@ setup( 'scripts/weboorrents', ], install_requires=[ - 'weboob-backends-torrent', + 'weboob-backends-torrent', # python-weboob-backends-torrent ], ) diff --git a/tools/setup.py.d/wetboobs.py b/tools/packaging/setup.py.d/wetboobs.py similarity index 89% rename from tools/setup.py.d/wetboobs.py rename to tools/packaging/setup.py.d/wetboobs.py index 0c241068..6f4e19b4 100755 --- a/tools/setup.py.d/wetboobs.py +++ b/tools/packaging/setup.py.d/wetboobs.py @@ -26,6 +26,8 @@ setup( description='Wetboobs, the Weboob weather forecast 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/Wetboobs', namespace_packages = ['weboob', 'weboob.applications'], @@ -38,6 +40,6 @@ setup( 'scripts/wetboobs', ], install_requires=[ - 'weboob-backends-weather', + 'weboob-backends-weather', # python-weboob-backends-weather ], ) diff --git a/tools/packaging/stdeb.cfg b/tools/packaging/stdeb.cfg new file mode 100644 index 00000000..8dba38fe --- /dev/null +++ b/tools/packaging/stdeb.cfg @@ -0,0 +1,79 @@ +# core + +[weboob-core] +Depends = python-elementtidy, python-dateutil, python-lxml, python-mechanize, python-yaml +Recommends = python-prettytable, python-html2text, python-html5lib +Suggests = python-clientform, python-nose, ipython, python-pysqlite2 + +[weboob-core-qt] +Depends = python-weboob-core, python-qt4 + +[weboob-core-webkit-formatter] +Depends = python-weboob-core, python-gtk2, python-webkit + + +# backends + +[weboob-backends-bank] +Depends = python-weboob-core, python-clientform +Recommends = python-imaging + +[weboob-backends-dating] +Depends = python-weboob-core, python-html5lib, python-imaging + +[weboob-backends-messages] +Depends = python-weboob-core, python-feedparser + +[weboob-backends-torrent] +Depends = python-weboob-core + +[weboob-backends-travel] +Depends = python-weboob-core + +[weboob-backends-video-nsfw] +Depends = python-weboob-core + +[weboob-backends-video] +Depends = python-weboob-core, python-gdata + +[weboob-backends-weather] +Depends = python-weboob-core + + +# applications + +[weboob-boobank] +Depends = python-weboob-backends-bank + +[weboob-havesex] +Depends = python-weboob-backends-dating + +[weboob-masstransit] +Depends = python-weboob-backends-travel, python-conic, python-hildon + +[weboob-monboob] +Depends = python-weboob-backends-messages + +[weboob-qboobmsg] +Depends = python-weboob-backends-messages, python-weboob-core-qt + +[weboob-qhavesex] +Depends = python-weboob-backends-dating, python-weboob-core-qt + +[weboob-qvideoob] +Depends = python-weboob-backends-messages, python-weboob-core-qt, python-qt4-phonon + +[weboob-travel] +Depends = python-weboob-backends-travel + +[weboob-videoob] +Depends = python-weboob-backends-video + +[weboob-videoob-web] +Depends = python-weboob-backends-video, python-mako, python-routes, python-webob + +[weboob-weboorrents] +Depends = python-weboob-backends-torrent + +[weboob-wetboobs] +Depends = python-weboob-backends-weather diff --git a/tools/packaging/stdeb.patch b/tools/packaging/stdeb.patch new file mode 100644 index 00000000..c6bb504c --- /dev/null +++ b/tools/packaging/stdeb.patch @@ -0,0 +1,10 @@ +--- /dev/null 2010-07-21 23:28:33.036382748 +0200 ++++ /usr/share/pyshared/stdeb/util.py 2010-07-21 23:28:39.808445830 +0200 +@@ -254,6 +254,7 @@ + import pkg_resources + + depends = [] # This will be the return value from this function. ++ return depends + + parsed_reqs=[] +