Re: [Rpm-maint] [rpm-software-management/rpm] if-else rich dependency always installs the if leg (Issue #3082)

2024-05-07 Thread Zbigniew Jędrzejewski-Szmek
Thanks. You are completely right, I misunderstood what is part of the stack is 
doing what.

I added the Suggests as suggested, and it works. Thanks again.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/3082#issuecomment-2098790412
You are receiving this because you are subscribed to this thread.

Message ID: ___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] if-else rich dependency always installs the if leg (Issue #3082)

2024-05-07 Thread Zbigniew Jędrzejewski-Szmek
Closed #3082 as not planned.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/3082#event-12731802803
You are receiving this because you are subscribed to this thread.

Message ID: 
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] if-else rich dependency always installs the if leg (Issue #3082)

2024-05-07 Thread Michael Schroeder
This is not a rpm issue. rpm just checks if all dependencies are fulfilled, it 
does not choose packages. So you would need to take this to the dnf people who 
will tell you to ask the libsolv folks.

Anyway, what happens is that your dependency is basically telling the solver 
"either install add-determinism-nopython or install both python3-libs and 
add-determinism". Both are valid solutions and the solver is free to pick the 
one it likes. You could try to add a "Suggests: add-determinism-nopython" to 
give it a hint that it should prefer the nopython variant.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/3082#issuecomment-2098446058
You are receiving this because you are subscribed to this thread.

Message ID: ___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] Convert packageHash to STL unordered_map (PR #3077)

2024-05-07 Thread Panu Matilainen
...plus a bunch of other hashes...

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/3077#issuecomment-2098143569
You are receiving this because you are subscribed to this thread.

Message ID: ___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] Convert packageHash to STL unordered_map (PR #3077)

2024-05-07 Thread Panu Matilainen
@pmatilai pushed 1 commit.

24b61052131553275d5818e1a47bce6a3c80f7ba  Replace dependency lookup cache with 
an STL unordered map

-- 
View it on GitHub:
https://github.com/rpm-software-management/rpm/pull/3077/files/cce0bdbc8c1e48cb03bb2905d4c7cbd3340a..24b61052131553275d5818e1a47bce6a3c80f7ba
You are receiving this because you are subscribed to this thread.

Message ID: 
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] if-else rich dependency always installs the if leg (Issue #3082)

2024-05-07 Thread Zbigniew Jędrzejewski-Szmek
https://src.fedoraproject.org/fork/zbyszek/rpms/redhat-rpm-config/commits/post-build-reproducibility-debug
 is the branch. The middle commit shows the unexpected behaviour and the third 
one is for debugging.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/3082#issuecomment-2098101123
You are receiving this because you are subscribed to this thread.

Message ID: ___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


[Rpm-maint] [rpm-software-management/rpm] if-else rich dependency always installs the if leg (Issue #3082)

2024-05-07 Thread Zbigniew Jędrzejewski-Szmek
**Describe the bug**
The docs say:
> `if` - requires the first operand to be fulfilled if the second is (reverse 
> implication)
> `if else` - same as above but requires the third operand to be fulfilled if 
> the second is not

I added the following to `redhat-rpm-macros`:
> `Requires: (add-determinism if python3-libs else add-determinism-nopython)`

When I install the package I get:
```console
$ mock -r fedora-rawhide-x86_64 --uniqueext=a -i 
/var/tmp/redhat-rpm-config-289-1.fc41.noarch.rpm
...
Upgrading: 
 redhat-rpm-config noarch 289-1.fc41 @commandline 183.5 KiB
   replacing redhat-rpm-config noarch 288-1.fc41 fedora   183.3 KiB
Installing dependencies:   
 add-determinism   x86_64 0.2.0-1.fc41   fedora 2.6 MiB
 expat x86_64 2.6.2-1.fc41   fedora   280.8 KiB
 libb2 x86_64 0.98.1-11.fc40 fedora42.2 KiB
 mpdecimal x86_64 2.5.1-9.fc40   fedora   200.9 KiB
 python-pip-wheel  noarch 24.0-2.fc41fedora 1.5 MiB
 python3-libs  x86_64 3.12.3-2.fc41  fedora40.9 MiB
 tzdatanoarch 2024a-5.fc41   fedora 1.6 MiB
```

`python3-libs` is being installed, which means that was *not* installed 
previously. I expected `add-determinism-nopython` would be installed instead.

(When changed to
> `Requires: (add-determinism if python3-libs)`

then `add-determinism` is not installed:
```console
$ mock -r fedora-rawhide-x86_64 --uniqueext=a -i 
/var/lib/mock/fedora-rawhide-x86_64-a/result/redhat-rpm-config-289-1.fc41.noarch.rpm
...
Upgrading: 
 redhat-rpm-config noarch 289-1.fc41 @commandline 183.5 KiB
   replacing redhat-rpm-config noarch 288-1.fc41 fedora   183.3 KiB
Transaction Summary:
 Upgrading: 1 packages
 Replacing: 1 packages
```
)


-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/3082
You are receiving this because you are subscribed to this thread.

Message ID: ___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


[Rpm-maint] [rpm-software-management/rpm] Use an STL vector for the transaction main rpmte pointer storage (PR #3081)

2024-05-07 Thread Panu Matilainen
...and orderInfo array too
You can view, comment on, or merge this pull request online at:

  https://github.com/rpm-software-management/rpm/pull/3081

-- Commit Summary --

  * Replace the annoying keyid stash with an STL set
  * Use an STL vector for the transaction main rpmte pointer storage
  * Convert orderInfo array to a vector

-- File Changes --

M lib/depends.c (26)
M lib/order.c (45)
M lib/package.c (28)
M lib/rpmte.c (2)
M lib/rpmts.c (21)
M lib/rpmts_internal.h (7)
M lib/transaction.c (6)

-- Patch Links --

https://github.com/rpm-software-management/rpm/pull/3081.patch
https://github.com/rpm-software-management/rpm/pull/3081.diff

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/3081
You are receiving this because you are subscribed to this thread.

Message ID: rpm-software-management/rpm/pull/3...@github.com
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


[Rpm-maint] [rpm-software-management/rpm] Replace the annoying keyid stash with an STL set (PR #3080)

2024-05-07 Thread Panu Matilainen
It still needs to die, but theres less code that needs dying...
You can view, comment on, or merge this pull request online at:

  https://github.com/rpm-software-management/rpm/pull/3080

-- Commit Summary --

  * Replace the annoying keyid stash with an STL set

-- File Changes --

M lib/package.c (28)

-- Patch Links --

https://github.com/rpm-software-management/rpm/pull/3080.patch
https://github.com/rpm-software-management/rpm/pull/3080.diff

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/3080
You are receiving this because you are subscribed to this thread.

Message ID: rpm-software-management/rpm/pull/3...@github.com
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


[Rpm-maint] [rpm-software-management/rpm] Simplify rpmfi replaced sized management (PR #3079)

2024-05-07 Thread Panu Matilainen
rpmfi always internally stores 64bit sizes since 4.6.0, theres no reason 
to do anything else with replaced sizes either.
You can view, comment on, or merge this pull request online at:

  https://github.com/rpm-software-management/rpm/pull/3079

-- Commit Summary --

  * Simplify rpmfi replaced sized management

-- File Changes --

M lib/rpmfi.c (25)

-- Patch Links --

https://github.com/rpm-software-management/rpm/pull/3079.patch
https://github.com/rpm-software-management/rpm/pull/3079.diff

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/3079
You are receiving this because you are subscribed to this thread.

Message ID: rpm-software-management/rpm/pull/3...@github.com
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


[Rpm-maint] [rpm-software-management/rpm] Replace rpmhash with STL unordered_map in headerformat cache (PR #3078)

2024-05-07 Thread Panu Matilainen
A notable difference is that were now storing the rpmtd structs themselves 
in the hash, rather than pointers to them.

A minor side-cleanup is that headerGet() does not return data on failure so 
theres no need to free anything in that case.
You can view, comment on, or merge this pull request online at:

  https://github.com/rpm-software-management/rpm/pull/3078

-- Commit Summary --

  * Replace rpmhash with STL unordered_map in headerformat cache

-- File Changes --

M lib/headerfmt.c (50)

-- Patch Links --

https://github.com/rpm-software-management/rpm/pull/3078.patch
https://github.com/rpm-software-management/rpm/pull/3078.diff

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/3078
You are receiving this because you are subscribed to this thread.

Message ID: rpm-software-management/rpm/pull/3...@github.com
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] Convert packageHash to STL unordered_map (PR #3077)

2024-05-07 Thread Panu Matilainen
@pmatilai pushed 2 commits.

85b181479291fa0f1a5a7f202fc1849c998b3faf  Natively allocate the main file 
trigger structs
cbbfe1ee74859818cf45c4a7b2812541216ef51f  Convert packageHash to STL 
unordered_map

-- 
View it on GitHub:
https://github.com/rpm-software-management/rpm/pull/3077/files/fb9815b7934782330779fa2334393de9ef3e179a..cbbfe1ee74859818cf45c4a7b2812541216ef51f
You are receiving this because you are subscribed to this thread.

Message ID: 
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] Implement proper user/group lookup caching with STL maps (PR #3076)

2024-05-07 Thread Panu Matilainen
Merged #3076 into master.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/3076#event-12724208939
You are receiving this because you are subscribed to this thread.

Message ID: 
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


[Rpm-maint] [rpm-software-management/rpm] Convert packageHash to STL unordered_map (PR #3077)

2024-05-07 Thread Panu Matilainen
This was a particularly ugly case as it was defined in multiple places.
You can view, comment on, or merge this pull request online at:

  https://github.com/rpm-software-management/rpm/pull/3077

-- Commit Summary --

  * Convert packageHash to STL unordered_map

-- File Changes --

M lib/depends.c (17)
M lib/order.c (2)
M lib/psm.c (3)
M lib/rpmdb.c (13)
M lib/rpmdb_internal.h (13)
M lib/rpmtriggers.c (25)
M lib/rpmts.c (18)
M lib/transaction.c (7)

-- Patch Links --

https://github.com/rpm-software-management/rpm/pull/3077.patch
https://github.com/rpm-software-management/rpm/pull/3077.diff

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/3077
You are receiving this because you are subscribed to this thread.

Message ID: rpm-software-management/rpm/pull/3...@github.com
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] Convert rpmal to use STL containers (PR #3075)

2024-05-07 Thread Panu Matilainen
Merged #3075 into master.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/3075#event-12723879896
You are receiving this because you are subscribed to this thread.

Message ID: 
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint