public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: app-emacs/emacsql/, app-emacs/emacsql/files/
@ 2023-10-19 13:46 Arsen Arsenović
  0 siblings, 0 replies; only message in thread
From: Arsen Arsenović @ 2023-10-19 13:46 UTC (permalink / raw
  To: gentoo-commits

commit:     2f069f94515aef18f66e582cc22013d15ae8b512
Author:     Arsen Arsenović <arsen <AT> gentoo <DOT> org>
AuthorDate: Thu Oct 12 21:23:13 2023 +0000
Commit:     Arsen Arsenović <arsen <AT> gentoo <DOT> org>
CommitDate: Thu Oct 19 13:42:36 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2f069f94

app-emacs/emacsql: new package, add 3.1.1

Signed-off-by: Arsen Arsenović <arsen <AT> gentoo.org>

 app-emacs/emacsql/Manifest                         |  1 +
 app-emacs/emacsql/emacsql-3.1.1.ebuild             | 80 ++++++++++++++++++++++
 .../files/emacsql-3.1.1-fix-utf8-bom-writing.patch | 52 ++++++++++++++
 app-emacs/emacsql/metadata.xml                     | 15 ++++
 4 files changed, 148 insertions(+)

diff --git a/app-emacs/emacsql/Manifest b/app-emacs/emacsql/Manifest
new file mode 100644
index 000000000000..79f47d710948
--- /dev/null
+++ b/app-emacs/emacsql/Manifest
@@ -0,0 +1 @@
+DIST emacsql-3.1.1.tar.gz 2392710 BLAKE2B 7281c9630c26363d9e88463a3ead8b241a3fc1a5e87cbf855eb233ef6b295ca6ba4ea4a79b5137b27f9eed33012dfaa183dab7be8e76b240305ee921edebe874 SHA512 0ec3890cfa014a0afef23e2e38bcd844527b0a497bbfe6f89cbbb090811d43996074e642f83f7f49b27659fc51a901645a54aac600e9988dcb40fffe86a06fbf

diff --git a/app-emacs/emacsql/emacsql-3.1.1.ebuild b/app-emacs/emacsql/emacsql-3.1.1.ebuild
new file mode 100644
index 000000000000..3ba6d2c8d2a6
--- /dev/null
+++ b/app-emacs/emacsql/emacsql-3.1.1.ebuild
@@ -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
+}

diff --git a/app-emacs/emacsql/files/emacsql-3.1.1-fix-utf8-bom-writing.patch b/app-emacs/emacsql/files/emacsql-3.1.1-fix-utf8-bom-writing.patch
new file mode 100644
index 000000000000..ffa30dec85cb
--- /dev/null
+++ b/app-emacs/emacsql/files/emacsql-3.1.1-fix-utf8-bom-writing.patch
@@ -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:"))

diff --git a/app-emacs/emacsql/metadata.xml b/app-emacs/emacsql/metadata.xml
new file mode 100644
index 000000000000..0b03e24c9c24
--- /dev/null
+++ b/app-emacs/emacsql/metadata.xml
@@ -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>


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2023-10-19 13:46 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-10-19 13:46 [gentoo-commits] repo/gentoo:master commit in: app-emacs/emacsql/, app-emacs/emacsql/files/ Arsen Arsenović

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox