The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Обновление Postfix 3.10.7 с устранением проблемы со сборкой в новых дистрибутивах Linux

08.12.2025 09:24

Опубликованы корректирующие выпуски поддерживаемых веток почтового сервера Postfix 3.x - 3.10.7, 3.9.8, 3.8.14 и 3.7.19. В новых версиях устранена проблема со сборкой из исходного кода, возникающая в новых версиях дистрибутивов Linux, перешедших на набор компиляторов GCC 15, по умолчанию переведённого на использование стандарта С23.

Проблема в том, что в стандарте С23 определено новое зарезервированное ключевое слово "bool", которое сопоставлено с типом, имеющим размер 1 байт. В коде Postfix определён собственный тип "bool", сопоставленный с типом "int", имеющим размер 4 байта. Попытка сборки Postfix компилятором в режиме С23 завершается ошибкой из-за переопределения типа "bool". В находящейся в разработке ветке Postfix 3.11 реализована поддержка нового типа "bool". Так как связанное с поддержкой нового типа "bool" изменение охватывает много строк кода, решено не переносить его в стабильные ветки, а добавить при вызове gcc и clang флаг компиляции "-std=gnu17" для использования стандарта C17.

  1. Главная ссылка к новости (https://www.mail-archive.com/p...)
  2. OpenNews: Опубликован почтовый сервер Postfix 3.10.0
  3. OpenNews: Обновление Postfix с исправлением уязвимости в реализации команды STARTTLS
  4. OpenNews: Критическая уязвимость в конфигурациях Postfix, использующих SASL-библиотеку Cyrus
  5. OpenNews: Обновление Postfix 3.2.2, 3.1.6, 3.0.10 и 2.11.10 с устранением уязвимости
  6. OpenNews: Релиз набора компиляторов GCC 15
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/64393-postfix
Ключевые слова: postfix
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (49) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.2, Аноним (2), 09:41, 08/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    > Проблема в том, что в стандарте С23 определено новое зарезервированное ключевое слово "bool", которое сопоставлено с типом, имеющим размер 1 байт.

    Ну наконец-то. Пол века прошло...

     
     
  • 2.3, Аноним (2), 09:43, 08/12/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Так как связанное с поддержкой нового типа "bool" изменение охватывает много строк кода, решено не переносить его в стабильные ветки

    Норм так проблемы на этом поле.

     
  • 2.8, Анонисссм (?), 10:18, 08/12/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >Пол века прошло...

    ещё через полвека догадаются на bool один бит потрптить )

     
  • 2.20, нах. (?), 12:44, 08/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Угу, и результат - поцфикс не собирается.

    Ну зато васянские лефтпады, ну никак не могущие прожить без ненужногоненужна - щасливы.

    Думать головами прежде чем пихать в стандарты нужное необходимое и полезное (нет) - у современных тяпляперов не принято.

     
     
  • 3.26, Аноним (-), 15:14, 08/12/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Угу, и результат - поцфикс не собирается.

    Возможно умственно отсталым разработчикам похфикса не нужно было использовать общепринятое ключевое слово?
    Сделали бы свой pBool.

     
     
  • 4.30, нах. (?), 16:01, 08/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    ничего что стандарт языка на котором этот постфикс написан тридцать лет назад - не содержит подобных "ключевых слов"?

    Потому что те кто этот язык придумали - совершенно намеренно не пихали туда абстракций, не имеющих аппаратной поддержки процессором. Предоставив желающим сделать это самостоятельно если тем так хочется называть int - bool. (интересный конечно bool к которому можно добавить ну например... 42? От чего бы и не добавить к true - 42? При этом он останется bool. Ну а что поделать, нет же в процессоре никаких булей.)

    А вот модные комитетные работнички - решили поулучшайкать в очередной раз для своих хеловротов.

     
     
  • 5.37, Аноним (-), 16:19, 08/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > От чего бы и не добавить к true - 42?

    Конечно! Это же абсолютно логично добавлять к булевому типу, который прям по своему определению может иметь всего два значения, целое. А потом удивляться почему софтина работает не так как должна.

    > А вот модные комитетные работнички - решили поулучшайкать в очередной
    > раз для своих хеловротов.

    Ну конечно. Нельзя же исправлять то, что сами ДИДЫ выпрограммировали!
    А то вдруг сломаешь обратную совместимость, которая делалась для систем, которые сдохли десятилетия назад.

     
     
  • 6.39, нах. (?), 16:35, 08/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Конечно! Это же абсолютно логично добавлять к булевому типу,

    в процессоре НЕТ никаких "булевых типов". Есть jz, и ей ВСЕ РАВНО, 42 в регистре лежит или 41, и совершенно логично добавить к регистру что-нибудь. Он целочисленный. Булевых - не бывает.

    Если тебе нужен нескучный йезычок который за тебя будет вытирать слюнки изобретая высокоуровневые абстракции - там уже вон предложили прекрасный algol60. Типы есть, а компиляторов нет. Потому что он вообще был предназначен для эталонного ненужно - "записи алгоритмов". Компиляторы потом написали, конечно, чего б студентам не практиковаться. А вот софта - не написали.

     
     
  • 7.42, Аноним (-), 16:44, 08/12/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Есть jz, и ей ВСЕ РАВНО, 42 в регистре лежит или 41

    Так весь смысл языка в том, чтобы в регистре не оказалось 42, а был напр. 0 или 1.
    И нет абсолютно никакого логического объяснения ЗАЧЕМ может понабиться прибавлять 42 к булу.

    > algol60
    > нескучный йезычок

    Не, это не algol60 нескучный йезычок, а си кусок ... переносимого асма, который был создан для ускоренного 6ыdлокодинга юникса на другие версии PDP.
    Но как это часто бывает в этом мире, на нем могла писать даже бебезяни и он стал PHP своего времение, вытеснив нормальные языки. Потому что раньше надо было х-к,х-к и в прод, что сейчас. И мир расхребывает этот недоязык до сих пор.

     
     
  • 8.45, нах. (?), 17:00, 08/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    нет Весь смысл языка Си, во всяком случае, его первоначальной разработки - чтоб... текст свёрнут, показать
     
     
  • 9.47, Аноним (-), 17:16, 08/12/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Смысла как раз нет Потому что а Pascal заменил алгол где смог б 6ыdloкодеро... текст свёрнут, показать
     
  • 9.50, Аноним (50), 17:28, 08/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ух ты, а создатели С об этом знают 128514 А то вот тут в сатье Денис Ричи ра... текст свёрнут, показать
     
  • 8.51, Аноним (51), 17:29, 08/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    все ЯП - недоязыки ибо наследуют мракобесие от предков А предком предков мракоб... текст свёрнут, показать
     
  • 8.57, Аноним (50), 17:55, 08/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Да забей Это персонаж даже не в курсе, что С и его предшественник B делались с ... текст свёрнут, показать
     
  • 3.28, Аноним (-), 15:57, 08/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > нужное необходимое и полезное (нет)

    Тут позорище как раз в том, что в этом так называемом "стандарте" bool появился только с С23. С другой стороны, что еще ожидать от переносимого ассемблера, где каждый проект вынужден городить свои bool.

     
     
  • 4.31, нах. (?), 16:05, 08/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Тут позорище как раз в том, что в этом так называемом "стандарте"
    > bool появился только с С23. С другой стороны, что еще ожидать
    > от переносимого ассемблера, где каждый проект вынужден городить свои bool.

    именно. Потому что такому языку этот бул нахрен был не нужен. В нем все равно нет механизма проверки что ты не пытаешься добавить к нему 42. Это просто синтаксический сахарок - который каждый мог реализовать для себя (и даже реализовали общепринятым образом... спустя лет десять после того как уже БЫЛ написан postfix)

    А если в кои-то веки кто-то придумает такой процессор в котором есть аппаратный bool - вероятно, придется придумать к нему какой-то другой язык низкоуровнего программирования. Потому что там еще много чего не будет иметь подходящих механизмов в языке.

     
     
  • 5.40, Аноним (-), 16:38, 08/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > В нем все равно нет механизма проверки что ты не пытаешься добавить к нему 42.

    Так это недостаток языка, а не его достоинство.

    > А если в кои-то веки кто-то придумает такой процессор в котором есть аппаратный bool

    А чё тогда прям в машинных кодах не писать? Или на макроасме?
    Языки существуют именно для того, чтобы делать валидные абстракции над вещами, которые напр. не поддерживает проц.

     
     
  • 6.46, нах. (?), 17:10, 08/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >> В нем все равно нет механизма проверки что ты не пытаешься добавить к нему 42.
    > Так это недостаток языка, а не его достоинство.

    Это особенность. Если она не устраивает - ты выбрал не только не тот язык, но и не ту сферу деятельности. Попробуй себя в чем-то еще, может в тебе дремлет художник или повар.

    > А чё тогда прям в машинных кодах не писать? Или на макроасме?

    А ты как думаешь? При том что в машинных кодах перестали писать из-за упаковки байтиков и использования hex вместо octal, а на ассемблере пишут по сей день весьма немало кода.


    > Языки существуют именно для того, чтобы делать валидные абстракции над вещами, которые
    > напр. не поддерживает проц.

    Си - ни разу не был для этого предназначен.
    Это тебе вон в пролог. Где программа вообще может только либо вернуть true, либо вернуть false. А Hello, world - это побочный эффект. Удобно на таком почтовый сервер, наверное, писать?


     
     
  • 7.53, Аноним (50), 17:37, 08/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Да что ты А Денис Ричи, глупый, об этом не знает и пишет 8220 BCPL, B, and ... большой текст свёрнут, показать
     
  • 3.55, 12yoexpert (ok), 17:52, 08/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >  Угу, и результат - поцфикс не собирается.

    доа? и как же я его собрал? наверное, у меня случайно получилось, мы же по тебе судим?

     

  • 1.4, Аноним (4), 09:50, 08/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    В книжке BLFS 12.4 инструкция по сборке Postfix с поддержкой GCC 15 еще с сентября прописана.
     
     
  • 2.49, Аноним (49), 17:28, 08/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    LFS-ники молодцы, горжусь ими. Сам периодически собираю LFS. Свой Линукс - это круто.
     

  • 1.5, Аноним (5), 10:10, 08/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >в стандарте С23 определено новое зарезервированное ключевое слово "bool", которое сопоставлено с типом, имеющим размер 1 байт

    Сие есть кpетинизм

     
     
  • 2.12, Аноним (12), 10:37, 08/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Сие есть стандарт. Ты или поддерживаешь код в соответствии со стандартами, или нет. Если не поддерживаешь, объективно твой код перестает следовать стандарту.

    Зачем существуют стандарты, надеюсь, объяснять не нужно.

     
     
  • 3.14, User (??), 10:56, 08/12/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Нет, прошу обьясните нам!
     
     
  • 4.22, Аноним (51), 13:18, 08/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    он не знает, что бул еще может быть 8-ми байтовым :)
     
  • 4.23, Аноним (23), 13:20, 08/12/2025 Скрыто ботом-модератором     [к модератору]
  • +1 +/
     

  • 1.6, Аноним (6), 10:12, 08/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    При сборке нельзя указать стандарт? Нужно обязательно менять код под самый новый gcc?
     
     
  • 2.7, Аноним (7), 10:16, 08/12/2025 [^] [^^] [^^^] [ответить]  
  • +6 +/
    А последнюю строку прочитать не судьба?
     

  • 1.10, 1 (??), 10:29, 08/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Странно, что ни в postfix ни в gcc нет что-то типа пространства имен, что бы исключить пресечения.
     
     
  • 2.11, Аноним (11), 10:33, 08/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Как вы себе это представляете?
     
     
  • 3.15, Аноним (-), 11:11, 08/12/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Префиксы, например как в GLib: gchar, gint, gsize, gboolean.
    Язык созданный для написания хелловордов, другого пространства имён там нет.
     
     
  • 4.18, ZloySergant (ok), 12:29, 08/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >Язык созданный для написания хелловордов, другого пространства имён там нет.

    Чёт ты херню несёшь.

    Префиксы - понятно, указал, но можно ещё через struct сделать, если уж шибко надо.

     
  • 2.13, Аноним (7), 10:52, 08/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Покажи как?
     
  • 2.24, Аноним (24), 14:42, 08/12/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Странно, что ни в postfix ни в gcc нет что-то типа пространства имен

    Скажите, а пространства имен в пространствах имен должны быть? А то нам слишком просто трассировать проблемы и выявлять закладки.

     

  • 1.16, 12yoexpert (ok), 11:35, 08/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > В коде Postfix определён собственный тип "bool",

    нафига? <stdbool.h> с какого года существует? 98-99? поотбивать руки

     
     
  • 2.17, Аноним (50), 11:54, 08/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > нафига? <stdbool.h> с какого года существует? 98-99?

    Ну как нафига? Уважающие себя сишочники всегда писали код так, чтобы он собирался на воображаемых некросистемах системах с воображаемыми некрокомпиляторми, поддерживающими лишь C89. Ну а потом через десятки лет уже другим людям приходит понимание, что страдать такой глупостью больше нецелесообразно - и приходится выпиливать все эти бесполезные костыли.

     
     
  • 3.19, 12yoexpert (ok), 12:32, 08/12/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    ifdef-ам в школе не учили? 25 лет назад можно было добавить
     
     
  • 4.21, Аноним (50), 12:48, 08/12/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > ifdef-ам в школе не учили?

    Ты спросил, зачем они добавляли свой bool - я тебе ответил. Вопросы про ifdef-ы задавай уже авторам кода.

     
     
  • 5.54, 12yoexpert (ok), 17:49, 08/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    ты не ответил, ты написал несвязанный набор слов
     
     
  • 6.56, Аноним (50), 17:52, 08/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > несвязанный набор слов

    Ок, в следующий раз буду знать, что текст длиной больше одного твита ты воспринимать не способен.

     
  • 6.58, Аноним (58), 18:02, 08/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > ты не ответил, ты написал несвязанный набор слов

    Если то был "несвязный набор слов", то зачем ты на него отвечал "ifdef-ам в школе не учили"?

     

  • 1.25, freehck (ok), 14:56, 08/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > Так как связанное с поддержкой нового типа "bool" изменение охватывает много строк кода, решено не переносить его в стабильные ветки, а добавить при вызове gcc и clang флаг компиляции "-std=gnu17" для использования стандарта C17.

    Они конечно авторы и сами вправе решать, но ума не приложу, почему они просто не переименовали автозаменой bool в boolean.

     
  • 1.29, Аноним (-), 15:59, 08/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Смешно.
    В fortran добавили LOGICAL еще в 1962 году.
    В ALGOL 60 есть BOOLEAN! В Pascal есть Boolean. В куче других языков древнее сишки есть логический тип.

    Но dыpяшечники они особенные...
    В убожестве под названием сишечка stdbool появился только в С99 и не как тип, а как макросовый костыль. А нормальный тип пришлось ждать аж до С23.

     
     
  • 2.32, нах. (?), 16:07, 08/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Смешно.
    > В fortran добавили LOGICAL еще в 1962 году.
    > В ALGOL 60 есть BOOLEAN! В Pascal есть Boolean. В куче других

    и сколько операционных систем написано на этих языках? Правильно - ноль.

     
     
  • 3.35, Аноним (-), 16:14, 08/12/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > и сколько операционных систем написано на этих языках?

    Ну-ну, а в какой момент посфигс стал ОС?

    > Правильно - ноль.

    Не правильно. CHAOS OS, PRIMOS, Apollo Domain OS.

     
     
  • 4.41, нах. (?), 16:38, 08/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >> и сколько операционных систем написано на этих языках?
    > Ну-ну, а в какой момент посфигс стал ОС?

    окей, сколько mta, используемых не в виртуальной реальности, а чью-то почту реально принимающих? Ой, опять ноль?

    >> Правильно - ноль.
    > Не правильно. CHAOS OS, PRIMOS, Apollo Domain OS.

    спасибо чатугпт за список эталонного ненужно. Кстати, почему ты еще не поставил себе все три и не выкинул немодные написанные на си? Потому что они - мертвенькими родились, не?

     
  • 2.52, Аноним (51), 17:34, 08/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > В убожестве под названием сишечка

    потому-что это "типовый кастрат"!

     

  • 1.33, Аноним (7), 16:08, 08/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Лучший MTA стал еще лучше - теперь собирается и с gcc15
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2025 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру