diff --git a/.fmf/version b/.fmf/version
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/.fmf/version
@@ -0,0 +1 @@
+1
diff --git a/29-paps.conf b/29-paps.conf
new file mode 100644
index 0000000..1ae98a4
--- /dev/null
+++ b/29-paps.conf
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+ paps
+
+
+ true
+
+
+
+
+
+ texttopaps
+
+
+ true
+
+
+
+
+
diff --git a/paps-0.6.8-ftbfs.patch b/paps-0.6.8-ftbfs.patch
new file mode 100644
index 0000000..01bdb5c
--- /dev/null
+++ b/paps-0.6.8-ftbfs.patch
@@ -0,0 +1,13 @@
+バイナリーファイル paps-0.6.8.orig/src/paps-paps.o とpaps-0.6.8/src/paps-paps.o は異なります
+diff -pruN paps-0.6.8.orig/src/paps.c paps-0.6.8/src/paps.c
+--- paps-0.6.8.orig/src/paps.c 2025-01-27 18:18:12.130570673 +0900
++++ paps-0.6.8/src/paps.c 2025-01-27 18:47:05.214883811 +0900
+@@ -515,7 +515,7 @@ int main(int argc, char *argv[])
+ } /* if (!cups_mode) */
+
+ paps = paps_new();
+- pango_context = paps_get_pango_context (paps);
++ pango_context = paps_get_pango_context ();
+
+ /* Setup pango */
+ pango_context_set_language (pango_context, get_language ());
diff --git a/paps-0.6.8-glib282.patch b/paps-0.6.8-glib282.patch
new file mode 100644
index 0000000..7d3d165
--- /dev/null
+++ b/paps-0.6.8-glib282.patch
@@ -0,0 +1,12 @@
+diff -pruN paps-0.6.8.orig/src/paps.c paps-0.6.8/src/paps.c
+--- paps-0.6.8.orig/src/paps.c 2024-09-13 21:07:13.225683344 +0900
++++ paps-0.6.8/src/paps.c 2024-09-13 21:10:24.177041518 +0900
+@@ -784,7 +784,7 @@ split_text_into_paragraphs (PangoContext
+ while (p != NULL && *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 ());
diff --git a/paps-a3.patch b/paps-a3.patch
new file mode 100644
index 0000000..3628b3a
--- /dev/null
+++ b/paps-a3.patch
@@ -0,0 +1,40 @@
+--- paps-0.6.8/src/paps.c.orig 2015-02-26 14:17:29.351338514 +0530
++++ paps-0.6.8/src/paps.c 2015-02-26 14:17:29.351338514 +0530
+@@ -45,7 +45,8 @@
+ typedef enum {
+ PAPER_TYPE_A4 = 0,
+ PAPER_TYPE_US_LETTER = 1,
+- PAPER_TYPE_US_LEGAL = 2
++ PAPER_TYPE_US_LEGAL = 2,
++ PAPER_TYPE_A3 = 3
+ } paper_type_t ;
+
+ typedef struct {
+@@ -56,7 +57,8 @@
+ const paper_size_t paper_sizes[] = {
+ { 595.28, 841.89}, /* A4 */
+ { 612, 792}, /* US letter */
+- { 612, 1008} /* US legal */
++ { 612, 1008}, /* US legal */
++ { 842, 1190} /* A3 */
+ };
+
+ typedef struct {
+@@ -190,6 +192,8 @@
+ paper_type = PAPER_TYPE_US_LETTER;
+ else if (g_ascii_strcasecmp(value, "a4") == 0)
+ paper_type = PAPER_TYPE_A4;
++ else if (g_ascii_strcasecmp(value, "a3") == 0)
++ paper_type = PAPER_TYPE_A3;
+ else {
+ retval = FALSE;
+ fprintf(stderr, "Unknown page size name: %s.\n", value);
+@@ -300,7 +304,7 @@
+ {"rtl", 0, 0, G_OPTION_ARG_NONE, &do_rtl, "Do rtl layout.", NULL},
+ {"paper", 0, 0, G_OPTION_ARG_CALLBACK, _paps_arg_paper_cb,
+ "Choose paper size. Known paper sizes are legal,\n"
+- " letter, a4. (Default: a4)", "PAPER"},
++ " letter, a3, a4. (Default: a4)", "PAPER"},
+ {"bottom-margin", 0, 0, G_OPTION_ARG_INT, &bottom_margin, "Set bottom margin in postscript point units (1/72inch). (Default: 36)", "NUM"},
+ {"top-margin", 0, 0, G_OPTION_ARG_INT, &top_margin, "Set top margin. (Default: 36)", "NUM"},
+ {"right-margin", 0, 0, G_OPTION_ARG_INT, &right_margin, "Set right margin. (Default: 36)", "NUM"},
diff --git a/paps-c99.patch b/paps-c99.patch
new file mode 100644
index 0000000..115043e
--- /dev/null
+++ b/paps-c99.patch
@@ -0,0 +1,44 @@
+Use AC_USE_SYSTEM_EXTENSIONS and include , so that
+makes a declaration of wcwidth available. Include
+for a declaration of g_vasprintf. This avoids implicit function
+declarations and build failures with future compilers.
+
+No need to upstream this because it only impacts the bundled 0.6.8
+sources, the later 0.8.0 version has already been fixed upstream. The
+g_vasprintf call was introduced in the paps-0.6.6-lcnumeric.patch
+downstream patch.
+
+diff -ur paps-0.8.0.orig/paps-0.6.8/configure.in paps-0.8.0/paps-0.6.8/configure.in
+--- paps-0.8.0.orig/paps-0.6.8/configure.in 2023-04-13 11:56:29.571277839 +0200
++++ paps-0.8.0/paps-0.6.8/configure.in 2023-04-13 12:00:03.228135149 +0200
+@@ -6,6 +6,7 @@
+ AC_LANG_C
+ AC_PROG_CC
+ AM_PROG_LIBTOOL
++AC_USE_SYSTEM_EXTENSIONS
+
+ dnl ======================================================
+ dnl check for CUPS
+diff -ur paps-0.8.0.orig/paps-0.6.8/src/paps.c paps-0.8.0/paps-0.6.8/src/paps.c
+--- paps-0.8.0.orig/paps-0.6.8/src/paps.c 2023-04-13 11:56:29.583277719 +0200
++++ paps-0.8.0/paps-0.6.8/src/paps.c 2023-04-13 12:02:28.958673663 +0200
+@@ -20,7 +20,7 @@
+ *
+ */
+
+-
++#include
+ #include
+ #include
+ #include "libpaps.h"
+diff -ur paps-0.8.0.orig/paps-0.6.8/src/libpaps.c paps-0.8.0/paps-0.6.8/src/libpaps.c
+--- paps-0.8.0.orig/paps-0.6.8/src/libpaps.c 2023-04-13 11:56:29.581277739 +0200
++++ paps-0.8.0/paps-0.6.8/src/libpaps.c 2023-04-13 12:07:17.504779917 +0200
+@@ -23,6 +23,7 @@
+
+ #include "libpaps.h"
+
++#include
+ #include
+ #include
+ #include
diff --git a/paps-fix-build.patch b/paps-fix-build.patch
new file mode 100644
index 0000000..e77f387
--- /dev/null
+++ b/paps-fix-build.patch
@@ -0,0 +1,85 @@
+From e2180b2e1493abc2a8d1165e10bf264d50fac0ae Mon Sep 17 00:00:00 2001
+From: Akira TAGOH
+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);
+ }
+
+--
+2.39.2
+
diff --git a/paps-fix-cpi.patch b/paps-fix-cpi.patch
index f917296..7bc3f61 100644
--- a/paps-fix-cpi.patch
+++ b/paps-fix-cpi.patch
@@ -310,7 +310,7 @@ index 334d547..72dbaad 100644
+
+ para->length = i;
+ next = g_utf8_offset_to_pointer(para->text, para->length);
-+ wc = g_utf8_prev_char(next);
++ wc = g_utf8_get_char(g_utf8_prev_char(next));
+ } else {
+ pango_layout_set_text(para->layout, para->text, para->length);
+ }
diff --git a/paps-fix-paper-size-truncate.patch b/paps-fix-paper-size-truncate.patch
new file mode 100644
index 0000000..90e9fcb
--- /dev/null
+++ b/paps-fix-paper-size-truncate.patch
@@ -0,0 +1,15 @@
+diff -pruN paps-0.6.8.orig/src/paps.c paps-0.6.8/src/paps.c
+--- paps-0.6.8.orig/src/paps.c 2015-04-24 11:49:53.220718394 +0900
++++ paps-0.6.8/src/paps.c 2015-04-24 11:51:30.847718394 +0900
+@@ -532,9 +532,9 @@ int main(int argc, char *argv[])
+
+ /* Page layout */
+ if (page_width < 0)
+- page_width = paper_sizes[(int)paper_type].width;
++ page_width = (paper_sizes[(int)paper_type].width + 0.5);
+ if (page_height < 0)
+- page_height = paper_sizes[(int)paper_type].height;
++ page_height = (paper_sizes[(int)paper_type].height + 0.5);
+
+ if (num_columns == 1)
+ total_gutter_width = 0;
diff --git a/paps-fix-src-to-paps.patch b/paps-fix-src-to-paps.patch
new file mode 100644
index 0000000..d18f8af
--- /dev/null
+++ b/paps-fix-src-to-paps.patch
@@ -0,0 +1,18 @@
+diff -pruN paps-0.8.0.orig/scripts/src-to-paps paps-0.8.0/scripts/src-to-paps
+--- paps-0.8.0.orig/scripts/src-to-paps 2023-02-09 16:27:38.000000000 +0900
++++ paps-0.8.0/scripts/src-to-paps 2023-03-01 15:00:27.801416563 +0900
+@@ -1,4 +1,4 @@
+-#!/usr/bin/python
++#!/usr/bin/python3
+
+ ######################################################################
+ # Use GNU source-hightlight to turn source code into pango markup
+@@ -49,7 +49,7 @@ def arg_if_not_none(param_name, val):
+ # Defaults
+
+ # TBD - Make this a configuration variable
+-pango_outlang_path = '/usr/local/share/paps/pango_markup.outlang'
++pango_outlang_path = '/usr/share/paps/pango_markup.outlang'
+
+ parser = argparse.ArgumentParser(description='Process a file')
+ parser.add_argument('-o', '--output',
diff --git a/paps-fix-tab-width.patch b/paps-fix-tab-width.patch
index 7924e11..a1011ee 100644
--- a/paps-fix-tab-width.patch
+++ b/paps-fix-tab-width.patch
@@ -1,16 +1,9 @@
-From 0b53e86359211b18eb4bb38270324f303920a363 Mon Sep 17 00:00:00 2001
-From: Akira TAGOH
-Date: Fri, 21 Sep 2012 16:16:38 +0900
-Subject: [PATCH] Fix tab width issue when enabling CPI
-
+@@ -, +, @@
---
src/libpaps.c | 40 +++++++++++++++++++++++++++++-----------
1 file changed, 29 insertions(+), 11 deletions(-)
-
-diff --git a/src/libpaps.c b/src/libpaps.c
-index 1b80257..29d64b0 100644
---- a/src/libpaps.c
-+++ b/src/libpaps.c
+--- a/src/libpaps.c
++++ a/src/libpaps.c
@@ -251,7 +251,6 @@ gchar *paps_layout_line_to_postscript_strdup(paps_t *paps_,
{
paps_private_t *paps = (paps_private_t*)paps_;
@@ -70,9 +63,9 @@ index 1b80257..29d64b0 100644
- }
+ if (paps->cpi > 0.0L)
+ {
-+ int n = geometry.width / avg_width;
++ double n = ((double)geometry.width) / avg_width;
+
-+ x_pos += ((double)n) * (1 / paps->cpi * 72.0);
++ x_pos += n * (1 / paps->cpi * 72.0);
+ }
+ else
+ {
@@ -82,5 +75,3 @@ index 1b80257..29d64b0 100644
if (glyphs->glyphs[glyph_idx].glyph == PANGO_GLYPH_EMPTY)
continue;
--
-1.7.11.4
-
diff --git a/paps-ft-header.patch b/paps-ft-header.patch
new file mode 100644
index 0000000..f2d8a2e
--- /dev/null
+++ b/paps-ft-header.patch
@@ -0,0 +1,15 @@
+diff -pruN paps-0.6.8.orig/src/libpaps.c paps-0.6.8/src/libpaps.c
+--- paps-0.6.8.orig/src/libpaps.c 2014-03-20 12:10:50.000000000 +0900
++++ paps-0.6.8/src/libpaps.c 2014-03-20 12:11:54.000000000 +0900
+@@ -25,8 +25,9 @@
+
+ #include
+ #include
+-#include
+-#include
++#include
++#include FT_GLYPH_H
++#include FT_OUTLINE_H
+ #include
+ #include
+ #include
diff --git a/paps-glib282.patch b/paps-glib282.patch
new file mode 100644
index 0000000..23bd2b4
--- /dev/null
+++ b/paps-glib282.patch
@@ -0,0 +1,34 @@
+g_utf8_next_char no longer includes a cast to char* as of 2.81.0:
+
+https://gitlab.gnome.org/GNOME/glib/-/merge_requests/4016
+
+diff -up a/src/paps.cc b/src/paps.cc
+--- a/src/paps.cc 2024-09-12 19:21:02.858439427 -0400
++++ b/src/paps.cc 2024-09-12 21:15:46.905955152 -0400
+@@ -1115,7 +1115,7 @@ split_text_into_paragraphs (PangoContext
+ 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 ());
+@@ -1130,7 +1130,7 @@ split_text_into_paragraphs (PangoContext
+ 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)
+@@ -1201,7 +1201,7 @@ split_text_into_paragraphs (PangoContext
+ 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
diff --git a/paps.spec b/paps.spec
index 525ea12..2177152 100644
--- a/paps.spec
+++ b/paps.spec
@@ -1,12 +1,16 @@
Name: paps
-Version: 0.6.8
-Release: 23%{?dist}
+Version: 0.8.0
+Release: 14%{?dist}
-License: LGPLv2+
-URL: http://paps.sourceforge.net/
-Source0: http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.gz
+License: LGPL-2.0-or-later
+URL: https://github.com/dov/paps
+Source0: https://github.com/dov/paps/archive/v%{name}/%{name}-%{version}.tar.gz
Source1: paps.convs
-BuildRequires: pango-devel automake autoconf libtool doxygen cups-devel
+Source2: 29-paps.conf
+Source3: http://downloads.sourceforge.net/%{name}/%{name}-0.6.8.tar.gz
+BuildRequires: make
+BuildRequires: pango-devel automake autoconf libtool doxygen cups-devel intltool
+BuildRequires: fmt-devel gcc-c++
## https://sourceforge.net/tracker/index.php?func=detail&aid=1832897&group_id=153049&atid=786241
Patch0: paps-0.6.8-shared.patch
## https://sourceforge.net/tracker/index.php?func=detail&aid=1832924&group_id=153049&atid=786241
@@ -33,58 +37,84 @@ Patch55: paps-fix-loop-in-split.patch
Patch56: paps-fix-tab-width.patch
Patch57: paps-fix-non-weak-symbol.patch
Patch58: paps-correct-fsf-address.patch
+## rhbz#1078519
+Patch59: %{name}-ft-header.patch
+## rhbz#1196997
+Patch60: %{name}-a3.patch
+## rhbz#1214939
+Patch61: %{name}-fix-paper-size-truncate.patch
+Patch62: paps-c99.patch
+Patch63: paps-0.6.8-glib282.patch
+Patch64: paps-0.6.8-ftbfs.patch
+### For paps
+Patch100: %{name}-fix-src-to-paps.patch
+Patch101: %{name}-fix-build.patch
+Patch102: %{name}-glib282.patch
Summary: Plain Text to PostScript converter
-Group: Applications/Publishing
-Requires: %{name}-libs = %{version}-%{release}
%description
paps is a PostScript converter from plain text file using Pango.
-%package libs
-Summary: Libraries for paps
-Group: Development/Libraries
-%description libs
+%package -n texttopaps
+Summary: CUPS filter based on paps
+Obsoletes: %{name}-libs < %{version}
+Obsoletes: %{name}-devel < %{version}
+Requires: cups-filesystem fontpackages-filesystem
+%description -n texttopaps
+
paps is a PostScript converter from plain text file using Pango.
-This package contains the library for paps.
+This package contains a CUPS filter based on paps.
-%package devel
-Summary: Development files for paps
-Group: Development/Libraries
-Requires: %{name}-libs = %{version}-%{release}
-%description devel
-paps is a PostScript converter from plain text file using Pango.
-
-This package contains the development files that is necessary to develop
-applications using paps API.
%prep
-%setup -q
-%patch0 -p1 -b .shared
-%patch1 -p1 -b .wordwrap
-%patch2 -p1 -b .langinfo
-%patch3 -p1 -b .lcnumeric
-%patch4 -p1 -b .exitcode
-%patch5 -p1 -b .manpage
-%patch50 -p1 -b .cups
-%patch51 -p1 -b .cpilpi
-%patch52 -p1 -b .dsc
-%patch53 -p1 -b .autoconf262
-%patch54 -p1 -b .fixcpi
-%patch55 -p1 -b .loop
-%patch56 -p1 -b .tab
-%patch57 -p1 -b .weak-symbol
-%patch58 -p1 -b .fsf
+%setup -q -a 3
+%patch 100 -p1 -b .src-to-paps
+%patch 101 -p1 -b .build
+%patch 102 -p1 -b .glib282
+pushd %{name}-0.6.8
+%patch 0 -p1 -b .shared
+%patch 1 -p1 -b .wordwrap
+%patch 2 -p1 -b .langinfo
+%patch 3 -p1 -b .lcnumeric
+%patch 4 -p1 -b .exitcode
+%patch 5 -p1 -b .manpage
+%patch 50 -p1 -b .cups
+%patch 51 -p1 -b .cpilpi
+%patch 52 -p1 -b .dsc
+%patch 53 -p1 -b .autoconf262
+%patch 54 -p1 -b .fixcpi
+%patch 55 -p1 -b .loop
+%patch 56 -p1 -b .tab
+%patch 57 -p1 -b .weak-symbol
+%patch 58 -p1 -b .fsf
+%patch 59 -p1 -b .ft-header
+%patch 60 -p1 -b .a3
+%patch 61 -p1 -b .paper-size
+%patch 62 -p2 -b .configure-c99
+%patch 63 -p1 -b .glib282
+%patch 64 -p1 -b .ftbfs
libtoolize -f -c
-autoreconf
+autoreconf -f -i
+popd
%build
+./autogen.sh
+%set_build_flags
+%if 0%{?rhel}
+CXXFLAGS="$CXXFLAGS -DFMT_HEADER_ONLY"
+%endif
%configure --disable-static
make %{?_smp_mflags}
+pushd %{name}-0.6.8
+%configure --disable-static
+make %{?_smp_mflags}
+popd
%install
+pushd %{name}-0.6.8
make install DESTDIR=$RPM_BUILD_ROOT INSTALL="/usr/bin/install -p"
# remove unnecessary files
@@ -92,33 +122,185 @@ rm $RPM_BUILD_ROOT%{_libdir}/libpaps.la
# make a symlink for CUPS filter
install -d $RPM_BUILD_ROOT%{_cups_serverbin}/filter # Not libdir
-ln -s %{_bindir}/paps $RPM_BUILD_ROOT%{_cups_serverbin}/filter/texttopaps
+mv $RPM_BUILD_ROOT%{_bindir}/paps $RPM_BUILD_ROOT%{_cups_serverbin}/filter/texttopaps
+mv $RPM_BUILD_ROOT%{_mandir}/man1/paps.1 $RPM_BUILD_ROOT%{_mandir}/man1/texttopaps.1
-install -d $RPM_BUILD_ROOT%{_sysconfdir}/cups
-install -p -m0644 %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/cups
+install -d $RPM_BUILD_ROOT%{_datadir}/cups/mime
+install -p -m0644 %{SOURCE1} $RPM_BUILD_ROOT%{_datadir}/cups/mime/
+install -d $RPM_BUILD_ROOT%{_sysconfdir}/fonts/conf.d
+install -p -m0644 %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/fonts/conf.d/
-%post libs -p /sbin/ldconfig
-%postun libs -p /sbin/ldconfig
+rm -rf $RPM_BUILD_ROOT%{_includedir}
+rm $RPM_BUILD_ROOT%{_libdir}/libpaps.so
+popd
+
+make install DESTDIR=$RPM_BUILD_ROOT INSTALL="/usr/bin/install -p"
+
+%ldconfig_scriptlets libs
%files
-%doc AUTHORS COPYING.LIB README TODO
+%doc AUTHORS COPYING.LIB README
+%dir %{_datadir}/paps
%{_bindir}/paps
+%{_bindir}/src-to-paps
+%{_datadir}/paps/pango_markup.outlang
%{_mandir}/man1/paps.1*
-%{_cups_serverbin}/filter/texttopaps
-%dir %attr (0755, root, lp) %{_sysconfdir}/cups
-%{_sysconfdir}/cups/paps.convs
-%files libs
-%doc COPYING.LIB
+%files -n texttopaps
+%doc %{name}-0.6.8/COPYING.LIB %{name}-0.6.8/AUTHORS %{name}-0.6.8/README
+%{_mandir}/man1/texttopaps.1*
%{_libdir}/libpaps.so.*
+%{_cups_serverbin}/filter/texttopaps
+%{_datadir}/cups/mime/paps.convs
+%{_sysconfdir}/fonts/conf.d/29-paps.conf
-%files devel
-%doc COPYING.LIB
-%{_includedir}/libpaps.h
-%{_libdir}/libpaps.so
%changelog
+* Thu Jul 24 2025 Fedora Release Engineering - 0.8.0-14
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
+
+* Mon Jan 27 2025 Akira TAGOH - 0.8.0-13
+- Fix FTBFS
+ Resolves: rhbz#2341001
+
+* Fri Jan 17 2025 Fedora Release Engineering - 0.8.0-12
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
+
+* Fri Sep 13 2024 Akira TAGOH - 0.8.0-11
+- Fix build with glib 2.82
+ Patch from Yaakov Selkowitz
+
+* Thu Jul 18 2024 Fedora Release Engineering - 0.8.0-10
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
+
+* Fri Jun 7 2024 Akira TAGOH - 0.8.0-9
+- Own /usr/share/paps
+ Resolves: rhbz#2283284
+
+* Thu Jan 25 2024 Fedora Release Engineering - 0.8.0-8
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
+
+* Sun Jan 21 2024 Fedora Release Engineering - 0.8.0-7
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
+
+* Wed Jan 17 2024 Akira TAGOH - 0.8.0-6
+- Fix C type error in paps 0.6.8.
+ Resolves: rhbz#2256906
+
+* Mon Aug 14 2023 Yaakov Selkowitz - 0.8.0-5
+- Use fmt in header-only mode in RHEL builds
+
+* Thu Jul 20 2023 Fedora Release Engineering - 0.8.0-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
+
+* Wed Jun 28 2023 Vitaly Zaitsev - 0.8.0-3
+- Rebuilt due to fmt 10 update.
+
+* Thu Apr 13 2023 Florian Weimer - 0.8.0-2
+- C99 compatibility fixes for paps 0.6.8
+
+* Wed Mar 1 2023 Akira TAGOH - 0.8.0-1
+- New upstream release.
+ Resolves: rhbz#2168726
+
+* Tue Feb 7 2023 Akira TAGOH - 0.7.9-1
+- New upstream release.
+ Resolves: rhbz#2164212
+
+* Thu Jan 19 2023 Fedora Release Engineering - 0.7.1-7
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
+
+* Mon Dec 5 2022 Akira TAGOH - 0.7.1-6
+- Convert License tag to SPDX.
+
+* Fri Jul 22 2022 Fedora Release Engineering - 0.7.1-5
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
+
+* Thu Jan 20 2022 Fedora Release Engineering - 0.7.1-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
+
+* Thu Jul 22 2021 Fedora Release Engineering - 0.7.1-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
+
+* Tue Jan 26 2021 Fedora Release Engineering - 0.7.1-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
+
+* Thu Oct 8 2020 Akira TAGOH - 0.7.1-1
+- New upstream release.
+ Resolves: rhbz#1254352
+- Sub-package texttopaps with old code.
+
+* Tue Jul 28 2020 Fedora Release Engineering - 0.6.8-46
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
+
+* Wed Jan 29 2020 Fedora Release Engineering - 0.6.8-45
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
+
+* Fri Jul 26 2019 Fedora Release Engineering - 0.6.8-44
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
+
+* Fri Feb 01 2019 Fedora Release Engineering - 0.6.8-43
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
+
+* Fri Jul 13 2018 Fedora Release Engineering - 0.6.8-42
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
+
+* Thu Feb 08 2018 Fedora Release Engineering - 0.6.8-41
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
+
+* Sat Jan 20 2018 Björn Esser - 0.6.8-40
+- Rebuilt for switch to libxcrypt
+
+* Thu Aug 03 2017 Fedora Release Engineering - 0.6.8-39
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
+
+* Thu Jul 27 2017 Fedora Release Engineering - 0.6.8-38
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
+
+* Sat Feb 11 2017 Fedora Release Engineering - 0.6.8-37
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
+
+* Thu Feb 04 2016 Fedora Release Engineering - 0.6.8-36
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
+
+* Thu Jun 18 2015 Fedora Release Engineering - 0.6.8-35
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
+
+* Fri Apr 24 2015 Akira TAGOH - 0.6.8-34
+- Fix wrong paper size due to the integer cast.
+
+* Mon Mar 2 2015 Akira TAGOH - 0.6.8-33
+- Support A3 paper size.
+
+* Sat Feb 21 2015 Till Maas - 0.6.8-32
+- Rebuilt for Fedora 23 Change
+ https://fedoraproject.org/wiki/Changes/Harden_all_packages_with_position-independent_code
+
+* Fri Oct 31 2014 Akira TAGOH - 0.6.8-31
+- Add a fontconfig config to force the scalable font.
+
+* Sun Aug 17 2014 Fedora Release Engineering - 0.6.8-30
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
+
+* Fri Jun 06 2014 Fedora Release Engineering - 0.6.8-29
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
+
+* Thu Mar 20 2014 Akira TAGOH - 0.6.8-28
+- Fix FTBFS against freetype's header files location change. (#1078519)
+
+* Mon Dec 16 2013 Akira TAGOH - 0.6.8-27
+- Move the place of paps.convs to %%{_datadir}/cups/mime. (#1042984)
+
+* Wed Jul 31 2013 Akira TAGOH - 0.6.8-26
+- Fix the width calculation with CPI enabled. (#990228)
+
+* Thu Apr 18 2013 Akira TAGOH - 0.6.8-25
+- Rebuilt for aarch64 support. (#926309)
+
+* Thu Feb 14 2013 Fedora Release Engineering - 0.6.8-24
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
+
* Fri Nov 23 2012 Akira TAGOH - 0.6.8-23
- the spec file cleanup
- Fix the undefined symbol issue in libpaps.so.0
@@ -223,7 +405,7 @@ install -p -m0644 %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/cups
- Fix PostScript breakage following the non-monetary numeric format from
current locale. (#231916)
-* Thu Mar 7 2007 Akira TAGOH - 0.6.6-18
+* Wed Mar 7 2007 Akira TAGOH - 0.6.6-18
- default to lpi=6 and cpi=10 if paps is bringing up as cups filter. (#223862)
* Tue Jan 23 2007 Akira TAGOH
diff --git a/plans/basic.fmf b/plans/basic.fmf
new file mode 100644
index 0000000..c1627f9
--- /dev/null
+++ b/plans/basic.fmf
@@ -0,0 +1,5 @@
+summary: Basic smoke test
+discover:
+ how: fmf
+execute:
+ how: tmt
diff --git a/sources b/sources
index a9fd861..fcb89c4 100644
--- a/sources
+++ b/sources
@@ -1 +1,2 @@
-e9508132bf27609bf2fded2bfd9cb3f1 paps-0.6.8.tar.gz
+SHA512 (paps-0.6.8.tar.gz) = db657d90179e11fe42bbcdbebe09a84f1927c99d0b539c9e29b66b3cb8ffcf33ff500c9d81835ae5a0880382bf8f24801f04742517b76b8e005b125a139d8bba
+SHA512 (paps-0.8.0.tar.gz) = 33afad0e3dae9cef0fb3afb9994650bf1a7326e72782346e05ab91f7c84f092145247658cdf57868105df47a1bd08e1a961c1ef4c07a2a8fd01eaf8ecd9d948a
diff --git a/tests/basic/main.fmf b/tests/basic/main.fmf
new file mode 100644
index 0000000..d9d7de5
--- /dev/null
+++ b/tests/basic/main.fmf
@@ -0,0 +1,5 @@
+summary: Basic test
+require:
+ - paps
+test: ./test.sh
+framework: beakerlib
diff --git a/tests/basic/test.sh b/tests/basic/test.sh
new file mode 100755
index 0000000..e07c777
--- /dev/null
+++ b/tests/basic/test.sh
@@ -0,0 +1,21 @@
+#!/bin/bash
+# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
+. /usr/share/beakerlib/beakerlib.sh || exit 1
+
+rlJournalStart
+ rlPhaseStartSetup
+ rlRun "tmp=\$(mktemp -d)" 0 "Create tmp directory"
+ rlRun "pushd $tmp"
+ rlRun "set -o pipefail"
+ rlPhaseEnd
+
+ rlPhaseStartTest
+ rlRun "paps --help | tee output" 0 "Check help message"
+ rlAssertGrep "paps" "output"
+ rlPhaseEnd
+
+ rlPhaseStartCleanup
+ rlRun "popd"
+ rlRun "rm -r $tmp" 0 "Remove tmp directory"
+ rlPhaseEnd
+rlJournalEnd