From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Wed, 23 Jun 2021 15:23:20 +0300 From: "Dmitry V. Levin" To: ALT Devel discussion list Message-ID: <20210623122320.GC23626@altlinux.org> References: <20210623013545.GC16339@altlinux.org> <95f627c7-4810-4409-4fc8-8f6464beee79@altlinux.org> <20210623104033.GA17541@altlinux.org> <3b904750-afb4-2dcc-33fb-f50d05f4dcdf@altlinux.org> <20210623110137.GA22989@altlinux.org> <20210623121139.wajawxgolxy7afda@titan.localdomain> <20210623121721.GB23626@altlinux.org> MIME-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20210623121721.GB23626@altlinux.org> Subject: Re: [devel] Q: mono FTBFS X-BeenThere: devel@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: ALT Linux Team development discussions List-Id: ALT Linux Team development discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Jun 2021 12:23:20 -0000 Archived-At: List-Archive: List-Post: On Wed, Jun 23, 2021 at 03:17:21PM +0300, Dmitry V. Levin wrote: > On Wed, Jun 23, 2021 at 04:11:39PM +0400, Ivan A. Melnikov wrote: > > On Wed, Jun 23, 2021 at 02:01:37PM +0300, Dmitry V. Levin wrote: > > > On Wed, Jun 23, 2021 at 01:51:26PM +0300, Aleksei Nikiforov wrote: > > > > 23.06.2021 13:40, Dmitry V. Levin пишет: > > > [...] > > > > > Вешать баг на rpm-build-mono? > > > > > > > > Насколько я вижу, с rpm-build-mono всё в порядке. Лучше на rpm-build. > > > > Там сломали и недочинили. > > > > > > Какие есть основания полагать, что rpm-build-mono сломался из-за изменений > > > в rpm-build, которых не было? > > > > Смотрите как интересно. В логах [1] пишут: > > > > [00:21:46] /usr/lib/rpm/python3.prov: ERROR: rpm-build-python3 is not installed, the following files cannot be processed: /usr/src/tmp/mono-buildroot/usr/bin/mono-gdb.py /usr/src/tmp/mono-buildroot/usr/bin/mono-sgen-gdb.py > > [00:21:46] find-provides: ERROR: /usr/lib/rpm/python3.prov failed > > > > И никаких провайдов вида `mono(...)` не находится. > > > > Но если в сборочную среду добавить rpm-build-python3 > > (это я локально в хешере попробовал), то такие зависимости > > находятся: > > > > $ rpm -qp --provides ~/hasher/repo/x86_64/RPMS.hasher/mono-core-6.12.0.122-alt1.x86_64.rpm | grep ^mono | head -n5 > > mono4-core = 6.12.0.122-alt1 > > mono(Commons.Xml.Relaxng) = 4.0 > > mono(Commons.Xml.Relaxng) = 4.0.0.0 > > mono(CustomMarshalers) = 4.0 > > mono(CustomMarshalers) = 4.0.0.0 > > > > Мне это кажется странным. Мне кажется, такие ошибки python3.prov > > должны или приводить к падению сборки или игнорироваться, > > а тут происходить что-то третье. > > Этому есть очень простое объяснение, см. лог сборки: > $ grep -E '^Finding (Provides|Requires) ' beehive/logs/Sisyphus/x86_64/latest/success/mono-6.12.0.122-alt1 |sort |uniq -c > 24 Finding Provides (using sh -c '/usr/lib/rpm/find-provides | sort | uniq') > 24 Finding Requires (using sh -c '/usr/lib/rpm/find-requires | sort | uniq | grep ^... | > > Другими словами, пакет mono специально игнорирует ошибки, > которые возвращают find-provides и find-requires. А ещё в mono.spec написано следующее: # Interfaces of slightly older versions are required, upstream corrects it by modifying 'Requires' # TODO: on each upgrade disable and recheck it %define __find_provides sh -c '/usr/lib/rpm/find-provides | sort | uniq' %define __find_requires sh -c '/usr/lib/rpm/find-requires | sort | uniq | grep ^... | \ sed "s/mono\(Microsoft\.Build\.Framework\) = 15\.1/mono\(Microsoft.Build.Framework\) = 14.0/" | \ sed "s/mono\(Microsoft\.Build\.Tasks\.Core\) = 15\.1\.0\.0/mono\(Microsoft.Build.Tasks.Core\) = 14.0.0.0/" | \ sed "s/mono\(Microsoft\.Build\.Utilities\.Core\) = 15\.1\.0\.0/mono\(Microsoft.Build.Utilities.Core\) = 14.0.0.0/" | \ sed "s/mono\(Mono\.Cecil\) = 0\.10\.0\.0/mono\(Mono.Cecil\) = 0.11.0.0/" | \ sed "s/mono\(System\.Numerics\.Vectors\) = 4\.1/mono\(System.Numerics.Vectors\) = 4.0/" | \ sed "/mono\(System\.Buffers\) = .*/d" | \ sed "/mono\(System\.Runtime\.Loader\) = .*/d"' Тому специалисту, который это написал, надо пройти повышение квалификации. Подсказка #1: автозависимости уже отсортированы с помощью sort -u. Подсказка #2: %filter_from_requires. -- ldv