[OE-core] [PATCH 1/4] scripts/postinst-intercepts: add update_info_dir

Hongxu Jia hongxu.jia at windriver.com
Sat Oct 11 02:40:51 UTC 2014


On 09/25/2014 02:31 PM, Hongxu Jia wrote:
> We need to run it after all packages have been installed. Here is details:
>
> NAME
>    update_info_dir - update or create index file from all installed
>    info files in directory
>
> SYNOPSIS
>    update_info_dir [options] [directory]
>
> DESCRIPTION
>    Update, or create, the index file dir of available documentation
>    in $D/${infodir} (the default) or in given DIRECTORY. The index
>    file info is the directory is usually presented by info browsers
>    on startup.
>
> OPTIONS
>    -h,--help
>      Display help and exit.
>
> SEE ALSO
>    emacs(1) info(1) install-info(1)
>
> AUTHOR
>    This manual page was written by Norbert Preining <preining at logic.at>,
>    for the Debian GNU/Linux system (but may be used by others). This
>    manual page was written for the Debian GNU/Linux distribution because
>    the original script was designed  for  Debian  packaging system.
>
> Signed-off-by: Norbert Preining <preining at logic.at>
>
> Backport update-info-dir from ubuntu 1404, and add xz/bz2 compression support
>
> [YOCTO #6751]
>
> Signed-off-by: Hongxu Jia <hongxu.jia at windriver.com>
> ---
>   scripts/postinst-intercepts/update_info_dir | 77 +++++++++++++++++++++++++++++
>   1 file changed, 77 insertions(+)
>   create mode 100644 scripts/postinst-intercepts/update_info_dir
>
> diff --git a/scripts/postinst-intercepts/update_info_dir b/scripts/postinst-intercepts/update_info_dir
> new file mode 100644
> index 0000000..5ddbc39
> --- /dev/null
> +++ b/scripts/postinst-intercepts/update_info_dir
> @@ -0,0 +1,77 @@
> +#!/bin/bash
> +# update-info-dir
> +# create a dir file from all installed info files
> +# Copyright 2009 Norbert Preining
> +# GPLv2
> +
> +INFODIR=$D${infodir}
> +
> +set -e
> +
> +#
> +# since user's environment is taken over into root account when sudo-ing
> +# we don't want that one's user LANGUAGE setting changes the messages in
> +# the dir file. Force it to C. See bug #536476
> +LANGUAGE="C"
> +LANG="C"
> +
> +Help ()
> +{
> +    echo "\
> +SYNOPSIS: update-info-dir [-h,--help] [info-directory]
> +
> +(re-)creates the index of available documentation in info format
> +(the file /usr/share/info/dir) which is usually presented by info browsers
> +on startup."
> +
> +    exit 0
> +}
> +
> +
> +if [ "$1" = "-h" ] || [ "$1" == "--help" ]; then
> +    Help
> +fi
> +
> +if [ -n "$1" ] ; then
> +  INFODIR="$1"
> +fi
> +
> +if [ ! -d "$INFODIR" ] ; then
> +  echo "Not a directory: $INFODIR."
> +  exit 0
> +fi
> +
> +if [ -r "$INFODIR/dir" ] ; then
> +  rm -f "$INFODIR/dir.old"
> +  cp $INFODIR/dir $INFODIR/dir.old
> +fi
> +
> +# we have to remove the dir file not make ginstall-info being surprised
> +rm -f "$INFODIR/dir"
> +
> +errors=0
> +find "$INFODIR" -type f | while read file ; do
> +  case $file in
> +    */dir|*/dir.old| \
> +    *-[0-9]|*-[0-9].gz|*-[0-9].xz|*-[0-9].bz2| \
> +    *-[1-9][0-9]|*-[1-9][0-9].gz|*-[1-9][0-9].xz|*-[1-9][0-9].bz2| \
> +    *.png)
> +      # these files are ignored
> +      continue
> +      ;;
> +    *)
> +      ${STAGING_BINDIR_NATIVE}/install-info "$file" "$INFODIR/dir" || {
> +        errors=$[errors+1]

It is bashism, I will improve it in V4

//Hongxu


> +      }
> +      ;;
> +  esac
> +done
> +
> +if [ $errors -gt 0 ] ; then
> +  echo "Updating the index of info documentation produced $errors errors."
> +  exit 1
> +fi
> +
> +exit 0
> +
> +# vim:set expandtab tabstop=2: #




More information about the Openembedded-core mailing list