[MacPorts] #41705: gettext: build hangs (was: Install hangs with loop of recursive make invocations)
MacPorts
noreply at macports.org
Thu Dec 5 21:36:48 PST 2013
#41705: gettext: build hangs
----------------------+--------------------------
Reporter: info@… | Owner: ryandesign@…
Type: defect | Status: new
Priority: Normal | Milestone:
Component: ports | Version: 2.2.1
Resolution: | Keywords:
Port: gettext |
----------------------+--------------------------
Changes (by ryandesign@…):
* owner: macports-tickets@… => ryandesign@…
* port: => gettext
Old description:
> Trying to install expat and/or gettext hangs.
> The hang prevents me from completely updating outdated ports.
>
> The command
> $ sudo port install expat
> gets to building gettext:
> Deactivating expat @2.1.0_0+universal
> ---> Cleaning expat
> ---> Activating expat @2.1.0_0
> ---> Cleaning expat
> ---> Scanning binaries for linking errors: 100.0%
> ---> Found 1 broken file(s), matching files to ports
> ---> Found 1 broken port(s), determining rebuild order
> ---> Rebuilding in order
> gettext @0.18.1.1 +universal
> ---> Computing dependencies for gettext
> ---> Dependencies to be installed: expat
> ---> Deactivating expat @2.1.0_0
> ---> Cleaning expat
> ---> Activating expat @2.1.0_0+universal
> ---> Cleaning expat
> ---> Building get text
> This never ends.
> I hit this bug after self update, while running
> $ port upgrade outdated
>
> The build hangs in a recursive invocation of make that starts with:
> sh -c cd
> "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_devel_gettext/gettext/work/gettext-0.18.3.1-x86_64"
> && /usr/bin/make -j8 -w all
> and then continues via make executing a build task:
> /bin/sh -c fail=; if (target_option=k; case ${target_option-} in ?) ;; *)
> echo "am__make_running_with_option: internal error: invalid" "target
> option '${target_option-}' specified" >&2; exit 1;; esac; has_opt=no;
> sane_makeflags=$MAKEFLAGS; if test -n ' Makefile' && test -n '0'; then
> sane_makeflags=$MFLAGS; else case $MAKEFLAGS in *\\[\ \^I]*) bs=\\;
> sane_makeflags=`printf '%s\n' "$MAKEFLAGS" | sed "s/$bs$bs[$bs
> $bs^I]*//g"`;; esac; fi; skip_next=no; strip_trailopt () { flg=`printf
> '%s\n' "$flg" | sed "s/$1.*$//"`; }; for flg in $sane_makeflags; do test
> $skip_next = yes && { skip_next=no; continue; }; case $flg in *=*|--*)
> continue;; -*I) strip_trailopt 'I'; skip_next=yes;; -*I?*) strip_trailopt
> 'I';; -*O) strip_trailopt 'O'; skip_next=yes;; -*O?*) strip_trailopt
> 'O';; -*l) strip_trailopt 'l'; skip_next=yes;; -*l?*) strip_trailopt
> 'l';; -[dEDm]) skip_next=yes;; -[JT]) skip_next=yes;; esac; case $flg in
> *$target_option*) has_opt=yes; break;; esac; done; test $has_opt = yes);
> then failcom='fail=yes'; else failcom='exit 1'; fi; dot_seen=no;
> target=`echo all-recursive | sed s/-recursive//`; case "all-recursive" in
> distclean-* | maintainer-clean-*) list='gnulib-local gettext-runtime
> gettext-tools' ;; *) list='gnulib-local gettext-runtime gettext-tools'
> ;; esac; for subdir in $list; do echo "Making $target in $subdir"; if
> test "$subdir" = "."; then dot_seen=yes; local_target="$target-
> am"; else local_target="$target"; fi;
> (CDPATH="${ZSH_VERSION+.}:" && cd $subdir &&
> /Developer/Applications/Xcode.app/Contents/Developer/usr/bin/make
> $local_target) || eval $failcom; done; if test "$dot_seen" = "no"; then
> /Developer/Applications/Xcode.app/Contents/Developer/usr/bin/make
> "$target-am" || exit 1; fi; test -z "$fail"
>
> I have log file attached. I killed one of recursive invocations, as shown
> in the log in attempt to end the build.
>
> system:
> Intel Core i7 @2.3GHz
> OS X 10.9 (13A3017)
> Darwin 13.0.2
New description:
Trying to install expat and/or gettext hangs.
The hang prevents me from completely updating outdated ports.
The command
{{{
$ sudo port install expat
}}}
gets to building gettext:
{{{
Deactivating expat @2.1.0_0+universal
---> Cleaning expat
---> Activating expat @2.1.0_0
---> Cleaning expat
---> Scanning binaries for linking errors: 100.0%
---> Found 1 broken file(s), matching files to ports
---> Found 1 broken port(s), determining rebuild order
---> Rebuilding in order
gettext @0.18.1.1 +universal
---> Computing dependencies for gettext
---> Dependencies to be installed: expat
---> Deactivating expat @2.1.0_0
---> Cleaning expat
---> Activating expat @2.1.0_0+universal
---> Cleaning expat
---> Building get text
}}}
This never ends.
I hit this bug after self update, while running
{{{
$ port upgrade outdated
}}}
The build hangs in a recursive invocation of make that starts with:
{{{
sh -c cd
"/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_devel_gettext/gettext/work/gettext-0.18.3.1-x86_64"
&& /usr/bin/make -j8 -w all
}}}
and then continues via make executing a build task:
{{{
/bin/sh -c fail=; if (target_option=k; case ${target_option-} in ?) ;; *)
echo "am__make_running_with_option: internal error: invalid" "target
option '${target_option-}' specified" >&2; exit 1;; esac; has_opt=no;
sane_makeflags=$MAKEFLAGS; if test -n ' Makefile' && test -n '0'; then
sane_makeflags=$MFLAGS; else case $MAKEFLAGS in *\\[\ \^I]*) bs=\\;
sane_makeflags=`printf '%s\n' "$MAKEFLAGS" | sed "s/$bs$bs[$bs
$bs^I]*//g"`;; esac; fi; skip_next=no; strip_trailopt () { flg=`printf
'%s\n' "$flg" | sed "s/$1.*$//"`; }; for flg in $sane_makeflags; do test
$skip_next = yes && { skip_next=no; continue; }; case $flg in *=*|--*)
continue;; -*I) strip_trailopt 'I'; skip_next=yes;; -*I?*) strip_trailopt
'I';; -*O) strip_trailopt 'O'; skip_next=yes;; -*O?*) strip_trailopt 'O';;
-*l) strip_trailopt 'l'; skip_next=yes;; -*l?*) strip_trailopt 'l';;
-[dEDm]) skip_next=yes;; -[JT]) skip_next=yes;; esac; case $flg in
*$target_option*) has_opt=yes; break;; esac; done; test $has_opt = yes);
then failcom='fail=yes'; else failcom='exit 1'; fi; dot_seen=no;
target=`echo all-recursive | sed s/-recursive//`; case "all-recursive" in
distclean-* | maintainer-clean-*) list='gnulib-local gettext-runtime
gettext-tools' ;; *) list='gnulib-local gettext-runtime gettext-tools'
;; esac; for subdir in $list; do echo "Making $target in $subdir"; if
test "$subdir" = "."; then dot_seen=yes; local_target="$target-
am"; else local_target="$target"; fi;
(CDPATH="${ZSH_VERSION+.}:" && cd $subdir &&
/Developer/Applications/Xcode.app/Contents/Developer/usr/bin/make
$local_target) || eval $failcom; done; if test "$dot_seen" = "no"; then
/Developer/Applications/Xcode.app/Contents/Developer/usr/bin/make
"$target-am" || exit 1; fi; test -z "$fail"
}}}
I have log file attached. I killed one of recursive invocations, as shown
in the log in attempt to end the build.
system:
* Intel Core i7 @2.3GHz
* OS X 10.9 (13A3017)
* Darwin 13.0.2
--
Comment:
Please remember to use WikiFormatting and to preview before submitting.
gettext builds fine for me. How long did you wait? It is a large package
and does take awhile to build. Please `sudo port clean gettext` and try
again. I tested rebuilding gettext +universal just now on my 2.6GHz 4-core
Core i7 MacBook Pro with OS X 10.9; it took 9 minutes. Since your CPU is
slightly slower, wait a little longer. If you have fewer cores, or a hard
disk instead of an SSD, wait longer.
Note that when you typed `sudo port install expat` above, MacPorts
deactivated the universal copy of expat you already had installed and
activated the non-universal copy of expat you already had installed. Then
it ran rev-upgrade which checks for broken packages, which found that
gettext was broken (because gettext was installed universal, and gettext
requires expat, and the architectures must match), so it re-activated the
universal copy of expat before trying to rebuild gettext. In fact,
rebuilding gettext might not be necessary at all; possibly the only reason
it was marked as broken was because you de-universalized its expat
dependency.
What does `port outdated` show now? Does `sudo port rev-upgrade` still try
to rebuild gettext or is it ok now?
--
Ticket URL: <https://trac.macports.org/ticket/41705#comment:1>
MacPorts <http://www.macports.org/>
Ports system for OS X
More information about the macports-tickets
mailing list