Re: Transitional packages: unmark auto, dealing with conffiles

2012-01-08 Thread Malte Forkel
Am 24.12.2011 12:23, schrieb David Kalnischkies:
 It's not only aptitude, every package manager using libapt will hate
 you for this - and therefore i will hate you; even on Christmas. ;)

I wouldn't want you to hate me. At least not on Christmas. ;-)

 In general, you should NEVER touch a file belonging to another package
 as you never know if it will be there and which format it has --
 and for /var/lib files is this especially true as they are state files.

I agree that modifying other packages' files is a bad idea. That's why I
called it a hack. My hope was that someone could show me a clean,
policy-consistent way to solve the problems I encountered when trying to
provide a transitional package.

 I have found the interesting thread 'Transitional (dummy) packages
 considered silly' on Debian Devel
 (http://lists.debian.org/debian-devel/2009/09/msg00687.html). Will any
 of the suggestions made there make it into Debian? E.g., how about a new
 control field 'Superseeds'?
 
 Have you read some of the responses? Looks like you haven't
 as a few counterarguments are given in this thread like blocking
 the old name even longer, could allow social fights like chromium
 superseeds iceweasel or kde superseeds gnome and in general allows
 any maintainer to install his package without direct user interaction.

Let's just assume that we both have read the whole thread ;-).

I guess how one weighs the different arguments heavily depends on one's
own background and preferences. My impression was that most posters
eventually liked the ideas of a superseeds relationship. But by no means
would I claim to know what the Debian policy on transitional packages
should look like. I'm just a spare time package maintainer trying to
entice the Debian gods to come up with a solution.

One reason why I like Debian is that it tries to do things the right
way. To me, that includes making things explicit and documenting them
in the policy. If a package management use case requires using scarcely
documented features or even hacking, then I'm confident the Debian
community can up with a better solution.

I think, the existing approach to transitional packages involves too
many implicit solutions, e.g. using special sections or relying on
keywords in a package's description. It would be great if the support
provided by apt could be reviewed, potentially extended, documented in
the Debian policy and the wiki, and adopted by all package mamangement
tools.

 If you think that is too unlikely, think about situations in which a program
 changes drastically from v1 to v2 and a fork tries to maintain v1.
 Does this fork now superseed v1 of the program or is it v2 ?
 (e.g. amarok vs. clementine or in the old thread apache vs apache2)
 Also, what should be done if two packages claim to superseed the
 same package? And what happens if a rename is reverted?
 Or the next stable release carries a new package with the superseeded
 name, thinking e.g. about the git: gnuit vs git-core name-collision.
 Also, think about an application which changes his program name, but to
 allow a soft transition, the transistional package provides a wrapper
 with the old name. Clearly the new superseeds the old, but removing the
 old still removes functionality…

It seems to me that potential solutions to some of your caveats were
suggested in the original thread. And no package maintainer would be
forced to use the superseeds relationship. What has worked in the past
does not have to be changed.

But we might have to ask: How do we handle these cases now? And if a
policy extension could solve some of the existing problems (e.g. auto
install bit tansfer, configuration file transition), would it introduce
bigger problems elsewhere?

We can't prevent misuse, though. I don't need a superseeds relationship
to create havoc. E.g., I could simply modify other package's files... ;-)

Let's just try to find the best overall solution. Should it include a
superseeds relationship? I don't know.

 Way to complex for such a small usecase in my eyes. Properly better
 to invest the time to make disappearing packages policy-compatible
 and usable instead. In the easy cases libapt users even transfer the
 auto-bit to the replacer…

Well, why not do both?

Malte





-- 
To UNSUBSCRIBE, email to debian-mentors-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/4f097f7a.4010...@berlin.de



Re: Transitional packages: unmark auto, dealing with conffiles

2011-12-24 Thread David Kalnischkies
On Mon, Dec 19, 2011 at 22:08, Malte Forkel malte.for...@berlin.de wrote:
 Lenny? I have tested clearing the flag in '/var/lib/apt/extended_state'
 from the postinst script of the transitional package. But aptitude will
 override this by setting the flag later during the upgrade. And its a
 hack, anyway.

It's not only aptitude, every package manager using libapt will hate
you for this - and therefore i will hate you; even on Christmas. ;)
In general, you should NEVER touch a file belonging to another package
as you never know if it will be there and which format it has --
and for /var/lib files is this especially true as they are state files.

Regarding Lenny: Just don't care anymore. Security support ends in due
time, so don't try to support unsupported channels. Users of these old
systems will have bigger problems than the inability to install your package
(and that's not even the problem you seem to deal with…).
If you really really really have to do it, just copy the relevant code from
the helpers, they aren't magic after all, but make sure to test it carefully!


 Regarding the configuration files, I know now that newer versions of
 dpkg include 'dpkg-maintscript-helper' with commands to move or remove
 conffiles. This works nicely in Squeeze. But again, how can I support
 systems with Lenny? In order to make the transitional package forget
 about a conffile, I tested removing it in the package's postinst script
 and also remove the corresponding entry from
 /var/lib/dpkg/info/package.list. That seems to work, but I would
 consider it a hack as well.

Same comment regarding lenny. Same about file-edit hacks.
Add a realworld example to this as dpkg will change info/ filenames
(for at least some packages) with the introduction of multiarch.


 I have found the interesting thread 'Transitional (dummy) packages
 considered silly' on Debian Devel
 (http://lists.debian.org/debian-devel/2009/09/msg00687.html). Will any
 of the suggestions made there make it into Debian? E.g., how about a new
 control field 'Superseeds'?

Have you read some of the responses? Looks like you haven't
as a few counterarguments are given in this thread like blocking
the old name even longer, could allow social fights like chromium
superseeds iceweasel or kde superseeds gnome and in general allows
any maintainer to install his package without direct user interaction.
If you think that is too unlikely, think about situations in which a program
changes drastically from v1 to v2 and a fork tries to maintain v1.
Does this fork now superseed v1 of the program or is it v2 ?
(e.g. amarok vs. clementine or in the old thread apache vs apache2)
Also, what should be done if two packages claim to superseed the
same package? And what happens if a rename is reverted?
Or the next stable release carries a new package with the superseeded
name, thinking e.g. about the git: gnuit vs git-core name-collision.
Also, think about an application which changes his program name, but to
allow a soft transition, the transistional package provides a wrapper
with the old name. Clearly the new superseeds the old, but removing the
old still removes functionality…

Way to complex for such a small usecase in my eyes. Properly better
to invest the time to make disappearing packages policy-compatible
and usable instead. In the easy cases libapt users even transfer the
auto-bit to the replacer…


Best regards

David Kalnischkies


--
To UNSUBSCRIBE, email to debian-mentors-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/caaz6_fc-xbwqnbdewnsqfpb4pbq5udtpeqcijjyyv76feih...@mail.gmail.com



Transitional packages: unmark auto, dealing with conffiles

2011-12-19 Thread Malte Forkel
Hello,

I am writing a transitional package to handle a software name change.
There are two problems I'm trying to handle:
 - How to avoid marking the new package (which the transitional package
depends upon) as being autoinstalled.
 - How to deal with old conffiles not adopted by the new package.

I have posed these two questions before, one on Debian User
(http://lists.debian.org/debian-user/2011/12/msg00739.html), one on
Debian Devel
(http://lists.debian.org/debian-devel/2011/12/msg00337.html). In both
cases, I have received helpful advice and the suggestion to pose these
questions on Debian Mentors. So I'll recap what I have learned so far
and hope you can fill in the mising pieces.

Regarding the unmark auto flag, I know now that newer versions of apt
will not mark packages as auto if they are autoinstalled due to a
package in section 'oldlibs' or 'metapackages'. So, if the transitional
package belongs to one of those two and gets installed by 'apt-get
dist-upgrade' in Squeeze, everything is fine. But what if another tool
is used, e.g. aptitude. And how can I support people still running
Lenny? I have tested clearing the flag in '/var/lib/apt/extended_state'
from the postinst script of the transitional package. But aptitude will
override this by setting the flag later during the upgrade. And its a
hack, anyway.

Regarding the configuration files, I know now that newer versions of
dpkg include 'dpkg-maintscript-helper' with commands to move or remove
conffiles. This works nicely in Squeeze. But again, how can I support
systems with Lenny? In order to make the transitional package forget
about a conffile, I tested removing it in the package's postinst script
and also remove the corresponding entry from
/var/lib/dpkg/info/package.list. That seems to work, but I would
consider it a hack as well.

I have found the interesting thread 'Transitional (dummy) packages
considered silly' on Debian Devel
(http://lists.debian.org/debian-devel/2009/09/msg00687.html). Will any
of the suggestions made there make it into Debian? E.g., how about a new
control field 'Superseeds'?

There are probably more questions regarding transitional packages than
the two I have come across so far. It seems to me there could be better
support for transitional packages in Debian in terms of policy, tool
support and documentation. What are your thoughts? Of course, I'd be
happy to help in bringing these issues along.

Thanks, Malte


-- 
To UNSUBSCRIBE, email to debian-mentors-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/jco94f$3aj$1...@dough.gmane.org



transitional packages

2004-07-03 Thread Dan Korostelev
Hello.

How to make transitional packages with cdbs? I tried to simply add an
extra package in control, that depends on new package. But CDBS then
moves some files (the main binary also) in debian/tmp instead of debian/
newpackagename and doesn't include them in package. :(

-- 
Dan Korostelev [EMAIL PROTECTED]



Re: transitional packages

2004-07-03 Thread Sebastien Bacher
Le dim, 04/07/2004 à 02:40 +0400, Dan Korostelev a écrit :
 Hello.
 
 How to make transitional packages with cdbs? I tried to simply add an
 extra package in control, that depends on new package. But CDBS then
 moves some files (the main binary also) in debian/tmp instead of debian/
 newpackagename and doesn't include them in package. :(

Hi,

The files are installed in debian/tmp and then moved according to the
packages.install files. So you need to create a newpackagename.install
with the content of newpackagename.

An example of .install (the lines need to start with debian/tmp):
debian/tmp/usr/lib/*.so
debian/tmp/usr/include


Cheers,

Sebastien Bacher



Re: transitional packages

2004-07-03 Thread Dan Korostelev
В сообщении от Вск, 2004-07-04 at 00:53 +0200, Sebastien Bacher писал:

 The files are installed in debian/tmp and then moved according to the
 packages.install files. So you need to create a newpackagename.install
 with the content of newpackagename.
 An example of .install (the lines need to start with debian/tmp):
 debian/tmp/usr/lib/*.so
 debian/tmp/usr/include
Okay, thanks, it worked!

-- 
Dan Korostelev [EMAIL PROTECTED]



transitional packages

2004-07-03 Thread Dan Korostelev
Hello.

How to make transitional packages with cdbs? I tried to simply add an
extra package in control, that depends on new package. But CDBS then
moves some files (the main binary also) in debian/tmp instead of debian/
newpackagename and doesn't include them in package. :(

-- 
Dan Korostelev [EMAIL PROTECTED]


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: transitional packages

2004-07-03 Thread Sebastien Bacher
Le dim, 04/07/2004 à 02:40 +0400, Dan Korostelev a écrit :
 Hello.
 
 How to make transitional packages with cdbs? I tried to simply add an
 extra package in control, that depends on new package. But CDBS then
 moves some files (the main binary also) in debian/tmp instead of debian/
 newpackagename and doesn't include them in package. :(

Hi,

The files are installed in debian/tmp and then moved according to the
packages.install files. So you need to create a newpackagename.install
with the content of newpackagename.

An example of .install (the lines need to start with debian/tmp):
debian/tmp/usr/lib/*.so
debian/tmp/usr/include


Cheers,

Sebastien Bacher



Re: transitional packages

2004-07-03 Thread Dan Korostelev
   , 2004-07-04 at 00:53 +0200, Sebastien Bacher 
:

 The files are installed in debian/tmp and then moved according to the
 packages.install files. So you need to create a newpackagename.install
 with the content of newpackagename.
 An example of .install (the lines need to start with debian/tmp):
 debian/tmp/usr/lib/*.so
 debian/tmp/usr/include
Okay, thanks, it worked!

-- 
Dan Korostelev [EMAIL PROTECTED]


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]