[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Dragora-users] Qi bug: all packages from blacklist have name by ${p

From: Matías Fonzo
Subject: Re: [Dragora-users] Qi bug: all packages from blacklist have name by ${program}@${category}
Date: Wed, 03 Aug 2022 21:17:06 -0300
User-agent: Roundcube Webmail/1.5.2

El 2022-08-03 12:11, DustDFG escribió:
On Wed, Aug 3, 2022 at 3:51 PM Matías Fonzo <selk@dragora.org> wrote:

El 2022-08-03 00:50, DustDFG escribió:
> On Tue, Aug 2, 2022 at 5:20 PM Matías Fonzo <selk@dragora.org> wrote:
>> El 2022-08-02 00:52, DustDFG escribió:
>> > On Mon, Aug 1, 2022 at 7:41 PM Matías Fonzo <selk@dragora.org> wrote:
>> >>
>> >> El 2022-07-23 01:38, DustDFG escribió:
>> >> > Hello!
>> >>
>> >> Hi! :-)
>> >>
>> >> >
>> >> > The subject line describes a problem.
>> >>
>> >> Where exactly? I can't find it.
>> >>
>> >
>> > Ok. Maybe, it is because you got message from dragora-users...
>> >
>> > The subject line:
>> >
>> > "Qi bug: all packages from blacklist have name by
>> > ${program}@${category}"
>> I would appreciate any other details or description, line of code
>> where
>> the problem is, if it is in a configuration file, unexpected behavior.
>> The subject line seems general, and I can't find it where it is.
> Ok. I don't know where mistake is but I can guess. It is related for
> all packages from blacklist. All packages from blacklist have one
> peculiarity. When you try to install \ upgrade \ build the package
> installs to temporary location or have temporary .replace file and in
> the end must receive final normal name. It looks like it doesn't
> happen.

If you can provide the steps you performed, I may be able to reproduce

I built the dragora. I opened OUTPUT.bootstrap/stage/usr/pkg and I saw
there qi@tools, musl@libs and other packages that follow normal name

Now I understand, you want to know why there are package names like "musl@libs" instead of the convention used.

Well the reason is simple, when a new package is updated, it removes (by removing its symbolic links) to make room for the incoming version, of which the symbolic links will be re-linked. It is part of Graft's pruning to make a clean upgrade, the problem lies when the package directory name differs, causing the links to look into the new location. This is a normal part of the process and operation, but it is not normal for core parts such as C libraries, because it renders the system unusable. To solve this we created the blacklist, which for this type of packages is installed instead of being updated, to further minimize the risk we changed the package name to a more common name, but preserving the category (when it was introduced). As explained in the Qi manual:

4.4.1 Package blacklist

To implement general package facilities, either to install, remove or maintain the hierarchy of packages in a clean manner, qi makes use of the pruning operation via graft(1) by default:

There is a risk if those are crucial packages for the proper functioning of the system, because it implies the deactivation of symbolic from the target directory, especially when transitioning an incoming package into its final location during an upgrade.

A blacklist of package names has been devised for the case where a user decides to upgrade all the packages in the system, or just the crucial ones, such as the C library.

The blacklist is related to the upgrade command only, consists in installing a package instead of updating it or removing previous versions of it; the content of the package will be updated over the existing content at ‘${packagedir}’, while the existing links from ‘${targetdir}’ will be preserved. A pruning of links will be carried out in order to re-link possible differences with the recent content, this helps to avoid leaving dead links in the target directory.

Package names for the blacklist to be declared must be set from the configuration file. By default, it is declared using the package name, which is more than enough for critical system packages, but if you want to be more specific, you can declare a package using: ‘${pkgname}_${pkgversion}_${arch}-${release}’ where the package category is avoided for common matching. See Special variables for a description of these variables.

I don't see it as a bug, rather it is a limitation, that in order to have the normal names or the current convention, you have to expand the filter as for the blacklist statement to allow it. I don't think it's something I'm going to do now, but if it comes up maybe, or else in future versions of Qi.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]