Собрать GNU Screen под MacOS (configure: error !!! no select - no screen)

Модератор: /dev/random

Ответить
Аватара пользователя
Stauffenberg
Сообщения: 2042
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Собрать GNU Screen под MacOS

Сообщение Stauffenberg »

Всем привет.

Мне нужна помощь пользователей MacOS. Я хочу узнать список команд для сборки GNU Screen из исходников в последней версии MacOS.
Самой MacOS у меня под рукой нет, поэтому я и спрашиваю о помощи. Я настраиваю CI (action github), которая собирала бы исходники в соответствующем окружении. Пока лишь пару первых команд. Заканчивается все ошибкой configure: no select - no screen, т.е. он не находит select. Поиск, увы, мне много не дал. Я добавлял и libevent и libSystem... одна и та же ошибка.

Код: Выделить всё

> brew install automake make gcc ncurses
> ./autogen.sh
> ./configure --disable-pam CFLAGS="-Wall -DDEBUG"
this is screen version 4.9.0
checking for prefix by checking for screen... /usr/bin/screen
checking for gcc... clang
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether the compiler supports GNU C... yes
checking whether clang accepts -g... yes
checking for clang option to enable C11 features... none needed
checking how to run the C preprocessor... clang -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking whether clang needs -traditional... no
checking for library containing strerror... none required
checking for stdio.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for strings.h... yes
checking for sys/stat.h... yes
checking for sys/types.h... yes
checking for unistd.h... yes
checking for wchar.h... yes
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking whether _XOPEN_SOURCE should be defined... no
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking for a BSD-compatible install... /usr/bin/install -c
configure: checking for buggy tools...
- sh  is 'GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin21)'.
checking if a system-wide socket dir should be used... yes
checking for the socket dir... (eff_uid ? "/tmp/uscreens" : "/tmp/screens")
configure: checking for MIPS...
configure: checking for Ultrix...
configure: checking for butterfly...
configure: checking for POSIX.1...
- you have a POSIX system
configure: checking for System V...
configure: checking for sequent/ptx...
configure: checking SVR4...
checking for stropts.h... no
checking for string.h... (cached) yes
checking for strings.h... (cached) yes
configure: checking for Solaris 2.x...
configure: checking BSD job jontrol...
- you don't have jobcontrol
configure: checking setresuid...
configure: checking setreuid...
configure: checking seteuid...
configure: checking execvpe...
configure: checking select...
configure: checking select with  -lnet -lnsl...
configure: error: !!! no select - no screen
Мне уже писал apple мэйнтейнер и спрашивал как собрать последнюю версию в MacOS, но увы, я без проблем ее собираю в GNU/Linux и *BSD (там нет ничего сложного, и никаких дополнительных зависимостей мы не добавляли), а MacOS у меня нет, я не могу с ней поиграться.
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:
Аватара пользователя
semiconductor
Сообщения: 272
ОС: Да полно всяких

Re: Собрать GNU Screen под MacOS

Сообщение semiconductor »

Поставить макось в виртуалке не вариант? На торрентах их полно всяких.
RTFM, изыди!
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5295
ОС: Gentoo

Re: Собрать GNU Screen под MacOS

Сообщение /dev/random »

А доступа к config.log после ошибки у вас нет?
Спасибо сказали:
Аватара пользователя
UnixNoob
Сообщения: 1387
ОС: Slackware

Re: Собрать GNU Screen под MacOS

Сообщение UnixNoob »

Homebrew использовать не вариант?
"Однажды один очень мудрый человек… ничего не сказал. Времена были опасные, да и собеседники ненадёжные"
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20816
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Собрать GNU Screen под MacOS

Сообщение Bizdelnick »

Меня бы уже вот это насторожило:
Stauffenberg писал:
05.07.2023 01:03
checking for gcc... clang
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Stauffenberg
Сообщения: 2042
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: Собрать GNU Screen под MacOS

Сообщение Stauffenberg »

UnixNoob писал:
05.07.2023 11:13
Homebrew использовать не вариант?
Задача не в том, чтобы установить screen, а в том, чтобы узнать шаги для его сборки из исходников
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:
Аватара пользователя
Stauffenberg
Сообщения: 2042
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: Собрать GNU Screen под MacOS

Сообщение Stauffenberg »

/dev/random писал:
05.07.2023 09:54
А доступа к config.log после ошибки у вас нет?
К сожаленью, нет
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20816
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Собрать GNU Screen под MacOS

Сообщение Bizdelnick »

Почему не использовать стандартный макрос вместо велосипедов?
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Stauffenberg
Сообщения: 2042
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: Собрать GNU Screen под MacOS

Сообщение Stauffenberg »

Bizdelnick писал:
05.07.2023 13:06
Меня бы уже вот это насторожило:
Stauffenberg писал:
05.07.2023 01:03
checking for gcc... clang
Собирал и с gcc и с clang. Ошибка одинаковая.
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:
Аватара пользователя
Stauffenberg
Сообщения: 2042
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: Собрать GNU Screen под MacOS

Сообщение Stauffenberg »

Bizdelnick писал:
05.07.2023 13:19
Почему не использовать стандартный макрос вместо велосипедов?
Сейчас мы будем менять процесс сборки проекта просто потому, что на одной проприетарной системе он не собирается. Аха. Да, и рабочий способ, работающий без проблем везде, назовем велосипедом. Точно :console:
Последний раз редактировалось Stauffenberg 05.07.2023 13:40, всего редактировалось 1 раз.
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:
Аватара пользователя
Stauffenberg
Сообщения: 2042
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: Собрать GNU Screen под MacOS

Сообщение Stauffenberg »

Bizdelnick писал:
05.07.2023 13:06
Меня бы уже вот это насторожило:
Stauffenberg писал:
05.07.2023 01:03
checking for gcc... clang
Меня больше настараживает разница проверок для select, а не компилятор.
configure: checking select...
configure: checking select with -lnet -lnsl...
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20816
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Собрать GNU Screen под MacOS

Сообщение Bizdelnick »

Stauffenberg писал:
05.07.2023 13:28
Сейчас мы будем менять процесс сборки проекта просто потому, что на одной проприетарной системе он не собирается. Аха. Да, и рабочий способ работающий без проблем везде, назовем велосипедом.
Ну если одна проприетарная система вам неинтересна, забейте на её поддержку, всё просто.
Stauffenberg писал:
05.07.2023 13:30
Меня больше настараживает разница проверок для select, а не компилятор.
configure: checking select...
configure: checking select with -lnet -lnsl...
Чем именно настораживает?
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Stauffenberg
Сообщения: 2042
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: Собрать GNU Screen под MacOS

Сообщение Stauffenberg »

Bizdelnick писал:
05.07.2023 13:32
Ну если одна проприетарная система вам неинтересна, забейте на её поддержку, всё просто.
Система сама по себе мне действительно неинтересна. Но мне интересно разобраться в причине проблемы. А еще я хочу, чтобы screen на MacOS собирался без проблем как на всех других Unix-like.
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20816
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Собрать GNU Screen под MacOS

Сообщение Bizdelnick »

Stauffenberg писал:
05.07.2023 13:40
Но мне интересно разобраться в причине проблемы.
Я тут погуглил, нашёл баг, который Вы почему-то не упомянули в теме, и причина в нём описана:
Upon investigation, it seems like it fails because Clang 12 requires functions to be defined before use.
И обходной путь найти несложно: https://github.com/Homebrew/homebrew-core/blob/0d685b91b89ebf2f4748a23373de248a37d328a5/Formula/screen.rb#L43-L45

Но, конечно, это безобразие и надо править проверку при конфигурации. Тем более что, по всей видимости, у вас сломана сборка не только на macOS, но и на любой системе с clang 12+. Да и с другими версиями clang и gcc при использовании определённых флагов сломается.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Stauffenberg
Сообщения: 2042
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: Собрать GNU Screen под MacOS

Сообщение Stauffenberg »

Так, проблема с clang 12+ актуальна, но сборка ломается и с gcc.
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20816
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Собрать GNU Screen под MacOS

Сообщение Bizdelnick »

Stauffenberg писал:
05.07.2023 14:03
сборка ломается и с gcc
Посмотрите внимательнее на лог и процитированный мной выше его кусок. У Вас фактически используется clang несмотря на то, что Вы установили gcc.
Впрочем, я не исключаю, что поведение по умолчанию в последних версиях gcc тоже могло измениться (или может измениться в будущих).
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Stauffenberg
Сообщения: 2042
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: Собрать GNU Screen под MacOS

Сообщение Stauffenberg »

Bizdelnick писал:
05.07.2023 14:06
Stauffenberg писал:
05.07.2023 14:03
сборка ломается и с gcc
Посмотрите внимательнее на лог и процитированный мной выше его кусок. У Вас фактически используется clang несмотря на то, что Вы установили gcc.
Я прогнал сборку еще раз специально только что. Поменял компилятор и получил:
checking for gcc... gcc
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:
Аватара пользователя
UnixNoob
Сообщения: 1387
ОС: Slackware

Re: Собрать GNU Screen под MacOS

Сообщение UnixNoob »

Stauffenberg писал:
05.07.2023 13:09
Задача не в том, чтобы установить screen, а в том, чтобы узнать шаги для его сборки из исходников
А что, в данном скрипте, с homebrew, он собирается не с исходников?
"Однажды один очень мудрый человек… ничего не сказал. Времена были опасные, да и собеседники ненадёжные"
Спасибо сказали:
Аватара пользователя
Stauffenberg
Сообщения: 2042
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: Собрать GNU Screen под MacOS

Сообщение Stauffenberg »

UnixNoob писал:
05.07.2023 14:26
Stauffenberg писал:
05.07.2023 13:09
Задача не в том, чтобы установить screen, а в том, чтобы узнать шаги для его сборки из исходников
А что, в данном скрипте, с homebrew, он собирается не с исходников?
Не совсем, там используется тарбол. Git в скрипте указывает на master, который вообще не 4.9.

Ребята, мне нужны shell команды, а не ссылки на ruby скрипты, которые я вряд ли смогу запустить без macOS. Если есть кто-то, кто может, как я в первом сообщении, выложить последовательность команд, я буду признателен. Про баг с clang 12+ -- это действительно надо исправить в первую очередь, но тема все равно уходит не туда.
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20816
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Собрать GNU Screen под MacOS

Сообщение Bizdelnick »

Stauffenberg писал:
05.07.2023 14:39
Ребята, мне нужны shell команды, а не ссылки на ruby скрипты, которые я вряд ли смогу запустить без macOS.
env CFLAGS='-include utmp.h -Wno-implicit-function-declaration' ./configure
Примерно это делает указанный ruby-скрипт (за исключением опций configure, их можете подставить свои).
Последний раз редактировалось Bizdelnick 05.07.2023 14:50, всего редактировалось 2 раза.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Stauffenberg
Сообщения: 2042
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: Собрать GNU Screen под MacOS

Сообщение Stauffenberg »

UnixNoob писал:
05.07.2023 14:26
Stauffenberg писал:
05.07.2023 13:09
Задача не в том, чтобы установить screen, а в том, чтобы узнать шаги для его сборки из исходников
А что, в данном скрипте, с homebrew, он собирается не с исходников?
Патчи из скрипта протестирую на днях. Спасибо.
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:
Аватара пользователя
Stauffenberg
Сообщения: 2042
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: Собрать GNU Screen под MacOS

Сообщение Stauffenberg »

Bizdelnick писал:
05.07.2023 14:47
Stauffenberg писал:
05.07.2023 14:39
Ребята, мне нужны shell команды, а не ссылки на ruby скрипты, которые я вряд ли смогу запустить без macOS.
env CFLAGS='-include utmp.h -Wno-implicit-function-declaration' ./configure
Примерно это делает указанный ruby-скрипт (за исключением опций configure, их можете подставить свои).
Большое спасибо. configure прошло без ошибок. Собрал и с clang и с gcc.
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:
Ответить