Re: F38 proposal: Minizip renaming (Self-Contained Change proposal)

2022-09-13 Thread Lukas Javorsky
Hi,

I've just updated the Fedora change [1] accordingly.

Feel free to take another look.

[1] https://fedoraproject.org/wiki/Changes/MinizipRenaming

Lukas

On Tue, Sep 6, 2022 at 11:40 AM Lukas Javorsky  wrote:

> Hi guys,
>
> Thank you so much for the feedback.
>
> Let's wrap it up...
>
> 1) We will not rename the current "minizip-compat" to "minizip".
>
> 2) The Obsolete in the "minizip-ng" package will look like this:
> "Obsoletes: minizip < 3.0.3"
> It shouldn't affect the "minizip-compat" because we won't rename that
> (look at step 1)
>
> 3) The removal of the "Provides" and "Obsolete" in the new "minizip-ng"
> package will be removed in Fedora 42 (hopefully at that time all users are
> upgraded)
>
> Note: The rebuild (step 2 in the proposal change) will be done by the
> maintainers of the dependent packages. I'll report a bug for each
> component, where I will request it. If some of the maintainers will not be
> responsive, I will create a PR and as provenpackagers to merge it.
>
> Is this plan correction okay with you?
> Or is there something else you would like to clear out?
>
> On Tue, Aug 30, 2022 at 11:04 PM Maxwell G via devel <
> devel@lists.fedoraproject.org> wrote:
>
>> On 22/08/30 05:57PM, Zbigniew Jędrzejewski-Szmek wrote:
>> > On Mon, Aug 15, 2022 at 05:04:27PM -0400, Ben Cotton wrote:
>> > > == Detailed Description ==
>> > > Upstream has changed the naming of the "minizip" package to
>> > > "minizip-ng" and we should follow their naming so there is no
>> > > confusion about which package is the right one. Upstream has also
>> > > requested to rename the "minizip-compat" zlib subpackage to "minizip"
>> > > which is the right naming for the package.
>> > >
>> > > The "minizip" and "minizip-compat" provides different shared libraries
>> > > which prevent us from conflicting sonames.
>> > >
>> > > The plan behind this change can be put into x steps which will be
>> > > completed separately and in the given order:
>> > >
>> > > ''NOTE: All of the Provides and Obsoletes will be added to the *-devel
>> > > subpackages as well.''
>> > >
>> > > 1) Create a new package "minizip-ng" which will `Provides: minizip =
>> > > %{sameevr}` and `Obsoletes: (minizip < 3.0.2-7 and minizip > 3.0.0-1)`
>> >
>> > Hi,
>> >
>> > it seems that Obsoletes does not work with boolean dependencies,
>> > so the proposed for would not work.
>>
>> Correct. And even if it did work, you'd want to use the "with" operator
>> not "and."
>>
>> > Instead, please use the standard form described by the Packaging
>> > Guidelines:
>> >   Obsoletes: minizip < 3.0.3
>>
>> That also won't work. If minizip-ng "Obsoletes: minizip < 3.0.3" and the
>> new minizip package (the current minizip-compat) is 1.2.12-5, it will
>> get Obsoleted by minizip-ng, which is unwanted. I would suggest adding
>> "Epoch: 1" to the new minizip package (current minizip-compat) so it
>> sorts above 3.0.3.
>>
>> You also shouldn't add "Provides: minizip = %{sameevr}`" to minizip-ng.
>> It will break parallel installability with the new minizip package. Just
>> wait to retire the current minizip (the one that's becoming minizip-ng)
>> until step 2 has been completed.
>>
>> > > 2) Rebuild all of the packages that BuildRequire/Require "minizip"
>> > > package to BuildRequire/Require new "minizip-ng" package
>>
>> Who will be doing this? How will it be done?
>>
>> > > 3) Retire the "minizip" package following the
>> > > [
>> https://docs.fedoraproject.org/en-US/package-maintainers/Package_Retirement_Process/
>> > > Package Retirement Process]
>> > >
>> > > 4) Wait for the Fedora 40 when it's ensured that every user has
>> > > updated at least to the Fedora 38. Remove the `Provides` and
>> > > `Obsoletes` from the "minizip-ng" package
>> >
>> > FWIW, I prefer to keep those for a while. We don't officially support
>> > this, but people do upgrades over more than two versions quite often,
>> > and it's nice not to break that.
>>
>> I agree. If you use the approach I outlined above, removing the
>> the Obsoletes won't be necessary in order to rename minizip-compat to
>> minizip.
>>
>> > > 5) Rename the "minizip-compat" to the "minizip" package and add
>> > > `Provides: minizip-compat = %{sameevr}` and `Obsoletes: minizip-compat
>> > > < 1.2.12`
>> >
>> > As already mentioned in the original discussion thread, this step is
>> > risky. We generally try to follow upstream naming on packages, but
>> > sometimes it's not possible for various technical reasons. This seems
>> > to be one of those cases, because limitiations of Obsoletes mean that
>> > we can't obsolete a subset of package versions.
>>
>> If you use the Epoch approach, this wouldn't be an
>> issue. Also, what's the idea of waiting to do step 5 until Fedora 40?
>>
>> > Minizip-compat is not intended to be used by anything in the
>> > distribution, so it's not a big deal if the package name is "wrong".
>> > Thus, I think it's better to skip this last step and tell minizip
>> > upstream that the we'll keep 

Re: F38 proposal: Minizip renaming (Self-Contained Change proposal)

2022-09-06 Thread Lukas Javorsky
Hi guys,

Thank you so much for the feedback.

Let's wrap it up...

1) We will not rename the current "minizip-compat" to "minizip".

2) The Obsolete in the "minizip-ng" package will look like this:
"Obsoletes: minizip < 3.0.3"
It shouldn't affect the "minizip-compat" because we won't rename that (look
at step 1)

3) The removal of the "Provides" and "Obsolete" in the new "minizip-ng"
package will be removed in Fedora 42 (hopefully at that time all users are
upgraded)

Note: The rebuild (step 2 in the proposal change) will be done by the
maintainers of the dependent packages. I'll report a bug for each
component, where I will request it. If some of the maintainers will not be
responsive, I will create a PR and as provenpackagers to merge it.

Is this plan correction okay with you?
Or is there something else you would like to clear out?

On Tue, Aug 30, 2022 at 11:04 PM Maxwell G via devel <
devel@lists.fedoraproject.org> wrote:

> On 22/08/30 05:57PM, Zbigniew Jędrzejewski-Szmek wrote:
> > On Mon, Aug 15, 2022 at 05:04:27PM -0400, Ben Cotton wrote:
> > > == Detailed Description ==
> > > Upstream has changed the naming of the "minizip" package to
> > > "minizip-ng" and we should follow their naming so there is no
> > > confusion about which package is the right one. Upstream has also
> > > requested to rename the "minizip-compat" zlib subpackage to "minizip"
> > > which is the right naming for the package.
> > >
> > > The "minizip" and "minizip-compat" provides different shared libraries
> > > which prevent us from conflicting sonames.
> > >
> > > The plan behind this change can be put into x steps which will be
> > > completed separately and in the given order:
> > >
> > > ''NOTE: All of the Provides and Obsoletes will be added to the *-devel
> > > subpackages as well.''
> > >
> > > 1) Create a new package "minizip-ng" which will `Provides: minizip =
> > > %{sameevr}` and `Obsoletes: (minizip < 3.0.2-7 and minizip > 3.0.0-1)`
> >
> > Hi,
> >
> > it seems that Obsoletes does not work with boolean dependencies,
> > so the proposed for would not work.
>
> Correct. And even if it did work, you'd want to use the "with" operator
> not "and."
>
> > Instead, please use the standard form described by the Packaging
> > Guidelines:
> >   Obsoletes: minizip < 3.0.3
>
> That also won't work. If minizip-ng "Obsoletes: minizip < 3.0.3" and the
> new minizip package (the current minizip-compat) is 1.2.12-5, it will
> get Obsoleted by minizip-ng, which is unwanted. I would suggest adding
> "Epoch: 1" to the new minizip package (current minizip-compat) so it
> sorts above 3.0.3.
>
> You also shouldn't add "Provides: minizip = %{sameevr}`" to minizip-ng.
> It will break parallel installability with the new minizip package. Just
> wait to retire the current minizip (the one that's becoming minizip-ng)
> until step 2 has been completed.
>
> > > 2) Rebuild all of the packages that BuildRequire/Require "minizip"
> > > package to BuildRequire/Require new "minizip-ng" package
>
> Who will be doing this? How will it be done?
>
> > > 3) Retire the "minizip" package following the
> > > [
> https://docs.fedoraproject.org/en-US/package-maintainers/Package_Retirement_Process/
> > > Package Retirement Process]
> > >
> > > 4) Wait for the Fedora 40 when it's ensured that every user has
> > > updated at least to the Fedora 38. Remove the `Provides` and
> > > `Obsoletes` from the "minizip-ng" package
> >
> > FWIW, I prefer to keep those for a while. We don't officially support
> > this, but people do upgrades over more than two versions quite often,
> > and it's nice not to break that.
>
> I agree. If you use the approach I outlined above, removing the
> the Obsoletes won't be necessary in order to rename minizip-compat to
> minizip.
>
> > > 5) Rename the "minizip-compat" to the "minizip" package and add
> > > `Provides: minizip-compat = %{sameevr}` and `Obsoletes: minizip-compat
> > > < 1.2.12`
> >
> > As already mentioned in the original discussion thread, this step is
> > risky. We generally try to follow upstream naming on packages, but
> > sometimes it's not possible for various technical reasons. This seems
> > to be one of those cases, because limitiations of Obsoletes mean that
> > we can't obsolete a subset of package versions.
>
> If you use the Epoch approach, this wouldn't be an
> issue. Also, what's the idea of waiting to do step 5 until Fedora 40?
>
> > Minizip-compat is not intended to be used by anything in the
> > distribution, so it's not a big deal if the package name is "wrong".
> > Thus, I think it's better to skip this last step and tell minizip
> > upstream that the we'll keep the "-compat" name for compatiblity
> > reasons. Maybe add a sentence of explanation to the package name.
>
> I agree. While it's possible to overcome the technical hurdles, this
> whole Change seems like more headache than its worth. Kevin and I had to
> deal with a similar situation of Obsoletes and Provides and boolean
> Requires with the 

Re: F38 proposal: Minizip renaming (Self-Contained Change proposal)

2022-08-30 Thread Maxwell G via devel
On 22/08/30 05:57PM, Zbigniew Jędrzejewski-Szmek wrote:
> On Mon, Aug 15, 2022 at 05:04:27PM -0400, Ben Cotton wrote:
> > == Detailed Description ==
> > Upstream has changed the naming of the "minizip" package to
> > "minizip-ng" and we should follow their naming so there is no
> > confusion about which package is the right one. Upstream has also
> > requested to rename the "minizip-compat" zlib subpackage to "minizip"
> > which is the right naming for the package.
> > 
> > The "minizip" and "minizip-compat" provides different shared libraries
> > which prevent us from conflicting sonames.
> > 
> > The plan behind this change can be put into x steps which will be
> > completed separately and in the given order:
> > 
> > ''NOTE: All of the Provides and Obsoletes will be added to the *-devel
> > subpackages as well.''
> > 
> > 1) Create a new package "minizip-ng" which will `Provides: minizip =
> > %{sameevr}` and `Obsoletes: (minizip < 3.0.2-7 and minizip > 3.0.0-1)`
> 
> Hi,
> 
> it seems that Obsoletes does not work with boolean dependencies,
> so the proposed for would not work.

Correct. And even if it did work, you'd want to use the "with" operator
not "and."

> Instead, please use the standard form described by the Packaging
> Guidelines:
>   Obsoletes: minizip < 3.0.3

That also won't work. If minizip-ng "Obsoletes: minizip < 3.0.3" and the
new minizip package (the current minizip-compat) is 1.2.12-5, it will
get Obsoleted by minizip-ng, which is unwanted. I would suggest adding
"Epoch: 1" to the new minizip package (current minizip-compat) so it
sorts above 3.0.3.

You also shouldn't add "Provides: minizip = %{sameevr}`" to minizip-ng.
It will break parallel installability with the new minizip package. Just
wait to retire the current minizip (the one that's becoming minizip-ng)
until step 2 has been completed.

> > 2) Rebuild all of the packages that BuildRequire/Require "minizip"
> > package to BuildRequire/Require new "minizip-ng" package

Who will be doing this? How will it be done?

> > 3) Retire the "minizip" package following the
> > [https://docs.fedoraproject.org/en-US/package-maintainers/Package_Retirement_Process/
> > Package Retirement Process]
> > 
> > 4) Wait for the Fedora 40 when it's ensured that every user has
> > updated at least to the Fedora 38. Remove the `Provides` and
> > `Obsoletes` from the "minizip-ng" package
> 
> FWIW, I prefer to keep those for a while. We don't officially support
> this, but people do upgrades over more than two versions quite often,
> and it's nice not to break that.

I agree. If you use the approach I outlined above, removing the
the Obsoletes won't be necessary in order to rename minizip-compat to
minizip.

> > 5) Rename the "minizip-compat" to the "minizip" package and add
> > `Provides: minizip-compat = %{sameevr}` and `Obsoletes: minizip-compat
> > < 1.2.12`
> 
> As already mentioned in the original discussion thread, this step is
> risky. We generally try to follow upstream naming on packages, but
> sometimes it's not possible for various technical reasons. This seems
> to be one of those cases, because limitiations of Obsoletes mean that
> we can't obsolete a subset of package versions.

If you use the Epoch approach, this wouldn't be an
issue. Also, what's the idea of waiting to do step 5 until Fedora 40?

> Minizip-compat is not intended to be used by anything in the
> distribution, so it's not a big deal if the package name is "wrong".
> Thus, I think it's better to skip this last step and tell minizip
> upstream that the we'll keep the "-compat" name for compatiblity
> reasons. Maybe add a sentence of explanation to the package name.

I agree. While it's possible to overcome the technical hurdles, this
whole Change seems like more headache than its worth. Kevin and I had to
deal with a similar situation of Obsoletes and Provides and boolean
Requires with the ansible -> ansible-core split, and it's been a huge
pain. This change is probably more complicated than that. It's likely
that I've confused something in this email given the complexity of a
renaming like this

-- 
Thanks,

Maxwell G (@gotmax23)
Pronouns: He/Him/His


signature.asc
Description: PGP signature
___
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


Re: F38 proposal: Minizip renaming (Self-Contained Change proposal)

2022-08-30 Thread Zbigniew Jędrzejewski-Szmek
On Mon, Aug 15, 2022 at 05:04:27PM -0400, Ben Cotton wrote:
> == Detailed Description ==
> Upstream has changed the naming of the "minizip" package to
> "minizip-ng" and we should follow their naming so there is no
> confusion about which package is the right one. Upstream has also
> requested to rename the "minizip-compat" zlib subpackage to "minizip"
> which is the right naming for the package.
> 
> The "minizip" and "minizip-compat" provides different shared libraries
> which prevent us from conflicting sonames.
> 
> The plan behind this change can be put into x steps which will be
> completed separately and in the given order:
> 
> ''NOTE: All of the Provides and Obsoletes will be added to the *-devel
> subpackages as well.''
> 
> 1) Create a new package "minizip-ng" which will `Provides: minizip =
> %{sameevr}` and `Obsoletes: (minizip < 3.0.2-7 and minizip > 3.0.0-1)`

Hi,

it seems that Obsoletes does not work with boolean dependencies,
so the proposed for would not work. Instead, please use the standard
form described by the Packaging Guidelines:
  Obsoletes: minizip < 3.0.3

(This is assuming that minizip-ng-3.0.3 will be the first version
built in koji. Please note that minizip < 3.0.2-7 does NOT cover version
minizip-3.0.2-7.fc37 currently in rawhide.)

> 2) Rebuild all of the packages that BuildRequire/Require "minizip"
> package to BuildRequire/Require new "minizip-ng" package
> 
> 3) Retire the "minizip" package following the
> [https://docs.fedoraproject.org/en-US/package-maintainers/Package_Retirement_Process/
> Package Retirement Process]
> 
> 4) Wait for the Fedora 40 when it's ensured that every user has
> updated at least to the Fedora 38. Remove the `Provides` and
> `Obsoletes` from the "minizip-ng" package

FWIW, I prefer to keep those for a while. We don't officially support
this, but people do upgrades over more than two versions quite often,
and it's nice not to break that.

> 5) Rename the "minizip-compat" to the "minizip" package and add
> `Provides: minizip-compat = %{sameevr}` and `Obsoletes: minizip-compat
> < 1.2.12`

As already mentioned in the original discussion thread, this step is
risky. We generally try to follow upstream naming on packages, but
sometimes it's not possible for various technical reasons. This seems
to be one of those cases, because limitiations of Obsoletes mean that
we can't obsolete a subset of package versions. Minizip-compat is not
intended to be used by anything in the distribution, so it's not a big
deal if the package name is "wrong". Thus, I think it's better to skip
this last step and tell minizip upstream that the we'll keep the
"-compat" name for compatiblity reasons. Maybe add a sentence of
explanation to the package name.

Zbyszek
___
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue