[pacman-dev] [PATCH] [RFC] makepkg: clean-up of output messages

Dan McGee dpmcgee at gmail.com
Wed Jun 22 12:13:08 EDT 2011


On Wed, Jun 22, 2011 at 3:54 AM, Allan McRae <allan at archlinux.org> wrote:
> There was a lot of inconsistency in how strings that should not be
> translated (program names, option flags, PKGBUILD directives, etc) were
> handled. This patch moves them all outside the gettext invocation for
> consistency and to prevent accidental translation.
>
> Note that some of these may need reverted if they cause difficulties in
> translation due to gettext usage in bash not taking positional parameters
> for arguments. A quick survey of current translations idicates that this
"indicates"
> issue will be rare.  Also, we should be able to catch these before a full
> string freeze given we are going to probably need a "developer preview"
> release before the next release series.
This seems reasonable. Gettext pisses me off a lot here that it can't
support these, almost tempted to say we could write a wrapper function
but that seems overkill.

Do you want to do the message catalog split to possibly make catching
these errors easier?

> Signed-off-by: Allan McRae <allan at archlinux.org>
> ---
>  scripts/makepkg.sh.in |  102 ++++++++++++++++++++++++------------------------
>  1 files changed, 51 insertions(+), 51 deletions(-)
>
> diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
> index 4f99543..7f84b53 100644
> --- a/scripts/makepkg.sh.in
> +++ b/scripts/makepkg.sh.in
> @@ -183,7 +183,7 @@ trap 'trap_exit "$(gettext "Aborted by user! Exiting...")"' INT
>  trap 'trap_exit "$(gettext "An unknown error has occurred. Exiting...")"' ERR
>
>  enter_fakeroot() {
> -       msg "$(gettext "Entering fakeroot environment...")"
> +       msg "$(gettext "Entering %s environment...")" "fakeroot"
>
>        if [[ -n $newpkgver ]]; then
>                fakeroot -- $0 --forcever $newpkgver -F "${ARGLIST[@]}" || exit $?
> @@ -574,7 +574,7 @@ generate_checksums() {
>        plain ""
>
>        if ! type -p openssl >/dev/null; then
> -               error "$(gettext "Cannot find openssl.")"
> +               error "$(gettext "Cannot find the %s binary required for generating sourcefile checksums.")" "openssl"
>                exit 1 # $E_MISSING_PROGRAM
>        fi
>
> @@ -926,7 +926,7 @@ tidy_install() {
>        fi
>
>        if [[ $(check_option libtool) = "n" ]]; then
> -               msg2 "$(gettext "Removing libtool .la files...")"
> +               msg2 "$(gettext "Removing "%s" files...")" "libtool"
>                find . ! -type d -name "*.la" -exec rm -f -- '{}' \;
>        fi
>
> @@ -1009,7 +1009,7 @@ write_pkginfo() {
>        local size="$(@DUPATH@ -sk)"
>        size="$(( ${size%%[^0-9]*} * 1024 ))"
>
> -       msg2 "$(gettext "Generating .PKGINFO file...")"
> +       msg2 "$(gettext "Generating %s file...")" ".PKGINFO"
>        echo "# Generated by makepkg $myver"
>        if (( INFAKEROOT )); then
>                echo "# using $(fakeroot -v)"
> @@ -1081,7 +1081,7 @@ write_pkginfo() {
>        # warn if license array is not present or empty
>        if [[ -z $license ]]; then
>                warning "$(gettext "Please add a license line to your %s!")" "$BUILDSCRIPT"
> -               plain "$(gettext "Example for GPL\'ed software: license=('GPL').")"
> +               plain "$(gettext "Example for GPL\'ed software: %s.")" "license=('GPL')"
>        fi
>  }
>
> @@ -1092,7 +1092,7 @@ check_package() {
>        local file
>        for file in "${backup[@]}"; do
>                if [[ ! -f $file ]]; then
> -                       warning "$(gettext "Backup entry file not in package : %s")" "$file"
> +                       warning "$(gettext "%s entry file not in package : %s")" "backup" "$file"
>                fi
>        done
>
> @@ -1108,7 +1108,7 @@ check_package() {
>
>  create_package() {
>        if [[ ! -d $pkgdir ]]; then
> -               error "$(gettext "Missing pkg/ directory.")"
> +               error "$(gettext "Missing %s directory.")" "pkg/"
>                plain "$(gettext "Aborting...")"
>                exit 1 # $E_MISSING_PKGDIR
>        fi
> @@ -1296,9 +1296,9 @@ install_package() {
>        (( ! INSTALL )) && return
>
>        if (( ! SPLITPKG )); then
> -               msg "$(gettext "Installing package %s with %s -U...")" "$pkgname" "$PACMAN"
> +               msg "$(gettext "Installing package %s with %s...")" "$pkgname" "$PACMAN -U"
>        else
> -               msg "$(gettext "Installing %s package group with %s -U...")" "$pkgbase" "$PACMAN"
> +               msg "$(gettext "Installing %s package group with %s...")" "$pkgbase" "$PACMAN -U"
>        fi
>
>        local fullver pkg pkglist
> @@ -1359,7 +1359,7 @@ check_sanity() {
>                        if (( ! IGNOREARCH )); then
>                                error "$(gettext "%s is not available for the '%s' architecture.")" "$pkgbase" "$CARCH"
>                                plain "$(gettext "Note that many packages may need a line added to their %s")" "$BUILDSCRIPT"
> -                               plain "$(gettext "such as arch=('%s').")" "$CARCH"
> +                               plain "$(gettext "such as %s.")" "arch=('$CARCH')"
>                                ret=1
>                        fi
>                fi
> @@ -1370,7 +1370,7 @@ check_sanity() {
>                sed -e "s/provides=/provides_list+=/" -e "s/#.*//" -e 's/\\$//')
>        for i in ${provides_list[@]}; do
>                if [[ $i != ${i//</} || $i != ${i//>/} ]]; then
> -                       error "$(gettext "Provides array cannot contain comparison (< or >) operators.")"
> +                       error "$(gettext "%s array cannot contain comparison (< or >) operators.")" "provides"
>                        ret=1
>                fi
>        done
> @@ -1380,7 +1380,7 @@ check_sanity() {
>                sed -e "s/backup=/backup_list+=/" -e "s/#.*//" -e 's/\\$//')
>        for i in "${backup_list[@]}"; do
>                if [[ ${i:0:1} = "/" ]]; then
> -                       error "$(gettext "Backup entry should not contain leading slash : %s")" "$i"
> +                       error "$(gettext "%s entry should not contain leading slash : %s")" "backup" "$i"
>                        ret=1
>                fi
>        done
> @@ -1391,7 +1391,7 @@ check_sanity() {
>        for i in "${optdepends_list[@]}"; do
>                local pkg=${i%%:*}
>                if [[ ! $pkg =~ ^[[:alnum:]\>\<\=\.\+\_\-]+$ ]]; then
> -                       error "$(gettext "Invalid syntax for optdepend : '%s'")" "$i"
> +                       error "$(gettext "Invalid syntax for %s : '%s'")" "optdepend" "$i"
>                        ret=1
>                fi
>        done
> @@ -1422,7 +1422,7 @@ check_sanity() {
>                        fi
>                done
>                if (( ! known )); then
> -                       error "$(gettext "options array contains unknown option '%s'")" "$i"
> +                       error "$(gettext "%s array contains unknown option '%s'")" "options" "$i"
>                        valid_options=0
>                fi
>        done
> @@ -1433,7 +1433,7 @@ check_sanity() {
>        if (( ${#pkgname[@]} > 1 )); then
>                for i in ${pkgname[@]}; do
>                        if ! declare -f package_${i} >/dev/null; then
> -                               error "$(gettext "missing package function for split package '%s'")" "$i"
> +                               error "$(gettext "Missing %s function for split package '%s'")" "package_$i()" "$i"
>                                ret=1
>                        fi
>                done
> @@ -1441,7 +1441,7 @@ check_sanity() {
>
>        for i in ${PKGLIST[@]}; do
>                if ! in_array $i ${pkgname[@]}; then
> -                       error "$(gettext "requested package %s is not provided in %s")" "$i" "$BUILDFILE"
> +                       error "$(gettext "Requested package %s is not provided in %s")" "$i" "$BUILDFILE"
>                        ret=1
>                fi
>        done
> @@ -1630,11 +1630,11 @@ usage() {
>        printf "$(gettext "Usage: %s [options]")\n" "$0"
>        echo
>        echo "$(gettext "Options:")"
> -       printf "$(gettext "  -A, --ignorearch Ignore incomplete arch field in %s")\n" "$BUILDSCRIPT"
> +       printf "$(gettext "  -A, --ignorearch Ignore incomplete %s field in %s")\n" "arch" "$BUILDSCRIPT"
>        echo "$(gettext "  -c, --clean      Clean up work files after build")"
>        echo "$(gettext "  -C, --cleancache Clean up source files from the cache")"
>        echo "$(gettext "  -d, --nodeps     Skip all dependency checks")"
> -       echo "$(gettext "  -e, --noextract  Do not extract source files (use existing src/ dir)")"
> +       printf "$(gettext "  -e, --noextract  Do not extract source files (use existing %s dir)")\n" "src/"
>        echo "$(gettext "  -f, --force      Overwrite existing package")"
>        echo "$(gettext "  -g, --geninteg   Generate integrity checks for source files")"
>        echo "$(gettext "  -h, --help       Show this help message and exit")"
> @@ -1645,26 +1645,26 @@ usage() {
>        printf "$(gettext "  -p <file>        Use an alternate build script (instead of '%s')")\n" "$BUILDSCRIPT"
>        echo "$(gettext "  -r, --rmdeps     Remove installed dependencies after a successful build")"
>        echo "$(gettext "  -R, --repackage  Repackage contents of the package without rebuilding")"
> -       echo "$(gettext "  -s, --syncdeps   Install missing dependencies with pacman")"
> +       printf "$(gettext "  -s, --syncdeps   Install missing dependencies with %s")\n" "pacman"
>        echo "$(gettext "  --allsource      Generate a source-only tarball including downloaded sources")"
> -       echo "$(gettext "  --asroot         Allow makepkg to run as root user")"
> -       printf "$(gettext "  --check          Run the check() function in the %s")\n" "$BUILDSCRIPT"
> +       printf "$(gettext "  --asroot         Allow %s to run as root user")\n" "makepkg"
> +       printf "$(gettext "  --check          Run the %s function in the %s")\n" "check()" "$BUILDSCRIPT"
>        printf "$(gettext "  --config <file>  Use an alternate config file (instead of '%s')")\n" "$confdir/makepkg.conf"
>        printf "$(gettext "  --holdver        Prevent automatic version bumping for development %ss")\n" "$BUILDSCRIPT"
> -       echo "$(gettext "  --key <key>      Specify a key to use for gpg signing instead of the default")"
> -       printf "$(gettext "  --nocheck        Do not run the check() function in the %s")\n" "$BUILDSCRIPT"
> +       printf "$(gettext "  --key <key>      Specify a key to use for %s signing instead of the default")\n" "gpg"
> +       printf "$(gettext "  --nocheck        Do not run the %s function in the %s")\n" "check()" "$BUILDSCRIPT"
>        echo "$(gettext "  --nosign         Do not create a signature for the package")"
>        echo "$(gettext "  --pkg <list>     Only build listed packages from a split package")"
> -       echo "$(gettext "  --sign           Sign the resulting package with gpg")"
> +       printf "$(gettext "  --sign           Sign the resulting package with %s")\n" "gpg"
>        echo "$(gettext "  --skipinteg      Do not fail when integrity checks are missing")"
>        echo "$(gettext "  --source         Generate a source-only tarball without downloaded sources")"
>        echo
> -       echo "$(gettext "These options can be passed to pacman:")"
> +       printf "$(gettext "These options can be passed to %s:")\n" "pacman"
>        echo
>        echo "$(gettext "  --noconfirm      Do not ask for confirmation when resolving dependencies")"
>        echo "$(gettext "  --noprogressbar  Do not show a progress bar when downloading files")"
>        echo
> -       printf "$(gettext "If -p is not specified, makepkg will look for '%s'")\n" "$BUILDSCRIPT"
> +       printf "$(gettext "If %s is not specified, %s will look for '%s'")\n" "-p" "makepkg" "$BUILDSCRIPT"
>        echo
>  }
>
> @@ -1843,7 +1843,7 @@ GPGKEY=${_GPGKEY:-$GPGKEY}
>
>  if (( HOLDVER )) && [[ -n $FORCE_VER ]]; then
>        # The '\\0' is here to prevent gettext from thinking --holdver is an option
> -       error "$(gettext "\\0--holdver and --forcever cannot both be specified" )"
> +       error "$(gettext "\\0%s and %s cannot both be specified" )" "--holdver" "--forcever"
>        exit 1
>  fi
>
> @@ -1873,7 +1873,7 @@ if (( CLEANCACHE )); then
>        else
>                # $SRCDEST is $startdir, two possibilities
>                error "$(gettext "Source destination must be defined in %s.")" "$MAKEPKG_CONF"
> -               plain "$(gettext "In addition, please run makepkg -C outside of your cache directory.")"
> +               plain "$(gettext "In addition, please run %s outside of your cache directory.")" "makepkg -C"
>                exit 1
>        fi
>  fi
> @@ -1881,24 +1881,24 @@ fi
>  if (( ! INFAKEROOT )); then
>        if (( EUID == 0 && ! ASROOT )); then
>                # Warn those who like to live dangerously.
> -               error "$(gettext "Running makepkg as root is a BAD idea and can cause")"
> +               error "$(gettext "Running %s as root is a BAD idea and can cause")" "makepkg"
>                plain "$(gettext "permanent, catastrophic damage to your system. If you")"
> -               plain "$(gettext "wish to run as root, please use the --asroot option.")"
> +               plain "$(gettext "wish to run as root, please use the %s option.")" "--asroot"
>                exit 1 # $E_USER_ABORT
>        elif (( EUID > 0 && ASROOT )); then
>                # Warn those who try to use the --asroot option when they are not root
> -               error "$(gettext "The --asroot option is meant for the root user only.")"
> -               plain "$(gettext "Please rerun makepkg without the --asroot flag.")"
> +               error "$(gettext "The %s option is meant for the root user only.")" "--asroot"
> +               plain "$(gettext "Please rerun %s without the %s flag.")" "makepkg" "--asroot"
>                exit 1 # $E_USER_ABORT
>        elif (( EUID > 0 )) && [[ $(check_buildenv fakeroot) != "y" ]]; then
> -               warning "$(gettext "Running makepkg as an unprivileged user will result in non-root")"
> -               plain "$(gettext "ownership of the packaged files. Try using the fakeroot environment by")"
> -               plain "$(gettext "placing 'fakeroot' in the BUILDENV array in %s.")" "$MAKEPKG_CONF"
> +               warning "$(gettext "Running %s as an unprivileged user will result in non-root")" "makepkg"
> +               plain "$(gettext "ownership of the packaged files. Try using the %s environment by")" "fakeroot"
> +               plain "$(gettext "placing %s in the %s array in %s.")" "'fakeroot'" "BUILDENV" "$MAKEPKG_CONF"
>                sleep 1
>        fi
>  else
>        if [[ -z $FAKEROOTKEY ]]; then
> -               error "$(gettext "Do not use the '-F' option. This option is only for use by makepkg.")"
> +               error "$(gettext "Do not use the %s option. This option is only for use by %s.")" "'-F'" "makepkg"
>                exit 1 # TODO: error code
>        fi
>  fi
> @@ -1927,7 +1927,7 @@ if [[ ! -f $BUILDFILE ]]; then
>  else
>        crlftest=$(file "$BUILDFILE" | grep -F 'CRLF' || true)
>        if [[ -n $crlftest ]]; then
> -               error "$(gettext "%s contains CRLF characters and cannot be sourced.")" "$BUILDFILE"
> +               error "$(gettext "%s contains %s characters and cannot be sourced.")" "$BUILDFILE" "CRLF"
>                exit 1
>        fi
>
> @@ -1995,7 +1995,7 @@ fi
>  if [[ $SIGNPKG == 'y' ]]; then
>        if ! gpg --list-key ${GPGKEY} &>/dev/null; then
>                if [[ ! -z $GPGKEY ]]; then
> -                       error "$(gettext "The key ${GPGKEY} does not exist in your keyring.")"
> +                       error "$(gettext "The key %s does not exist in your keyring.")" "${GPGKEY}"
>                else
>                        error "$(gettext "There is no key in your keyring.")"
>                fi
> @@ -2014,7 +2014,7 @@ if (( ! SPLITPKG )); then
>                        install_package
>                        exit $?
>                else
> -                       error "$(gettext "A package has already been built. (use -f to overwrite)")"
> +                       error "$(gettext "A package has already been built. (use %s to overwrite)")" "-f"
>                        exit 1
>                fi
>        fi
> @@ -2038,12 +2038,12 @@ else
>                                install_package
>                                exit $?
>                        else
> -                               error "$(gettext "The package group has already been built. (use -f to overwrite)")"
> +                               error "$(gettext "The package group has already been built. (use %s to overwrite)")" "-f"
>                                exit 1
>                        fi
>                fi
>                if (( somepkgbuilt )); then
> -                       error "$(gettext "Part of the package group has already been built. (use -f to overwrite)")"
> +                       error "$(gettext "Part of the package group has already been built. (use %s to overwrite)")" "-f"
>                        exit 1
>                fi
>        fi
> @@ -2054,7 +2054,7 @@ fi
>  if (( INFAKEROOT )); then
>        if (( SOURCEONLY )); then
>                create_srcpackage
> -               msg "$(gettext "Leaving fakeroot environment.")"
> +               msg "$(gettext "Leaving %s environment.")" "fakeroot"
>                exit 0 # $E_OK
>        fi
>
> @@ -2067,7 +2067,7 @@ if (( INFAKEROOT )); then
>                                        tidy_install
>                                fi
>                        else
> -                               warning "$(gettext "Repackaging without the use of a package() function is deprecated.")"
> +                               warning "$(gettext "Repackaging without the use of a %s function is deprecated.")" "package()"
>                                plain "$(gettext "File permissions may not be preserved.")"
>                        fi
>                else
> @@ -2079,7 +2079,7 @@ if (( INFAKEROOT )); then
>                run_split_packaging
>        fi
>
> -       msg "$(gettext "Leaving fakeroot environment.")"
> +       msg "$(gettext "Leaving %s environment.")" "fakeroot"
>        exit 0 # $E_OK
>  fi
>
> @@ -2090,7 +2090,7 @@ msg "$(gettext "Making package: %s")" "$pkgbase $fullver ($(date))"
>  if (( SOURCEONLY )); then
>        if [[ -f $SRCPKGDEST/${pkgbase}-${fullver}${SRCEXT} ]] \
>             && (( ! FORCE )); then
> -               error "$(gettext "A source package has already been built. (use -f to overwrite)")"
> +               error "$(gettext "A source package has already been built. (use %s to overwrite)")" "-f"
>                exit 1
>        fi
>
> @@ -2150,7 +2150,7 @@ elif type -p "${PACMAN%% *}" >/dev/null; then
>                exit 1
>        fi
>  else
> -       warning "$(gettext "%s was not found in PATH; skipping dependency checks.")" "${PACMAN%% *}"
> +       warning "$(gettext "%s was not found in %s; skipping dependency checks.")" "${PACMAN%% *}" "PATH"
>  fi
>
>  # ensure we have a sane umask set
> @@ -2162,9 +2162,9 @@ chmod a-s "$srcdir"
>  cd "$srcdir"
>
>  if (( NOEXTRACT )); then
> -       warning "$(gettext "Skipping source retrieval        -- using existing src/ tree")"
> -       warning "$(gettext "Skipping source integrity checks -- using existing src/ tree")"
> -       warning "$(gettext "Skipping source extraction       -- using existing src/ tree")"
> +       warning "$(gettext "Skipping source retrieval        -- using existing %s tree")" "src/"
> +       warning "$(gettext "Skipping source integrity checks -- using existing %s tree")" "src/"
> +       warning "$(gettext "Skipping source extraction       -- using existing %s tree")" "src/"
>
>        if (( NOEXTRACT )) && [[ -z $(ls "$srcdir" 2>/dev/null) ]]; then
>                error "$(gettext "The source directory is empty, there is nothing to build!")"
> @@ -2194,7 +2194,7 @@ if (( NOBUILD )); then
>  else
>        # check for existing pkg directory; don't remove if we are repackaging
>        if [[ -d $pkgdir ]] && (( ! REPKG || PKGFUNC || SPLITPKG )); then
> -               msg "$(gettext "Removing existing pkg/ directory...")"
> +               msg "$(gettext "Removing existing %s directory...")" "pkg/"
>                rm -rf "$pkgdir"
>        fi
>        mkdir -p "$pkgdir"
> @@ -2216,7 +2216,7 @@ else
>                                if (( ! REPKG )); then
>                                        tidy_install
>                                else
> -                                       warning "$(gettext "Repackaging without the use of a package() function is deprecated.")"
> +                                       warning "$(gettext "Repackaging without the use of a %s" function is deprecated.")" "package()"
>                                        plain "$(gettext "File permissions may not be preserved.")"
>                                fi
>                        fi
> --
> 1.7.5.4
>
>
>


More information about the pacman-dev mailing list