From 2198696c369d53bcaeb32cd5d25c526f76808ab4 Mon Sep 17 00:00:00 2001 From: Micah Anderson Date: Thu, 6 Jun 2013 16:33:05 -0400 Subject: initial debian packaging --- changes/bug_fix-pip-install | 1 - debian/changelog | 5 +++ debian/clean | 1 + debian/compat | 1 + debian/control | 12 ++++++ debian/leap-mx.doc | 3 ++ debian/rules | 6 +++ debian/source/format | 1 + .../gpg-keys/generated-2013-02-15_19-15-001.pub | Bin 2779 -> 0 bytes .../gpg-keys/generated-2013-02-15_19-15-001.sec | Bin 5453 -> 0 bytes .../gpg-keys/generated-2013-02-15_19-15-002.pub | Bin 2779 -> 0 bytes .../gpg-keys/generated-2013-02-15_19-15-002.sec | Bin 5453 -> 0 bytes .../gpg-keys/generated-2013-02-15_19-15-003.pub | Bin 2779 -> 0 bytes .../gpg-keys/generated-2013-02-15_19-15-003.sec | Bin 5453 -> 0 bytes pkg/utils/gpg-keys/gpg-batch-key-script | 45 --------------------- 15 files changed, 29 insertions(+), 46 deletions(-) delete mode 100644 changes/bug_fix-pip-install create mode 100644 debian/changelog create mode 100644 debian/clean create mode 100644 debian/compat create mode 100644 debian/control create mode 100644 debian/leap-mx.doc create mode 100755 debian/rules create mode 100644 debian/source/format delete mode 100644 pkg/utils/gpg-keys/generated-2013-02-15_19-15-001.pub delete mode 100644 pkg/utils/gpg-keys/generated-2013-02-15_19-15-001.sec delete mode 100644 pkg/utils/gpg-keys/generated-2013-02-15_19-15-002.pub delete mode 100644 pkg/utils/gpg-keys/generated-2013-02-15_19-15-002.sec delete mode 100644 pkg/utils/gpg-keys/generated-2013-02-15_19-15-003.pub delete mode 100644 pkg/utils/gpg-keys/generated-2013-02-15_19-15-003.sec delete mode 100644 pkg/utils/gpg-keys/gpg-batch-key-script diff --git a/changes/bug_fix-pip-install b/changes/bug_fix-pip-install deleted file mode 100644 index fcb5829..0000000 --- a/changes/bug_fix-pip-install +++ /dev/null @@ -1 +0,0 @@ - o Fix broken pip install diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 0000000..4340754 --- /dev/null +++ b/debian/changelog @@ -0,0 +1,5 @@ +leap-mx (0.2.2) unstable; urgency=low + + * Initial Debian package + + -- Micah Anderson Thu, 06 Jun 2013 16:20:55 -0400 diff --git a/debian/clean b/debian/clean new file mode 100644 index 0000000..4a664ba --- /dev/null +++ b/debian/clean @@ -0,0 +1 @@ +src/leap.mx.egg-info/* diff --git a/debian/compat b/debian/compat new file mode 100644 index 0000000..ec63514 --- /dev/null +++ b/debian/compat @@ -0,0 +1 @@ +9 diff --git a/debian/control b/debian/control new file mode 100644 index 0000000..78528af --- /dev/null +++ b/debian/control @@ -0,0 +1,12 @@ +Source: leap-mx +Maintainer: Micah Anderson +Section: python +Priority: optional +Build-Depends: python-setuptools (>= 0.6b3), python-all (>= 2.6.6-3), debhelper (>= 9) +Standards-Version: 3.9.4 + +Package: python-leap-mx +Architecture: all +Depends: ${misc:Depends}, ${python:Depends} +Description: An asynchronous, transparently-encrypting remailer for the L + An asynchronous, transparently-encrypting remailer using BigCouch/CouchDB and PGP/GnuPG, written in Twisted Python. diff --git a/debian/leap-mx.doc b/debian/leap-mx.doc new file mode 100644 index 0000000..875a55c --- /dev/null +++ b/debian/leap-mx.doc @@ -0,0 +1,3 @@ +../doc +../README.md +../VERSION.md diff --git a/debian/rules b/debian/rules new file mode 100755 index 0000000..bcebae9 --- /dev/null +++ b/debian/rules @@ -0,0 +1,6 @@ +#!/usr/bin/make -f + +%: + dh $@ --with python2 --buildsystem=python_distutils + + diff --git a/debian/source/format b/debian/source/format new file mode 100644 index 0000000..89ae9db --- /dev/null +++ b/debian/source/format @@ -0,0 +1 @@ +3.0 (native) diff --git a/pkg/utils/gpg-keys/generated-2013-02-15_19-15-001.pub b/pkg/utils/gpg-keys/generated-2013-02-15_19-15-001.pub deleted file mode 100644 index 1c8fd34..0000000 Binary files a/pkg/utils/gpg-keys/generated-2013-02-15_19-15-001.pub and /dev/null differ diff --git a/pkg/utils/gpg-keys/generated-2013-02-15_19-15-001.sec b/pkg/utils/gpg-keys/generated-2013-02-15_19-15-001.sec deleted file mode 100644 index 97a60e7..0000000 Binary files a/pkg/utils/gpg-keys/generated-2013-02-15_19-15-001.sec and /dev/null differ diff --git a/pkg/utils/gpg-keys/generated-2013-02-15_19-15-002.pub b/pkg/utils/gpg-keys/generated-2013-02-15_19-15-002.pub deleted file mode 100644 index 1cbf8d8..0000000 Binary files a/pkg/utils/gpg-keys/generated-2013-02-15_19-15-002.pub and /dev/null differ diff --git a/pkg/utils/gpg-keys/generated-2013-02-15_19-15-002.sec b/pkg/utils/gpg-keys/generated-2013-02-15_19-15-002.sec deleted file mode 100644 index f89cd97..0000000 Binary files a/pkg/utils/gpg-keys/generated-2013-02-15_19-15-002.sec and /dev/null differ diff --git a/pkg/utils/gpg-keys/generated-2013-02-15_19-15-003.pub b/pkg/utils/gpg-keys/generated-2013-02-15_19-15-003.pub deleted file mode 100644 index bc0ac12..0000000 Binary files a/pkg/utils/gpg-keys/generated-2013-02-15_19-15-003.pub and /dev/null differ diff --git a/pkg/utils/gpg-keys/generated-2013-02-15_19-15-003.sec b/pkg/utils/gpg-keys/generated-2013-02-15_19-15-003.sec deleted file mode 100644 index 397f44a..0000000 Binary files a/pkg/utils/gpg-keys/generated-2013-02-15_19-15-003.sec and /dev/null differ diff --git a/pkg/utils/gpg-keys/gpg-batch-key-script b/pkg/utils/gpg-keys/gpg-batch-key-script deleted file mode 100644 index 7e48db0..0000000 --- a/pkg/utils/gpg-keys/gpg-batch-key-script +++ /dev/null @@ -1,45 +0,0 @@ -%echo Generating keypair 001/003... -Key-Type: RSA -Key-Length: 4096 -Subkey-Type: RSA -Subkey-Length: 4096 -Name-Real: Louis Lingg -Name-Email: blackhole@leap.se -Name-Comment: Test Key 001/003 -Expire-Date: 2013-03-15 -Passphrase: leap -%pubring generated-2013-02-15_19-15-001.pub -%secring generated-2013-02-15_19-15-001.sec -%commit -%echo done. 001 keys out of 003 completed. - -%echo Generating keypair 002/003... -Key-Type: RSA -Key-Length: 4096 -Subkey-Type: RSA -Subkey-Length: 4096 -Name-Real: Louis Lingg -Name-Email: blackhole@leap.se -Name-Comment: Test Key 002/003 -Expire-Date: 2013-03-15 -Passphrase: leap -%pubring generated-2013-02-15_19-15-002.pub -%secring generated-2013-02-15_19-15-002.sec -%commit -%echo done. 002 keys out of 003 completed. - -%echo Generating keypair 003/003... -Key-Type: RSA -Key-Length: 4096 -Subkey-Type: RSA -Subkey-Length: 4096 -Name-Real: Louis Lingg -Name-Email: blackhole@leap.se -Name-Comment: Test Key 003/003 -Expire-Date: 2013-03-15 -Passphrase: leap -%pubring generated-2013-02-15_19-15-003.pub -%secring generated-2013-02-15_19-15-003.sec -%commit -%echo done. 003 keys out of 003 completed. - -- cgit v1.2.3 From 7fc33cd84a345d002d54444d8e504e1f70e62df3 Mon Sep 17 00:00:00 2001 From: Micah Anderson Date: Thu, 18 Jul 2013 11:43:34 -0400 Subject: update package to latest 0.2.2 version --- VERSION.md | 2 +- debian/patches/rename_tac | 202 +++++++++++++++++++++++++++++++++++++++++++ debian/patches/series | 1 + debian/pydist-overrides | 3 + pkg/requirements.pip | 4 +- pkg/utils/bootstrap | 2 +- pkg/utils/test_bootstrap | 2 +- setup.py | 2 +- src/leap/mx/__init__.py | 2 +- src/leap/mx/mail_receiver.py | 18 ++-- 10 files changed, 223 insertions(+), 15 deletions(-) create mode 100644 debian/patches/rename_tac create mode 100644 debian/patches/series create mode 100644 debian/pydist-overrides diff --git a/VERSION.md b/VERSION.md index b756111..43f6976 100644 --- a/VERSION.md +++ b/VERSION.md @@ -1,5 +1,5 @@ -[leap_mx, version 0.0.1] +[leap_mx, version 0.2.2] ------------------------ Authors: Isis Agora Lovecruft, 0x2cdb8b35 Website: https://leap.se diff --git a/debian/patches/rename_tac b/debian/patches/rename_tac new file mode 100644 index 0000000..efecc14 --- /dev/null +++ b/debian/patches/rename_tac @@ -0,0 +1,202 @@ +Index: mx/pkg/mx.tac +=================================================================== +--- mx.orig/pkg/mx.tac 2013-07-18 12:29:54.209755118 -0400 ++++ /dev/null 1970-01-01 00:00:00.000000000 +0000 +@@ -1,84 +0,0 @@ +-# -*- encoding: utf-8 -*- +-# mx.tac +-# Copyright (C) 2013 LEAP +-# +-# This program 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 program 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 . +- +-import sys +-import ConfigParser +- +-from functools import partial +- +-from leap.mx import couchdbhelper +-from leap.mx.mail_receiver import MailReceiver +-from leap.mx.alias_resolver import AliasResolverFactory +-from leap.mx.check_recipient_access import CheckRecipientAccessFactory +- +-try: +- from twisted.application import service, internet +- from twisted.internet import inotify +- from twisted.internet.endpoints import TCP4ServerEndpoint +- from twisted.python import filepath, log +- from twisted.python import usage +-except ImportError, ie: +- print "This software requires Twisted>=12.0.2, please see the README for" +- print "help on using virtualenv and pip to obtain requirements." +- +-config_file = "/etc/leap/mx.conf" +- +-config = ConfigParser.ConfigParser() +-config.read(config_file) +- +-user = config.get("couchdb", "user") +-password = config.get("couchdb", "password") +- +-server = config.get("couchdb", "server") +-port = config.get("couchdb", "port") +- +-alias_port = config.getint("alias map", "port") +-check_recipient_port = config.getint("check recipient", "port") +- +-cdb = couchdbhelper.ConnectedCouchDB(server, +- port=port, +- dbName="users", +- username=user, +- password=password) +- +- +-application = service.Application("LEAP MX") +- +-# Alias map +-alias_map = internet.TCPServer(alias_port, AliasResolverFactory(couchdb=cdb)) +-alias_map.setServiceParent(application) +- +-# Check recipient access +-check_recipient = internet.TCPServer(check_recipient_port, +- CheckRecipientAccessFactory(couchdb=cdb)) +-check_recipient.setServiceParent(application) +- +-# Mail receiver +-mail_couch_url_prefix = "http://%s:%s@%s:%s" % (user, +- password, +- server, +- port) +-directories = [] +-for section in config.sections(): +- if section in ("couchdb", "alias map", "check recipient"): +- continue +- to_watch = config.get(section, "path") +- recursive = config.getboolean(section, "recursive") +- directories.append([to_watch, recursive]) +- +-mr = MailReceiver(mail_couch_url_prefix, cdb, directories) +-mr.setServiceParent(application) +Index: mx/pkg/leap_mx.tac +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ mx/pkg/leap_mx.tac 2013-07-18 12:29:54.205755201 -0400 +@@ -0,0 +1,84 @@ ++# -*- encoding: utf-8 -*- ++# mx.tac ++# Copyright (C) 2013 LEAP ++# ++# This program 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 program 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 . ++ ++import sys ++import ConfigParser ++ ++from functools import partial ++ ++from leap.mx import couchdbhelper ++from leap.mx.mail_receiver import MailReceiver ++from leap.mx.alias_resolver import AliasResolverFactory ++from leap.mx.check_recipient_access import CheckRecipientAccessFactory ++ ++try: ++ from twisted.application import service, internet ++ from twisted.internet import inotify ++ from twisted.internet.endpoints import TCP4ServerEndpoint ++ from twisted.python import filepath, log ++ from twisted.python import usage ++except ImportError, ie: ++ print "This software requires Twisted>=12.0.2, please see the README for" ++ print "help on using virtualenv and pip to obtain requirements." ++ ++config_file = "/etc/leap/mx.conf" ++ ++config = ConfigParser.ConfigParser() ++config.read(config_file) ++ ++user = config.get("couchdb", "user") ++password = config.get("couchdb", "password") ++ ++server = config.get("couchdb", "server") ++port = config.get("couchdb", "port") ++ ++alias_port = config.getint("alias map", "port") ++check_recipient_port = config.getint("check recipient", "port") ++ ++cdb = couchdbhelper.ConnectedCouchDB(server, ++ port=port, ++ dbName="users", ++ username=user, ++ password=password) ++ ++ ++application = service.Application("LEAP MX") ++ ++# Alias map ++alias_map = internet.TCPServer(alias_port, AliasResolverFactory(couchdb=cdb)) ++alias_map.setServiceParent(application) ++ ++# Check recipient access ++check_recipient = internet.TCPServer(check_recipient_port, ++ CheckRecipientAccessFactory(couchdb=cdb)) ++check_recipient.setServiceParent(application) ++ ++# Mail receiver ++mail_couch_url_prefix = "http://%s:%s@%s:%s" % (user, ++ password, ++ server, ++ port) ++directories = [] ++for section in config.sections(): ++ if section in ("couchdb", "alias map", "check recipient"): ++ continue ++ to_watch = config.get(section, "path") ++ recursive = config.getboolean(section, "recursive") ++ directories.append([to_watch, recursive]) ++ ++mr = MailReceiver(mail_couch_url_prefix, cdb, directories) ++mr.setServiceParent(application) +Index: mx/pkg/leap_mx +=================================================================== +--- mx.orig/pkg/leap_mx 2013-07-18 11:42:29.458087240 -0400 ++++ mx/pkg/leap_mx 2013-07-18 12:32:06.762949814 -0400 +@@ -4,8 +4,9 @@ + + pidfile=/var/run/leap_mx.pid \ + rundir=/var/lib/leap_mx/ \ +-file=/usr/local/bin/mx.tac \ ++file=/usr/share/app/leap_mx.tac \ + logfile=/var/log/leap_mx.log ++twistd_path=/usr/bin/twistd + + [ -r /etc/default/leap_mx ] && . /etc/default/leap_mx + +@@ -17,7 +18,7 @@ + start) + echo -n "Starting leap_mx: twistd" + HOME="/var/lib/leap_mx/" \ +- start-stop-daemon --start --quiet --exec /usr/local/bin/twistd -- \ ++ start-stop-daemon --start --quiet --exec $twistd_path -- \ + --pidfile=$pidfile \ + --rundir=$rundir \ + --python=$file \ diff --git a/debian/patches/series b/debian/patches/series new file mode 100644 index 0000000..144577b --- /dev/null +++ b/debian/patches/series @@ -0,0 +1 @@ +rename_tac diff --git a/debian/pydist-overrides b/debian/pydist-overrides new file mode 100644 index 0000000..1035472 --- /dev/null +++ b/debian/pydist-overrides @@ -0,0 +1,3 @@ +leap.soledad soledad-common +leap.soledad_server soledad-server +leap.keymanager leap-keymanager diff --git a/pkg/requirements.pip b/pkg/requirements.pip index c09ce53..1bdb4dc 100644 --- a/pkg/requirements.pip +++ b/pkg/requirements.pip @@ -2,7 +2,9 @@ Twisted>=12.0.2 paisley>=0.3.1 ## XXX change me to whatever you name the package in pypi python-gnupg>=0.3.0 -leap.common>=0.2.3-dev +leap.soledad +leap.soledad_server +leap.keymanager>=0.2.1 ############### # Development # diff --git a/pkg/utils/bootstrap b/pkg/utils/bootstrap index b76a572..4e00d09 100755 --- a/pkg/utils/bootstrap +++ b/pkg/utils/bootstrap @@ -7,7 +7,7 @@ # # @author Isis Agora Lovecruft, 0x2cdb8b35 # @date 18 February 2013 -# @version 0.0.1 +# @version 0.2.2 ############################################################################## set -ex -- diff --git a/pkg/utils/test_bootstrap b/pkg/utils/test_bootstrap index f072d10..be32160 100755 --- a/pkg/utils/test_bootstrap +++ b/pkg/utils/test_bootstrap @@ -8,7 +8,7 @@ # # @author Isis Agora Lovecruft, 0x2cdb8b35 # @date 18 February 2013 -# @version 0.0.1 +# @version 0.2.2 ############################################################################## set -ex - diff --git a/setup.py b/setup.py index cc4c759..ce7c46b 100644 --- a/setup.py +++ b/setup.py @@ -48,7 +48,7 @@ else: ("/etc/init.d/", ["pkg/leap_mx"])] setup( name='leap.mx', - version="0.2.2-dev", + version="0.2.2", # bump also src/leap/mx/__init__ url="http://github.com/leapcode/leap_mx", license='AGPLv3+', diff --git a/src/leap/mx/__init__.py b/src/leap/mx/__init__.py index e3efc24..61c9a5c 100644 --- a/src/leap/mx/__init__.py +++ b/src/leap/mx/__init__.py @@ -17,4 +17,4 @@ """ Module initialization file for leap.mx . """ -__version__ = "0.2.2-dev" +__version__ = "0.2.2" diff --git a/src/leap/mx/mail_receiver.py b/src/leap/mx/mail_receiver.py index 2c04863..b4e0d18 100644 --- a/src/leap/mx/mail_receiver.py +++ b/src/leap/mx/mail_receiver.py @@ -31,10 +31,10 @@ from twisted.application.service import Service from twisted.internet import inotify from twisted.python import filepath, log -from leap.soledad import LeapDocument -from leap.soledad.backends.leap_backend import EncryptionSchemes -from leap.soledad.backends.couch import CouchDatabase -from leap.common.keymanager import openpgp +from leap.soledad.document import SoledadDocument +from leap.soledad.target import EncryptionSchemes +from leap.soledad_server.couch import CouchDatabase +from leap.keymanager import openpgp class MailReceiver(Service): @@ -104,13 +104,13 @@ class MailReceiver(Service): @type message: str @return: uuid, doc to sync with Soledad - @rtype: tuple(str, LeapDocument) + @rtype: tuple(str, SoledadDocument) """ uuid, pubkey = uuid_pubkey log.msg("Encrypting message to %s's pubkey" % (uuid,)) log.msg("Pubkey: %s" % (pubkey,)) - doc = LeapDocument(doc_id=str(pyuuid.uuid4())) + doc = SoledadDocument(doc_id=str(pyuuid.uuid4())) data = {'incoming': True, 'content': message} @@ -137,12 +137,12 @@ class MailReceiver(Service): def _export_message(self, uuid_doc): """ - Given a UUID and a LeapDocument, it saves it directly in the + Given a UUID and a SoledadDocument, it saves it directly in the couchdb that serves as a backend for Soledad, in a db accessible to the recipient of the mail - @param uuid_doc: tuple that holds the UUID and LeapDocument - @type uuid_doc: tuple(str, LeapDocument) + @param uuid_doc: tuple that holds the UUID and SoledadDocument + @type uuid_doc: tuple(str, SoledadDocument) @return: True if it's ok to remove the message, False otherwise -- cgit v1.2.3 From 1cb4c59bc3601d5083fc07d6a43887dbc8538018 Mon Sep 17 00:00:00 2001 From: Micah Anderson Date: Thu, 18 Jul 2013 12:45:09 -0400 Subject: rename mx.tac to leap_mx.tac and install it in the standard twisted /usr/share/apps directory --- debian/patches/rename_tac | 202 ---------------------------------------------- debian/patches/series | 1 - pkg/leap_mx | 5 +- pkg/leap_mx.tac | 84 +++++++++++++++++++ pkg/mx.tac | 84 ------------------- setup.py | 2 +- 6 files changed, 88 insertions(+), 290 deletions(-) delete mode 100644 debian/patches/rename_tac delete mode 100644 debian/patches/series create mode 100644 pkg/leap_mx.tac delete mode 100755 pkg/mx.tac diff --git a/debian/patches/rename_tac b/debian/patches/rename_tac deleted file mode 100644 index efecc14..0000000 --- a/debian/patches/rename_tac +++ /dev/null @@ -1,202 +0,0 @@ -Index: mx/pkg/mx.tac -=================================================================== ---- mx.orig/pkg/mx.tac 2013-07-18 12:29:54.209755118 -0400 -+++ /dev/null 1970-01-01 00:00:00.000000000 +0000 -@@ -1,84 +0,0 @@ --# -*- encoding: utf-8 -*- --# mx.tac --# Copyright (C) 2013 LEAP --# --# This program 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 program 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 . -- --import sys --import ConfigParser -- --from functools import partial -- --from leap.mx import couchdbhelper --from leap.mx.mail_receiver import MailReceiver --from leap.mx.alias_resolver import AliasResolverFactory --from leap.mx.check_recipient_access import CheckRecipientAccessFactory -- --try: -- from twisted.application import service, internet -- from twisted.internet import inotify -- from twisted.internet.endpoints import TCP4ServerEndpoint -- from twisted.python import filepath, log -- from twisted.python import usage --except ImportError, ie: -- print "This software requires Twisted>=12.0.2, please see the README for" -- print "help on using virtualenv and pip to obtain requirements." -- --config_file = "/etc/leap/mx.conf" -- --config = ConfigParser.ConfigParser() --config.read(config_file) -- --user = config.get("couchdb", "user") --password = config.get("couchdb", "password") -- --server = config.get("couchdb", "server") --port = config.get("couchdb", "port") -- --alias_port = config.getint("alias map", "port") --check_recipient_port = config.getint("check recipient", "port") -- --cdb = couchdbhelper.ConnectedCouchDB(server, -- port=port, -- dbName="users", -- username=user, -- password=password) -- -- --application = service.Application("LEAP MX") -- --# Alias map --alias_map = internet.TCPServer(alias_port, AliasResolverFactory(couchdb=cdb)) --alias_map.setServiceParent(application) -- --# Check recipient access --check_recipient = internet.TCPServer(check_recipient_port, -- CheckRecipientAccessFactory(couchdb=cdb)) --check_recipient.setServiceParent(application) -- --# Mail receiver --mail_couch_url_prefix = "http://%s:%s@%s:%s" % (user, -- password, -- server, -- port) --directories = [] --for section in config.sections(): -- if section in ("couchdb", "alias map", "check recipient"): -- continue -- to_watch = config.get(section, "path") -- recursive = config.getboolean(section, "recursive") -- directories.append([to_watch, recursive]) -- --mr = MailReceiver(mail_couch_url_prefix, cdb, directories) --mr.setServiceParent(application) -Index: mx/pkg/leap_mx.tac -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ mx/pkg/leap_mx.tac 2013-07-18 12:29:54.205755201 -0400 -@@ -0,0 +1,84 @@ -+# -*- encoding: utf-8 -*- -+# mx.tac -+# Copyright (C) 2013 LEAP -+# -+# This program 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 program 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 . -+ -+import sys -+import ConfigParser -+ -+from functools import partial -+ -+from leap.mx import couchdbhelper -+from leap.mx.mail_receiver import MailReceiver -+from leap.mx.alias_resolver import AliasResolverFactory -+from leap.mx.check_recipient_access import CheckRecipientAccessFactory -+ -+try: -+ from twisted.application import service, internet -+ from twisted.internet import inotify -+ from twisted.internet.endpoints import TCP4ServerEndpoint -+ from twisted.python import filepath, log -+ from twisted.python import usage -+except ImportError, ie: -+ print "This software requires Twisted>=12.0.2, please see the README for" -+ print "help on using virtualenv and pip to obtain requirements." -+ -+config_file = "/etc/leap/mx.conf" -+ -+config = ConfigParser.ConfigParser() -+config.read(config_file) -+ -+user = config.get("couchdb", "user") -+password = config.get("couchdb", "password") -+ -+server = config.get("couchdb", "server") -+port = config.get("couchdb", "port") -+ -+alias_port = config.getint("alias map", "port") -+check_recipient_port = config.getint("check recipient", "port") -+ -+cdb = couchdbhelper.ConnectedCouchDB(server, -+ port=port, -+ dbName="users", -+ username=user, -+ password=password) -+ -+ -+application = service.Application("LEAP MX") -+ -+# Alias map -+alias_map = internet.TCPServer(alias_port, AliasResolverFactory(couchdb=cdb)) -+alias_map.setServiceParent(application) -+ -+# Check recipient access -+check_recipient = internet.TCPServer(check_recipient_port, -+ CheckRecipientAccessFactory(couchdb=cdb)) -+check_recipient.setServiceParent(application) -+ -+# Mail receiver -+mail_couch_url_prefix = "http://%s:%s@%s:%s" % (user, -+ password, -+ server, -+ port) -+directories = [] -+for section in config.sections(): -+ if section in ("couchdb", "alias map", "check recipient"): -+ continue -+ to_watch = config.get(section, "path") -+ recursive = config.getboolean(section, "recursive") -+ directories.append([to_watch, recursive]) -+ -+mr = MailReceiver(mail_couch_url_prefix, cdb, directories) -+mr.setServiceParent(application) -Index: mx/pkg/leap_mx -=================================================================== ---- mx.orig/pkg/leap_mx 2013-07-18 11:42:29.458087240 -0400 -+++ mx/pkg/leap_mx 2013-07-18 12:32:06.762949814 -0400 -@@ -4,8 +4,9 @@ - - pidfile=/var/run/leap_mx.pid \ - rundir=/var/lib/leap_mx/ \ --file=/usr/local/bin/mx.tac \ -+file=/usr/share/app/leap_mx.tac \ - logfile=/var/log/leap_mx.log -+twistd_path=/usr/bin/twistd - - [ -r /etc/default/leap_mx ] && . /etc/default/leap_mx - -@@ -17,7 +18,7 @@ - start) - echo -n "Starting leap_mx: twistd" - HOME="/var/lib/leap_mx/" \ -- start-stop-daemon --start --quiet --exec /usr/local/bin/twistd -- \ -+ start-stop-daemon --start --quiet --exec $twistd_path -- \ - --pidfile=$pidfile \ - --rundir=$rundir \ - --python=$file \ diff --git a/debian/patches/series b/debian/patches/series deleted file mode 100644 index 144577b..0000000 --- a/debian/patches/series +++ /dev/null @@ -1 +0,0 @@ -rename_tac diff --git a/pkg/leap_mx b/pkg/leap_mx index da8a3c8..e9a68bb 100644 --- a/pkg/leap_mx +++ b/pkg/leap_mx @@ -4,8 +4,9 @@ PATH=/sbin:/bin:/usr/sbin:/usr/bin pidfile=/var/run/leap_mx.pid \ rundir=/var/lib/leap_mx/ \ -file=/usr/local/bin/mx.tac \ +file=/usr/share/app/leap_mx.tac \ logfile=/var/log/leap_mx.log +twistd_path=/usr/bin/twistd [ -r /etc/default/leap_mx ] && . /etc/default/leap_mx @@ -17,7 +18,7 @@ case "$1" in start) echo -n "Starting leap_mx: twistd" HOME="/var/lib/leap_mx/" \ - start-stop-daemon --start --quiet --exec /usr/local/bin/twistd -- \ + start-stop-daemon --start --quiet --exec $twistd_path -- \ --pidfile=$pidfile \ --rundir=$rundir \ --python=$file \ diff --git a/pkg/leap_mx.tac b/pkg/leap_mx.tac new file mode 100644 index 0000000..cdebba7 --- /dev/null +++ b/pkg/leap_mx.tac @@ -0,0 +1,84 @@ +# -*- encoding: utf-8 -*- +# mx.tac +# Copyright (C) 2013 LEAP +# +# This program 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 program 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 . + +import sys +import ConfigParser + +from functools import partial + +from leap.mx import couchdbhelper +from leap.mx.mail_receiver import MailReceiver +from leap.mx.alias_resolver import AliasResolverFactory +from leap.mx.check_recipient_access import CheckRecipientAccessFactory + +try: + from twisted.application import service, internet + from twisted.internet import inotify + from twisted.internet.endpoints import TCP4ServerEndpoint + from twisted.python import filepath, log + from twisted.python import usage +except ImportError, ie: + print "This software requires Twisted>=12.0.2, please see the README for" + print "help on using virtualenv and pip to obtain requirements." + +config_file = "/etc/leap/mx.conf" + +config = ConfigParser.ConfigParser() +config.read(config_file) + +user = config.get("couchdb", "user") +password = config.get("couchdb", "password") + +server = config.get("couchdb", "server") +port = config.get("couchdb", "port") + +alias_port = config.getint("alias map", "port") +check_recipient_port = config.getint("check recipient", "port") + +cdb = couchdbhelper.ConnectedCouchDB(server, + port=port, + dbName="users", + username=user, + password=password) + + +application = service.Application("LEAP MX") + +# Alias map +alias_map = internet.TCPServer(alias_port, AliasResolverFactory(couchdb=cdb)) +alias_map.setServiceParent(application) + +# Check recipient access +check_recipient = internet.TCPServer(check_recipient_port, + CheckRecipientAccessFactory(couchdb=cdb)) +check_recipient.setServiceParent(application) + +# Mail receiver +mail_couch_url_prefix = "http://%s:%s@%s:%s" % (user, + password, + server, + port) +directories = [] +for section in config.sections(): + if section in ("couchdb", "alias map", "check recipient"): + continue + to_watch = config.get(section, "path") + recursive = config.getboolean(section, "recursive") + directories.append([to_watch, recursive]) + +mr = MailReceiver(mail_couch_url_prefix, cdb, directories) +mr.setServiceParent(application) diff --git a/pkg/mx.tac b/pkg/mx.tac deleted file mode 100755 index cdebba7..0000000 --- a/pkg/mx.tac +++ /dev/null @@ -1,84 +0,0 @@ -# -*- encoding: utf-8 -*- -# mx.tac -# Copyright (C) 2013 LEAP -# -# This program 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 program 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 . - -import sys -import ConfigParser - -from functools import partial - -from leap.mx import couchdbhelper -from leap.mx.mail_receiver import MailReceiver -from leap.mx.alias_resolver import AliasResolverFactory -from leap.mx.check_recipient_access import CheckRecipientAccessFactory - -try: - from twisted.application import service, internet - from twisted.internet import inotify - from twisted.internet.endpoints import TCP4ServerEndpoint - from twisted.python import filepath, log - from twisted.python import usage -except ImportError, ie: - print "This software requires Twisted>=12.0.2, please see the README for" - print "help on using virtualenv and pip to obtain requirements." - -config_file = "/etc/leap/mx.conf" - -config = ConfigParser.ConfigParser() -config.read(config_file) - -user = config.get("couchdb", "user") -password = config.get("couchdb", "password") - -server = config.get("couchdb", "server") -port = config.get("couchdb", "port") - -alias_port = config.getint("alias map", "port") -check_recipient_port = config.getint("check recipient", "port") - -cdb = couchdbhelper.ConnectedCouchDB(server, - port=port, - dbName="users", - username=user, - password=password) - - -application = service.Application("LEAP MX") - -# Alias map -alias_map = internet.TCPServer(alias_port, AliasResolverFactory(couchdb=cdb)) -alias_map.setServiceParent(application) - -# Check recipient access -check_recipient = internet.TCPServer(check_recipient_port, - CheckRecipientAccessFactory(couchdb=cdb)) -check_recipient.setServiceParent(application) - -# Mail receiver -mail_couch_url_prefix = "http://%s:%s@%s:%s" % (user, - password, - server, - port) -directories = [] -for section in config.sections(): - if section in ("couchdb", "alias map", "check recipient"): - continue - to_watch = config.get(section, "path") - recursive = config.getboolean(section, "recursive") - directories.append([to_watch, recursive]) - -mr = MailReceiver(mail_couch_url_prefix, cdb, directories) -mr.setServiceParent(application) diff --git a/setup.py b/setup.py index ce7c46b..d80e7e9 100644 --- a/setup.py +++ b/setup.py @@ -44,7 +44,7 @@ else: # be automatically # placed by distutils, using whatever interpreter is # available. - data_files = [("/usr/local/bin/", ["pkg/mx.tac"]), + data_files = [("/usr/share/app/", ["pkg/leap_mx.tac"]), ("/etc/init.d/", ["pkg/leap_mx"])] setup( name='leap.mx', -- cgit v1.2.3 From b4339c680c1b21427121e3f44415995e5eb6dac8 Mon Sep 17 00:00:00 2001 From: Micah Anderson Date: Thu, 18 Jul 2013 12:46:57 -0400 Subject: fix package name to not be python-leap-mx --- debian/control | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/debian/control b/debian/control index 78528af..cfa808f 100644 --- a/debian/control +++ b/debian/control @@ -5,8 +5,8 @@ Priority: optional Build-Depends: python-setuptools (>= 0.6b3), python-all (>= 2.6.6-3), debhelper (>= 9) Standards-Version: 3.9.4 -Package: python-leap-mx +Package: leap-mx Architecture: all Depends: ${misc:Depends}, ${python:Depends} -Description: An asynchronous, transparently-encrypting remailer for the L - An asynchronous, transparently-encrypting remailer using BigCouch/CouchDB and PGP/GnuPG, written in Twisted Python. +Description: An asynchronous, transparently-encrypting remailer for the LEAP platform + An asynchronous, transparently-encrypting remailer using BigCouch/CouchDB and OpenPGP, written in Twisted Python. -- cgit v1.2.3 From c14940b81650bd78db39952be5f63fadeec9edbf Mon Sep 17 00:00:00 2001 From: Micah Anderson Date: Thu, 18 Jul 2013 15:17:39 -0400 Subject: add debian/copyright --- debian/copyright | 579 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 579 insertions(+) create mode 100644 debian/copyright diff --git a/debian/copyright b/debian/copyright new file mode 100644 index 0000000..520cf16 --- /dev/null +++ b/debian/copyright @@ -0,0 +1,579 @@ +Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: leap-mx +Upstream-Contact: info@leap.se +Source: + +Files: * +Copyright: Copyright (C) 2013 LEAP +License: AGPL + +Files: debian/* +Copyright: Copyright 2013 Micah Anderson +License: GPL-3+ + +License: GPL-3+ + On Debian systems, the complete text of the GNU General + Public License can be found in `/usr/share/common-licenses/GPL'. + +License: AGPL + Preamble + . + The GNU Affero General Public License is a free, copyleft license for software + and other kinds of works, specifically designed to ensure cooperation with the + community in the case of network server software. + . + The licenses for most software and other practical works are designed to take + away your freedom to share and change the works. By contrast, our General + Public Licenses are intended to guarantee your freedom to share and change all + versions of a program--to make sure it remains free software for all its users. + . + When we speak of free software, we are referring to freedom, not price. Our + General Public Licenses are designed to make sure that you have the freedom to + distribute copies of free software (and charge for them if you wish), that you + receive source code or can get it if you want it, that you can change the + software or use pieces of it in new free programs, and that you know you can do + these things. + . + Developers that use our General Public Licenses protect your rights with two + steps: (1) assert copyright on the software, and (2) offer you this License + which gives you legal permission to copy, distribute and/or modify the + software. + . + A secondary benefit of defending all users' freedom is that improvements made + in alternate versions of the program, if they receive widespread use, become + available for other developers to incorporate. Many developers of free software + are heartened and encouraged by the resulting cooperation. However, in the case + of software used on network servers, this result may fail to come about. The + GNU General Public License permits making a modified version and letting the + public access it on a server without ever releasing its source code to the + public. + . + The GNU Affero General Public License is designed specifically to ensure that, + in such cases, the modified source code becomes available to the community. It + requires the operator of a network server to provide the source code of the + modified version running there to the users of that server. Therefore, public + use of a modified version, on a publicly accessible server, gives the public + access to the source code of the modified version. + . + An older license, called the Affero General Public License and published by + Affero, was designed to accomplish similar goals. This is a different license, + not a version of the Affero GPL, but Affero has released a new version of the + Affero GPL which permits relicensing under this license. + . + The precise terms and conditions for copying, distribution and modification + follow. + . + TERMS AND CONDITIONS + . + 0. Definitions. + . + "This License" refers to version 3 of the GNU Affero General Public License. + . + "Copyright" also means copyright-like laws that apply to other kinds of works, + such as semiconductor masks. + . + "The Program" refers to any copyrightable work licensed under this + License. Each licensee is addressed as "you". "Licensees" and "recipients" may + be individuals or organizations. + . + To "modify" a work means to copy from or adapt all or part of the work in a + fashion requiring copyright permission, other than the making of an exact + copy. The resulting work is called a "modified version" of the earlier work or + a work "based on" the earlier work. + . + A "covered work" means either the unmodified Program or a work based on the + Program. + . + To "propagate" a work means to do anything with it that, without permission, + would make you directly or secondarily liable for infringement under applicable + copyright law, except executing it on a computer or modifying a private + copy. Propagation includes copying, distribution (with or without + modification), making available to the public, and in some countries other + activities as well. + . + To "convey" a work means any kind of propagation that enables other parties to + make or receive copies. Mere interaction with a user through a computer + network, with no transfer of a copy, is not conveying. + . + An interactive user interface displays "Appropriate Legal Notices" to the + extent that it includes a convenient and prominently visible feature that (1) + displays an appropriate copyright notice, and (2) tells the user that there is + no warranty for the work (except to the extent that warranties are provided), + that licensees may convey the work under this License, and how to view a copy + of this License. If the interface presents a list of user commands or options, + such as a menu, a prominent item in the list meets this criterion. + . + 1. Source Code. + . + The "source code" for a work means the preferred form of the work for making + modifications to it. "Object code" means any non-source form of a work. + . + A "Standard Interface" means an interface that either is an official standard + defined by a recognized standards body, or, in the case of interfaces specified + for a particular programming language, one that is widely used among developers + working in that language. + . + The "System Libraries" of an executable work include anything, other than the + work as a whole, that (a) is included in the normal form of packaging a Major + Component, but which is not part of that Major Component, and (b) serves only + to enable use of the work with that Major Component, or to implement a Standard + Interface for which an implementation is available to the public in source code + form. A "Major Component", in this context, means a major essential component + (kernel, window system, and so on) of the specific operating system (if any) on + which the executable work runs, or a compiler used to produce the work, or an + object code interpreter used to run it. + . + The "Corresponding Source" for a work in object code form means all the source + code needed to generate, install, and (for an executable work) run the object + code and to modify the work, including scripts to control those + activities. However, it does not include the work's System Libraries, or + general-purpose tools or generally available free programs which are used + unmodified in performing those activities but which are not part of the + work. For example, Corresponding Source includes interface definition files + associated with source files for the work, and the source code for shared + libraries and dynamically linked subprograms that the work is specifically + designed to require, such as by intimate data communication or control flow + between those subprograms and other parts of the work. + . + The Corresponding Source need not include anything that users can regenerate + automatically from other parts of the Corresponding Source. + . + The Corresponding Source for a work in source code form is that same work. + . + 2. Basic Permissions. + . + All rights granted under this License are granted for the term of copyright on + the Program, and are irrevocable provided the stated conditions are met. This + License explicitly affirms your unlimited permission to run the unmodified + Program. The output from running a covered work is covered by this License only + if the output, given its content, constitutes a covered work. This License + acknowledges your rights of fair use or other equivalent, as provided by + copyright law. + . + You may make, run and propagate covered works that you do not convey, without + conditions so long as your license otherwise remains in force. You may convey + covered works to others for the sole purpose of having them make modifications + exclusively for you, or provide you with facilities for running those works, + provided that you comply with the terms of this License in conveying all + material for which you do not control copyright. Those thus making or running + the covered works for you must do so exclusively on your behalf, under your + direction and control, on terms that prohibit them from making any copies of + your copyrighted material outside their relationship with you. + . + Conveying under any other circumstances is permitted solely under the + conditions stated below. Sublicensing is not allowed; section 10 makes it + unnecessary. + . + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + . + No covered work shall be deemed part of an effective technological measure + under any applicable law fulfilling obligations under article 11 of the WIPO + copyright treaty adopted on 20 December 1996, or similar laws prohibiting or + restricting circumvention of such measures. + . + When you convey a covered work, you waive any legal power to forbid + circumvention of technological measures to the extent such circumvention is + effected by exercising rights under this License with respect to the covered + work, and you disclaim any intention to limit operation or modification of the + work as a means of enforcing, against the work's users, your or third parties' + legal rights to forbid circumvention of technological measures. + . + 4. Conveying Verbatim Copies. + . + You may convey verbatim copies of the Program's source code as you receive it, + in any medium, provided that you conspicuously and appropriately publish on + each copy an appropriate copyright notice; keep intact all notices stating that + this License and any non-permissive terms added in accord with section 7 apply + to the code; keep intact all notices of the absence of any warranty; and give + all recipients a copy of this License along with the Program. + . + You may charge any price or no price for each copy that you convey, and you may + offer support or warranty protection for a fee. + . + 5. Conveying Modified Source Versions. + . + You may convey a work based on the Program, or the modifications to produce it + from the Program, in the form of source code under the terms of section 4, + provided that you also meet all of these conditions: + . + a) The work must carry prominent notices stating that you modified it, and + giving a relevant date. + . + b) The work must carry prominent notices stating that it is released under this + License and any conditions added under section 7. This requirement modifies the + requirement in section 4 to "keep intact all notices". + . + c) You must license the entire work, as a whole, under this License to anyone + who comes into possession of a copy. This License will therefore apply, along + with any applicable section 7 additional terms, to the whole of the work, and + all its parts, regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not invalidate + such permission if you have separately received it. + . + d) If the work has interactive user interfaces, each must display Appropriate + Legal Notices; however, if the Program has interactive interfaces that do not + display Appropriate Legal Notices, your work need not make them do so. + . + A compilation of a covered work with other separate and independent works, + which are not by their nature extensions of the covered work, and which are not + combined with it such as to form a larger program, in or on a volume of a + storage or distribution medium, is called an "aggregate" if the compilation and + its resulting copyright are not used to limit the access or legal rights of the + compilation's users beyond what the individual works permit. Inclusion of a + covered work in an aggregate does not cause this License to apply to the other + parts of the aggregate. + . + 6. Conveying Non-Source Forms. + . + You may convey a covered work in object code form under the terms of sections 4 + and 5, provided that you also convey the machine-readable Corresponding Source + under the terms of this License, in one of these ways: + . + a) Convey the object code in, or embodied in, a physical product (including a + physical distribution medium), accompanied by the Corresponding Source fixed on + a durable physical medium customarily used for software interchange. + . + b) Convey the object code in, or embodied in, a physical product (including a + physical distribution medium), accompanied by a written offer, valid for at + least three years and valid for as long as you offer spare parts or customer + support for that product model, to give anyone who possesses the object code + either (1) a copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical medium + customarily used for software interchange, for a price no more than your + reasonable cost of physically performing this conveying of source, or (2) + access to copy the Corresponding Source from a network server at no charge. + . + c) Convey individual copies of the object code with a copy of the written offer + to provide the Corresponding Source. This alternative is allowed only + occasionally and noncommercially, and only if you received the object code with + such an offer, in accord with subsection 6b. + . + d) Convey the object code by offering access from a designated place (gratis or + for a charge), and offer equivalent access to the Corresponding Source in the + same way through the same place at no further charge. You need not require + recipients to copy the Corresponding Source along with the object code. If the + place to copy the object code is a network server, the Corresponding Source may + be on a different server (operated by you or a third party) that supports + equivalent copying facilities, provided you maintain clear directions next to + the object code saying where to find the Corresponding Source. Regardless of + what server hosts the Corresponding Source, you remain obligated to ensure that + it is available for as long as needed to satisfy these requirements. + . + e) Convey the object code using peer-to-peer transmission, provided you inform + other peers where the object code and Corresponding Source of the work are + being offered to the general public at no charge under subsection 6d. + . + A separable portion of the object code, whose source code is excluded from the + Corresponding Source as a System Library, need not be included in conveying the + object code work. + . + A "User Product" is either (1) a "consumer product", which means any tangible + personal property which is normally used for personal, family, or household + purposes, or (2) anything designed or sold for incorporation into a + dwelling. In determining whether a product is a consumer product, doubtful + cases shall be resolved in favor of coverage. For a particular product received + by a particular user, "normally used" refers to a typical or common use of that + class of product, regardless of the status of the particular user or of the way + in which the particular user actually uses, or expects or is expected to use, + the product. A product is a consumer product regardless of whether the product + has substantial commercial, industrial or non-consumer uses, unless such uses + represent the only significant mode of use of the product. + . + "Installation Information" for a User Product means any methods, procedures, + authorization keys, or other information required to install and execute + modified versions of a covered work in that User Product from a modified + version of its Corresponding Source. The information must suffice to ensure + that the continued functioning of the modified object code is in no case + prevented or interfered with solely because modification has been made. + . + If you convey an object code work under this section in, or with, or + specifically for use in, a User Product, and the conveying occurs as part of a + transaction in which the right of possession and use of the User Product is + transferred to the recipient in perpetuity or for a fixed term (regardless of + how the transaction is characterized), the Corresponding Source conveyed under + this section must be accompanied by the Installation Information. But this + requirement does not apply if neither you nor any third party retains the + ability to install modified object code on the User Product (for example, the + work has been installed in ROM). + . + The requirement to provide Installation Information does not include a + requirement to continue to provide support service, warranty, or updates for a + work that has been modified or installed by the recipient, or for the User + Product in which it has been modified or installed. Access to a network may be + denied when the modification itself materially and adversely affects the + operation of the network or violates the rules and protocols for communication + across the network. + . + Corresponding Source conveyed, and Installation Information provided, in accord + with this section must be in a format that is publicly documented (and with an + implementation available to the public in source code form), and must require + no special password or key for unpacking, reading or copying. + . + 7. Additional Terms. + . + "Additional permissions" are terms that supplement the terms of this License by + making exceptions from one or more of its conditions. Additional permissions + that are applicable to the entire Program shall be treated as though they were + included in this License, to the extent that they are valid under applicable + law. If additional permissions apply only to part of the Program, that part may + be used separately under those permissions, but the entire Program remains + governed by this License without regard to the additional permissions. + . + When you convey a copy of a covered work, you may at your option remove any + additional permissions from that copy, or from any part of it. (Additional + permissions may be written to require their own removal in certain cases when + you modify the work.) You may place additional permissions on material, added + by you to a covered work, for which you have or can give appropriate copyright + permission. + . + Notwithstanding any other provision of this License, for material you add to a + covered work, you may (if authorized by the copyright holders of that material) + supplement the terms of this License with terms: + . + a) Disclaiming warranty or limiting liability differently from the terms of + sections 15 and 16 of this License; or + . + b) Requiring preservation of specified reasonable legal notices or author + attributions in that material or in the Appropriate Legal Notices displayed by + works containing it; or + . + c) Prohibiting misrepresentation of the origin of that material, or requiring + that modified versions of such material be marked in reasonable ways as + different from the original version; or + . + d) Limiting the use for publicity purposes of names of licensors or authors of + the material; or + . + e) Declining to grant rights under trademark law for use of some trade names, + trademarks, or service marks; or + . + f) Requiring indemnification of licensors and authors of that material by + anyone who conveys the material (or modified versions of it) with contractual + assumptions of liability to the recipient, for any liability that these + contractual assumptions directly impose on those licensors and authors. + . + All other non-permissive additional terms are considered "further restrictions" + within the meaning of section 10. If the Program as you received it, or any + part of it, contains a notice stating that it is governed by this License along + with a term that is a further restriction, you may remove that term. If a + license document contains a further restriction but permits relicensing or + conveying under this License, you may add to a covered work material governed + by the terms of that license document, provided that the further restriction + does not survive such relicensing or conveying. + . + If you add terms to a covered work in accord with this section, you must place, + in the relevant source files, a statement of the additional terms that apply to + those files, or a notice indicating where to find the applicable terms. + . + Additional terms, permissive or non-permissive, may be stated in the form of a + separately written license, or stated as exceptions; the above requirements + apply either way. + . + 8. Termination. + . + You may not propagate or modify a covered work except as expressly provided + under this License. Any attempt otherwise to propagate or modify it is void, + and will automatically terminate your rights under this License (including any + patent licenses granted under the third paragraph of section 11). + . + However, if you cease all violation of this License, then your license from a + particular copyright holder is reinstated (a) provisionally, unless and until + the copyright holder explicitly and finally terminates your license, and (b) + permanently, if the copyright holder fails to notify you of the violation by + some reasonable means prior to 60 days after the cessation. + . + Moreover, your license from a particular copyright holder is reinstated + permanently if the copyright holder notifies you of the violation by some + reasonable means, this is the first time you have received notice of violation + of this License (for any work) from that copyright holder, and you cure the + violation prior to 30 days after your receipt of the notice. + . + Termination of your rights under this section does not terminate the licenses + of parties who have received copies or rights from you under this License. If + your rights have been terminated and not permanently reinstated, you do not + qualify to receive new licenses for the same material under section 10. + . + 9. Acceptance Not Required for Having Copies. + . + You are not required to accept this License in order to receive or run a copy + of the Program. Ancillary propagation of a covered work occurring solely as a + consequence of using peer-to-peer transmission to receive a copy likewise does + not require acceptance. However, nothing other than this License grants you + permission to propagate or modify any covered work. These actions infringe + copyright if you do not accept this License. Therefore, by modifying or + propagating a covered work, you indicate your acceptance of this License to do + so. + . + 10. Automatic Licensing of Downstream Recipients. + . + Each time you convey a covered work, the recipient automatically receives a + license from the original licensors, to run, modify and propagate that work, + subject to this License. You are not responsible for enforcing compliance by + third parties with this License. + . + An "entity transaction" is a transaction transferring control of an + organization, or substantially all assets of one, or subdividing an + organization, or merging organizations. If propagation of a covered work + results from an entity transaction, each party to that transaction who receives + a copy of the work also receives whatever licenses to the work the party's + predecessor in interest had or could give under the previous paragraph, plus a + right to possession of the Corresponding Source of the work from the + predecessor in interest, if the predecessor has it or can get it with + reasonable efforts. + . + You may not impose any further restrictions on the exercise of the rights + granted or affirmed under this License. For example, you may not impose a + license fee, royalty, or other charge for exercise of rights granted under this + License, and you may not initiate litigation (including a cross-claim or + counterclaim in a lawsuit) alleging that any patent claim is infringed by + making, using, selling, offering for sale, or importing the Program or any + portion of it. + . + 11. Patents. + . + A "contributor" is a copyright holder who authorizes use under this License of + the Program or a work on which the Program is based. The work thus licensed is + called the contributor's "contributor version". + . + A contributor's "essential patent claims" are all patent claims owned or + controlled by the contributor, whether already acquired or hereafter acquired, + that would be infringed by some manner, permitted by this License, of making, + using, or selling its contributor version, but do not include claims that would + be infringed only as a consequence of further modification of the contributor + version. For purposes of this definition, "control" includes the right to grant + patent sublicenses in a manner consistent with the requirements of this + License. + . + Each contributor grants you a non-exclusive, worldwide, royalty-free patent + license under the contributor's essential patent claims, to make, use, sell, + offer for sale, import and otherwise run, modify and propagate the contents of + its contributor version. + . + In the following three paragraphs, a "patent license" is any express agreement + or commitment, however denominated, not to enforce a patent (such as an express + permission to practice a patent or covenant not to sue for patent + infringement). To "grant" such a patent license to a party means to make such + an agreement or commitment not to enforce a patent against the party. + . + If you convey a covered work, knowingly relying on a patent license, and the + Corresponding Source of the work is not available for anyone to copy, free of + charge and under the terms of this License, through a publicly available + network server or other readily accessible means, then you must either (1) + cause the Corresponding Source to be so available, or (2) arrange to deprive + yourself of the benefit of the patent license for this particular work, or (3) + arrange, in a manner consistent with the requirements of this License, to + extend the patent license to downstream recipients. "Knowingly relying" means + you have actual knowledge that, but for the patent license, your conveying the + covered work in a country, or your recipient's use of the covered work in a + country, would infringe one or more identifiable patents in that country that + you have reason to believe are valid. + . + If, pursuant to or in connection with a single transaction or arrangement, you + convey, or propagate by procuring conveyance of, a covered work, and grant a + patent license to some of the parties receiving the covered work authorizing + them to use, propagate, modify or convey a specific copy of the covered work, + then the patent license you grant is automatically extended to all recipients + of the covered work and works based on it. + . + A patent license is "discriminatory" if it does not include within the scope of + its coverage, prohibits the exercise of, or is conditioned on the non-exercise + of one or more of the rights that are specifically granted under this + License. You may not convey a covered work if you are a party to an arrangement + with a third party that is in the business of distributing software, under + which you make payment to the third party based on the extent of your activity + of conveying the work, and under which the third party grants, to any of the + parties who would receive the covered work from you, a discriminatory patent + license (a) in connection with copies of the covered work conveyed by you (or + copies made from those copies), or (b) primarily for and in connection with + specific products or compilations that contain the covered work, unless you + entered into that arrangement, or that patent license was granted, prior to 28 + March 2007. + . + Nothing in this License shall be construed as excluding or limiting any implied + license or other defenses to infringement that may otherwise be available to + you under applicable patent law. + . + 12. No Surrender of Others' Freedom. + . + If conditions are imposed on you (whether by court order, agreement or + otherwise) that contradict the conditions of this License, they do not excuse + you from the conditions of this License. If you cannot convey a covered work so + as to satisfy simultaneously your obligations under this License and any other + pertinent obligations, then as a consequence you may not convey it at all. For + example, if you agree to terms that obligate you to collect a royalty for + further conveying from those to whom you convey the Program, the only way you + could satisfy both those terms and this License would be to refrain entirely + from conveying the Program. + . + 13. Remote Network Interaction; Use with the GNU General Public License. + . + Notwithstanding any other provision of this License, if you modify the Program, + your modified version must prominently offer all users interacting with it + remotely through a computer network (if your version supports such interaction) + an opportunity to receive the Corresponding Source of your version by providing + access to the Corresponding Source from a network server at no charge, through + some standard or customary means of facilitating copying of software. This + Corresponding Source shall include the Corresponding Source for any work + covered by version 3 of the GNU General Public License that is incorporated + pursuant to the following paragraph. + . + Notwithstanding any other provision of this License, you have permission to + link or combine any covered work with a work licensed under version 3 of the + GNU General Public License into a single combined work, and to convey the + resulting work. The terms of this License will continue to apply to the part + which is the covered work, but the work with which it is combined will remain + governed by version 3 of the GNU General Public License. + . + 14. Revised Versions of this License. + . + The Free Software Foundation may publish revised and/or new versions of the GNU + Affero General Public License from time to time. Such new versions will be + similar in spirit to the present version, but may differ in detail to address + new problems or concerns. + . + Each version is given a distinguishing version number. If the Program specifies + that a certain numbered version of the GNU Affero General Public License "or + any later version" applies to it, you have the option of following the terms + and conditions either of that numbered version or of any later version + published by the Free Software Foundation. If the Program does not specify a + version number of the GNU Affero General Public License, you may choose any + version ever published by the Free Software Foundation. + . + If the Program specifies that a proxy can decide which future versions of the + GNU Affero General Public License can be used, that proxy's public statement of + acceptance of a version permanently authorizes you to choose that version for + the Program. + . + Later license versions may give you additional or different + permissions. However, no additional obligations are imposed on any author or + copyright holder as a result of your choosing to follow a later version. + . + 15. Disclaimer of Warranty. + . + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE + LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER + PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER + EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE + QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE + DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR + CORRECTION. + . + 16. Limitation of Liability. + . + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY + COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS + PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, + INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE + THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED + INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE + PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY + HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + . + 17. Interpretation of Sections 15 and 16. + . + If the disclaimer of warranty and limitation of liability provided above cannot + be given local legal effect according to their terms, reviewing courts shall + apply local law that most closely approximates an absolute waiver of all civil + liability in connection with the Program, unless a warranty or assumption of + liability accompanies a copy of the Program in return for a fee. \ No newline at end of file -- cgit v1.2.3 From a8bb868c9217b3933695da348991577502b22df7 Mon Sep 17 00:00:00 2001 From: Micah Anderson Date: Thu, 18 Jul 2013 15:18:18 -0400 Subject: make initscript be installed via the debian packaging tools, add the required missing LSB headers --- debian/leap-mx.init | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++++ pkg/leap_mx | 51 --------------------------------------------- setup.py | 4 ++-- 3 files changed, 62 insertions(+), 53 deletions(-) create mode 100644 debian/leap-mx.init delete mode 100644 pkg/leap_mx diff --git a/debian/leap-mx.init b/debian/leap-mx.init new file mode 100644 index 0000000..544230c --- /dev/null +++ b/debian/leap-mx.init @@ -0,0 +1,60 @@ +#!/bin/sh +### BEGIN INIT INFO +# Provides: leap-mx +# Required-Start: $network $named $remote_fs $syslog $time +# Required-Stop: $network $named $remote_fs $syslog +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: Start leap-mx daemon at boot time +# Description: transparently-encrypting remailer +### END INIT INFO + +PATH=/sbin:/bin:/usr/sbin:/usr/bin + +pidfile=/var/run/leap_mx.pid \ +rundir=/var/lib/leap_mx/ \ +file=/usr/share/app/leap_mx.tac \ +logfile=/var/log/leap_mx.log +twistd_path=/usr/bin/twistd + +[ -r /etc/default/leap_mx ] && . /etc/default/leap_mx + +test -r $file || exit 0 +test -r /etc/leap/ || exit 0 + + +case "$1" in + start) + echo -n "Starting leap_mx: twistd" + HOME="/var/lib/leap_mx/" \ + start-stop-daemon --start --quiet --exec $twistd_path -- \ + --pidfile=$pidfile \ + --rundir=$rundir \ + --python=$file \ + --logfile=$logfile + echo "." + ;; + + stop) + echo -n "Stopping leap_mx: twistd" + start-stop-daemon --stop --quiet \ + --pidfile $pidfile + echo "." + ;; + + restart) + $0 stop + $0 start + ;; + + force-reload) + $0 restart + ;; + + *) + echo "Usage: /etc/init.d/leap_mx {start|stop|restart|force-reload}" >&2 + exit 1 + ;; +esac + +exit 0 diff --git a/pkg/leap_mx b/pkg/leap_mx deleted file mode 100644 index e9a68bb..0000000 --- a/pkg/leap_mx +++ /dev/null @@ -1,51 +0,0 @@ -#!/bin/sh - -PATH=/sbin:/bin:/usr/sbin:/usr/bin - -pidfile=/var/run/leap_mx.pid \ -rundir=/var/lib/leap_mx/ \ -file=/usr/share/app/leap_mx.tac \ -logfile=/var/log/leap_mx.log -twistd_path=/usr/bin/twistd - -[ -r /etc/default/leap_mx ] && . /etc/default/leap_mx - -test -r $file || exit 0 -test -r /etc/leap/ || exit 0 - - -case "$1" in - start) - echo -n "Starting leap_mx: twistd" - HOME="/var/lib/leap_mx/" \ - start-stop-daemon --start --quiet --exec $twistd_path -- \ - --pidfile=$pidfile \ - --rundir=$rundir \ - --python=$file \ - --logfile=$logfile - echo "." - ;; - - stop) - echo -n "Stopping leap_mx: twistd" - start-stop-daemon --stop --quiet \ - --pidfile $pidfile - echo "." - ;; - - restart) - $0 stop - $0 start - ;; - - force-reload) - $0 restart - ;; - - *) - echo "Usage: /etc/init.d/leap_mx {start|stop|restart|force-reload}" >&2 - exit 1 - ;; -esac - -exit 0 diff --git a/setup.py b/setup.py index d80e7e9..41c29c2 100644 --- a/setup.py +++ b/setup.py @@ -44,8 +44,8 @@ else: # be automatically # placed by distutils, using whatever interpreter is # available. - data_files = [("/usr/share/app/", ["pkg/leap_mx.tac"]), - ("/etc/init.d/", ["pkg/leap_mx"])] + data_files = [("/usr/share/app/", ["pkg/leap_mx.tac"])] + setup( name='leap.mx', version="0.2.2", -- cgit v1.2.3 From f50546e9ed163a52ab63150698d892e574012f18 Mon Sep 17 00:00:00 2001 From: Micah Anderson Date: Thu, 18 Jul 2013 15:18:46 -0400 Subject: fix installation of documentation --- debian/leap-mx.doc | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/debian/leap-mx.doc b/debian/leap-mx.doc index 875a55c..f19ab81 100644 --- a/debian/leap-mx.doc +++ b/debian/leap-mx.doc @@ -1,3 +1,5 @@ -../doc -../README.md -../VERSION.md +doc/* +doc/sample-config/* +README.md +VERSION.md +VERSION.md -- cgit v1.2.3 From bda55447ed2ecf995feaa0106c136b7a461a4596 Mon Sep 17 00:00:00 2001 From: Micah Anderson Date: Thu, 18 Jul 2013 15:18:59 -0400 Subject: adjust package descriptions to fit with policy --- debian/control | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/debian/control b/debian/control index cfa808f..a3e417a 100644 --- a/debian/control +++ b/debian/control @@ -8,5 +8,6 @@ Standards-Version: 3.9.4 Package: leap-mx Architecture: all Depends: ${misc:Depends}, ${python:Depends} -Description: An asynchronous, transparently-encrypting remailer for the LEAP platform - An asynchronous, transparently-encrypting remailer using BigCouch/CouchDB and OpenPGP, written in Twisted Python. +Description: Asynchronous, transparently-encrypting remailer for the LEAP platform + Asynchronous, transparently-encrypting remailer using BigCouch/CouchDB + and OpenPGP, written in Twisted Python. -- cgit v1.2.3 From 6bc971cc44390800a2828a94a483278a9e39e13d Mon Sep 17 00:00:00 2001 From: Micah Anderson Date: Thu, 18 Jul 2013 16:00:02 -0400 Subject: bump version number for new package incorporating new changes --- debian/changelog | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/debian/changelog b/debian/changelog index 4340754..80c6f3d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,14 @@ +leap-mx (0.2.2.1) unstable; urgency=low + + * Fix installation of documentation + * Fix package descriptions + * Install initscript using packaging tools + * Add LSB headers to initscript + * Add debian/copyright + * Fix permissions on leap_mx.tac + + -- Micah Anderson Thu, 18 Jul 2013 15:58:31 -0400 + leap-mx (0.2.2) unstable; urgency=low * Initial Debian package -- cgit v1.2.3 From 54c3fe7a1240dbd2875c21fda9949fb8e91ecdef Mon Sep 17 00:00:00 2001 From: Micah Anderson Date: Thu, 25 Jul 2013 14:03:13 -0400 Subject: add status command to initscript --- debian/changelog | 6 ++++++ debian/leap-mx.init | 17 ++++++++++------- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/debian/changelog b/debian/changelog index 80c6f3d..e4de8f8 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +leap-mx (0.2.2.2) unstable; urgency=low + + * Added status command to initscript + + -- Micah Anderson Thu, 25 Jul 2013 14:03:18 -0400 + leap-mx (0.2.2.1) unstable; urgency=low * Fix installation of documentation diff --git a/debian/leap-mx.init b/debian/leap-mx.init index 544230c..6678d90 100644 --- a/debian/leap-mx.init +++ b/debian/leap-mx.init @@ -10,12 +10,11 @@ ### END INIT INFO PATH=/sbin:/bin:/usr/sbin:/usr/bin - -pidfile=/var/run/leap_mx.pid \ -rundir=/var/lib/leap_mx/ \ -file=/usr/share/app/leap_mx.tac \ -logfile=/var/log/leap_mx.log -twistd_path=/usr/bin/twistd +PIDFILE=/var/run/leap_mx.pid +RUNDIR=/var/lib/leap_mx/ +FILE=/usr/share/app/leap_mx.tac +LOGFILE=/var/log/leap_mx.log +TWISTD_PATH=/usr/bin/twistd [ -r /etc/default/leap_mx ] && . /etc/default/leap_mx @@ -51,8 +50,12 @@ case "$1" in $0 restart ;; + status) + status_of_proc -p $PIDFILE $TWISTD_PATH leap_mx && exit 0 || exit $? + ;; + *) - echo "Usage: /etc/init.d/leap_mx {start|stop|restart|force-reload}" >&2 + echo "Usage: /etc/init.d/leap_mx {start|stop|restart|force-reload|status}" >&2 exit 1 ;; esac -- cgit v1.2.3 From 27ad10e3b71ba8cc04ee34a139e775daaa9e5a81 Mon Sep 17 00:00:00 2001 From: Micah Anderson Date: Tue, 13 Aug 2013 15:58:17 -0400 Subject: explitily require twisted >=13.0.0-1 --- debian/changelog | 2 ++ debian/control | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index 8643897..47764c8 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,6 +1,8 @@ leap-mx (0.3.0) unstable; urgency=low * Update to 0.3.0 + * Source /lib/lsb/init-functions in initscripts + * Require twisted >= 13.0.0-1 -- Micah Anderson Tue, 13 Aug 2013 15:49:33 -0400 diff --git a/debian/control b/debian/control index a3e417a..3604973 100644 --- a/debian/control +++ b/debian/control @@ -7,7 +7,7 @@ Standards-Version: 3.9.4 Package: leap-mx Architecture: all -Depends: ${misc:Depends}, ${python:Depends} +Depends: ${misc:Depends}, ${python:Depends}, python-twisted (>= 13.0.0-1) Description: Asynchronous, transparently-encrypting remailer for the LEAP platform Asynchronous, transparently-encrypting remailer using BigCouch/CouchDB and OpenPGP, written in Twisted Python. -- cgit v1.2.3 From 1a102575ec49dacb78d2faf917145c0164aa8a93 Mon Sep 17 00:00:00 2001 From: Micah Anderson Date: Tue, 13 Aug 2013 15:58:40 -0400 Subject: source the lsb init-functions in initscript --- debian/leap-mx.init | 2 ++ 1 file changed, 2 insertions(+) diff --git a/debian/leap-mx.init b/debian/leap-mx.init index 6678d90..3f07a86 100644 --- a/debian/leap-mx.init +++ b/debian/leap-mx.init @@ -18,6 +18,8 @@ TWISTD_PATH=/usr/bin/twistd [ -r /etc/default/leap_mx ] && . /etc/default/leap_mx +. /lib/lsb/init-functions + test -r $file || exit 0 test -r /etc/leap/ || exit 0 -- cgit v1.2.3 From 80795ab3e08e2426b919d37896015fb78326c0cb Mon Sep 17 00:00:00 2001 From: Micah Anderson Date: Tue, 13 Aug 2013 16:11:06 -0400 Subject: adjust twisted requirement to work for backported version --- debian/changelog | 8 +++++++- debian/control | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/debian/changelog b/debian/changelog index 47764c8..e7c7958 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,8 +1,14 @@ +leap-mx (0.3.0.1) unstable; urgency=low + + * Require twisted >=13.0.0-1~bpo70 + + -- Micah Anderson Tue, 13 Aug 2013 16:10:21 -0400 + leap-mx (0.3.0) unstable; urgency=low * Update to 0.3.0 * Source /lib/lsb/init-functions in initscripts - * Require twisted >= 13.0.0-1 + * Require twisted >=13.0.0-1 -- Micah Anderson Tue, 13 Aug 2013 15:49:33 -0400 diff --git a/debian/control b/debian/control index 3604973..c5a9206 100644 --- a/debian/control +++ b/debian/control @@ -7,7 +7,7 @@ Standards-Version: 3.9.4 Package: leap-mx Architecture: all -Depends: ${misc:Depends}, ${python:Depends}, python-twisted (>= 13.0.0-1) +Depends: ${misc:Depends}, ${python:Depends}, python-twisted (>= 13.0.0-1~bpo70+1) Description: Asynchronous, transparently-encrypting remailer for the LEAP platform Asynchronous, transparently-encrypting remailer using BigCouch/CouchDB and OpenPGP, written in Twisted Python. -- cgit v1.2.3 From 82e25b14f1c0f6d07758f1d91a7da8474d682f1c Mon Sep 17 00:00:00 2001 From: Micah Anderson Date: Tue, 13 Aug 2013 16:34:24 -0400 Subject: fix initscript variables --- debian/changelog | 6 ++++++ debian/leap-mx.init | 12 ++++++------ 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/debian/changelog b/debian/changelog index e7c7958..75ad370 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +leap-mx (0.3.0.2) unstable; urgency=low + + * Fix initscript variables + + -- Micah Anderson Tue, 13 Aug 2013 16:33:45 -0400 + leap-mx (0.3.0.1) unstable; urgency=low * Require twisted >=13.0.0-1~bpo70 diff --git a/debian/leap-mx.init b/debian/leap-mx.init index 3f07a86..3b454d0 100644 --- a/debian/leap-mx.init +++ b/debian/leap-mx.init @@ -28,18 +28,18 @@ case "$1" in start) echo -n "Starting leap_mx: twistd" HOME="/var/lib/leap_mx/" \ - start-stop-daemon --start --quiet --exec $twistd_path -- \ - --pidfile=$pidfile \ - --rundir=$rundir \ - --python=$file \ - --logfile=$logfile + start-stop-daemon --start --quiet --exec $TWISTD_PATH -- \ + --pidfile=$PIDFILE \ + --rundir=$RUNDIR \ + --python=$FILE \ + --logfile=$LOGFILE echo "." ;; stop) echo -n "Stopping leap_mx: twistd" start-stop-daemon --stop --quiet \ - --pidfile $pidfile + --pidfile $PIDFILE echo "." ;; -- cgit v1.2.3 From 8be21034febfcd1d8e96b8d87fa24ca68a9fe9b3 Mon Sep 17 00:00:00 2001 From: Micah Anderson Date: Sat, 17 Aug 2013 12:09:47 -0400 Subject: pin twisted versions --- debian/changelog | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/debian/changelog b/debian/changelog index 75ad370..e8b5cd1 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,7 @@ +leap-mx (0.3.0.3) unstable; urgency=low + + * Pin twisted version in Depends to get 13 or greater + leap-mx (0.3.0.2) unstable; urgency=low * Fix initscript variables -- cgit v1.2.3 From 5af01e320574910bbcb0992229d47ffb49548666 Mon Sep 17 00:00:00 2001 From: Micah Anderson Date: Sat, 17 Aug 2013 12:11:30 -0400 Subject: fix changelog entry error --- debian/changelog | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/debian/changelog b/debian/changelog index e8b5cd1..ac2cfe8 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,7 +1,9 @@ leap-mx (0.3.0.3) unstable; urgency=low - + * Pin twisted version in Depends to get 13 or greater - + + -- Micah Anderson Sat, 17 Aug 2013 12:10:49 -0400 + leap-mx (0.3.0.2) unstable; urgency=low * Fix initscript variables -- cgit v1.2.3 From e568bea14bc7928e2f2a8a643446b2444e3259d7 Mon Sep 17 00:00:00 2001 From: Micah Anderson Date: Thu, 22 Aug 2013 15:27:28 -0400 Subject: prepare for new version --- debian/changelog | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/debian/changelog b/debian/changelog index ac2cfe8..2cc53ea 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +leap-mx (0.3.1) unstable; urgency=low + + * Merge develop to prepare for new version + + -- Micah Anderson Thu, 22 Aug 2013 15:27:02 -0400 + leap-mx (0.3.0.3) unstable; urgency=low * Pin twisted version in Depends to get 13 or greater -- cgit v1.2.3 From 8222f2a8b4b440217b268e2e8d9a7ef9c1cb3104 Mon Sep 17 00:00:00 2001 From: Micah Anderson Date: Tue, 27 Aug 2013 17:02:59 -0400 Subject: update pydist-overrides for soledad-common --- debian/pydist-overrides | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/pydist-overrides b/debian/pydist-overrides index 1035472..fcbb114 100644 --- a/debian/pydist-overrides +++ b/debian/pydist-overrides @@ -1,3 +1,3 @@ -leap.soledad soledad-common +leap.soledad.common soledad-common leap.soledad_server soledad-server leap.keymanager leap-keymanager -- cgit v1.2.3 From 0c35363039fdd7094ce19b93575ea33ff5e01f58 Mon Sep 17 00:00:00 2001 From: Micah Anderson Date: Tue, 27 Aug 2013 17:03:59 -0400 Subject: update pydist-overrides to provide correction for finding python-leap.soledad.common --- debian/changelog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index 2cc53ea..97d6589 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -leap-mx (0.3.1) unstable; urgency=low +leap-mx (0.3.1.1) unstable; urgency=low * Merge develop to prepare for new version -- cgit v1.2.3 From ad89aa7bb53fe69c4fa7defd647cd27847c6ec7c Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Thu, 29 Aug 2013 16:20:09 +0200 Subject: Add couchdb as a dependency. Closes: #3601 --- pkg/requirements.pip | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pkg/requirements.pip b/pkg/requirements.pip index ea59aaa..d5db275 100644 --- a/pkg/requirements.pip +++ b/pkg/requirements.pip @@ -1,5 +1,13 @@ Twisted>=12.0.2 + paisley>=0.3.1 + +# python-couchdb is used by leap.soledad.common, +# maybe we should get it as optional/recommends +# in soledad-common, but we need to declare here +# for the time being. +couchdb + ## XXX change me to whatever you name the package in pypi python-gnupg>=0.3.0 leap.soledad.common>=0.3.0 -- cgit v1.2.3 From cc63fa98a7cbf32a07b8c3905783de19a4916b86 Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Thu, 29 Aug 2013 17:15:36 +0200 Subject: update changelog --- debian/changelog | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/debian/changelog b/debian/changelog index 97d6589..aeb44ea 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,8 +1,14 @@ +leap-mx (0.3.1.2) unstable; urgency=low + + * Update with python-couchdb dependency + + -- Micah Anderson thu, 22 aug 2013 15:27:02 -0400 + leap-mx (0.3.1.1) unstable; urgency=low - * Merge develop to prepare for new version + * merge develop to prepare for new version - -- Micah Anderson Thu, 22 Aug 2013 15:27:02 -0400 + -- Micah Anderson thu, 22 aug 2013 15:27:02 -0400 leap-mx (0.3.0.3) unstable; urgency=low -- cgit v1.2.3 From 496d9f0c34d55bddcaa6764b84441b3fbe4db386 Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Thu, 29 Aug 2013 17:15:26 +0200 Subject: add python-couchdb to pydist-overrides --- debian/pydist-overrides | 1 + 1 file changed, 1 insertion(+) diff --git a/debian/pydist-overrides b/debian/pydist-overrides index fcbb114..cbfab2c 100644 --- a/debian/pydist-overrides +++ b/debian/pydist-overrides @@ -1,3 +1,4 @@ +couchdb python-couchdb leap.soledad.common soledad-common leap.soledad_server soledad-server leap.keymanager leap-keymanager -- cgit v1.2.3 From 7e1c466dca61e1966626a2bfdc4a38889490d8d8 Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Thu, 29 Aug 2013 17:20:45 +0200 Subject: ignore debian things --- .gitignore | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.gitignore b/.gitignore index 4c572d1..98a55cf 100644 --- a/.gitignore +++ b/.gitignore @@ -51,3 +51,11 @@ nosetests.xml *.log *.conf *.config + +# ignore debian stuff +debian/files +debian/leap-mx.postinst.debhelper +debian/leap-mx.postrm.debhelper +debian/leap-mx.prerm.debhelper +debian/leap-mx.substvars +debian/leap-mx/ -- cgit v1.2.3 From 4c6b43ea856d8923b8797b2974524d0e51dbcf07 Mon Sep 17 00:00:00 2001 From: Micah Anderson Date: Thu, 29 Aug 2013 21:50:40 -0400 Subject: bump debian changelog --- debian/changelog | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/debian/changelog b/debian/changelog index aeb44ea..0e06742 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +leap-mx (0.3.1.3) unstable; urgency=low + + * Pull in fix to couchdb saving + + -- Micah Anderson Thu, 29 Aug 2013 21:49:28 -0400 + leap-mx (0.3.1.2) unstable; urgency=low * Update with python-couchdb dependency -- cgit v1.2.3 From 60f1a9227f1e22a33480c54db28db5816b6e6428 Mon Sep 17 00:00:00 2001 From: Micah Anderson Date: Fri, 30 Aug 2013 12:35:39 -0400 Subject: add debian/dirs to make sure that /var/lib/leap_mx is created (#3622) --- debian/changelog | 6 ++++++ debian/dirs | 1 + 2 files changed, 7 insertions(+) create mode 100644 debian/dirs diff --git a/debian/changelog b/debian/changelog index 0e06742..93427c0 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +leap-mx (0.3.1.4) unstable; urgency=low + + * add debian/dirs to make sure that /var/lib/leap_mx is created (#3622) + + -- Micah Anderson Fri, 30 Aug 2013 12:34:50 -0400 + leap-mx (0.3.1.3) unstable; urgency=low * Pull in fix to couchdb saving diff --git a/debian/dirs b/debian/dirs new file mode 100644 index 0000000..eb81abe --- /dev/null +++ b/debian/dirs @@ -0,0 +1 @@ +var/lib/leap_mx -- cgit v1.2.3 From c494895d435da359961248c9d18763f33c5628ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Touceda?= Date: Fri, 30 Aug 2013 12:29:33 -0300 Subject: Keep file watcher in memory to prevent losing file events --- changes/bug_keep_watcher_in_memory | 1 + src/leap/mx/mail_receiver.py | 10 +++++----- 2 files changed, 6 insertions(+), 5 deletions(-) create mode 100644 changes/bug_keep_watcher_in_memory diff --git a/changes/bug_keep_watcher_in_memory b/changes/bug_keep_watcher_in_memory new file mode 100644 index 0000000..4ac9541 --- /dev/null +++ b/changes/bug_keep_watcher_in_memory @@ -0,0 +1 @@ + o Keep file watcher in memory to prevent losing file events. \ No newline at end of file diff --git a/src/leap/mx/mail_receiver.py b/src/leap/mx/mail_receiver.py index cabb5cb..24ba2fe 100644 --- a/src/leap/mx/mail_receiver.py +++ b/src/leap/mx/mail_receiver.py @@ -72,16 +72,16 @@ class MailReceiver(Service): Starts the MailReceiver service """ Service.startService(self) - wm = inotify.INotify() - wm.startReading() + self.wm = inotify.INotify() + self.wm.startReading() mask = inotify.IN_CREATE for directory, recursive in self._directories: log.msg("Watching %s --- Recursive: %s" % (directory, recursive)) - wm.watch(filepath.FilePath(directory), mask, - callbacks=[self._process_incoming_email], - recursive=recursive) + self.wm.watch(filepath.FilePath(directory), mask, + callbacks=[self._process_incoming_email], + recursive=recursive) def _gather_uuid_pubkey(self, results): if len(results) < 2: -- cgit v1.2.3 From 93b40ac6ab15a5bca129a87fdffcfaec934e9f7e Mon Sep 17 00:00:00 2001 From: Micah Anderson Date: Fri, 30 Aug 2013 12:41:51 -0400 Subject: cherry-pick https://github.com/chiiph/leap_mx/commit/78f6ca775dc42eba69f2dc1e134ca360c0813aff --- debian/changelog | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/debian/changelog b/debian/changelog index 93427c0..c3abf9d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,11 @@ +leap-mx (0.3.1.5) unstable; urgency=low + + * Cherry pick fix from + https://github.com/chiiph/leap_mx/commit/78f6ca775dc42eba69f2dc1e134ca360c0813aff + to keep file watcher in memory to prevent losing file events + + -- Micah Anderson Fri, 30 Aug 2013 12:40:15 -0400 + leap-mx (0.3.1.4) unstable; urgency=low * add debian/dirs to make sure that /var/lib/leap_mx is created (#3622) -- cgit v1.2.3 From 440432f1a758268fa1439aadfce76372fd0d2fda Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Thu, 12 Sep 2013 14:25:40 +0200 Subject: update to 0.3.2 release --- debian/changelog | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/debian/changelog b/debian/changelog index c3abf9d..d260d65 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +leap-mx (0.3.2) unstable; urgency=low + + * Update to 0.3.2 release + + -- Micah Anderson Thu, 12 Sep 2013 14:24:05 +0200 + leap-mx (0.3.1.5) unstable; urgency=low * Cherry pick fix from -- cgit v1.2.3 From 26414be8798ea4deb0056f9a2e095b666ef3c74c Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Wed, 30 Oct 2013 12:03:39 -0200 Subject: add freeze_debianver --- setup.py | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 68 insertions(+), 2 deletions(-) diff --git a/setup.py b/setup.py index 8d0c218..777a051 100644 --- a/setup.py +++ b/setup.py @@ -18,6 +18,7 @@ setup file for leap.mx """ import os +import re from setuptools import setup, find_packages import versioneer @@ -43,6 +44,68 @@ trove_classifiers = [ 'Topic :: Security :: Cryptography', ] +DOWNLOAD_BASE = ('https://github.com/leapcode/leap_mx/' + 'archive/%s.tar.gz') +_versions = versioneer.get_versions() +VERSION = _versions['version'] +VERSION_FULL = _versions['full'] +DOWNLOAD_URL = "" + +# get the short version for the download url +_version_short = re.findall('\d+\.\d+\.\d+', VERSION) +if len(_version_short) > 0: + VERSION_SHORT = _version_short[0] + DOWNLOAD_URL = DOWNLOAD_BASE % VERSION_SHORT + +cmdclass = versioneer.get_cmdclass() + + +from setuptools import Command + + +class freeze_debianver(Command): + """ + Freezes the version in a debian branch. + To be used after merging the development branch onto the debian one. + """ + user_options = [] + + def initialize_options(self): + pass + + def finalize_options(self): + pass + + def run(self): + proceed = str(raw_input( + "This will overwrite the file _version.py. Continue? [y/N] ")) + if proceed != "y": + print("He. You scared. Aborting.") + return + template = r""" +# This file was generated by the `freeze_debianver` command in setup.py +# Using 'versioneer.py' (0.7+) from +# revision-control system data, or from the parent directory name of an +# unpacked source archive. Distribution tarballs contain a pre-generated copy +# of this file. + +version_version = '{version}' +version_full = '{version_full}' +""" + templatefun = r""" + +def get_versions(default={}, verbose=False): + return {'version': version_version, 'full': version_full} +""" + subst_template = template.format( + version=VERSION_SHORT, + version_full=VERSION_FULL) + templatefun + with open(versioneer.versionfile_source, 'w') as f: + f.write(subst_template) + + +cmdclass["freeze_debianver"] = freeze_debianver + if os.environ.get("VIRTUAL_ENV", None): data_files = None else: @@ -54,12 +117,15 @@ else: setup( name='leap.mx', - version=versioneer.get_version(), - cmdclass=versioneer.get_cmdclass(), + version=VERSION, + cmdclass=cmdclass, url="http://github.com/leapcode/leap_mx", + download_url=DOWNLOAD_URL, license='AGPLv3+', author='The LEAP Encryption Access Project', author_email='info@leap.se', + maintainer='Kali Kaneko', + maintainer_email='kali@leap.se', description=("An asynchronous, transparently-encrypting remailer " "for the LEAP platform"), long_description=( -- cgit v1.2.3 From 4633a26cdfce1c475f23183ca6f0e6d19b79b3c6 Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Wed, 30 Oct 2013 16:15:28 -0200 Subject: freeze debianver to 0.3.2 --- debian/changelog | 1 + src/leap/mx/_version.py | 208 +++--------------------------------------------- 2 files changed, 10 insertions(+), 199 deletions(-) diff --git a/debian/changelog b/debian/changelog index d260d65..4957f6f 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,6 +1,7 @@ leap-mx (0.3.2) unstable; urgency=low * Update to 0.3.2 release + * Freeze reported version using freeze_debianver command. -- Micah Anderson Thu, 12 Sep 2013 14:24:05 +0200 diff --git a/src/leap/mx/_version.py b/src/leap/mx/_version.py index 2367de5..5f970eb 100644 --- a/src/leap/mx/_version.py +++ b/src/leap/mx/_version.py @@ -1,203 +1,13 @@ -IN_LONG_VERSION_PY = True -# This file helps to compute a version number in source trees obtained from -# git-archive tarball (such as those provided by githubs download-from-tag -# feature). Distribution tarballs (build by setup.py sdist) and build -# directories (produced by setup.py build) will contain a much shorter file -# that just contains the computed version number. +# This file was generated by the `freeze_debianver` command in setup.py +# Using 'versioneer.py' (0.7+) from +# revision-control system data, or from the parent directory name of an +# unpacked source archive. Distribution tarballs contain a pre-generated copy +# of this file. -# This file is released into the public domain. Generated by -# versioneer-0.7+ (https://github.com/warner/python-versioneer) +version_version = '0.3.2' +version_full = '26414be8798ea4deb0056f9a2e095b666ef3c74c' -# these strings will be replaced by git during git-archive -git_refnames = "$Format:%d$" -git_full = "$Format:%H$" - - -import subprocess -import sys - -def run_command(args, cwd=None, verbose=False): - try: - # remember shell=False, so use git.cmd on windows, not just git - p = subprocess.Popen(args, stdout=subprocess.PIPE, cwd=cwd) - except EnvironmentError: - e = sys.exc_info()[1] - if verbose: - print("unable to run %s" % args[0]) - print(e) - return None - stdout = p.communicate()[0].strip() - if sys.version >= '3': - stdout = stdout.decode() - if p.returncode != 0: - if verbose: - print("unable to run %s (error)" % args[0]) - return None - return stdout - - -import sys -import re -import os.path - -def get_expanded_variables(versionfile_source): - # the code embedded in _version.py can just fetch the value of these - # variables. When used from setup.py, we don't want to import - # _version.py, so we do it with a regexp instead. This function is not - # used from _version.py. - variables = {} - try: - f = open(versionfile_source,"r") - for line in f.readlines(): - if line.strip().startswith("git_refnames ="): - mo = re.search(r'=\s*"(.*)"', line) - if mo: - variables["refnames"] = mo.group(1) - if line.strip().startswith("git_full ="): - mo = re.search(r'=\s*"(.*)"', line) - if mo: - variables["full"] = mo.group(1) - f.close() - except EnvironmentError: - pass - return variables - -def versions_from_expanded_variables(variables, tag_prefix, verbose=False): - refnames = variables["refnames"].strip() - if refnames.startswith("$Format"): - if verbose: - print("variables are unexpanded, not using") - return {} # unexpanded, so not in an unpacked git-archive tarball - refs = set([r.strip() for r in refnames.strip("()").split(",")]) - # starting in git-1.8.3, tags are listed as "tag: foo-1.0" instead of - # just "foo-1.0". If we see a "tag: " prefix, prefer those. - TAG = "tag: " - tags = set([r[len(TAG):] for r in refs if r.startswith(TAG)]) - if not tags: - # Either we're using git < 1.8.3, or there really are no tags. We use - # a heuristic: assume all version tags have a digit. The old git %d - # expansion behaves like git log --decorate=short and strips out the - # refs/heads/ and refs/tags/ prefixes that would let us distinguish - # between branches and tags. By ignoring refnames without digits, we - # filter out many common branch names like "release" and - # "stabilization", as well as "HEAD" and "master". - tags = set([r for r in refs if re.search(r'\d', r)]) - if verbose: - print("discarding '%s', no digits" % ",".join(refs-tags)) - if verbose: - print("likely tags: %s" % ",".join(sorted(tags))) - for ref in sorted(tags): - # sorting will prefer e.g. "2.0" over "2.0rc1" - if ref.startswith(tag_prefix): - r = ref[len(tag_prefix):] - if verbose: - print("picking %s" % r) - return { "version": r, - "full": variables["full"].strip() } - # no suitable tags, so we use the full revision id - if verbose: - print("no suitable tags, using full revision id") - return { "version": variables["full"].strip(), - "full": variables["full"].strip() } - -def versions_from_vcs(tag_prefix, versionfile_source, verbose=False): - # this runs 'git' from the root of the source tree. That either means - # someone ran a setup.py command (and this code is in versioneer.py, so - # IN_LONG_VERSION_PY=False, thus the containing directory is the root of - # the source tree), or someone ran a project-specific entry point (and - # this code is in _version.py, so IN_LONG_VERSION_PY=True, thus the - # containing directory is somewhere deeper in the source tree). This only - # gets called if the git-archive 'subst' variables were *not* expanded, - # and _version.py hasn't already been rewritten with a short version - # string, meaning we're inside a checked out source tree. - - try: - here = os.path.abspath(__file__) - except NameError: - # some py2exe/bbfreeze/non-CPython implementations don't do __file__ - return {} # not always correct - - # versionfile_source is the relative path from the top of the source tree - # (where the .git directory might live) to this file. Invert this to find - # the root from __file__. - root = here - if IN_LONG_VERSION_PY: - for i in range(len(versionfile_source.split("/"))): - root = os.path.dirname(root) - else: - root = os.path.dirname(here) - if not os.path.exists(os.path.join(root, ".git")): - if verbose: - print("no .git in %s" % root) - return {} - - GIT = "git" - if sys.platform == "win32": - GIT = "git.cmd" - stdout = run_command([GIT, "describe", "--tags", "--dirty", "--always"], - cwd=root) - if stdout is None: - return {} - if not stdout.startswith(tag_prefix): - if verbose: - print("tag '%s' doesn't start with prefix '%s'" % (stdout, tag_prefix)) - return {} - tag = stdout[len(tag_prefix):] - stdout = run_command([GIT, "rev-parse", "HEAD"], cwd=root) - if stdout is None: - return {} - full = stdout.strip() - if tag.endswith("-dirty"): - full += "-dirty" - return {"version": tag, "full": full} - - -def versions_from_parentdir(parentdir_prefix, versionfile_source, verbose=False): - if IN_LONG_VERSION_PY: - # We're running from _version.py. If it's from a source tree - # (execute-in-place), we can work upwards to find the root of the - # tree, and then check the parent directory for a version string. If - # it's in an installed application, there's no hope. - try: - here = os.path.abspath(__file__) - except NameError: - # py2exe/bbfreeze/non-CPython don't have __file__ - return {} # without __file__, we have no hope - # versionfile_source is the relative path from the top of the source - # tree to _version.py. Invert this to find the root from __file__. - root = here - for i in range(len(versionfile_source.split("/"))): - root = os.path.dirname(root) - else: - # we're running from versioneer.py, which means we're running from - # the setup.py in a source tree. sys.argv[0] is setup.py in the root. - here = os.path.abspath(sys.argv[0]) - root = os.path.dirname(here) - - # Source tarballs conventionally unpack into a directory that includes - # both the project name and a version string. - dirname = os.path.basename(root) - if not dirname.startswith(parentdir_prefix): - if verbose: - print("guessing rootdir is '%s', but '%s' doesn't start with prefix '%s'" % - (root, dirname, parentdir_prefix)) - return None - return {"version": dirname[len(parentdir_prefix):], "full": ""} - -tag_prefix = "" -parentdir_prefix = "leap.mx-" -versionfile_source = "src/leap/mx/_version.py" - -def get_versions(default={"version": "unknown", "full": ""}, verbose=False): - variables = { "refnames": git_refnames, "full": git_full } - ver = versions_from_expanded_variables(variables, tag_prefix, verbose) - if not ver: - ver = versions_from_vcs(tag_prefix, versionfile_source, verbose) - if not ver: - ver = versions_from_parentdir(parentdir_prefix, versionfile_source, - verbose) - if not ver: - ver = default - return ver +def get_versions(default={}, verbose=False): + return {'version': version_version, 'full': version_full} -- cgit v1.2.3 From 945ab736c7ce9d15a38fe138f4d2181eb2e65285 Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Wed, 30 Oct 2013 16:27:48 -0200 Subject: fix requirements pinning --- pkg/requirements.pip | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/pkg/requirements.pip b/pkg/requirements.pip index d5db275..06a2cd6 100644 --- a/pkg/requirements.pip +++ b/pkg/requirements.pip @@ -8,7 +8,5 @@ paisley>=0.3.1 # for the time being. couchdb -## XXX change me to whatever you name the package in pypi -python-gnupg>=0.3.0 leap.soledad.common>=0.3.0 -leap.keymanager>=0.2.0 +leap.keymanager>=0.3.4 -- cgit v1.2.3 From dc2216ca6bd6845a9dd359bc6dca892d160c1729 Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Tue, 5 Nov 2013 11:55:50 -0200 Subject: update changelog, added python-chardet to pydist-overrides --- debian/changelog | 7 +++++++ debian/pydist-overrides | 1 + 2 files changed, 8 insertions(+) diff --git a/debian/changelog b/debian/changelog index 4957f6f..5d887aa 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +leap-mx (0.3.3) unstable; urgency=low + + * Update to 0.3.3 + * Add python-chardet in pydist-overrides so it substitutes cchardet. + + -- Ben Carrillo Tue, 05 Nov 2013 11:53:34 -0200 + leap-mx (0.3.2) unstable; urgency=low * Update to 0.3.2 release diff --git a/debian/pydist-overrides b/debian/pydist-overrides index cbfab2c..043babf 100644 --- a/debian/pydist-overrides +++ b/debian/pydist-overrides @@ -2,3 +2,4 @@ couchdb python-couchdb leap.soledad.common soledad-common leap.soledad_server soledad-server leap.keymanager leap-keymanager +cchardet python-chardet -- cgit v1.2.3 From 2beeb27c34a1c935d0fbb5011e71c2a5c074130c Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Tue, 5 Nov 2013 11:56:18 -0200 Subject: freeze debian version --- src/leap/mx/_version.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/leap/mx/_version.py b/src/leap/mx/_version.py index 5f970eb..47c31d0 100644 --- a/src/leap/mx/_version.py +++ b/src/leap/mx/_version.py @@ -5,8 +5,8 @@ # unpacked source archive. Distribution tarballs contain a pre-generated copy # of this file. -version_version = '0.3.2' -version_full = '26414be8798ea4deb0056f9a2e095b666ef3c74c' +version_version = '0.3.3' +version_full = 'dc2216ca6bd6845a9dd359bc6dca892d160c1729' def get_versions(default={}, verbose=False): -- cgit v1.2.3 From 4c818ec042f41beb638e91bcd19a2eb61e3a420f Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Tue, 5 Nov 2013 11:56:51 -0200 Subject: add deb_release.sh script --- deb_release.sh | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100755 deb_release.sh diff --git a/deb_release.sh b/deb_release.sh new file mode 100755 index 0000000..8c116ab --- /dev/null +++ b/deb_release.sh @@ -0,0 +1,8 @@ +#!/bin/zsh + +VERSION_FILE="src/leap/mx/_version.py" +rm ${VERSION_FILE} +python setup.py freeze_debianver +sed -i 's/-dirty//g' ${VERSION_FILE} +git add ${VERSION_FILE} +git ci -m "freeze debian version" -- cgit v1.2.3 From 76623b33a840a541b92441f0ce61570e62df2dac Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Wed, 6 Nov 2013 17:53:39 -0200 Subject: add chardet dependency explicitly --- debian/changelog | 2 +- debian/pydist-overrides | 1 - pkg/requirements.pip | 2 +- 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/debian/changelog b/debian/changelog index 5d887aa..1c28b30 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,7 +1,7 @@ leap-mx (0.3.3) unstable; urgency=low * Update to 0.3.3 - * Add python-chardet in pydist-overrides so it substitutes cchardet. + * Add python-chardet requirements so it substitutes cchardet. -- Ben Carrillo Tue, 05 Nov 2013 11:53:34 -0200 diff --git a/debian/pydist-overrides b/debian/pydist-overrides index 043babf..cbfab2c 100644 --- a/debian/pydist-overrides +++ b/debian/pydist-overrides @@ -2,4 +2,3 @@ couchdb python-couchdb leap.soledad.common soledad-common leap.soledad_server soledad-server leap.keymanager leap-keymanager -cchardet python-chardet diff --git a/pkg/requirements.pip b/pkg/requirements.pip index 4242ad4..0666183 100644 --- a/pkg/requirements.pip +++ b/pkg/requirements.pip @@ -12,4 +12,4 @@ leap.common>=0.3.5 leap.soledad.common>=0.3.0 leap.keymanager>=0.3.4 -cchardet # we fallback to chardet if this is not available, but it's preferred +chardet # we fallback to chardet if cchardet is not available, but it's preferred -- cgit v1.2.3 From d835973d90952dc973c2f03c495a8e041e42d852 Mon Sep 17 00:00:00 2001 From: Micah Anderson Date: Sat, 9 Nov 2013 13:32:51 -0500 Subject: add python-leap-common to debian/pydist-overrides (#4424) --- debian/changelog | 6 ++++++ debian/pydist-overrides | 1 + 2 files changed, 7 insertions(+) diff --git a/debian/changelog b/debian/changelog index 1c28b30..1b99908 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +leap-mx (0.3.3.1) unstable; urgency=low + + * Add python-leap-common to pydist-overrides + + -- Micah Anderson Sat, 09 Nov 2013 13:31:53 -0500 + leap-mx (0.3.3) unstable; urgency=low * Update to 0.3.3 diff --git a/debian/pydist-overrides b/debian/pydist-overrides index cbfab2c..5f32948 100644 --- a/debian/pydist-overrides +++ b/debian/pydist-overrides @@ -2,3 +2,4 @@ couchdb python-couchdb leap.soledad.common soledad-common leap.soledad_server soledad-server leap.keymanager leap-keymanager +leap.common python-leap-common -- cgit v1.2.3 From 720fb764d4e05c790e8dee33ae380381d9ea4719 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Touceda?= Date: Tue, 5 Nov 2013 14:47:13 -0300 Subject: Use inline defers for more readable code --- src/leap/mx/mail_receiver.py | 57 ++++++++++++++++++++++---------------------- 1 file changed, 28 insertions(+), 29 deletions(-) diff --git a/src/leap/mx/mail_receiver.py b/src/leap/mx/mail_receiver.py index 8fcadce..741b99d 100644 --- a/src/leap/mx/mail_receiver.py +++ b/src/leap/mx/mail_receiver.py @@ -35,7 +35,7 @@ except ImportError: from email import message_from_string from twisted.application.service import Service -from twisted.internet import inotify +from twisted.internet import inotify, defer from twisted.python import filepath, log from leap.common.mail import get_email_charset @@ -91,33 +91,30 @@ class MailReceiver(Service): callbacks=[self._process_incoming_email], recursive=recursive) - def _encrypt_message(self, pubkey, uuid, message): + def _encrypt_message(self, pubkey, message): """ - Given a UUID, a public key and a message, it encrypts the - message to that public key. + Given a public key and a message, it encrypts the message to + that public key. The address is needed in order to build the OpenPGPKey object. - :param uuid_pubkey: tuple that holds the uuid and the public - key as it is returned by the previous call in the - chain - :type uuid_pubkey: tuple (str, str) + :param pubkey: public key for the owner of the message + :type pubkey: str :param message: message contents :type message: str - :return: uuid, doc to sync with Soledad or None, None if - something went wrong. - :rtype: tuple(str, SoledadDocument) + :return: doc to sync with Soledad or None, None if something + went wrong. + :rtype: SoledadDocument """ - if uuid is None or pubkey is None or len(pubkey) == 0: + if pubkey is None or len(pubkey) == 0: log.msg("_encrypt_message: Something went wrong, here's all " - "I know: %r | %r" % (uuid, pubkey)) + "I know: %r" % (pubkey,)) return None, None - log.msg("Encrypting message to %s's pubkey" % (uuid,)) - doc = SoledadDocument(doc_id=str(pyuuid.uuid4())) - encoding = get_email_charset(message, default=None) + encoding = get_email_charset(message.decode("utf8", "replace"), + default=None) if encoding is None: result = chardet.detect(message) encoding = result["encoding"] @@ -130,7 +127,7 @@ class MailReceiver(Service): ENC_SCHEME_KEY: EncryptionSchemes.NONE, ENC_JSON_KEY: json.dumps(data, encoding=encoding) } - return uuid, doc + return doc openpgp_key = None with openpgp.TempGPGWrapper(gpgbinary='/usr/bin/gpg') as gpg: @@ -149,22 +146,23 @@ class MailReceiver(Service): symmetric=False)) } - return uuid, doc + return doc - def _export_message(self, uuid_doc): + def _export_message(self, uuid, doc): """ Given a UUID and a SoledadDocument, it saves it directly in the couchdb that serves as a backend for Soledad, in a db accessible to the recipient of the mail. - :param uuid_doc: tuple that holds the UUID and SoledadDocument - :type uuid_doc: tuple(str, SoledadDocument) + :param uuid: the mail owner's uuid + :type uuid: str + :param doc: SoledadDocument that represents the email + :type doc: SoledadDocument :return: True if it's ok to remove the message, False otherwise :rtype: bool """ - uuid, doc = uuid_doc if uuid is None or doc is None: log.msg("_export_message: Something went wrong, here's all " "I know: %r | %r" % (uuid, doc)) @@ -222,6 +220,7 @@ class MailReceiver(Service): return uuid + @defer.inlineCallbacks def _process_incoming_email(self, otherself, filepath, mask): """ Callback that processes incoming email. @@ -252,12 +251,12 @@ class MailReceiver(Service): log.msg("BUG: There was no uuid!") return - d = self._users_cdb.getPubKey(uuid) - d.addCallbacks(self._encrypt_message, log.err, - (uuid, mail_data)) - d.addCallbacks(self._export_message, log.err) - d.addCallbacks(self._conditional_remove, log.err, - (filepath,)) - d.addErrback(log.err) + pubkey = yield self._users_cdb.getPubKey(uuid) + + log.msg("Encrypting message to %s's pubkey" % (uuid,)) + doc = yield self._encrypt_message(pubkey, mail_data) + + do_remove = yield self._export_message(uuid, doc) + yield self._conditional_remove(do_remove, filepath) except Exception: log.err() -- cgit v1.2.3 From e00874035ca01581c97febc87a4f71a4e05a1c31 Mon Sep 17 00:00:00 2001 From: Micah Anderson Date: Sat, 9 Nov 2013 14:32:47 -0500 Subject: cherry-pick e108a2ffec444c09b3661379a1051fda1f9952cf --- debian/changelog | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/debian/changelog b/debian/changelog index 1b99908..2e638a2 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +leap-mx (0.3.3.2) unstable; urgency=low + + * Cherry-pick e108a2ffec444c09b3661379a1051fda1f9952cf + + -- Micah Anderson Sat, 09 Nov 2013 14:32:08 -0500 + leap-mx (0.3.3.1) unstable; urgency=low * Add python-leap-common to pydist-overrides -- cgit v1.2.3 From 2cf7727b9b139189d5068b2594be1398419a5b9d Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Fri, 15 Nov 2013 23:14:18 -0200 Subject: update changelog to 0.3.4 --- debian/changelog | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/debian/changelog b/debian/changelog index 2e638a2..a982cd1 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +leap-mx (0.3.4) unstable; urgency=low + + * Update to 0.3.4 + + -- Ben Carrillo Fri, 15 Nov 2013 23:13:24 -0200 + leap-mx (0.3.3.2) unstable; urgency=low * Cherry-pick e108a2ffec444c09b3661379a1051fda1f9952cf -- cgit v1.2.3 From 2450884dfa2c64afa7eb20a97efbe5e49b1c5120 Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Fri, 15 Nov 2013 23:14:24 -0200 Subject: freeze debian version --- src/leap/mx/_version.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/leap/mx/_version.py b/src/leap/mx/_version.py index 47c31d0..ec3af1f 100644 --- a/src/leap/mx/_version.py +++ b/src/leap/mx/_version.py @@ -5,8 +5,8 @@ # unpacked source archive. Distribution tarballs contain a pre-generated copy # of this file. -version_version = '0.3.3' -version_full = 'dc2216ca6bd6845a9dd359bc6dca892d160c1729' +version_version = '0.3.4' +version_full = '2cf7727b9b139189d5068b2594be1398419a5b9d' def get_versions(default={}, verbose=False): -- cgit v1.2.3 From cee1edcf35a92e34a0b4a933e6370990aeec121e Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Tue, 10 Dec 2013 16:01:33 -0400 Subject: freeze debian version --- src/leap/mx/_version.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/leap/mx/_version.py b/src/leap/mx/_version.py index ec3af1f..e1dd3f1 100644 --- a/src/leap/mx/_version.py +++ b/src/leap/mx/_version.py @@ -5,8 +5,8 @@ # unpacked source archive. Distribution tarballs contain a pre-generated copy # of this file. -version_version = '0.3.4' -version_full = '2cf7727b9b139189d5068b2594be1398419a5b9d' +version_version = '0.3.5' +version_full = '6fc3dc07ddfadb15a94192b9bb64ca01919e171e' def get_versions(default={}, verbose=False): -- cgit v1.2.3 From a0c3693b8db735fac9fb2a6906257c3938bc4a1e Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Tue, 10 Dec 2013 16:02:32 -0400 Subject: update changelog --- debian/changelog | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/debian/changelog b/debian/changelog index a982cd1..f7d0d48 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +leap-mx (0.3.5) unstable; urgency=low + + * Update to 0.3.5 + + -- Ben Carrillo Tue, 10 Dec 2013 16:02:10 -0400 + leap-mx (0.3.4) unstable; urgency=low * Update to 0.3.4 -- cgit v1.2.3 From b6339a333d7d54a23d5836d1ee6f89d95beedc45 Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Mon, 23 Dec 2013 02:07:37 -0400 Subject: update changelog to 0.5.0 --- debian/changelog | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/debian/changelog b/debian/changelog index f7d0d48..b37374b 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +leap-mx (0.5.0~rc) unstable; urgency=low + + * Update to 0.5.0 (unified release with bitmask and soledad) + + -- Ben Carrillo Mon, 23 Dec 2013 02:06:48 -0400 + leap-mx (0.3.5) unstable; urgency=low * Update to 0.3.5 -- cgit v1.2.3 From c94c54ac992a1fe493d1f46e7baa8ccbc25addf3 Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Mon, 23 Dec 2013 02:08:00 -0400 Subject: freeze debian version to 0.5.0-rc --- src/leap/mx/_version.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/leap/mx/_version.py b/src/leap/mx/_version.py index e1dd3f1..499accd 100644 --- a/src/leap/mx/_version.py +++ b/src/leap/mx/_version.py @@ -5,8 +5,8 @@ # unpacked source archive. Distribution tarballs contain a pre-generated copy # of this file. -version_version = '0.3.5' -version_full = '6fc3dc07ddfadb15a94192b9bb64ca01919e171e' +version_version = '0.5.0-rc1' +version_full = 'b6339a333d7d54a23d5836d1ee6f89d95beedc45' def get_versions(default={}, verbose=False): -- cgit v1.2.3 From 66ad503c1531cbcfc8b4e7425f1f418ce9644e3e Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Mon, 23 Dec 2013 02:11:10 -0400 Subject: bump requirements to unified release --- pkg/requirements.pip | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkg/requirements.pip b/pkg/requirements.pip index 0666183..d20aa25 100644 --- a/pkg/requirements.pip +++ b/pkg/requirements.pip @@ -8,8 +8,8 @@ paisley>=0.3.1 # for the time being. couchdb -leap.common>=0.3.5 -leap.soledad.common>=0.3.0 -leap.keymanager>=0.3.4 +leap.common>=0.3.7 +leap.soledad.common>=0.5.0 +leap.keymanager>=0.3.8 chardet # we fallback to chardet if cchardet is not available, but it's preferred -- cgit v1.2.3 From 42f53026d3bb8d67077dade8c280d87130dc09a5 Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Mon, 23 Dec 2013 12:12:29 -0400 Subject: fix deps to something installable --- pkg/requirements.pip | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkg/requirements.pip b/pkg/requirements.pip index d20aa25..f3f96ac 100644 --- a/pkg/requirements.pip +++ b/pkg/requirements.pip @@ -8,8 +8,8 @@ paisley>=0.3.1 # for the time being. couchdb -leap.common>=0.3.7 -leap.soledad.common>=0.5.0 -leap.keymanager>=0.3.8 +leap.common>=0.3.6.99 +leap.soledad.common>=0.4.99 +leap.keymanager>=0.3.7.99 chardet # we fallback to chardet if cchardet is not available, but it's preferred -- cgit v1.2.3 From d2201ef25449ec34872a210084d92cadf49b43da Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Tue, 22 Apr 2014 08:41:08 -0500 Subject: bump debian changelog to 0.5.0 --- debian/changelog | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index b37374b..0665beb 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,6 +1,12 @@ +leap-mx (0.5.0) unstable; urgency=medium + + * 0.5.0 final version + + -- Ben Carrillo Tue, 22 Apr 2014 08:40:16 -0500 + leap-mx (0.5.0~rc) unstable; urgency=low - * Update to 0.5.0 (unified release with bitmask and soledad) + * Update to 0.5.0 release candidate (unified release with bitmask and soledad) -- Ben Carrillo Mon, 23 Dec 2013 02:06:48 -0400 -- cgit v1.2.3 From 0420989d62c7508e31f946ca7b52e98b87cc2bcb Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Tue, 22 Apr 2014 08:41:47 -0500 Subject: freeze debian ver to 0.5.0 --- src/leap/mx/_version.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/leap/mx/_version.py b/src/leap/mx/_version.py index 499accd..f758b20 100644 --- a/src/leap/mx/_version.py +++ b/src/leap/mx/_version.py @@ -5,7 +5,7 @@ # unpacked source archive. Distribution tarballs contain a pre-generated copy # of this file. -version_version = '0.5.0-rc1' +version_version = '0.5.0' version_full = 'b6339a333d7d54a23d5836d1ee6f89d95beedc45' -- cgit v1.2.3 From dd9bd6219f7187e7ddf26aa740a1d3ff00910e0f Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Tue, 11 Nov 2014 21:56:36 +0100 Subject: bump debian changelog to 0.6.0 version --- debian/changelog | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/debian/changelog b/debian/changelog index 0665beb..1c25adb 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,14 +1,14 @@ -leap-mx (0.5.0) unstable; urgency=medium +leap-mx (0.6.0) unstable; urgency=medium - * 0.5.0 final version + * Update to 0.6.0 version - -- Ben Carrillo Tue, 22 Apr 2014 08:40:16 -0500 + -- Ben Carrillo Tue, 11 Nov 2014 21:53:58 +0100 -leap-mx (0.5.0~rc) unstable; urgency=low +leap-mx (0.5.0) unstable; urgency=medium - * Update to 0.5.0 release candidate (unified release with bitmask and soledad) + * 0.5.0 final version (unified release with bitmask and soledad) - -- Ben Carrillo Mon, 23 Dec 2013 02:06:48 -0400 + -- Ben Carrillo Tue, 22 Apr 2014 08:40:16 -0500 leap-mx (0.3.5) unstable; urgency=low -- cgit v1.2.3 From 7e5f325c7007d266361032605840629ecab2ba67 Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Tue, 11 Nov 2014 21:56:57 +0100 Subject: freeze debian version --- src/leap/mx/_version.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/leap/mx/_version.py b/src/leap/mx/_version.py index f758b20..93af93d 100644 --- a/src/leap/mx/_version.py +++ b/src/leap/mx/_version.py @@ -5,8 +5,8 @@ # unpacked source archive. Distribution tarballs contain a pre-generated copy # of this file. -version_version = '0.5.0' -version_full = 'b6339a333d7d54a23d5836d1ee6f89d95beedc45' +version_version = '0.6.0' +version_full = 'dd9bd6219f7187e7ddf26aa740a1d3ff00910e0f' def get_versions(default={}, verbose=False): -- cgit v1.2.3 From 85680ed4053aca4794cd88f75388c56c350fc466 Mon Sep 17 00:00:00 2001 From: Micah Anderson Date: Mon, 12 Jan 2015 14:26:18 -0500 Subject: sync upstream initscript and custom debian one, adding syslog options --- debian/changelog | 7 ++++++ debian/leap-mx.init | 66 +---------------------------------------------------- pkg/leap_mx | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 74 insertions(+), 65 deletions(-) mode change 100644 => 120000 debian/leap-mx.init create mode 100644 pkg/leap_mx diff --git a/debian/changelog b/debian/changelog index 1c25adb..49480f8 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +leap-mx (0.6.0.1) unstable; urgency=medium + + * Sync upstream initscript and ours, adding syslog options + to better handle logging (#4599, #6307) + + -- Micah Anderson Mon, 12 Jan 2015 14:25:16 -0500 + leap-mx (0.6.0) unstable; urgency=medium * Update to 0.6.0 version diff --git a/debian/leap-mx.init b/debian/leap-mx.init deleted file mode 100644 index 3b454d0..0000000 --- a/debian/leap-mx.init +++ /dev/null @@ -1,65 +0,0 @@ -#!/bin/sh -### BEGIN INIT INFO -# Provides: leap-mx -# Required-Start: $network $named $remote_fs $syslog $time -# Required-Stop: $network $named $remote_fs $syslog -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -# Short-Description: Start leap-mx daemon at boot time -# Description: transparently-encrypting remailer -### END INIT INFO - -PATH=/sbin:/bin:/usr/sbin:/usr/bin -PIDFILE=/var/run/leap_mx.pid -RUNDIR=/var/lib/leap_mx/ -FILE=/usr/share/app/leap_mx.tac -LOGFILE=/var/log/leap_mx.log -TWISTD_PATH=/usr/bin/twistd - -[ -r /etc/default/leap_mx ] && . /etc/default/leap_mx - -. /lib/lsb/init-functions - -test -r $file || exit 0 -test -r /etc/leap/ || exit 0 - - -case "$1" in - start) - echo -n "Starting leap_mx: twistd" - HOME="/var/lib/leap_mx/" \ - start-stop-daemon --start --quiet --exec $TWISTD_PATH -- \ - --pidfile=$PIDFILE \ - --rundir=$RUNDIR \ - --python=$FILE \ - --logfile=$LOGFILE - echo "." - ;; - - stop) - echo -n "Stopping leap_mx: twistd" - start-stop-daemon --stop --quiet \ - --pidfile $PIDFILE - echo "." - ;; - - restart) - $0 stop - $0 start - ;; - - force-reload) - $0 restart - ;; - - status) - status_of_proc -p $PIDFILE $TWISTD_PATH leap_mx && exit 0 || exit $? - ;; - - *) - echo "Usage: /etc/init.d/leap_mx {start|stop|restart|force-reload|status}" >&2 - exit 1 - ;; -esac - -exit 0 diff --git a/debian/leap-mx.init b/debian/leap-mx.init new file mode 120000 index 0000000..b4022e6 --- /dev/null +++ b/debian/leap-mx.init @@ -0,0 +1 @@ +../pkg/leap_mx \ No newline at end of file diff --git a/pkg/leap_mx b/pkg/leap_mx new file mode 100644 index 0000000..60dddc4 --- /dev/null +++ b/pkg/leap_mx @@ -0,0 +1,66 @@ +#!/bin/sh +### BEGIN INIT INFO +# Provides: leap-mx +# Required-Start: $network $named $remote_fs $syslog $time +# Required-Stop: $network $named $remote_fs $syslog +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: Start leap-mx daemon at boot time +# Description: transparently-encrypting remailer +### END INIT INFO + +PATH=/sbin:/bin:/usr/sbin:/usr/bin +PIDFILE=/var/run/leap_mx.pid +RUNDIR=/var/lib/leap_mx/ +FILE=/usr/share/app/leap_mx.tac +LOGFILE=/var/log/leap_mx.log +TWISTD_PATH=/usr/bin/twistd + +[ -r /etc/default/leap_mx ] && . /etc/default/leap_mx + +. /lib/lsb/init-functions + +test -r $file || exit 0 +test -r /etc/leap/ || exit 0 + + +case "$1" in + start) + echo -n "Starting leap_mx: twistd" + HOME="/var/lib/leap_mx/" \ + start-stop-daemon --start --quiet --exec $TWISTD_PATH -- \ + --pidfile=$PIDFILE \ + --rundir=$RUNDIR \ + --python=$FILE \ + --logfile=$LOGFILE \ + --syslog --prefix=leap-mx + echo "." + ;; + + stop) + echo -n "Stopping leap_mx: twistd" + start-stop-daemon --stop --quiet \ + --pidfile $PIDFILE + echo "." + ;; + + restart) + $0 stop + $0 start + ;; + + force-reload) + $0 restart + ;; + + status) + status_of_proc -p $PIDFILE $TWISTD_PATH leap_mx && exit 0 || exit $? + ;; + + *) + echo "Usage: /etc/init.d/leap_mx {start|stop|restart|force-reload|status}" >&2 + exit 1 + ;; +esac + +exit 0 -- cgit v1.2.3 From a3bd2f6073a2ab10edfa15ff22e230baf611f239 Mon Sep 17 00:00:00 2001 From: Ruben Pollan Date: Mon, 22 Dec 2014 09:04:29 -0600 Subject: Use gpg key directly _build_key_from_gpg in keymanager has changed --- src/leap/mx/mail_receiver.py | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/leap/mx/mail_receiver.py b/src/leap/mx/mail_receiver.py index dd76f08..d3f3c68 100644 --- a/src/leap/mx/mail_receiver.py +++ b/src/leap/mx/mail_receiver.py @@ -224,10 +224,6 @@ class MailReceiver(Service): with openpgp.TempGPGWrapper(gpgbinary='/usr/bin/gpg') as gpg: gpg.import_keys(pubkey) key = gpg.list_keys().pop() - # We don't care about the actual address, so we use a - # dummy one, we just care about the import of the pubkey - openpgp_key = openpgp._build_key_from_gpg("dummy@mail.com", - key, pubkey) # add X-Leap-Provenance header if message is not encrypted if message.get_content_type() != 'multipart/encrypted' and \ @@ -236,7 +232,7 @@ class MailReceiver(Service): message.add_header( 'X-Leap-Provenance', email.utils.formatdate(), - pubkey=openpgp_key.key_id) + pubkey=key["keyid"]) data = {'incoming': True, 'content': message.as_string()} doc.content = { self.INCOMING_KEY: True, @@ -244,7 +240,7 @@ class MailReceiver(Service): ENC_SCHEME_KEY: EncryptionSchemes.PUBKEY, ENC_JSON_KEY: str(gpg.encrypt( json.dumps(data, ensure_ascii=False), - openpgp_key.fingerprint, + key["fingerprint"], symmetric=False)) } -- cgit v1.2.3 From 32ad66e33bac3f8105b5898fdeff33a74a7e2974 Mon Sep 17 00:00:00 2001 From: drebs Date: Thu, 5 Feb 2015 10:04:12 -0200 Subject: Process unprocessed mail when MX starts (closes #2591). --- ...ature_2591_process-unprocessed-mail-when-mx-starts | 1 + src/leap/mx/mail_receiver.py | 19 +++++++++++-------- 2 files changed, 12 insertions(+), 8 deletions(-) create mode 100644 changes/feature_2591_process-unprocessed-mail-when-mx-starts diff --git a/changes/feature_2591_process-unprocessed-mail-when-mx-starts b/changes/feature_2591_process-unprocessed-mail-when-mx-starts new file mode 100644 index 0000000..fd5ceb0 --- /dev/null +++ b/changes/feature_2591_process-unprocessed-mail-when-mx-starts @@ -0,0 +1 @@ +o Process unprocessed mail when MX starts (closes #2591). diff --git a/src/leap/mx/mail_receiver.py b/src/leap/mx/mail_receiver.py index d3f3c68..2d91fda 100644 --- a/src/leap/mx/mail_receiver.py +++ b/src/leap/mx/mail_receiver.py @@ -134,6 +134,7 @@ class MailReceiver(Service): INCOMING_KEY = 'incoming' ERROR_DECRYPTING_KEY = "errdecr" + PROCESS_SKIPPED_INTERVAL = 60 * 30 # every half an hour def __init__(self, mail_couch_url, users_cdb, directories, bounce_from, bounce_subject): @@ -171,17 +172,18 @@ class MailReceiver(Service): self.wm = inotify.INotify() self.wm.startReading() + # watch the mail directory for new files and process incoming mail mask = inotify.IN_CREATE - for directory, recursive in self._directories: log.msg("Watching %r --- Recursive: %r" % (directory, recursive)) self.wm.watch(filepath.FilePath(directory), mask, callbacks=[self._process_incoming_email], recursive=recursive) + # schedule a periodic task to process skipped mail, but also run it + # immediatelly self._lcall = task.LoopingCall(self._process_skipped) - # Run once every half an hour, but don't start right now - self._lcall.start(interval=60*30, now=False) + self._lcall.start(interval=self.PROCESS_SKIPPED_INTERVAL, now=True) def _encrypt_message(self, pubkey, message): """ @@ -380,7 +382,7 @@ class MailReceiver(Service): self._processing_skipped = True try: log.msg("Starting processing skipped mail...") - log.msg("-"*50) + log.msg("-" * 50) for directory, recursive in self._directories: for root, dirs, files in os.walk(directory): @@ -390,7 +392,7 @@ class MailReceiver(Service): fpath = filepath.FilePath(fullpath) yield self._step_process_mail_backend(fpath) except Exception: - log.msg("Error processing skipped mail: %r" % \ + log.msg("Error processing skipped mail: %r" % (fullpath,)) log.err() if not recursive: @@ -401,7 +403,7 @@ class MailReceiver(Service): finally: self._processing_skipped = False - log.msg("+"*50) + log.msg("+" * 50) log.msg("Done processing skipped mail") @defer.inlineCallbacks @@ -463,9 +465,10 @@ class MailReceiver(Service): """ try: while self._processing_skipped: - log.msg("Waiting for the process of skipped mail to be done...") + log.msg("Waiting for the process of skipped mail to be " + "done...") yield self.sleep(10) # NO-OP - if os.path.split(filepath.dirname())[-1] == "new": + if os.path.split(filepath.dirname())[-1] == "new": yield self._step_process_mail_backend(filepath) except Exception as e: log.msg("Something went wrong while processing {0!r}: {1!r}" -- cgit v1.2.3 From 26662f2a713a96f22884601801d466a06e309cb2 Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Thu, 5 Feb 2015 10:46:57 -0400 Subject: Add ability to trigger processing on SIGUSR1 (Related: #2591) --- src/leap/mx/mail_receiver.py | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/src/leap/mx/mail_receiver.py b/src/leap/mx/mail_receiver.py index 2d91fda..5fa3863 100644 --- a/src/leap/mx/mail_receiver.py +++ b/src/leap/mx/mail_receiver.py @@ -15,9 +15,13 @@ # # You should have received a copy of the GNU General Public License # along with this program. If not, see . - """ -MailReceiver service definition +MailReceiver service definition. This service monitors the incoming mail and +process it. + +The MailReceiver service is configured to process incoming any skipped mail +every half an hour, and also on service start. It can be forced to start +processing by sending SIGUSR1 to the process. If there's a user facing problem when processing an email, it will be bounced back to the sender. @@ -29,9 +33,9 @@ User facing problems could be: Any other problem is a bug, which will be logged. Until the bug is fixed, the email will stay in there waiting. """ - import os import uuid as pyuuid +import signal import json import email.utils @@ -43,10 +47,12 @@ from email.MIMEText import MIMEText from email.Utils import formatdate from email.header import decode_header -from twisted.application.service import Service +from twisted.application.service import Service, IService from twisted.internet import inotify, defer, task, reactor from twisted.python import filepath, log +from zope.interface import implements + from leap.soledad.common.crypto import ( EncryptionSchemes, ENC_JSON_KEY, @@ -129,8 +135,9 @@ def async_check_output(args, msg): class MailReceiver(Service): """ - Service that monitors incoming email and processes it + Service that monitors incoming email and processes it. """ + implements(IService) INCOMING_KEY = 'incoming' ERROR_DECRYPTING_KEY = "errdecr" @@ -144,13 +151,17 @@ class MailReceiver(Service): :param mail_couch_url: URL prefix for the couchdb where mail should be stored :type mail_couch_url: str + :param users_cdb: CouchDB instance from where to get the uuid - and pubkey for a user + and pubkey for a user :type users_cdb: ConnectedCouchDB + :param directories: list of directories to monitor :type directories: list of tuples (path: str, recursive: bool) + :param bounce_from: Email address of the bouncer :type bounce_from: str + :param bounce_subject: Subject line used in the bounced mail :type bounce_subject: str """ @@ -164,6 +175,11 @@ class MailReceiver(Service): self._bounce_from = bounce_from self._bounce_subject = bounce_subject + def _signal_handler(sig_num, stack_frame): + self._process_skipped() + + signal.signal(signal.SIGUSR1, _signal_handler) + def startService(self): """ Starts the MailReceiver service -- cgit v1.2.3 From 646f7c4e4e4237caeaeb52a5d63580406df955b4 Mon Sep 17 00:00:00 2001 From: drebs Date: Fri, 6 Feb 2015 16:48:13 -0200 Subject: Retry watching dirs if failed for some reason (closes #6687). --- ...6687_log-and-retry-when-watched-dirs-dont-exist | 1 + src/leap/mx/mail_receiver.py | 68 +++++++++++++++++----- 2 files changed, 53 insertions(+), 16 deletions(-) create mode 100644 changes/bug_6687_log-and-retry-when-watched-dirs-dont-exist diff --git a/changes/bug_6687_log-and-retry-when-watched-dirs-dont-exist b/changes/bug_6687_log-and-retry-when-watched-dirs-dont-exist new file mode 100644 index 0000000..bddba01 --- /dev/null +++ b/changes/bug_6687_log-and-retry-when-watched-dirs-dont-exist @@ -0,0 +1 @@ + o MX log and retry when delivery directories don't exist. Closes #6687. diff --git a/src/leap/mx/mail_receiver.py b/src/leap/mx/mail_receiver.py index 5fa3863..630c982 100644 --- a/src/leap/mx/mail_receiver.py +++ b/src/leap/mx/mail_receiver.py @@ -143,6 +143,12 @@ class MailReceiver(Service): ERROR_DECRYPTING_KEY = "errdecr" PROCESS_SKIPPED_INTERVAL = 60 * 30 # every half an hour + """ + If there's a failure when trying to watch a directory for file creation, + the service will schedule a retry delayed by the following amount of time. + """ + RETRY_DIR_WATCH_DELAY = 60 * 5 # 5 minutes + def __init__(self, mail_couch_url, users_cdb, directories, bounce_from, bounce_subject): """ @@ -165,20 +171,15 @@ class MailReceiver(Service): :param bounce_subject: Subject line used in the bounced mail :type bounce_subject: str """ - # Service doesn't define an __init__ + # IService doesn't define an __init__ self._mail_couch_url = mail_couch_url self._users_cdb = users_cdb self._directories = directories - self._domain = socket.gethostbyaddr(socket.gethostname())[0] - self._processing_skipped = False - self._bounce_from = bounce_from self._bounce_subject = bounce_subject - def _signal_handler(sig_num, stack_frame): - self._process_skipped() - - signal.signal(signal.SIGUSR1, _signal_handler) + self._domain = socket.gethostbyaddr(socket.gethostname())[0] + self._processing_skipped = False def startService(self): """ @@ -188,19 +189,55 @@ class MailReceiver(Service): self.wm = inotify.INotify() self.wm.startReading() - # watch the mail directory for new files and process incoming mail - mask = inotify.IN_CREATE + # watch mail directories for new files to trigger processing of + # incoming mail for directory, recursive in self._directories: - log.msg("Watching %r --- Recursive: %r" % (directory, recursive)) - self.wm.watch(filepath.FilePath(directory), mask, - callbacks=[self._process_incoming_email], - recursive=recursive) + self._start_watching_dir(directory, recursive) - # schedule a periodic task to process skipped mail, but also run it + # schedule a periodic task to process skipped mail, and also run it # immediatelly self._lcall = task.LoopingCall(self._process_skipped) self._lcall.start(interval=self.PROCESS_SKIPPED_INTERVAL, now=True) + # catch SIGUSR1 to trigger processing of skipped mail + signal.signal( + signal.SIGUSR1, + lambda *_: self._process_skipped()) + + def stopService(self): + """ + Stop the MailReceiver service + """ + self.wm.stopReading() + self._lcall.stop() + + def _start_watching_dir(self, dirname, recursive): + """ + Start watching a directory to trigger processing of newly created + files. + + Will also add a delayed call to retry when failed for some reason. + """ + directory = filepath.FilePath(dirname) + try: + if not directory.isdir(): + raise OSError("Not a directory: '%s'" % directory.path) + self.wm.watch( + directory, + inotify.IN_CREATE, + callbacks=[self._process_incoming_email], + recursive=recursive) + log.msg("Watching %r --- Recursive: %r" % (directory, recursive)) + except Exception as e: + log.msg( + "Failed adding watch to %s, will try again in %s seconds: %s" + % (directory, self.RETRY_DIR_WATCH_DELAY, e)) + reactor.callLater( + self.RETRY_DIR_WATCH_DELAY, + self._start_watching_dir, + dirname, + recursive) + def _encrypt_message(self, pubkey, message): """ Given a public key and a message, it encrypts the message to @@ -380,7 +417,6 @@ class MailReceiver(Service): :rtype: twisted.internet.defer.Deferred """ - from twisted.internet import reactor d = defer.Deferred() reactor.callLater(secs, d.callback, None) return d -- cgit v1.2.3 From 22c714c1d4cf225dd35d59eb9b67d04de5c698cd Mon Sep 17 00:00:00 2001 From: Ivan Alejandro Date: Wed, 11 Feb 2015 12:17:52 -0300 Subject: Fold in changes --- CHANGELOG | 5 +++++ changes/bug_6687_log-and-retry-when-watched-dirs-dont-exist | 1 - changes/feature_2591_process-unprocessed-mail-when-mx-starts | 1 - 3 files changed, 5 insertions(+), 2 deletions(-) delete mode 100644 changes/bug_6687_log-and-retry-when-watched-dirs-dont-exist delete mode 100644 changes/feature_2591_process-unprocessed-mail-when-mx-starts diff --git a/CHANGELOG b/CHANGELOG index 87f6ef1..6f58b5e 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,8 @@ +0.6.1 Feb 11, 2015: + o Process unprocessed mail when MX starts (closes #2591). + o Log to syslog. Closes: #6307 + o MX log and retry when delivery directories don't exist. Closes #6687. + 0.6.0 Sept 26, 2014: o Bounce mails when there's a problematic situation for an email, such as no public key. Fixes #4803. diff --git a/changes/bug_6687_log-and-retry-when-watched-dirs-dont-exist b/changes/bug_6687_log-and-retry-when-watched-dirs-dont-exist deleted file mode 100644 index bddba01..0000000 --- a/changes/bug_6687_log-and-retry-when-watched-dirs-dont-exist +++ /dev/null @@ -1 +0,0 @@ - o MX log and retry when delivery directories don't exist. Closes #6687. diff --git a/changes/feature_2591_process-unprocessed-mail-when-mx-starts b/changes/feature_2591_process-unprocessed-mail-when-mx-starts deleted file mode 100644 index fd5ceb0..0000000 --- a/changes/feature_2591_process-unprocessed-mail-when-mx-starts +++ /dev/null @@ -1 +0,0 @@ -o Process unprocessed mail when MX starts (closes #2591). -- cgit v1.2.3 From ac3dab0d5ba813c99ed852e1a23212fe8ecd3f96 Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Wed, 11 Feb 2015 11:43:58 -0400 Subject: install mx changelog --- debian/rules | 3 +++ 1 file changed, 3 insertions(+) diff --git a/debian/rules b/debian/rules index bcebae9..aede8d9 100755 --- a/debian/rules +++ b/debian/rules @@ -3,4 +3,7 @@ %: dh $@ --with python2 --buildsystem=python_distutils +override_dh_installchangelogs: + dh_installchangelogs CHANGELOG + -- cgit v1.2.3 From 27057f5ad79379322fbf91bca2d245854158ffee Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Wed, 11 Feb 2015 11:44:08 -0400 Subject: freeze debian version --- src/leap/mx/_version.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/leap/mx/_version.py b/src/leap/mx/_version.py index 93af93d..c5b0d41 100644 --- a/src/leap/mx/_version.py +++ b/src/leap/mx/_version.py @@ -5,8 +5,8 @@ # unpacked source archive. Distribution tarballs contain a pre-generated copy # of this file. -version_version = '0.6.0' -version_full = 'dd9bd6219f7187e7ddf26aa740a1d3ff00910e0f' +version_version = '0.6.1' +version_full = '5eba811b132ccc0c87052b8026b366aff17a6eb8' def get_versions(default={}, verbose=False): -- cgit v1.2.3 From 6fdeb01650c6cc6cc66ca3ef559c2741a319967a Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Wed, 11 Feb 2015 11:45:27 -0400 Subject: bump debian changelog to 0.6.1 --- debian/changelog | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/debian/changelog b/debian/changelog index 49480f8..a2782a3 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +leap-mx (0.6.1) unstable; urgency=medium + + * Update to 0.6.1 version + * Install leap.mx changelog. + + -- Ben Carrillo Wed, 11 Feb 2015 11:44:50 -0400 + leap-mx (0.6.0.1) unstable; urgency=medium * Sync upstream initscript and ours, adding syslog options -- cgit v1.2.3 From 5d0fffda31e0f07f7f8396fda961d3d0fac33733 Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Wed, 11 Feb 2015 11:46:05 -0400 Subject: bump standards version --- debian/control | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/control b/debian/control index c5a9206..d34a270 100644 --- a/debian/control +++ b/debian/control @@ -3,7 +3,7 @@ Maintainer: Micah Anderson Section: python Priority: optional Build-Depends: python-setuptools (>= 0.6b3), python-all (>= 2.6.6-3), debhelper (>= 9) -Standards-Version: 3.9.4 +Standards-Version: 3.9.6 Package: leap-mx Architecture: all -- cgit v1.2.3 From 805db25226ee0424a7beb141bfdd6115df82ad8d Mon Sep 17 00:00:00 2001 From: drebs Date: Tue, 21 Apr 2015 17:06:42 -0300 Subject: [pkg] freeze debian version --- deb_release.sh | 2 +- debian/changelog | 6 ++++++ src/leap/mx/_version.py | 4 ++-- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/deb_release.sh b/deb_release.sh index a38a405..51c5a7b 100755 --- a/deb_release.sh +++ b/deb_release.sh @@ -5,4 +5,4 @@ rm ${VERSION_FILE} python setup.py freeze_debianver sed -i 's/-dirty//g' ${VERSION_FILE} git add ${VERSION_FILE} -git ci -m "freeze debian version" +git commit -m "freeze debian version" diff --git a/debian/changelog b/debian/changelog index c473f3c..96bbcdd 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +leap-mx (0.6.2) unstable; urgency=medium + + * Update to 0.6.2 version + + -- drebs Tue, 21 Apr 2015 17:04:16 -0300 + leap-mx (0.6.1) unstable; urgency=medium * Update to 0.6.1 version diff --git a/src/leap/mx/_version.py b/src/leap/mx/_version.py index c5b0d41..7bb7745 100644 --- a/src/leap/mx/_version.py +++ b/src/leap/mx/_version.py @@ -5,8 +5,8 @@ # unpacked source archive. Distribution tarballs contain a pre-generated copy # of this file. -version_version = '0.6.1' -version_full = '5eba811b132ccc0c87052b8026b366aff17a6eb8' +version_version = '0.6.2' +version_full = 'ad8c61d00fb7d2474d129a5bb553dd0f5206f279' def get_versions(default={}, verbose=False): -- cgit v1.2.3 From 9b27a1e81c5ced760d15b65e40fc6a0215231b1c Mon Sep 17 00:00:00 2001 From: drebs Date: Wed, 22 Apr 2015 15:33:27 -0300 Subject: [pkg] update debian control file --- debian/control | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/debian/control b/debian/control index d34a270..7d9394f 100644 --- a/debian/control +++ b/debian/control @@ -1,8 +1,9 @@ Source: leap-mx -Maintainer: Micah Anderson +Maintainer: drebs +Uploader: Micah Anderson Section: python Priority: optional -Build-Depends: python-setuptools (>= 0.6b3), python-all (>= 2.6.6-3), debhelper (>= 9) +Build-Depends: python-setuptools (>= 0.6b3), python-all (>= 2.6.6-3), debhelper (>= 9), dh-python Standards-Version: 3.9.6 Package: leap-mx -- cgit v1.2.3 From 7ee54d1f036a679e7fa2f4f565c76bef6237041a Mon Sep 17 00:00:00 2001 From: drebs Date: Wed, 29 Apr 2015 16:18:45 -0300 Subject: [pkg] freeze debian version --- src/leap/mx/_version.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/leap/mx/_version.py b/src/leap/mx/_version.py index 7bb7745..408b91c 100644 --- a/src/leap/mx/_version.py +++ b/src/leap/mx/_version.py @@ -5,8 +5,8 @@ # unpacked source archive. Distribution tarballs contain a pre-generated copy # of this file. -version_version = '0.6.2' -version_full = 'ad8c61d00fb7d2474d129a5bb553dd0f5206f279' +version_version = '0.7.0' +version_full = '161e72a01ec53a6dae7fe5b4229b478377ca6458' def get_versions(default={}, verbose=False): -- cgit v1.2.3 From 5e4a8a7b4d6acb31f1033fe9fe6f3e4c9e3ebd1c Mon Sep 17 00:00:00 2001 From: drebs Date: Wed, 29 Apr 2015 16:20:11 -0300 Subject: [pkg] update deb_release.sh commit message --- deb_release.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deb_release.sh b/deb_release.sh index 51c5a7b..31e9bfd 100755 --- a/deb_release.sh +++ b/deb_release.sh @@ -5,4 +5,4 @@ rm ${VERSION_FILE} python setup.py freeze_debianver sed -i 's/-dirty//g' ${VERSION_FILE} git add ${VERSION_FILE} -git commit -m "freeze debian version" +git commit -m "[pkg] freeze debian version" -- cgit v1.2.3 From f49023a6bf38d79a06b4f4b3b74a87e69dde6acf Mon Sep 17 00:00:00 2001 From: drebs Date: Wed, 29 Apr 2015 16:20:51 -0300 Subject: [pkg] bump debian changelog to 0.7.0 --- debian/changelog | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/debian/changelog b/debian/changelog index 96bbcdd..33d07e5 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +leap-mx (0.7.0) unstable; urgency=medium + + * Update to 0.7.0 version + + -- drebs Wed, 29 Apr 2015 16:18:53 -0300 + leap-mx (0.6.2) unstable; urgency=medium * Update to 0.6.2 version -- cgit v1.2.3 From 080ee1dd572b11adc09543e43a6fc798c6edc86f Mon Sep 17 00:00:00 2001 From: drebs Date: Mon, 4 May 2015 12:56:13 -0300 Subject: [bug] fix initscript symlink --- debian/leap-mx.init | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/leap-mx.init b/debian/leap-mx.init index b4022e6..b2cb6f8 120000 --- a/debian/leap-mx.init +++ b/debian/leap-mx.init @@ -1 +1 @@ -../pkg/leap_mx \ No newline at end of file +../pkg/leap-mx.init \ No newline at end of file -- cgit v1.2.3 From 872d50d860f633ed54539af3d708dba3f1c86b65 Mon Sep 17 00:00:00 2001 From: Micah Anderson Date: Tue, 5 May 2015 10:49:07 -0400 Subject: [bug] actually fix initscript symlink --- debian/leap-mx.init | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/leap-mx.init b/debian/leap-mx.init index b2cb6f8..cf8cd42 120000 --- a/debian/leap-mx.init +++ b/debian/leap-mx.init @@ -1 +1 @@ -../pkg/leap-mx.init \ No newline at end of file +../pkg/leap_mx.init \ No newline at end of file -- cgit v1.2.3 From 2a3e3821bb0b7af4d8ce379c52be93e7e09db034 Mon Sep 17 00:00:00 2001 From: drebs Date: Tue, 5 May 2015 12:08:05 -0300 Subject: [refactor] move initscript to more sensible name --- debian/leap-mx.init | 2 +- pkg/leap-mx.init | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++++ pkg/leap_mx.init | 66 ----------------------------------------------------- 3 files changed, 67 insertions(+), 67 deletions(-) create mode 100644 pkg/leap-mx.init delete mode 100644 pkg/leap_mx.init diff --git a/debian/leap-mx.init b/debian/leap-mx.init index cf8cd42..b2cb6f8 120000 --- a/debian/leap-mx.init +++ b/debian/leap-mx.init @@ -1 +1 @@ -../pkg/leap_mx.init \ No newline at end of file +../pkg/leap-mx.init \ No newline at end of file diff --git a/pkg/leap-mx.init b/pkg/leap-mx.init new file mode 100644 index 0000000..60dddc4 --- /dev/null +++ b/pkg/leap-mx.init @@ -0,0 +1,66 @@ +#!/bin/sh +### BEGIN INIT INFO +# Provides: leap-mx +# Required-Start: $network $named $remote_fs $syslog $time +# Required-Stop: $network $named $remote_fs $syslog +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: Start leap-mx daemon at boot time +# Description: transparently-encrypting remailer +### END INIT INFO + +PATH=/sbin:/bin:/usr/sbin:/usr/bin +PIDFILE=/var/run/leap_mx.pid +RUNDIR=/var/lib/leap_mx/ +FILE=/usr/share/app/leap_mx.tac +LOGFILE=/var/log/leap_mx.log +TWISTD_PATH=/usr/bin/twistd + +[ -r /etc/default/leap_mx ] && . /etc/default/leap_mx + +. /lib/lsb/init-functions + +test -r $file || exit 0 +test -r /etc/leap/ || exit 0 + + +case "$1" in + start) + echo -n "Starting leap_mx: twistd" + HOME="/var/lib/leap_mx/" \ + start-stop-daemon --start --quiet --exec $TWISTD_PATH -- \ + --pidfile=$PIDFILE \ + --rundir=$RUNDIR \ + --python=$FILE \ + --logfile=$LOGFILE \ + --syslog --prefix=leap-mx + echo "." + ;; + + stop) + echo -n "Stopping leap_mx: twistd" + start-stop-daemon --stop --quiet \ + --pidfile $PIDFILE + echo "." + ;; + + restart) + $0 stop + $0 start + ;; + + force-reload) + $0 restart + ;; + + status) + status_of_proc -p $PIDFILE $TWISTD_PATH leap_mx && exit 0 || exit $? + ;; + + *) + echo "Usage: /etc/init.d/leap_mx {start|stop|restart|force-reload|status}" >&2 + exit 1 + ;; +esac + +exit 0 diff --git a/pkg/leap_mx.init b/pkg/leap_mx.init deleted file mode 100644 index 60dddc4..0000000 --- a/pkg/leap_mx.init +++ /dev/null @@ -1,66 +0,0 @@ -#!/bin/sh -### BEGIN INIT INFO -# Provides: leap-mx -# Required-Start: $network $named $remote_fs $syslog $time -# Required-Stop: $network $named $remote_fs $syslog -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -# Short-Description: Start leap-mx daemon at boot time -# Description: transparently-encrypting remailer -### END INIT INFO - -PATH=/sbin:/bin:/usr/sbin:/usr/bin -PIDFILE=/var/run/leap_mx.pid -RUNDIR=/var/lib/leap_mx/ -FILE=/usr/share/app/leap_mx.tac -LOGFILE=/var/log/leap_mx.log -TWISTD_PATH=/usr/bin/twistd - -[ -r /etc/default/leap_mx ] && . /etc/default/leap_mx - -. /lib/lsb/init-functions - -test -r $file || exit 0 -test -r /etc/leap/ || exit 0 - - -case "$1" in - start) - echo -n "Starting leap_mx: twistd" - HOME="/var/lib/leap_mx/" \ - start-stop-daemon --start --quiet --exec $TWISTD_PATH -- \ - --pidfile=$PIDFILE \ - --rundir=$RUNDIR \ - --python=$FILE \ - --logfile=$LOGFILE \ - --syslog --prefix=leap-mx - echo "." - ;; - - stop) - echo -n "Stopping leap_mx: twistd" - start-stop-daemon --stop --quiet \ - --pidfile $PIDFILE - echo "." - ;; - - restart) - $0 stop - $0 start - ;; - - force-reload) - $0 restart - ;; - - status) - status_of_proc -p $PIDFILE $TWISTD_PATH leap_mx && exit 0 || exit $? - ;; - - *) - echo "Usage: /etc/init.d/leap_mx {start|stop|restart|force-reload|status}" >&2 - exit 1 - ;; -esac - -exit 0 -- cgit v1.2.3 From b4110c421f6e2ec64ac3f8c188518f2eaab37a7b Mon Sep 17 00:00:00 2001 From: drebs Date: Fri, 8 May 2015 16:38:54 -0300 Subject: [bug] remove --syslog twistd option Currently, we don't want to log to syslog, because the platform has to be modified before we can do that (see #6942). In the future, we might want to log to syslog only, or make it optional depending on the contents of /etc/default/leap_mx. For now we just remove twistd's --syslog option from the initscript. Closes: #6937. --- changes/bug_6937_remove-syslog-option | 2 ++ pkg/leap-mx.init | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 changes/bug_6937_remove-syslog-option diff --git a/changes/bug_6937_remove-syslog-option b/changes/bug_6937_remove-syslog-option new file mode 100644 index 0000000..d3a65c3 --- /dev/null +++ b/changes/bug_6937_remove-syslog-option @@ -0,0 +1,2 @@ + o Remove logging to syslog for now. We should only do this in the future, + when the platform is ready for it. Closes #6937. diff --git a/pkg/leap-mx.init b/pkg/leap-mx.init index 60dddc4..d38cc2c 100644 --- a/pkg/leap-mx.init +++ b/pkg/leap-mx.init @@ -33,7 +33,7 @@ case "$1" in --rundir=$RUNDIR \ --python=$FILE \ --logfile=$LOGFILE \ - --syslog --prefix=leap-mx + --prefix=leap-mx echo "." ;; -- cgit v1.2.3 From 030c64dca6ad5b5cd330f411d62ae6d6c50b946b Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Wed, 2 Dec 2015 14:50:38 -0400 Subject: [pkg] rename mx.tac For some reason, this had stuck to the previous name during last merge. --- pkg/leap_mx.tac | 92 --------------------------------------------------------- pkg/mx.tac | 92 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 92 insertions(+), 92 deletions(-) delete mode 100644 pkg/leap_mx.tac create mode 100755 pkg/mx.tac diff --git a/pkg/leap_mx.tac b/pkg/leap_mx.tac deleted file mode 100644 index 6f7b104..0000000 --- a/pkg/leap_mx.tac +++ /dev/null @@ -1,92 +0,0 @@ -# -*- encoding: utf-8 -*- -# mx.tac -# Copyright (C) 2013 LEAP -# -# This program 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 program 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 . - -import sys -import ConfigParser - -from functools import partial - -from leap.mx import couchdbhelper -from leap.mx.mail_receiver import MailReceiver -from leap.mx.alias_resolver import AliasResolverFactory -from leap.mx.check_recipient_access import CheckRecipientAccessFactory - -try: - from twisted.application import service, internet - from twisted.internet import inotify - from twisted.internet.endpoints import TCP4ServerEndpoint - from twisted.python import filepath, log - from twisted.python import usage -except ImportError, ie: - print "This software requires Twisted>=12.0.2, please see the README for" - print "help on using virtualenv and pip to obtain requirements." - -config_file = "/etc/leap/mx.conf" - -config = ConfigParser.ConfigParser() -config.read(config_file) - -user = config.get("couchdb", "user") -password = config.get("couchdb", "password") - -server = config.get("couchdb", "server") -port = config.get("couchdb", "port") - -bounce_from = "Mail Delivery Subsystem " -bounce_subject = "Undelivered Mail Returned to Sender" - -try: - bounce_from = config.get("bounce", "from") - bounce_subject = config.get("bounce", "subject") -except ConfigParser.NoSectionError: - pass # we use the defaults above - -alias_port = config.getint("alias map", "port") -check_recipient_port = config.getint("check recipient", "port") - -cdb = couchdbhelper.ConnectedCouchDB(server, - port=port, - dbName="identities", - username=user, - password=password) - - -application = service.Application("LEAP MX") - -# Alias map -alias_map = internet.TCPServer( - alias_port, AliasResolverFactory(couchdb=cdb), - interface="localhost") -alias_map.setServiceParent(application) - -# Check recipient access -check_recipient = internet.TCPServer( - check_recipient_port, CheckRecipientAccessFactory(couchdb=cdb), - interface="localhost") -check_recipient.setServiceParent(application) - -# Mail receiver -directories = [] -for section in config.sections(): - if section in ("couchdb", "alias map", "check recipient", "bounce"): - continue - to_watch = config.get(section, "path") - recursive = config.getboolean(section, "recursive") - directories.append([to_watch, recursive]) - -mr = MailReceiver(cdb, directories, bounce_from, bounce_subject) -mr.setServiceParent(application) diff --git a/pkg/mx.tac b/pkg/mx.tac new file mode 100755 index 0000000..6f7b104 --- /dev/null +++ b/pkg/mx.tac @@ -0,0 +1,92 @@ +# -*- encoding: utf-8 -*- +# mx.tac +# Copyright (C) 2013 LEAP +# +# This program 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 program 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 . + +import sys +import ConfigParser + +from functools import partial + +from leap.mx import couchdbhelper +from leap.mx.mail_receiver import MailReceiver +from leap.mx.alias_resolver import AliasResolverFactory +from leap.mx.check_recipient_access import CheckRecipientAccessFactory + +try: + from twisted.application import service, internet + from twisted.internet import inotify + from twisted.internet.endpoints import TCP4ServerEndpoint + from twisted.python import filepath, log + from twisted.python import usage +except ImportError, ie: + print "This software requires Twisted>=12.0.2, please see the README for" + print "help on using virtualenv and pip to obtain requirements." + +config_file = "/etc/leap/mx.conf" + +config = ConfigParser.ConfigParser() +config.read(config_file) + +user = config.get("couchdb", "user") +password = config.get("couchdb", "password") + +server = config.get("couchdb", "server") +port = config.get("couchdb", "port") + +bounce_from = "Mail Delivery Subsystem " +bounce_subject = "Undelivered Mail Returned to Sender" + +try: + bounce_from = config.get("bounce", "from") + bounce_subject = config.get("bounce", "subject") +except ConfigParser.NoSectionError: + pass # we use the defaults above + +alias_port = config.getint("alias map", "port") +check_recipient_port = config.getint("check recipient", "port") + +cdb = couchdbhelper.ConnectedCouchDB(server, + port=port, + dbName="identities", + username=user, + password=password) + + +application = service.Application("LEAP MX") + +# Alias map +alias_map = internet.TCPServer( + alias_port, AliasResolverFactory(couchdb=cdb), + interface="localhost") +alias_map.setServiceParent(application) + +# Check recipient access +check_recipient = internet.TCPServer( + check_recipient_port, CheckRecipientAccessFactory(couchdb=cdb), + interface="localhost") +check_recipient.setServiceParent(application) + +# Mail receiver +directories = [] +for section in config.sections(): + if section in ("couchdb", "alias map", "check recipient", "bounce"): + continue + to_watch = config.get(section, "path") + recursive = config.getboolean(section, "recursive") + directories.append([to_watch, recursive]) + +mr = MailReceiver(cdb, directories, bounce_from, bounce_subject) +mr.setServiceParent(application) -- cgit v1.2.3 From 4820975253aa789404e7ce9f90ef20c6c6dd8966 Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Wed, 2 Dec 2015 14:52:28 -0400 Subject: [pkg] freeze debian version --- src/leap/mx/_version.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/leap/mx/_version.py b/src/leap/mx/_version.py index 408b91c..8028b7b 100644 --- a/src/leap/mx/_version.py +++ b/src/leap/mx/_version.py @@ -6,7 +6,7 @@ # of this file. version_version = '0.7.0' -version_full = '161e72a01ec53a6dae7fe5b4229b478377ca6458' +version_full = '030c64dca6ad5b5cd330f411d62ae6d6c50b946b' def get_versions(default={}, verbose=False): -- cgit v1.2.3 From 96ed58539eff243541bbb50d4e0d57fa7862bf99 Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Wed, 2 Dec 2015 14:53:25 -0400 Subject: [pkg] update debian changelog to 0.8.0alpha --- debian/changelog | 6 ++++++ src/leap/mx/_version.py | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index 33d07e5..b33b27a 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +leap-mx (0.8.0~alpha) unstable; urgency=medium + + * Update to pre-0.8.0 version + + -- Ben Carrillo Wed, 02 Dec 2015 14:51:40 -0400 + leap-mx (0.7.0) unstable; urgency=medium * Update to 0.7.0 version diff --git a/src/leap/mx/_version.py b/src/leap/mx/_version.py index 8028b7b..0f9c7ff 100644 --- a/src/leap/mx/_version.py +++ b/src/leap/mx/_version.py @@ -5,7 +5,7 @@ # unpacked source archive. Distribution tarballs contain a pre-generated copy # of this file. -version_version = '0.7.0' +version_version = '0.8.0alpha1' version_full = '030c64dca6ad5b5cd330f411d62ae6d6c50b946b' -- cgit v1.2.3 From eba2a4504989440b9369e1a9094ae9eaab593df7 Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Thu, 3 Dec 2015 14:30:17 -0400 Subject: [pkg] remove dh-python for wheezy builds --- debian/control | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/control b/debian/control index 7d9394f..89d8777 100644 --- a/debian/control +++ b/debian/control @@ -3,7 +3,7 @@ Maintainer: drebs Uploader: Micah Anderson Section: python Priority: optional -Build-Depends: python-setuptools (>= 0.6b3), python-all (>= 2.6.6-3), debhelper (>= 9), dh-python +Build-Depends: python-setuptools (>= 0.6b3), python-all (>= 2.6.6-3), debhelper (>= 9) Standards-Version: 3.9.6 Package: leap-mx -- cgit v1.2.3 From 461c411d27e7f87ceb61265b5185c266cfb1e4b4 Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Fri, 4 Dec 2015 14:31:19 -0400 Subject: [pkg] fix outdated tac file path --- pkg/leap-mx.init | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/leap-mx.init b/pkg/leap-mx.init index 3878bce..8093c22 100644 --- a/pkg/leap-mx.init +++ b/pkg/leap-mx.init @@ -12,7 +12,7 @@ PATH=/sbin:/bin:/usr/sbin:/usr/bin PIDFILE=/var/run/leap_mx.pid RUNDIR=/var/lib/leap_mx/ -FILE=/usr/share/app/leap_mx.tac +FILE=/usr/share/app/mx.tac TWISTD_PATH=/usr/bin/twistd USER=leap-mx GROUP=leap-mx -- cgit v1.2.3 From 9085a1662f9a2f306a38662e49a3cfac2d69d1b7 Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Fri, 4 Dec 2015 15:10:45 -0400 Subject: [bug] skip fingerprint-map section for watching too --- pkg/mx.tac | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkg/mx.tac b/pkg/mx.tac index 6f7b104..4ae08f2 100755 --- a/pkg/mx.tac +++ b/pkg/mx.tac @@ -82,7 +82,8 @@ check_recipient.setServiceParent(application) # Mail receiver directories = [] for section in config.sections(): - if section in ("couchdb", "alias map", "check recipient", "bounce"): + if section in ("couchdb", "alias map", "check recipient", + "fingerprint map", "bounce"): continue to_watch = config.get(section, "path") recursive = config.getboolean(section, "recursive") -- cgit v1.2.3 From e332ff18b10850db7760564352a4b6ea21b8ba7e Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Thu, 10 Dec 2015 11:51:35 -0400 Subject: [pkg] freeze debian version --- src/leap/mx/_version.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/leap/mx/_version.py b/src/leap/mx/_version.py index 0f9c7ff..ac38de5 100644 --- a/src/leap/mx/_version.py +++ b/src/leap/mx/_version.py @@ -5,8 +5,8 @@ # unpacked source archive. Distribution tarballs contain a pre-generated copy # of this file. -version_version = '0.8.0alpha1' -version_full = '030c64dca6ad5b5cd330f411d62ae6d6c50b946b' +version_version = '0.8.0alpha2' +version_full = 'cc066454a84e68f3e0d30fce3f10e65e86f86ebc' def get_versions(default={}, verbose=False): -- cgit v1.2.3 From 6927bcbbff9d31d1b7b3b3b990bebc3eac0aeb2a Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Thu, 10 Dec 2015 11:53:05 -0400 Subject: [deb] bump version to 0.8.0~alpha+2 --- debian/changelog | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/debian/changelog b/debian/changelog index b33b27a..0598c4a 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,8 +1,8 @@ -leap-mx (0.8.0~alpha) unstable; urgency=medium +leap-mx (0.8.0~alpha+2) UNRELEASED; urgency=medium * Update to pre-0.8.0 version - -- Ben Carrillo Wed, 02 Dec 2015 14:51:40 -0400 + -- Ben Carrillo Thu, 10 Dec 2015 11:50:51 -0400 leap-mx (0.7.0) unstable; urgency=medium -- cgit v1.2.3 From 75e7e4c1d65c89f1e9a174e98a7168e6f13abe34 Mon Sep 17 00:00:00 2001 From: Christoph Date: Thu, 7 Jan 2016 16:53:53 +0100 Subject: depend on dh-systemd for building we need this if we want to have a systemd script for starting leap-mx --- debian/control | 2 +- debian/leap-mx.service | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) create mode 120000 debian/leap-mx.service diff --git a/debian/control b/debian/control index 89d8777..d8ae0f2 100644 --- a/debian/control +++ b/debian/control @@ -3,7 +3,7 @@ Maintainer: drebs Uploader: Micah Anderson Section: python Priority: optional -Build-Depends: python-setuptools (>= 0.6b3), python-all (>= 2.6.6-3), debhelper (>= 9) +Build-Depends: python-setuptools (>= 0.6b3), python-all (>= 2.6.6-3), debhelper (>= 9), dh-systemd Standards-Version: 3.9.6 Package: leap-mx diff --git a/debian/leap-mx.service b/debian/leap-mx.service new file mode 120000 index 0000000..17c747b --- /dev/null +++ b/debian/leap-mx.service @@ -0,0 +1 @@ +../pkg/leap-mx.service \ No newline at end of file -- cgit v1.2.3 From 286b588e404307f6821bea7f24e2ab834e337913 Mon Sep 17 00:00:00 2001 From: Christoph Date: Thu, 7 Jan 2016 17:17:52 +0100 Subject: add service file for starting via systemd --- pkg/leap-mx.service | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 pkg/leap-mx.service diff --git a/pkg/leap-mx.service b/pkg/leap-mx.service new file mode 100644 index 0000000..5852ee8 --- /dev/null +++ b/pkg/leap-mx.service @@ -0,0 +1,10 @@ +[Unit] +Description=Leap MX +Before=postfix.service + +[Service] +ExecStart=/usr/bin/python /usr/bin/twistd -n --rundir=/var/lib/leap_mx/ --python=/usr/share/app/mx.tac --syslog --prefix=leap-mx --pidfile=/tmp/leap-mx.pid +User=leap-mx + +[Install] +WantedBy=multi-user.target -- cgit v1.2.3 From c6123b1a6e63c92b9c1b0b83a5dafac617566fed Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Thu, 14 Apr 2016 19:26:41 -0400 Subject: [pkg] freeze debian version --- src/leap/mx/_version.py | 490 +----------------------------------------------- 1 file changed, 10 insertions(+), 480 deletions(-) diff --git a/src/leap/mx/_version.py b/src/leap/mx/_version.py index 5bca0a1..cb6b599 100644 --- a/src/leap/mx/_version.py +++ b/src/leap/mx/_version.py @@ -1,483 +1,13 @@ -# This file helps to compute a version number in source trees obtained from -# git-archive tarball (such as those provided by githubs download-from-tag -# feature). Distribution tarballs (built by setup.py sdist) and build -# directories (produced by setup.py build) will contain a much shorter file -# that just contains the computed version number. +# This file was generated by the `freeze_debianver` command in setup.py +# Using 'versioneer.py' (0.16) from +# revision-control system data, or from the parent directory name of an +# unpacked source archive. Distribution tarballs contain a pre-generated copy +# of this file. -# This file is released into the public domain. Generated by -# versioneer-0.16 (https://github.com/warner/python-versioneer) +version_version = '0.8.0.alpha3' +full_revisionid = '1338cf1757ac1f3a4f44d8eb0bd7e3a57f92d5c8' -"""Git implementation of _version.py.""" -import errno -import os -import re -import subprocess -import sys - - -def get_keywords(): - """Get the keywords needed to look up the version information.""" - # these strings will be replaced by git during git-archive. - # setup.py/versioneer.py will grep for the variable names, so they must - # each be defined on a line of their own. _version.py will just call - # get_keywords(). - git_refnames = "$Format:%d$" - git_full = "$Format:%H$" - keywords = {"refnames": git_refnames, "full": git_full} - return keywords - - -class VersioneerConfig: - """Container for Versioneer configuration parameters.""" - - -def get_config(): - """Create, populate and return the VersioneerConfig() object.""" - # these strings are filled in when 'setup.py versioneer' creates - # _version.py - cfg = VersioneerConfig() - cfg.VCS = "git" - cfg.style = "pep440" - cfg.tag_prefix = "" - cfg.parentdir_prefix = "None" - cfg.versionfile_source = "src/leap/mx/_version.py" - cfg.verbose = False - return cfg - - -class NotThisMethod(Exception): - """Exception raised if a method is not valid for the current scenario.""" - - -LONG_VERSION_PY = {} -HANDLERS = {} - - -def register_vcs_handler(vcs, method): # decorator - """Decorator to mark a method as the handler for a particular VCS.""" - def decorate(f): - """Store f in HANDLERS[vcs][method].""" - if vcs not in HANDLERS: - HANDLERS[vcs] = {} - HANDLERS[vcs][method] = f - return f - return decorate - - -def run_command(commands, args, cwd=None, verbose=False, hide_stderr=False): - """Call the given command(s).""" - assert isinstance(commands, list) - p = None - for c in commands: - try: - dispcmd = str([c] + args) - # remember shell=False, so use git.cmd on windows, not just git - p = subprocess.Popen([c] + args, cwd=cwd, stdout=subprocess.PIPE, - stderr=(subprocess.PIPE if hide_stderr - else None)) - break - except EnvironmentError: - e = sys.exc_info()[1] - if e.errno == errno.ENOENT: - continue - if verbose: - print("unable to run %s" % dispcmd) - print(e) - return None - else: - if verbose: - print("unable to find command, tried %s" % (commands,)) - return None - stdout = p.communicate()[0].strip() - if sys.version_info[0] >= 3: - stdout = stdout.decode() - if p.returncode != 0: - if verbose: - print("unable to run %s (error)" % dispcmd) - return None - return stdout - - -def versions_from_parentdir(parentdir_prefix, root, verbose): - """Try to determine the version from the parent directory name. - - Source tarballs conventionally unpack into a directory that includes - both the project name and a version string. - """ - dirname = os.path.basename(root) - if not dirname.startswith(parentdir_prefix): - if verbose: - print("guessing rootdir is '%s', but '%s' doesn't start with " - "prefix '%s'" % (root, dirname, parentdir_prefix)) - raise NotThisMethod("rootdir doesn't start with parentdir_prefix") - return {"version": dirname[len(parentdir_prefix):], - "full-revisionid": None, - "dirty": False, "error": None} - - -@register_vcs_handler("git", "get_keywords") -def git_get_keywords(versionfile_abs): - """Extract version information from the given file.""" - # the code embedded in _version.py can just fetch the value of these - # keywords. When used from setup.py, we don't want to import _version.py, - # so we do it with a regexp instead. This function is not used from - # _version.py. - keywords = {} - try: - f = open(versionfile_abs, "r") - for line in f.readlines(): - if line.strip().startswith("git_refnames ="): - mo = re.search(r'=\s*"(.*)"', line) - if mo: - keywords["refnames"] = mo.group(1) - if line.strip().startswith("git_full ="): - mo = re.search(r'=\s*"(.*)"', line) - if mo: - keywords["full"] = mo.group(1) - f.close() - except EnvironmentError: - pass - return keywords - - -@register_vcs_handler("git", "keywords") -def git_versions_from_keywords(keywords, tag_prefix, verbose): - """Get version information from git keywords.""" - if not keywords: - raise NotThisMethod("no keywords at all, weird") - refnames = keywords["refnames"].strip() - if refnames.startswith("$Format"): - if verbose: - print("keywords are unexpanded, not using") - raise NotThisMethod("unexpanded keywords, not a git-archive tarball") - refs = set([r.strip() for r in refnames.strip("()").split(",")]) - # starting in git-1.8.3, tags are listed as "tag: foo-1.0" instead of - # just "foo-1.0". If we see a "tag: " prefix, prefer those. - TAG = "tag: " - tags = set([r[len(TAG):] for r in refs if r.startswith(TAG)]) - if not tags: - # Either we're using git < 1.8.3, or there really are no tags. We use - # a heuristic: assume all version tags have a digit. The old git %d - # expansion behaves like git log --decorate=short and strips out the - # refs/heads/ and refs/tags/ prefixes that would let us distinguish - # between branches and tags. By ignoring refnames without digits, we - # filter out many common branch names like "release" and - # "stabilization", as well as "HEAD" and "master". - tags = set([r for r in refs if re.search(r'\d', r)]) - if verbose: - print("discarding '%s', no digits" % ",".join(refs-tags)) - if verbose: - print("likely tags: %s" % ",".join(sorted(tags))) - for ref in sorted(tags): - # sorting will prefer e.g. "2.0" over "2.0rc1" - if ref.startswith(tag_prefix): - r = ref[len(tag_prefix):] - if verbose: - print("picking %s" % r) - return {"version": r, - "full-revisionid": keywords["full"].strip(), - "dirty": False, "error": None - } - # no suitable tags, so version is "0+unknown", but full hex is still there - if verbose: - print("no suitable tags, using unknown + full revision id") - return {"version": "0+unknown", - "full-revisionid": keywords["full"].strip(), - "dirty": False, "error": "no suitable tags"} - - -@register_vcs_handler("git", "pieces_from_vcs") -def git_pieces_from_vcs(tag_prefix, root, verbose, run_command=run_command): - """Get version from 'git describe' in the root of the source tree. - - This only gets called if the git-archive 'subst' keywords were *not* - expanded, and _version.py hasn't already been rewritten with a short - version string, meaning we're inside a checked out source tree. - """ - if not os.path.exists(os.path.join(root, ".git")): - if verbose: - print("no .git in %s" % root) - raise NotThisMethod("no .git directory") - - GITS = ["git"] - if sys.platform == "win32": - GITS = ["git.cmd", "git.exe"] - # if there is a tag matching tag_prefix, this yields TAG-NUM-gHEX[-dirty] - # if there isn't one, this yields HEX[-dirty] (no NUM) - describe_out = run_command(GITS, ["describe", "--tags", "--dirty", - "--always", "--long", - "--match", "%s*" % tag_prefix], - cwd=root) - # --long was added in git-1.5.5 - if describe_out is None: - raise NotThisMethod("'git describe' failed") - describe_out = describe_out.strip() - full_out = run_command(GITS, ["rev-parse", "HEAD"], cwd=root) - if full_out is None: - raise NotThisMethod("'git rev-parse' failed") - full_out = full_out.strip() - - pieces = {} - pieces["long"] = full_out - pieces["short"] = full_out[:7] # maybe improved later - pieces["error"] = None - - # parse describe_out. It will be like TAG-NUM-gHEX[-dirty] or HEX[-dirty] - # TAG might have hyphens. - git_describe = describe_out - - # look for -dirty suffix - dirty = git_describe.endswith("-dirty") - pieces["dirty"] = dirty - if dirty: - git_describe = git_describe[:git_describe.rindex("-dirty")] - - # now we have TAG-NUM-gHEX or HEX - - if "-" in git_describe: - # TAG-NUM-gHEX - mo = re.search(r'^(.+)-(\d+)-g([0-9a-f]+)$', git_describe) - if not mo: - # unparseable. Maybe git-describe is misbehaving? - pieces["error"] = ("unable to parse git-describe output: '%s'" - % describe_out) - return pieces - - # tag - full_tag = mo.group(1) - if not full_tag.startswith(tag_prefix): - if verbose: - fmt = "tag '%s' doesn't start with prefix '%s'" - print(fmt % (full_tag, tag_prefix)) - pieces["error"] = ("tag '%s' doesn't start with prefix '%s'" - % (full_tag, tag_prefix)) - return pieces - pieces["closest-tag"] = full_tag[len(tag_prefix):] - - # distance: number of commits since tag - pieces["distance"] = int(mo.group(2)) - - # commit: short hex revision ID - pieces["short"] = mo.group(3) - - else: - # HEX: no tags - pieces["closest-tag"] = None - count_out = run_command(GITS, ["rev-list", "HEAD", "--count"], - cwd=root) - pieces["distance"] = int(count_out) # total number of commits - - return pieces - - -def plus_or_dot(pieces): - """Return a + if we don't already have one, else return a .""" - if "+" in pieces.get("closest-tag", ""): - return "." - return "+" - - -def render_pep440(pieces): - """Build up version string, with post-release "local version identifier". - - Our goal: TAG[+DISTANCE.gHEX[.dirty]] . Note that if you - get a tagged build and then dirty it, you'll get TAG+0.gHEX.dirty - - Exceptions: - 1: no tags. git_describe was just HEX. 0+untagged.DISTANCE.gHEX[.dirty] - """ - if pieces["closest-tag"]: - rendered = pieces["closest-tag"] - if pieces["distance"] or pieces["dirty"]: - rendered += plus_or_dot(pieces) - rendered += "%d.g%s" % (pieces["distance"], pieces["short"]) - if pieces["dirty"]: - rendered += ".dirty" - else: - # exception #1 - rendered = "0+untagged.%d.g%s" % (pieces["distance"], - pieces["short"]) - if pieces["dirty"]: - rendered += ".dirty" - return rendered - - -def render_pep440_pre(pieces): - """TAG[.post.devDISTANCE] -- No -dirty. - - Exceptions: - 1: no tags. 0.post.devDISTANCE - """ - if pieces["closest-tag"]: - rendered = pieces["closest-tag"] - if pieces["distance"]: - rendered += ".post.dev%d" % pieces["distance"] - else: - # exception #1 - rendered = "0.post.dev%d" % pieces["distance"] - return rendered - - -def render_pep440_post(pieces): - """TAG[.postDISTANCE[.dev0]+gHEX] . - - The ".dev0" means dirty. Note that .dev0 sorts backwards - (a dirty tree will appear "older" than the corresponding clean one), - but you shouldn't be releasing software with -dirty anyways. - - Exceptions: - 1: no tags. 0.postDISTANCE[.dev0] - """ - if pieces["closest-tag"]: - rendered = pieces["closest-tag"] - if pieces["distance"] or pieces["dirty"]: - rendered += ".post%d" % pieces["distance"] - if pieces["dirty"]: - rendered += ".dev0" - rendered += plus_or_dot(pieces) - rendered += "g%s" % pieces["short"] - else: - # exception #1 - rendered = "0.post%d" % pieces["distance"] - if pieces["dirty"]: - rendered += ".dev0" - rendered += "+g%s" % pieces["short"] - return rendered - - -def render_pep440_old(pieces): - """TAG[.postDISTANCE[.dev0]] . - - The ".dev0" means dirty. - - Eexceptions: - 1: no tags. 0.postDISTANCE[.dev0] - """ - if pieces["closest-tag"]: - rendered = pieces["closest-tag"] - if pieces["distance"] or pieces["dirty"]: - rendered += ".post%d" % pieces["distance"] - if pieces["dirty"]: - rendered += ".dev0" - else: - # exception #1 - rendered = "0.post%d" % pieces["distance"] - if pieces["dirty"]: - rendered += ".dev0" - return rendered - - -def render_git_describe(pieces): - """TAG[-DISTANCE-gHEX][-dirty]. - - Like 'git describe --tags --dirty --always'. - - Exceptions: - 1: no tags. HEX[-dirty] (note: no 'g' prefix) - """ - if pieces["closest-tag"]: - rendered = pieces["closest-tag"] - if pieces["distance"]: - rendered += "-%d-g%s" % (pieces["distance"], pieces["short"]) - else: - # exception #1 - rendered = pieces["short"] - if pieces["dirty"]: - rendered += "-dirty" - return rendered - - -def render_git_describe_long(pieces): - """TAG-DISTANCE-gHEX[-dirty]. - - Like 'git describe --tags --dirty --always -long'. - The distance/hash is unconditional. - - Exceptions: - 1: no tags. HEX[-dirty] (note: no 'g' prefix) - """ - if pieces["closest-tag"]: - rendered = pieces["closest-tag"] - rendered += "-%d-g%s" % (pieces["distance"], pieces["short"]) - else: - # exception #1 - rendered = pieces["short"] - if pieces["dirty"]: - rendered += "-dirty" - return rendered - - -def render(pieces, style): - """Render the given version pieces into the requested style.""" - if pieces["error"]: - return {"version": "unknown", - "full-revisionid": pieces.get("long"), - "dirty": None, - "error": pieces["error"]} - - if not style or style == "default": - style = "pep440" # the default - - if style == "pep440": - rendered = render_pep440(pieces) - elif style == "pep440-pre": - rendered = render_pep440_pre(pieces) - elif style == "pep440-post": - rendered = render_pep440_post(pieces) - elif style == "pep440-old": - rendered = render_pep440_old(pieces) - elif style == "git-describe": - rendered = render_git_describe(pieces) - elif style == "git-describe-long": - rendered = render_git_describe_long(pieces) - else: - raise ValueError("unknown style '%s'" % style) - - return {"version": rendered, "full-revisionid": pieces["long"], - "dirty": pieces["dirty"], "error": None} - - -def get_versions(): - """Get version information or return default if unable to do so.""" - # I am in _version.py, which lives at ROOT/VERSIONFILE_SOURCE. If we have - # __file__, we can work backwards from there to the root. Some - # py2exe/bbfreeze/non-CPython implementations don't do __file__, in which - # case we can only use expanded keywords. - - cfg = get_config() - verbose = cfg.verbose - - try: - return git_versions_from_keywords(get_keywords(), cfg.tag_prefix, - verbose) - except NotThisMethod: - pass - - try: - root = os.path.realpath(__file__) - # versionfile_source is the relative path from the top of the source - # tree (where the .git directory might live) to this file. Invert - # this to find the root from __file__. - for i in cfg.versionfile_source.split('/'): - root = os.path.dirname(root) - except NameError: - return {"version": "0+unknown", "full-revisionid": None, - "dirty": None, - "error": "unable to find root of source tree"} - - try: - pieces = git_pieces_from_vcs(cfg.tag_prefix, root, verbose) - return render(pieces, cfg.style) - except NotThisMethod: - pass - - try: - if cfg.parentdir_prefix: - return versions_from_parentdir(cfg.parentdir_prefix, root, verbose) - except NotThisMethod: - pass - - return {"version": "0+unknown", "full-revisionid": None, - "dirty": None, - "error": "unable to compute version"} +def get_versions(default={}, verbose=False): + return {'version': version_version, + 'full-revisionid': full_revisionid} -- cgit v1.2.3 From 8cab9065141a98adeda43d398cd738d0521dd8e2 Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Thu, 14 Apr 2016 19:27:44 -0400 Subject: bump debian changelog --- debian/changelog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index 0598c4a..2fa27b6 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -leap-mx (0.8.0~alpha+2) UNRELEASED; urgency=medium +leap-mx (0.8.0~alpha+3) UNRELEASED; urgency=medium * Update to pre-0.8.0 version -- cgit v1.2.3 From f953c27a34ef3101052cb928d78ae9923f49ddd9 Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Wed, 4 May 2016 11:25:13 -0400 Subject: [deb] bump version to 0.8.0 final --- debian/changelog | 4 ++-- src/leap/mx/_version.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/debian/changelog b/debian/changelog index 2fa27b6..f864f58 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,6 +1,6 @@ -leap-mx (0.8.0~alpha+3) UNRELEASED; urgency=medium +leap-mx (0.8.0) unstable; urgency=medium - * Update to pre-0.8.0 version + * Update to 0.8.0 version -- Ben Carrillo Thu, 10 Dec 2015 11:50:51 -0400 diff --git a/src/leap/mx/_version.py b/src/leap/mx/_version.py index cb6b599..4c32ff5 100644 --- a/src/leap/mx/_version.py +++ b/src/leap/mx/_version.py @@ -4,7 +4,7 @@ # unpacked source archive. Distribution tarballs contain a pre-generated copy # of this file. -version_version = '0.8.0.alpha3' +version_version = '0.8.0' full_revisionid = '1338cf1757ac1f3a4f44d8eb0bd7e3a57f92d5c8' -- cgit v1.2.3 From 7217399d632b7ac8b925ced31114d4c4140ee942 Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Wed, 4 May 2016 11:25:24 -0400 Subject: [pkg] freeze debian version --- src/leap/mx/_version.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/leap/mx/_version.py b/src/leap/mx/_version.py index 4c32ff5..0725580 100644 --- a/src/leap/mx/_version.py +++ b/src/leap/mx/_version.py @@ -1,11 +1,12 @@ + # This file was generated by the `freeze_debianver` command in setup.py # Using 'versioneer.py' (0.16) from # revision-control system data, or from the parent directory name of an # unpacked source archive. Distribution tarballs contain a pre-generated copy # of this file. -version_version = '0.8.0' -full_revisionid = '1338cf1757ac1f3a4f44d8eb0bd7e3a57f92d5c8' +version_version = '0.7.0' +full_revisionid = 'f953c27a34ef3101052cb928d78ae9923f49ddd9' def get_versions(default={}, verbose=False): -- cgit v1.2.3 From f1d44b16932a94eecc240f5c3370417c77b842f1 Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Wed, 4 May 2016 11:26:20 -0400 Subject: [pkg] freeze debian version --- src/leap/mx/_version.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/leap/mx/_version.py b/src/leap/mx/_version.py index 0725580..2415170 100644 --- a/src/leap/mx/_version.py +++ b/src/leap/mx/_version.py @@ -5,8 +5,8 @@ # unpacked source archive. Distribution tarballs contain a pre-generated copy # of this file. -version_version = '0.7.0' -full_revisionid = 'f953c27a34ef3101052cb928d78ae9923f49ddd9' +version_version = '0.8.0' +full_revisionid = '4e954ee6a60dd0f9511bdc3256b92b1d9395712e' def get_versions(default={}, verbose=False): -- cgit v1.2.3 From c2585037b212840336577602c48241c99676a448 Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Wed, 4 May 2016 11:28:46 -0400 Subject: [deb] bump the timestamp for 0.8.0 --- debian/changelog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index f864f58..0948725 100644 --- a/debian/changelog +++ b/debian/changelog @@ -2,7 +2,7 @@ leap-mx (0.8.0) unstable; urgency=medium * Update to 0.8.0 version - -- Ben Carrillo Thu, 10 Dec 2015 11:50:51 -0400 + -- Ben Carrillo Wed, 04 May 2016 11:28:05 -0400 leap-mx (0.7.0) unstable; urgency=medium -- cgit v1.2.3 From f066bda4e472116d0ee9bd94305932865d8c3813 Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Wed, 4 May 2016 21:05:09 -0400 Subject: [deb] rename the installed changelog --- debian/rules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/rules b/debian/rules index aede8d9..f858329 100755 --- a/debian/rules +++ b/debian/rules @@ -4,6 +4,6 @@ dh $@ --with python2 --buildsystem=python_distutils override_dh_installchangelogs: - dh_installchangelogs CHANGELOG + dh_installchangelogs CHANGELOG.rst -- cgit v1.2.3 From 8a299558d47ed04d01b0aa396a1cfdf16c7820cd Mon Sep 17 00:00:00 2001 From: Ruben Pollan Date: Thu, 12 May 2016 22:28:35 +0200 Subject: [bug] check if 'enabled' field exist in the Identity document - Related: #7961 --- src/leap/mx/couchdbhelper.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/leap/mx/couchdbhelper.py b/src/leap/mx/couchdbhelper.py index e9cf4a4..f17466d 100644 --- a/src/leap/mx/couchdbhelper.py +++ b/src/leap/mx/couchdbhelper.py @@ -100,13 +100,14 @@ class ConnectedCouchDB(client.CouchDB): pubkey = None if result["rows"]: doc = result["rows"][0]["doc"] - if doc["enabled"]: + if "enabled" not in doc or doc["enabled"]: uuid = doc["user_id"] if "keys" in doc: pubkey = doc["keys"]["pgp"] return uuid, pubkey d.addCallback(_get_uuid_and_pubkey_cbk) + d.addErrback(lambda _: (None, None)) return d def getPubkey(self, uuid): -- cgit v1.2.3 From f0abb03a1988b3736790d33bcbcc1229f4050b12 Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Fri, 13 May 2016 09:14:13 -0400 Subject: [pkg] remove old changes notes --- changes/bug_6937_remove-syslog-option | 2 -- changes/feature_6942_use_syslog | 1 - changes/feature_7272-msg-key-not-found | 1 - changes/feature_7435_unit_testing | 1 - changes/feature_7439_remove_provenance | 1 - changes/feature_7565_couchdb_refactor | 1 - 6 files changed, 7 deletions(-) delete mode 100644 changes/bug_6937_remove-syslog-option delete mode 100644 changes/feature_6942_use_syslog delete mode 100644 changes/feature_7272-msg-key-not-found delete mode 100644 changes/feature_7435_unit_testing delete mode 100644 changes/feature_7439_remove_provenance delete mode 100644 changes/feature_7565_couchdb_refactor diff --git a/changes/bug_6937_remove-syslog-option b/changes/bug_6937_remove-syslog-option deleted file mode 100644 index d3a65c3..0000000 --- a/changes/bug_6937_remove-syslog-option +++ /dev/null @@ -1,2 +0,0 @@ - o Remove logging to syslog for now. We should only do this in the future, - when the platform is ready for it. Closes #6937. diff --git a/changes/feature_6942_use_syslog b/changes/feature_6942_use_syslog deleted file mode 100644 index ffa8f62..0000000 --- a/changes/feature_6942_use_syslog +++ /dev/null @@ -1 +0,0 @@ -- Use syslog for logging (Closes: #6859) diff --git a/changes/feature_7272-msg-key-not-found b/changes/feature_7272-msg-key-not-found deleted file mode 100644 index 2d82df8..0000000 --- a/changes/feature_7272-msg-key-not-found +++ /dev/null @@ -1 +0,0 @@ -- return a more meaningful msg if user exists but has no key (Closes: #7272) diff --git a/changes/feature_7435_unit_testing b/changes/feature_7435_unit_testing deleted file mode 100644 index 32778b7..0000000 --- a/changes/feature_7435_unit_testing +++ /dev/null @@ -1 +0,0 @@ -- set up unit testing infrastructure (Closes: #7435) diff --git a/changes/feature_7439_remove_provenance b/changes/feature_7439_remove_provenance deleted file mode 100644 index 188b9a2..0000000 --- a/changes/feature_7439_remove_provenance +++ /dev/null @@ -1 +0,0 @@ -- Don't add X-Leap-Provenance header (Closes: #7439) diff --git a/changes/feature_7565_couchdb_refactor b/changes/feature_7565_couchdb_refactor deleted file mode 100644 index dc6ac0b..0000000 --- a/changes/feature_7565_couchdb_refactor +++ /dev/null @@ -1 +0,0 @@ -- Update code to the new CouchDatabase soledad code -- cgit v1.2.3 From 69a4fbcf1c8069a713c9d59b0a416da9a3b2e2c0 Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Fri, 13 May 2016 09:16:59 -0400 Subject: [pkg] add changelog for 0.8.1 --- CHANGELOG.rst | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 31fba49..b1824a7 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -1,3 +1,10 @@ +0.8.1 - 13 May, 2016 ++++++++++++++++++++++++++++++++ + +Bugfixes +~~~~~~~~ +- `#7961 `_: Deleted account crashes leap-mx + 0.8.0 - 18 Apr, 2016 +++++++++++++++++++++++++++++++ -- cgit v1.2.3 From 8f3541b588a4f6a00ba112a3ed04582a1bcafddf Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Fri, 13 May 2016 09:19:15 -0400 Subject: [pkg] freeze debian version --- debian/changelog | 6 ++++++ src/leap/mx/_version.py | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/debian/changelog b/debian/changelog index 0948725..7d83804 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +leap-mx (0.8.1) unstable; urgency=medium + + * Update to 0.8.1 hotfix version + + -- Ben Carrillo Fri, 13 May 2016 09:18:45 -0400 + leap-mx (0.8.0) unstable; urgency=medium * Update to 0.8.0 version diff --git a/src/leap/mx/_version.py b/src/leap/mx/_version.py index 2415170..f31b821 100644 --- a/src/leap/mx/_version.py +++ b/src/leap/mx/_version.py @@ -5,8 +5,8 @@ # unpacked source archive. Distribution tarballs contain a pre-generated copy # of this file. -version_version = '0.8.0' -full_revisionid = '4e954ee6a60dd0f9511bdc3256b92b1d9395712e' +version_version = '0.8.1' +full_revisionid = '8ca17fb6ea59861deddffc22322ccf05226f9f4e' def get_versions(default={}, verbose=False): -- cgit v1.2.3 From f7d263fc2dbcdae70e1b5eecf9e757b2da232153 Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Thu, 12 May 2016 18:59:24 -0400 Subject: [style] improve readability --- src/leap/mx/couchdbhelper.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/leap/mx/couchdbhelper.py b/src/leap/mx/couchdbhelper.py index f17466d..50275ca 100644 --- a/src/leap/mx/couchdbhelper.py +++ b/src/leap/mx/couchdbhelper.py @@ -100,7 +100,8 @@ class ConnectedCouchDB(client.CouchDB): pubkey = None if result["rows"]: doc = result["rows"][0]["doc"] - if "enabled" not in doc or doc["enabled"]: + user_enabled = doc.get('enabled', True) + if user_enabled: uuid = doc["user_id"] if "keys" in doc: pubkey = doc["keys"]["pgp"] -- cgit v1.2.3 From 58c00ee0a92fd7f0bdd4ae930e936ac20fd47e39 Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Wed, 18 May 2016 12:19:35 -0400 Subject: [pkg] update to new versioneer json format --- setup.py | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/setup.py b/setup.py index 7523222..dee8c0b 100644 --- a/setup.py +++ b/setup.py @@ -72,14 +72,20 @@ class freeze_debianver(Command): # unpacked source archive. Distribution tarballs contain a pre-generated copy # of this file. -version_version = '{version}' -full_revisionid = '{full_revisionid}' -""" - templatefun = r""" - -def get_versions(default={}, verbose=False): - return {'version': version_version, - 'full-revisionid': full_revisionid} +import json +import sys + +version_json = ''' +{ + "dirty": false, + "error": null, + "full-revisionid": "FULL_REVISIONID", + "version": "VERSION_STRING" +} +''' # END VERSION_JSON + +def get_versions(): + return json.loads(version_json) """ def initialize_options(self): @@ -94,9 +100,9 @@ def get_versions(default={}, verbose=False): if proceed != "y": print("He. You scared. Aborting.") return - subst_template = self.template.format( - version=VERSION_SHORT, - full_revisionid=VERSION_REVISION) + self.templatefun + subst_template = self.template.replace( + 'VERSION_STRING', VERSION_SHORT).replace( + 'FULL_REVISIONID', VERSION_REVISION) versioneer_cfg = versioneer.get_config_from_root('.') with open(versioneer_cfg.versionfile_source, 'w') as f: f.write(subst_template) -- cgit v1.2.3 From 7cb18918711f54752b534af17fd93a26d7dce949 Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Wed, 18 May 2016 12:19:35 -0400 Subject: [pkg] update to new versioneer json format --- setup.py | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/setup.py b/setup.py index 7523222..dee8c0b 100644 --- a/setup.py +++ b/setup.py @@ -72,14 +72,20 @@ class freeze_debianver(Command): # unpacked source archive. Distribution tarballs contain a pre-generated copy # of this file. -version_version = '{version}' -full_revisionid = '{full_revisionid}' -""" - templatefun = r""" - -def get_versions(default={}, verbose=False): - return {'version': version_version, - 'full-revisionid': full_revisionid} +import json +import sys + +version_json = ''' +{ + "dirty": false, + "error": null, + "full-revisionid": "FULL_REVISIONID", + "version": "VERSION_STRING" +} +''' # END VERSION_JSON + +def get_versions(): + return json.loads(version_json) """ def initialize_options(self): @@ -94,9 +100,9 @@ def get_versions(default={}, verbose=False): if proceed != "y": print("He. You scared. Aborting.") return - subst_template = self.template.format( - version=VERSION_SHORT, - full_revisionid=VERSION_REVISION) + self.templatefun + subst_template = self.template.replace( + 'VERSION_STRING', VERSION_SHORT).replace( + 'FULL_REVISIONID', VERSION_REVISION) versioneer_cfg = versioneer.get_config_from_root('.') with open(versioneer_cfg.versionfile_source, 'w') as f: f.write(subst_template) -- cgit v1.2.3 From e7148c4f577ba5de4930eca1da7e32e8c610f66a Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Wed, 18 May 2016 12:25:58 -0400 Subject: [pkg] freeze debian version --- src/leap/mx/_version.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/leap/mx/_version.py b/src/leap/mx/_version.py index f31b821..9be0a8e 100644 --- a/src/leap/mx/_version.py +++ b/src/leap/mx/_version.py @@ -5,10 +5,17 @@ # unpacked source archive. Distribution tarballs contain a pre-generated copy # of this file. -version_version = '0.8.1' -full_revisionid = '8ca17fb6ea59861deddffc22322ccf05226f9f4e' +import json +import sys +version_json = ''' +{ + "dirty": false, + "error": null, + "full-revisionid": "7cb18918711f54752b534af17fd93a26d7dce949", + "version": "0.8.1" +} +''' # END VERSION_JSON -def get_versions(default={}, verbose=False): - return {'version': version_version, - 'full-revisionid': full_revisionid} +def get_versions(): + return json.loads(version_json) -- cgit v1.2.3 From 80642b13a7c5c99d0fb28fc0c72c42c9c562f99c Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Wed, 31 Aug 2016 10:45:41 -0400 Subject: [deb] bump changelog to 0.9.0~pre --- debian/changelog | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/debian/changelog b/debian/changelog index 7d83804..82678bf 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +leap-mx (0.9.0~pre) UNRELEASED; urgency=medium + + * Update to pre-0.9 release + + -- Ben Carrillo Wed, 31 Aug 2016 10:32:55 -0400 + leap-mx (0.8.1) unstable; urgency=medium * Update to 0.8.1 hotfix version -- cgit v1.2.3 From a825701e2815a7e2c350937b83facf6c1af0c053 Mon Sep 17 00:00:00 2001 From: Thais Siqueira Date: Thu, 12 Jan 2017 15:31:08 -0200 Subject: [pkg] Configure systemd to auto-restart. --- pkg/leap-mx.service | 1 + 1 file changed, 1 insertion(+) diff --git a/pkg/leap-mx.service b/pkg/leap-mx.service index 5852ee8..d5a18a7 100644 --- a/pkg/leap-mx.service +++ b/pkg/leap-mx.service @@ -5,6 +5,7 @@ Before=postfix.service [Service] ExecStart=/usr/bin/python /usr/bin/twistd -n --rundir=/var/lib/leap_mx/ --python=/usr/share/app/mx.tac --syslog --prefix=leap-mx --pidfile=/tmp/leap-mx.pid User=leap-mx +Restart=always [Install] WantedBy=multi-user.target -- cgit v1.2.3 From f8c9b9cf1e75ca8290ba26139c470290829be6e2 Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Tue, 17 Jan 2017 21:46:52 +0100 Subject: merge update to systemd file --- debian/changelog | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/debian/changelog b/debian/changelog index 82678bf..3b80881 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,8 +1,9 @@ -leap-mx (0.9.0~pre) UNRELEASED; urgency=medium +leap-mx (0.9.1) unstable; urgency=medium - * Update to pre-0.9 release + * Update to 0.9.1 release + * Update to systemd file. - -- Ben Carrillo Wed, 31 Aug 2016 10:32:55 -0400 + -- Ben Carrillo Tue, 17 Jan 2017 21:46:02 +0100 leap-mx (0.8.1) unstable; urgency=medium -- cgit v1.2.3 From 08ecab8e481086f46e300795d88779454b83883d Mon Sep 17 00:00:00 2001 From: varac Date: Tue, 31 Jan 2017 22:20:52 +0100 Subject: Add .gitlab-ci.yml to build packages --- .gitlab-ci.yml | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 .gitlab-ci.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..edb90be --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,36 @@ +stages: + - package + - test_package + + +.job_template: &job_definition + stage: package + image: "0xacab.org:4567/leap/gitlab-buildpackage:build_${DIST}_${ARCH}" + script: build-build-package + artifacts: + paths: + - '*_*.gz' + - '*_*.xz' + - '*_*.dsc' + - '*_amd64.changes' + - '*.deb' + - 'results/*' + +#test: +# image: leapcode/soledad:latest +# stage: test +# script: +# - tox --recreate + +package:amd64:jessie: + variables: + ARCH: "amd64" + DIST: "jessie" + <<: *job_definition + +lintian: + stage: test_package + script: build-test-lintian + tags: + - shell + - packaging -- cgit v1.2.3 From f4feaf027cf0ebdc5ca58e57261437bfbfca03f0 Mon Sep 17 00:00:00 2001 From: varac Date: Thu, 2 Feb 2017 17:28:27 +0100 Subject: Add REPOREMOTE variablex --- .gitlab-ci.yml | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2f087c0..4917252 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -6,8 +6,11 @@ stages: .job_template: &job_definition stage: package image: "0xacab.org:4567/leap/gitlab-buildpackage:build_${DIST}_${ARCH}" - script: build-build-package + script: + - echo $REPOREMOTE + - build-build-package artifacts: + expire_in: 1w paths: - '*_*.gz' - '*_*.xz' @@ -24,11 +27,17 @@ stages: package:amd64:jessie: variables: + #CI_DEBUG_TRACE: "true" + REPOREMOTE: 'deb.leap.se -p 4422' ARCH: "amd64" DIST: "jessie" <<: *job_definition lintian: + variables: + ARCH: "amd64" + DIST: "jessie" + image: "0xacab.org:4567/leap/gitlab-buildpackage:build_${DIST}_${ARCH}" stage: test_package script: build-test-lintian tags: -- cgit v1.2.3 From cadde470ef0bcbe095fb7e45be86f6cc1a8d92ca Mon Sep 17 00:00:00 2001 From: varac Date: Mon, 6 Feb 2017 15:17:53 +0100 Subject: Use REPOREMOTE for custom ssh options --- .gitlab-ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 4917252..ece7d5a 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -28,7 +28,8 @@ stages: package:amd64:jessie: variables: #CI_DEBUG_TRACE: "true" - REPOREMOTE: 'deb.leap.se -p 4422' + REPOREMOTE: "deb.leap.se" + REPOREMOTE_OPTS: "-p 4422 -o StrictHostKeyChecking=no -i /etc/dockerbuild.id_rsa" ARCH: "amd64" DIST: "jessie" <<: *job_definition -- cgit v1.2.3 From d0e0c78663b923e7f9eeeb72df9f5c53c45d77ba Mon Sep 17 00:00:00 2001 From: varac Date: Tue, 7 Feb 2017 10:45:45 +0100 Subject: Use gitbuildpackage repo for testing --- .gitlab-ci.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ece7d5a..d62e497 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -12,7 +12,6 @@ stages: artifacts: expire_in: 1w paths: - - '*_*.gz' - '*_*.xz' - '*_*.dsc' - '*_amd64.changes' @@ -32,6 +31,7 @@ package:amd64:jessie: REPOREMOTE_OPTS: "-p 4422 -o StrictHostKeyChecking=no -i /etc/dockerbuild.id_rsa" ARCH: "amd64" DIST: "jessie" + REPOS: "gitbuildpackage" <<: *job_definition lintian: @@ -41,6 +41,3 @@ lintian: image: "0xacab.org:4567/leap/gitlab-buildpackage:build_${DIST}_${ARCH}" stage: test_package script: build-test-lintian - tags: - - shell - - packaging -- cgit v1.2.3 From 1ab3d22a254902cf9fc40756c89d42141855a308 Mon Sep 17 00:00:00 2001 From: varac Date: Tue, 7 Feb 2017 11:03:41 +0100 Subject: Provide REPOURL var --- .gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d62e497..6c143e3 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -28,6 +28,7 @@ package:amd64:jessie: variables: #CI_DEBUG_TRACE: "true" REPOREMOTE: "deb.leap.se" + REPOURL: "deb.leap.se/gitbuildpackage" REPOREMOTE_OPTS: "-p 4422 -o StrictHostKeyChecking=no -i /etc/dockerbuild.id_rsa" ARCH: "amd64" DIST: "jessie" -- cgit v1.2.3 From d954e50cbded434ebeb21f15a30d0d5bdd1236ba Mon Sep 17 00:00:00 2001 From: varac Date: Tue, 7 Feb 2017 11:20:17 +0100 Subject: Specify dockerbuild user for ssh login --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 6c143e3..9f3c4dc 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -27,7 +27,7 @@ stages: package:amd64:jessie: variables: #CI_DEBUG_TRACE: "true" - REPOREMOTE: "deb.leap.se" + REPOREMOTE: "dockerbuild@deb.leap.se" REPOURL: "deb.leap.se/gitbuildpackage" REPOREMOTE_OPTS: "-p 4422 -o StrictHostKeyChecking=no -i /etc/dockerbuild.id_rsa" ARCH: "amd64" -- cgit v1.2.3 From 5b1811d5e9588f81c1627f7bbb9173072d36c96f Mon Sep 17 00:00:00 2001 From: varac Date: Tue, 7 Feb 2017 11:23:53 +0100 Subject: Run scripts verbosely --- .gitlab-ci.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 9f3c4dc..5443162 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -7,8 +7,7 @@ stages: stage: package image: "0xacab.org:4567/leap/gitlab-buildpackage:build_${DIST}_${ARCH}" script: - - echo $REPOREMOTE - - build-build-package + - bash -x -c build-build-package artifacts: expire_in: 1w paths: @@ -41,4 +40,4 @@ lintian: DIST: "jessie" image: "0xacab.org:4567/leap/gitlab-buildpackage:build_${DIST}_${ARCH}" stage: test_package - script: build-test-lintian + script: bash -x -c build-test-lintian -- cgit v1.2.3 From ff102aff881c2273be1cd8bc32a585febc38ccfe Mon Sep 17 00:00:00 2001 From: varac Date: Tue, 7 Feb 2017 11:26:46 +0100 Subject: Fix running in verbose mode --- .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 5443162..c5e1669 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -7,7 +7,7 @@ stages: stage: package image: "0xacab.org:4567/leap/gitlab-buildpackage:build_${DIST}_${ARCH}" script: - - bash -x -c build-build-package + - bash -x build-build-package artifacts: expire_in: 1w paths: @@ -40,4 +40,4 @@ lintian: DIST: "jessie" image: "0xacab.org:4567/leap/gitlab-buildpackage:build_${DIST}_${ARCH}" stage: test_package - script: bash -x -c build-test-lintian + script: bash -x build-test-lintian -- cgit v1.2.3 From 9b3e09f0b0b1df93ee37f1bc2ccf8886da62fd41 Mon Sep 17 00:00:00 2001 From: varac Date: Tue, 7 Feb 2017 11:43:47 +0100 Subject: Set DEFAULT_REPOSITORY to /srv/gitbuildpackage --- .gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index c5e1669..2c6656c 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -29,6 +29,7 @@ package:amd64:jessie: REPOREMOTE: "dockerbuild@deb.leap.se" REPOURL: "deb.leap.se/gitbuildpackage" REPOREMOTE_OPTS: "-p 4422 -o StrictHostKeyChecking=no -i /etc/dockerbuild.id_rsa" + DEFAULT_REPOSITORY: "/srv/gitbuildpackage" ARCH: "amd64" DIST: "jessie" REPOS: "gitbuildpackage" -- cgit v1.2.3 From 075b31c37eb87bcd091c1371b4196df7a0b0beee Mon Sep 17 00:00:00 2001 From: varac Date: Tue, 7 Feb 2017 11:57:16 +0100 Subject: Use REPOSITORY instead of DEFAULT_REPOSITORY --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2c6656c..cb8445f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -29,7 +29,7 @@ package:amd64:jessie: REPOREMOTE: "dockerbuild@deb.leap.se" REPOURL: "deb.leap.se/gitbuildpackage" REPOREMOTE_OPTS: "-p 4422 -o StrictHostKeyChecking=no -i /etc/dockerbuild.id_rsa" - DEFAULT_REPOSITORY: "/srv/gitbuildpackage" + REPOSITORY: "/srv/gitbuildpackage" ARCH: "amd64" DIST: "jessie" REPOS: "gitbuildpackage" -- cgit v1.2.3 From dd2211e99617fc70369630cb41d425fb6cdabf83 Mon Sep 17 00:00:00 2001 From: varac Date: Tue, 7 Feb 2017 12:01:39 +0100 Subject: export REPOSITORY so generate-reprepro-codename can use it --- .gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index cb8445f..a8e1e34 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -7,6 +7,7 @@ stages: stage: package image: "0xacab.org:4567/leap/gitlab-buildpackage:build_${DIST}_${ARCH}" script: + - export REPOSITORY="/srv/gitbuildpackage" - bash -x build-build-package artifacts: expire_in: 1w -- cgit v1.2.3 From afeefe1b71f6c4695b9162aa15c86b3638f275a7 Mon Sep 17 00:00:00 2001 From: varac Date: Tue, 7 Feb 2017 12:53:52 +0100 Subject: Run incoming-dockerbuild directly as gitlab-runner --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a8e1e34..8170fb4 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -27,7 +27,7 @@ stages: package:amd64:jessie: variables: #CI_DEBUG_TRACE: "true" - REPOREMOTE: "dockerbuild@deb.leap.se" + REPOREMOTE: "gitlab-runner@deb.leap.se" REPOURL: "deb.leap.se/gitbuildpackage" REPOREMOTE_OPTS: "-p 4422 -o StrictHostKeyChecking=no -i /etc/dockerbuild.id_rsa" REPOSITORY: "/srv/gitbuildpackage" -- cgit v1.2.3 From a70cf084af4bf2fe7034b4ec333302ef47fda979 Mon Sep 17 00:00:00 2001 From: varac Date: Tue, 7 Feb 2017 13:32:54 +0100 Subject: Use SendEnv=REPOSITORY to make REPOSITORY available on remote server --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 8170fb4..2e22230 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -29,7 +29,7 @@ package:amd64:jessie: #CI_DEBUG_TRACE: "true" REPOREMOTE: "gitlab-runner@deb.leap.se" REPOURL: "deb.leap.se/gitbuildpackage" - REPOREMOTE_OPTS: "-p 4422 -o StrictHostKeyChecking=no -i /etc/dockerbuild.id_rsa" + REPOREMOTE_OPTS: "-p 4422 -o StrictHostKeyChecking=no -i /etc/dockerbuild.id_rsa -o SendEnv=REPOSITORY" REPOSITORY: "/srv/gitbuildpackage" ARCH: "amd64" DIST: "jessie" -- cgit v1.2.3 From 04b0442f771817aa8207c354bc350a21f5d577a7 Mon Sep 17 00:00:00 2001 From: varac Date: Tue, 7 Feb 2017 13:35:29 +0100 Subject: Show value of REPOSITORY var --- .gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2e22230..2e8a6ac 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -8,6 +8,7 @@ stages: image: "0xacab.org:4567/leap/gitlab-buildpackage:build_${DIST}_${ARCH}" script: - export REPOSITORY="/srv/gitbuildpackage" + - echo $REPOSITORY - bash -x build-build-package artifacts: expire_in: 1w -- cgit v1.2.3 From a70de28760971b11e3f4ac83d982f72d828f73b3 Mon Sep 17 00:00:00 2001 From: varac Date: Tue, 7 Feb 2017 17:14:48 +0100 Subject: Properly set GPG_AGENT_INFO --- .gitlab-ci.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2e8a6ac..aa4e4ba 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -7,8 +7,7 @@ stages: stage: package image: "0xacab.org:4567/leap/gitlab-buildpackage:build_${DIST}_${ARCH}" script: - - export REPOSITORY="/srv/gitbuildpackage" - - echo $REPOSITORY + - export GPG_AGENT_INFO=$(cat /home/gitlab-runner/.gpg-agent-info) - bash -x build-build-package artifacts: expire_in: 1w -- cgit v1.2.3 From 7273060b4ab1208a3086a176d98e72c2bc713a23 Mon Sep 17 00:00:00 2001 From: varac Date: Tue, 7 Feb 2017 17:49:08 +0100 Subject: Fix REPOS var --- .gitlab-ci.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index aa4e4ba..b88ad52 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -7,7 +7,6 @@ stages: stage: package image: "0xacab.org:4567/leap/gitlab-buildpackage:build_${DIST}_${ARCH}" script: - - export GPG_AGENT_INFO=$(cat /home/gitlab-runner/.gpg-agent-info) - bash -x build-build-package artifacts: expire_in: 1w @@ -33,7 +32,7 @@ package:amd64:jessie: REPOSITORY: "/srv/gitbuildpackage" ARCH: "amd64" DIST: "jessie" - REPOS: "gitbuildpackage" + REPOS: "jessie" <<: *job_definition lintian: -- cgit v1.2.3 From 2179fcf637205f5648f654114b535e2fbae4c183 Mon Sep 17 00:00:00 2001 From: varac Date: Wed, 8 Feb 2017 13:58:58 +0100 Subject: Sleep 1h to allow debugging --- .gitlab-ci.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b88ad52..b388525 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -8,6 +8,8 @@ stages: image: "0xacab.org:4567/leap/gitlab-buildpackage:build_${DIST}_${ARCH}" script: - bash -x build-build-package + # sleep 1h to allow debugging of running container + - sleep 3600 artifacts: expire_in: 1w paths: -- cgit v1.2.3 From e0eea6e8d9c8a23aa3e9df24373f055ac2fb0d0c Mon Sep 17 00:00:00 2001 From: varac Date: Wed, 8 Feb 2017 14:39:44 +0100 Subject: Remove cmd tracing so we dont show sshkey --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b388525..6f8eb3f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -7,7 +7,7 @@ stages: stage: package image: "0xacab.org:4567/leap/gitlab-buildpackage:build_${DIST}_${ARCH}" script: - - bash -x build-build-package + - build-build-package # sleep 1h to allow debugging of running container - sleep 3600 artifacts: -- cgit v1.2.3 From c4d4554fb59f3e805bec927f531057196b9568c6 Mon Sep 17 00:00:00 2001 From: varac Date: Thu, 16 Feb 2017 16:24:26 +0100 Subject: Dont use hardcoded version from _version.py --- .gitlab-ci.yml | 6 +++++- src/leap/mx/_version.py | 21 --------------------- 2 files changed, 5 insertions(+), 22 deletions(-) delete mode 100644 src/leap/mx/_version.py diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 6f8eb3f..628d9b9 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -7,9 +7,13 @@ stages: stage: package image: "0xacab.org:4567/leap/gitlab-buildpackage:build_${DIST}_${ARCH}" script: + # Remove hardcoded pep440 version file so + # `python setup.py version` reports the correct one + # based on `git describe` + - rm src/leap/mx/_version.py - build-build-package # sleep 1h to allow debugging of running container - - sleep 3600 + #- sleep 3600 artifacts: expire_in: 1w paths: diff --git a/src/leap/mx/_version.py b/src/leap/mx/_version.py deleted file mode 100644 index 9be0a8e..0000000 --- a/src/leap/mx/_version.py +++ /dev/null @@ -1,21 +0,0 @@ - -# This file was generated by the `freeze_debianver` command in setup.py -# Using 'versioneer.py' (0.16) from -# revision-control system data, or from the parent directory name of an -# unpacked source archive. Distribution tarballs contain a pre-generated copy -# of this file. - -import json -import sys - -version_json = ''' -{ - "dirty": false, - "error": null, - "full-revisionid": "7cb18918711f54752b534af17fd93a26d7dce949", - "version": "0.8.1" -} -''' # END VERSION_JSON - -def get_versions(): - return json.loads(version_json) -- cgit v1.2.3