[devel] I: autoconf 2.71 and --runstatedir
Dmitry V. Levin
ldv на altlinux.org
Ср Июл 26 14:09:13 MSK 2023
Hi,
On Tue, Jul 25, 2023 at 07:46:33PM +0400, Gleb Fotengauer-Malinovskiy wrote:
> На всякий случай, напоминаю, как работает макрос %set_autoconf_version.
> Он сразу и добавляет пакет указанной версии в сборочные зависимости и
> экспортирует во всех скриптах переменную AUTOCONF_VERSION. Т.е. если
> приходится использовать в пакете autoconf_2.60, нужно просто добавить
> строку:
> %set_autoconf_version 2.60
На всякий случай напомню, что не надо фиксировать старую версию autoconf
в пакете, если только вы не уверены, что новую этот пакет действительно
не поддерживает.
Если пакет просто не собрался при смене autoconf, это не значит, что он
непременно заточен на старую версию, зачастую причины этого другие:
> Пакеты, которые сломались:
>
> courier-authlib lakostis @everybody
> hercules nbr @everybody
> libdb5.3 rider @everybody
> libdb6.1 rider @everybody
> libmp3splt @nobody
> libredland lav zerg @qa
> moc lakostis
> otf2 rider @everybody
> pacemaker cas @everybody
> pinball viy @everybody
> proftpd ender @qa @everybody
> scalasca rider @everybody
> scim oddity @qa
> scim-anthy oddity @everybody
> scim-m17n viy @everybody
> scorep rider @everybody
> sdcc sbolshakov @everybody
> squid shaba @everybody
> suite3270 nbr @everybody
> synfigstudio cas @everybody
> telepathy-gabble aris
> unixODBC @nobody
> configure: error: unrecognized option: `--runstatedir=/var/run'
> Try `./configure --help' for more information
> configure: error: ./configure failed for libltdl
>
> Это побочный эффект от передачи --runstatedir через один
> configure-скрипт в другой configure-скрипт (см. выше про это).
> Везде должно помочь %autoreconf, а в большинстве этих пакетов
> просто %autoreconf libltdl.
>
>
> aMule oddity @everybody
> avr-binutils week viy
> avr-gcc week viy
> gcc10 glebfm ldv
> gcc11 glebfm ldv
> gcc12 glebfm ldv
> configure.ac:35: error: autoconf 2.71 is known to not work with aMule. Please use
> 2.69 instead.
>
> У этих пакетов апстрим по той или иной причине считает, что нужно
> использовать конкретную версию autoconf.
>
>
> apcupsd asy
> libSDL_pango @nobody
> libmcrypt lav @qa @everybody
> libsrtp @nobody
> libsrtp2 sbolshakov @everybody
> configure: error: cannot find required auxiliary files: compile missing
> configure: error: cannot find required auxiliary files: install-sh config.guess config.sub
>
> autoreconf will issue an error if any auxiliary scripts are needed
> but cannot be found.
>
>
> printer-driver-magicolor2430dl mcpain @everybody
> printer-driver-magicolor2530dl mcpain @everybody
> printer-driver-magicolor5430dl mcpain @everybody
> printer-driver-magicolor5440dl mcpain @everybody
> configure: error: cannot find required auxiliary files: config.guess config.sub
>
> Эти пакеты относятся к предыдущей категории, но у них в spec-е нет
> autoreconf, но autoconf запускается сборочными скриптами самого
> проекта. Стоит просто добавить %autoreconf.
>
>
> conserver rider @everybody
> python3 grenka imz vitty george glebfm darktemplar
> zsh george arseny @qa
> autoreconf-default: Leaving directory '.'
> + ln -s package/config.sub
> ln: failed to create symbolic link './config.sub': File exists
>
> Эти пакеты просто не ожидали, что autoconf установит config.sub и/или
> config.guess.
>
>
> asterisk sbolshakov @everybody
> yasm sbolshakov @everybody
> configure: error: *** ANSI C header files not found.
> configure: error: Standard (ANSI/ISO C89) header files are required.
>
> *** AC_HEADER_STDC and AC_HEADER_TIME are now stubs.
>
> They still define the C preprocessor macros STDC_HEADERS and
> TIME_WITH_SYS_TIME, respectively, but they no longer check for the
> ancient, non-ISO-C90 compliant systems where formerly those macros
> would not be defined. Autoupdate will remove them.
>
> These macros were already labeled obsolete in the manual.
>
> Макрос AC_HEADER_STDC больше не определяет переменную
> ac_cv_header_stdc.
>
>
> imagescan cas @everybody
> openmpi bircoph dans @everybody
> checking for LIBMAGICK_PP... yes
> ./configure: line 25179: syntax error near unexpected token `newline'
> ./configure: line 25179: ` '''
>
> checking if --with-cuda is set... not set (--with-cuda=)
> ./configure: line 11024: syntax error near unexpected token `)'
> ./configure: line 11024: ` )'
>
> AS_IF перестал терпеть отсутствие квадратных скобок.
>
> configure.ac
> @@ -354,3 +354,3 @@
> AS_IF([test xno != "x$with_magick_pp"],
> - AS_CASE("x$with_magick_pp",
> + [AS_CASE("x$with_magick_pp",
> [xGraphicsMagick],
> @@ -375,3 +375,3 @@
> AC_MSG_ERROR([unknown value: --with-magick-pp=$with_magick_pp])
> - ]))
> + ])])
> AM_CONDITIONAL([have_libmagick_pp], [test x != "x$LIBMAGICK_PP_LIBS"])
> @@ -379,3 +379,3 @@
> AS_IF([test xno != "x$with_magick"],
> - AS_CASE("x$with_magick",
> + [AS_CASE("x$with_magick",
> [xGraphicsMagick],
> @@ -410,3 +410,3 @@
> AC_MSG_ERROR([unknown value: --with-magick=$with_magick])
> - ]))
> + ])])
> AC_DEFINE_UNQUOTED([MAGICK_CONVERT], ["$MAGICK_CONVERT"])
>
> config/opal_check_cuda.m4
> AS_IF([test "$opal_check_cuda_happy"="yes"],
> - AC_CHECK_DECL([CU_POINTER_ATTRIBUTE_SYNC_MEMOPS], [CUDA_SYNC_MEMOPS=1], [CUDA_SYNC_MEMOPS=0],
> - [#include <$opal_cuda_incdir/cuda.h>]),
> + [AC_CHECK_DECL([CU_POINTER_ATTRIBUTE_SYNC_MEMOPS], [CUDA_SYNC_MEMOPS=1], [CUDA_SYNC_MEMOPS=0],
> + [#include <$opal_cuda_incdir/cuda.h>])],
> [])
>
>
> apr1 arbars @everybody
> checking whether int64_t and long long use fmt %lld... no
> configure: error: could not determine the string function for int64_t
>
> https://github.com/apache/apr/commit/0a763c5e500f4304b7c534fae0fad430d64982e8
>
>
> cube rider @everybody
> autoreconf-default: running: /usr/bin/autoconf-2.71 --force
> configure:19220: error: possibly undefined macro: _AC_C_STD_TRY
> If this token and others are legitimate, please use m4_pattern_allow.
> See the Autoconf documentation.
> autoreconf-default: error: /usr/bin/autoconf-2.71 failed with exit status: 1
>
> Макрос _AC_C_STD_TRY больше не реализован в autoconf.
>
>
> freeipmi rider @qa
> autoreconf-default: running: aclocal --force -I config
> configure.ac:18: error: AC_CONFIG_MACRO_DIR can only be used once
>
> *** New macro AC_CONFIG_MACRO_DIRS.
>
> This macro can be used more than once and accepts a list of
> directories to search for local M4 macros. With Automake 1.13 and
> later, use of this macro eliminates a reason to use ACLOCAL_AMFLAGS
> in Makefile.am.
>
> The older AC_CONFIG_MACRO_DIR, which could only be used once, is
> still supported but considered deprecated.
>
>
> libudev0 shaba @everybody
> + make -j16
> make: *** No rule to make target '/linux-default/include/linux/input-event-codes.h',
> needed by 'src/extras/keymap/keys.txt'. Stop.
> make: *** Waiting for unfinished jobs....
>
> Перестала работать вот такая конструкция
> AC_SUBST([INCLUDE_PREFIX], [$(echo '#include <linux/input.h>' | eval $ac_cpp -E - | sed -n '/linux\/input.h/ {s:.*"\(.*\)/linux/input.h".*:\1:; p; q}')])
> потому что в configure.ac не используется AC_PROG_CPP и переменная
> ac_cpp оказывается пустой.
>
>
> ltrace grenka @everybody
> autoreconf-default: configure.ac: creating directory config/autoconf
> autoreconf-default: error: cannot create config/autoconf: No such file or directory
>
> autoconf перестал создавать промежуточный каталог в этом месте.
>
>
> miredo naf @qa
> checking for tdestroy... no
> configure: error: Required tdestroy() or Judy dynamic arrays.
>
> Это бага на стороне autoconf [3], я собираюсь сделать backport и
> собрать autoconf 2.71-alt2.
>
>
> quvi viy aris @gnome
> checking whether the C compiler works... no
> configure: error: in `/usr/src/RPM/BUILD/quvi-0.9.5':
> configure: error: C compiler cannot create executables
> See `config.log' for more details
>
> https://salsa.debian.org/debian/quvi/-/blob/master/debian/patches/0001-Fix-FTBFS-with-autoconf-2.70.patch
>
>
> rofi akv @everybody
> autoreconf-default: running: aclocal --force -I subprojects/libnkutils -I
> subprojects/libgwater ${ACLOCAL_FLAGS}
> configure.ac:10: error: AC_PROG_LEX: unrecognized argument: flex
> ./lib/autoconf/programs.m4:716: _AC_PROG_LEX is expanded from...
> --
> configure.ac:10: the top level
> autom4te-2.71: error: /usr/bin/m4 failed with exit status: 1
> aclocal-default: error: /usr/bin/autom4te-2.71 failed with exit status: 1
> autoreconf-default: error: aclocal failed with exit status: 1
>
> У макроса AC_PROG_LEX раньше не было никаких аргументов и аргументы
> передаваемые по ошибке просто игнорировались.
>
> AC_PROG_LEX now takes one argument, which may be either ‘yywrap’ or
> ‘noyywrap’.
>
>
> tcl-httpd @nobody
> checking whether the C compiler works... no
> configure: error: in `/usr/src/RPM/BUILD/tcl-httpd-3.5.1':
> configure: error: C compiler cannot create executables
> See `config.log' for more details
>
> В autoconf 2.69 AC_DEFINE_UNQUOTED был реализован как
> cat >>confdefs.h <<_ACEOF
> #define VERSION "${VERSION}"
> _ACEOF
> а в autoconf 2.71 он выглядит так:
> printf "%s\n" "#define VERSION \"${VERSION}\"" >>confdefs.h
>
> В этом пакете перед AC_DEFINE_UNQUOTED зачем-то стоит eval,
> который со старым autoconf не вредил, а с новым ломает сборку.
>
>
> torque viy @everybody
> checking for ar... (cached) ar
> mv: cannot stat 'libtool': No such file or directory
> ./configure: line 18734: libtool: No such file or directory
> mv: cannot stat 'libtool.old': No such file or directory
> checking whether ln -s works... yes
> --
> checking if largefile compiles (looking at you, OSX)... checking for pthread_create in
> -lpthread... no
> configure: error: TORQUE needs pthreads in order to build
> error: Bad exit status from /usr/src/tmp/rpm-tmp.62250 (%build)
>
> autoconf перестал угадывать, что этот проект на C++, должно быть
> достаточно просто добавить AC_LANG([C++]).
>
>
> [1] https://git.altlinux.org/gears/r/rpm-build.git?p=rpm-build.git;a=commitdiff;h=e96f79a7d031ed82024500fd229369456aed0f5a
> [2] https://lore.altlinux.org/devel/20210825082756.GA16086@altlinux.org/T/#u
> [3] https://git.savannah.gnu.org/gitweb/?p=autoconf.git;a=commitdiff;h=8b5e2016c7ed2d67f31b03a3d2e361858ff5299b
> --
> glebfm
> _______________________________________________
> Devel mailing list
> Devel на lists.altlinux.org
> https://lists.altlinux.org/mailman/listinfo/devel
--
ldv
Подробная информация о списке рассылки Devel