diff --git a/.fmf/version b/.fmf/version deleted file mode 100644 index d00491f..0000000 --- a/.fmf/version +++ /dev/null @@ -1 +0,0 @@ -1 diff --git a/29-paps.conf b/29-paps.conf deleted file mode 100644 index 1ae98a4..0000000 --- a/29-paps.conf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - paps - - - true - - - - - - texttopaps - - - true - - - - - diff --git a/paps-0.6.8-ftbfs.patch b/paps-0.6.8-ftbfs.patch deleted file mode 100644 index 01bdb5c..0000000 --- a/paps-0.6.8-ftbfs.patch +++ /dev/null @@ -1,13 +0,0 @@ -バイナリーファイル 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 deleted file mode 100644 index 7d3d165..0000000 --- a/paps-0.6.8-glib282.patch +++ /dev/null @@ -1,12 +0,0 @@ -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-854897-manpage.patch b/paps-854897-manpage.patch deleted file mode 100644 index c841f44..0000000 --- a/paps-854897-manpage.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff -pruN paps-0.6.8.orig/src/paps.1 paps-0.6.8/src/paps.1 ---- paps-0.6.8.orig/src/paps.1 2007-01-19 20:05:27.000000000 +0900 -+++ paps-0.6.8/src/paps.1 2012-09-06 18:04:01.000000000 +0900 -@@ -64,6 +64,9 @@ Draw page header for each page. - .B \-\-markup - Interpret the text as pango markup. - .TP -+.B \-\-encoding=ENCODING -+Assume the documentation encoding is ENCODING. -+.TP - .B \-\-lpi - Set the lines per inch. This determines the line spacing. - .TP diff --git a/paps-a3.patch b/paps-a3.patch deleted file mode 100644 index 3628b3a..0000000 --- a/paps-a3.patch +++ /dev/null @@ -1,40 +0,0 @@ ---- 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 deleted file mode 100644 index 115043e..0000000 --- a/paps-c99.patch +++ /dev/null @@ -1,44 +0,0 @@ -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-correct-fsf-address.patch b/paps-correct-fsf-address.patch deleted file mode 100644 index 5313f85..0000000 --- a/paps-correct-fsf-address.patch +++ /dev/null @@ -1,77 +0,0 @@ -diff -pruN paps-0.6.8.orig/COPYING.LIB paps-0.6.8/COPYING.LIB ---- paps-0.6.8.orig/COPYING.LIB 2005-12-21 04:35:27.000000000 +0900 -+++ paps-0.6.8/COPYING.LIB 2012-11-23 14:30:46.297512335 +0900 -@@ -1,16 +1,15 @@ -- GNU LIBRARY GENERAL PUBLIC LICENSE -- Version 2, June 1991 -+ GNU LIBRARY GENERAL PUBLIC LICENSE -+ Version 2, June 1991 - - Copyright (C) 1991 Free Software Foundation, Inc. -- 59 Temple Place - Suite 330 -- Boston, MA 02111-1307, USA. -+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - [This is the first released version of the library GPL. It is - numbered 2 because it goes with version 2 of the ordinary GPL.] - -- Preamble -+ Preamble - - The licenses for most software are designed to take away your - freedom to share and change it. By contrast, the GNU General Public -@@ -100,7 +99,7 @@ works together with the library. - Note that it is possible for a library to be covered by the ordinary - General Public License rather than by this special one. - -- GNU LIBRARY GENERAL PUBLIC LICENSE -+ GNU LIBRARY GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License Agreement applies to any software library which -@@ -412,7 +411,7 @@ decision will be guided by the two goals - of all derivatives of our free software and of promoting the sharing - and reuse of software generally. - -- NO WARRANTY -+ NO WARRANTY - - 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO - WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. -@@ -435,8 +434,9 @@ FAILURE OF THE LIBRARY TO OPERATE WITH A - SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH - DAMAGES. - -- END OF TERMS AND CONDITIONS -- How to Apply These Terms to Your New Libraries -+ END OF TERMS AND CONDITIONS -+ -+ How to Apply These Terms to Your New Libraries - - If you develop a new library, and you want it to be of the greatest - possible use to the public, we recommend making it free software that -@@ -453,18 +453,18 @@ convey the exclusion of warranty; and ea - Copyright (C) - - This library is free software; you can redistribute it and/or -- modify it under the terms of the GNU Lesser General Public -+ modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- Lesser General Public License for more details. -+ Library General Public License for more details. - -- You should have received a copy of the GNU Lesser General Public -+ You should have received a copy of the GNU Library General Public - License along with this library; if not, write to the Free Software -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - - Also add information on how to contact you by electronic and paper mail. - diff --git a/paps-cups.patch b/paps-cups.patch index acedf48..286ced2 100644 --- a/paps-cups.patch +++ b/paps-cups.patch @@ -40,16 +40,15 @@ diff -pruN paps-0.6.8.orig/src/Makefile.am paps-0.6.8/src/Makefile.am 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 2008-11-07 08:21:05.000000000 +0900 +++ paps-0.6.8/src/paps.c 2008-11-07 08:26:28.000000000 +0900 -@@ -31,6 +31,8 @@ +@@ -31,6 +31,7 @@ #include #include #include +#include -+#include #define BUFSIZE 1024 #define DEFAULT_FONT_FAMILY "Monospace" -@@ -86,9 +88,11 @@ typedef struct { +@@ -86,9 +87,11 @@ typedef struct { gboolean do_wordwrap; gboolean do_use_markup; gboolean do_stretch_chars; @@ -61,7 +60,7 @@ diff -pruN paps-0.6.8.orig/src/paps.c paps-0.6.8/src/paps.c gint lpi; gint cpi; } page_layout_t; -@@ -320,8 +324,8 @@ int main(int argc, char *argv[]) +@@ -320,8 +323,8 @@ int main(int argc, char *argv[]) int num_pages = 1; int gutter_width = 40; int total_gutter_width; @@ -72,7 +71,7 @@ diff -pruN paps-0.6.8.orig/src/paps.c paps-0.6.8/src/paps.c int do_tumble = -1; /* -1 means not initialized */ int do_duplex = -1; gchar *paps_header = NULL; -@@ -331,6 +335,8 @@ int main(int argc, char *argv[]) +@@ -331,6 +334,8 @@ int main(int argc, char *argv[]) int max_width = 0, w; GIConv cvh = NULL; GOptionGroup *options; @@ -81,7 +80,7 @@ diff -pruN paps-0.6.8.orig/src/paps.c paps-0.6.8/src/paps.c /* Set locale from environment. */ setlocale(LC_ALL, ""); -@@ -348,6 +354,130 @@ int main(int argc, char *argv[]) +@@ -348,6 +353,130 @@ int main(int argc, char *argv[]) g_option_context_add_main_entries(ctxt, entries, NULL); #endif @@ -212,7 +211,7 @@ diff -pruN paps-0.6.8.orig/src/paps.c paps-0.6.8/src/paps.c /* Parse command line */ if (!g_option_context_parse(ctxt, &argc, &argv, &error)) { -@@ -374,6 +504,8 @@ int main(int argc, char *argv[]) +@@ -374,6 +503,8 @@ int main(int argc, char *argv[]) IN = stdin; } title = filename_in; @@ -221,7 +220,7 @@ diff -pruN paps-0.6.8.orig/src/paps.c paps-0.6.8/src/paps.c paps = paps_new(); pango_context = paps_get_pango_context (paps); -@@ -392,8 +524,10 @@ int main(int argc, char *argv[]) +@@ -392,8 +523,10 @@ int main(int argc, char *argv[]) pango_context_set_font_description (pango_context, font_description); /* Page layout */ @@ -234,7 +233,7 @@ diff -pruN paps-0.6.8.orig/src/paps.c paps-0.6.8/src/paps.c if (num_columns == 1) total_gutter_width = 0; -@@ -456,6 +590,8 @@ int main(int argc, char *argv[]) +@@ -456,6 +589,8 @@ int main(int argc, char *argv[]) page_layout.pango_dir = pango_dir; page_layout.filename = filename_in; page_layout.header_font_desc = header_font_desc; @@ -243,7 +242,7 @@ diff -pruN paps-0.6.8.orig/src/paps.c paps-0.6.8/src/paps.c /* calculate x-coordinate scale */ if (page_layout.cpi > 0.0L) -@@ -756,6 +892,12 @@ split_text_into_paragraphs (PangoContext +@@ -756,6 +891,12 @@ split_text_into_paragraphs (PangoContext if (wc == (gunichar)-1) { fprintf (stderr, "%s: Invalid character in input\n", g_get_prgname ()); @@ -256,7 +255,7 @@ diff -pruN paps-0.6.8.orig/src/paps.c paps-0.6.8/src/paps.c wc = 0; } if (!*p || !wc || wc == '\n' || wc == '\f') -@@ -925,21 +1067,32 @@ void print_postscript_header(FILE *OUT, +@@ -925,21 +1066,32 @@ void print_postscript_header(FILE *OUT, int orientation = page_layout->page_width > page_layout->page_height; int bb_page_width = page_layout->page_width; int bb_page_height = page_layout->page_height; @@ -291,7 +290,7 @@ diff -pruN paps-0.6.8.orig/src/paps.c paps-0.6.8/src/paps.c "%%%%BeginProlog\n" "%%%%Orientation: %s\n" "/papsdict 1 dict def\n" -@@ -961,7 +1114,7 @@ void print_postscript_header(FILE *OUT, +@@ -961,7 +1113,7 @@ void print_postscript_header(FILE *OUT, " pagewidth\n" " /pagewidth pageheight def\n" " /pageheight exch def\n" @@ -300,7 +299,7 @@ diff -pruN paps-0.6.8.orig/src/paps.c paps-0.6.8/src/paps.c " } if\n" " 2 dict\n" " dup /PageSize [pagewidth pageheight] put\n" -@@ -986,11 +1139,21 @@ void print_postscript_header(FILE *OUT, +@@ -986,11 +1138,21 @@ void print_postscript_header(FILE *OUT, " 90 rotate\n" " 0 pageheight neg translate\n" "} def\n", diff --git a/paps-fix-build.patch b/paps-fix-build.patch deleted file mode 100644 index e77f387..0000000 --- a/paps-fix-build.patch +++ /dev/null @@ -1,85 +0,0 @@ -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 deleted file mode 100644 index 7bc3f61..0000000 --- a/paps-fix-cpi.patch +++ /dev/null @@ -1,342 +0,0 @@ -diff --git a/src/libpaps.c b/src/libpaps.c -index b6363a7..1b80257 100644 ---- a/src/libpaps.c -+++ b/src/libpaps.c -@@ -55,6 +55,9 @@ typedef struct { - double last_pos_x; - double scale_x; - double scale_y; -+ double width; -+ double height; -+ double cpi; - } paps_private_t; - - -@@ -88,6 +91,26 @@ paps_t *paps_new() - } - - void -+paps_set_paper_size(paps_t *paps_, -+ gdouble width, -+ gdouble height) -+{ -+ paps_private_t *paps = (paps_private_t *)paps_; -+ -+ paps->width = width; -+ paps->height = height; -+} -+ -+void -+paps_set_cpi(paps_t *paps_, -+ gdouble cpi) -+{ -+ paps_private_t *paps = (paps_private_t *)paps_; -+ -+ paps->cpi = cpi; -+} -+ -+void - paps_set_scale(paps_t *paps_, - gdouble scale_x, - gdouble scale_y) -@@ -401,7 +424,7 @@ static void draw_contour(paps_private_t *paps, - FT_Face ft_face = pango_ft2_font_get_face(font); - int num_glyphs = glyphs->num_glyphs; - int glyph_idx; -- -+ - for (glyph_idx=0; glyph_idxglyphs[glyph_idx].geometry; -@@ -410,7 +433,11 @@ static void draw_contour(paps_private_t *paps, - glyph_pos_x = x_pos + 1.0*geometry.x_offset * scale; - glyph_pos_y = line_start_pos_y - 1.0*geometry.y_offset * scale; - -- x_pos += geometry.width * scale * paps->scale_x; -+ if (paps->cpi > 0.0L) { -+ x_pos += (1 / paps->cpi * 72.0); -+ } else { -+ x_pos += geometry.width * scale * paps->scale_x; -+ } - - if (glyphs->glyphs[glyph_idx].glyph == PANGO_GLYPH_EMPTY) - continue; -diff --git a/src/libpaps.h b/src/libpaps.h -index 0b74321..cbb4042 100644 ---- a/src/libpaps.h -+++ b/src/libpaps.h -@@ -53,10 +53,16 @@ void paps_free(paps_t *paps); - * @param scale_y y-coordinate scale - * - */ --void --paps_set_scale(paps_t *paps, -- gdouble scale_x, -- gdouble scale_y); -+void paps_set_scale(paps_t *paps, -+ gdouble scale_x, -+ gdouble scale_y); -+ -+void paps_set_paper_size(paps_t *paps_, -+ gdouble width, -+ gdouble height); -+ -+void paps_set_cpi(paps_t *paps_, -+ gdouble cpi); - - /** - * libpaps may currently be used only with a PangoContext that it -diff --git a/src/paps.c b/src/paps.c -index 334d547..72dbaad 100644 ---- a/src/paps.c -+++ b/src/paps.c -@@ -33,6 +33,8 @@ - #include - #include - #include -+#include -+#include - - #define BUFSIZE 1024 - #define DEFAULT_FONT_FAMILY "Monospace" -@@ -594,6 +596,8 @@ int main(int argc, char *argv[]) - page_layout.owner = page_owner; - page_layout.cups_mode = cups_mode; - -+ paps_set_paper_size(paps, page_width, page_height); -+ - /* calculate x-coordinate scale */ - if (page_layout.cpi > 0.0L) - { -@@ -606,7 +610,7 @@ int main(int argc, char *argv[]) - w = pango_font_metrics_get_approximate_digit_width (metrics); - if (w > max_width) - max_width = w; -- page_layout.scale_x = 1 / page_layout.cpi * 72.0 * PANGO_SCALE / max_width; -+ page_layout.scale_x = 1 / page_layout.cpi * 72.0 * (gdouble)PANGO_SCALE / (gdouble)max_width; - pango_font_metrics_unref (metrics); - g_object_unref (G_OBJECT (fontmap)); - -@@ -614,6 +618,8 @@ int main(int argc, char *argv[]) - // update the font size to that width - pango_font_description_set_size (font_description, font_size * page_layout.scale_x); - pango_context_set_font_description (pango_context, font_description); -+ -+ paps_set_cpi(paps, page_layout.cpi); - } - - page_layout.scale_x = page_layout.scale_y = 1.0; -@@ -727,119 +733,6 @@ read_file (FILE *file, - return text; - } - --#if 0 --/* Take a UTF8 string and break it into paragraphs on \n characters. -- * -- * Sorry. I couldn't figure out what this version was supposed to do -- * -- */ --static GList * --split_text_into_paragraphs (PangoContext *pango_context, -- page_layout_t *page_layout, -- int paint_width, /* In pixels */ -- char *text) --{ -- char *p = text; -- char *next; -- gunichar wc; -- GList *result = NULL; -- char *last_para = text; -- -- while (p != NULL && *p) -- { -- wc = g_utf8_get_char (p); -- next = g_utf8_next_char (p); -- if (wc == (gunichar)-1) -- { -- fprintf (stderr, "%s: Invalid character in input\n", g_get_prgname ()); -- wc = 0; -- } -- if (!*p || !wc || wc == '\n' || wc == '\f') -- { -- Paragraph *para = g_new (Paragraph, 1); -- para->text = last_para; -- para->length = p - last_para; -- para->layout = pango_layout_new (pango_context); -- -- if (cpi > 0.0L && page_layout->do_wordwrap) -- { -- PangoRectangle ink_rect, logical_rect; -- wchar_t *wtext, *wnewtext; -- gchar *newtext; -- size_t i, len, wwidth = 0, n; -- -- wtext = g_utf8_to_ucs4 (para->text, para->length, NULL, NULL, NULL); -- if (wtext == NULL) -- { -- fprintf (stderr, "Failed to convert UTF-8 to UCS-4.\n"); -- exit(1); -- } -- -- len = g_utf8_strlen (para->text, para->length); -- /* the amount of characters to be able to put on the line against CPI */ -- n = page_layout->column_width / 72.0 * cpi; -- if (len > n) -- { -- wnewtext = g_new (wchar_t, wcslen (wtext) + 1); -- if (wnewtext == NULL) -- { -- fprintf (stderr, "Failed to allocate a memory.\n"); -- g_free (wtext); -- exit(1); -- } -- for (i = 0; i < len; i++) -- { -- wwidth += wcwidth (wtext[i]); -- if (wwidth > n) -- break; -- wnewtext[i] = wtext[i]; -- } -- wnewtext[i] = 0L; -- -- newtext = g_ucs4_to_utf8 ((const gunichar *)wnewtext, i, NULL, NULL, NULL); -- if (newtext == NULL) -- { -- fprintf (stderr, "Failed to convert UCS-4 to UTF-8.\n"); -- exit(1); -- } -- -- pango_layout_set_text (para->layout, newtext, -1); -- pango_layout_get_extents (para->layout, &ink_rect, &logical_rect); -- /* update paint_width to wrap_against CPI */ -- paint_width = logical_rect.width / PANGO_SCALE; -- g_free (newtext); -- g_free (wnewtext); -- } -- g_free (wtext); -- } -- pango_layout_set_text (para->layout, para->text, para->length); -- pango_layout_set_justify (para->layout, page_layout->do_justify); -- pango_layout_set_alignment (para->layout, -- page_layout->pango_dir == PANGO_DIRECTION_LTR -- ? PANGO_ALIGN_LEFT : PANGO_ALIGN_RIGHT); -- pango_layout_set_width (para->layout, paint_width * PANGO_SCALE); -- if (page_layout->do_wordwrap) -- pango_layout_set_wrap (para->layout, PANGO_WRAP_WORD_CHAR); -- para->height = 0; -- -- if (wc == '\f') -- para->formfeed = 1; -- else -- para->formfeed = 0; -- -- last_para = next; -- -- result = g_list_prepend (result, para); -- } -- if (!wc) /* incomplete character at end */ -- break; -- p = next; -- } -- -- return g_list_reverse (result); --} --#endif -- - /* Take a UTF8 string and break it into paragraphs on \n characters - */ - static GList * -@@ -905,18 +798,85 @@ split_text_into_paragraphs (PangoContext *pango_context, - para->text = last_para; - para->length = p - last_para; - para->layout = pango_layout_new (pango_context); -- // pango_layout_set_font_description (para->layout, font_description); -- pango_layout_set_text (para->layout, para->text, para->length); -+ -+ if (page_layout->cpi > 0.0L && page_layout->do_wordwrap) { -+ /* figuring out the correct width from the pango_font_metrics_get_approximate_width() -+ * is really hard and pango_layout_set_wrap() doesn't work properly then. -+ * Those are not reliable to render the characters exactly according to the given CPI. -+ * So Re-calculate the width to wrap up to be comfortable with CPI. -+ */ -+ wchar_t *wtext = NULL, *wnewtext = NULL; -+ gchar *newtext = NULL; -+ gsize len, col, i, wwidth = 0; -+ PangoRectangle ink_rect, logical_rect; -+ -+ wtext = (wchar_t *)g_utf8_to_ucs4(para->text, para->length, NULL, NULL, NULL); -+ if (wtext == NULL) { -+ fprintf(stderr, "%s: Unable to convert UTF-8 to UCS-4.\n", g_get_prgname()); -+ fail: -+ g_free(wtext); -+ g_free(wnewtext); -+ g_free(newtext); -+ if (page_layout->cups_mode) { -+ /* try to continue parsing text */ -+ p = next; -+ continue; -+ } else { -+ exit(1); -+ } -+ } -+ len = g_utf8_strlen(para->text, para->length); -+ /* the amount of characters that can be put on the line against CPI */ -+ col = page_layout->column_width / 72.0 * page_layout->cpi; -+ if (len > col) { -+ /* need to wrap up them */ -+ wnewtext = g_new(wchar_t, wcslen(wtext) + 1); -+ if (wnewtext == NULL) { -+ fprintf(stderr, "%s: Unable to allocate the memory.\n", g_get_prgname()); -+ goto fail; -+ } -+ for (i = 0; i < len; i++) { -+ wwidth += wcwidth(wtext[i]); -+ if (wwidth > col) -+ break; -+ wnewtext[i] = wtext[i]; -+ } -+ wnewtext[i] = 0L; -+ -+ newtext = g_ucs4_to_utf8((const gunichar *)wnewtext, i, NULL, NULL, NULL); -+ if (newtext == NULL) { -+ fprintf(stderr, "%s: Unable to convert UCS-4 to UTF-8.\n", g_get_prgname()); -+ goto fail; -+ } -+ pango_layout_set_text(para->layout, newtext, -1); -+ pango_layout_get_extents(para->layout, &ink_rect, &logical_rect); -+ paint_width = logical_rect.width / PANGO_SCALE; -+ g_free(wnewtext); -+ g_free(newtext); -+ -+ para->length = i; -+ next = g_utf8_offset_to_pointer(para->text, para->length); -+ wc = g_utf8_get_char(g_utf8_prev_char(next)); -+ } else { -+ pango_layout_set_text(para->layout, para->text, para->length); -+ } -+ g_free(wtext); -+ -+ pango_layout_set_width(para->layout, -1); -+ } else { -+ pango_layout_set_text (para->layout, para->text, para->length); -+ if (page_layout->do_wordwrap) { -+ pango_layout_set_wrap (para->layout, PANGO_WRAP_WORD_CHAR); -+ pango_layout_set_width (para->layout, paint_width * PANGO_SCALE); -+ } else { -+ pango_layout_set_width (para->layout, -1); -+ } -+ } -+ - pango_layout_set_justify (para->layout, page_layout->do_justify); - pango_layout_set_alignment (para->layout, - page_layout->pango_dir == PANGO_DIRECTION_LTR - ? PANGO_ALIGN_LEFT : PANGO_ALIGN_RIGHT); -- if (page_layout->do_wordwrap) { -- pango_layout_set_wrap (para->layout, PANGO_WRAP_WORD_CHAR); -- pango_layout_set_width (para->layout, paint_width * PANGO_SCALE); -- } else { -- pango_layout_set_width (para->layout, -1); -- } - - para->height = 0; - diff --git a/paps-fix-loop-in-split.patch b/paps-fix-loop-in-split.patch deleted file mode 100644 index 89bc1fc..0000000 --- a/paps-fix-loop-in-split.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 6c3fa9959dd454938378ade2fec8e84cee7d6916 Mon Sep 17 00:00:00 2001 -From: Akira TAGOH -Date: Tue, 27 Jul 2010 12:19:30 +0900 -Subject: [PATCH 1/2] Fix rhbz#618483: texttopaps becoms runaway memory hog - - * src/paps.c (split_text_into_paragraphs): fix a infinite loop - when non-printable characters are in the text. ---- - src/paps.c | 5 ++++- - 1 files changed, 4 insertions(+), 1 deletions(-) - - * paps.c: Erased --justify option since it is not implemented in -diff --git a/src/paps.c b/src/paps.c -index 72dbaad..dcef349 100644 ---- a/src/paps.c -+++ b/src/paps.c -@@ -835,7 +835,10 @@ split_text_into_paragraphs (PangoContext *pango_context, - goto fail; - } - for (i = 0; i < len; i++) { -- wwidth += wcwidth(wtext[i]); -+ gssize w = wcwidth(wtext[i]); -+ -+ if (w >= 0) -+ wwidth += w; - if (wwidth > col) - break; - wnewtext[i] = wtext[i]; --- -1.7.1.1 - diff --git a/paps-fix-non-weak-symbol.patch b/paps-fix-non-weak-symbol.patch deleted file mode 100644 index 8edf596..0000000 --- a/paps-fix-non-weak-symbol.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff -pruN paps-0.6.8.orig/src/Makefile.am paps-0.6.8/src/Makefile.am ---- paps-0.6.8.orig/src/Makefile.am 2012-11-23 14:22:51.506176037 +0900 -+++ paps-0.6.8/src/Makefile.am 2012-11-23 14:25:41.828410416 +0900 -@@ -8,13 +8,14 @@ bin_PROGRAMS = paps - paps_CFLAGS = -Wall $(CUPS_CFLAGS) - paps_SOURCES = paps.c - paps_LDADD = $(lib_LTLIBRARIES) $(all_libraries) --paps_LDFLAGS = `pkg-config --libs pangoft2` $(CUPS_LIBS) -+paps_LDFLAGS = $(CUPS_LIBS) - paps_DEPENDENCIES = $(lib_LTLIBRARIES) - - EXTRA_DIST = test_libpaps.c paps.1 - - # set the include path found by configure - INCLUDES= $(all_includes) `pkg-config --cflags pangoft2` -+LIBS = `pkg-config --libs pangoft2` - - # Test program - noinst_PROGRAMS = test_libpaps -@@ -22,6 +23,5 @@ noinst_PROGRAMS = test_libpaps - - test_libpaps_SOURCES = test_libpaps.c - test_libpaps_LDADD = $(lib_LTLIBRARIES) $(all_libraries) --test_libpaps_LDFLAGS = `pkg-config --libs pangoft2` - test_libpaps_DEPENDENCIES = $(lib_LTLIBRARIES) - diff --git a/paps-fix-paper-size-truncate.patch b/paps-fix-paper-size-truncate.patch deleted file mode 100644 index 90e9fcb..0000000 --- a/paps-fix-paper-size-truncate.patch +++ /dev/null @@ -1,15 +0,0 @@ -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 deleted file mode 100644 index d18f8af..0000000 --- a/paps-fix-src-to-paps.patch +++ /dev/null @@ -1,18 +0,0 @@ -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 deleted file mode 100644 index a1011ee..0000000 --- a/paps-fix-tab-width.patch +++ /dev/null @@ -1,77 +0,0 @@ -@@ -, +, @@ ---- - src/libpaps.c | 40 +++++++++++++++++++++++++++++----------- - 1 file changed, 29 insertions(+), 11 deletions(-) ---- 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_; - GString *layout_str = g_string_new(""); -- gchar *ret_str; - - add_line_to_postscript(paps, - layout_str, -@@ -259,10 +258,7 @@ gchar *paps_layout_line_to_postscript_strdup(paps_t *paps_, - pos_y, - layout_line); - -- ret_str = layout_str->str; -- g_string_free(layout_str, FALSE); -- -- return ret_str; -+ return g_string_free(layout_str, FALSE); - } - - static void -@@ -408,9 +404,26 @@ static void draw_contour(paps_private_t *paps, - { - GSList *runs_list; - double scale = 72.0 / PANGO_SCALE / PAPS_DPI; -+ PangoGlyphUnit avg_width = 1; - - g_string_append(layout_str, "("); -- -+ -+ if (paps->cpi > 0.0L) -+ { -+ /* calculate approximate width per a character */ -+ for (runs_list = pango_line->runs; runs_list != NULL; runs_list = g_slist_next(runs_list)) -+ { -+ PangoLayoutRun *run = runs_list->data; -+ PangoGlyphString *glyphs = run->glyphs; -+ int i; -+ -+ for (i = 0; i < glyphs->num_glyphs; i++) -+ { -+ if (glyphs->glyphs[i].glyph != PANGO_GLYPH_EMPTY) -+ avg_width = MAX (avg_width, glyphs->glyphs[i].geometry.width); -+ } -+ } -+ } - /* Loop over the runs and output font info */ - runs_list = pango_line->runs; - double x_pos = line_start_pos_x; -@@ -433,11 +446,16 @@ static void draw_contour(paps_private_t *paps, - glyph_pos_x = x_pos + 1.0*geometry.x_offset * scale; - glyph_pos_y = line_start_pos_y - 1.0*geometry.y_offset * scale; - -- if (paps->cpi > 0.0L) { -- x_pos += (1 / paps->cpi * 72.0); -- } else { -- x_pos += geometry.width * scale * paps->scale_x; -- } -+ if (paps->cpi > 0.0L) -+ { -+ double n = ((double)geometry.width) / avg_width; -+ -+ x_pos += n * (1 / paps->cpi * 72.0); -+ } -+ else -+ { -+ x_pos += geometry.width * scale * paps->scale_x; -+ } - - if (glyphs->glyphs[glyph_idx].glyph == PANGO_GLYPH_EMPTY) - continue; --- diff --git a/paps-ft-header.patch b/paps-ft-header.patch deleted file mode 100644 index f2d8a2e..0000000 --- a/paps-ft-header.patch +++ /dev/null @@ -1,15 +0,0 @@ -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 deleted file mode 100644 index 23bd2b4..0000000 --- a/paps-glib282.patch +++ /dev/null @@ -1,34 +0,0 @@ -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.convs b/paps.convs deleted file mode 100644 index 03d406a..0000000 --- a/paps.convs +++ /dev/null @@ -1,8 +0,0 @@ -# Use the texttopaps filter (from the paps package) in preference to -# the texttops filter shipped as part of CUPS. This is so that we -# have full UTF-8 support. -# -# To use the default CUPS texttops filter instead, remove this file -# (or the package it belongs to). - -text/plain application/postscript 30 texttopaps diff --git a/paps.spec b/paps.spec index 2177152..9532aa5 100644 --- a/paps.spec +++ b/paps.spec @@ -1,354 +1,104 @@ -Name: paps -Version: 0.8.0 -Release: 14%{?dist} +Name: paps +Version: 0.6.8 +Release: 8%{?dist} -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 -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++ +License: LGPLv2+ +URL: http://paps.sourceforge.net/ +Source0: http://prdownloads.sourceforge.net/paps/paps-%{version}.tar.gz +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +BuildRequires: pango-devel automake autoconf libtool doxygen cups-devel ## https://sourceforge.net/tracker/index.php?func=detail&aid=1832897&group_id=153049&atid=786241 -Patch0: paps-0.6.8-shared.patch +Patch0: paps-0.6.8-shared.patch ## https://sourceforge.net/tracker/index.php?func=detail&aid=1832924&group_id=153049&atid=786241 -Patch1: paps-0.6.8-wordwrap.patch +Patch1: paps-0.6.8-wordwrap.patch ## https://sourceforge.net/tracker/index.php?func=detail&aid=1832926&group_id=153049&atid=786241 -Patch2: paps-langinfo.patch +Patch2: paps-langinfo.patch ## https://sourceforge.net/tracker/index.php?func=detail&aid=1832929&group_id=153049&atid=786241 -Patch3: paps-0.6.6-lcnumeric.patch +Patch3: paps-0.6.6-lcnumeric.patch ## https://sourceforge.net/tracker/index.php?func=detail&aid=1832935&group_id=153049&atid=786241 -Patch4: paps-exitcode.patch -## rhbz#854897 -Patch5: paps-854897-manpage.patch -## Fedora specific patch to integrate with CUPS -Patch50: paps-cups.patch -Patch51: paps-cpilpi.patch -## rhbz#424951 -Patch52: paps-dsc-compliant.patch -Patch53: paps-autoconf262.patch -## rhbz#524883 -Patch54: paps-fix-cpi.patch -## rhbz#618483 -Patch55: paps-fix-loop-in-split.patch -## rhbz#857592 -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 +Patch4: paps-exitcode.patch +Patch50: paps-cups.patch +Patch51: paps-cpilpi.patch +Patch52: paps-dsc-compliant.patch +Patch53: paps-autoconf262.patch -Summary: Plain Text to PostScript converter +Summary: Plain Text to PostScript converter +Group: Applications/Publishing %description paps is a PostScript converter from plain text file using Pango. -%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 - +%package libs +Summary: Libraries for paps +Group: Development/Libraries +%description libs paps is a PostScript converter from plain text file using Pango. -This package contains a CUPS filter based on paps. +This package contains the library for 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 -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 +%setup -q +%patch0 -p1 -b .shared +%patch1 -p1 -b .wordwrap +%patch2 -p1 -b .langinfo +%patch3 -p1 -b .lcnumeric +%patch4 -p1 -b .exitcode +%patch50 -p1 -b .cups +%patch51 -p1 -b .cpilpi +%patch52 -p1 -b .dsc +%patch53 -p1 -b .autoconf262 libtoolize -f -c -autoreconf -f -i -popd +autoreconf %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" +rm -rf $RPM_BUILD_ROOT + +make install DESTDIR=$RPM_BUILD_ROOT # remove unnecessary files rm $RPM_BUILD_ROOT%{_libdir}/libpaps.la # make a symlink for CUPS filter -install -d $RPM_BUILD_ROOT%{_cups_serverbin}/filter # Not libdir -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 +%{__mkdir_p} $RPM_BUILD_ROOT/usr/lib/cups/filter # Not libdir +ln -s %{_bindir}/paps $RPM_BUILD_ROOT/usr/lib/cups/filter/texttopaps -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/ - -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 +%clean +rm -rf $RPM_BUILD_ROOT %files -%doc AUTHORS COPYING.LIB README -%dir %{_datadir}/paps +%defattr(-, root, root, -) +%doc AUTHORS COPYING.LIB README TODO %{_bindir}/paps -%{_bindir}/src-to-paps -%{_datadir}/paps/pango_markup.outlang %{_mandir}/man1/paps.1* +/usr/lib/cups/filter/texttopaps -%files -n texttopaps -%doc %{name}-0.6.8/COPYING.LIB %{name}-0.6.8/AUTHORS %{name}-0.6.8/README -%{_mandir}/man1/texttopaps.1* +%files libs +%defattr(-, root, root, -) +%doc COPYING.LIB %{_libdir}/libpaps.so.* -%{_cups_serverbin}/filter/texttopaps -%{_datadir}/cups/mime/paps.convs -%{_sysconfdir}/fonts/conf.d/29-paps.conf +%files devel +%defattr(-, root, root, -) +%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 -- Correct FSF address in the COPYING.LIB - -* Mon Sep 24 2012 Akira TAGOH - 0.6.8-22 -- Ensure the latest version of paps-libs are installed. - -* Fri Sep 21 2012 Akira TAGOH - 0.6.8-21 -- Fix wrong width for whitespaces when enabling CPI feature. (#857592) - -* Thu Sep 6 2012 Akira TAGOH - 0.6.8-20 -- Add a missing description of --encoding in manpage. (#854897) - -* Fri Jul 20 2012 Fedora Release Engineering - 0.6.8-19 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild - -* Wed Jan 11 2012 Akira TAGOH - 0.6.8-18 -- Use %%{_cups_serverbin} instead of the hardcoded path. (#772240) - -* Mon Dec 5 2011 Akira TAGOH - 0.6.8-17 -- Add ldconfig in %%post/%%postun for paps-libs (#759880) - -* Fri Jun 24 2011 Akira TAGOH - 0.6.8-16 -- Fix FTBFS issue. (#716211) - -* Tue Feb 08 2011 Fedora Release Engineering - 0.6.8-15 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild - -* Tue Jul 27 2010 Akira TAGOH - 0.6.8-14 -- Fix the infinite loop in splitting paragraphs (#618483) - -* Fri Mar 12 2010 Akira TAGOH - 0.6.8-13 -- Fix the directory's group ownership. (#572733) - -* Tue Dec 8 2009 Akira TAGOH - 0.6.8-12 -- Add paps.convs to behaves the cups filter without the hardcoded thing - in cups. (#545031) - -* Wed Oct 14 2009 Akira TAGOH - 0.6.8-11 -- Fix code that deal with CPI parameter to be accurate. (#524883) - -* Sat Jul 25 2009 Fedora Release Engineering - 0.6.8-10 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild - -* Thu Feb 26 2009 Fedora Release Engineering - 0.6.8-9 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild - * Mon Nov 17 2008 Akira TAGOH - 0.6.8-8 - Courier font to be a default font for texttopaps. (#469325) @@ -405,7 +155,7 @@ make install DESTDIR=$RPM_BUILD_ROOT INSTALL="/usr/bin/install -p" - Fix PostScript breakage following the non-monetary numeric format from current locale. (#231916) -* Wed Mar 7 2007 Akira TAGOH - 0.6.6-18 +* Thu 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 deleted file mode 100644 index c1627f9..0000000 --- a/plans/basic.fmf +++ /dev/null @@ -1,5 +0,0 @@ -summary: Basic smoke test -discover: - how: fmf -execute: - how: tmt diff --git a/sources b/sources index fcb89c4..a9fd861 100644 --- a/sources +++ b/sources @@ -1,2 +1 @@ -SHA512 (paps-0.6.8.tar.gz) = db657d90179e11fe42bbcdbebe09a84f1927c99d0b539c9e29b66b3cb8ffcf33ff500c9d81835ae5a0880382bf8f24801f04742517b76b8e005b125a139d8bba -SHA512 (paps-0.8.0.tar.gz) = 33afad0e3dae9cef0fb3afb9994650bf1a7326e72782346e05ab91f7c84f092145247658cdf57868105df47a1bd08e1a961c1ef4c07a2a8fd01eaf8ecd9d948a +e9508132bf27609bf2fded2bfd9cb3f1 paps-0.6.8.tar.gz diff --git a/tests/basic/main.fmf b/tests/basic/main.fmf deleted file mode 100644 index d9d7de5..0000000 --- a/tests/basic/main.fmf +++ /dev/null @@ -1,5 +0,0 @@ -summary: Basic test -require: - - paps -test: ./test.sh -framework: beakerlib diff --git a/tests/basic/test.sh b/tests/basic/test.sh deleted file mode 100755 index e07c777..0000000 --- a/tests/basic/test.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/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