[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Doing a proper package split (cream)


one thing I never really dealt with before are package splits. And since I 
couldn't find any clear policy on how to define the dependencies properly 
I'd like to get a second (and even third) opinion on this.

'cream' is a package with a lot of documentation. Until version 0.33 I had 
all the files in a single package. Now in 0.34 I want to split off the 
documentation so i have cream (main) and cream-doc (documentation).

My debian/control file of the new 0.34 package now looks roughly like this:

Source: cream
Section: editors
Priority: optional
Maintainer: Christoph Haas <haas@debian.org>
Build-Depends-Indep: debhelper (>= 4.0.0)
Standards-Version: 3.6.2

Package: cream
Architecture: all
Depends: gvim, ucf
Suggests: cream-doc
Description: ...

Package: cream-doc
Architecture: all
Conflicts: cream(<<0.34)
Replaces: cream(<<0.34)
Recommends: cream
Description: ...

Without the Conflicts+Replaces in the cream-doc part users could install 
the new cream-doc (0.34) package and get conflicts because the same 
documentation-related files were formerly in the cream (0.33) package.
So I needed to make sure it gets removed before cream-doc (0.34) is 

Now when I install cream-doc (0.34) it looks like this:

$> dpkg -i cream-doc_0.34-2_all.deb
Selecting previously deselected package cream-doc.
dpkg: considering removing cream in favour of cream-doc ...
dpkg: yes, will remove cream in favour of cream-doc.
(Reading database ... 173915 files and directories currently installed.)
Unpacking cream-doc (from cream-doc_0.34-2_all.deb) ...
Setting up cream-doc (0.34-2) ...

Then the situation would look like this:

ic  cream          0.33.1-1
ii  cream-doc      0.34-2         

The old cream package is still installed (shouldn't it be "rc"?). While 
this is sane for APT it's a bit weird for the user because the 
documentation now doesn't fit the main package any more. I would like to 
install both new versions when either new package is installed.

What would you propose to do to have a proper upgrade path here? Remove 
'cream' in the 'postinst' maintainer script of 'cream-doc' if a 'cream' 
version of <<0.34 was installed? I don't want to make it even dirtier than 
it's now.

Thanks in advance.

".signature" [Modified] 1 line --100%--                1,48         All

Reply to: