Verified Commit 14b58c52 authored by mathieui's avatar mathieui

Update setup files

- remove “make uninstall” target which was broken a long time ago
- move very install action to the (alias “make install” to
  “python install”
- add some stuff to “make clean”
- update the to search the default config file using
  pkg_resources (more reliable than dirname(__file__))
- install the html doc only if available
- use README.rst for the long_description

- also, update the copyright notice to 2015
parent c38cddd0
Copyright (c) 2010-2014 Florent Le Coz and Mathieu Pasquet
Copyright (c) 2010-2015 Florent Le Coz and Mathieu Pasquet
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
include src/default_config.cfg
include data/default_config.cfg
include data/poezio.1
recursive-include data/ *
......@@ -14,21 +14,16 @@ clean:
find ./ -name \*.pyc -delete
find ./ -name \*.pyo -delete
find ./ -name \*~ -delete
find ./ -type d -name __pycache__ -delete
find ./ -name "#*#" -delete
rm -rf doc/build/
rm -rf poezio.egg-info
rm -rf dist
rm -rf build
rm -f src/*.so
install: all
python3 install --root=$(DESTDIR) --optimize=1
mkdir -p $(DESTDIR)$(prefix) $(DESTDIR)$(DOCDIR)/poezio/ $(DESTDIR)$(LOCALEDIR) $(DESTDIR)$(BINDIR)
cp -R doc/* $(DESTDIR)$(DOCDIR)/poezio/
rm -f $(DESTDIR)$(BINDIR)/poezio
rm -rf $(DESTDIR)$(DOCDIR)/poezio/
rm -rf $(DESTDIR)$(MANDIR)/man1/poezio.1
make -C doc/ html
......@@ -7,23 +7,47 @@ except ImportError:
import sys
import os
from os.path import basename, dirname, exists, join
from os import link, walk, unlink
module_poopt = Extension('poezio.poopt',
sources = ['src/pooptmodule.c'])
current_dir = dirname(__file__)
def get_relative_dir(folder, stopper):
Find the path from a directory to a pseudo-root in order to recreate
the filetree.
acc = []
last = basename(folder)
while last != stopper:
folder = dirname(folder)
last = basename(folder)
return join(*acc[::-1]) if acc else ''
current_dir = os.path.dirname(__file__)
def find_doc(before, path):
_files = []
stop = basename(path)
for root, dirs, files in walk(join(current_dir, 'doc', path)):
files_path = []
relative_root = get_relative_dir(root, stop)
for name in files:
files_path.append(join(root, name))
_files.append((join(before, relative_root), files_path))
return _files
module_poopt = Extension('poezio.poopt',
# Create a link to the config file (for packaging purposes)
if not os.path.exists(os.path.join(current_dir, 'src', 'default_config.cfg')):, 'data', 'default_config.cfg'),
os.path.join(current_dir, 'src', 'default_config.cfg'))
if not exists(join(current_dir, 'src', 'default_config.cfg')):
link(join(current_dir, 'data', 'default_config.cfg'),
join(current_dir, 'src', 'default_config.cfg'))
# identify the git version
git_dir = os.path.join(current_dir, '.git')
if os.path.exists(git_dir):
git_dir = join(current_dir, '.git')
if exists(git_dir):
import subprocess
result = subprocess.Popen(['git', '--git-dir', git_dir, 'describe'],
......@@ -37,51 +61,51 @@ if os.path.exists(git_dir):
version = '.dev1'
version="0.9" + version,
description="A console XMPP client",
"Poezio is a Free chat client aiming to reproduce the ease of use of most "
"IRC clients (e.g. weechat, irssi) while using the XMPP network."
"Documentation is available at",
ext_modules = [module_poopt],
url = '',
license = 'zlib',
download_url = '',
with open('README.rst', encoding='utf-8') as readme_fd:
author = 'Florent Le Coz',
author_email = '',
version="0.9" + version,
description="A console XMPP client",
maintainer = 'Mathieu Pasquet',
maintainer_email = '',
author='Florent Le Coz',
classifiers = ['Development Status :: 2 - Pre-Alpha',
'Topic :: Communications :: Chat',
'Environment :: Console :: Curses',
'Intended Audience :: End Users/Desktop',
'License :: OSI Approved :: zlib/libpng License',
'Natural Language :: English',
'Operating System :: Unix',
'Programming Language :: Python :: 3'
keywords = ['jabber', 'xmpp', 'client', 'chat', 'im', 'console'],
packages = ['poezio', 'poezio.core', 'poezio.tabs', '',
'poezio_plugins', 'poezio_plugins.gpg', 'poezio_themes'],
package_dir = {'poezio': 'src', 'poezio_plugins': 'plugins', 'poezio_themes': 'data/themes'},
package_data = {'poezio': ['default_config.cfg']},
scripts = ['scripts/poezio_gpg_export'],
entry_points={ 'console_scripts': [ 'poezio = poezio:main' ] },
data_files = [('share/man/man1/', ['data/poezio.1'])],
maintainer='Mathieu Pasquet',
install_requires = ['slixmpp',
extras_require = {'OTR plugin': 'python-potr>=1.0',
'Screen autoaway plugin': 'pyinotify==0.9.4'}
classifiers=['Development Status :: 2 - Pre-Alpha',
'Topic :: Communications :: Chat',
'Environment :: Console :: Curses',
'Intended Audience :: End Users/Desktop',
'License :: OSI Approved :: zlib/libpng License',
'Natural Language :: English',
'Operating System :: Unix',
'Programming Language :: Python :: 3.4',
'Programming Language :: Python :: 3 :: Only'],
keywords=['jabber', 'xmpp', 'client', 'chat', 'im', 'console'],
packages=['poezio', 'poezio.core', 'poezio.tabs', '',
'poezio_plugins', 'poezio_plugins.gpg', 'poezio_themes'],
package_dir={'poezio': 'src',
'poezio_plugins': 'plugins',
'poezio_themes': 'data/themes'},
package_data={'poezio': ['default_config.cfg']},
entry_points={'console_scripts': ['poezio = poezio:main']},
data_files=([('share/man/man1/', ['data/poezio.1']),
('share/poezio/', ['README.rst', 'COPYING', 'CHANGELOG'])]
+ find_doc('share/doc/poezio/html', 'source')
+ find_doc('share/doc/poezio/source', 'build/html')),
install_requires=['slixmpp', 'aiodns'],
extras_require={'OTR plugin': 'python-potr>=1.0',
'Screen autoaway plugin': 'pyinotify==0.9.4'})
# Remove the link afterwards
if os.path.exists(os.path.join(current_dir, 'src', 'default_config.cfg')):
os.unlink(os.path.join(current_dir, 'src', 'default_config.cfg'))
if exists(join(current_dir, 'src', 'default_config.cfg')):
unlink(join(current_dir, 'src', 'default_config.cfg'))
......@@ -15,6 +15,7 @@ DEFSECTION = "Poezio"
import logging.config
import os
import sys
import pkg_resources
from gettext import gettext as _
from configparser import RawConfigParser, NoOptionError, NoSectionError
......@@ -527,9 +528,8 @@ def run_cmdline_args(CONFIG_PATH):
# Copy a default file if none exists
if not path.isfile(options.filename):
default = path.join(path.dirname(__file__),
other = path.join(path.dirname(__file__), 'default_config.cfg')
default = path.join(path.dirname(__file__), '../data/default_config.cfg')
other = pkg_resources.resource_filename('poezio', 'default_config.cfg')
if path.isfile(default):
copy2(default, options.filename)
elif path.isfile(other):
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment