Skip to content

Feat/el10#5

Merged
philyuchkoff merged 11 commits into
philyuchkoff:mainfrom
msotnikov:feat/el10
May 18, 2026
Merged

Feat/el10#5
philyuchkoff merged 11 commits into
philyuchkoff:mainfrom
msotnikov:feat/el10

Conversation

@msotnikov
Copy link
Copy Markdown
Contributor

  • added || 0%{?el10} to BuildRequires, %install, %post, %preun, %postun, and %files.
  • included %{__install} -d .../lib/%{name} and %dir .../lib/%{name}, which fixes the Cannot chroot alert.
  • switch between pcre2-devel (for EL8/9/10) and pcre-devel (for older versions).
  • removed the -s flag from the install command, allowing standard debuginfo generation.
  • removed the obsolete USE_SYSTEMD and USE_REGPARM flags.
  • fixed Amazon Linux 2023 Support
  • syslog configuration logic is consistent across all systems

@philyuchkoff
Copy link
Copy Markdown
Owner

Привет!
Прошу прощения, только что заметил твой PR :)
Посмотрю на выходных подробнее, напишу.

@msotnikov
Copy link
Copy Markdown
Contributor Author

@philyuchkoff kindly reminder — could you review this PR when you have a moment? 🙏

@philyuchkoff
Copy link
Copy Markdown
Owner

Привет!
Прости, что так долго, работа :)
Есть несколько замечаний:

1. Makefile - PCRE для Amazon Linux 2023

  RHEL_VER := $(shell rpm -E %{rhel} 2>/dev/null)
  ifeq ($(shell [ -n "$(RHEL_VER)" ] && [ "$(RHEL_VER)" -ge 8 ] 2>/dev/null && echo 1 || echo 0),1)
      BASE_DEPS += pcre2-devel
  else
      BASE_DEPS += pcre-devel
  endif

Для Amazon Linux 2023 переменная %{rhel} пустая, поэтому будет выбран pcre-devel, хотя AMZN2023 использует pcre2-devel.

Можно так:

  ifeq ($(filter "%dist"), ".el8" ".el9" ".el10" ".amzn2023")
      BASE_DEPS += pcre2-devel
  else
      BASE_DEPS += pcre-devel
  endif

Можно использовать %{dist} вместо %{rhel} или добавить явную проверку для amzn2023.

2. haproxy.cfg - ломающие изменения

  - log 127.0.0.1 local0 → log 127.0.0.1 local2
  - stats socket /run/haproxy/haproxy.sock → /run/haproxy.sock

При обновлении существующей установки это сломает существующие syslog конфиги (они ждут local0) и скрипты мониторинга (если используют старый путь).

Модно оставить backwards-compatible пути или отметить в changelog как breaking change с инструкциями по миграции. Но лучше не ломать :)

3. дублирование BuildRequires для systemd

  +# Systemd dependencies for EL7+ (including EL10)
  +%if 0%{?el7} || 0%{?amzn2} || 0%{?el8} || 0%{?el9} || 0%{?el10} || 0%{?amzn2023}
  +BuildRequires:      systemd
   Requires(post):     systemd
   Requires(preun):    systemd
   Requires(postun):   systemd

systemd уже был в BASE_DEPS через rpm-build или явным указанием. Дублирование не критично, но лишнее.

4. много restart rsyslog.service

Перезапуск происходит трижды (%post, %postun), достаточно одного раза, можно оставить только где критично (например после добавления нового конфига (%post)).

  +%post
  +%if ...
  +    systemctl reload-or-try-restart rsyslog.service
  +%endif

Отличные изменения, спасибо за них:

  1. убран -s flag для debuginfo
  2. добавлено %dir .../lib/%{name} для chroot (исправляет баг)
  3. удален дубликат установки бинарника (было дважды)
  4. убраны устаревшие USE_REGPARM, USE_SYSTEMD флаги
  5. сделана унификация syslog конфигов
  6. SELinux пример в README полезен, не так в лоб, как у меня :)

Если я вмерджу этот PR, то обновление с текущей версии потребует правки syslog конфигов.

msotnikov added 2 commits May 16, 2026 17:39
- Makefile: detect PCRE2 via %{dist} so amzn2023 is included
- haproxy.cfg: revert log facility to local0 (backwards-compat); change socket to /run/haproxy.sock
- spec: drop duplicate BuildRequires systemd; remove redundant rsyslog restart in %postun
- README: document stats socket path change as breaking change with migration note
@msotnikov
Copy link
Copy Markdown
Contributor Author

msotnikov commented May 16, 2026

Привет! Спасибо за ревью, поправил замечания.

1. Makefile — PCRE для Amazon Linux 2023

Переписал детект на %{dist}, теперь pcre2-devel ставится для .el8, .el9, .el10 и .amzn2023:

DIST := $(shell rpm -E %{dist} 2>/dev/null)
ifneq ($(filter .el8 .el9 .el10 .amzn2023,$(DIST)),)
    BASE_DEPS += pcre2-devel
else
    BASE_DEPS += pcre-devel
endif

2. haproxy.cfg — ломающие изменения

  • log 127.0.0.1 local2 → вернул local0 (как было в upstream main, ничего не ломает).
  • stats socket: оставил упрощённый путь /run/haproxy.sock (без подпапки /run/haproxy/, чтобы не тащить tmpfiles.d / RuntimeDirectory ради одного каталога). Это breaking change vs предыдущей версии — задокументировал в README в новом разделе ⚠️ Breaking changes с инструкцией по миграции.

3. Дублирование BuildRequires: systemd

Убрал. systemd и так приезжает транзитивно через rpm-build / systemd-devel из BASE_DEPS.

4. Лишние restart rsyslog.service

Убрал из %postun (и в ветке EL7+, и в ветке EL6/amzn1). Остался один вызов в %post — после установки/обновления конфига.


Пользователям, у которых в скриптах мониторинга прибит старый путь сокета /run/haproxy/haproxy.sock, нужно либо обновить путь, либо переопределить его в своём haproxy.cfg.

@msotnikov
Copy link
Copy Markdown
Contributor Author

Привет. Папку для сокета всё таки решил оставить - подпапка добавляет лишнюю логику без какого-либо профита. Остальное поправил (см выше)

@philyuchkoff philyuchkoff merged commit e29c8b3 into philyuchkoff:main May 18, 2026
philyuchkoff added a commit that referenced this pull request May 18, 2026
  Changed syslog facility from local2 to local0 in haproxy.syslog.amzn1  and haproxy.syslog.amzn2 to match haproxy.cfg configuration.

  Without this fix, HAProxy logs were not being captured on Amazon Linux 1
  and 2 because the config file sends to local0 while syslog configs
  were listening on local2.

  Related to PR #5:
  #5
philyuchkoff added a commit that referenced this pull request May 18, 2026
Changed syslog facility from local2 to local0 in haproxy.syslog.el6, haproxy.syslog.el7, haproxy.syslog.amzn1 and haproxy.syslog.amzn2 to match haproxy.cfg configuration.

Without this fix, HAProxy logs were not being captured on Enterprise Linux 6/7 and Amazon Linux 1/2 because the config file sends to local0 while syslog configs were listening on local2.

Related to PR #5: #5
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants