El 2022-08-03 12:11, DustDFG escribió:
On Wed, Aug 3, 2022 at 3:51 PM Matías Fonzo <s...@dragora.org> wrote:
El 2022-08-03 00:50, DustDFG escribió:
> On Tue, Aug 2, 2022 at 5:20 PM Matías Fonzo <s...@dragora.org> wrote:
>>
>> El 2022-08-02 00:52, DustDFG escribió:
>> > On Mon, Aug 1, 2022 at 7:41 PM Matías Fonzo <s...@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
it.
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
convention
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.
Matías.