ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] hasher: пакеты, установленные по зависимостям
@ 2024-10-14  7:47 Антон Мидюков
  2024-10-14  9:57 ` Alexey Gladkov
  2024-10-14  9:58 ` Ivan A. Melnikov
  0 siblings, 2 replies; 29+ messages in thread
From: Антон Мидюков @ 2024-10-14  7:47 UTC (permalink / raw)
  To: ALT Devel discussion list

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

Все пакеты, которые ставятся в hasher считаются apt'ом установленными вручную. То есть все пакеты, вытянутые по зависимостям, тоже.
Это поведение как-то можно изменить?

Это нужно, чтобы в live и rootfs, собираемых в mkimage, пакеты, установленные по зависимостям, можно было бы удалить при помощи apt-get autoremove.
В свою очередь это требуется для того, чтобы после удаления alterator-setup в rooftfs система чистилась от лишних пакетов, как при обычной установке.

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



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

* Re: [devel] hasher: пакеты, установленные по зависимостям
  2024-10-14  7:47 [devel] hasher: пакеты, установленные по зависимостям Антон Мидюков
@ 2024-10-14  9:57 ` Alexey Gladkov
  2024-10-14  9:58 ` Ivan A. Melnikov
  1 sibling, 0 replies; 29+ messages in thread
From: Alexey Gladkov @ 2024-10-14  9:57 UTC (permalink / raw)
  To: ALT Linux Team development discussions

On Mon, Oct 14, 2024 at 10:47:17AM +0300, Антон Мидюков wrote:
> Здравствуйте
> 
> Все пакеты, которые ставятся в hasher считаются apt'ом установленными вручную. То есть все пакеты, вытянутые по зависимостям, тоже.
> Это поведение как-то можно изменить?
> 
> Это нужно, чтобы в live и rootfs, собираемых в mkimage, пакеты, установленные по зависимостям, можно было бы удалить при помощи apt-get autoremove.
> В свою очередь это требуется для того, чтобы после удаления alterator-setup в rooftfs система чистилась от лишних пакетов, как при обычной установке.

Есть run-image-scripts и там можно сделать apt-mark на то что хочется.

Этот вариант не подходит ?

-- 
Rgrds, legion



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

* Re: [devel] hasher: пакеты, установленные по зависимостям
  2024-10-14  7:47 [devel] hasher: пакеты, установленные по зависимостям Антон Мидюков
  2024-10-14  9:57 ` Alexey Gladkov
@ 2024-10-14  9:58 ` Ivan A. Melnikov
  2024-10-14 10:16   ` Alexey Gladkov
  1 sibling, 1 reply; 29+ messages in thread
From: Ivan A. Melnikov @ 2024-10-14  9:58 UTC (permalink / raw)
  To: ALT Linux Team development discussions

On Mon, Oct 14, 2024 at 10:47:17AM GMT, Антон Мидюков wrote:
> Здравствуйте
> 
> Все пакеты, которые ставятся в hasher считаются apt'ом установленными
> вручную. То есть все пакеты, вытянутые по зависимостям, тоже.  Это
> поведение как-то можно изменить?

hasher формирует список пакетов "снаружи" chroot'а; внутри
chroot'а все пакеты ставятся одинаково, через rpmi; на этом
этапе уже нет информации о том, какие пакеты были указаны явно,
а какие вытянуты по зависимостям.

> Это нужно, чтобы в live и rootfs, собираемых в mkimage, пакеты,
> установленные по зависимостям, можно было бы удалить при помощи apt-get
> autoremove.  В свою очередь это требуется для того, чтобы после удаления
> alterator-setup в rooftfs система чистилась от лишних пакетов, как при
> обычной установке.

Когда я размышлял об этой проблеме, я думал, что нужен
специальный шаг после установки пакетов, чтобы перемакировать
пакеты с помощью apt-mark auto.

-- 
  wbr,
    iv m.


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

* Re: [devel] hasher: пакеты, установленные по зависимостям
  2024-10-14  9:58 ` Ivan A. Melnikov
@ 2024-10-14 10:16   ` Alexey Gladkov
  2024-10-14 10:32     ` Антон Мидюков
  0 siblings, 1 reply; 29+ messages in thread
From: Alexey Gladkov @ 2024-10-14 10:16 UTC (permalink / raw)
  To: ALT Linux Team development discussions

On Mon, Oct 14, 2024 at 01:58:01PM +0400, Ivan A. Melnikov wrote:
> On Mon, Oct 14, 2024 at 10:47:17AM GMT, Антон Мидюков wrote:
> > Здравствуйте
> > 
> > Все пакеты, которые ставятся в hasher считаются apt'ом установленными
> > вручную. То есть все пакеты, вытянутые по зависимостям, тоже.  Это
> > поведение как-то можно изменить?
> 
> hasher формирует список пакетов "снаружи" chroot'а; внутри
> chroot'а все пакеты ставятся одинаково, через rpmi; на этом
> этапе уже нет информации о том, какие пакеты были указаны явно,
> а какие вытянуты по зависимостям.

А какая разница указаны ли пакеты явно или нет ? Они же все теперь часть
live образа или rootfs. Их всех можно пометить как auto. Разве нет ?

> > Это нужно, чтобы в live и rootfs, собираемых в mkimage, пакеты,
> > установленные по зависимостям, можно было бы удалить при помощи apt-get
> > autoremove.  В свою очередь это требуется для того, чтобы после удаления
> > alterator-setup в rooftfs система чистилась от лишних пакетов, как при
> > обычной установке.
> 
> Когда я размышлял об этой проблеме, я думал, что нужен
> специальный шаг после установки пакетов, чтобы перемакировать
> пакеты с помощью apt-mark auto.
> 
> -- 
>   wbr,
>     iv m.
> _______________________________________________
> Devel mailing list
> Devel@lists.altlinux.org
> https://lists.altlinux.org/mailman/listinfo/devel

-- 
Rgrds, legion



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

* Re: [devel] hasher: пакеты, установленные по зависимостям
  2024-10-14 10:16   ` Alexey Gladkov
@ 2024-10-14 10:32     ` Антон Мидюков
  2024-10-14 10:51       ` Alexey Gladkov
  0 siblings, 1 reply; 29+ messages in thread
From: Антон Мидюков @ 2024-10-14 10:32 UTC (permalink / raw)
  To: devel

14.10.2024 13:16, Alexey Gladkov пишет:
> On Mon, Oct 14, 2024 at 01:58:01PM +0400, Ivan A. Melnikov wrote:
>> On Mon, Oct 14, 2024 at 10:47:17AM GMT, Антон Мидюков wrote:
>>> Здравствуйте
>>>
>>> Все пакеты, которые ставятся в hasher считаются apt'ом установленными
>>> вручную. То есть все пакеты, вытянутые по зависимостям, тоже.  Это
>>> поведение как-то можно изменить?
>>
>> hasher формирует список пакетов "снаружи" chroot'а; внутри
>> chroot'а все пакеты ставятся одинаково, через rpmi; на этом
>> этапе уже нет информации о том, какие пакеты были указаны явно,
>> а какие вытянуты по зависимостям.
> 
> А какая разница указаны ли пакеты явно или нет ? Они же все теперь часть
> live образа или rootfs. Их всех можно пометить как auto. Разве нет ?

apt-get autoremove их всех удалит тогда.
Нужно отметить apt-mark auto только те пакеты, которых не было на входе hsh-install
Мы не можем это пофиксить в mki-install, то есть в mimage непосредственно?

> 
>>> Это нужно, чтобы в live и rootfs, собираемых в mkimage, пакеты,
>>> установленные по зависимостям, можно было бы удалить при помощи apt-get
>>> autoremove.  В свою очередь это требуется для того, чтобы после удаления
>>> alterator-setup в rooftfs система чистилась от лишних пакетов, как при
>>> обычной установке.
>>
>> Когда я размышлял об этой проблеме, я думал, что нужен
>> специальный шаг после установки пакетов, чтобы перемакировать
>> пакеты с помощью apt-mark auto.
>>
>> -- 
>>   wbr,
>>     iv m.
>> _______________________________________________
>> Devel mailing list
>> Devel@lists.altlinux.org
>> https://lists.altlinux.org/mailman/listinfo/devel
> 


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


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

* Re: [devel] hasher: пакеты, установленные по зависимостям
  2024-10-14 10:32     ` Антон Мидюков
@ 2024-10-14 10:51       ` Alexey Gladkov
  2024-10-25 10:06         ` Антон Мидюков
  0 siblings, 1 reply; 29+ messages in thread
From: Alexey Gladkov @ 2024-10-14 10:51 UTC (permalink / raw)
  To: ALT Linux Team development discussions

On Mon, Oct 14, 2024 at 01:32:22PM +0300, Антон Мидюков wrote:
> 14.10.2024 13:16, Alexey Gladkov пишет:
> > On Mon, Oct 14, 2024 at 01:58:01PM +0400, Ivan A. Melnikov wrote:
> >> On Mon, Oct 14, 2024 at 10:47:17AM GMT, Антон Мидюков wrote:
> >>> Здравствуйте
> >>>
> >>> Все пакеты, которые ставятся в hasher считаются apt'ом установленными
> >>> вручную. То есть все пакеты, вытянутые по зависимостям, тоже.  Это
> >>> поведение как-то можно изменить?
> >>
> >> hasher формирует список пакетов "снаружи" chroot'а; внутри
> >> chroot'а все пакеты ставятся одинаково, через rpmi; на этом
> >> этапе уже нет информации о том, какие пакеты были указаны явно,
> >> а какие вытянуты по зависимостям.
> > 
> > А какая разница указаны ли пакеты явно или нет ? Они же все теперь часть
> > live образа или rootfs. Их всех можно пометить как auto. Разве нет ?
> 
> apt-get autoremove их всех удалит тогда.
> Нужно отметить apt-mark auto только те пакеты, которых не было на входе hsh-install
> Мы не можем это пофиксить в mki-install, то есть в mimage непосредственно?

Да как раз можем. В mki-image-install мы вычисляем список пакетов, который
потом передаётся hsh-install.

-- 
Rgrds, legion



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

* Re: [devel] hasher: пакеты, установленные по зависимостям
  2024-10-14 10:51       ` Alexey Gladkov
@ 2024-10-25 10:06         ` Антон Мидюков
  2024-10-25 11:31           ` Alexey Gladkov
  0 siblings, 1 reply; 29+ messages in thread
From: Антон Мидюков @ 2024-10-25 10:06 UTC (permalink / raw)
  To: devel

14.10.2024 13:51, Alexey Gladkov пишет:
> On Mon, Oct 14, 2024 at 01:32:22PM +0300, Антон Мидюков wrote:
>> 14.10.2024 13:16, Alexey Gladkov пишет:
>>> On Mon, Oct 14, 2024 at 01:58:01PM +0400, Ivan A. Melnikov wrote:
>>>> On Mon, Oct 14, 2024 at 10:47:17AM GMT, Антон Мидюков wrote:
>>>>> Здравствуйте
>>>>>
>>>>> Все пакеты, которые ставятся в hasher считаются apt'ом установленными
>>>>> вручную. То есть все пакеты, вытянутые по зависимостям, тоже.  Это
>>>>> поведение как-то можно изменить?
>>>>
>>>> hasher формирует список пакетов "снаружи" chroot'а; внутри
>>>> chroot'а все пакеты ставятся одинаково, через rpmi; на этом
>>>> этапе уже нет информации о том, какие пакеты были указаны явно,
>>>> а какие вытянуты по зависимостям.
>>>
>>> А какая разница указаны ли пакеты явно или нет ? Они же все теперь часть
>>> live образа или rootfs. Их всех можно пометить как auto. Разве нет ?
>>
>> apt-get autoremove их всех удалит тогда.
>> Нужно отметить apt-mark auto только те пакеты, которых не было на входе hsh-install
>> Мы не можем это пофиксить в mki-install, то есть в mimage непосредственно?
> 
> Да как раз можем. В mki-image-install мы вычисляем список пакетов, который
> потом передаётся hsh-install.
> 

Есть проблема. На вход подаются виртуальные пакеты и пакеты вида "^kernel-(image|modules-())-(std-def)$",
поэтому простое вычитание пакетов для установки из установленных не даёт нужный результат.
Так что я не знаю как с этим быть.

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


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

* Re: [devel] hasher: пакеты, установленные по зависимостям
  2024-10-25 10:06         ` Антон Мидюков
@ 2024-10-25 11:31           ` Alexey Gladkov
  2024-10-25 11:44             ` Антон Мидюков
  0 siblings, 1 reply; 29+ messages in thread
From: Alexey Gladkov @ 2024-10-25 11:31 UTC (permalink / raw)
  To: ALT Linux Team development discussions

On Fri, Oct 25, 2024 at 01:06:08PM +0300, Антон Мидюков wrote:
> > Да как раз можем. В mki-image-install мы вычисляем список пакетов, который
> > потом передаётся hsh-install.
> > 
> 
> Есть проблема. На вход подаются виртуальные пакеты и пакеты вида "^kernel-(image|modules-())-(std-def)$",
> поэтому простое вычитание пакетов для установки из установленных не даёт нужный результат.
> Так что я не знаю как с этим быть.

В mki-image-install есть вот такой код:

mki_list_pkgs "$@" |
	xargs -r env -i PATH="$PATH" hsh-install $hasher_args -- "$dir"

Функция mki_list_pkgs() разворачивает паттерны (если они есть) в список.
Вывод этой утилиты нужно сохранить во временный файл и после hsh-install
скопировать список в образ и выполнить apt-mark в image.

-- 
Rgrds, legion



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

* Re: [devel] hasher: пакеты, установленные по зависимостям
  2024-10-25 11:31           ` Alexey Gladkov
@ 2024-10-25 11:44             ` Антон Мидюков
  2024-10-25 12:33               ` Alexey Gladkov
  0 siblings, 1 reply; 29+ messages in thread
From: Антон Мидюков @ 2024-10-25 11:44 UTC (permalink / raw)
  To: devel

25.10.2024 14:31, Alexey Gladkov пишет:
> On Fri, Oct 25, 2024 at 01:06:08PM +0300, Антон Мидюков wrote:
>>> Да как раз можем. В mki-image-install мы вычисляем список пакетов, который
>>> потом передаётся hsh-install.
>>>
>>
>> Есть проблема. На вход подаются виртуальные пакеты и пакеты вида "^kernel-(image|modules-())-(std-def)$",
>> поэтому простое вычитание пакетов для установки из установленных не даёт нужный результат.
>> Так что я не знаю как с этим быть.
> 
> В mki-image-install есть вот такой код:
> 
> mki_list_pkgs "$@" |
> 	xargs -r env -i PATH="$PATH" hsh-install $hasher_args -- "$dir"
> 
> Функция mki_list_pkgs() разворачивает паттерны (если они есть) в список.
> Вывод этой утилиты нужно сохранить во временный файл и после hsh-install
> скопировать список в образ и выполнить apt-mark в image.
> 

Я использовал mki_list_pkgs "$@" для получения входного списка.
Но не развернулись записи вида "^kernel-(image|modules-())-(std-def)$".

И всё равно остаётся проблема виртуальных пакетов, которых нет в репозитории в виде rpm.
Пакета, который устанавливается по этому провайдсу, не будет во входном списке.

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


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

* Re: [devel] hasher: пакеты, установленные по зависимостям
  2024-10-25 11:44             ` Антон Мидюков
@ 2024-10-25 12:33               ` Alexey Gladkov
  2024-10-25 13:13                 ` Антон Мидюков
  0 siblings, 1 reply; 29+ messages in thread
From: Alexey Gladkov @ 2024-10-25 12:33 UTC (permalink / raw)
  To: ALT Linux Team development discussions

On Fri, Oct 25, 2024 at 02:44:55PM +0300, Антон Мидюков wrote:
> 25.10.2024 14:31, Alexey Gladkov пишет:
> > On Fri, Oct 25, 2024 at 01:06:08PM +0300, Антон Мидюков wrote:
> >>> Да как раз можем. В mki-image-install мы вычисляем список пакетов, который
> >>> потом передаётся hsh-install.
> >>>
> >>
> >> Есть проблема. На вход подаются виртуальные пакеты и пакеты вида "^kernel-(image|modules-())-(std-def)$",
> >> поэтому простое вычитание пакетов для установки из установленных не даёт нужный результат.
> >> Так что я не знаю как с этим быть.
> > 
> > В mki-image-install есть вот такой код:
> > 
> > mki_list_pkgs "$@" |
> > 	xargs -r env -i PATH="$PATH" hsh-install $hasher_args -- "$dir"
> > 
> > Функция mki_list_pkgs() разворачивает паттерны (если они есть) в список.
> > Вывод этой утилиты нужно сохранить во временный файл и после hsh-install
> > скопировать список в образ и выполнить apt-mark в image.
> > 
> 
> Я использовал mki_list_pkgs "$@" для получения входного списка.
> Но не развернулись записи вида "^kernel-(image|modules-())-(std-def)$".

Чтобы такое развернуть можно попробовать использовать tools/mki-expand-pkgs.

> И всё равно остаётся проблема виртуальных пакетов, которых нет в репозитории в виде rpm.
> Пакета, который устанавливается по этому провайдсу, не будет во входном списке.

Можно попробовать сделать аналог mki-expand-pkgs и проверять по
"$aptbox/var/cache/pkgnames" все имена из списка. Это должно отфильтровать
виртуальные пакеты.

-- 
Rgrds, legion



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

* Re: [devel] hasher: пакеты, установленные по зависимостям
  2024-10-25 12:33               ` Alexey Gladkov
@ 2024-10-25 13:13                 ` Антон Мидюков
  2024-10-25 13:54                   ` [devel] " Sergey V Turchin
  2024-10-25 14:09                   ` [devel] " Alexey Gladkov
  0 siblings, 2 replies; 29+ messages in thread
From: Антон Мидюков @ 2024-10-25 13:13 UTC (permalink / raw)
  To: devel

25.10.2024 15:33, Alexey Gladkov пишет:
> On Fri, Oct 25, 2024 at 02:44:55PM +0300, Антон Мидюков wrote:
>> 25.10.2024 14:31, Alexey Gladkov пишет:
>>> On Fri, Oct 25, 2024 at 01:06:08PM +0300, Антон Мидюков wrote:
>>>>> Да как раз можем. В mki-image-install мы вычисляем список пакетов, который
>>>>> потом передаётся hsh-install.
>>>>>
>>>>
>>>> Есть проблема. На вход подаются виртуальные пакеты и пакеты вида "^kernel-(image|modules-())-(std-def)$",
>>>> поэтому простое вычитание пакетов для установки из установленных не даёт нужный результат.
>>>> Так что я не знаю как с этим быть.
>>>
>>> В mki-image-install есть вот такой код:
>>>
>>> mki_list_pkgs "$@" |
>>> 	xargs -r env -i PATH="$PATH" hsh-install $hasher_args -- "$dir"
>>>
>>> Функция mki_list_pkgs() разворачивает паттерны (если они есть) в список.
>>> Вывод этой утилиты нужно сохранить во временный файл и после hsh-install
>>> скопировать список в образ и выполнить apt-mark в image.
>>>
>>
>> Я использовал mki_list_pkgs "$@" для получения входного списка.
>> Но не развернулись записи вида "^kernel-(image|modules-())-(std-def)$".
> 
> Чтобы такое развернуть можно попробовать использовать tools/mki-expand-pkgs.
> 

Спасибо. Помог mki-expand-pkgs regexp

>> И всё равно остаётся проблема виртуальных пакетов, которых нет в репозитории в виде rpm.
>> Пакета, который устанавливается по этому провайдсу, не будет во входном списке.
> 
> Можно попробовать сделать аналог mki-expand-pkgs и проверять по
> "$aptbox/var/cache/pkgnames" все имена из списка. Это должно отфильтровать
> виртуальные пакеты.
> 

Виртуальные пакеты нужно не отфильтровать, а заменить на те, что будут выбраны при установке.
Чтобы их не пометило как auto.

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


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

* [devel]  Re:  hasher: пакеты, установленные по зависимостям
  2024-10-25 13:13                 ` Антон Мидюков
@ 2024-10-25 13:54                   ` Sergey V Turchin
  2024-10-25 14:09                   ` [devel] " Alexey Gladkov
  1 sibling, 0 replies; 29+ messages in thread
From: Sergey V Turchin @ 2024-10-25 13:54 UTC (permalink / raw)
  To: ALT Linux Team development discussions

On Friday, 25 October 2024 16:13:01 GMT+3 Антон Мидюков wrote:

[...]
> Виртуальные пакеты нужно не отфильтровать, а заменить на те, что будут
> выбраны при установке. Чтобы их не пометило как auto.
Да. Очень бы хотелось, т.к. пользуюсь, а сейчас так получилается, что указание 
в списке
virtual-package@META
приводит к игнорированию virtual-package вообще. А хотелось бы, чтобы 
зависимости реально выбранного пакета и он сам пометились, как manual.

-- 
Regards, Sergey.

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

* Re: [devel] hasher: пакеты, установленные по зависимостям
  2024-10-25 13:13                 ` Антон Мидюков
  2024-10-25 13:54                   ` [devel] " Sergey V Turchin
@ 2024-10-25 14:09                   ` Alexey Gladkov
  2024-10-25 15:23                     ` Антон Мидюков
  1 sibling, 1 reply; 29+ messages in thread
From: Alexey Gladkov @ 2024-10-25 14:09 UTC (permalink / raw)
  To: ALT Linux Team development discussions

On Fri, Oct 25, 2024 at 04:13:01PM +0300, Антон Мидюков wrote:
> >> Я использовал mki_list_pkgs "$@" для получения входного списка.
> >> Но не развернулись записи вида "^kernel-(image|modules-())-(std-def)$".
> > 
> > Чтобы такое развернуть можно попробовать использовать tools/mki-expand-pkgs.
> > 
> 
> Спасибо. Помог mki-expand-pkgs regexp
> 
> >> И всё равно остаётся проблема виртуальных пакетов, которых нет в репозитории в виде rpm.
> >> Пакета, который устанавливается по этому провайдсу, не будет во входном списке.
> > 
> > Можно попробовать сделать аналог mki-expand-pkgs и проверять по
> > "$aptbox/var/cache/pkgnames" все имена из списка. Это должно отфильтровать
> > виртуальные пакеты.
> > 
> 
> Виртуальные пакеты нужно не отфильтровать, а заменить на те, что будут выбраны при установке.
> Чтобы их не пометило как auto.

Я не знал этого. Я не до конца понимаю задачу.

Кажется можно сделать обёртку вокруг hsh-install и сохранять
/.in/.rpmi-install.list , который он создаёт. Таким образом получится
суммировать xargs. Насколько это хакерство с точки зрения hasher я не
знаю.

-- 
Rgrds, legion



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

* Re: [devel] hasher: пакеты, установленные по зависимостям
  2024-10-25 14:09                   ` [devel] " Alexey Gladkov
@ 2024-10-25 15:23                     ` Антон Мидюков
  2024-10-26 12:04                       ` Alexey Gladkov
  0 siblings, 1 reply; 29+ messages in thread
From: Антон Мидюков @ 2024-10-25 15:23 UTC (permalink / raw)
  To: devel

25.10.2024 17:09, Alexey Gladkov пишет:
> On Fri, Oct 25, 2024 at 04:13:01PM +0300, Антон Мидюков wrote:
>>>> Я использовал mki_list_pkgs "$@" для получения входного списка.
>>>> Но не развернулись записи вида "^kernel-(image|modules-())-(std-def)$".
>>>
>>> Чтобы такое развернуть можно попробовать использовать tools/mki-expand-pkgs.
>>>
>>
>> Спасибо. Помог mki-expand-pkgs regexp
>>
>>>> И всё равно остаётся проблема виртуальных пакетов, которых нет в репозитории в виде rpm.
>>>> Пакета, который устанавливается по этому провайдсу, не будет во входном списке.
>>>
>>> Можно попробовать сделать аналог mki-expand-pkgs и проверять по
>>> "$aptbox/var/cache/pkgnames" все имена из списка. Это должно отфильтровать
>>> виртуальные пакеты.
>>>
>>
>> Виртуальные пакеты нужно не отфильтровать, а заменить на те, что будут выбраны при установке.
>> Чтобы их не пометило как auto.
> 
> Я не знал этого. Я не до конца понимаю задачу.
> 

Задача сделать apt-mark auto для пакетов, которые установились по зависимостям.
Для этого я полагаю получить:
- список пакетов, которые устанавливаются вручную (install_pkgs)
- список пакетов установленных в hasher (all_pkgs)

Затем получить командой
comm -23 all_pkgs install_pkgs

список пакетов, которые нужно пометить, как установленные автоматически.
То есть вычитаем из всех пакетов пакеты, установленные вручную.
Загвоздка в том, чтобы получить адекватный список install_pkgs.
Думаю, что всё же можно заменить виртуальные пакеты в этом списке набором пакетов, предоставляющих их.
Избыточность (наличие пакетов, которые не устанавливаются) в этом списке не является проблемой.  

> Кажется можно сделать обёртку вокруг hsh-install и сохранять
> /.in/.rpmi-install.list , который он создаёт. Таким образом получится
> суммировать xargs. Насколько это хакерство с точки зрения hasher я не
> знаю.
> 

А что в этом списке? Надеюсь, не все пакеты для установки?

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


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

* Re: [devel] hasher: пакеты, установленные по зависимостям
  2024-10-25 15:23                     ` Антон Мидюков
@ 2024-10-26 12:04                       ` Alexey Gladkov
  2024-10-26 12:36                         ` Ivan A. Melnikov
  0 siblings, 1 reply; 29+ messages in thread
From: Alexey Gladkov @ 2024-10-26 12:04 UTC (permalink / raw)
  To: ALT Linux Team development discussions

On Fri, Oct 25, 2024 at 06:23:43PM +0300, Антон Мидюков wrote:
> >>>> И всё равно остаётся проблема виртуальных пакетов, которых нет в репозитории в виде rpm.
> >>>> Пакета, который устанавливается по этому провайдсу, не будет во входном списке.
> >>>
> >>> Можно попробовать сделать аналог mki-expand-pkgs и проверять по
> >>> "$aptbox/var/cache/pkgnames" все имена из списка. Это должно отфильтровать
> >>> виртуальные пакеты.
> >>>
> >>
> >> Виртуальные пакеты нужно не отфильтровать, а заменить на те, что будут выбраны при установке.
> >> Чтобы их не пометило как auto.
> > 
> > Я не знал этого. Я не до конца понимаю задачу.
> > 
> 
> Задача сделать apt-mark auto для пакетов, которые установились по зависимостям.
> Для этого я полагаю получить:
> - список пакетов, которые устанавливаются вручную (install_pkgs)

Даже этот шаг уже сложная задача. У mkimage есть список с регулярные
выражения и список пакетов включая виртуальные пакеты. Тут мы их никак не
разворачиваем. Мы можем только регэкспы развернуть.

То есть у mkimage нет чистого (без виртуальных) списка пакетов.

> - список пакетов установленных в hasher (all_pkgs)

Если я правильно понял суть этого списка, то это как раз
/.in/.rpmi-install.list. Если нужны именно установленные, то его тоже
можно получить.

> Затем получить командой
> comm -23 all_pkgs install_pkgs
> 
> список пакетов, которые нужно пометить, как установленные автоматически.
> То есть вычитаем из всех пакетов пакеты, установленные вручную.
> Загвоздка в том, чтобы получить адекватный список install_pkgs.
> Думаю, что всё же можно заменить виртуальные пакеты в этом списке набором пакетов, предоставляющих их.
> Избыточность (наличие пакетов, которые не устанавливаются) в этом списке не является проблемой.

Я пока не знаю хорошего способа как получить список выбранных пакетов.
Приходит в голову что-то такое:

aptbox/apt-get -s install webclient xvt |
	sed -n -r -e 's#^Selecting ([^ ]+) for .*#\1#p'

Если брать пакеты по одному, то можно понять во что развернётся webclient,
но этот подход займёт вечность. Если брать пакеты скопом, то реальные
пакеты мы узнаем, но виртуальные пакеты останутся в списке.

Возможно, стоит принять то, что в списке есть виртуальные пакеты и
проверять имена пакетов перед apt-mark. Например так:

xargs -r rpmquery --qf='%{name}\n' < install_with_virtual_pkgs 2>/dev/null |
	xargs -r apt-mark manual

То есть моя текущая идея состоит в том чтобы:

1. В mki-image-install сохранить список пакетов и развернуть регулярные
выражения.

2. Пройтись по этому списку и добавить в него пакеты, которые выбирает apt
для виртуальных пакетов. Имена виртуальных пакетов всё ещё там и мы не
знаем эти имена.

3. После hsh-install мы берём дополненный список и, фильтруя имена,
используем для apt-mark.

> > Кажется можно сделать обёртку вокруг hsh-install и сохранять
> > /.in/.rpmi-install.list , который он создаёт. Таким образом получится
> > суммировать xargs. Насколько это хакерство с точки зрения hasher я не
> > знаю.
> > 
> 
> А что в этом списке? Надеюсь, не все пакеты для установки?

Я ошибся. Этот список получается уже после print_uris то есть после
получения зависимостей.

-- 
Rgrds, legion



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

* Re: [devel] hasher: пакеты, установленные по зависимостям
  2024-10-26 12:04                       ` Alexey Gladkov
@ 2024-10-26 12:36                         ` Ivan A. Melnikov
  2024-10-26 13:03                           ` Антон Мидюков
  0 siblings, 1 reply; 29+ messages in thread
From: Ivan A. Melnikov @ 2024-10-26 12:36 UTC (permalink / raw)
  To: ALT Linux Team development discussions

On Sat, Oct 26, 2024 at 02:04:47PM GMT, Alexey Gladkov wrote:
> On Fri, Oct 25, 2024 at 06:23:43PM +0300, Антон Мидюков wrote:
> > >>>> И всё равно остаётся проблема виртуальных пакетов, которых нет в репозитории в виде rpm.
> > >>>> Пакета, который устанавливается по этому провайдсу, не будет во входном списке.
> > >>>
> > >>> Можно попробовать сделать аналог mki-expand-pkgs и проверять по
> > >>> "$aptbox/var/cache/pkgnames" все имена из списка. Это должно отфильтровать
> > >>> виртуальные пакеты.
> > >>>
> > >>
> > >> Виртуальные пакеты нужно не отфильтровать, а заменить на те, что будут выбраны при установке.
> > >> Чтобы их не пометило как auto.
> > > 
> > > Я не знал этого. Я не до конца понимаю задачу.
> > > 
> > 
> > Задача сделать apt-mark auto для пакетов, которые установились по зависимостям.
> > Для этого я полагаю получить:
> > - список пакетов, которые устанавливаются вручную (install_pkgs)
> 
> Даже этот шаг уже сложная задача. У mkimage есть список с регулярные
> выражения и список пакетов включая виртуальные пакеты. Тут мы их никак не
> разворачиваем. Мы можем только регэкспы развернуть.
> 
> То есть у mkimage нет чистого (без виртуальных) списка пакетов.
> 
> > - список пакетов установленных в hasher (all_pkgs)
> 
> Если я правильно понял суть этого списка, то это как раз
> /.in/.rpmi-install.list. Если нужны именно установленные, то его тоже
> можно получить.
> 
> > Затем получить командой
> > comm -23 all_pkgs install_pkgs
> > 
> > список пакетов, которые нужно пометить, как установленные автоматически.
> > То есть вычитаем из всех пакетов пакеты, установленные вручную.
> > Загвоздка в том, чтобы получить адекватный список install_pkgs.
> > Думаю, что всё же можно заменить виртуальные пакеты в этом списке набором пакетов, предоставляющих их.
> > Избыточность (наличие пакетов, которые не устанавливаются) в этом списке не является проблемой.
> 
> Я пока не знаю хорошего способа как получить список выбранных пакетов.
> Приходит в голову что-то такое:
> 
> aptbox/apt-get -s install webclient xvt |
> 	sed -n -r -e 's#^Selecting ([^ ]+) for .*#\1#p'

Нельзя ли попробовать "развиртуализировать" пакеты уже внутри
хешера, при выполнении apt-mark?

# apt-mark manual $(rpm -q --whatprovides xvt webclient)

Тут будет немного лишнего если в chroot попали несколько
провайдеров, но я думаю это не страшно.

-- 
  wbr,
    iv m


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

* Re: [devel] hasher: пакеты, установленные по зависимостям
  2024-10-26 12:36                         ` Ivan A. Melnikov
@ 2024-10-26 13:03                           ` Антон Мидюков
  2024-10-26 14:19                             ` Антон Мидюков
  0 siblings, 1 reply; 29+ messages in thread
From: Антон Мидюков @ 2024-10-26 13:03 UTC (permalink / raw)
  To: devel

26.10.2024 15:36, Ivan A. Melnikov пишет:
> On Sat, Oct 26, 2024 at 02:04:47PM GMT, Alexey Gladkov wrote:
>> On Fri, Oct 25, 2024 at 06:23:43PM +0300, Антон Мидюков wrote:
>>>>>>> И всё равно остаётся проблема виртуальных пакетов, которых нет в репозитории в виде rpm.
>>>>>>> Пакета, который устанавливается по этому провайдсу, не будет во входном списке.
>>>>>>
>>>>>> Можно попробовать сделать аналог mki-expand-pkgs и проверять по
>>>>>> "$aptbox/var/cache/pkgnames" все имена из списка. Это должно отфильтровать
>>>>>> виртуальные пакеты.
>>>>>>
>>>>>
>>>>> Виртуальные пакеты нужно не отфильтровать, а заменить на те, что будут выбраны при установке.
>>>>> Чтобы их не пометило как auto.
>>>>
>>>> Я не знал этого. Я не до конца понимаю задачу.
>>>>
>>>
>>> Задача сделать apt-mark auto для пакетов, которые установились по зависимостям.
>>> Для этого я полагаю получить:
>>> - список пакетов, которые устанавливаются вручную (install_pkgs)
>>
>> Даже этот шаг уже сложная задача. У mkimage есть список с регулярные
>> выражения и список пакетов включая виртуальные пакеты. Тут мы их никак не
>> разворачиваем. Мы можем только регэкспы развернуть.
>>
>> То есть у mkimage нет чистого (без виртуальных) списка пакетов.
>>
>>> - список пакетов установленных в hasher (all_pkgs)
>>
>> Если я правильно понял суть этого списка, то это как раз
>> /.in/.rpmi-install.list. Если нужны именно установленные, то его тоже
>> можно получить.
>>
>>> Затем получить командой
>>> comm -23 all_pkgs install_pkgs
>>>
>>> список пакетов, которые нужно пометить, как установленные автоматически.
>>> То есть вычитаем из всех пакетов пакеты, установленные вручную.
>>> Загвоздка в том, чтобы получить адекватный список install_pkgs.
>>> Думаю, что всё же можно заменить виртуальные пакеты в этом списке набором пакетов, предоставляющих их.
>>> Избыточность (наличие пакетов, которые не устанавливаются) в этом списке не является проблемой.
>>
>> Я пока не знаю хорошего способа как получить список выбранных пакетов.
>> Приходит в голову что-то такое:
>>
>> aptbox/apt-get -s install webclient xvt |
>> 	sed -n -r -e 's#^Selecting ([^ ]+) for .*#\1#p'
> 
> Нельзя ли попробовать "развиртуализировать" пакеты уже внутри
> хешера, при выполнении apt-mark?
> 
> # apt-mark manual $(rpm -q --whatprovides xvt webclient)
> 
> Тут будет немного лишнего если в chroot попали несколько
> провайдеров, но я думаю это не страшно.
> 

Нам нужно пометить пакеты установленные автоматически. В hasher все пакеты помечены как manual.
То есть задача обратная.
Повторюсь, что для решения задачи достаточно поместить в список пакетов, установленных вручную, вместе с виртуальными пакетами все пакеты, которые их предоставляют.

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


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

* Re: [devel] hasher: пакеты, установленные по зависимостям
  2024-10-26 13:03                           ` Антон Мидюков
@ 2024-10-26 14:19                             ` Антон Мидюков
  2024-10-26 17:01                               ` Alexey Gladkov
  2024-10-27 12:23                               ` Alexey Gladkov
  0 siblings, 2 replies; 29+ messages in thread
From: Антон Мидюков @ 2024-10-26 14:19 UTC (permalink / raw)
  To: devel

26.10.2024 16:03, Антон Мидюков пишет:
> 26.10.2024 15:36, Ivan A. Melnikov пишет:
>> On Sat, Oct 26, 2024 at 02:04:47PM GMT, Alexey Gladkov wrote:
>>> On Fri, Oct 25, 2024 at 06:23:43PM +0300, Антон Мидюков wrote:
>>>>>>>> И всё равно остаётся проблема виртуальных пакетов, которых нет в репозитории в виде rpm.
>>>>>>>> Пакета, который устанавливается по этому провайдсу, не будет во входном списке.
>>>>>>>
>>>>>>> Можно попробовать сделать аналог mki-expand-pkgs и проверять по
>>>>>>> "$aptbox/var/cache/pkgnames" все имена из списка. Это должно отфильтровать
>>>>>>> виртуальные пакеты.
>>>>>>>
>>>>>>
>>>>>> Виртуальные пакеты нужно не отфильтровать, а заменить на те, что будут выбраны при установке.
>>>>>> Чтобы их не пометило как auto.
>>>>>
>>>>> Я не знал этого. Я не до конца понимаю задачу.
>>>>>
>>>>
>>>> Задача сделать apt-mark auto для пакетов, которые установились по зависимостям.
>>>> Для этого я полагаю получить:
>>>> - список пакетов, которые устанавливаются вручную (install_pkgs)
>>>
>>> Даже этот шаг уже сложная задача. У mkimage есть список с регулярные
>>> выражения и список пакетов включая виртуальные пакеты. Тут мы их никак не
>>> разворачиваем. Мы можем только регэкспы развернуть.
>>>
>>> То есть у mkimage нет чистого (без виртуальных) списка пакетов.
>>>
>>>> - список пакетов установленных в hasher (all_pkgs)
>>>
>>> Если я правильно понял суть этого списка, то это как раз
>>> /.in/.rpmi-install.list. Если нужны именно установленные, то его тоже
>>> можно получить.
>>>
>>>> Затем получить командой
>>>> comm -23 all_pkgs install_pkgs
>>>>
>>>> список пакетов, которые нужно пометить, как установленные автоматически.
>>>> То есть вычитаем из всех пакетов пакеты, установленные вручную.
>>>> Загвоздка в том, чтобы получить адекватный список install_pkgs.
>>>> Думаю, что всё же можно заменить виртуальные пакеты в этом списке набором пакетов, предоставляющих их.
>>>> Избыточность (наличие пакетов, которые не устанавливаются) в этом списке не является проблемой.
>>>
>>> Я пока не знаю хорошего способа как получить список выбранных пакетов.
>>> Приходит в голову что-то такое:
>>>
>>> aptbox/apt-get -s install webclient xvt |
>>> 	sed -n -r -e 's#^Selecting ([^ ]+) for .*#\1#p'
>>
>> Нельзя ли попробовать "развиртуализировать" пакеты уже внутри
>> хешера, при выполнении apt-mark?
>>
>> # apt-mark manual $(rpm -q --whatprovides xvt webclient)
>>
>> Тут будет немного лишнего если в chroot попали несколько
>> провайдеров, но я думаю это не страшно.
>>
> 
> Нам нужно пометить пакеты установленные автоматически. В hasher все пакеты помечены как manual.
> То есть задача обратная.
> Повторюсь, что для решения задачи достаточно поместить в список пакетов, установленных вручную, вместе с виртуальными пакетами все пакеты, которые их предоставляют.
> 

Но идея с развиртуализацией работает. Спасибо!

У меня получился такой код:

diff --git a/tools/mki-install b/tools/mki-install
index 8c8cad3..ac23f76 100755
--- a/tools/mki-install
+++ b/tools/mki-install
@@ -19,3 +19,12 @@ hasher_args="$verbose $quiet ${HSH_EXCLUDE_DOCS:+--excludedocs} ${HSH_NUMBER:+--
 
 mki_list_pkgs "$@" |
 	xargs -r env -i PATH="$PATH" hsh-install $hasher_args -- "$dir"
+
+hsh-run --rooter -- "$dir" rpm -q apt || exit 0
+hsh-run --rooter -- "$dir" rpm -q --whatprovides --queryformat "%{NAME}\n" \
+	$(mki-expand-pkgs regexp $(mki_list_pkgs "$@")) |
+	sort -u > "$TMP"/install_pkgs
+hsh-run --rooter -- "$dir" rpm -qa --queryformat "%{NAME}\n" |
+	sort -u > "$TMP"/all_pkgs
+hsh-run --rooter -- "$dir" apt-mark auto \
+	$(comm -23 "$TMP"/all_pkgs "$TMP"/install_pkgs)



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


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

* Re: [devel] hasher: пакеты, установленные по зависимостям
  2024-10-26 14:19                             ` Антон Мидюков
@ 2024-10-26 17:01                               ` Alexey Gladkov
  2024-10-27 11:26                                 ` Alexey Gladkov
  2024-10-27 12:23                               ` Alexey Gladkov
  1 sibling, 1 reply; 29+ messages in thread
From: Alexey Gladkov @ 2024-10-26 17:01 UTC (permalink / raw)
  To: ALT Linux Team development discussions

On Sat, Oct 26, 2024 at 05:19:50PM +0300, Антон Мидюков wrote:
> >>>> Затем получить командой
> >>>> comm -23 all_pkgs install_pkgs
> >>>>
> >>>> список пакетов, которые нужно пометить, как установленные автоматически.
> >>>> То есть вычитаем из всех пакетов пакеты, установленные вручную.
> >>>> Загвоздка в том, чтобы получить адекватный список install_pkgs.
> >>>> Думаю, что всё же можно заменить виртуальные пакеты в этом списке набором пакетов, предоставляющих их.
> >>>> Избыточность (наличие пакетов, которые не устанавливаются) в этом списке не является проблемой.
> >>>
> >>> Я пока не знаю хорошего способа как получить список выбранных пакетов.
> >>> Приходит в голову что-то такое:
> >>>
> >>> aptbox/apt-get -s install webclient xvt |
> >>> 	sed -n -r -e 's#^Selecting ([^ ]+) for .*#\1#p'
> >>
> >> Нельзя ли попробовать "развиртуализировать" пакеты уже внутри
> >> хешера, при выполнении apt-mark?
> >>
> >> # apt-mark manual $(rpm -q --whatprovides xvt webclient)
> >>
> >> Тут будет немного лишнего если в chroot попали несколько
> >> провайдеров, но я думаю это не страшно.
> >>
> > 
> > Нам нужно пометить пакеты установленные автоматически. В hasher все пакеты помечены как manual.
> > То есть задача обратная.
> > Повторюсь, что для решения задачи достаточно поместить в список пакетов, установленных вручную, вместе с виртуальными пакетами все пакеты, которые их предоставляют.
> > 
> 
> Но идея с развиртуализацией работает. Спасибо!
> 
> У меня получился такой код:
> 
> diff --git a/tools/mki-install b/tools/mki-install
> index 8c8cad3..ac23f76 100755
> --- a/tools/mki-install
> +++ b/tools/mki-install
> @@ -19,3 +19,12 @@ hasher_args="$verbose $quiet ${HSH_EXCLUDE_DOCS:+--excludedocs} ${HSH_NUMBER:+--

Тут не хватает некоторого количества проверок ))

>  mki_list_pkgs "$@" |
>  	xargs -r env -i PATH="$PATH" hsh-install $hasher_args -- "$dir"
> +
> +hsh-run --rooter -- "$dir" rpm -q apt || exit 0
> +hsh-run --rooter -- "$dir" rpm -q --whatprovides --queryformat "%{NAME}\n" \

Зачем нужен --whatprovides ?

У нас же после `mki-expand-pkgs regexp` уже список пакетов бинарных и
виртуальных. Когда мы делаем `rpmquery --qf='%{name}\n'` ровно те же имена
пакетов, если это пакеты.

> +	$(mki-expand-pkgs regexp $(mki_list_pkgs "$@")) |
> +	sort -u > "$TMP"/install_pkgs
> +hsh-run --rooter -- "$dir" rpm -qa --queryformat "%{NAME}\n" |
> +	sort -u > "$TMP"/all_pkgs
> +hsh-run --rooter -- "$dir" apt-mark auto \
> +	$(comm -23 "$TMP"/all_pkgs "$TMP"/install_pkgs)

Не проще будет после установки пакетов не сделать auto всем, а потом
manual установленным ?

Подход более топорный, но в этом случае не нужно заморачиваться с all_pkgs
и comm.

-- 
Rgrds, legion



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

* Re: [devel] hasher: пакеты, установленные по зависимостям
  2024-10-26 17:01                               ` Alexey Gladkov
@ 2024-10-27 11:26                                 ` Alexey Gladkov
  2024-10-27 11:32                                   ` Антон Мидюков
  0 siblings, 1 reply; 29+ messages in thread
From: Alexey Gladkov @ 2024-10-27 11:26 UTC (permalink / raw)
  To: ALT Linux Team development discussions

On Sat, Oct 26, 2024 at 07:01:15PM +0200, Alexey Gladkov wrote:
> On Sat, Oct 26, 2024 at 05:19:50PM +0300, Антон Мидюков wrote:
> > >>>> Затем получить командой
> > >>>> comm -23 all_pkgs install_pkgs
> > >>>>
> > >>>> список пакетов, которые нужно пометить, как установленные автоматически.
> > >>>> То есть вычитаем из всех пакетов пакеты, установленные вручную.
> > >>>> Загвоздка в том, чтобы получить адекватный список install_pkgs.
> > >>>> Думаю, что всё же можно заменить виртуальные пакеты в этом списке набором пакетов, предоставляющих их.
> > >>>> Избыточность (наличие пакетов, которые не устанавливаются) в этом списке не является проблемой.
> > >>>
> > >>> Я пока не знаю хорошего способа как получить список выбранных пакетов.
> > >>> Приходит в голову что-то такое:
> > >>>
> > >>> aptbox/apt-get -s install webclient xvt |
> > >>> 	sed -n -r -e 's#^Selecting ([^ ]+) for .*#\1#p'
> > >>
> > >> Нельзя ли попробовать "развиртуализировать" пакеты уже внутри
> > >> хешера, при выполнении apt-mark?
> > >>
> > >> # apt-mark manual $(rpm -q --whatprovides xvt webclient)
> > >>
> > >> Тут будет немного лишнего если в chroot попали несколько
> > >> провайдеров, но я думаю это не страшно.
> > >>
> > > 
> > > Нам нужно пометить пакеты установленные автоматически. В hasher все пакеты помечены как manual.
> > > То есть задача обратная.
> > > Повторюсь, что для решения задачи достаточно поместить в список пакетов, установленных вручную, вместе с виртуальными пакетами все пакеты, которые их предоставляют.
> > > 
> > 
> > Но идея с развиртуализацией работает. Спасибо!
> > 
> > У меня получился такой код:
> > 
> > diff --git a/tools/mki-install b/tools/mki-install
> > index 8c8cad3..ac23f76 100755
> > --- a/tools/mki-install
> > +++ b/tools/mki-install
> > @@ -19,3 +19,12 @@ hasher_args="$verbose $quiet ${HSH_EXCLUDE_DOCS:+--excludedocs} ${HSH_NUMBER:+--
> 
> Тут не хватает некоторого количества проверок ))
> 
> >  mki_list_pkgs "$@" |
> >  	xargs -r env -i PATH="$PATH" hsh-install $hasher_args -- "$dir"
> > +
> > +hsh-run --rooter -- "$dir" rpm -q apt || exit 0
> > +hsh-run --rooter -- "$dir" rpm -q --whatprovides --queryformat "%{NAME}\n" \
> 
> Зачем нужен --whatprovides ?
> 
> У нас же после `mki-expand-pkgs regexp` уже список пакетов бинарных и
> виртуальных. Когда мы делаем `rpmquery --qf='%{name}\n'` ровно те же имена
> пакетов, если это пакеты.

А, ясно. Это установленные пакеты + виртуальные.

> > +	$(mki-expand-pkgs regexp $(mki_list_pkgs "$@")) |
> > +	sort -u > "$TMP"/install_pkgs
> > +hsh-run --rooter -- "$dir" rpm -qa --queryformat "%{NAME}\n" |
> > +	sort -u > "$TMP"/all_pkgs
> > +hsh-run --rooter -- "$dir" apt-mark auto \
> > +	$(comm -23 "$TMP"/all_pkgs "$TMP"/install_pkgs)
> 
> Не проще будет после установки пакетов не сделать auto всем, а потом
> manual установленным ?
> 
> Подход более топорный, но в этом случае не нужно заморачиваться с all_pkgs
> и comm.

Да, ваш вариант хорош.

-- 
Rgrds, legion



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

* Re: [devel] hasher: пакеты, установленные по зависимостям
  2024-10-27 11:26                                 ` Alexey Gladkov
@ 2024-10-27 11:32                                   ` Антон Мидюков
  2024-10-27 12:25                                     ` Alexey Gladkov
  0 siblings, 1 reply; 29+ messages in thread
From: Антон Мидюков @ 2024-10-27 11:32 UTC (permalink / raw)
  To: devel

27.10.2024 14:26, Alexey Gladkov пишет:
> On Sat, Oct 26, 2024 at 07:01:15PM +0200, Alexey Gladkov wrote:
>> On Sat, Oct 26, 2024 at 05:19:50PM +0300, Антон Мидюков wrote:
>>>>>>> Затем получить командой
>>>>>>> comm -23 all_pkgs install_pkgs
>>>>>>>
>>>>>>> список пакетов, которые нужно пометить, как установленные автоматически.
>>>>>>> То есть вычитаем из всех пакетов пакеты, установленные вручную.
>>>>>>> Загвоздка в том, чтобы получить адекватный список install_pkgs.
>>>>>>> Думаю, что всё же можно заменить виртуальные пакеты в этом списке набором пакетов, предоставляющих их.
>>>>>>> Избыточность (наличие пакетов, которые не устанавливаются) в этом списке не является проблемой.
>>>>>>
>>>>>> Я пока не знаю хорошего способа как получить список выбранных пакетов.
>>>>>> Приходит в голову что-то такое:
>>>>>>
>>>>>> aptbox/apt-get -s install webclient xvt |
>>>>>> 	sed -n -r -e 's#^Selecting ([^ ]+) for .*#\1#p'
>>>>>
>>>>> Нельзя ли попробовать "развиртуализировать" пакеты уже внутри
>>>>> хешера, при выполнении apt-mark?
>>>>>
>>>>> # apt-mark manual $(rpm -q --whatprovides xvt webclient)
>>>>>
>>>>> Тут будет немного лишнего если в chroot попали несколько
>>>>> провайдеров, но я думаю это не страшно.
>>>>>
>>>>
>>>> Нам нужно пометить пакеты установленные автоматически. В hasher все пакеты помечены как manual.
>>>> То есть задача обратная.
>>>> Повторюсь, что для решения задачи достаточно поместить в список пакетов, установленных вручную, вместе с виртуальными пакетами все пакеты, которые их предоставляют.
>>>>
>>>
>>> Но идея с развиртуализацией работает. Спасибо!
>>>
>>> У меня получился такой код:
>>>
>>> diff --git a/tools/mki-install b/tools/mki-install
>>> index 8c8cad3..ac23f76 100755
>>> --- a/tools/mki-install
>>> +++ b/tools/mki-install
>>> @@ -19,3 +19,12 @@ hasher_args="$verbose $quiet ${HSH_EXCLUDE_DOCS:+--excludedocs} ${HSH_NUMBER:+--
>>
>> Тут не хватает некоторого количества проверок ))
>>
>>>  mki_list_pkgs "$@" |
>>>  	xargs -r env -i PATH="$PATH" hsh-install $hasher_args -- "$dir"
>>> +
>>> +hsh-run --rooter -- "$dir" rpm -q apt || exit 0
>>> +hsh-run --rooter -- "$dir" rpm -q --whatprovides --queryformat "%{NAME}\n" \
>>
>> Зачем нужен --whatprovides ?
>>
>> У нас же после `mki-expand-pkgs regexp` уже список пакетов бинарных и
>> виртуальных. Когда мы делаем `rpmquery --qf='%{name}\n'` ровно те же имена
>> пакетов, если это пакеты.
> 
> А, ясно. Это установленные пакеты + виртуальные.
> 
>>> +	$(mki-expand-pkgs regexp $(mki_list_pkgs "$@")) |
>>> +	sort -u > "$TMP"/install_pkgs
>>> +hsh-run --rooter -- "$dir" rpm -qa --queryformat "%{NAME}\n" |
>>> +	sort -u > "$TMP"/all_pkgs
>>> +hsh-run --rooter -- "$dir" apt-mark auto \
>>> +	$(comm -23 "$TMP"/all_pkgs "$TMP"/install_pkgs)
>>
>> Не проще будет после установки пакетов не сделать auto всем, а потом
>> manual установленным ?
>>
>> Подход более топорный, но в этом случае не нужно заморачиваться с all_pkgs
>> и comm.
> 
> Да, ваш вариант хорош.
> 

У меня вопрос. Нормально эти временные списки в $TMP создавать? Или есть более подходящее место?

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


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

* Re: [devel] hasher: пакеты, установленные по зависимостям
  2024-10-26 14:19                             ` Антон Мидюков
  2024-10-26 17:01                               ` Alexey Gladkov
@ 2024-10-27 12:23                               ` Alexey Gladkov
  2024-10-27 12:35                                 ` Антон Мидюков
  2024-10-27 12:37                                 ` Alexey Gladkov
  1 sibling, 2 replies; 29+ messages in thread
From: Alexey Gladkov @ 2024-10-27 12:23 UTC (permalink / raw)
  To: ALT Linux Team development discussions

On Sat, Oct 26, 2024 at 05:19:50PM +0300, Антон Мидюков wrote:
> Но идея с развиртуализацией работает. Спасибо!
> 
> У меня получился такой код:
> 
> diff --git a/tools/mki-install b/tools/mki-install
> index 8c8cad3..ac23f76 100755
> --- a/tools/mki-install
> +++ b/tools/mki-install
> @@ -19,3 +19,12 @@ hasher_args="$verbose $quiet ${HSH_EXCLUDE_DOCS:+--excludedocs} ${HSH_NUMBER:+--
>  
>  mki_list_pkgs "$@" |
>  	xargs -r env -i PATH="$PATH" hsh-install $hasher_args -- "$dir"
> +
> +hsh-run --rooter -- "$dir" rpm -q apt || exit 0
> +hsh-run --rooter -- "$dir" rpm -q --whatprovides --queryformat "%{NAME}\n" \
> +	$(mki-expand-pkgs regexp $(mki_list_pkgs "$@")) |
> +	sort -u > "$TMP"/install_pkgs
> +hsh-run --rooter -- "$dir" rpm -qa --queryformat "%{NAME}\n" |
> +	sort -u > "$TMP"/all_pkgs
> +hsh-run --rooter -- "$dir" apt-mark auto \
> +	$(comm -23 "$TMP"/all_pkgs "$TMP"/install_pkgs)

Но меня всё ещё кое-что смущает. В install_pkgs оказывается изначальный
список пакетов плюс виртуальные provides. Там не будет пакетов, которые
выберет apt для этих виртуальных пакетов. Например в изначальном списке
есть xvt, но будет xterm, который обычно вытягивается. После `rpm -q` мы
уберём виртуальное имя xvt т.к. это не настоящее имя пакета.

Получается, что после comm xterm, который установится по xvt будет помечен
auto, а это не то, что ты хочешь, кажется.

В install_pkgs необходимо добавить те пакеты, которые будут выбраны
apt'ом.

-- 
Rgrds, legion



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

* Re: [devel] hasher: пакеты, установленные по зависимостям
  2024-10-27 11:32                                   ` Антон Мидюков
@ 2024-10-27 12:25                                     ` Alexey Gladkov
  0 siblings, 0 replies; 29+ messages in thread
From: Alexey Gladkov @ 2024-10-27 12:25 UTC (permalink / raw)
  To: ALT Linux Team development discussions

On Sun, Oct 27, 2024 at 02:32:34PM +0300, Антон Мидюков wrote:
> 27.10.2024 14:26, Alexey Gladkov пишет:
> > On Sat, Oct 26, 2024 at 07:01:15PM +0200, Alexey Gladkov wrote:
> >> On Sat, Oct 26, 2024 at 05:19:50PM +0300, Антон Мидюков wrote:
> >>>>>>> Затем получить командой
> >>>>>>> comm -23 all_pkgs install_pkgs
> >>>>>>>
> >>>>>>> список пакетов, которые нужно пометить, как установленные автоматически.
> >>>>>>> То есть вычитаем из всех пакетов пакеты, установленные вручную.
> >>>>>>> Загвоздка в том, чтобы получить адекватный список install_pkgs.
> >>>>>>> Думаю, что всё же можно заменить виртуальные пакеты в этом списке набором пакетов, предоставляющих их.
> >>>>>>> Избыточность (наличие пакетов, которые не устанавливаются) в этом списке не является проблемой.
> >>>>>>
> >>>>>> Я пока не знаю хорошего способа как получить список выбранных пакетов.
> >>>>>> Приходит в голову что-то такое:
> >>>>>>
> >>>>>> aptbox/apt-get -s install webclient xvt |
> >>>>>> 	sed -n -r -e 's#^Selecting ([^ ]+) for .*#\1#p'
> >>>>>
> >>>>> Нельзя ли попробовать "развиртуализировать" пакеты уже внутри
> >>>>> хешера, при выполнении apt-mark?
> >>>>>
> >>>>> # apt-mark manual $(rpm -q --whatprovides xvt webclient)
> >>>>>
> >>>>> Тут будет немного лишнего если в chroot попали несколько
> >>>>> провайдеров, но я думаю это не страшно.
> >>>>>
> >>>>
> >>>> Нам нужно пометить пакеты установленные автоматически. В hasher все пакеты помечены как manual.
> >>>> То есть задача обратная.
> >>>> Повторюсь, что для решения задачи достаточно поместить в список пакетов, установленных вручную, вместе с виртуальными пакетами все пакеты, которые их предоставляют.
> >>>>
> >>>
> >>> Но идея с развиртуализацией работает. Спасибо!
> >>>
> >>> У меня получился такой код:
> >>>
> >>> diff --git a/tools/mki-install b/tools/mki-install
> >>> index 8c8cad3..ac23f76 100755
> >>> --- a/tools/mki-install
> >>> +++ b/tools/mki-install
> >>> @@ -19,3 +19,12 @@ hasher_args="$verbose $quiet ${HSH_EXCLUDE_DOCS:+--excludedocs} ${HSH_NUMBER:+--
> >>
> >> Тут не хватает некоторого количества проверок ))
> >>
> >>>  mki_list_pkgs "$@" |
> >>>  	xargs -r env -i PATH="$PATH" hsh-install $hasher_args -- "$dir"
> >>> +
> >>> +hsh-run --rooter -- "$dir" rpm -q apt || exit 0
> >>> +hsh-run --rooter -- "$dir" rpm -q --whatprovides --queryformat "%{NAME}\n" \
> >>
> >> Зачем нужен --whatprovides ?
> >>
> >> У нас же после `mki-expand-pkgs regexp` уже список пакетов бинарных и
> >> виртуальных. Когда мы делаем `rpmquery --qf='%{name}\n'` ровно те же имена
> >> пакетов, если это пакеты.
> > 
> > А, ясно. Это установленные пакеты + виртуальные.
> > 
> >>> +	$(mki-expand-pkgs regexp $(mki_list_pkgs "$@")) |
> >>> +	sort -u > "$TMP"/install_pkgs
> >>> +hsh-run --rooter -- "$dir" rpm -qa --queryformat "%{NAME}\n" |
> >>> +	sort -u > "$TMP"/all_pkgs
> >>> +hsh-run --rooter -- "$dir" apt-mark auto \
> >>> +	$(comm -23 "$TMP"/all_pkgs "$TMP"/install_pkgs)
> >>
> >> Не проще будет после установки пакетов не сделать auto всем, а потом
> >> manual установленным ?
> >>
> >> Подход более топорный, но в этом случае не нужно заморачиваться с all_pkgs
> >> и comm.
> > 
> > Да, ваш вариант хорош.
> > 
> 
> У меня вопрос. Нормально эти временные списки в $TMP создавать? Или есть более подходящее место?

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

-- 
Rgrds, legion



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

* Re: [devel] hasher: пакеты, установленные по зависимостям
  2024-10-27 12:23                               ` Alexey Gladkov
@ 2024-10-27 12:35                                 ` Антон Мидюков
  2024-10-27 12:42                                   ` Alexey Gladkov
  2024-10-27 12:37                                 ` Alexey Gladkov
  1 sibling, 1 reply; 29+ messages in thread
From: Антон Мидюков @ 2024-10-27 12:35 UTC (permalink / raw)
  To: devel

27.10.2024 15:23, Alexey Gladkov пишет:
> On Sat, Oct 26, 2024 at 05:19:50PM +0300, Антон Мидюков wrote:
>> Но идея с развиртуализацией работает. Спасибо!
>>
>> У меня получился такой код:
>>
>> diff --git a/tools/mki-install b/tools/mki-install
>> index 8c8cad3..ac23f76 100755
>> --- a/tools/mki-install
>> +++ b/tools/mki-install
>> @@ -19,3 +19,12 @@ hasher_args="$verbose $quiet ${HSH_EXCLUDE_DOCS:+--excludedocs} ${HSH_NUMBER:+--
>>  
>>  mki_list_pkgs "$@" |
>>  	xargs -r env -i PATH="$PATH" hsh-install $hasher_args -- "$dir"
>> +
>> +hsh-run --rooter -- "$dir" rpm -q apt || exit 0
>> +hsh-run --rooter -- "$dir" rpm -q --whatprovides --queryformat "%{NAME}\n" \
>> +	$(mki-expand-pkgs regexp $(mki_list_pkgs "$@")) |
>> +	sort -u > "$TMP"/install_pkgs
>> +hsh-run --rooter -- "$dir" rpm -qa --queryformat "%{NAME}\n" |
>> +	sort -u > "$TMP"/all_pkgs
>> +hsh-run --rooter -- "$dir" apt-mark auto \
>> +	$(comm -23 "$TMP"/all_pkgs "$TMP"/install_pkgs)
> 
> Но меня всё ещё кое-что смущает. В install_pkgs оказывается изначальный
> список пакетов плюс виртуальные provides. Там не будет пакетов, которые
> выберет apt для этих виртуальных пакетов. Например в изначальном списке
> есть xvt, но будет xterm, который обычно вытягивается. После `rpm -q` мы
> уберём виртуальное имя xvt т.к. это не настоящее имя пакета.
> 
> Получается, что после comm xterm, который установится по xvt будет помечен
> auto, а это не то, что ты хочешь, кажется.
> 
> В install_pkgs необходимо добавить те пакеты, которые будут выбраны
> apt'ом.
> 

Нет, в install_pkgs будет xterm, а xvt не будет.
Если xvt предоставляется несколькими пакетами, то все они попадут в install_pkgs.
xterm помечается, как manual. Я проверил.
--whatprovides заменяет виртуальные пакеты реальными.

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


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

* Re: [devel] hasher: пакеты, установленные по зависимостям
  2024-10-27 12:23                               ` Alexey Gladkov
  2024-10-27 12:35                                 ` Антон Мидюков
@ 2024-10-27 12:37                                 ` Alexey Gladkov
  1 sibling, 0 replies; 29+ messages in thread
From: Alexey Gladkov @ 2024-10-27 12:37 UTC (permalink / raw)
  To: ALT Linux Team development discussions

On Sun, Oct 27, 2024 at 01:23:48PM +0100, Alexey Gladkov wrote:
> On Sat, Oct 26, 2024 at 05:19:50PM +0300, Антон Мидюков wrote:
> > Но идея с развиртуализацией работает. Спасибо!
> > 
> > У меня получился такой код:
> > 
> > diff --git a/tools/mki-install b/tools/mki-install
> > index 8c8cad3..ac23f76 100755
> > --- a/tools/mki-install
> > +++ b/tools/mki-install
> > @@ -19,3 +19,12 @@ hasher_args="$verbose $quiet ${HSH_EXCLUDE_DOCS:+--excludedocs} ${HSH_NUMBER:+--
> >  
> >  mki_list_pkgs "$@" |
> >  	xargs -r env -i PATH="$PATH" hsh-install $hasher_args -- "$dir"
> > +
> > +hsh-run --rooter -- "$dir" rpm -q apt || exit 0
> > +hsh-run --rooter -- "$dir" rpm -q --whatprovides --queryformat "%{NAME}\n" \
> > +	$(mki-expand-pkgs regexp $(mki_list_pkgs "$@")) |
> > +	sort -u > "$TMP"/install_pkgs
> > +hsh-run --rooter -- "$dir" rpm -qa --queryformat "%{NAME}\n" |
> > +	sort -u > "$TMP"/all_pkgs
> > +hsh-run --rooter -- "$dir" apt-mark auto \
> > +	$(comm -23 "$TMP"/all_pkgs "$TMP"/install_pkgs)
> 
> Но меня всё ещё кое-что смущает. В install_pkgs оказывается изначальный
> список пакетов плюс виртуальные provides. Там не будет пакетов, которые
> выберет apt для этих виртуальных пакетов. Например в изначальном списке
> есть xvt, но будет xterm, который обычно вытягивается. После `rpm -q` мы
> уберём виртуальное имя xvt т.к. это не настоящее имя пакета.
> 
> Получается, что после comm xterm, который установится по xvt будет помечен
> auto, а это не то, что ты хочешь, кажется.
> 
> В install_pkgs необходимо добавить те пакеты, которые будут выбраны
> apt'ом.

Кажется должно быть как-то вот так:

mki-expand-pkgs regexp "$@" |
	xargs -r hsh-run --rooter -- "$dir" rpm -q --qf='%{NAME}\n' |
	>"$tempdir/install_pkgs"

"$aptbox/apt-get" -s install "$@" |
	sed -nr -e 's#^Selecting ([^ ]+) for .*#\1#p' >>"$tempdir/install_pkgs"

sort -uo "$tempdir/install_pkgs" "$tempdir/install_pkgs"

hsh-run --rooter -- "$dir" rpm -q --all --qf='%{NAME}\n' |
	sort -u |
	comm -23 - "$tempdir/install_pkgs" |
	xargs -r hsh-run --rooter -- "$dir" apt-mark auto

-- 
Rgrds, legion



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

* Re: [devel] hasher: пакеты, установленные по зависимостям
  2024-10-27 12:35                                 ` Антон Мидюков
@ 2024-10-27 12:42                                   ` Alexey Gladkov
  2024-10-27 13:02                                     ` Антон Мидюков
  0 siblings, 1 reply; 29+ messages in thread
From: Alexey Gladkov @ 2024-10-27 12:42 UTC (permalink / raw)
  To: ALT Linux Team development discussions

On Sun, Oct 27, 2024 at 03:35:04PM +0300, Антон Мидюков wrote:
> > Но меня всё ещё кое-что смущает. В install_pkgs оказывается изначальный
> > список пакетов плюс виртуальные provides. Там не будет пакетов, которые
> > выберет apt для этих виртуальных пакетов. Например в изначальном списке
> > есть xvt, но будет xterm, который обычно вытягивается. После `rpm -q` мы
> > уберём виртуальное имя xvt т.к. это не настоящее имя пакета.
> > 
> > Получается, что после comm xterm, который установится по xvt будет помечен
> > auto, а это не то, что ты хочешь, кажется.
> > 
> > В install_pkgs необходимо добавить те пакеты, которые будут выбраны
> > apt'ом.
> > 
> 
> Нет, в install_pkgs будет xterm, а xvt не будет.
> Если xvt предоставляется несколькими пакетами, то все они попадут в install_pkgs.
> xterm помечается, как manual. Я проверил.
> --whatprovides заменяет виртуальные пакеты реальными.

Ааа. Теперь ясно.

Тогда предлагаю что-нибудь типа вот такого:

diff --git a/tools/mki-install b/tools/mki-install
index 8c8cad3..dba877e 100755
--- a/tools/mki-install
+++ b/tools/mki-install
@@ -19,3 +19,32 @@ hasher_args="$verbose $quiet ${HSH_EXCLUDE_DOCS:+--excludedocs} ${HSH_NUMBER:+--

 mki_list_pkgs "$@" |
        xargs -r env -i PATH="$PATH" hsh-install $hasher_args -- "$dir"
+
+# shellcheck disable=SC2249
+[ -z "${PROG##*-image-*}" ] ||
+       exit 0
+
+hsh-run --rooter -- "$dir" which apt-mark >/dev/null 2>&1 ||
+       exit 0
+
+tempdir=
+exit_handler() {
+       local rc=$?
+       trap - EXIT
+       [ -z "$tempdir" ] || rm -rf -- "$tempdir"
+       exit $rc
+}
+
+trap exit_handler HUP INT QUIT TERM EXIT
+tempdir="$(mktemp -d "$dir/$PROG.XXXXXX")"
+
+export LC_ALL=C LANG=C LANGUAGE=C
+
+mki-expand-pkgs regexp "$@" |
+       xargs -r hsh-run --rooter -- "$dir" rpm -q --whatprovides --qf='%{NAME}\n' |
+       sort -uo "$tempdir/install_pkgs"
+
+hsh-run --rooter -- "$dir" rpm -q --all --qf='%{NAME}\n' |
+       sort -u |
+       comm -23 - "$tempdir/install_pkgs" |
+       xargs -r hsh-run --rooter -- "$dir" apt-mark auto

-- 
Rgrds, legion



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

* Re: [devel] hasher: пакеты, установленные по зависимостям
  2024-10-27 12:42                                   ` Alexey Gladkov
@ 2024-10-27 13:02                                     ` Антон Мидюков
  2024-10-27 13:52                                       ` Alexey Gladkov
  0 siblings, 1 reply; 29+ messages in thread
From: Антон Мидюков @ 2024-10-27 13:02 UTC (permalink / raw)
  To: devel

27.10.2024 15:42, Alexey Gladkov пишет:
> On Sun, Oct 27, 2024 at 03:35:04PM +0300, Антон Мидюков wrote:
>>> Но меня всё ещё кое-что смущает. В install_pkgs оказывается изначальный
>>> список пакетов плюс виртуальные provides. Там не будет пакетов, которые
>>> выберет apt для этих виртуальных пакетов. Например в изначальном списке
>>> есть xvt, но будет xterm, который обычно вытягивается. После `rpm -q` мы
>>> уберём виртуальное имя xvt т.к. это не настоящее имя пакета.
>>>
>>> Получается, что после comm xterm, который установится по xvt будет помечен
>>> auto, а это не то, что ты хочешь, кажется.
>>>
>>> В install_pkgs необходимо добавить те пакеты, которые будут выбраны
>>> apt'ом.
>>>
>>
>> Нет, в install_pkgs будет xterm, а xvt не будет.
>> Если xvt предоставляется несколькими пакетами, то все они попадут в install_pkgs.
>> xterm помечается, как manual. Я проверил.
>> --whatprovides заменяет виртуальные пакеты реальными.
> 
> Ааа. Теперь ясно.
> 
> Тогда предлагаю что-нибудь типа вот такого:
> 

Отлично! Работает!

> diff --git a/tools/mki-install b/tools/mki-install
> index 8c8cad3..dba877e 100755
> --- a/tools/mki-install
> +++ b/tools/mki-install
> @@ -19,3 +19,32 @@ hasher_args="$verbose $quiet ${HSH_EXCLUDE_DOCS:+--excludedocs} ${HSH_NUMBER:+--
> 
>  mki_list_pkgs "$@" |
>         xargs -r env -i PATH="$PATH" hsh-install $hasher_args -- "$dir"
> +
> +# shellcheck disable=SC2249
> +[ -z "${PROG##*-image-*}" ] ||
> +       exit 0
> +
> +hsh-run --rooter -- "$dir" which apt-mark >/dev/null 2>&1 ||
> +       exit 0
> +
> +tempdir=
> +exit_handler() {
> +       local rc=$?
> +       trap - EXIT
> +       [ -z "$tempdir" ] || rm -rf -- "$tempdir"
> +       exit $rc
> +}
> +
> +trap exit_handler HUP INT QUIT TERM EXIT
> +tempdir="$(mktemp -d "$dir/$PROG.XXXXXX")"
> +
> +export LC_ALL=C LANG=C LANGUAGE=C
> +
> +mki-expand-pkgs regexp "$@" |
> +       xargs -r hsh-run --rooter -- "$dir" rpm -q --whatprovides --qf='%{NAME}\n' |
> +       sort -uo "$tempdir/install_pkgs"
> +
> +hsh-run --rooter -- "$dir" rpm -q --all --qf='%{NAME}\n' |
> +       sort -u |
> +       comm -23 - "$tempdir/install_pkgs" |
> +       xargs -r hsh-run --rooter -- "$dir" apt-mark auto
> 


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


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

* Re: [devel] hasher: пакеты, установленные по зависимостям
  2024-10-27 13:02                                     ` Антон Мидюков
@ 2024-10-27 13:52                                       ` Alexey Gladkov
  2024-10-27 14:23                                         ` Антон Мидюков
  0 siblings, 1 reply; 29+ messages in thread
From: Alexey Gladkov @ 2024-10-27 13:52 UTC (permalink / raw)
  To: ALT Linux Team development discussions

On Sun, Oct 27, 2024 at 04:02:47PM +0300, Антон Мидюков wrote:
> 27.10.2024 15:42, Alexey Gladkov пишет:
> > On Sun, Oct 27, 2024 at 03:35:04PM +0300, Антон Мидюков wrote:
> >>> Но меня всё ещё кое-что смущает. В install_pkgs оказывается изначальный
> >>> список пакетов плюс виртуальные provides. Там не будет пакетов, которые
> >>> выберет apt для этих виртуальных пакетов. Например в изначальном списке
> >>> есть xvt, но будет xterm, который обычно вытягивается. После `rpm -q` мы
> >>> уберём виртуальное имя xvt т.к. это не настоящее имя пакета.
> >>>
> >>> Получается, что после comm xterm, который установится по xvt будет помечен
> >>> auto, а это не то, что ты хочешь, кажется.
> >>>
> >>> В install_pkgs необходимо добавить те пакеты, которые будут выбраны
> >>> apt'ом.
> >>>
> >>
> >> Нет, в install_pkgs будет xterm, а xvt не будет.
> >> Если xvt предоставляется несколькими пакетами, то все они попадут в install_pkgs.
> >> xterm помечается, как manual. Я проверил.
> >> --whatprovides заменяет виртуальные пакеты реальными.
> > 
> > Ааа. Теперь ясно.
> > 
> > Тогда предлагаю что-нибудь типа вот такого:
> > 
> 
> Отлично! Работает!

Можешь прислать патч ? Я тоже могу, но мне будет сложнее сделать хороший
commit message с описанием проблемы.

-- 
Rgrds, legion



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

* Re: [devel] hasher: пакеты, установленные по зависимостям
  2024-10-27 13:52                                       ` Alexey Gladkov
@ 2024-10-27 14:23                                         ` Антон Мидюков
  0 siblings, 0 replies; 29+ messages in thread
From: Антон Мидюков @ 2024-10-27 14:23 UTC (permalink / raw)
  To: devel

27.10.2024 16:52, Alexey Gladkov пишет:
> On Sun, Oct 27, 2024 at 04:02:47PM +0300, Антон Мидюков wrote:
>> 27.10.2024 15:42, Alexey Gladkov пишет:
>>> On Sun, Oct 27, 2024 at 03:35:04PM +0300, Антон Мидюков wrote:
>>>>> Но меня всё ещё кое-что смущает. В install_pkgs оказывается изначальный
>>>>> список пакетов плюс виртуальные provides. Там не будет пакетов, которые
>>>>> выберет apt для этих виртуальных пакетов. Например в изначальном списке
>>>>> есть xvt, но будет xterm, который обычно вытягивается. После `rpm -q` мы
>>>>> уберём виртуальное имя xvt т.к. это не настоящее имя пакета.
>>>>>
>>>>> Получается, что после comm xterm, который установится по xvt будет помечен
>>>>> auto, а это не то, что ты хочешь, кажется.
>>>>>
>>>>> В install_pkgs необходимо добавить те пакеты, которые будут выбраны
>>>>> apt'ом.
>>>>>
>>>>
>>>> Нет, в install_pkgs будет xterm, а xvt не будет.
>>>> Если xvt предоставляется несколькими пакетами, то все они попадут в install_pkgs.
>>>> xterm помечается, как manual. Я проверил.
>>>> --whatprovides заменяет виртуальные пакеты реальными.
>>>
>>> Ааа. Теперь ясно.
>>>
>>> Тогда предлагаю что-нибудь типа вот такого:
>>>
>>
>> Отлично! Работает!
> 
> Можешь прислать патч ? Я тоже могу, но мне будет сложнее сделать хороший
> commit message с описанием проблемы.
> 

Хорошо.

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


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

end of thread, other threads:[~2024-10-27 14:23 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-10-14  7:47 [devel] hasher: пакеты, установленные по зависимостям Антон Мидюков
2024-10-14  9:57 ` Alexey Gladkov
2024-10-14  9:58 ` Ivan A. Melnikov
2024-10-14 10:16   ` Alexey Gladkov
2024-10-14 10:32     ` Антон Мидюков
2024-10-14 10:51       ` Alexey Gladkov
2024-10-25 10:06         ` Антон Мидюков
2024-10-25 11:31           ` Alexey Gladkov
2024-10-25 11:44             ` Антон Мидюков
2024-10-25 12:33               ` Alexey Gladkov
2024-10-25 13:13                 ` Антон Мидюков
2024-10-25 13:54                   ` [devel] " Sergey V Turchin
2024-10-25 14:09                   ` [devel] " Alexey Gladkov
2024-10-25 15:23                     ` Антон Мидюков
2024-10-26 12:04                       ` Alexey Gladkov
2024-10-26 12:36                         ` Ivan A. Melnikov
2024-10-26 13:03                           ` Антон Мидюков
2024-10-26 14:19                             ` Антон Мидюков
2024-10-26 17:01                               ` Alexey Gladkov
2024-10-27 11:26                                 ` Alexey Gladkov
2024-10-27 11:32                                   ` Антон Мидюков
2024-10-27 12:25                                     ` Alexey Gladkov
2024-10-27 12:23                               ` Alexey Gladkov
2024-10-27 12:35                                 ` Антон Мидюков
2024-10-27 12:42                                   ` Alexey Gladkov
2024-10-27 13:02                                     ` Антон Мидюков
2024-10-27 13:52                                       ` Alexey Gladkov
2024-10-27 14:23                                         ` Антон Мидюков
2024-10-27 12:37                                 ` Alexey Gladkov

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