diff options
Diffstat (limited to 'gnome-extra/yelp/files')
-rw-r--r-- | gnome-extra/yelp/files/yelp-3.0.3-man-compatibility.patch | 117 | ||||
-rw-r--r-- | gnome-extra/yelp/files/yelp-3.16.0-man-compatibility.patch | 114 |
2 files changed, 231 insertions, 0 deletions
diff --git a/gnome-extra/yelp/files/yelp-3.0.3-man-compatibility.patch b/gnome-extra/yelp/files/yelp-3.0.3-man-compatibility.patch new file mode 100644 index 000000000000..b57591c14ca6 --- /dev/null +++ b/gnome-extra/yelp/files/yelp-3.0.3-man-compatibility.patch @@ -0,0 +1,117 @@ +From 7e181e8d74f7e67b8b3acb8524fc85157ed39c8e Mon Sep 17 00:00:00 2001 +From: Alexandre Rostovtsev <tetromino@gmail.com> +Date: Sun, 1 May 2011 22:52:14 -0400 +Subject: [PATCH] Enable compatibility with traditional man (#648854) + +As of commit 46a82ade3e6f0fac8f08b18e7fc23d8665f6f728, Yelp runs +"man -Z -Tutf8 -EUTF-8 [FILE]" to obtain the groff intermediate format +of the man page. However, the only implementation of man that accepts +these options is man-db (used by Debian, Fedora, SUSE & Ubuntu). +The traditional Linux man used by other distros and man implementations +on non-Linux Unixes (FreeBSD, Solaris) do not have command-line options +for outputting groff intermediate format. +Therefore, on systems that do not use man-db, we need to manually +uncompress the nroff source file and feed it to groff. This is best done +using a small shell script (/usr/libexec/yelp-groff), both for for +clarity and for ease of modification on systems with weird man setups. + +Signed-off-by: Alexandre Rostovtsev <tetromino@gmail.com> +--- + libyelp/Makefile.am | 2 + + libyelp/yelp-groff | 49 +++++++++++++++++++++++++++++++++++++++++++++ + libyelp/yelp-man-parser.c | 4 +- + 3 files changed, 53 insertions(+), 2 deletions(-) + create mode 100755 libyelp/yelp-groff + +diff --git a/libyelp/Makefile.am b/libyelp/Makefile.am +index a4dd68b..5d55bf1 100644 +--- a/libyelp/Makefile.am ++++ b/libyelp/Makefile.am +@@ -1,4 +1,5 @@ + lib_LTLIBRARIES = libyelp.la ++libexec_SCRIPTS = yelp-groff + + libyelp_la_SOURCES = \ + yelp-bookmarks.c \ +@@ -49,6 +50,7 @@ endif + libyelp_la_CFLAGS = \ + $(YELP_CFLAGS) \ + -DDATADIR=\""$(datadir)"\" \ ++ -DLIBEXECDIR=\"$(libexecdir)\" \ + -DYELP_ICON_PATH=\"$(YELP_ICON_PATH)\" + + libyelp_la_LIBADD = $(YELP_LIBS) +diff --git a/libyelp/yelp-groff b/libyelp/yelp-groff +new file mode 100755 +index 0000000..5348024 +--- /dev/null ++++ b/libyelp/yelp-groff +@@ -0,0 +1,49 @@ ++#!/bin/sh ++# ++# Copyright (c) 2011 Alexandre Rostovtsev <tetromino@gmail.com> ++# ++# This program is free software; you can redistribute it and/or ++# modify it under the terms of the GNU General Public License as ++# published by the Free Software Foundation; either version 2 of the ++# License, or (at your option) any later version. ++# ++# This program 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 ++# General Public License for more details. ++# ++# You should have received a copy of the GNU General Public ++# License along with this program; if not, write to the ++# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, ++# Boston, MA 02110-1301, USA. ++# ++### ++# ++# Process the requested compressed source nroff file and output groff ++# intermediate format. ++# ++ ++filename=$1 ++ ++if [ -z ${filename} ] ; then ++ echo "Usage: yelp-groff [FILE]" >&2 ++ echo "Process a man FILE and output groff intermediate format." ++ exit 1 ++fi ++ ++# If "man -Z -Tutf8 -EUTF-8" works (i.e. if man is man-db), use that. ++man -Z -Tutf8 -EUTF-8 ${filename} 2>/dev/null && exit 0 ++ ++# Otherwise, manually uncompress the file ... ++cat="cat" ++case ${filename} in ++ *.bz2) cat="bzip2 -c -d" ;; ++ *.gz) cat="gunzip -c" ;; ++ *.lzma) cat="unlzma -c -d" ;; ++ *.xz) cat="unxz -c" ;; ++ *.Z) cat="zcat" ;; ++esac ++ ++# ... and run groff to get the intermediate format; preprocess with tbl ++# unless MANROFFSEQ is defined. ++${cat} ${filename} | groff -${MANROFFSEQ:-t} -man -Z -Tutf8 +diff --git a/libyelp/yelp-man-parser.c b/libyelp/yelp-man-parser.c +index 4001d38..9818803 100644 +--- a/libyelp/yelp-man-parser.c ++++ b/libyelp/yelp-man-parser.c +@@ -371,9 +371,9 @@ get_troff (gchar *path, GError **error) + { + gint stdout; + GError *err = NULL; +- gchar *argv[] = { "man", "-Z", "-Tutf8", "-EUTF-8", NULL, NULL }; ++ gchar *argv[] = { LIBEXECDIR "/yelp-groff", NULL, NULL }; + +- argv[4] = path; ++ argv[1] = path; + + if (!g_spawn_async_with_pipes (NULL, argv, NULL, + G_SPAWN_SEARCH_PATH, NULL, NULL, +-- +1.7.5.rc3 + diff --git a/gnome-extra/yelp/files/yelp-3.16.0-man-compatibility.patch b/gnome-extra/yelp/files/yelp-3.16.0-man-compatibility.patch new file mode 100644 index 000000000000..9df6ef491793 --- /dev/null +++ b/gnome-extra/yelp/files/yelp-3.16.0-man-compatibility.patch @@ -0,0 +1,114 @@ +From fb83e8cea7e9e521599e73180ecff8f1374edb8d Mon Sep 17 00:00:00 2001 +From: Alexandre Rostovtsev <tetromino@gmail.com> +Date: Sun, 1 May 2011 22:52:14 -0400 +Subject: [PATCH] Enable compatibility with traditional man (#648854) + +As of commit 46a82ade3e6f0fac8f08b18e7fc23d8665f6f728, Yelp runs +"man -Z -Tutf8 -EUTF-8 [FILE]" to obtain the groff intermediate format +of the man page. However, the only implementation of man that accepts +these options is man-db (used by Debian, Fedora, SUSE & Ubuntu). +The traditional Linux man used by other distros and man implementations +on non-Linux Unixes (FreeBSD, Solaris) do not have command-line options +for outputting groff intermediate format. +Therefore, on systems that do not use man-db, we need to manually +uncompress the nroff source file and feed it to groff. This is best done +using a small shell script (/usr/libexec/yelp-groff), both for for +clarity and for ease of modification on systems with weird man setups. + +Signed-off-by: Alexandre Rostovtsev <tetromino@gmail.com> +--- + libyelp/Makefile.am | 2 ++ + libyelp/yelp-groff | 49 +++++++++++++++++++++++++++++++++++++++++++++++ + libyelp/yelp-man-parser.c | 2 +- + 3 files changed, 52 insertions(+), 1 deletion(-) + create mode 100755 libyelp/yelp-groff + +diff --git a/libyelp/Makefile.am b/libyelp/Makefile.am +index 0ae9d60..0037ecd 100644 +--- a/libyelp/Makefile.am ++++ b/libyelp/Makefile.am +@@ -1,4 +1,5 @@ + lib_LTLIBRARIES = libyelp.la ++libexec_SCRIPTS = yelp-groff + + libyelp_la_SOURCES = \ + yelp-bookmarks.c \ +@@ -51,6 +52,7 @@ libyelp_la_CFLAGS = \ + $(YELP_CFLAGS) \ + -Wno-deprecated-declarations \ + -DDATADIR=\""$(datadir)"\" \ ++ -DLIBEXECDIR=\"$(libexecdir)\" \ + -DYELP_ICON_PATH=\"$(YELP_ICON_PATH)\" + + libyelp_la_LIBADD = $(YELP_LIBS) +diff --git a/libyelp/yelp-groff b/libyelp/yelp-groff +new file mode 100755 +index 0000000..5348024 +--- /dev/null ++++ b/libyelp/yelp-groff +@@ -0,0 +1,49 @@ ++#!/bin/sh ++# ++# Copyright (c) 2011 Alexandre Rostovtsev <tetromino@gmail.com> ++# ++# This program is free software; you can redistribute it and/or ++# modify it under the terms of the GNU General Public License as ++# published by the Free Software Foundation; either version 2 of the ++# License, or (at your option) any later version. ++# ++# This program 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 ++# General Public License for more details. ++# ++# You should have received a copy of the GNU General Public ++# License along with this program; if not, write to the ++# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, ++# Boston, MA 02110-1301, USA. ++# ++### ++# ++# Process the requested compressed source nroff file and output groff ++# intermediate format. ++# ++ ++filename=$1 ++ ++if [ -z ${filename} ] ; then ++ echo "Usage: yelp-groff [FILE]" >&2 ++ echo "Process a man FILE and output groff intermediate format." ++ exit 1 ++fi ++ ++# If "man -Z -Tutf8 -EUTF-8" works (i.e. if man is man-db), use that. ++man -Z -Tutf8 -EUTF-8 ${filename} 2>/dev/null && exit 0 ++ ++# Otherwise, manually uncompress the file ... ++cat="cat" ++case ${filename} in ++ *.bz2) cat="bzip2 -c -d" ;; ++ *.gz) cat="gunzip -c" ;; ++ *.lzma) cat="unlzma -c -d" ;; ++ *.xz) cat="unxz -c" ;; ++ *.Z) cat="zcat" ;; ++esac ++ ++# ... and run groff to get the intermediate format; preprocess with tbl ++# unless MANROFFSEQ is defined. ++${cat} ${filename} | groff -${MANROFFSEQ:-t} -man -Z -Tutf8 +diff --git a/libyelp/yelp-man-parser.c b/libyelp/yelp-man-parser.c +index 46073a2..792e695 100644 +--- a/libyelp/yelp-man-parser.c ++++ b/libyelp/yelp-man-parser.c +@@ -369,7 +369,7 @@ get_troff (gchar *path, GError **error) + { + gint ystdout; + GError *err = NULL; +- const gchar *argv[] = { "man", "-Z", "-Tutf8", "-EUTF-8", path, NULL }; ++ const gchar *argv[] = { LIBEXECDIR "/yelp-groff", path, NULL }; + gchar **my_argv; + + /* g_strdupv() should accept a "const gchar **". */ +-- +2.3.6 + |