Opened 8 weeks ago

Closed 8 weeks ago

#60487 closed defect (fixed)

poedit: autoconf: command not found

Reported by: ryandesign (Ryan Schmidt) Owned by: l2dy (Zero King)
Priority: Normal Milestone:
Component: ports Version: 2.6.2
Keywords: Cc:
Port: poedit

Description

poedit fails to build on all OS versions except 10.14. Don't know why 10.14 is the exception, but on 10.15 we get this:

The following build commands failed:
	PhaseScriptExecution Ninja\ Build /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_editors_poedit/poedit/work/poedit-2.3.1/build/Poedit.build/Release/deps.gettext.build/Script-B2C129D921C6CBAF004364B2.sh
(1 failure)

Earlier in the log we see:

    /bin/sh -c /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_editors_poedit/poedit/work/poedit-2.3.1/build/Poedit.build/Release/deps.gettext.build/Script-B2C129D921C6CBAF004364B2.sh
[0/2] Downloading https://ftp.gnu.org/pub/gnu/gettext/gettext-0.20.2.tar.gz...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  0 22.6M    0  192k    0     0   284k      0  0:01:21 --:--:--  0:01:21  284k
  9 22.6M    9 2192k    0     0  1324k      0  0:00:17  0:00:01  0:00:16 1323k
 20 22.6M   20 4672k    0     0  1759k      0  0:00:13  0:00:02  0:00:11 1759k
 30 22.6M   30 7040k    0     0  1930k      0  0:00:11  0:00:03  0:00:08 1929k
 39 22.6M   39 9152k    0     0  1969k      0  0:00:11  0:00:04  0:00:07 1969k
 46 22.6M   46 10.4M    0     0  1902k      0  0:00:12  0:00:05  0:00:07 2121k
 51 22.6M   51 11.6M    0     0  1794k      0  0:00:12  0:00:06  0:00:06 1950k
 56 22.6M   56 12.7M    0     0  1706k      0  0:00:13  0:00:07  0:00:06 1678k
 61 22.6M   61 13.8M    0     0  1645k      0  0:00:14  0:00:08  0:00:06 1437k
 66 22.6M   66 15.0M    0     0  1593k      0  0:00:14  0:00:09  0:00:05 1243k
 71 22.6M   71 16.1M    0     0  1550k      0  0:00:14  0:00:10  0:00:04 1153k
 75 22.6M   75 17.0M    0     0  1494k      0  0:00:15  0:00:11  0:00:04 1096k
 78 22.6M   78 17.8M    0     0  1439k      0  0:00:16  0:00:12  0:00:04 1035k
 81 22.6M   81 18.4M    0     0  1374k      0  0:00:16  0:00:13  0:00:03  915k
 85 22.6M   85 19.2M    0     0  1345k      0  0:00:17  0:00:14  0:00:03  869k
 89 22.6M   89 20.2M    0     0  1322k      0  0:00:17  0:00:15  0:00:02  837k
 93 22.6M   93 21.1M    0     0  1297k      0  0:00:17  0:00:16  0:00:01  844k
 97 22.6M   97 22.0M    0     0  1279k      0  0:00:18  0:00:17  0:00:01  869k
100 22.6M  100 22.6M    0     0  1280k      0  0:00:18  0:00:18 --:--:--  982k
[1/2] Building deps/gettext...
note: ⋯  rm -rf "/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_editors_poedit/poedit/work/poedit-2.3.1/build/Deps.build/Release/_intermediate/gettext" "/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_editors_poedit/poedit/work/poedit-2.3.1/build/Deps.build/Release/gettext"
note: ⋯  mkdir -p "/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_editors_poedit/poedit/work/poedit-2.3.1/build/Deps.build/Release/_intermediate/gettext"
note: ⋯  tar -x -f "/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_editors_poedit/poedit/work/poedit-2.3.1/deps/tarballs/gettext-0.20.2.tar.gz" -C "/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_editors_poedit/poedit/work/poedit-2.3.1/build/Deps.build/Release/_intermediate/gettext" --strip-components 1
note: ⋯  patch -d "/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_editors_poedit/poedit/work/poedit-2.3.1/build/Deps.build/Release/_intermediate/gettext" -p1 < "/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_editors_poedit/poedit/work/poedit-2.3.1/deps/gettext/gettext-smaller-build.patch"
note: ⋯  patch -d "/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_editors_poedit/poedit/work/poedit-2.3.1/build/Deps.build/Release/_intermediate/gettext" -p1 < "/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_editors_poedit/poedit/work/poedit-2.3.1/deps/gettext/gettext-macos-catalina-dont-touch-parent-dirs.patch"
note: ⋯  cd "/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_editors_poedit/poedit/work/poedit-2.3.1/build/Deps.build/Release/_intermediate/gettext"
note: ⋯  touch `find . -name configure`
note: ⋯  touch `find . -name aclocal.m4`
note: ⋯  touch `find . -name config.h.in`
note: ⋯  touch `find . -name Makefile.in`
note: ⋯  touch `find . -name *.1`
note: ⋯  touch `find . -name *.3`
note: ⋯  find . -name *.html -exec touch {} \;
note: ⋯  touch `find . -name *stream*.[ch]*`
note: ⋯  touch `find . -name *.gmo`
note: ⋯  ./configure --prefix=/ CC=clang CXX=clang++ CFLAGS="-arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -mmacosx-version-min=10.15 -O2 -w -Dalarm=alarm_disabled" CXXFLAGS="-arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -mmacosx-version-min=10.15 -O2 -stdlib=libc++ -w" LDFLAGS="-arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -mmacosx-version-min=10.15 -Wl,-syslibroot,/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -Wl,-macosx_version_min,10.15 " GSED=/opt/local/bin/gsed YACC=/usr/local/opt/bison/bin/yacc --with-libiconv-prefix=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/usr --disable-static --disable-java --disable-csharp --disable-rpath --disable-dependency-tracking --enable-silent-rules --enable-relocatable --with-included-libxml
note: ⋯  make -j`sysctl -n hw.ncpu` -l`sysctl -n hw.ncpu`
CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/sh /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_editors_poedit/poedit/work/poedit-2.3.1/build/Deps.build/Release/_intermediate/gettext/build-aux/missing autoconf
/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_editors_poedit/poedit/work/poedit-2.3.1/build/Deps.build/Release/_intermediate/gettext/build-aux/missing: line 81: autoconf: command not found
WARNING: 'autoconf' is missing on your system.
         You should only need it if you modified 'configure.ac',
         or m4 files included by it.
         The 'autoconf' program is part of the GNU Autoconf package:
         <https://www.gnu.org/software/autoconf/>
         It also requires GNU m4 and Perl in order to run:
         <https://www.gnu.org/software/m4/>
         <https://www.perl.org/>
make: *** [configure] Error 127

Must poedit download and build its own copy of gettext? Could it use the MacPorts gettext instead?

Change History (6)

comment:1 in reply to:  description Changed 8 weeks ago by l2dy (Zero King)

Replying to ryandesign:

poedit fails to build on all OS versions except 10.14. Don't know why 10.14 is the exception, but on 10.15 we get this:

It's a race condition in the build process, see https://github.com/vslavik/poedit/issues/502.

Must poedit download and build its own copy of gettext? Could it use the MacPorts gettext instead?

Maybe it could, but I don't have time to figure that out.

comment:2 Changed 8 weeks ago by ryandesign (Ryan Schmidt)

Their build does seem pretty convoluted. They also patch gettext. I thought maybe telling their build system to use MacPorts gettext would be easier than fixing their gettext build, but I guess not.

I think the problem is that they're touching configure files first and then touching aclocal.m4 files. If both touches happen to occur during the same clock second then there's no problem, but if the clock advances between the time that the configure files are touched and the time that the aclocal.m4 files are touched, then the configure files are considered older and it will want to rebuild them with autoconf. The fix would be to touch the configure files after the aclocal.m4 files. The order of these touch commands could be changed in deps/build.ninja.

comment:3 Changed 8 weeks ago by l2dy (Zero King)

Is "touch the configure files after the aclocal.m4 files" all we need? These are the files touched before the gettext build, I can submit a PR upstream if swapping the two lines would fix the issue.

https://github.com/vslavik/poedit/blob/4488ad44bb687ce615a1799c07bb3e094e46e289/deps/generate_build_ninja.py#L147-L158

                                 build_commands=[
                                     # Prevent automake regeneration:
                                     'touch `find . -name configure`',
                                     'touch `find . -name aclocal.m4`',
                                     'touch `find . -name config.h.in`',
                                     'touch `find . -name Makefile.in`',
                                     'touch `find . -name *.1`',
                                     'touch `find . -name *.3`',
                                     'find . -name *.html -exec touch {} \\;',
                                     # Prevent running moopp tool that requires GNU sed and refused to be configured to use gsed:
                                     'touch `find . -name *stream*.[ch]*`',
                                     # Prevent running msgfmt:
                                     'touch `find . -name *.gmo`',
                                 ] + default_build_commands + [

comment:4 in reply to:  3 Changed 8 weeks ago by ryandesign (Ryan Schmidt)

Replying to l2dy:

Is "touch the configure files after the aclocal.m4 files" all we need?

I think so. If the touches are needed at all (which seems unlikely to me, but I'm not going to argue with them about it) then the important thing is to touch configure after all of its dependencies (which are configure.ac and any .m4 files).

comment:5 Changed 8 weeks ago by l2dy (Zero King)

Thanks, upstream merged the patch. I'll patch our port and test it on BuildBot.

comment:6 Changed 8 weeks ago by ryandesign (Ryan Schmidt)

Resolution: fixed
Status: assignedclosed

Great, looks like [848975a46dc674d9b043eb0e599983c365a8f4b4/macports-ports] got a successful build on 10.14 and 10.15.

It still fails on 10.13 and earlier but it's a different reason.

Note: See TracTickets for help on using tickets.