app-text/paps: add 0.8.0

EAPI bump

use python-r1 to install the script src-to-paps

move to official github repo
build-system changed to meson

deps :
add missing dev-libs/glib
add x11-libs/cairo (since 0.7.0)

add basic test

patches from PR merged :
fix compiler warnings
fix glib/fmt compatilibity

Closes: https://bugs.gentoo.org/936584
Closes: https://bugs.gentoo.org/944759
Signed-off-by: Nicolas PARLANT <nicolas.parlant@parhuet.fr>
Part-of: https://github.com/gentoo/gentoo/pull/42957
Closes: https://github.com/gentoo/gentoo/pull/42957
Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
Nicolas PARLANT
2025-07-11 10:21:49 +02:00
committed by Sam James
parent a04c891b28
commit 5602c153d4
6 changed files with 217 additions and 1 deletions

View File

@@ -1 +1,2 @@
DIST paps-0.6.8.tar.gz 460062 BLAKE2B 8ca34cd217a5ed26de80a1e35f5cb05d75c291a966923ddcf73fb8a6db1a3823075c480c876cff932757feb3a4767057d269bac0863236df0b513e246726b01b SHA512 db657d90179e11fe42bbcdbebe09a84f1927c99d0b539c9e29b66b3cb8ffcf33ff500c9d81835ae5a0880382bf8f24801f04742517b76b8e005b125a139d8bba
DIST paps-0.8.0.tar.gz 75685 BLAKE2B e20ea4ceafe41e938901d61c3c684d9d6b53a621127a66551d0137215c42a7a3c9a8657456bfe4893b8b6b9cd0b65fb104e0492d090b1bb584ca850c06d01236 SHA512 f8c101f6439159354b6a6d218b19baab605f08fa4e70171addb6e38cf5645a7888601fa0aa9d067ec1e5c423297f305cc35268cfde8a3327ffc6ced73ce6df50

View File

@@ -0,0 +1,31 @@
https://github.com/dov/paps/pull/77.patch
PR merged
From 2a37bffcaddd93002bea9fb49122167274a0cbbd Mon Sep 17 00:00:00 2001
From: Nicolas PARLANT <nicolas.parlant@parhuet.fr>
Date: Fri, 11 Jul 2025 07:23:51 +0200
Subject: [PATCH] Replace deprecated fmt::localtime with std::localtime
fmt::localtime is deprecated since fmt 11.2.0
Signed-off-by: Nicolas PARLANT <nicolas.parlant@parhuet.fr>
---
src/format_from_dict.cc | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/src/format_from_dict.cc b/src/format_from_dict.cc
index bcad60e..ce72e99 100644
--- a/src/format_from_dict.cc
+++ b/src/format_from_dict.cc
@@ -54,7 +54,11 @@ static string scalar_to_string(scalar_t scalar,
time_t val = get<time_t>(scalar);
if (!spec.length())
return to_string(val);
- return format(runtime(format("{{:{}}}", spec)), fmt::localtime(val));
+ const auto *tm = std::localtime(&val);
+ if (tm == nullptr)
+ return {};
+
+ return format(runtime(format("{{:{}}}", spec)), *tm);
}
throw runtime_error("Unrecognized type!"); // I shouldn't be here!
}

View File

@@ -0,0 +1,47 @@
https://github.com/dov/paps/pull/71.patch
PR merged
From e6ec698be127822661e31f7fca7d2e0107944b24 Mon Sep 17 00:00:00 2001
From: Yaakov Selkowitz <yselkowi@redhat.com>
Date: Tue, 17 Sep 2024 13:58:46 -0400
Subject: [PATCH] Fix build with glib 2.82
g_utf8_next_char no longer includes a cast to char* as of this change:
https://gitlab.gnome.org/GNOME/glib/-/merge_requests/4016
Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com>
---
src/paps.cc | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/paps.cc b/src/paps.cc
index fde04d1..3ab9a7c 100644
--- a/src/paps.cc
+++ b/src/paps.cc
@@ -1107,7 +1107,7 @@ split_text_into_paragraphs (PangoContext *pango_context,
while (p != nullptr && *p)
{
wc = g_utf8_get_char (p);
- next = g_utf8_next_char (p);
+ next = (char *) g_utf8_next_char (p);
if (wc == (gunichar)-1)
{
fprintf (stderr, _("%s: Invalid character in input\n"), g_get_prgname ());
@@ -1122,7 +1122,7 @@ split_text_into_paragraphs (PangoContext *pango_context,
para->length = p - last_para;
/* handle dos line breaks */
if (wc == '\r' && *next == '\n')
- next = g_utf8_next_char(next);
+ next = (char *) g_utf8_next_char(next);
para->layout = pango_layout_new (pango_context);
if (page_layout->cpi > 0.0L)
@@ -1193,7 +1193,7 @@ split_text_into_paragraphs (PangoContext *pango_context,
g_free (newtext);
para->length = i;
- next = g_utf8_offset_to_pointer (para->text, para->length);
+ next = (char *) g_utf8_offset_to_pointer (para->text, para->length);
wc = g_utf8_get_char (g_utf8_prev_char (next));
}
else

View File

@@ -0,0 +1,84 @@
https://github.com/dov/paps/pull/58.patch
PR merged
From 0eac5cb403dd7dc4f4ebd05c9a93730fa1521e53 Mon Sep 17 00:00:00 2001
From: Akira TAGOH <akira@tagoh.org>
Date: Wed, 1 Mar 2023 15:24:27 +0900
Subject: [PATCH] Fix the build issue
Some code ignores a return value of g_string_free() and that causes:
ignoring return value of 'gchar* g_string_free_and_steal(GString*)' declared with attribute 'warn_unused_result' [-Wunused-result]
This fixes it.
---
src/paps.cc | 21 ++++++++++++---------
1 file changed, 12 insertions(+), 9 deletions(-)
diff --git a/src/paps.cc b/src/paps.cc
index cb48ddc..429b764 100644
--- a/src/paps.cc
+++ b/src/paps.cc
@@ -368,6 +368,7 @@ copy_pango_parse_enum (GType type,
{
int i;
GString *s = g_string_new (nullptr);
+ gchar *gstr;
for (i = 0, v = g_enum_get_value (klass, i); v;
i++ , v = g_enum_get_value (klass, i))
@@ -382,10 +383,10 @@ copy_pango_parse_enum (GType type,
G_ENUM_CLASS_TYPE_NAME(klass),
s->str);
- if (possible_values)
- *possible_values = s->str;
+ gstr = g_string_free (s, possible_values ? false : true);
- g_string_free (s, possible_values ? false : true);
+ if (possible_values)
+ *possible_values = gstr;
}
}
@@ -1001,7 +1002,7 @@ read_file (FILE *file,
if (ferror (file))
{
fprintf(stderr, _("%s: Error reading file.\n"), g_get_prgname ());
- g_string_free (inbuf, true);
+ (void) g_string_free (inbuf, true);
exit(1);
}
else if (bp == nullptr)
@@ -1043,8 +1044,7 @@ read_file (FILE *file,
if (inbuf->len && inbuf->str[inbuf->len-1] != '\n')
g_string_append(inbuf, "\n");
- text = inbuf->str;
- g_string_free (inbuf, false);
+ text = g_string_free (inbuf, false);
if (encoding != nullptr && cvh != nullptr)
g_iconv_close(cvh);
@@ -1671,7 +1671,11 @@ get_date()
fprintf(stderr, _("%1$s: Error while converting date string from '%2$s' to UTF-8.\n"),
g_get_prgname(), get_encoding());
/* Return the unconverted string. */
- g_string_free(inbuf, false);
+ /*
+ * inbuf isn't used here, but a few memory is
+ * allocated by default. so it should be freed anyway.
+ */
+ (void) g_string_free(inbuf, true);
g_iconv_close(cvh);
return date;
}
@@ -1679,8 +1683,7 @@ get_date()
obuffer[BUFSIZE * 6 - 1 - oblen] = 0;
g_string_append(inbuf, bp);
- date_utf8 = inbuf->str;
- g_string_free(inbuf, false);
+ date_utf8 = g_string_free(inbuf, false);
g_iconv_close(cvh);
}

View File

@@ -3,6 +3,7 @@
<pkgmetadata>
<!-- maintainer-needed -->
<upstream>
<remote-id type="sourceforge">paps</remote-id>
<remote-id type="sourceforge">paps</remote-id><!-- old -->
<remote-id type="github">dov/paps</remote-id>
</upstream>
</pkgmetadata>

View File

@@ -0,0 +1,52 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{11..14} )
inherit edo meson python-r1
DESCRIPTION="Unicode-aware text to PostScript converter"
HOMEPAGE="https://github.com/dov/paps"
SRC_URI="https://github.com/dov/paps/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="LGPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
RDEPEND="
${PYTHON_DEPS}
dev-libs/glib:2
dev-libs/libfmt:=
x11-libs/cairo
x11-libs/pango
"
DEPEND="${RDEPEND}"
BDEPEND="virtual/pkgconfig"
PATCHES=(
# patches merged in upstream, to be removed for the next version.
"${FILESDIR}"/${P}-fix_glib.patch
"${FILESDIR}"/${P}-fix_unused_results.patch
"${FILESDIR}"/${P}-fix_fmt11.2.patch
)
src_prepare() {
default
# even if it can be changed with --pango-outlang-path, fix the default value
sed -e "/^pango_outlang_path =/s/\/usr\/local/${EPREFIX}\/usr/" \
-i scripts/src-to-paps || die
}
src_test() {
edo "${BUILD_DIR}"/src/paps examples/small-hello.utf8 -o "${T}"/test-out.ps
}
src_install() {
meson_src_install
python_foreach_impl python_doscript scripts/src-to-paps
}