Initially I attempted to create the package with the new name ibmtss.
There was some discussion on debian-mentors list and the response was
that I should NOT change the name to ibmtss and instructed to instead
use an epoch number.
The upstream package for tss2 has been renamed ibmtss. When the name was changed upstream, the version number convention also changed. Upstream tss2-1470 was updated to ibmtss-1.3.0. The current version of ibmtss is now 1.6.0. I believe I need to use an epoch number to handle the version change correctly.
Initially I attempted to create the package with the new name ibmtss.
There was some discussion on debian-mentors list and the response was
that I should NOT change the name to ibmtss and instructed to instead
use an epoch number.
I recently posted a packaging question to the debian-mentors list and someone kindly explained that use of an epoch number needed to be discussed on debian-devel first.
Greetings,
The upstream package for tss2 has been renamed ibmtss. When the name
was changed upstream, the version number convention also changed.
Upstream tss2-1470 was updated to ibmtss-1.3.0. The current version of ibmtss is now 1.6.0. I believe I need to use an epoch number to handle
the version change correctly.
Initially I attempted to create the package with the new name ibmtss.
There was some discussion on debian-mentors list and the response was
that I should NOT change the name to ibmtss and instructed to instead
use an epoch number.
I recently posted a packaging question to the debian-mentors list and
someone kindly explained that use of an epoch number needed to be
discussed on debian-devel first.
Thank you,
Debora Babb
Hello Debora Babb,
On Wed, Oct 19, 2022 at 11:04:35PM -0700, Debora Velarde Babb wrote:
Greetings,
The upstream package for tss2 has been renamed ibmtss. When the name
was changed upstream, the version number convention also changed.
Upstream tss2-1470 was updated to ibmtss-1.3.0. The current version of ibmtss is now 1.6.0. I believe I need to use an epoch number to handle
the version change correctly.
Upstream renaming their project is one of the very few chances you get
to GET RID OF an epoch in a debian package!
Initially I attempted to create the package with the new name ibmtss. There was some discussion on debian-mentors list and the response was
that I should NOT change the name to ibmtss and instructed to instead
use an epoch number.
This seems like very bad advice to me.
IMHO you should:
1. package the new project under the new name.
(i.e. rename both source and binary packages.)
2. Provide additional empty binary (transitional) packages under the old
name which depends on the respective new binary packages, so old
installations gets upgraded to the new package.
3. Use a debian/rules override to alter version number *only* for the
empty transitional packages, so that they get a higher version number
than was previously provided. eg. last-tss2-version+really1.3.0-1
eg.
override_dh_gencontrol:
# Make transitional packages have a higher version number
# than the old binary packages built from src:tss2 (1045-1.2)
dh_gencontrol --package=tss2 -- \
-v1045+really1.6.0-1
dh_gencontrol --package=libtss0 -- \
-v1045+really1.6.0-1
dh_gencontrol --package=libtss-dev -- \
-v1045+really1.6.0-1
# Use the correct version number for real binary packages
dh_gencontrol --remaining-packages
Once your transitional packages has shipped in a stable release,
you can then remove them from debian/control and also drop the
debian/rules override of dh_gencontrol in your next upload to unstable.
Cannot be used for packages that are used in build dependencies, as several build tools (like sbuild) do not support virtual packages in those dependencies by design, to guarantee deterministic builds.
Most package managers (including APT, as of 2011-02-21) do not know to replace the old with the new one and will only use the new package if it is installed for some other reason.
Quoting Andreas Henriksson (2022-10-20 12:13:24)
Cannot be used for packages that are used in build dependencies, as several >> build tools (like sbuild) do not support virtual packages in thoseWait what? If sbuild doesn't support virtual packages I'd like to hear about that. Can I just remove this reason from the wiki page? It is obviously wrong.
dependencies by design, to guarantee deterministic builds.
If it is not, please file a bug against sbuild.
On 20.10.22 13:40, Johannes Schauer Marin Rodrigues wrote:
Quoting Andreas Henriksson (2022-10-20 12:13:24)
Cannot be used for packages that are used in build dependencies, as severalWait what? If sbuild doesn't support virtual packages I'd like to hear about
build tools (like sbuild) do not support virtual packages in those
dependencies by design, to guarantee deterministic builds.
that. Can I just remove this reason from the wiki page? It is obviously wrong.
If it is not, please file a bug against sbuild.
The correct statement here is that you ought to pick a default choice first[1] before a virtual alternative. We don't want to leave it up to
the resolver to pick an arbitrary available build-dependency. So this is
more of a policy rather than a technical question. Behavior for
experimental might currently differ due to a different resolver choice that's more flexible by design - to get newer versions from experimental
if necessary.
Kind regards
Philipp Kern
[1] This might require an overall agreement across Debian at times. But that seems to be more relevant for dependencies than build-dependencies.
Most package managers (including APT, as of 2011-02-21) do not know to replace the old with the new one and will only use the new package if it is installed for some other reason.
That is a rather old timestamp. And I also do not understand what the author tries to say here. Isn't using the new package exactly what we want here?
Is that really the correct statement? Even after excluding all virtual packages
with a single provider, there are literally thousands of source packages for which their first alternative is a virtual package. Is this "policy" documented
somewhere? Because if it is, then it either should change or the archive has to
be changed to match that policy.
To specify which of a set of real packages should be the default to satisfy a particular dependency on a virtual package, list the real package as an alternative before the virtual one.
In any case, this was not my original question. Andreas presented a way to use
a transitional package to rename a package which will work fine I guess except
that we have to carry an empty package for a release and that empty package has
to be cleaned up at some point, for example by deborphan.
My original question was why using a virtual package for the same purpose is a
bad idea. The wiki page https://wiki.debian.org/RenamingPackages lists reasons
against it that are incorrect. So why is it really a bad idea?
Is there any reason not to delete the first reason (the sbuild one) completely?
And either I misunderstand the second reason or I implemented my POC incorrectly or apt (as of 2022-10-21) is perfectly capable of replacing the old
with the new one.
Can somebody shed some light on this?
Hi Debora,
Quoting Debora Velarde Babb (2022-10-20 08:04:35)
The upstream package for tss2 has been renamed ibmtss. When the
name was
changed upstream, the version number convention also
changed. Upstream
tss2-1470 was updated to ibmtss-1.3.0. The current version of
ibmtss is now
1.6.0. I believe I need to use an epoch number to handle the
version change
correctly.
Initially I attempted to create the package with the new name
ibmtss.
There was some discussion on debian-mentors list and the response
was
that I should NOT change the name to ibmtss and instructed to
instead
use an epoch number.
which discussion was that? I searched the last four months of the debian-mentors list archive for your name as well as for the string
"tss" and
couldn't find the advice to use an epoch instead renaming the source
package.
Just like pabs (and for the same reason) I would argue for a one-time migration
rather than carrying a wrong name as well as the epoch number
forever.
I recently posted a packaging question to the debian-mentors list
and someone
kindly explained that use of an epoch number needed to be discussed
on
debian-devel first.
That is correct. Thanks for reaching out to us! :)
cheers, josch
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 463 |
Nodes: | 16 (2 / 14) |
Uptime: | 156:13:41 |
Calls: | 9,384 |
Calls today: | 4 |
Files: | 13,561 |
Messages: | 6,095,837 |