ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] rpm макросы для сборки pyproject
@ 2021-10-07 19:17 Антон Мидюков
  2021-10-08 12:12 ` Stanislav Levin
  0 siblings, 1 reply; 4+ messages in thread
From: Антон Мидюков @ 2021-10-07 19:17 UTC (permalink / raw)
  To: ALT Devel discussion list

Здравствуйте

У меня один питоновский пакет в новой версии перешёл на
сборку из pyproject.toml [1] вместо setuptools. Никто ещё с таким не сталкивался?
Смотрю в Fedora есть пакет с макросами для сборки таких пакетов.
Называется pyproject-rpm-macros. У нас не планируется аналогичный пакет?

1. https://www.python.org/dev/peps/pep-0517/

-- 
С уважением, Антон Мидюков <antohami@altlinux.org>


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [devel] rpm макросы для сборки pyproject
  2021-10-07 19:17 [devel] rpm макросы для сборки pyproject Антон Мидюков
@ 2021-10-08 12:12 ` Stanislav Levin
  2021-10-08 12:38   ` [devel] rpm макросы и тулинг для сборки по pep517/518 (с pyproject.toml) Arseny Maslennikov
  0 siblings, 1 reply; 4+ messages in thread
From: Stanislav Levin @ 2021-10-08 12:12 UTC (permalink / raw)
  To: ALT Linux Team development discussions,
	Антон
	Мидюков


[-- Attachment #1.1: Type: text/plain, Size: 1464 bytes --]



07.10.2021 22:17, Антон Мидюков пишет:
> Здравствуйте
> 
> У меня один питоновский пакет в новой версии перешёл на
> сборку из pyproject.toml [1] вместо setuptools. Никто ещё с таким не сталкивался?
> Смотрю в Fedora есть пакет с макросами для сборки таких пакетов.
> Называется pyproject-rpm-macros. У нас не планируется аналогичный пакет?
> 
> 1. https://www.python.org/dev/peps/pep-0517/
> 


Здравствуйте, не знаю занимается ли уже кто-нибудь этим в альте.

Если в кратце, то.
Мир постепенно уходит сборочной монополии setuptools, благодаря pep517/518.
При этом инструменты, которыми пользуемся мы, py3_build/py3_install
обёртка над `python3 setup.py build/install --root` (последнее уже
deprecated).
То есть собрать python пакет без setup.py имеющимися макросами
невозможно. Предложенный универсальный вариант сборки(pep517), который
считается правильным:
- собираем wheel с хуками pep517
- устанавливаем wheel

Федора использует для этого pip, который умеет в сборочные бэкенды.
Это, возможно, спорное решение.

Что делать сейчас? Найти/сгенерировать setup.py. Например:
- найти можно на PyPI, но апрстрим не обязательно выложит sdist и не
обязательно там будет setup.py (зависит от сборочного бэкэнда)
- собрать sdist используемым апстримом бэкендом
- самостоятельно сгенерировать setup.py

Процесс миграции начался не так давно(год, наверное), поэтому такие
пакеты сегодня достаточно редки, но всё же встречаются.


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 840 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [devel] rpm макросы и тулинг для сборки по pep517/518 (с pyproject.toml)
  2021-10-08 12:12 ` Stanislav Levin
@ 2021-10-08 12:38   ` Arseny Maslennikov
  2021-10-08 14:00     ` Stanislav Levin
  0 siblings, 1 reply; 4+ messages in thread
From: Arseny Maslennikov @ 2021-10-08 12:38 UTC (permalink / raw)
  To: ALT Linux Team development discussions
  Cc: Антон
	Мидюков

[-- Attachment #1: Type: text/plain, Size: 2855 bytes --]

On Fri, Oct 08, 2021 at 03:12:02PM +0300, Stanislav Levin wrote:
> 
> 
> 07.10.2021 22:17, Антон Мидюков пишет:
> > Здравствуйте
> > 
> > У меня один питоновский пакет в новой версии перешёл на
> > сборку из pyproject.toml [1] вместо setuptools. Никто ещё с таким не сталкивался?
> > Смотрю в Fedora есть пакет с макросами для сборки таких пакетов.
> > Называется pyproject-rpm-macros. У нас не планируется аналогичный пакет?
> > 
> > 1. https://www.python.org/dev/peps/pep-0517/
> > 
> 
> 
> Здравствуйте, не знаю занимается ли уже кто-нибудь этим в альте.
> 
> Если в кратце, то.
> Мир постепенно уходит сборочной монополии setuptools, благодаря pep517/518.
> При этом инструменты, которыми пользуемся мы, py3_build/py3_install
> обёртка над `python3 setup.py build/install --root` (последнее уже
> deprecated).
> То есть собрать python пакет без setup.py имеющимися макросами
> невозможно. Предложенный универсальный вариант сборки(pep517), который
> считается правильным:
> - собираем wheel с хуками pep517
> - устанавливаем wheel
> 
> Федора использует для этого pip, который умеет в сборочные бэкенды.

Они запатчили или такой pip (и сами backends) есть в апстриме?

> Это, возможно, спорное решение.
> 
> Что делать сейчас? Найти/сгенерировать setup.py. Например:
> <...>
> - самостоятельно сгенерировать setup.py

http://git.altlinux.org/gears/u/udisksdd.git?p=udisksdd.git;a=blob;f=.gear/udisksdd.spec;h=1aeae7ef09a8ca26e2390a44c5a5384410200d07;hb=4599dbee302168e95718e45423f6256c6de0ef2b#l40
Для пакетов с тривиальной сборочной процедурой этого
должно быть достаточно.
Ну и:
https://bugzilla.altlinux.org/show_bug.cgi?id=39907
> 
> Процесс миграции начался не так давно(год, наверное), поэтому такие
> пакеты сегодня достаточно редки, но всё же встречаются.
> 




> _______________________________________________
> Devel mailing list
> Devel@lists.altlinux.org
> https://lists.altlinux.org/mailman/listinfo/devel


[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [devel] rpm макросы и тулинг для сборки по pep517/518 (с pyproject.toml)
  2021-10-08 12:38   ` [devel] rpm макросы и тулинг для сборки по pep517/518 (с pyproject.toml) Arseny Maslennikov
@ 2021-10-08 14:00     ` Stanislav Levin
  0 siblings, 0 replies; 4+ messages in thread
From: Stanislav Levin @ 2021-10-08 14:00 UTC (permalink / raw)
  To: ALT Linux Team development discussions, Arseny Maslennikov
  Cc: Антон
	Мидюков


[-- Attachment #1.1: Type: text/plain, Size: 3191 bytes --]



08.10.2021 15:38, Arseny Maslennikov пишет:
> On Fri, Oct 08, 2021 at 03:12:02PM +0300, Stanislav Levin wrote:
>>
>>
>> 07.10.2021 22:17, Антон Мидюков пишет:
>>> Здравствуйте
>>>
>>> У меня один питоновский пакет в новой версии перешёл на
>>> сборку из pyproject.toml [1] вместо setuptools. Никто ещё с таким не сталкивался?
>>> Смотрю в Fedora есть пакет с макросами для сборки таких пакетов.
>>> Называется pyproject-rpm-macros. У нас не планируется аналогичный пакет?
>>>
>>> 1. https://www.python.org/dev/peps/pep-0517/
>>>
>>
>>
>> Здравствуйте, не знаю занимается ли уже кто-нибудь этим в альте.
>>
>> Если в кратце, то.
>> Мир постепенно уходит сборочной монополии setuptools, благодаря pep517/518.
>> При этом инструменты, которыми пользуемся мы, py3_build/py3_install
>> обёртка над `python3 setup.py build/install --root` (последнее уже
>> deprecated).
>> То есть собрать python пакет без setup.py имеющимися макросами
>> невозможно. Предложенный универсальный вариант сборки(pep517), который
>> считается правильным:
>> - собираем wheel с хуками pep517
>> - устанавливаем wheel
>>
>> Федора использует для этого pip, который умеет в сборочные бэкенды.
> 
> Они запатчили или такой pip (и сами backends) есть в апстриме?
backend - это все, что может "собрать" пакет и соответствует интерфейсу
pep517, самые, наверное, известные setuptools(сейчас это сместь
фронтенд+бэкенд), flit, poetry.

frontend - то, чему можно сказать - иди собери/установи мне ххх по
pep517. Самые, наверное, известные pep517, build.

Какой backend указан в апстримовском pyproject.toml, тот и будет
использован, например:
```
[build-system]

requires = ["setuptools", "wheel"]

build-backend = "setuptools.build_meta"
```

Есть альтернатива не использовать pip или любой другой фронт для
сборки/установки пакетов(на мой взгляд, это перебор), а написать свой
фронтенд, который придется саппортить самостоятельно.
> 
>> Это, возможно, спорное решение.
>>
>> Что делать сейчас? Найти/сгенерировать setup.py. Например:
>> <...>
>> - самостоятельно сгенерировать setup.py
> 
> http://git.altlinux.org/gears/u/udisksdd.git?p=udisksdd.git;a=blob;f=.gear/udisksdd.spec;h=1aeae7ef09a8ca26e2390a44c5a5384410200d07;hb=4599dbee302168e95718e45423f6256c6de0ef2b#l40
> Для пакетов с тривиальной сборочной процедурой этого
> должно быть достаточно.
> Ну и:
> https://bugzilla.altlinux.org/show_bug.cgi?id=39907
>>
Для упаковки подавляющего большинства Python пакетов достаточно
переложить файлы/директории из одного места в другое, не городя никакие
"колеса". Проблемы (по утверждению авторов pep517) начинаются, когда,
например, собирается бинарный модуль для Python.

>> Процесс миграции начался не так давно(год, наверное), поэтому такие
>> пакеты сегодня достаточно редки, но всё же встречаются.
>>
> 
> 
> 
> 
>> _______________________________________________
>> Devel mailing list
>> Devel@lists.altlinux.org
>> https://lists.altlinux.org/mailman/listinfo/devel
> 
> 
> _______________________________________________
> Devel mailing list
> Devel@lists.altlinux.org
> https://lists.altlinux.org/mailman/listinfo/devel
> 


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 840 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2021-10-08 14:00 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-07 19:17 [devel] rpm макросы для сборки pyproject Антон Мидюков
2021-10-08 12:12 ` Stanislav Levin
2021-10-08 12:38   ` [devel] rpm макросы и тулинг для сборки по pep517/518 (с pyproject.toml) Arseny Maslennikov
2021-10-08 14:00     ` Stanislav Levin

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git