app-emacs/ement: New package and its dependencies
- app-emacs/ement Matrix client for GNU Emacs - app-emacs/ement-extras My package; among other things, tries to make it easier to use E2EE - app-emacs/defmacro-gensym My package; dependency for app-emacs/ement-extras - app-emacs/plz Dependency for app-emacs/ement - app-emacs/ts Dependency for app-emacs/ement - net-im/pantalaimon Dependency for app-emacs/ement[e2e] net-im category is used because pantalaimon is a transparent proxy - dev-python/janus-0.5 Dependency for net-im/pantalaimon
This commit is contained in:
parent
562e263391
commit
ec16256079
30
app-emacs/defmacro-gensym/defmacro-gensym-99999999.ebuild
Normal file
30
app-emacs/defmacro-gensym/defmacro-gensym-99999999.ebuild
Normal file
@ -0,0 +1,30 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
NEED_EMACS="24.1"
|
||||
|
||||
inherit elisp-common git-r3
|
||||
|
||||
DESCRIPTION="Convenient gensyms for defmacro (Emacs Lisp)"
|
||||
HOMEPAGE="https://gitlab.com/akater/defmacro-gensym/-/blob/master/defmacro-gensym.org"
|
||||
EGIT_REPO_URI="https://gitlab.com/akater/defmacro-gensym.git"
|
||||
EGIT_BRANCH="master"
|
||||
|
||||
LICENSE="Unlicense"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64"
|
||||
DOCS="README.org"
|
||||
|
||||
export ORG_IMMUTABLE_SOURCES_DIRECTORY="${SITEETC}/${PN}"
|
||||
|
||||
pkg_postinst() {
|
||||
elisp-site-regen
|
||||
if declare -f readme.gentoo_print_elog >/dev/null; then
|
||||
readme.gentoo_print_elog
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
elisp-site-regen
|
||||
}
|
15
app-emacs/defmacro-gensym/metadata.xml
Normal file
15
app-emacs/defmacro-gensym/metadata.xml
Normal file
@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<maintainer type="person">
|
||||
<email>nuclearspace@gmail.com</email>
|
||||
<name>Dima Akater</name>
|
||||
</maintainer>
|
||||
<longdescription>An extension of defmacro that provides more convenient
|
||||
declaration/initialization of gensyms, covering both with-gensyms
|
||||
and once-only functionality.
|
||||
</longdescription>
|
||||
<upstream>
|
||||
<remote-id type="gitlab">akater/defmacro-gensym</remote-id>
|
||||
</upstream>
|
||||
</pkgmetadata>
|
41
app-emacs/ement-extras/ement-extras-99999999.ebuild
Normal file
41
app-emacs/ement-extras/ement-extras-99999999.ebuild
Normal file
@ -0,0 +1,41 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
NEED_EMACS="24.1"
|
||||
|
||||
MY_PN="emacs-${PN}"
|
||||
inherit elisp-common git-r3
|
||||
|
||||
DESCRIPTION="Extra features for Ement, Matrix client for GNU Emacs"
|
||||
HOMEPAGE="https://gitlab.com/akater/emacs-ement-extras/-/blob/master/emacs-ement-extras.org"
|
||||
EGIT_REPO_URI="https://gitlab.com/akater/${MY_PN}.git"
|
||||
EGIT_BRANCH="release"
|
||||
|
||||
LICENSE="GPL-3+"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64"
|
||||
DOCS="" # README.org is a relative symlink
|
||||
|
||||
BDEPEND="
|
||||
app-emacs/defmacro-gensym
|
||||
app-emacs/ement
|
||||
app-emacs/plz
|
||||
"
|
||||
|
||||
RDEPEND="
|
||||
app-emacs/ement
|
||||
"
|
||||
|
||||
export ORG_IMMUTABLE_SOURCES_DIRECTORY="${SITEETC}/${PN}"
|
||||
|
||||
pkg_postinst() {
|
||||
elisp-site-regen
|
||||
if declare -f readme.gentoo_print_elog >/dev/null; then
|
||||
readme.gentoo_print_elog
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
elisp-site-regen
|
||||
}
|
13
app-emacs/ement-extras/metadata.xml
Normal file
13
app-emacs/ement-extras/metadata.xml
Normal file
@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<maintainer type="person">
|
||||
<email>nuclearspace@gmail.com</email>
|
||||
<name>Dima Akater</name>
|
||||
</maintainer>
|
||||
<longdescription>Additional features for Ement.el: - password search with auth-source - convenience functions to run pantalaimon daemon from within Emacs, including a single-command zero-config entry point to run ement via pantalaimon, and a config generator.
|
||||
</longdescription>
|
||||
<upstream>
|
||||
<remote-id type="gitlab">akater/emacs-ement-extras</remote-id>
|
||||
</upstream>
|
||||
</pkgmetadata>
|
63
app-emacs/ement/ement-9999.ebuild
Normal file
63
app-emacs/ement/ement-9999.ebuild
Normal file
@ -0,0 +1,63 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
NEED_EMACS="26.3"
|
||||
|
||||
inherit elisp git-r3
|
||||
|
||||
DESCRIPTION="Matrix client for GNU Emacs"
|
||||
HOMEPAGE="https://github.com/alphapapa/ement.el"
|
||||
|
||||
EGIT_REPO_URI="https://github.com/alphapapa/ement.el.git"
|
||||
EGIT_BRANCH="master"
|
||||
EGIT_CLONE_TYPE="single"
|
||||
|
||||
KEYWORDS="~amd64"
|
||||
|
||||
LICENSE="GPL-3"
|
||||
SLOT="0"
|
||||
IUSE="e2e extras"
|
||||
|
||||
DOCS="README.org"
|
||||
|
||||
BDEPEND="
|
||||
>=app-emacs/plz-0.1_pre
|
||||
>=app-emacs/ts-0.2
|
||||
e2e? ( net-im/pantalaimon )
|
||||
"
|
||||
# Pantalaimon's docs are needed at build time to annotate config
|
||||
|
||||
RDEPEND="
|
||||
>=app-emacs/plz-0.1_pre
|
||||
>=app-emacs/ts-0.2
|
||||
e2e? ( net-im/pantalaimon )
|
||||
extras? ( app-emacs/ement-extras )
|
||||
"
|
||||
SITEFILE="50${PN}-gentoo.el"
|
||||
|
||||
src_compile() {
|
||||
elisp_src_compile
|
||||
if use e2e ; then
|
||||
einfo "Annotating suggested pantalaimon config..."
|
||||
cp "${FILESDIR}"/pantalaimon.conf "${S}"
|
||||
"${EMACS}" -Q -batch -l "${FILESDIR}/${PN}"-annotate-conf.el
|
||||
fi
|
||||
}
|
||||
|
||||
src_install() {
|
||||
if use e2e ; then
|
||||
einfo "Installing suggested pantalaimon config to /etc/${PN}"
|
||||
insinto /etc/"${PN}"
|
||||
doins pantalaimon.conf
|
||||
DOCS+=" ${FILESDIR}/${PN}-gentoo-pantalaimon.org"
|
||||
fi
|
||||
elisp_src_install
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
if [ ! [ use e2e && use extras ] ] ; then
|
||||
einfo "To start using Matrix from Emacs with E2EE without any manual configuration,"
|
||||
einfo "USE=\"e2e extras\" emerge app-emacs/ement"
|
||||
fi
|
||||
}
|
90
app-emacs/ement/files/50ement-gentoo.el
Normal file
90
app-emacs/ement/files/50ement-gentoo.el
Normal file
@ -0,0 +1,90 @@
|
||||
;;; ement site-lisp configuration
|
||||
|
||||
(add-to-list 'load-path "/usr/share/emacs/site-lisp/ement")
|
||||
|
||||
|
||||
;;; begin: forms written by `autoload-generate-file-autoloads'
|
||||
|
||||
|
||||
;;;### (autoloads nil "ement" "ement.el" (0 0 0 0))
|
||||
;;; Generated autoloads from ement.el
|
||||
|
||||
(autoload 'ement-connect "ement" "\
|
||||
Connect to Matrix with USER-ID and PASSWORD, or using SESSION.
|
||||
Interactively, with prefix, ignore a saved session and log in
|
||||
again; otherwise, use a saved session if `ement-save-session' is
|
||||
enabled and a saved session is available, or prompt to log in if
|
||||
not enabled or available.
|
||||
|
||||
If URI-PREFIX is specified, it should be the prefix of the
|
||||
server's API URI, including protocol, hostname, and optionally
|
||||
the port, e.g.
|
||||
|
||||
\"https://matrix-client.matrix.org\"
|
||||
\"http://localhost:8080\"
|
||||
|
||||
\(fn &key USER-ID PASSWORD URI-PREFIX SESSION)" t nil)
|
||||
|
||||
(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "ement" '("ement-")))
|
||||
|
||||
;;;***
|
||||
|
||||
|
||||
;;;### (autoloads nil "ement-room-list" "ement-room-list.el" (0 0
|
||||
;;;;;; 0 0))
|
||||
;;; Generated autoloads from ement-room-list.el
|
||||
|
||||
(autoload 'ement-room-list "ement-room-list" "\
|
||||
Show buffer listing joined rooms.
|
||||
Calls `pop-to-buffer-same-window'. Interactively, with prefix,
|
||||
call `pop-to-buffer'.
|
||||
|
||||
\(fn &rest IGNORE)" t nil)
|
||||
|
||||
(defalias 'ement-list-rooms 'ement-room-list)
|
||||
|
||||
(autoload 'ement-room-list-auto-update "ement-room-list" "\
|
||||
Automatically update the room list buffer.
|
||||
Does so when variable `ement-room-list-auto-update' is non-nil.
|
||||
To be called in `ement-sync-callback-hook'.
|
||||
|
||||
\(fn SESSION)" nil nil)
|
||||
|
||||
(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "ement-room-list" '("ement-room-list-")))
|
||||
|
||||
;;;***
|
||||
|
||||
|
||||
;;;### (autoloads nil "ement-room" "ement-room.el" (0 0 0 0))
|
||||
;;; Generated autoloads from ement-room.el
|
||||
|
||||
(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "ement-room" '("ement-")))
|
||||
|
||||
;;;***
|
||||
|
||||
|
||||
;;;### (autoloads nil "ement-notify" "ement-notify.el" (0 0 0 0))
|
||||
;;; Generated autoloads from ement-notify.el
|
||||
|
||||
(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "ement-notify" '("ement-notify")))
|
||||
|
||||
;;;***
|
||||
|
||||
|
||||
;;;### (autoloads nil "ement-api" "ement-api.el" (0 0 0 0))
|
||||
;;; Generated autoloads from ement-api.el
|
||||
|
||||
(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "ement-api" '("ement-api-error")))
|
||||
|
||||
;;;***
|
||||
|
||||
|
||||
;;;### (autoloads nil "ement-macros" "ement-macros.el" (0 0 0 0))
|
||||
;;; Generated autoloads from ement-macros.el
|
||||
|
||||
(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "ement-macros" '("ement-")))
|
||||
|
||||
;;;***
|
||||
|
||||
|
||||
;;; end: forms written by `autoload-generate-file-autoloads'
|
106
app-emacs/ement/files/ement-annotate-conf.el
Normal file
106
app-emacs/ement/files/ement-annotate-conf.el
Normal file
@ -0,0 +1,106 @@
|
||||
;; -*- lexical-binding: t -*-
|
||||
|
||||
(require 'rx)
|
||||
|
||||
(defvar ement--pantalaimon-conf-verbose (member "--verbose" command-line-args))
|
||||
|
||||
(defun ement--pantalaimon-conf-message (format-string &rest args)
|
||||
(when ement--pantalaimon-conf-verbose
|
||||
(apply #'message format-string args)))
|
||||
|
||||
(defmacro with-no-messages (&rest body)
|
||||
(declare (indent 0))
|
||||
`(progn
|
||||
(advice-add 'message :around #'ignore)
|
||||
(unwind-protect (progn ,@body)
|
||||
(advice-remove 'message #'ignore))))
|
||||
|
||||
(defun ement--pantalaimon-latest-doc-dir ()
|
||||
(car
|
||||
(last
|
||||
(directory-files "/usr/share/doc/" t (rx string-start "pantalaimon")))))
|
||||
|
||||
(defun ement--pantalaimon-annotate (pantalaimon-conf-file)
|
||||
(let ((count 0)
|
||||
(pantalaimon-options-help
|
||||
(ignore-errors
|
||||
(with-no-messages
|
||||
(find-file-noselect
|
||||
(nth 0 (directory-files (ement--pantalaimon-latest-doc-dir)
|
||||
t (rx string-start "pantalaimon.5.md")
|
||||
t)))))))
|
||||
(if (not pantalaimon-options-help) (message "Can't find pantalaimon doc file to annotate pantalaimon config")
|
||||
(ement--pantalaimon-conf-message
|
||||
"Annotating file %s..." pantalaimon-conf-file)
|
||||
(let ((annotations (get-buffer-create " *annotations*")))
|
||||
(with-current-buffer annotations (buffer-disable-undo))
|
||||
;; annotations need to be reformatted in their own buffer
|
||||
;; because md syntax is different from conf syntax
|
||||
(defun ement--pantalaimon-conf-insert-annotation (key &optional buffer)
|
||||
(setq buffer (or buffer (current-buffer)))
|
||||
(with-current-buffer pantalaimon-options-help
|
||||
(save-excursion
|
||||
(goto-char (point-min))
|
||||
(if (not (re-search-forward (rx line-start "**" (literal key) "**"
|
||||
line-end)
|
||||
nil t))
|
||||
(progn
|
||||
(ement--pantalaimon-conf-message
|
||||
"Can't find annotation for key %s" key)
|
||||
nil)
|
||||
(re-search-forward (rx (zero-or-more whitespace)) nil t)
|
||||
(if (not (looking-at-p (rx ?\>)))
|
||||
(progn (ement--pantalaimon-conf-message
|
||||
"Unexpected annotation format for key %s" key)
|
||||
nil)
|
||||
(let ((start (point))
|
||||
(end (re-search-forward
|
||||
(rx line-start
|
||||
(zero-or-more whitespace) line-end)
|
||||
nil t)))
|
||||
(with-current-buffer annotations
|
||||
(erase-buffer)
|
||||
(insert-buffer-substring-no-properties
|
||||
pantalaimon-options-help start end)
|
||||
(goto-char (point-min))
|
||||
(while (re-search-forward (rx line-start ?\>) nil t)
|
||||
(delete-backward-char 1)
|
||||
(insert ?\#))))
|
||||
(with-current-buffer buffer
|
||||
(insert-buffer-substring-no-properties annotations))
|
||||
t)))))
|
||||
(with-current-buffer (find-file-noselect pantalaimon-conf-file)
|
||||
(goto-char (point-min))
|
||||
(let ((maybe-fail-ungracefully
|
||||
(let ((count 0))
|
||||
(lambda ()
|
||||
(when (>= (setq count (1+ count)) 10000)
|
||||
(error "Annotating config failed ungracefully"))))))
|
||||
(while (not (= (point-max) (point)))
|
||||
;; These loops are not very safe
|
||||
;; todo: maybe rewrite with save-restriction
|
||||
(funcall maybe-fail-ungracefully)
|
||||
(when (looking-at (rx line-start
|
||||
(group (one-or-more alphabetic))
|
||||
(zero-or-one ?\s) ?\=))
|
||||
(let ((key (match-string-no-properties 1)))
|
||||
(when ement--pantalaimon-conf-verbose
|
||||
"Annotating option %s..." key)
|
||||
(beginning-of-line)
|
||||
(open-line 1)
|
||||
(when (ement--pantalaimon-conf-insert-annotation key)
|
||||
(ement--pantalaimon-conf-message "Done")))
|
||||
(while (looking-at-p (rx (or whitespace line-end)))
|
||||
(funcall maybe-fail-ungracefully)
|
||||
(delete-char 1)))
|
||||
(next-logical-line)
|
||||
(while (looking-at-p (rx line-start ?\#))
|
||||
(funcall maybe-fail-ungracefully)
|
||||
(next-logical-line))
|
||||
(open-line 1)
|
||||
(next-logical-line)))
|
||||
(save-buffer))
|
||||
(kill-buffer annotations)))))
|
||||
|
||||
(ement--pantalaimon-annotate (expand-file-name "pantalaimon.conf"
|
||||
(getenv "S")))
|
21
app-emacs/ement/files/ement-gentoo-pantalaimon.org
Normal file
21
app-emacs/ement/files/ement-gentoo-pantalaimon.org
Normal file
@ -0,0 +1,21 @@
|
||||
#+title: Quick start with E2E encryption in Ement.el
|
||||
|
||||
* User config
|
||||
|
||||
You may
|
||||
#+begin_src sh
|
||||
ln -s /etc/ement/pantalaimon.conf ~/.config/pantalaimon/pantalaimon.conf
|
||||
#+end_src
|
||||
|
||||
or do something equivalent. See [[/etc/ement/pantalaimon.conf][the config]], it's annotated.
|
||||
|
||||
* Starting the server
|
||||
|
||||
Start the server with e.g.
|
||||
#+begin_src sh
|
||||
pantalaimon --config ~/.config/pantalaimon/pantalaimon.conf
|
||||
#+end_src
|
||||
|
||||
* Starting Ement with Pantalaimon
|
||||
|
||||
Follow [[file:README.org.bz2::*Encrypted room support through Pantalaimon][Ement's instructions]].
|
21
app-emacs/ement/files/pantalaimon.conf
Normal file
21
app-emacs/ement/files/pantalaimon.conf
Normal file
@ -0,0 +1,21 @@
|
||||
# This is an example config that should work with ement.el out of the box
|
||||
# You may symlink ~/.config/pantalaimon/pantalaimon.conf to this file
|
||||
|
||||
[Default]
|
||||
LogLevel=Debug
|
||||
SSL=True
|
||||
Notifications=Off
|
||||
DebugEncryption=True
|
||||
|
||||
[local-matrix]
|
||||
Homeserver=https://matrix.org
|
||||
ListenAddress=127.0.0.1
|
||||
ListenPort=8009
|
||||
IgnoreVerification=False
|
||||
UseKeyring=False
|
||||
# UseKeyring=True does not work for me on pantalaimon restarts
|
||||
# UseKeyring=No not tested
|
||||
# UseKeyring=Yes not tested
|
||||
DropOldKeys=False
|
||||
# DropOldKeys=No not tested
|
||||
# DropOldKeys=Yes not tested
|
17
app-emacs/ement/metadata.xml
Normal file
17
app-emacs/ement/metadata.xml
Normal file
@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<maintainer type="person">
|
||||
<email>nuclearspace@gmail.com</email>
|
||||
<name>Dima Akater</name>
|
||||
</maintainer>
|
||||
<longdescription>Ement.el is a Matrix client for GNU Emacs. Currently in development but already useful.
|
||||
</longdescription>
|
||||
<upstream>
|
||||
<remote-id type="github">alphapapa/ement.el</remote-id>
|
||||
</upstream>
|
||||
<use>
|
||||
<flag name="e2e">Enable end to end encryption support via pantalaimon</flag>
|
||||
<flag name="extras">Install extra features (auth-source and proxy support)</flag>
|
||||
</use>
|
||||
</pkgmetadata>
|
11
app-emacs/plz/metadata.xml
Normal file
11
app-emacs/plz/metadata.xml
Normal file
@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<maintainer type="person">
|
||||
<email>nuclearspace@gmail.com</email>
|
||||
<name>Dima Akater</name>
|
||||
</maintainer>
|
||||
<upstream>
|
||||
<remote-id type="github">alphapapa/plz.el</remote-id>
|
||||
</upstream>
|
||||
</pkgmetadata>
|
25
app-emacs/plz/plz-9999.ebuild
Normal file
25
app-emacs/plz/plz-9999.ebuild
Normal file
@ -0,0 +1,25 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
NEED_EMACS="26.3"
|
||||
|
||||
inherit elisp git-r3
|
||||
|
||||
DESCRIPTION="An HTTP library that uses curl as a backend"
|
||||
HOMEPAGE="https://github.com/alphapapa/plz.el"
|
||||
|
||||
EGIT_REPO_URI="https://github.com/alphapapa/plz.el.git"
|
||||
EGIT_BRANCH="master"
|
||||
EGIT_CLONE_TYPE="single"
|
||||
|
||||
KEYWORDS="~amd64"
|
||||
|
||||
LICENSE="GPL-3"
|
||||
SLOT="0"
|
||||
|
||||
RDEPEND="net-misc/curl"
|
||||
|
||||
src_test() {
|
||||
emake test
|
||||
}
|
11
app-emacs/ts/metadata.xml
Normal file
11
app-emacs/ts/metadata.xml
Normal file
@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<maintainer type="person">
|
||||
<email>nuclearspace@gmail.com</email>
|
||||
<name>Dima Akater</name>
|
||||
</maintainer>
|
||||
<upstream>
|
||||
<remote-id type="github">alphapapa/ts.el</remote-id>
|
||||
</upstream>
|
||||
</pkgmetadata>
|
29
app-emacs/ts/ts-9999.ebuild
Normal file
29
app-emacs/ts/ts-9999.ebuild
Normal file
@ -0,0 +1,29 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
NEED_EMACS="26.1"
|
||||
|
||||
inherit elisp git-r3
|
||||
|
||||
DESCRIPTION="Timestamp and date/time library"
|
||||
HOMEPAGE="https://github.com/alphapapa/ts.el"
|
||||
|
||||
EGIT_REPO_URI="https://github.com/alphapapa/ts.el.git"
|
||||
EGIT_BRANCH="master"
|
||||
EGIT_CLONE_TYPE="single"
|
||||
KEYWORDS="~amd64"
|
||||
|
||||
LICENSE="GPL-3"
|
||||
SLOT="0"
|
||||
|
||||
BDEPEND="
|
||||
>=app-emacs/dash-2.14.1
|
||||
>=app-emacs/s-1.12.0
|
||||
"
|
||||
|
||||
RDEPEND="${BDEPEND}"
|
||||
|
||||
src_test() {
|
||||
emake test
|
||||
}
|
1
dev-python/janus/Manifest
Normal file
1
dev-python/janus/Manifest
Normal file
@ -0,0 +1 @@
|
||||
DIST janus-0.5.0.tar.gz 18006 BLAKE2B 9e22d63cdf5b388f22d2d9f021d289560db127f71b3f4d338affc204379ef633ad88c4cb87abb697b6fcbc839f2e0b2249b0ee4895262bf26e75f23ac4c12471 SHA512 9b220347ad29c1bf613a3db9468c41c0c5216d245a320ccaeb97f784d6a6e9ae631ccac951b18d15e706debd512e25de8c079e79a5c68d195b97cadbeba971a2
|
34
dev-python/janus/janus-0.5.0.ebuild
Normal file
34
dev-python/janus/janus-0.5.0.ebuild
Normal file
@ -0,0 +1,34 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
# credit goes to ebuild repository gentoo-zh
|
||||
|
||||
EAPI=7
|
||||
PYTHON_COMPAT=( python3_{8,9} pypy3 )
|
||||
|
||||
inherit distutils-r1
|
||||
|
||||
DESCRIPTION="Implementation of the asyncio (PEP 3156) event-loop with Qt"
|
||||
HOMEPAGE="https://github.com/aio-libs/janus"
|
||||
MY_P="${P/_alpha/a}"
|
||||
SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${MY_P}.tar.gz"
|
||||
IUSE="test"
|
||||
|
||||
LICENSE="BSD"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64"
|
||||
|
||||
DEPEND="
|
||||
dev-python/setuptools[${PYTHON_USEDEP}]
|
||||
test? (
|
||||
dev-python/pytest[${PYTHON_USEDEP}]
|
||||
)
|
||||
"
|
||||
|
||||
python_test() {
|
||||
py.test -v || die "Tests fail with ${EPYTHON}"
|
||||
}
|
||||
|
||||
python_install_all() {
|
||||
distutils-r1_python_install_all
|
||||
}
|
11
dev-python/janus/metadata.xml
Normal file
11
dev-python/janus/metadata.xml
Normal file
@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<maintainer type="person">
|
||||
<email>parona@protonmail.com</email>
|
||||
<name>Alfred Wingate</name>
|
||||
</maintainer>
|
||||
<upstream>
|
||||
<remote-id type="github">aio-libs/janus</remote-id>
|
||||
</upstream>
|
||||
</pkgmetadata>
|
1
net-im/pantalaimon/Manifest
Normal file
1
net-im/pantalaimon/Manifest
Normal file
@ -0,0 +1 @@
|
||||
DIST pantalaimon-0.10.2.tar.gz 2494924 BLAKE2B fecb33571c159d71d62477f662bf146651f496f6d28aa13a197e9b2076acc4ec2b9c89586c6bbc8fee586cd31b74086fb8dd14bf417853b35c4d3941a01f2d40 SHA512 27d887959a74469967174140f1a511a152ebe2813186cd3e8136fcc91d0726a4c0fdf46427d5bcee8401567ff88468143139b0bdc1f27a389b6fb85cf28b317b
|
33
net-im/pantalaimon/files/pantalaimon-0.10.2-no-panctl.patch
Normal file
33
net-im/pantalaimon/files/pantalaimon-0.10.2-no-panctl.patch
Normal file
@ -0,0 +1,33 @@
|
||||
Do not install panctl
|
||||
|
||||
---
|
||||
MANIFEST.in | 1 -
|
||||
setup.py | 3 +--
|
||||
2 files changed, 1 insertion(+), 3 deletions(-)
|
||||
|
||||
diff --git a/MANIFEST.in b/MANIFEST.in
|
||||
index 86e8433..ee8bc73 100644
|
||||
--- a/MANIFEST.in
|
||||
+++ b/MANIFEST.in
|
||||
@@ -1,4 +1,3 @@
|
||||
include contrib/pantalaimon.service
|
||||
include doc/man/pantalaimon.8
|
||||
include doc/man/pantalaimon.5
|
||||
-include doc/man/panctl.1
|
||||
diff --git a/setup.py b/setup.py
|
||||
index b13317a..e06de1a 100644
|
||||
--- a/setup.py
|
||||
+++ b/setup.py
|
||||
@@ -40,8 +40,7 @@ setup(
|
||||
]
|
||||
},
|
||||
entry_points={
|
||||
- "console_scripts": ["pantalaimon=pantalaimon.main:main",
|
||||
- "panctl=pantalaimon.panctl:main"],
|
||||
+ "console_scripts": ["pantalaimon=pantalaimon.main:main"],
|
||||
},
|
||||
zip_safe=False
|
||||
)
|
||||
--
|
||||
2.31.1
|
||||
|
18
net-im/pantalaimon/metadata.xml
Normal file
18
net-im/pantalaimon/metadata.xml
Normal file
@ -0,0 +1,18 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<maintainer type="person">
|
||||
<email>nuclearspace@gmail.com</email>
|
||||
<name>Dima Akater</name>
|
||||
</maintainer>
|
||||
<longdescription>Pantalaimon is an end-to-end encryption aware Matrix reverse proxy daemon that handles the encryption. Messages are transparently encrypted and decrypted for clients inside of pantalaimon.
|
||||
</longdescription>
|
||||
<use>
|
||||
<flag name="dbus">Support additional features that require dbus</flag>
|
||||
<flag name="panctl">Install a CLI utility to control pantalaimon</flag>
|
||||
<flag name="systemd">Install systemd .service script</flag>
|
||||
</use>
|
||||
<upstream>
|
||||
<remote-id type="github">matrix-org/pantalaimon</remote-id>
|
||||
</upstream>
|
||||
</pkgmetadata>
|
80
net-im/pantalaimon/pantalaimon-0.10.2.ebuild
Normal file
80
net-im/pantalaimon/pantalaimon-0.10.2.ebuild
Normal file
@ -0,0 +1,80 @@
|
||||
# Copyright 2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
PYTHON_COMPAT=( python3_9 )
|
||||
inherit distutils-r1
|
||||
|
||||
DESCRIPTION="A Matrix proxy daemon that adds E2E encryption capabilities"
|
||||
HOMEPAGE="https://github.com/matrix-org/pantalaimon"
|
||||
SRC_URI="https://github.com/matrix-org/pantalaimon/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz"
|
||||
|
||||
LICENSE="Apache-2.0"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64"
|
||||
IUSE="dbus panctl systemd"
|
||||
RESTRICT="mirror"
|
||||
DOCS=( "README.md" "docs/man/pantalaimon.5.md" "docs/man/pantalaimon.8.md" )
|
||||
REQUIRED_USE="panctl? ( dbus )"
|
||||
|
||||
BDEPEND=""
|
||||
RDEPEND="
|
||||
>=dev-python/attrs-19.3.0
|
||||
>=dev-python/aiohttp-3.6
|
||||
>=dev-python/appdirs-1.4.4
|
||||
>=dev-python/click-7.1.2
|
||||
>=dev-python/keyring-21.2.1
|
||||
>=dev-python/logbook-1.5.3
|
||||
>=dev-python/peewee-3.13.1
|
||||
>=dev-python/cachetools-3.0.0
|
||||
>dev-python/prompt_toolkit-2
|
||||
>=dev-python/janus-0.5
|
||||
>=dev-python/matrix-nio-0.18[e2e]
|
||||
dbus? (
|
||||
>=dev-python/dbus-python-1.2
|
||||
>=dev-python/pygobject-3.36
|
||||
>=dev-python/pydbus-0.6
|
||||
>=dev-python/notify2-0.3
|
||||
)
|
||||
"
|
||||
|
||||
src_prepare() {
|
||||
|
||||
# I don't think we should install something a priori non-functioning
|
||||
|
||||
if ! use panctl ; then
|
||||
rm docs/man/panctl.1
|
||||
rm docs/man/panctl.md
|
||||
rm pantalaimon/panctl.py
|
||||
eapply "${FILESDIR}/${PN}"-0.10.2-no-panctl.patch
|
||||
fi
|
||||
|
||||
default
|
||||
}
|
||||
|
||||
# todo: Why exactly is compilation disabled by upstream?
|
||||
|
||||
src_install() {
|
||||
# Remove some warnings
|
||||
ln -s docs doc
|
||||
# This should probably be addressed by upstream
|
||||
|
||||
distutils-r1_src_install
|
||||
doman docs/man/pantalaimon.{5,8}
|
||||
if use panctl ; then
|
||||
doman docs/man/panctl.1
|
||||
dodoc docs/man/panctl.md
|
||||
fi
|
||||
|
||||
# issue: contrib config could be much better
|
||||
sed -i -e 's/^/# /' contrib/pantalaimon.conf
|
||||
insinto /etc
|
||||
doins contrib/pantalaimon.conf
|
||||
|
||||
if use systemd; then
|
||||
insinto /usr/lib/systemd/user
|
||||
doins contrib/pantalaimon.service
|
||||
fi
|
||||
|
||||
}
|
Loading…
Reference in New Issue
Block a user