Hello community, here is the log from the commit of package rarian checked in at Tue Sep 11 18:35:25 CEST 2007. -------- --- GNOME/rarian/rarian.changes 2007-09-10 06:58:04.000000000 +0200 +++ /mounts/work_src_done/STABLE/rarian/rarian.changes 2007-09-10 20:40:40.777686000 +0200 @@ -1,0 +2,11 @@ +Mon Sep 10 20:14:53 CEST 2007 - maw@suse.de + +- Update to version 0.5.8: + + Misc. changes + + Bugs (bugs.freedesktop.org) fixed: #11976, #11957, #11896, + #11901, and #11799 +- Remove abuild.patch, as this release makes it unnecessary +- Remove some comments inadvertently left behind during a prior + change. + +------------------------------------------------------------------- Old: ---- abuild.patch rarian-0.5.6.tar.bz2 New: ---- rarian-0.5.8.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ rarian.spec ++++++ --- /var/tmp/diff_new_pack.q24552/_old 2007-09-11 18:35:16.000000000 +0200 +++ /var/tmp/diff_new_pack.q24552/_new 2007-09-11 18:35:16.000000000 +0200 @@ -1,5 +1,5 @@ # -# spec file for package rarian (Version 0.5.6) +# spec file for package rarian (Version 0.5.8) # # Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany. # This file and all modifications and additions to the pristine @@ -13,14 +13,12 @@ Name: rarian BuildRequires: docbook_4 gcc-c++ intltool libxslt-devel perl-XML-Parser pkg-config sgml-skel Summary: Rarian is designed to be a replacement for scrollkeeper. -Version: 0.5.6 -Release: 12 +Version: 0.5.8 +Release: 1 Source0: rarian-%{version}.tar.bz2 -Patch0: abuild.patch Patch1: rarian-0.5.6-reg-parse-bugs.patch Patch2: rarian-0.5.6-identifier-basename-crash.patch Patch3: rarian-0.5.6-docs-from-desktop-entries-and-bundles.patch -### Patch4: 307213.patch License: GPL v2 or later, LGPL v2 or later Group: Development/Libraries/C and C++ BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -64,11 +62,9 @@ %prep %setup -q #%setup -q -a 1 -%patch0 -p1 %patch1 -p1 %patch2 -p1 %patch3 -p1 -### %patch4 -p0 %build %configure @@ -102,6 +98,14 @@ %{_libdir}/pkgconfig/*.pc %changelog +* Mon Sep 10 2007 - maw@suse.de +- Update to version 0.5.8: + + Misc. changes + + Bugs (bugs.freedesktop.org) fixed: #11976, #11957, #11896, + [#11901], and #11799 +- Remove abuild.patch, as this release makes it unnecessary +- Remove some comments inadvertently left behind during a prior + change. * Mon Sep 10 2007 - hpj@suse.de - Amend rarian-0.5.6-eof-crash.patch to prevent a buffer overrun crash, a file descriptor leak, and a failure the check the ++++++ rarian-0.5.6-docs-from-desktop-entries-and-bundles.patch ++++++ --- /var/tmp/diff_new_pack.q24552/_old 2007-09-11 18:35:16.000000000 +0200 +++ /var/tmp/diff_new_pack.q24552/_new 2007-09-11 18:35:16.000000000 +0200 @@ -1,49 +1,49 @@ -Index: rarian-0.5.6/librarian/rarian-main.c +Index: rarian-0.5.8/librarian/rarian-main.c =================================================================== ---- rarian-0.5.6.orig/librarian/rarian-main.c -+++ rarian-0.5.6/librarian/rarian-main.c -@@ -223,13 +223,24 @@ past: +--- rarian-0.5.8.orig/librarian/rarian-main.c ++++ rarian-0.5.8/librarian/rarian-main.c +@@ -227,14 +227,24 @@ past: int_path = rrn_strndup (cur_path, (first_colon-cur_path)); else int_path = strdup (cur_path); - check_path = malloc (sizeof(char)*(strlen(int_path)+6)); - sprintf (check_path, "%s/help", int_path); -+ -+ check_path = malloc (sizeof (char) * (strlen (int_path) + 14)); -+ snprintf (check_path, sizeof (char) * (strlen (int_path) + 14), -+ "%s/help", int_path); ++ check_path = malloc (sizeof (char) * (strlen (int_path) + 14)); ++ snprintf (check_path, sizeof (char) * (strlen (int_path) + 14), ++ "%s/help", int_path); #if ENABLE_OMF_READ process_omf_dir (int_path); #endif process_locale_dirs (check_path); + scan_directory (check_path); -+ -+ snprintf (check_path, sizeof (char) * (strlen (int_path) + 14), -+ "%s/applications", int_path); -+ scan_directory (check_path); -+ -+ snprintf (check_path, sizeof (char) * (strlen (int_path) + 14), -+ "%s/help-bundle", int_path); -+ scan_directory (check_path); ++ ++ snprintf (check_path, sizeof (char) * (strlen (int_path) + 14), ++ "%s/applications", int_path); ++ scan_directory (check_path); ++ ++ snprintf (check_path, sizeof (char) * (strlen (int_path) + 14), ++ "%s/help-bundle", int_path); ++ scan_directory (check_path); + if (int_path && *int_path) { free (int_path); } -@@ -286,7 +297,8 @@ scan_directory (char *dir) - sprintf (tmp, "%s/%s", dir, dp->d_name); - - suffix = strrchr (tmp, '.'); -- if (!strcmp (suffix, ".document")) { -+ if (!strcmp (suffix, ".document") || -+ !strcmp (suffix, ".desktop")) { - process_file (tmp); - } else if (!strcmp (suffix, ".section")) { - process_section (tmp); -Index: rarian-0.5.6/librarian/rarian-reg-full.c +@@ -294,7 +304,8 @@ scan_directory (char *dir) + char *suffix = NULL; + + suffix = strrchr (full_name, '.'); +- if (!strcmp (suffix, ".document")) { ++ if (!strcmp (suffix, ".document") || ++ !strcmp (suffix, ".desktop")) { + process_file (full_name); + } else if (!strcmp (suffix, ".section")) { + process_section (full_name); +Index: rarian-0.5.8/librarian/rarian-reg-full.c =================================================================== ---- rarian-0.5.6.orig/librarian/rarian-reg-full.c -+++ rarian-0.5.6/librarian/rarian-reg-full.c -@@ -101,7 +101,8 @@ rrn_reg_parse_file_full (char *filename) +--- rarian-0.5.8.orig/librarian/rarian-reg-full.c ++++ rarian-0.5.8/librarian/rarian-reg-full.c +@@ -102,7 +102,8 @@ rrn_reg_parse_file_full (char *filename) if (!real || real[0] == '\n' || real[0] == '#') { /* Black Line or comment. Ignore. */ } else if (real[0] == '[') { @@ -53,7 +53,7 @@ mode = 0; if (sect) { -@@ -151,7 +152,7 @@ rrn_reg_parse_file_full (char *filename) +@@ -152,7 +153,7 @@ rrn_reg_parse_file_full (char *filename) } } @@ -62,7 +62,7 @@ rrn_reg_free_full (reg); reg = NULL; } -@@ -271,6 +272,9 @@ process_categories_full (char *cat_strin +@@ -272,6 +273,9 @@ process_categories_full (char *cat_strin int i; do { semi = strchr (current_break, ';'); @@ -72,7 +72,7 @@ if (result) { tmp = malloc (sizeof (char *)*ncats); for (i=0; i< ncats; i++) { -@@ -636,9 +640,20 @@ process_path_full (RrnRegFull *reg) +@@ -637,9 +641,20 @@ process_path_full (RrnRegFull *reg) */ return; } @@ -96,11 +96,11 @@ free (entry->text); entry->text = prefix; entry = entry->next; -Index: rarian-0.5.6/librarian/rarian-reg-utils.c +Index: rarian-0.5.8/librarian/rarian-reg-utils.c =================================================================== ---- rarian-0.5.6.orig/librarian/rarian-reg-utils.c -+++ rarian-0.5.6/librarian/rarian-reg-utils.c -@@ -117,7 +117,8 @@ rrn_reg_parse_file (char *filename) +--- rarian-0.5.8.orig/librarian/rarian-reg-utils.c ++++ rarian-0.5.8/librarian/rarian-reg-utils.c +@@ -121,7 +121,8 @@ rrn_reg_parse_file (char *filename) if (!real || real[0] == '\n' || real[0] == '#') { /* Black Line or comment. Ignore. */ } else if (real[0] == '[') { @@ -110,7 +110,7 @@ mode = 0; if (sect) { -@@ -167,7 +168,7 @@ rrn_reg_parse_file (char *filename) +@@ -173,7 +174,7 @@ rrn_reg_parse_file (char *filename) } } @@ -119,7 +119,7 @@ rrn_reg_free (reg); reg = NULL; } -@@ -311,6 +312,9 @@ process_categories (char *cat_string) +@@ -318,6 +319,9 @@ process_categories (char *cat_string) int i; do { semi = strchr (current_break, ';'); @@ -129,7 +129,7 @@ if (result) { tmp = malloc (sizeof (char *)*ncats); for (i=0; i< ncats; i++) { -@@ -736,10 +740,22 @@ process_path (RrnReg *reg) +@@ -743,10 +747,22 @@ process_path (RrnReg *reg) */ return; } ++++++ rarian-0.5.6.tar.bz2 -> rarian-0.5.8.tar.bz2 ++++++ ++++ 7533 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/rarian-0.5.6/ChangeLog new/rarian-0.5.8/ChangeLog --- old/rarian-0.5.6/ChangeLog 2007-07-31 22:07:04.000000000 +0200 +++ new/rarian-0.5.8/ChangeLog 2007-08-13 22:37:34.000000000 +0200 @@ -1,3 +1,75 @@ +2007-08-13 Don Scorgie <Don@Scorgie.org> + + * configure.ac: + * NEWS: + Bump version to 0.5.8 + +2007-08-13 Don Scorgie <Don@Scorgie.org> + + * librarian/rarian-info.c: + Missing argument to sprintf added + (Fixes bug #11976 and possible #11957 again) + +2007-08-12 Don Scorgie <Don@Scorgie.org> + + * configure.ac: + * util/rarian-sk-rebuild.in: + * util/rarian-sk-config.in: + * util/Makefile.am: + * util/rarian-sk-update.in: + Build fixes for FreeBSD + + * librarian/rarian-info.c: + Reuse filename in check_file + Reduces number of malloc by quite a margin + Should also (hopefully) fix + bug #11957 + + * librarian/rarian-info.c: + Fix crashing on entried without a filename + (bug #11896) + + * util/rarian-example.c: + Uncomment man and info that got done + accidently + + * librarian/rarian-man.c: + Fix issue with man pages not showing their + section. Fix path reading from manpath prog + to correctly get last path (bug #11901) + + * TODO: + Update TODO slightly + + * MAINTAINERS: + Add MAINTAINERS file, since someone asked. + + * util/rarian-sk-update.in: + When not reading OMF's directly, make the update + script work again. + +2007-08-06 Don Scorgie <Don@Scorgie.org> + + * librarian/rarian-man.c: + * librarian/rarian-main.c: + * librarian/rarian-reg-utils.c: + * librarian/rarian-reg-full.c: + * util/rarian-sk-get-cl.cpp: + * util/rarian-sk-migrate.cpp: + Build fixes for Solaris and other non-Linux platforms + - Based on patch from Damien Carbery (bug #11792) + + + * librarian/rarian-main.c: + * librarian/rarian-man.c: + strdup() environment variables to + allow freeing correctly + - Jan de Groot (bug #11799) + (And then fix the resulting segfault) + + * librarian/rarian-omf.cpp: + Fix categories for omf files + 2007-07-31 Don Scorgie <Don@Scorgie.org> * configure.ac: diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/rarian-0.5.6/compile new/rarian-0.5.8/compile --- old/rarian-0.5.6/compile 2007-07-31 22:08:48.000000000 +0200 +++ new/rarian-0.5.8/compile 1970-01-01 01:00:00.000000000 +0100 @@ -1,142 +0,0 @@ -#! /bin/sh -# Wrapper for compilers which do not understand `-c -o'. - -scriptversion=2005-05-14.22 - -# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc. -# Written by Tom Tromey <tromey@cygnus.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, 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. - -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# This file is maintained in Automake, please report -# bugs to <bug-automake@gnu.org> or send patches to -# <automake-patches@gnu.org>. - -case $1 in - '') - echo "$0: No command. Try \`$0 --help' for more information." 1>&2 - exit 1; - ;; - -h | --h*) - cat <<\EOF -Usage: compile [--help] [--version] PROGRAM [ARGS] - -Wrapper for compilers which do not understand `-c -o'. -Remove `-o dest.o' from ARGS, run PROGRAM with the remaining -arguments, and rename the output as expected. - -If you are trying to build a whole package this is not the -right script to run: please start by reading the file `INSTALL'. - -Report bugs to <bug-automake@gnu.org>. -EOF - exit $? - ;; - -v | --v*) - echo "compile $scriptversion" - exit $? - ;; -esac - -ofile= -cfile= -eat= - -for arg -do - if test -n "$eat"; then - eat= - else - case $1 in - -o) - # configure might choose to run compile as `compile cc -o foo foo.c'. - # So we strip `-o arg' only if arg is an object. - eat=1 - case $2 in - *.o | *.obj) - ofile=$2 - ;; - *) - set x "$@" -o "$2" - shift - ;; - esac - ;; - *.c) - cfile=$1 - set x "$@" "$1" - shift - ;; - *) - set x "$@" "$1" - shift - ;; - esac - fi - shift -done - -if test -z "$ofile" || test -z "$cfile"; then - # If no `-o' option was seen then we might have been invoked from a - # pattern rule where we don't need one. That is ok -- this is a - # normal compilation that the losing compiler can handle. If no - # `.c' file was seen then we are probably linking. That is also - # ok. - exec "$@" -fi - -# Name of file we expect compiler to create. -cofile=`echo "$cfile" | sed -e 's|^.*/||' -e 's/\.c$/.o/'` - -# Create the lock directory. -# Note: use `[/.-]' here to ensure that we don't use the same name -# that we are using for the .o file. Also, base the name on the expected -# object file name, since that is what matters with a parallel build. -lockdir=`echo "$cofile" | sed -e 's|[/.-]|_|g'`.d -while true; do - if mkdir "$lockdir" >/dev/null 2>&1; then - break - fi - sleep 1 -done -# FIXME: race condition here if user kills between mkdir and trap. -trap "rmdir '$lockdir'; exit 1" 1 2 15 - -# Run the compile. -"$@" -ret=$? - -if test -f "$cofile"; then - mv "$cofile" "$ofile" -elif test -f "${cofile}bj"; then - mv "${cofile}bj" "$ofile" -fi - -rmdir "$lockdir" -exit $ret - -# Local Variables: -# mode: shell-script -# sh-indentation: 2 -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-end: "$" -# End: diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/rarian-0.5.6/configure.ac new/rarian-0.5.8/configure.ac --- old/rarian-0.5.6/configure.ac 2007-07-31 22:06:31.000000000 +0200 +++ new/rarian-0.5.8/configure.ac 2007-08-13 22:37:00.000000000 +0200 @@ -2,7 +2,7 @@ # Process this file with autoconf to produce a configure script. AC_PREREQ(2.59) -AC_INIT(rarian, 0.5.6) +AC_INIT(rarian, 0.5.8) AC_CONFIG_SRCDIR([util/rarian-example.c]) AC_CONFIG_HEADER([config.h]) AM_INIT_AUTOMAKE ([1.9 foreign dist-bzip2 dist-gzip]) @@ -154,6 +154,10 @@ AM_CONDITIONAL(ENABLE_EXTRACT, test x"$have_xslt" = xyes) +AC_PATH_PROG(have_bash, bash) + +AC_SUBST(BASH, $have_bash) + # Checks for header files. AC_CHECK_HEADERS(malloc.h) diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/rarian-0.5.6/INSTALL new/rarian-0.5.8/INSTALL --- old/rarian-0.5.6/INSTALL 2007-07-31 22:08:49.000000000 +0200 +++ new/rarian-0.5.8/INSTALL 2007-08-13 22:38:23.000000000 +0200 @@ -1,8 +1,8 @@ Installation Instructions ************************* -Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free -Software Foundation, Inc. +Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, +2006 Free Software Foundation, Inc. This file is free documentation; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. @@ -10,7 +10,10 @@ Basic Installation ================== -These are generic installation instructions. +Briefly, the shell commands `./configure; make; make install' should +configure, build, and install this package. The following +more-detailed instructions are generic; see the `README' file for +instructions specific to this package. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses @@ -23,9 +26,9 @@ It can also use an optional file (typically called `config.cache' and enabled with `--cache-file=config.cache' or simply `-C') that saves -the results of its tests to speed up reconfiguring. (Caching is +the results of its tests to speed up reconfiguring. Caching is disabled by default to prevent problems with accidental use of stale -cache files.) +cache files. If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail @@ -35,20 +38,17 @@ may remove or edit it. The file `configure.ac' (or `configure.in') is used to create -`configure' by a program called `autoconf'. You only need -`configure.ac' if you want to change it or regenerate `configure' using -a newer version of `autoconf'. +`configure' by a program called `autoconf'. You need `configure.ac' if +you want to change it or regenerate `configure' using a newer version +of `autoconf'. The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type - `./configure' to configure the package for your system. If you're - using `csh' on an old version of System V, you might need to type - `sh ./configure' instead to prevent `csh' from trying to execute - `configure' itself. + `./configure' to configure the package for your system. - Running `configure' takes awhile. While running, it prints some - messages telling which features it is checking for. + Running `configure' might take a while. While running, it prints + some messages telling which features it is checking for. 2. Type `make' to compile the package. @@ -78,7 +78,7 @@ by setting variables in the command line or in the environment. Here is an example: - ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix + ./configure CC=c99 CFLAGS=-g LIBS=-lposix *Note Defining Variables::, for more details. @@ -87,17 +87,15 @@ You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their -own directory. To do this, you must use a version of `make' that -supports the `VPATH' variable, such as GNU `make'. `cd' to the +own directory. To do this, you can use GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the source code in the directory that `configure' is in and in `..'. - If you have to use a `make' that does not support the `VPATH' -variable, you have to compile the package for one architecture at a -time in the source code directory. After you have installed the -package for one architecture, use `make distclean' before reconfiguring -for another architecture. + With a non-GNU `make', it is safer to compile the package for one +architecture at a time in the source code directory. After you have +installed the package for one architecture, use `make distclean' before +reconfiguring for another architecture. Installation Names ================== @@ -190,12 +188,12 @@ ./configure CC=/usr/local2/bin/gcc causes the specified `gcc' to be used as the C compiler (unless it is -overridden in the site shell script). Here is a another example: +overridden in the site shell script). - /bin/bash ./configure CONFIG_SHELL=/bin/bash +Unfortunately, this technique does not work for `CONFIG_SHELL' due to +an Autoconf bug. Until the bug is fixed you can use this workaround: -Here the `CONFIG_SHELL=/bin/bash' operand causes subsequent -configuration-related scripts to be executed by `/bin/bash'. + CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash `configure' Invocation ====================== diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/rarian-0.5.6/librarian/rarian-info.c new/rarian-0.5.8/librarian/rarian-info.c --- old/rarian-0.5.6/librarian/rarian-info.c 2007-07-31 19:16:06.000000000 +0200 +++ new/rarian-0.5.8/librarian/rarian-info.c 2007-08-13 22:31:46.000000000 +0200 @@ -111,12 +111,24 @@ tmp++; end_name = strchr(tmp, ':'); + if (!end_name) { + fprintf (stderr, "Error: Malformed line (no ':'). Ignoring entry\n"); + return; + } begin_fname = strchr(end_name, '('); + if (!begin_fname) { + fprintf (stderr, "Error: Malformed line (no filename). Ignoring entry\n"); + return; + } end_fname = strchr(begin_fname, ')'); + if (!end_fname) { + fprintf (stderr, "Error: Malformed line (no filename close). Ignoring entry\n"); + return; + } end_section = strchr(end_fname, '.'); - if (!end_section || !end_fname || !begin_fname || !end_name) { - fprintf (stderr, "Error: Malformed line again. Ignoring entry\n"); + if (!end_section) { + fprintf (stderr, "Error: Malformed line (no section). Ignoring entry\n"); return; } @@ -170,6 +182,10 @@ InfoLink *iter; struct stat fileinfo; + if (!current_entry->name) { + return FALSE; + } + /* First, look for an additional part on the filename */ tmp = strchr(current_entry->name, '/'); if (tmp) { @@ -207,8 +223,11 @@ * the most popular and working down. * If and when we find it, we set the encoding * (loose) and return */ + /* Use the largest possible storage for filename */ filename = malloc(sizeof(char) * (strlen(current_entry->base_path) + - strlen(current_entry->name) + 10)); + (strlen(current_entry->name)*2) + 15)); + + sprintf (filename, "%s/%s.info.gz", current_entry->base_path, current_entry->name); if (!stat(filename, &fileinfo)) { @@ -216,9 +235,6 @@ current_entry->base_filename = filename; return TRUE; } - free(filename); - filename = malloc(sizeof(char) * (strlen(current_entry->base_path) + - strlen(current_entry->name) + 5)); sprintf (filename, "%s/%s.gz", current_entry->base_path, current_entry->name); if (!stat(filename, &fileinfo)) { @@ -226,9 +242,6 @@ current_entry->base_filename = filename; return TRUE; } - free(filename); - filename = malloc(sizeof(char) * (strlen(current_entry->base_path) + - strlen(current_entry->name) + 11)); sprintf (filename, "%s/%s.info.bz2", current_entry->base_path, current_entry->name); if (!stat(filename, &fileinfo)) { @@ -236,9 +249,6 @@ current_entry->base_filename = filename; return TRUE; } - free(filename); - filename = malloc(sizeof(char) * (strlen(current_entry->base_path) + - strlen(current_entry->name) + 6)); sprintf (filename, "%s/%s.bz2", current_entry->base_path, current_entry->name); if (!stat(filename, &fileinfo)) { @@ -246,9 +256,6 @@ current_entry->base_filename = filename; return TRUE; } - free(filename); - filename = malloc(sizeof(char) * (strlen(current_entry->base_path) + - strlen(current_entry->name) + 7)); sprintf (filename, "%s/%s.info", current_entry->base_path, current_entry->name); if (!stat(filename, &fileinfo)) { @@ -256,9 +263,6 @@ current_entry->base_filename = filename; return TRUE; } - free(filename); - filename = malloc(sizeof(char) * (strlen(current_entry->base_path) + - (strlen(current_entry->name)*2) + 11)); sprintf (filename, "%s/%s/%s.info.gz", current_entry->base_path, current_entry->name, current_entry->name); if (!stat(filename, &fileinfo)) { @@ -275,9 +279,6 @@ current_entry->base_filename = filename; return TRUE; } - free(filename); - filename = malloc(sizeof(char) * (strlen(current_entry->base_path) + - (strlen(current_entry->name)*2) + 6)); sprintf (filename, "%s/%s/%s.gz", current_entry->base_path, current_entry->name, current_entry->name); if (!stat(filename, &fileinfo)) { @@ -294,9 +295,6 @@ current_entry->base_filename = filename; return TRUE; } - free(filename); - filename = malloc(sizeof(char) * (strlen(current_entry->base_path) + - (strlen(current_entry->name)*2) + 12)); sprintf (filename, "%s/%s/%s.info.bz2", current_entry->base_path, current_entry->name, current_entry->name); if (!stat(filename, &fileinfo)) { @@ -313,9 +311,6 @@ current_entry->base_filename = filename; return TRUE; } - free(filename); - filename = malloc(sizeof(char) * (strlen(current_entry->base_path) + - (strlen(current_entry->name)*2) + 7)); sprintf (filename, "%s/%s/%s.bz2", current_entry->base_path, current_entry->name, current_entry->name); if (!stat(filename, &fileinfo)) { @@ -332,11 +327,8 @@ current_entry->base_filename = filename; return TRUE; } - free(filename); - filename = malloc(sizeof(char) * (strlen(current_entry->base_path) + - (strlen(current_entry->name)*2) + 8)); sprintf (filename, "%s/%s/%s.info", current_entry->base_path, - current_entry->name); + current_entry->name, current_entry->name); if (!stat(filename, &fileinfo)) { /* Add to base path */ char *new_base = malloc (sizeof(char) * (strlen(current_entry->base_path) + @@ -441,6 +433,15 @@ current_entry = NULL; } current_entry = malloc (sizeof(RrnInfoEntry)); + current_entry->name = NULL; + current_entry->base_path = NULL; + current_entry->base_filename = NULL; + current_entry->category = NULL; + current_entry->section = NULL; + current_entry->doc_name = NULL; + current_entry->comment = NULL; + + process_initial_entry (line); diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/rarian-0.5.6/librarian/rarian-main.c new/rarian-0.5.8/librarian/rarian-main.c --- old/rarian-0.5.6/librarian/rarian-main.c 2007-07-31 21:58:19.000000000 +0200 +++ new/rarian-0.5.8/librarian/rarian-main.c 2007-08-13 22:31:46.000000000 +0200 @@ -178,8 +178,11 @@ char *next_colon = NULL; char *home_dir = NULL; char *home_data_dir = NULL; + char *home_env = NULL; - home_data_dir = getenv ("XDG_DATA_HOME"); + home_env = getenv ("XDG_DATA_HOME"); + if (home_env) + home_data_dir = strdup(home_env); if (!home_data_dir || !strcmp (home_data_dir, "")) { home_dir = getenv ("HOME"); @@ -215,6 +218,7 @@ path = "/usr/local/share/:/usr/share/"; } cur_path = path; + do { char *int_path = NULL; char *check_path = NULL; @@ -229,6 +233,7 @@ process_omf_dir (int_path); #endif process_locale_dirs (check_path); + scan_directory (check_path); if (int_path && *int_path) { free (int_path); @@ -270,6 +275,7 @@ { DIR * dirp = NULL; struct dirent * dp = NULL; + struct stat buf; char *path = NULL; dirp = opendir (dir); @@ -277,35 +283,33 @@ return; } while (1) { - if ((dp = readdir(dirp)) != NULL) { - if (dp->d_type == DT_REG) { - char *tmp = NULL; - char *suffix = NULL; - /* Add extra 2 for separator and NULL. Otherwise, it falls over */ - tmp = malloc (sizeof (char) * (strlen(dir)+strlen(dp->d_name)+2)); - sprintf (tmp, "%s/%s", dir, dp->d_name); - - suffix = strrchr (tmp, '.'); - if (!strcmp (suffix, ".document")) { - process_file (tmp); - } else if (!strcmp (suffix, ".section")) { - process_section (tmp); - } - free (tmp); - } else if (dp->d_type == DT_DIR && strcmp (dp->d_name, ".") && - strcmp (dp->d_name, "..") && - strcmp (dp->d_name, "LOCALE")) { - char *tmp; - - tmp = malloc (sizeof (char) * (strlen(dir)+strlen(dp->d_name)+2)); - sprintf (tmp, "%s/%s", dir, dp->d_name); - scan_directory (tmp); - free (tmp); - } - } else { - goto done; - } + if ((dp = readdir(dirp)) != NULL) { + char *full_name = NULL; + full_name = malloc (sizeof(char)*(strlen (dp->d_name) + strlen(dir) + 2)); + + sprintf (full_name, "%s/%s", dir, dp->d_name); + stat(full_name,&buf); + + if (S_ISREG(buf.st_mode)) { + char *suffix = NULL; + + suffix = strrchr (full_name, '.'); + if (!strcmp (suffix, ".document")) { + process_file (full_name); + } else if (!strcmp (suffix, ".section")) { + process_section (full_name); + } + } else if (S_ISDIR(buf.st_mode) && strcmp (dp->d_name, ".") && + strcmp (dp->d_name, "..") && + strcmp (dp->d_name, "LOCALE")) { + + scan_directory (full_name); } + free (full_name); + } else { + goto done; + } + } done: insert_orphans (); @@ -351,6 +355,7 @@ char *tmp = NULL; struct dirent * dp = NULL; + struct stat buf; langs = rrn_language_get_langs (); path = malloc (sizeof(char) * (strlen (dir)+6)); @@ -390,9 +395,13 @@ while (1) { if ((dp = readdir(dirp)) != NULL) { - if (dp->d_type == DT_DIR && strcmp (dp->d_name, ".") && + char *full_name; + full_name = malloc (sizeof(char) * (strlen(path) + strlen(dp->d_name) + 5)); + sprintf (full_name, "%s/%s", path, dp->d_name); + stat(full_name,&buf); + free (full_name); + if (S_ISDIR(buf.st_mode) && strcmp (dp->d_name, ".") && strcmp (dp->d_name, "..")) { - langs_iter = langs; while (langs_iter && *langs_iter) { char *lang = (*langs_iter); diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/rarian-0.5.6/librarian/rarian-man.c new/rarian-0.5.8/librarian/rarian-man.c --- old/rarian-0.5.6/librarian/rarian-man.c 2007-07-31 19:16:06.000000000 +0200 +++ new/rarian-0.5.8/librarian/rarian-man.c 2007-08-13 22:31:46.000000000 +0200 @@ -25,6 +25,7 @@ #include <unistd.h> #include <dirent.h> #include <string.h> +#include <sys/stat.h> #include "rarian-man.h" #include "rarian-language.h" #include "rarian-utils.h" @@ -112,7 +113,7 @@ exit (0); } else { /* Parent process */ - char *input; + char *input = NULL; char *colon = NULL; char *next = NULL; int i, count = 0; @@ -126,10 +127,17 @@ close(infd[1]); memset(input, 0, sizeof(char)*255); - input[read(infd[0],input,255)] = 0; // Read from child\u2019s stdout - + input[read(infd[0],input,255)] = 0; // Read from child's stdout + if (*input != '\0') { + int i; + i = strlen(input); + input[i-1]='\0'; + } if (!input || *input == '\0') { - input = getenv("MANPATH"); + char *env = NULL; + env = getenv("MANPATH"); + if (env) + input = strdup(env); } if (!input || *input == '\0') { if (input) @@ -292,6 +300,7 @@ DIR * dirp = NULL; struct dirent * dp = NULL; + struct stat buf; int current; current = -1; @@ -310,43 +319,47 @@ while (1) { if ((dp = readdir(dirp)) != NULL) { - if (dp->d_type == DT_REG || dp->d_type == DT_LNK) { + char *full_name; + + full_name = malloc (sizeof(char) * (strlen(dp->d_name) + strlen (path) + 3)); + sprintf (full_name, "%s/%s", path, dp->d_name); + + stat(full_name,&buf); + if (S_ISREG(buf.st_mode) || buf.st_mode & S_IFLNK) { char *tmp = NULL; char *suffix = NULL; RrnManEntry *entry; ManLink *link; char *subsect = NULL; - - /* Add extra 2 for separator and NULL. Otherwise, it falls over */ - tmp = malloc (sizeof (char) * (strlen(path)+strlen(dp->d_name)+2)); - sprintf (tmp, "%s/%s", path, dp->d_name); - + entry = malloc (sizeof(RrnManEntry)); entry->name = get_name_for_file (dp->d_name, &subsect); - entry->path = tmp; - entry->section = subsect; - entry->comment = NULL; - current = find_key(subsect); - if (!check_for_dup (entry, current)) { - link = malloc (sizeof(ManLink)); - link->reg = entry; - - if (mantail[current]) { - mantail[current]->next = link; - link->next = NULL; - link->prev = mantail[current]; - mantail[current] = link; + entry->path = full_name; + if (subsect) { + entry->section = subsect; + entry->comment = NULL; + current = find_key(subsect); + if (!check_for_dup (entry, current)) { + link = malloc (sizeof(ManLink)); + link->reg = entry; + + if (mantail[current]) { + mantail[current]->next = link; + link->next = NULL; + link->prev = mantail[current]; + mantail[current] = link; + } else { + manhead[current] = mantail[current] = link; + link->prev = link->next = NULL; + } } else { - manhead[current] = mantail[current] = link; - link->prev = link->next = NULL; + free (entry->name); + free (entry->path); + free (entry->section); + if (entry->comment) + free (entry->comment); + free (entry); } - } else { - free (entry->name); - free (entry->path); - free (entry->section); - if (entry->comment) - free (entry->comment); - free (entry); } } } else { @@ -384,13 +397,11 @@ if (!access (path, R_OK)) { process_dir(path); } - process_dir (path); free (path); lang_iter++; } - process_dir(*path_iter); path_iter++; } diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/rarian-0.5.6/librarian/rarian-omf.cpp new/rarian-0.5.8/librarian/rarian-omf.cpp --- old/rarian-0.5.6/librarian/rarian-omf.cpp 2007-07-31 21:32:57.000000000 +0200 +++ new/rarian-0.5.8/librarian/rarian-omf.cpp 2007-08-13 22:31:46.000000000 +0200 @@ -39,7 +39,6 @@ static char *sk_series; static char *new_series; static char *type; -static char *categories; static bool am_parsing = false; @@ -63,7 +62,7 @@ reg->uri = strdup (""); } else if (e == REG_LANG) { if (strcmp (pAttrib->Value(), "")) { - lang = strdup (pAttrib->Value()); + reg->lang = strdup (pAttrib->Value()); } } else if (e == REG_SERIES) { if (strcmp (pAttrib->Value(), "")) { @@ -72,15 +71,19 @@ } } else if (e == REG_TYPE && strcmp (pAttrib->Value(), "")) { if (!type) { - type = strdup (pAttrib->Value()); + reg->type = strdup (pAttrib->Value()); } } else if (e == REG_TYPE && !strcmp (pAttrib->Value(), "")) { /* Do nothing */ } else if (e == REG_CATEGORIES && strcmp (pAttrib->Value(), "")) { - if (!categories) { - categories = strdup (pAttrib->Value()); - } - } else if (e == REG_CATEGORIES && !strcmp (pAttrib->Value(), "")) { + char *categories; + categories = strdup (pAttrib->Value()); + + /* OMF files can only have 1 category. */ + reg->categories = (char **) malloc (sizeof(char *) * 2); + reg->categories[0] = categories; + reg->categories[1] = NULL; + } else if (e == REG_CATEGORIES && !strcmp (pAttrib->Value(), "")) { /* Do Nothing */ } else { /* Ignore unknown elements */ diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/rarian-0.5.6/librarian/rarian-reg-full.c new/rarian-0.5.8/librarian/rarian-reg-full.c --- old/rarian-0.5.6/librarian/rarian-reg-full.c 2007-07-31 19:16:06.000000000 +0200 +++ new/rarian-0.5.8/librarian/rarian-reg-full.c 2007-08-13 22:31:46.000000000 +0200 @@ -23,6 +23,7 @@ #include <unistd.h> #include <stdio.h> #include <string.h> +#include <ctype.h> #include "rarian-reg-full.h" #include "rarian-reg-utils.h" @@ -39,8 +40,8 @@ char *lang); RrnSectFull * rrn_sect_new_full (); void rrn_sect_free_full (RrnSectFull *sect); -char * process_path_full (RrnRegFull *reg); -char * process_section_path_full (RrnListEntry *owner_paths, RrnSectFull *section); +void process_path_full (RrnRegFull *reg); +void process_section_path_full (RrnListEntry *owner_paths, RrnSectFull *section); RrnRegFull * rrn_reg_new_full () @@ -619,7 +620,7 @@ return; } -char * +void process_path_full (RrnRegFull *reg) { char *prefix = NULL; @@ -649,7 +650,7 @@ } } -char * +void process_section_path_full (RrnListEntry *owner_paths, RrnSectFull *section) { char *tmp = NULL; diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/rarian-0.5.6/librarian/rarian-reg-utils.c new/rarian-0.5.8/librarian/rarian-reg-utils.c --- old/rarian-0.5.6/librarian/rarian-reg-utils.c 2007-07-31 19:16:06.000000000 +0200 +++ new/rarian-0.5.8/librarian/rarian-reg-utils.c 2007-08-13 22:31:46.000000000 +0200 @@ -35,7 +35,7 @@ void process_sect_line (char *line, RrnSect *sect); void process_sect_pair (RrnSect *sect, char *key, char *value); int rrn_reg_add_sect (RrnReg *reg, RrnSect *sect); -char * process_path (RrnReg *reg); +void process_path (RrnReg *reg); char * process_section_path (char *owner_path, RrnSect *section); @@ -700,7 +700,7 @@ return; } -char * +void process_path (RrnReg *reg) { char *prefix = NULL; diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/rarian-0.5.6/missing new/rarian-0.5.8/missing --- old/rarian-0.5.6/missing 2007-07-31 22:08:48.000000000 +0200 +++ new/rarian-0.5.8/missing 2007-08-13 22:38:22.000000000 +0200 @@ -1,9 +1,9 @@ #! /bin/sh # Common stub for a few missing GNU programs while installing. -scriptversion=2005-06-08.21 +scriptversion=2006-05-10.23 -# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005 +# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006 # Free Software Foundation, Inc. # Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996. @@ -33,6 +33,8 @@ fi run=: +sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' +sed_minuso='s/.* -o \([^ ]*\).*/\1/p' # In the cases where this matters, `missing' is being run in the # srcdir already. @@ -44,7 +46,7 @@ msg="missing on your system" -case "$1" in +case $1 in --run) # Try to run requested program, and just exit if it succeeds. run= @@ -77,6 +79,7 @@ aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' + autom4te touch the output file, or create a stub one automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c @@ -106,7 +109,7 @@ # Now exit if we have it, but it failed. Also exit now if we # don't have it and --version was passed (most likely to detect # the program). -case "$1" in +case $1 in lex|yacc) # Not GNU programs, they don't have --version. ;; @@ -135,7 +138,7 @@ # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. -case "$1" in +case $1 in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if @@ -164,7 +167,7 @@ test -z "$files" && files="config.h" touch_files= for f in $files; do - case "$f" in + case $f in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; @@ -192,8 +195,8 @@ You can get \`$1' as part of \`Autoconf' from any GNU archive site." - file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'` - test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'` + file=`echo "$*" | sed -n "$sed_output"` + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else @@ -214,25 +217,25 @@ in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h - if [ $# -ne 1 ]; then + if test $# -ne 1; then eval LASTARG="\${$#}" - case "$LASTARG" in + case $LASTARG in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` - if [ -f "$SRCFILE" ]; then + if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` - if [ -f "$SRCFILE" ]; then + if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.h fi ;; esac fi - if [ ! -f y.tab.h ]; then + if test ! -f y.tab.h; then echo >y.tab.h fi - if [ ! -f y.tab.c ]; then + if test ! -f y.tab.c; then echo 'main() { return 0; }' >y.tab.c fi ;; @@ -244,18 +247,18 @@ in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c - if [ $# -ne 1 ]; then + if test $# -ne 1; then eval LASTARG="\${$#}" - case "$LASTARG" in + case $LASTARG in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` - if [ -f "$SRCFILE" ]; then + if test -f "$SRCFILE"; then cp "$SRCFILE" lex.yy.c fi ;; esac fi - if [ ! -f lex.yy.c ]; then + if test ! -f lex.yy.c; then echo 'main() { return 0; }' >lex.yy.c fi ;; @@ -267,11 +270,9 @@ \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." - file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` - if test -z "$file"; then - file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'` - fi - if [ -f "$file" ]; then + file=`echo "$*" | sed -n "$sed_output"` + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` + if test -f "$file"; then touch $file else test -z "$file" || exec >$file @@ -289,11 +290,17 @@ DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." # The file to touch is that specified with -o ... - file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` + file=`echo "$*" | sed -n "$sed_output"` + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -z "$file"; then # ... or it is the one specified with @setfilename ... infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` - file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $infile` + file=`sed -n ' + /^@setfilename/{ + s/.* \([^ ]*\) *$/\1/ + p + q + }' $infile` # ... or it is derived from the source name (dir/f.texi becomes f.info) test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info fi @@ -317,13 +324,13 @@ fi firstarg="$1" if shift; then - case "$firstarg" in + case $firstarg in *o*) firstarg=`echo "$firstarg" | sed s/o//` tar "$firstarg" "$@" && exit 0 ;; esac - case "$firstarg" in + case $firstarg in *h*) firstarg=`echo "$firstarg" | sed s/h//` tar "$firstarg" "$@" && exit 0 diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/rarian-0.5.6/NEWS new/rarian-0.5.8/NEWS --- old/rarian-0.5.6/NEWS 2007-07-31 22:08:14.000000000 +0200 +++ new/rarian-0.5.8/NEWS 2007-08-13 22:36:37.000000000 +0200 @@ -1,3 +1,20 @@ +Version 0.5.8 +------------- + + * Fix build on FreeBSD and Solaris (mostly) - Damien Carbury + * rarian-example now goes through man and info pages again + * Add MAINTAINER file, since someone asked for it + +Bug fixed: + * Missing argument to sprintf added (bug #11976 and #11957) + * Fix crashes on invalid info files (bug #11896) + * Fix crashes on man pages with no section (bug #11901) + * Fix update script when not reading OMF's directly + * Don't free environment variables - they don't belong to us + - Jan de Groot (bug #11799) + * Fix categoried with omf files (the one everyone complained + about) + Version 0.5.6 ------------- diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/rarian-0.5.6/TODO new/rarian-0.5.8/TODO --- old/rarian-0.5.6/TODO 2007-07-31 19:16:07.000000000 +0200 +++ new/rarian-0.5.8/TODO 2007-08-13 22:31:46.000000000 +0200 @@ -1,68 +1,5 @@ A list of tasks that need doing in and around Rarian -Primary Goal ------------- - -The current primary goal of Rarian is to get into decent enough state to be -proposed for GNOME 2.20 (Around September 2007). To do this, a number of tasks -are required. - -When 2.18 is branched and work commences on 2.20 (Approx. April 2007), - Rarian should be able to drop in as a scrollkeeper replacement immediately. - -This means, jhbuild should be adapted to build rarian instead of - scrollkeeper and a full build of jhbuild moduleset for GNOME - 2.20should be able to run through and install correctly, with all - current documentation available within yelp (within the jhbuild - environment). - -Gnome-doc-utils needs some work to stop looking for scrollkeeper and - instead install scrolls (or install omfs and run rarian-sk-update). - -Yelp will need a lot of work done to make full use of librarian. In - addition, several things need done to comply with the spec itself. - -A guide will need to be created for app developers on how to handle - the New World Order. This should cover how to call yelp and what - needs to be done to ensure documentation shows up. - -3rd May 2007: Additional stuff needed now! -* Whatever is required from the yelp mega function -DONE Mostly completed -* Scrollkeeper replacements: -DONE scrollkeeper-config - - return various "useful" pieces of info: - (Pretty much direct from configure script) -DONE scrollkeeper-extract - - Applys stylesheets to xml docs -DONE scrollkeeper-gen-seriesid - - Generate series id's - - own program -DONE scrollkeeper-get-cl - - ??? -DONE scrollkeeper-get-content-list - - ??? -MOSTLY DONE scrollkeeper-get-extended-content-list - - doesn't copy with extended stuff (mainly because it isn't used) -DONE scrollkeeper-get-index-from-docpath - - No idea Blank -DONE scrollkeeper-get-toc-from-docpath - - No idea Blank -DONE scrollkeeper-get-toc-from-id - - No idea blank -DONE scrollkeeper-install - - rarian-sk-install -DONE scrollkeeper-preinstall - - rarian-sk-install - - Looks like I've actually got to do the preinstall stuff properly -DONE scrollkeeper-rebuilddb - - Rebuilds the internal tree (rarian-sk-update) - rarian-sk-rebuild -DONE scrollkeeper-uninstall - - rarian-sk-install -DONE scrollkeeper-update - - Adds file to tree (rarian-sk-update) - - Now, on to stuff that needs doing within Rarian ---------------------------------------------- @@ -70,10 +7,7 @@ * Handle escape codes within strings as specified in Desktop Entry Spec -* Cleanup of code. Add comments and API reference documentation - -* Add more API. Yelp will need many new functions to fully utilise the power - of librarian +* Cleanup of code. Add comments and (better)API reference documentation * Add overview document, detailing how Rarian is built (for easy replacement) @@ -85,3 +19,7 @@ * Ensure it can migrate and handle all omf files * Add rarian-validate program to validate rarian files + +* Caching of info, man and document files on a per-user basis + +* Handle errors gracefully \ No newline at end of file diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/rarian-0.5.6/util/Makefile.am new/rarian-0.5.8/util/Makefile.am --- old/rarian-0.5.6/util/Makefile.am 2007-07-31 21:49:43.000000000 +0200 +++ new/rarian-0.5.8/util/Makefile.am 2007-08-13 22:31:46.000000000 +0200 @@ -79,49 +79,49 @@ install-exec-hook: if ENABLE_SK_COMPAT @echo Moving Files if needed - @if [[ -h $(DESTDIR)$(bindir)/scrollkeeper-config ]]; then rm $(DESTDIR)$(bindir)/scrollkeeper-config; \ - elif [[ -e $(DESTDIR)$(bindir)/scrollkeeper-config ]]; then \ + @if [ -h $(DESTDIR)$(bindir)/scrollkeeper-config ]; then rm $(DESTDIR)$(bindir)/scrollkeeper-config; \ + elif [ -e $(DESTDIR)$(bindir)/scrollkeeper-config ]; then \ mv $(DESTDIR)$(bindir)/scrollkeeper-config $(DESTDIR)$(bindir)/scrollkeeper-config.real; fi if ENABLE_EXTRACT - @if [[ -h $(DESTDIR)$(bindir)/scrollkeeper-extract ]]; then rm $(DESTDIR)$(bindir)/scrollkeeper-extract; \ - elif [[ -e $(DESTDIR)$(bindir)/scrollkeeper-extract ]]; then \ + @if [ -h $(DESTDIR)$(bindir)/scrollkeeper-extract ]; then rm $(DESTDIR)$(bindir)/scrollkeeper-extract; \ + elif [ -e $(DESTDIR)$(bindir)/scrollkeeper-extract ]; then \ mv $(DESTDIR)$(bindir)/scrollkeeper-extract $(DESTDIR)$(bindir)/scrollkeeper-extract.real; fi endif - @if [[ -h $(DESTDIR)$(bindir)/scrollkeeper-gen-seriesid ]]; then rm $(DESTDIR)$(bindir)/scrollkeeper-gen-seriesid; \ - elif [[ -e $(DESTDIR)$(bindir)/scrollkeeper-gen-seriesid ]]; then \ + @if [ -h $(DESTDIR)$(bindir)/scrollkeeper-gen-seriesid ]; then rm $(DESTDIR)$(bindir)/scrollkeeper-gen-seriesid; \ + elif [ -e $(DESTDIR)$(bindir)/scrollkeeper-gen-seriesid ]; then \ mv $(DESTDIR)$(bindir)/scrollkeeper-gen-seriesid $(DESTDIR)$(bindir)/scrollkeeper-gen-seriesid.real; fi - @if [[ -h $(DESTDIR)$(bindir)/scrollkeeper-get-cl ]]; then rm $(DESTDIR)$(bindir)/scrollkeeper-get-cl; \ - elif [[ -e $(DESTDIR)$(bindir)/scrollkeeper-get-cl ]]; then \ + @if [ -h $(DESTDIR)$(bindir)/scrollkeeper-get-cl ]; then rm $(DESTDIR)$(bindir)/scrollkeeper-get-cl; \ + elif [ -e $(DESTDIR)$(bindir)/scrollkeeper-get-cl ]; then \ mv $(DESTDIR)$(bindir)/scrollkeeper-get-cl $(DESTDIR)$(bindir)/scrollkeeper-get-cl.real; fi - @if [[ -h $(DESTDIR)$(bindir)/scrollkeeper-get-content-list ]]; then rm $(DESTDIR)$(bindir)/scrollkeeper-get-content-list; \ - elif [[ -e $(DESTDIR)$(bindir)/scrollkeeper-get-content-list ]]; then \ + @if [ -h $(DESTDIR)$(bindir)/scrollkeeper-get-content-list ]; then rm $(DESTDIR)$(bindir)/scrollkeeper-get-content-list; \ + elif [ -e $(DESTDIR)$(bindir)/scrollkeeper-get-content-list ]; then \ mv $(DESTDIR)$(bindir)/scrollkeeper-get-content-list $(DESTDIR)$(bindir)/scrollkeeper-get-content-list.real; fi - @if [[ -h $(DESTDIR)$(bindir)/scrollkeeper-get-extended-content-list ]]; then rm $(DESTDIR)$(bindir)/scrollkeeper-get-extended-content-list; \ - elif [[ -e $(DESTDIR)$(bindir)/scrollkeeper-get-extended-content-list ]]; then \ + @if [ -h $(DESTDIR)$(bindir)/scrollkeeper-get-extended-content-list ]; then rm $(DESTDIR)$(bindir)/scrollkeeper-get-extended-content-list; \ + elif [ -e $(DESTDIR)$(bindir)/scrollkeeper-get-extended-content-list ]; then \ mv $(DESTDIR)$(bindir)/scrollkeeper-get-extended-content-list $(DESTDIR)$(bindir)/scrollkeeper-get-extended-content-list.real; fi - @if [[ -h $(DESTDIR)$(bindir)/scrollkeeper-get-index-from-docpath ]]; then rm $(DESTDIR)$(bindir)/scrollkeeper-get-index-from-docpath; \ - elif [[ -e $(DESTDIR)$(bindir)/scrollkeeper-get-index-from-docpath ]]; then \ + @if [ -h $(DESTDIR)$(bindir)/scrollkeeper-get-index-from-docpath ]; then rm $(DESTDIR)$(bindir)/scrollkeeper-get-index-from-docpath; \ + elif [ -e $(DESTDIR)$(bindir)/scrollkeeper-get-index-from-docpath ]; then \ mv $(DESTDIR)$(bindir)/scrollkeeper-get-index-from-docpath $(DESTDIR)$(bindir)/scrollkeeper-get-index-from-docpath.real; fi - @if [[ -h $(DESTDIR)$(bindir)/scrollkeeper-get-toc-from-docpath ]]; then rm $(DESTDIR)$(bindir)/scrollkeeper-get-toc-from-docpath; \ - elif [[ -e $(DESTDIR)$(bindir)/scrollkeeper-get-toc-from-docpath ]]; then \ + @if [ -h $(DESTDIR)$(bindir)/scrollkeeper-get-toc-from-docpath ]; then rm $(DESTDIR)$(bindir)/scrollkeeper-get-toc-from-docpath; \ + elif [ -e $(DESTDIR)$(bindir)/scrollkeeper-get-toc-from-docpath ]; then \ mv $(DESTDIR)$(bindir)/scrollkeeper-get-toc-from-docpath $(DESTDIR)$(bindir)/scrollkeeper-get-toc-from-docpath.real; fi - @if [[ -h $(DESTDIR)$(bindir)/scrollkeeper-get-toc-from-id ]]; then rm $(DESTDIR)$(bindir)/scrollkeeper-get-toc-from-id; \ - elif [[ -e $(DESTDIR)$(bindir)/scrollkeeper-get-toc-from-id ]]; then \ + @if [ -h $(DESTDIR)$(bindir)/scrollkeeper-get-toc-from-id ]; then rm $(DESTDIR)$(bindir)/scrollkeeper-get-toc-from-id; \ + elif [ -e $(DESTDIR)$(bindir)/scrollkeeper-get-toc-from-id ]; then \ mv $(DESTDIR)$(bindir)/scrollkeeper-get-toc-from-id $(DESTDIR)$(bindir)/scrollkeeper-get-toc-from-id.real; fi - @if [[ -h $(DESTDIR)$(bindir)/scrollkeeper-install ]]; then rm $(DESTDIR)$(bindir)/scrollkeeper-install; \ - elif [[ -e $(DESTDIR)$(bindir)/scrollkeeper-install ]]; then \ + @if [ -h $(DESTDIR)$(bindir)/scrollkeeper-install ]; then rm $(DESTDIR)$(bindir)/scrollkeeper-install; \ + elif [ -e $(DESTDIR)$(bindir)/scrollkeeper-install ]; then \ mv $(DESTDIR)$(bindir)/scrollkeeper-install $(DESTDIR)$(bindir)/scrollkeeper-install.real; fi - @if [[ -h $(DESTDIR)$(bindir)/scrollkeeper-preinstall ]]; then rm $(DESTDIR)$(bindir)/scrollkeeper-preinstall; \ - elif [[ -e $(DESTDIR)$(bindir)/scrollkeeper-preinstall ]]; then \ + @if [ -h $(DESTDIR)$(bindir)/scrollkeeper-preinstall ]; then rm $(DESTDIR)$(bindir)/scrollkeeper-preinstall; \ + elif [ -e $(DESTDIR)$(bindir)/scrollkeeper-preinstall ]; then \ mv $(DESTDIR)$(bindir)/scrollkeeper-preinstall $(DESTDIR)$(bindir)/scrollkeeper-preinstall.real; fi - @if [[ -h $(DESTDIR)$(bindir)/scrollkeeper-rebuilddb ]]; then rm $(DESTDIR)$(bindir)/scrollkeeper-rebuilddb; \ - elif [[ -e $(DESTDIR)$(bindir)/scrollkeeper-rebuilddb ]]; then \ + @if [ -h $(DESTDIR)$(bindir)/scrollkeeper-rebuilddb ]; then rm $(DESTDIR)$(bindir)/scrollkeeper-rebuilddb; \ + elif [ -e $(DESTDIR)$(bindir)/scrollkeeper-rebuilddb ]; then \ mv $(DESTDIR)$(bindir)/scrollkeeper-rebuilddb $(DESTDIR)$(bindir)/scrollkeeper-rebuilddb.real; fi - @if [[ -h $(DESTDIR)$(bindir)/scrollkeeper-uninstall ]]; then rm $(DESTDIR)$(bindir)/scrollkeeper-uninstall; \ - elif [[ -e $(DESTDIR)$(bindir)/scrollkeeper-uninstall ]]; then \ + @if [ -h $(DESTDIR)$(bindir)/scrollkeeper-uninstall ]; then rm $(DESTDIR)$(bindir)/scrollkeeper-uninstall; \ + elif [ -e $(DESTDIR)$(bindir)/scrollkeeper-uninstall ]; then \ mv $(DESTDIR)$(bindir)/scrollkeeper-uninstall $(DESTDIR)$(bindir)/scrollkeeper-uninstall.real; fi - @if [[ -h $(DESTDIR)$(bindir)/scrollkeeper-update ]]; then rm $(DESTDIR)$(bindir)/scrollkeeper-update; \ - elif [[ -e $(DESTDIR)$(bindir)/scrollkeeper-update ]]; then \ + @if [ -h $(DESTDIR)$(bindir)/scrollkeeper-update ]; then rm $(DESTDIR)$(bindir)/scrollkeeper-update; \ + elif [ -e $(DESTDIR)$(bindir)/scrollkeeper-update ]; then \ mv $(DESTDIR)$(bindir)/scrollkeeper-update $(DESTDIR)$(bindir)/scrollkeeper-update.real; fi @cd $(DESTDIR)$(bindir); ln -s rarian-sk-config scrollkeeper-config if ENABLE_EXTRACT diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/rarian-0.5.6/util/rarian-example.c new/rarian-0.5.8/util/rarian-example.c --- old/rarian-0.5.6/util/rarian-example.c 2007-07-31 20:09:35.000000000 +0200 +++ new/rarian-0.5.8/util/rarian-example.c 2007-08-13 22:31:46.000000000 +0200 @@ -96,7 +96,7 @@ char **cats = rrn_info_get_categories (); char **iter = cats; - /* rrn_man_for_each ((RrnManForeachFunc) man_for_each, NULL); + rrn_man_for_each ((RrnManForeachFunc) man_for_each, NULL); while (iter && *iter) { printf ("Info category: %s\n", *iter); @@ -104,12 +104,12 @@ } rrn_info_for_each ((RrnInfoForeachFunc) info_for_each, NULL); - */ + rrn_for_each((RrnForeachFunc) for_each_cb, NULL); rrn_shutdown (); - /* rrn_info_shutdown (); + rrn_info_shutdown (); rrn_man_shutdown (); - */ + return 0; } diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/rarian-0.5.6/util/rarian-sk-config.in new/rarian-0.5.8/util/rarian-sk-config.in --- old/rarian-0.5.6/util/rarian-sk-config.in 2007-07-31 19:16:07.000000000 +0200 +++ new/rarian-0.5.8/util/rarian-sk-config.in 2007-08-13 22:31:46.000000000 +0200 @@ -1,4 +1,4 @@ -#!/bin/bash +#!@BASH@ # Yet another simple wrapper for scrollkeeper wierdness # This one emulates scrollkeeper-config, diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/rarian-0.5.6/util/rarian-sk-extract.in new/rarian-0.5.8/util/rarian-sk-extract.in --- old/rarian-0.5.6/util/rarian-sk-extract.in 2007-07-31 19:16:07.000000000 +0200 +++ new/rarian-0.5.8/util/rarian-sk-extract.in 2007-08-13 22:31:46.000000000 +0200 @@ -1,4 +1,4 @@ -#!/bin/bash +#!@BASH@ # Wrapper around xsltproc to mimic scrollkeeper-extract. # diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/rarian-0.5.6/util/rarian-sk-get-cl.cpp new/rarian-0.5.8/util/rarian-sk-get-cl.cpp --- old/rarian-0.5.6/util/rarian-sk-get-cl.cpp 2007-07-31 19:16:07.000000000 +0200 +++ new/rarian-0.5.8/util/rarian-sk-get-cl.cpp 2007-08-13 22:31:46.000000000 +0200 @@ -116,6 +116,8 @@ pParent->LinkEndChild (doc); } + + return 0; } void diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/rarian-0.5.6/util/rarian-sk-migrate.cpp new/rarian-0.5.8/util/rarian-sk-migrate.cpp --- old/rarian-0.5.6/util/rarian-sk-migrate.cpp 2007-07-31 19:16:07.000000000 +0200 +++ new/rarian-0.5.8/util/rarian-sk-migrate.cpp 2007-08-13 22:31:46.000000000 +0200 @@ -33,6 +33,7 @@ #include <rarian-reg-full.h> #include <stdio.h> +#include <sys/stat.h> #include <sys/types.h> #include <time.h> @@ -275,6 +276,7 @@ { DIR * dirp = NULL; struct dirent * dp = NULL; + struct stat buf; char *path = NULL; if (argc != 3 || access (argv[1], R_OK)) { @@ -285,7 +287,8 @@ dirp = opendir (argv[1]); while (1) { if ((dp = readdir(dirp)) != NULL) { - if (dp->d_type == DT_REG && !strncmp (dp->d_name, argv[2], strlen (argv[2]))) { + stat(dp->d_name,&buf); + if (buf.st_mode == S_IFREG && !strncmp (dp->d_name, argv[2], strlen (argv[2]))) { process_file (argv[1], dp->d_name); } } else { diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/rarian-0.5.6/util/rarian-sk-rebuild.in new/rarian-0.5.8/util/rarian-sk-rebuild.in --- old/rarian-0.5.6/util/rarian-sk-rebuild.in 2007-07-31 21:51:49.000000000 +0200 +++ new/rarian-0.5.8/util/rarian-sk-rebuild.in 2007-08-13 22:31:46.000000000 +0200 @@ -1,4 +1,4 @@ -#!/bin/bash +#!@BASH@ # Another simple wrapper script. This time for scrollkeeper-rebuilddb # This one is slightly more complex in that we have to run a command! diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/rarian-0.5.6/util/rarian-sk-update.in new/rarian-0.5.8/util/rarian-sk-update.in --- old/rarian-0.5.6/util/rarian-sk-update.in 2007-07-31 21:47:18.000000000 +0200 +++ new/rarian-0.5.8/util/rarian-sk-update.in 2007-08-13 22:31:46.000000000 +0200 @@ -1,4 +1,4 @@ -#!/bin/bash +#!@BASH@ # This script is designed to replace scrollkeeper-update # It iterates through all the directories specified using -o <dir_list> @@ -26,6 +26,7 @@ output_dir=${datadir}/help package_version=@PACKAGE_VERSION@ real_convert[0]=$convert_dir +skip_omf_translate=@ENABLE_OMF_READ@ # Print the version info for this file print_version() @@ -316,7 +317,7 @@ echo "Verbosity turned on" fi -if [ ! @ENABLE_OMF_READ@ ] +if [ $skip_omf_translate = 0 ] then split_omf_dirs ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org
participants (1)
-
root@Hilbert.suse.de