mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-23 16:49:10 -07:00
app-emacs/emacsql: new package, add 3.1.1
Signed-off-by: Arsen Arsenović <arsen@gentoo.org>
This commit is contained in:
1
app-emacs/emacsql/Manifest
Normal file
1
app-emacs/emacsql/Manifest
Normal file
@@ -0,0 +1 @@
|
||||
DIST emacsql-3.1.1.tar.gz 2392710 BLAKE2B 7281c9630c26363d9e88463a3ead8b241a3fc1a5e87cbf855eb233ef6b295ca6ba4ea4a79b5137b27f9eed33012dfaa183dab7be8e76b240305ee921edebe874 SHA512 0ec3890cfa014a0afef23e2e38bcd844527b0a497bbfe6f89cbbb090811d43996074e642f83f7f49b27659fc51a901645a54aac600e9988dcb40fffe86a06fbf
|
||||
80
app-emacs/emacsql/emacsql-3.1.1.ebuild
Normal file
80
app-emacs/emacsql/emacsql-3.1.1.ebuild
Normal file
@@ -0,0 +1,80 @@
|
||||
# Copyright 2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
NEED_EMACS=25.1
|
||||
inherit edo elisp toolchain-funcs
|
||||
|
||||
DESCRIPTION="A high-level Emacs Lisp RDBMS front-end"
|
||||
HOMEPAGE="https://github.com/magit/emacsql"
|
||||
|
||||
if [[ ${PV} == *9999* ]]; then
|
||||
inherit git-r3
|
||||
|
||||
EGIT_REPO_URI="https://github.com/magit/${PN}.git"
|
||||
else
|
||||
SRC_URI="
|
||||
https://github.com/magit/${PN}/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz
|
||||
"
|
||||
KEYWORDS="~amd64"
|
||||
fi
|
||||
|
||||
LICENSE="Unlicense"
|
||||
SLOT="0"
|
||||
# TODO(arsen): postgres-pg using app-emacs/pg (unpackaged as of yet)
|
||||
IUSE="+sqlite postgres mysql"
|
||||
|
||||
DEPEND="
|
||||
sqlite? ( dev-db/sqlite:3 )
|
||||
"
|
||||
RDEPEND="
|
||||
${DEPEND}
|
||||
postgres? ( dev-db/postgresql )
|
||||
mysql? ( virtual/mysql )
|
||||
"
|
||||
BDEPEND="virtual/pkgconfig"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${PN}-3.1.1-fix-utf8-bom-writing.patch"
|
||||
)
|
||||
|
||||
SITEFILE="50${PN}-gentoo.el"
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
# Not packaged.
|
||||
rm emacsql-pg.el || die
|
||||
|
||||
local -A backends=(
|
||||
[sqlite]=sqlite
|
||||
[postgres]=psql
|
||||
[mysql]=mysql
|
||||
)
|
||||
|
||||
for useflag in "${!backends[@]}"; do
|
||||
if ! use "${useflag}"; then
|
||||
rm emacsql-"${backends[${useflag}]}".el || die
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
if use sqlite; then
|
||||
edo $(tc-getCC) -fPIC -Wall -Wextra \
|
||||
$($(tc-getPKG_CONFIG) --cflags --libs sqlite3) \
|
||||
${CPPFLAGS} ${CFLAGS} ${LDFLAGS} -o emacsql-sqlite \
|
||||
sqlite/emacsql.c
|
||||
fi
|
||||
elisp_src_compile
|
||||
}
|
||||
|
||||
src_install() {
|
||||
elisp_src_install
|
||||
|
||||
if use sqlite; then
|
||||
exeinto "${SITELISP}"/emacsql/sqlite
|
||||
doexe emacsql-sqlite
|
||||
fi
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
From 3cec7dcb201568a09ee9cebf0ea1e43cba9d334a Mon Sep 17 00:00:00 2001
|
||||
From: Jonas Bernoulli <jonas@bernoul.li>
|
||||
Date: Tue, 17 Jan 2023 17:33:37 +0100
|
||||
Subject: [PATCH] Use utf-8 coding-system instead of utf-8-auto
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
This fixes an issue that was merely triggered by a change in Emacs
|
||||
[1]. [2: 127bb98] started binding `coding-system-for-write' and
|
||||
`coding-system-for-read' to `utf-8-auto'. As Eli points out at [3]
|
||||
`utf-8-auto' was probably a mistake and `utf-8' should have been
|
||||
used instead.
|
||||
|
||||
1: https://github.com/emacsmirror/emacs/commit/cfd2b3504ab5de6eb5
|
||||
|
||||
2: 2014-02-02 127bb98df20d84117d34822f50ea584af81b19c3
|
||||
Set coding system to utf-8-auto for sqlite.
|
||||
|
||||
3: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=60872#11.
|
||||
|
||||
> Setting coding-system-for-write to utf-8-auto makes no sense;
|
||||
> that coding-system's _only_ raison d'être is for using in
|
||||
> coding-system-for-read, i.e. when decoding stuff that may or
|
||||
> may not start with a BOM.
|
||||
|
||||
Since EmacSQL is not a general-purpose database but instead stores
|
||||
data encoded by Emacs for later retrieval by Emacs only, we do not
|
||||
have to with the unlikely appearance of a BOM, so we can use `utf-8'
|
||||
instead of `utf-8-auto' for writes *and* reads.
|
||||
|
||||
Re #104, #106, magit/forge#533, magit/forge#535, bug#60872.
|
||||
---
|
||||
emacsql-sqlite.el | 5 +++--
|
||||
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/emacsql-sqlite.el b/emacsql-sqlite.el
|
||||
index 1193147..7b8876f 100644
|
||||
--- a/emacsql-sqlite.el
|
||||
+++ b/emacsql-sqlite.el
|
||||
@@ -73,8 +73,9 @@ used.")
|
||||
((connection emacsql-sqlite-connection) &rest _rest)
|
||||
(emacsql-sqlite-ensure-binary)
|
||||
(let* ((process-connection-type nil) ; use a pipe
|
||||
- (coding-system-for-write 'utf-8-auto)
|
||||
- (coding-system-for-read 'utf-8-auto)
|
||||
+ ;; See https://debbugs.gnu.org/cgi/bugreport.cgi?bug=60872#11.
|
||||
+ (coding-system-for-write 'utf-8)
|
||||
+ (coding-system-for-read 'utf-8)
|
||||
(file (slot-value connection 'file))
|
||||
(buffer (generate-new-buffer " *emacsql-sqlite*"))
|
||||
(fullfile (if file (expand-file-name file) ":memory:"))
|
||||
15
app-emacs/emacsql/metadata.xml
Normal file
15
app-emacs/emacsql/metadata.xml
Normal file
@@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<maintainer type="person">
|
||||
<email>arsen@gentoo.org</email>
|
||||
<description>Arsen Arsenović</description>
|
||||
</maintainer>
|
||||
<maintainer type="project">
|
||||
<email>gnu-emacs@gentoo.org</email>
|
||||
<name>Gentoo GNU Emacs project</name>
|
||||
</maintainer>
|
||||
<upstream>
|
||||
<remote-id type="github">magit/emacsql</remote-id>
|
||||
</upstream>
|
||||
</pkgmetadata>
|
||||
Reference in New Issue
Block a user