* [devel] Как узнать, что пакет установлен из репозитория? @ 2023-04-27 22:15 Vitaly Lipatov 2023-04-27 22:26 ` Dmitry V. Levin ` (2 more replies) 0 siblings, 3 replies; 25+ messages in thread From: Vitaly Lipatov @ 2023-04-27 22:15 UTC (permalink / raw) To: ALT Linux Team development discussions Хотелось бы иметь способ узнать происхождение пакета: взят ли он из репозитория (в том числе конкретного стабильного репозитория), а в идеале бы ещё и знать, что пакет прошёл QA. Наверное, можно принять допущение, что при этом пакет имеет актуальную версию (последнюю, соответствующую версии в репозитории) и установлен в систему из подписанного репозитория. Вопрос возник из обсуждения https://bugzilla.altlinux.org/show_bug.cgi?id=44314#c44 Предварительно, пакет может быть - из репозитория - из какого-то другого репозитория - установлен со стороны - перепакован из чего-то с помощью epm repack -- С уважением, Виталий Липатов, ALT Linux Team ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [devel] Как узнать, что пакет установлен из репозитория? 2023-04-27 22:15 [devel] Как узнать, что пакет установлен из репозитория? Vitaly Lipatov @ 2023-04-27 22:26 ` Dmitry V. Levin 2023-04-28 0:39 ` Vitaly Lipatov 2023-04-28 6:37 ` Anton Farygin 2023-04-27 23:17 ` Leonid Krivoshein 2 siblings, 2 replies; 25+ messages in thread From: Dmitry V. Levin @ 2023-04-27 22:26 UTC (permalink / raw) To: ALT Devel discussion list On Fri, Apr 28, 2023 at 01:15:09AM +0300, Vitaly Lipatov wrote: > Хотелось бы иметь способ узнать происхождение пакета: взят ли он из > репозитория (в том числе конкретного стабильного репозитория), а в > идеале бы ещё и знать, что пакет прошёл QA. Непонятно, зачем хочется это знать, особенно если ... > Наверное, можно принять допущение, что при этом пакет имеет актуальную > версию (последнюю, соответствующую версии в репозитории) и установлен в > систему из подписанного репозитория. ... особенно если нельзя принимать такие допущения. > Вопрос возник из обсуждения > https://bugzilla.altlinux.org/show_bug.cgi?id=44314#c44 > > Предварительно, пакет может быть > - из репозитория > - из какого-то другого репозитория > - установлен со стороны > - перепакован из чего-то с помощью epm repack Если есть репозиторий, то можно что-то сделать в духе скриптов из пакета apt-scripts. -- ldv ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [devel] Как узнать, что пакет установлен из репозитория? 2023-04-27 22:26 ` Dmitry V. Levin @ 2023-04-28 0:39 ` Vitaly Lipatov 2023-04-28 1:01 ` Leonid Krivoshein 2023-04-28 6:37 ` Anton Farygin 1 sibling, 1 reply; 25+ messages in thread From: Vitaly Lipatov @ 2023-04-28 0:39 UTC (permalink / raw) To: ALT Linux Team development discussions; +Cc: Dmitry V. Levin Dmitry V. Levin писал(а) 28.4.23 1:26: > On Fri, Apr 28, 2023 at 01:15:09AM +0300, Vitaly Lipatov wrote: >> Хотелось бы иметь способ узнать происхождение пакета: взят ли он из >> репозитория (в том числе конкретного стабильного репозитория), а в >> идеале бы ещё и знать, что пакет прошёл QA. > > Непонятно, зачем хочется это знать, особенно если ... Чтобы по-разному относиться к своим пакетам и к чужим. Вот казалось бы, есть у нас в rpm-пакете поля Packager Vendor Distribution Но Packager в спеке выставляет кто как хочет. Vendor зачастую ALT Linux Team (впрочем, и у любого, кто воспользовался hasher), но вот у пакета yandex-browser-stable в репозитории Vendor YANDEX LLC Distribution будет ALT или ALT* у любого пакета, собранного с помощью rpmbuild в ALT. просто потому что так записано в /usr/lib/rpm/platform/x86_64-linux/macros >> Наверное, можно принять допущение, что при этом пакет имеет актуальную >> версию (последнюю, соответствующую версии в репозитории) и установлен >> в >> систему из подписанного репозитория. > > ... особенно если нельзя принимать такие допущения. Я имел в виду, что если удостовериться в том, что в систему установлен именно пакет из репозитория (имеющий ту же контрольную сумму, например, что и пакет в репозитории), то по подписи репозитория можно определить его поставщика. Раз уж почему-то мы не можем определить ничего по подписи пакета. > Если есть репозиторий, то можно что-то сделать в духе скриптов из > пакета apt-scripts. Ну то есть сам пакет достаточно обезличен, и надежда только на выяснение через репозиторий. -- С уважением, Виталий Липатов, ALT Linux Team ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [devel] Как узнать, что пакет установлен из репозитория? 2023-04-28 0:39 ` Vitaly Lipatov @ 2023-04-28 1:01 ` Leonid Krivoshein 2023-05-01 12:33 ` Vitaly Lipatov 0 siblings, 1 reply; 25+ messages in thread From: Leonid Krivoshein @ 2023-04-28 1:01 UTC (permalink / raw) To: devel On 4/28/23 03:39, Vitaly Lipatov wrote: > Dmitry V. Levin писал(а) 28.4.23 1:26: >> On Fri, Apr 28, 2023 at 01:15:09AM +0300, Vitaly Lipatov wrote: >>> Хотелось бы иметь способ узнать происхождение пакета: взят ли он из >>> репозитория (в том числе конкретного стабильного репозитория), а в >>> идеале бы ещё и знать, что пакет прошёл QA. >> >> Непонятно, зачем хочется это знать, особенно если ... > Чтобы по-разному относиться к своим пакетам и к чужим. > Вот казалось бы, есть у нас в rpm-пакете поля > Packager > Vendor > Distribution > > Но Packager в спеке выставляет кто как хочет. > > Vendor зачастую ALT Linux Team (впрочем, и у любого, кто > воспользовался hasher), но вот у пакета yandex-browser-stable в > репозитории Vendor YANDEX LLC > > Distribution будет ALT или ALT* у любого пакета, собранного с помощью > rpmbuild в ALT. > просто потому что так записано в > /usr/lib/rpm/platform/x86_64-linux/macros > Поля можно заполнить произвольно, собрав пакет не на сборочнице. Да и на сборочнице тоже. Они не определяют источник установки, это просто метаданные некоего архива. > >>> Наверное, можно принять допущение, что при этом пакет имеет актуальную >>> версию (последнюю, соответствующую версии в репозитории) и установлен в >>> систему из подписанного репозитория. >> >> ... особенно если нельзя принимать такие допущения. > Я имел в виду, что если удостовериться в том, что в систему установлен > именно пакет из репозитория (имеющий ту же контрольную сумму, > например, что и пакет в репозитории), то по подписи репозитория можно > определить его поставщика. Раз уж почему-то мы не можем определить > ничего по подписи пакета. > >> Если есть репозиторий, то можно что-то сделать в духе скриптов из >> пакета apt-scripts. > Ну то есть сам пакет достаточно обезличен, и надежда только на > выяснение через репозиторий. > Проверка принадлежности к репозиторию -- функционал более высокого порядка, нежели RPM, это уровень APT'а, и такая проверка может быть выполнена только для актуальной версии пакета, т.е. на корректно обновлённой системе. Природа задач инвентаризации в целях починки ошибочна по своей сути, нужно стремиться изначально собирать систему из правильных источников и по правильной технологии, чтобы потом не чинить, не заниматься инвентаризацией. Если пользователь притащил пакет не из репозитория или даже один файл сложил в область ответственности RPM, его систему уже можно считать не поддерживаемой, консистентность обновления уже нельзя гарантировать. -- WBR, Leonid Krivoshein. ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [devel] Как узнать, что пакет установлен из репозитория? 2023-04-28 1:01 ` Leonid Krivoshein @ 2023-05-01 12:33 ` Vitaly Lipatov 2023-05-01 13:56 ` Dmitry V. Levin 0 siblings, 1 reply; 25+ messages in thread From: Vitaly Lipatov @ 2023-05-01 12:33 UTC (permalink / raw) To: ALT Linux Team development discussions; +Cc: Leonid Krivoshein Leonid Krivoshein писал(а) 28.4.23 4:01: > On 4/28/23 03:39, Vitaly Lipatov wrote: > Если пользователь притащил пакет не из репозитория или даже один файл > сложил в область ответственности RPM, его систему уже можно считать не > поддерживаемой, консистентность обновления уже нельзя гарантировать. Но хотелось бы иметь способ узнать о неконсистентности. -- С уважением, Виталий Липатов, ALT Linux Team ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [devel] Как узнать, что пакет установлен из репозитория? 2023-05-01 12:33 ` Vitaly Lipatov @ 2023-05-01 13:56 ` Dmitry V. Levin 2023-05-01 16:20 ` Denis Medvedev 0 siblings, 1 reply; 25+ messages in thread From: Dmitry V. Levin @ 2023-05-01 13:56 UTC (permalink / raw) To: ALT Devel discussion list On Mon, May 01, 2023 at 03:33:23PM +0300, Vitaly Lipatov wrote: > Leonid Krivoshein писал(а) 28.4.23 4:01: > > On 4/28/23 03:39, Vitaly Lipatov wrote: > > Если пользователь притащил пакет не из репозитория или даже один файл > > сложил в область ответственности RPM, его систему уже можно считать не > > поддерживаемой, консистентность обновления уже нельзя гарантировать. > Но хотелось бы иметь способ узнать о неконсистентности. Если в систему уже был установлен пакет, которому мы не доверяем, такую систему, вообще говоря, следует считать скомпрометированной, и средствами такой системы, к сожалению, невозможно достоверно установить даже сам факт компрометации. -- ldv ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [devel] Как узнать, что пакет установлен из репозитория? 2023-05-01 13:56 ` Dmitry V. Levin @ 2023-05-01 16:20 ` Denis Medvedev 0 siblings, 0 replies; 25+ messages in thread From: Denis Medvedev @ 2023-05-01 16:20 UTC (permalink / raw) To: Dmitry V. Levin; +Cc: ALT Linux Team development discussions On Mon, 1 May 2023 16:56:23 +0300 "Dmitry V. Levin" <ldv@altlinux.org> wrote: > On Mon, May 01, 2023 at 03:33:23PM +0300, Vitaly Lipatov wrote: > > Leonid Krivoshein писал(а) 28.4.23 4:01: > > > On 4/28/23 03:39, Vitaly Lipatov wrote: > > > Если пользователь притащил пакет не из репозитория или даже один > > > файл сложил в область ответственности RPM, его систему уже можно > > > считать не поддерживаемой, консистентность обновления уже нельзя > > > гарантировать. > > Но хотелось бы иметь способ узнать о неконсистентности. > > Если в систему уже был установлен пакет, которому мы не доверяем, > такую систему, вообще говоря, следует считать скомпрометированной, и > средствами такой системы, к сожалению, невозможно достоверно > установить даже сам факт компрометации. > > А НЕ средствами? Cкажем, загрузившись с rescue диска? ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [devel] Как узнать, что пакет установлен из репозитория? 2023-04-27 22:26 ` Dmitry V. Levin 2023-04-28 0:39 ` Vitaly Lipatov @ 2023-04-28 6:37 ` Anton Farygin 2023-04-28 9:41 ` Paul Wolneykien 1 sibling, 1 reply; 25+ messages in thread From: Anton Farygin @ 2023-04-28 6:37 UTC (permalink / raw) To: devel On 28.04.2023 01:26, Dmitry V. Levin wrote: > Непонятно, зачем хочется это знать, особенно если ... Хочется иметь ответ на вопрос - установленный пакет установлен из официального репозитория или собран кем-то на стороне. Я не пойму как это можно было бы вычислить с помощью апта, у которого подпись репозитория меняется ежедневно. ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [devel] Как узнать, что пакет установлен из репозитория? 2023-04-28 6:37 ` Anton Farygin @ 2023-04-28 9:41 ` Paul Wolneykien 2023-04-28 18:22 ` Alexey Shabalin 2023-04-28 18:34 ` Dmitry V. Levin 0 siblings, 2 replies; 25+ messages in thread From: Paul Wolneykien @ 2023-04-28 9:41 UTC (permalink / raw) To: devel В Fri, 28 Apr 2023 09:37:12 +0300 Anton Farygin <rider@basealt.ru> пишет: > On 28.04.2023 01:26, Dmitry V. Levin wrote: > > Непонятно, зачем хочется это знать, особенно если ... > > Хочется иметь ответ на вопрос - установленный пакет установлен из > официального репозитория или собран кем-то на стороне. > > Я не пойму как это можно было бы вычислить с помощью апта, у которого > подпись репозитория меняется ежедневно. А почему, всё-таки, недостаточно подписи пакета на сборочнице? Если пакет собран на стороне, то он не может быть подписан ключом сборочницы. Разве что тот, кто собирает на стороне, имеет доступ к секретному ключу сборочницы — но это очень ограниченный круг людей, так ведь? Прошу прощения, если это уже было, а я проглядел. ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [devel] Как узнать, что пакет установлен из репозитория? 2023-04-28 9:41 ` Paul Wolneykien @ 2023-04-28 18:22 ` Alexey Shabalin 2023-04-28 18:33 ` Dmitry V. Levin 2023-04-28 18:34 ` Dmitry V. Levin 1 sibling, 1 reply; 25+ messages in thread From: Alexey Shabalin @ 2023-04-28 18:22 UTC (permalink / raw) To: ALT Linux Team development discussions пт, 28 апр. 2023 г. в 12:42, Paul Wolneykien <manowar@altlinux.org>: > > В Fri, 28 Apr 2023 09:37:12 +0300 > Anton Farygin <rider@basealt.ru> пишет: > > > On 28.04.2023 01:26, Dmitry V. Levin wrote: > > > Непонятно, зачем хочется это знать, особенно если ... > > > > Хочется иметь ответ на вопрос - установленный пакет установлен из > > официального репозитория или собран кем-то на стороне. > > > > Я не пойму как это можно было бы вычислить с помощью апта, у которого > > подпись репозитория меняется ежедневно. > > А почему, всё-таки, недостаточно подписи пакета на сборочнице? Если > пакет собран на стороне, то он не может быть подписан ключом сборочницы. > Разве что тот, кто собирает на стороне, имеет доступ к секретному ключу > сборочницы — но это очень ограниченный круг людей, так ведь? Может потому что даже наш собственный rpm не знает какими ключами подписаны наши пакеты? rpm --checksig Sisyphus/x86_64/RPMS.classic/mc-4.8.28-alt1.x86_64.rpm Sisyphus/x86_64/RPMS.classic/mc-4.8.28-alt1.x86_64.rpm: (RSA) sha1 md5 (GPG) НЕ ОК (ОТСУТСТВУЮТ КЛЮЧИ: RSA#da2773bb GPG#da2773bb) > Прошу прощения, если это уже было, а я проглядел. -- Alexey Shabalin ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [devel] Как узнать, что пакет установлен из репозитория? 2023-04-28 18:22 ` Alexey Shabalin @ 2023-04-28 18:33 ` Dmitry V. Levin 0 siblings, 0 replies; 25+ messages in thread From: Dmitry V. Levin @ 2023-04-28 18:33 UTC (permalink / raw) To: devel On Fri, Apr 28, 2023 at 09:22:34PM +0300, Alexey Shabalin wrote: > пт, 28 апр. 2023 г. в 12:42, Paul Wolneykien <manowar@altlinux.org>: > > > > В Fri, 28 Apr 2023 09:37:12 +0300 > > Anton Farygin <rider@basealt.ru> пишет: > > > > > On 28.04.2023 01:26, Dmitry V. Levin wrote: > > > > Непонятно, зачем хочется это знать, особенно если ... > > > > > > Хочется иметь ответ на вопрос - установленный пакет установлен из > > > официального репозитория или собран кем-то на стороне. > > > > > > Я не пойму как это можно было бы вычислить с помощью апта, у которого > > > подпись репозитория меняется ежедневно. > > > > А почему, всё-таки, недостаточно подписи пакета на сборочнице? Если > > пакет собран на стороне, то он не может быть подписан ключом сборочницы. > > Разве что тот, кто собирает на стороне, имеет доступ к секретному ключу > > сборочницы — но это очень ограниченный круг людей, так ведь? > > Может потому что даже наш собственный rpm не знает какими ключами > подписаны наши пакеты? > rpm --checksig Sisyphus/x86_64/RPMS.classic/mc-4.8.28-alt1.x86_64.rpm > Sisyphus/x86_64/RPMS.classic/mc-4.8.28-alt1.x86_64.rpm: (RSA) sha1 md5 > (GPG) НЕ ОК (ОТСУТСТВУЮТ КЛЮЧИ: RSA#da2773bb GPG#da2773bb) $ rpmkeys -v --checksig --dbpath /usr/lib/alt-rpmkeys -- Sisyphus/x86_64/RPMS.classic/mc-4.8.28-alt1.x86_64.rpm Sisyphus/x86_64/RPMS.classic/mc-4.8.28-alt1.x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID da2773bb: OK Header SHA1 digest: OK (5578f8a19c28f24ec4aac7c3ff3dd9fbdf763dad) MD5 digest: OK (6923865877990a03ac544f96da4c8dd6) V4 RSA/SHA512 Signature, key ID da2773bb: OK $ alt-rpmkeys-checksig Sisyphus/x86_64/RPMS.classic/mc-4.8.28-alt1.x86_64.rpm ALT Sisyphus <alt-sisyphus@altlinux.org> -- ldv ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [devel] Как узнать, что пакет установлен из репозитория? 2023-04-28 9:41 ` Paul Wolneykien 2023-04-28 18:22 ` Alexey Shabalin @ 2023-04-28 18:34 ` Dmitry V. Levin 1 sibling, 0 replies; 25+ messages in thread From: Dmitry V. Levin @ 2023-04-28 18:34 UTC (permalink / raw) To: devel On Fri, Apr 28, 2023 at 12:41:53PM +0300, Paul Wolneykien wrote: > В Fri, 28 Apr 2023 09:37:12 +0300 > Anton Farygin <rider@basealt.ru> пишет: > > > On 28.04.2023 01:26, Dmitry V. Levin wrote: > > > Непонятно, зачем хочется это знать, особенно если ... > > > > Хочется иметь ответ на вопрос - установленный пакет установлен из > > официального репозитория или собран кем-то на стороне. > > > > Я не пойму как это можно было бы вычислить с помощью апта, у которого > > подпись репозитория меняется ежедневно. > > А почему, всё-таки, недостаточно подписи пакета на сборочнице? Если > пакет собран на стороне, то он не может быть подписан ключом сборочницы. > Разве что тот, кто собирает на стороне, имеет доступ к секретному ключу > сборочницы — но это очень ограниченный круг людей, так ведь? Не все собранные пакеты попадают в репозиторий. -- ldv ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [devel] Как узнать, что пакет установлен из репозитория? 2023-04-27 22:15 [devel] Как узнать, что пакет установлен из репозитория? Vitaly Lipatov 2023-04-27 22:26 ` Dmitry V. Levin @ 2023-04-27 23:17 ` Leonid Krivoshein 2023-04-28 7:23 ` [devel] " Sergey V Turchin 2 siblings, 1 reply; 25+ messages in thread From: Leonid Krivoshein @ 2023-04-27 23:17 UTC (permalink / raw) To: devel Hi! On 4/28/23 01:15, Vitaly Lipatov wrote: > Хотелось бы иметь способ узнать происхождение пакета: взят ли он из > репозитория apt-cache list-extras поможет в этом. > (в том числе конкретного стабильного репозитория), а в идеале бы ещё и > знать, что пакет прошёл QA. А это закрытая информация. )) Впрочем, если текущий бранч -- не Сизиф, пакет в любом случае проходит QA. -- WBR, Leonid Krivoshein. ^ permalink raw reply [flat|nested] 25+ messages in thread
* [devel] Re: Как узнать, что пакет установлен из репозитория? 2023-04-27 23:17 ` Leonid Krivoshein @ 2023-04-28 7:23 ` Sergey V Turchin 0 siblings, 0 replies; 25+ messages in thread From: Sergey V Turchin @ 2023-04-28 7:23 UTC (permalink / raw) To: ALT Linux Team development discussions On Friday, 28 April 2023 02:17:20 MSK Leonid Krivoshein wrote: > Hi! > > On 4/28/23 01:15, Vitaly Lipatov wrote: > > Хотелось бы иметь способ узнать происхождение пакета: взят ли он из > > репозитория > > apt-cache list-extras поможет в этом. Он показывает _все_ пакеты, если нет сети. [...] -- Regards, Sergey. ^ permalink raw reply [flat|nested] 25+ messages in thread
[parent not found: <0c29b892-0507-c136-fab6-43f3f6187832@basealt.ru>]
* Re: [devel] Как узнать, что пакет установлен из репозитория? @ 2023-04-28 6:35 ` Anton Farygin 1 sibling, 0 replies; 25+ messages in thread From: Anton Farygin @ 2023-04-28 6:35 UTC (permalink / raw) To: devel Только важно понимать, что это криптографически нестойкий хеш пакета. On 28.04.2023 09:03, Danil Shein wrote: > > В проекте ALTRepoDB, часятми которого являются rdb.altlinux,org и > packages.altlinux.org мы используем в качестве уникального > идентификатора пакета хэш подсчитанный на основе метаданных из > хэдеров RPM пакета. > > При подсчёте хэша используется SHA1, MD5, GPG и buildtime - таким > образом хэш меняется при любой пересборке пакета. > Подсчитать хэши легко можно и для установленных в системе пакетов > используя данные из БД rpm. > А получить информацию о пакете уже через АПИ rdb.altlinux.org. > При необходимости можно добавить специальный запрос для проверки > списка хэшей пакетов на принадлежность дистрибутиву и конкретному бранчу. > > > 28.04.2023 01:15, Vitaly Lipatov пишет: >> Хотелось бы иметь способ узнать происхождение пакета: взят ли он из >> репозитория (в том числе конкретного стабильного репозитория), а в >> идеале бы ещё и знать, что пакет прошёл QA. >> >> Наверное, можно принять допущение, что при этом пакет имеет >> актуальную версию (последнюю, соответствующую версии в репозитории) и >> установлен в систему из подписанного репозитория. >> >> Вопрос возник из обсуждения >> https://bugzilla.altlinux.org/show_bug.cgi?id=44314#c44 >> >> Предварительно, пакет может быть >> - из репозитория >> - из какого-то другого репозитория >> - установлен со стороны >> - перепакован из чего-то с помощью epm repack >> > -- > *Данил Шеин / Danil Shein* > > dshein@altlinux.org > dshein@basealt.ru > > _______________________________________________ > Devel mailing list > Devel@lists.altlinux.org > https://lists.altlinux.org/mailman/listinfo/devel ^ permalink raw reply [flat|nested] 25+ messages in thread
[parent not found: <dcefb6478765118849ae970a531681ce@altlinux.ru>]
[parent not found: <aec5b063-5f4c-8226-cde8-7111b0d3b483@basealt.ru>]
* Re: [devel] Как узнать, что пакет установлен из репозитория? @ 2023-05-02 7:46 ` Dmitry V. Levin 2023-05-02 7:47 ` Anton Farygin 2023-05-02 8:31 ` Gleb Fotengauer-Malinovskiy 0 siblings, 2 replies; 25+ messages in thread From: Dmitry V. Levin @ 2023-05-02 7:46 UTC (permalink / raw) To: devel On Tue, May 02, 2023 at 08:31:43AM +0300, Danil Shein wrote: > Мы сначала и использовали SHA1, но перешли на новую схему хэшей, т.к. > пошли коллизии из-за того, что не всегда при пересборке пакетов меняется > SHA1 хэш, а нам нужен уникальный признак каждого пакета. Интересно, а что тогда меняется в пакете, если SHA1 в нём не меняется? -- ldv ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [devel] Как узнать, что пакет установлен из репозитория? 2023-05-02 7:46 ` Dmitry V. Levin @ 2023-05-02 7:47 ` Anton Farygin 2023-05-02 8:01 ` Dmitry V. Levin 2023-05-02 8:31 ` Gleb Fotengauer-Malinovskiy 1 sibling, 1 reply; 25+ messages in thread From: Anton Farygin @ 2023-05-02 7:47 UTC (permalink / raw) To: devel On 02.05.2023 10:46, Dmitry V. Levin wrote: > On Tue, May 02, 2023 at 08:31:43AM +0300, Danil Shein wrote: >> Мы сначала и использовали SHA1, но перешли на новую схему хэшей, т.к. >> пошли коллизии из-за того, что не всегда при пересборке пакетов меняется >> SHA1 хэш, а нам нужен уникальный признак каждого пакета. > Интересно, а что тогда меняется в пакете, если SHA1 в нём не меняется? sha1header только от заголовка. Насколько я помню подпись пакета не входит ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [devel] Как узнать, что пакет установлен из репозитория? 2023-05-02 7:47 ` Anton Farygin @ 2023-05-02 8:01 ` Dmitry V. Levin 2023-05-02 8:04 ` Anton Farygin 0 siblings, 1 reply; 25+ messages in thread From: Dmitry V. Levin @ 2023-05-02 8:01 UTC (permalink / raw) To: devel On Tue, May 02, 2023 at 10:47:57AM +0300, Anton Farygin wrote: > On 02.05.2023 10:46, Dmitry V. Levin wrote: > > On Tue, May 02, 2023 at 08:31:43AM +0300, Danil Shein wrote: > >> Мы сначала и использовали SHA1, но перешли на новую схему хэшей, т.к. > >> пошли коллизии из-за того, что не всегда при пересборке пакетов меняется > >> SHA1 хэш, а нам нужен уникальный признак каждого пакета. > > Интересно, а что тогда меняется в пакете, если SHA1 в нём не меняется? > sha1header только от заголовка. Насколько я помню подпись пакета не входит Подпись, конечно, не входит, но какой смысл различать пакеты, у которых sha1header совпадает? Даже сборочница считает такие пакеты эквивалентными. -- ldv ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [devel] Как узнать, что пакет установлен из репозитория? 2023-05-02 8:01 ` Dmitry V. Levin @ 2023-05-02 8:04 ` Anton Farygin 2023-05-02 8:09 ` Anton Farygin 0 siblings, 1 reply; 25+ messages in thread From: Anton Farygin @ 2023-05-02 8:04 UTC (permalink / raw) To: devel On 02.05.2023 11:01, Dmitry V. Levin wrote: > On Tue, May 02, 2023 at 10:47:57AM +0300, Anton Farygin wrote: >> On 02.05.2023 10:46, Dmitry V. Levin wrote: >>> On Tue, May 02, 2023 at 08:31:43AM +0300, Danil Shein wrote: >>>> Мы сначала и использовали SHA1, но перешли на новую схему хэшей, т.к. >>>> пошли коллизии из-за того, что не всегда при пересборке пакетов меняется >>>> SHA1 хэш, а нам нужен уникальный признак каждого пакета. >>> Интересно, а что тогда меняется в пакете, если SHA1 в нём не меняется? >> sha1header только от заголовка. Насколько я помню подпись пакета не входит > Подпись, конечно, не входит, но какой смысл различать пакеты, у которых > sha1header совпадает? Даже сборочница считает такие пакеты эквивалентными. > Они не могут быть эквивалентными, т.к. у них не совпадают контрольные суммы (md5sum и sha512) Когда мы перестаём их считать эквивалентными, то у нас начинают появляться дубли из-за изменённой sha512 и md5, которые используются в аптовых хешах и репозитории. ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [devel] Как узнать, что пакет установлен из репозитория? 2023-05-02 8:04 ` Anton Farygin @ 2023-05-02 8:09 ` Anton Farygin 2023-05-02 8:25 ` Dmitry V. Levin 0 siblings, 1 reply; 25+ messages in thread From: Anton Farygin @ 2023-05-02 8:09 UTC (permalink / raw) To: devel On 02.05.2023 11:04, Anton Farygin wrote: > On 02.05.2023 11:01, Dmitry V. Levin wrote: >> On Tue, May 02, 2023 at 10:47:57AM +0300, Anton Farygin wrote: >>> On 02.05.2023 10:46, Dmitry V. Levin wrote: >>>> On Tue, May 02, 2023 at 08:31:43AM +0300, Danil Shein wrote: >>>>> Мы сначала и использовали SHA1, но перешли на новую схему хэшей, т.к. >>>>> пошли коллизии из-за того, что не всегда при пересборке пакетов >>>>> меняется >>>>> SHA1 хэш, а нам нужен уникальный признак каждого пакета. >>>> Интересно, а что тогда меняется в пакете, если SHA1 в нём не меняется? >>> sha1header только от заголовка. Насколько я помню подпись пакета не >>> входит >> Подпись, конечно, не входит, но какой смысл различать пакеты, у которых >> sha1header совпадает? Даже сборочница считает такие пакеты >> эквивалентными. >> > Они не могут быть эквивалентными, т.к. у них не совпадают контрольные > суммы (md5sum и sha512) > > Когда мы перестаём их считать эквивалентными, то у нас начинают > появляться дубли из-за изменённой sha512 и md5, которые используются в > аптовых хешах и репозитории. > Непонятно написал. Если мы будем считать что пакеты с одинаковой sha1header и разными md5sum/sha512 мы начинаем считать одинаковыми, то у нас исчезает информация в базе о контрольной сумме файла с пакетом. А эта контрольная сумма нужна для того, что бы быстро (на лету) сгенерить хеши. В общем мы пробовали, так не работает ;( ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [devel] Как узнать, что пакет установлен из репозитория? 2023-05-02 8:09 ` Anton Farygin @ 2023-05-02 8:25 ` Dmitry V. Levin 2023-05-02 8:30 ` Anton Farygin 0 siblings, 1 reply; 25+ messages in thread From: Dmitry V. Levin @ 2023-05-02 8:25 UTC (permalink / raw) To: devel On Tue, May 02, 2023 at 11:09:02AM +0300, Anton Farygin wrote: > On 02.05.2023 11:04, Anton Farygin wrote: > > On 02.05.2023 11:01, Dmitry V. Levin wrote: > >> On Tue, May 02, 2023 at 10:47:57AM +0300, Anton Farygin wrote: > >>> On 02.05.2023 10:46, Dmitry V. Levin wrote: > >>>> On Tue, May 02, 2023 at 08:31:43AM +0300, Danil Shein wrote: > >>>>> Мы сначала и использовали SHA1, но перешли на новую схему хэшей, т.к. > >>>>> пошли коллизии из-за того, что не всегда при пересборке пакетов > >>>>> меняется > >>>>> SHA1 хэш, а нам нужен уникальный признак каждого пакета. > >>>> Интересно, а что тогда меняется в пакете, если SHA1 в нём не меняется? > >>> sha1header только от заголовка. Насколько я помню подпись пакета не > >>> входит > >> Подпись, конечно, не входит, но какой смысл различать пакеты, у которых > >> sha1header совпадает? Даже сборочница считает такие пакеты > >> эквивалентными. > >> > > Они не могут быть эквивалентными, т.к. у них не совпадают контрольные > > суммы (md5sum и sha512) > > > > Когда мы перестаём их считать эквивалентными, то у нас начинают > > появляться дубли из-за изменённой sha512 и md5, которые используются в > > аптовых хешах и репозитории. > > > Непонятно написал. Если мы будем считать что пакеты с одинаковой > sha1header и разными md5sum/sha512 мы начинаем считать одинаковыми, то у > нас исчезает информация в базе о контрольной сумме файла с пакетом. А Пакеты эквивалентные, но файлы не совпадают. В теории, например, можно переподписать srpm (например, из-за смены ключа) и отправить его на сборку, сборочница будет обрабатывать это почти как rebuild, потому что пакеты эквивалентные, хоть файлы и не совпадают. -- ldv ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [devel] Как узнать, что пакет установлен из репозитория? 2023-05-02 8:25 ` Dmitry V. Levin @ 2023-05-02 8:30 ` Anton Farygin 0 siblings, 0 replies; 25+ messages in thread From: Anton Farygin @ 2023-05-02 8:30 UTC (permalink / raw) To: devel On 02.05.2023 11:25, Dmitry V. Levin wrote: > On Tue, May 02, 2023 at 11:09:02AM +0300, Anton Farygin wrote: >> On 02.05.2023 11:04, Anton Farygin wrote: >>> On 02.05.2023 11:01, Dmitry V. Levin wrote: >>>> On Tue, May 02, 2023 at 10:47:57AM +0300, Anton Farygin wrote: >>>>> On 02.05.2023 10:46, Dmitry V. Levin wrote: >>>>>> On Tue, May 02, 2023 at 08:31:43AM +0300, Danil Shein wrote: >>>>>>> Мы сначала и использовали SHA1, но перешли на новую схему хэшей, т.к. >>>>>>> пошли коллизии из-за того, что не всегда при пересборке пакетов >>>>>>> меняется >>>>>>> SHA1 хэш, а нам нужен уникальный признак каждого пакета. >>>>>> Интересно, а что тогда меняется в пакете, если SHA1 в нём не меняется? >>>>> sha1header только от заголовка. Насколько я помню подпись пакета не >>>>> входит >>>> Подпись, конечно, не входит, но какой смысл различать пакеты, у которых >>>> sha1header совпадает? Даже сборочница считает такие пакеты >>>> эквивалентными. >>>> >>> Они не могут быть эквивалентными, т.к. у них не совпадают контрольные >>> суммы (md5sum и sha512) >>> >>> Когда мы перестаём их считать эквивалентными, то у нас начинают >>> появляться дубли из-за изменённой sha512 и md5, которые используются в >>> аптовых хешах и репозитории. >>> >> Непонятно написал. Если мы будем считать что пакеты с одинаковой >> sha1header и разными md5sum/sha512 мы начинаем считать одинаковыми, то у >> нас исчезает информация в базе о контрольной сумме файла с пакетом. А > Пакеты эквивалентные, но файлы не совпадают. > > В теории, например, можно переподписать srpm (например, из-за смены ключа) > и отправить его на сборку, сборочница будет обрабатывать это почти как > rebuild, потому что пакеты эквивалентные, хоть файлы и не совпадают. > > Ну да, и мы получим снова дубли, т.к. sha1header останется таким же, а бинарные пакеты (разные) будут собраны из одного и того же src.rpm, который на самом деле отличается, т.к. его переподписали. В общем оказалось удобнее считать все пакеты разными (по всем контрольным суммам) и соотвественно этому строить отношения src<->binary ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [devel] Как узнать, что пакет установлен из репозитория? 2023-05-02 7:46 ` Dmitry V. Levin 2023-05-02 7:47 ` Anton Farygin @ 2023-05-02 8:31 ` Gleb Fotengauer-Malinovskiy 2023-05-02 8:32 ` Anton Farygin 2023-05-02 9:04 ` Dmitry V. Levin 1 sibling, 2 replies; 25+ messages in thread From: Gleb Fotengauer-Malinovskiy @ 2023-05-02 8:31 UTC (permalink / raw) To: ALT Linux Team development discussions [-- Attachment #1: Type: text/plain, Size: 1023 bytes --] On Tue, May 02, 2023 at 10:46:57AM +0300, Dmitry V. Levin wrote: > On Tue, May 02, 2023 at 08:31:43AM +0300, Danil Shein wrote: > > Мы сначала и использовали SHA1, но перешли на новую схему хэшей, т.к. > > пошли коллизии из-за того, что не всегда при пересборке пакетов меняется > > SHA1 хэш, а нам нужен уникальный признак каждого пакета. > > Интересно, а что тогда меняется в пакете, если SHA1 в нём не меняется? Получается, что меняется как раз только подпись и это один и тот же пакет, который сборочница почему-то переподписала? Потому что если бы пакет пересобрался, то поменялся бы ещё и buildtime, а из-за него и sha1header. -- glebfm [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 801 bytes --] ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [devel] Как узнать, что пакет установлен из репозитория? 2023-05-02 8:31 ` Gleb Fotengauer-Malinovskiy @ 2023-05-02 8:32 ` Anton Farygin 2023-05-02 9:04 ` Dmitry V. Levin 1 sibling, 0 replies; 25+ messages in thread From: Anton Farygin @ 2023-05-02 8:32 UTC (permalink / raw) To: devel On 02.05.2023 11:31, Gleb Fotengauer-Malinovskiy wrote: > On Tue, May 02, 2023 at 10:46:57AM +0300, Dmitry V. Levin wrote: >> On Tue, May 02, 2023 at 08:31:43AM +0300, Danil Shein wrote: >>> Мы сначала и использовали SHA1, но перешли на новую схему хэшей, т.к. >>> пошли коллизии из-за того, что не всегда при пересборке пакетов меняется >>> SHA1 хэш, а нам нужен уникальный признак каждого пакета. >> Интересно, а что тогда меняется в пакете, если SHA1 в нём не меняется? > Получается, что меняется как раз только подпись и это один и тот же пакет, > который сборочница почему-то переподписала? > Потому что если бы пакет пересобрался, то поменялся бы ещё и buildtime, а > из-за него и sha1header. > Да, меняется именно подпись. Но подпись не может входить в sha1header. ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [devel] Как узнать, что пакет установлен из репозитория? 2023-05-02 8:31 ` Gleb Fotengauer-Malinovskiy 2023-05-02 8:32 ` Anton Farygin @ 2023-05-02 9:04 ` Dmitry V. Levin 1 sibling, 0 replies; 25+ messages in thread From: Dmitry V. Levin @ 2023-05-02 9:04 UTC (permalink / raw) To: devel On Tue, May 02, 2023 at 12:31:03PM +0400, Gleb Fotengauer-Malinovskiy wrote: > On Tue, May 02, 2023 at 10:46:57AM +0300, Dmitry V. Levin wrote: > > On Tue, May 02, 2023 at 08:31:43AM +0300, Danil Shein wrote: > > > Мы сначала и использовали SHA1, но перешли на новую схему хэшей, т.к. > > > пошли коллизии из-за того, что не всегда при пересборке пакетов меняется > > > SHA1 хэш, а нам нужен уникальный признак каждого пакета. > > > > Интересно, а что тогда меняется в пакете, если SHA1 в нём не меняется? > > Получается, что меняется как раз только подпись и это один и тот же пакет, > который сборочница почему-то переподписала? > Потому что если бы пакет пересобрался, то поменялся бы ещё и buildtime, а > из-за него и sha1header. SOURCE_DATE_EPOCH overrides buildtime. Так что в случае rebuild и хорошо воспроизводимой сборки получится пакет с тем же sha1header, но с более свежей подписью. -- ldv ^ permalink raw reply [flat|nested] 25+ messages in thread
end of thread, other threads:[~2023-05-02 9:04 UTC | newest] Thread overview: 25+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2023-04-27 22:15 [devel] Как узнать, что пакет установлен из репозитория? Vitaly Lipatov 2023-04-27 22:26 ` Dmitry V. Levin 2023-04-28 0:39 ` Vitaly Lipatov 2023-04-28 1:01 ` Leonid Krivoshein 2023-05-01 12:33 ` Vitaly Lipatov 2023-05-01 13:56 ` Dmitry V. Levin 2023-05-01 16:20 ` Denis Medvedev 2023-04-28 6:37 ` Anton Farygin 2023-04-28 9:41 ` Paul Wolneykien 2023-04-28 18:22 ` Alexey Shabalin 2023-04-28 18:33 ` Dmitry V. Levin 2023-04-28 18:34 ` Dmitry V. Levin 2023-04-27 23:17 ` Leonid Krivoshein 2023-04-28 7:23 ` [devel] " Sergey V Turchin 2023-04-28 6:35 ` [devel] " Anton Farygin 2023-05-02 7:46 ` Dmitry V. Levin 2023-05-02 7:47 ` Anton Farygin 2023-05-02 8:01 ` Dmitry V. Levin 2023-05-02 8:04 ` Anton Farygin 2023-05-02 8:09 ` Anton Farygin 2023-05-02 8:25 ` Dmitry V. Levin 2023-05-02 8:30 ` Anton Farygin 2023-05-02 8:31 ` Gleb Fotengauer-Malinovskiy 2023-05-02 8:32 ` Anton Farygin 2023-05-02 9:04 ` Dmitry V. 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