• Re: [gentoo-user] Where does Portage store what USE flags are required

    From Eli Schwartz@21:1/5 to Dr Rainer Woitok on Sun Dec 8 16:30:01 2024
    This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------EVZBCoqKh0doBhWxbHwjCs9C
    Content-Type: text/plain; charset=UTF-8
    Content-Transfer-Encoding: quoted-printable

    On 12/8/24 9:57 AM, Dr Rainer Woitok wrote:
    Greetings,

    off and on my attempts to coax Portage into installing a binary package fail. Current example: "sys-libs/readline-8.2_p13" was installed as bi-
    nary some weeks ago, while my current attempts to install "sys-libs/ readline-8.2_p13-r1" as binary are ignored, "emerge" insists in install-
    ing it as an ebuild. Same happened with a few more packages.

    I downloaded file "Packages" from my binhost mirror which provides quite
    some information and helped me specifying the correct USE flags for se- veral packages. But not for all -- apparently Portage's decicions are based on different information.

    Where should I look?


    There's no subtlety to where USE flags are stored. They are stored in
    the Packages file right where you looked. :)

    There are other reasons a binpackage might be ineligible. For example,
    if dependencies have changed (including build-time dependencies IIRC)
    via ebuild / eclass edits, or when an RDEPEND has a subslot binding
    dependency and your installed version of the dependency has been
    upgraded, the binpackage won't work (and in a world update, you'd see a
    red "r" to indicate that one package is forcing another package to rebuild).

    By the way you don't need to download the Packages file manually. It
    will be in /var/cache/edb/binhost/ using a directory structure based on
    your binhost uri. For example, my cached copy is at:

    /var/cache/edb/binhost/gentoo.osuosl.org/releases/amd64/binpackages/23.0/x86-64-v3/Packages


    --
    Eli Schwartz

    --------------EVZBCoqKh0doBhWxbHwjCs9C--

    -----BEGIN PGP SIGNATURE-----

    wnsEABYIACMWIQTnFNnmK0TPZHnXm3qEp9ErcA0vVwUCZ1W6OwUDAAAAAAAKCRCEp9ErcA0vVy+p AQCHK3a1ox0adJRSVwts6u0TdvhdFNlAoDcRCabIsMTnFwEAodTr6nOzkawdfiberxEUhdjwVHFq 5KVakVWXxy7IfAY=
    =LYdO
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Eli Schwartz@21:1/5 to Dr Rainer Woitok on Sun Dec 8 19:20:01 2024
    To: gentoo-user@lists.gentoo.org

    This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------zQQlY8EoUeR32tD3zb0F7LT1
    Content-Type: text/plain; charset=UTF-8
    Content-Transfer-Encoding: quoted-printable

    On 12/8/24 12:57 PM, Dr Rainer Woitok wrote:
    Eli,

    On Sun, 8 Dec 2024 10:24:42 -0500 you wrote:

    ...
    By the way you don't need to download the Packages file manually. It
    will be in /var/cache/edb/binhost/ using a directory structure based on
    your binhost uri.

    Great. Thankyou for this pointer!

    But: the file "/var/cache/edb/binhost/**/Packages" has a time stamp from December 2-nd and differs from the "Packages" file I downloaded manually yesterday. So when does Portage sync it? I ran "emaint sync -A" yes- terday and then experimented with "emerge --pretend". But this did not update file "/var/cache/edb/binhost/**/Packages".

    In any case the differences between these two files could well explain
    my problems.


    It is definitely downloaded by emerge --pretend --getbinpkg.

    It is not downloaded by emaint sync.

    If neither FEATURES="getbinpkg" nor EMERGE_DEFAULT_OPTS="--getbinpkg"
    are set, then you have to manually pass --getbinpkg on the CLI every
    time you want binpackages -- correspondingly, it will only download the Packages file when you manually pass --getbinpkg (as root). In theory,
    this should mean you always have a fresh cached index any time you
    actually check for binary updates...

    It also will check the timestamp to figure out whether to redownload.
    The downloaded file will have a new "DOWNLOAD_TIMESTAMP:" field but you
    can ignore that specific line. A timestamp of December 2 is definitely
    way too old.

    ...

    So the two possibilities I can think of are that:

    - you ran --pretend as non-root, so emerge couldn't update the index

    - you usually update with -uDU --getbinpkg, and didn't pass --getbinpkg
    with --pretend


    --
    Eli Schwartz

    --------------zQQlY8EoUeR32tD3zb0F7LT1--

    -----BEGIN PGP SIGNATURE-----

    wnsEABYIACMWIQTnFNnmK0TPZHnXm3qEp9ErcA0vVwUCZ1Xh1QUDAAAAAAAKCRCEp9ErcA0vV2QV AQCRhO9uECbP6lOU1ukF80cGYAuegAtCB3jUZGrSvG6okgD/Q5arOkjpy8R4FyXQrrydK846/WSN KoIOtmWx3Knrrgc=
    =1GFz
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)