[Debian GNUstep maintainers] Bug#359158: libgnustep-base1.11 has circular Depends on gnustep-base-common

Hubert Chan hubert at uhoreg.ca
Wed May 3 03:45:54 UTC 2006


Thinking out loud...

These are the circular dependencies (and other relevant dependencies) in
the GNUstep core libraries.  (in ASCII art)


                         [GNUstep applications]
                                    |
                    +---------------+------------------+
                    |               v                  |
                    |       gnustep-back <------+      |
                    |            |              |      |
                    |   +--------+--------+     |      |
                    v   v                 v     |      |
     +--------> libgnustep-gui <------ gnustep-gpbs    |
     |               |                     |           |
     |     +---------+-------+    +--------+           |
     |     v                 v    v                    |
gnustep-gui-common     libgnustep-base <---------------+
                         ^        |
                         |        v
                     gnustep-base-common

So we have three circular dependencies (gnustep-back <-> gnustep-gpbs,
libgnustep-gui <-> gnustep-gui-common, and libgnustep-base <->
gnustep-base-common).

I'm thinking of breaking the cycles by splitting off the binaries from
the -common packages in to new -runtime (the suggested name in Policy
8.2) packages (so the -common packages will no longer depend on the lib
packages, and they'll also be Arch: all), and then getting all
applications to also depend on the -bin packages.  (Similarly for
-gpbs.)

The good news is that this should require no modifications to the
application packages, since this can be done by just changing the shlibs
file.  Since this coincides with a library transition, where all
packages need to be rebuilt, this won't cause any problems.  (This is
also why I haven't uploaded the new GNUstep libraries yet.)

The bad news is that now all applications will have a longer Depends
line -- something like Depends: libgnustep-gui0.10, gnustep-gui-runtime,
gnustep-back0.10, gnustep-gpbs, libgnustep-base1.11,
gnustep-base-runtime, plus whatever extra libraries the package uses.
(Applications already depend on libgnustep-gui, gnustep-back, and
libgnustep-base, so we're just adding three more packages.)

                         [GNUstep applications]
                                    |
        +-----------+---------+-----+------+----------+--------+
        |           |         |            |          |        |
        |           |         |            v          |        |
        |           |         |      gnustep-gpbs     |        +
        v           |         v            |          |        v
 gnustep-gui-bin    |   gnustep-back <-----+          | gnustep-base-bin
        |           |     |                |          |        |
        |           v     v                |          |        |
        +-----> libgnustep-gui <-----------+          |        |
                     |                     |          |        |
           +---------+-------+             |          |        |
           v                 v             v          v        v
gnustep-gui-common     libgnustep-base <---+----------+--------+
                              |
                              v
                     gnustep-base-common

-- 
Hubert Chan - email & Jabber: hubert at uhoreg.ca - http://www.uhoreg.ca/
PGP/GnuPG key: 1024D/124B61FA   (Key available at wwwkeys.pgp.net)
Fingerprint: 96C5 012F 5F74 A5F7 1FF7  5291 AF29 C719 124B 61FA





More information about the pkg-GNUstep-maintainers mailing list