05 марта 2026 № 1 (2026)

ROSARIUM

газета советского программиста

Подготовка окружения и скачивание исходников

На этой странице

Подготовка окружения

sudo dnf install rpm-build rpmdevtools \
  python3-devel python3-pip python3-setuptools python3-wheel \
  pyproject-rpm-macros
rpmdev-setuptree

Что устанавливается:

  • python3-devel — заголовочные файлы Python, нужны для сборки
  • python3-pip — менеджер пакетов pip (используется внутри макросов)
  • python3-setuptools — классическая система сборки Python
  • python3-wheel — поддержка формата wheel
  • pyproject-rpm-macros — макросы %pyproject_* для RPM-сборки

Важно: пакет pyproject-rpm-macros — это то, что предоставляет все %pyproject_* макросы. Без него rpmbuild не поймет эти макросы и выдаст ошибку.

Скачивание исходников

cd ~/rpmbuild/SOURCES

# Скачиваем исходный код с PyPI
curl -LO https://files.pythonhosted.org/packages/source/h/httpie/httpie-3.2.4.tar.gz

Проверяем архив

tar tzf httpie-3.2.4.tar.gz | head -10

Ожидаемый вывод:

httpie-3.2.4/
httpie-3.2.4/LICENSE
httpie-3.2.4/MANIFEST.in
httpie-3.2.4/README.md
httpie-3.2.4/httpie/
httpie-3.2.4/httpie/__init__.py
...

Как найти entry_points (CLI-скрипты)

Прежде чем писать SPEC, нужно узнать, какие CLI-команды устанавливает httpie. Эта информация в pyproject.toml или setup.cfg:

# Распакуем во временный каталог и посмотрим
cd /tmp
tar xzf ~/rpmbuild/SOURCES/httpie-3.2.4.tar.gz
# Ищем console_scripts — это CLI-команды
grep -A10 'console_scripts' httpie-3.2.4/setup.cfg 2>/dev/null
grep -A10 'scripts' httpie-3.2.4/pyproject.toml 2>/dev/null

Ожидаемый вывод (из setup.cfg или pyproject.toml):

[options.entry_points]
console_scripts =
    http = httpie.__main__:main
    https = httpie.__main__:main
    httpie = httpie.manager.__main__:main

Это значит, что при установке пакета будут созданы три исполняемых скрипта:

  • /usr/bin/http — основная команда для HTTP-запросов
  • /usr/bin/https — то же, но с HTTPS по умолчанию
  • /usr/bin/httpie — менеджер плагинов и настроек

Эти скрипты нужно будет перечислить в %files.

# Убираем за собой
rm -rf /tmp/httpie-3.2.4
cd ~