Archived

This forum has been archived. Please start a new discussion on GitHub.

Ice 3.6 Ubuntu package dependencies broken for upgrading

Using the instructions at https://zeroc.com/download.html I am finding that the instructions don't work. This is on an Ubuntu 15.04 amd64 system with the Ubuntu Ice 3.5 packages installed (directly from the distribution, not from ZeroC).
apt-get install zeroc-ice-all-runtime zeroc-ice-all-dev
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies.
 zeroc-ice-all-dev : Depends: libzeroc-ice-dev (= 3.6.0-1000)
E: Unable to correct problems, you have held broken packages.

Trying to install the problematic package:
# apt-get -f install libzeroc-ice-dev 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies.
 libzeroc-ice35-dev : Conflicts: libzeroc-ice-dev
 zeroc-ice-all-runtime : Depends: zeroc-ice-utils (= 3.6.0-1000) but it is not going to be installed
 zeroc-ice-utils-java : Depends: zeroc-ice-utils (= 3.6.0-1000) but it is not going to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

Trying to follow this advice:
# apt-get -f install                 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Correcting dependencies... Done
The following extra packages will be installed:
  zeroc-ice-utils
The following NEW packages will be installed
  zeroc-ice-utils
0 to upgrade, 1 to newly install, 0 to remove and 5 not to upgrade.
11 not fully installed or removed.
Need to get 0 B/865 kB of archives.
After this operation, 3,526 kB of additional disk space will be used.
Do you want to continue? [Y/n] 
(Reading database ... 435208 files and directories currently installed.)
Preparing to unpack .../zeroc-ice-utils_3.6.0-1000_amd64.deb ...
Unpacking zeroc-ice-utils (3.6.0-1000) ...
dpkg: error processing archive /var/cache/apt/archives/zeroc-ice-utils_3.6.0-1000_amd64.deb (--unpack):
 trying to overwrite '/usr/bin/slice2html', which is also in package ice35-translators 3.5.1-6build2
dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
Errors were encountered while processing:
 /var/cache/apt/archives/zeroc-ice-utils_3.6.0-1000_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

Trying to install just the runtime:
# apt-get install zeroc-ice-all-runtime                  
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  libzeroc-freeze3.6 libzeroc-ice3.6 libzeroc-icestorm3.6 php5-zeroc-ice
  zeroc-glacier2 zeroc-ice-slice zeroc-ice-utils zeroc-ice-utils-java
  zeroc-icebox zeroc-icegrid zeroc-icepatch2
The following NEW packages will be installed
  libzeroc-freeze3.6 libzeroc-ice3.6 libzeroc-icestorm3.6 php5-zeroc-ice
  zeroc-glacier2 zeroc-ice-all-runtime zeroc-ice-slice zeroc-ice-utils
  zeroc-ice-utils-java zeroc-icebox zeroc-icegrid zeroc-icepatch2
0 to upgrade, 12 to newly install, 0 to remove and 5 not to upgrade.
Need to get 10.4 MB of archives.
After this operation, 41.5 MB of additional disk space will be used.
Do you want to continue? [Y/n] 
Get:1 https://zeroc.com/download/apt/ubuntu15.04/ stable/main libzeroc-ice3.6 amd64 3.6.0-1000 [4,273 kB]
[...]
Get:12 https://zeroc.com/download/apt/ubuntu15.04/ stable/main zeroc-ice-all-runtime all 3.6.0-1000 [2,844 B]
Fetched 10.4 MB in 15s (692 kB/s)                                        
Selecting previously unselected package libzeroc-ice3.6:amd64.
(Reading database ... 434929 files and directories currently installed.)
Preparing to unpack .../libzeroc-ice3.6_3.6.0-1000_amd64.deb ...
Unpacking libzeroc-ice3.6:amd64 (3.6.0-1000) ...
Selecting previously unselected package libzeroc-freeze3.6:amd64.
Preparing to unpack .../libzeroc-freeze3.6_3.6.0-1000_amd64.deb ...
Unpacking libzeroc-freeze3.6:amd64 (3.6.0-1000) ...
Selecting previously unselected package libzeroc-icestorm3.6:amd64.
Preparing to unpack .../libzeroc-icestorm3.6_3.6.0-1000_amd64.deb ...
Unpacking libzeroc-icestorm3.6:amd64 (3.6.0-1000) ...
Selecting previously unselected package php5-zeroc-ice.
Preparing to unpack .../php5-zeroc-ice_3.6.0-1000_amd64.deb ...
Unpacking php5-zeroc-ice (3.6.0-1000) ...
Replacing files in old package php-zeroc-ice (3.5.1-6build2) ...
Selecting previously unselected package zeroc-glacier2.
Preparing to unpack .../zeroc-glacier2_3.6.0-1000_amd64.deb ...
Adding group ice....done
Adding system user ice....done
Unpacking zeroc-glacier2 (3.6.0-1000) ...
Replacing files in old package ice35-services (3.5.1-6build2) ...
Selecting previously unselected package zeroc-ice-slice.
Preparing to unpack .../zeroc-ice-slice_3.6.0-1000_all.deb ...
Unpacking zeroc-ice-slice (3.6.0-1000) ...
Selecting previously unselected package zeroc-icebox.
Preparing to unpack .../zeroc-icebox_3.6.0-1000_amd64.deb ...
Unpacking zeroc-icebox (3.6.0-1000) ...
Replacing files in old package icebox (3.5.1-6build2) ...
Selecting previously unselected package zeroc-icegrid.
Preparing to unpack .../zeroc-icegrid_3.6.0-1000_amd64.deb ...
Unpacking zeroc-icegrid (3.6.0-1000) ...
Replacing files in old package ice35-services (3.5.1-6build2) ...
Selecting previously unselected package zeroc-icepatch2.
Preparing to unpack .../zeroc-icepatch2_3.6.0-1000_amd64.deb ...- php5-zeroc-ice has Replaces for libice3.5-php and php-zeroc-ice without Breaks (preferred) or Conflicts.  This leaves the old packages lying around in a broken half-adopted state
- zeroc-ice-utils conflicts with files in ice35-translators, yet it does not properly Replace/Break this package
- the size warnings are also a bit odd; are the generated Packages[.gz] files up-to-date with the .debs they are indexing?
Unpacking zeroc-icepatch2 (3.6.0-1000) ...
Replacing files in old package ice35-services (3.5.1-6build2) ...
Selecting previously unselected package zeroc-ice-utils.
Preparing to unpack .../zeroc-ice-utils_3.6.0-1000_amd64.deb ...
Unpacking zeroc-ice-utils (3.6.0-1000) ...
dpkg: error processing archive /var/cache/apt/archives/zeroc-ice-utils_3.6.0-1000_amd64.deb (--unpack):
 trying to overwrite '/usr/bin/slice2html', which is also in package ice35-translators 3.5.1-6build2
dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
Selecting previously unselected package zeroc-ice-utils-java.
Preparing to unpack .../zeroc-ice-utils-java_3.6.0-1000_all.deb ...
Unpacking zeroc-ice-utils-java (3.6.0-1000) ...
Selecting previously unselected package zeroc-ice-all-runtime.
Preparing to unpack .../zeroc-ice-all-runtime_3.6.0-1000_all.deb ...
Unpacking zeroc-ice-all-runtime (3.6.0-1000) ...
Processing triggers for man-db (2.7.0.2-5) ...
Processing triggers for systemd (219-7ubuntu6) ...
Processing triggers for ureadahead (0.100.0-19) ...
ureadahead will be reprofiled on next reboot
Errors were encountered while processing:
 /var/cache/apt/archives/zeroc-ice-utils_3.6.0-1000_amd64.deb- php5-zeroc-ice has Replaces for libice3.5-php and php-zeroc-ice without Breaks (preferred) or Conflicts.  This leaves the old packages lying around in a broken half-adopted state
- zeroc-ice-utils conflicts with files in ice35-translators, yet it does not properly Replace/Break this package
- the size warnings are also a bit odd; are the generated Packages[.gz] files up-to-date with the .debs they are indexing?
W: Size of file /var/cache/apt/archives/partial/libzeroc-freeze3.6_3.6.0-1000_amd64.deb is not what the server reported 313192 173550
W: Size of file /var/cache/apt/archives/partial/libzeroc-icestorm3.6_3.6.0-1000_amd64.deb is not what the server reported 395878 190958
[repeated for all zeroc .deb files]
E: Sub-process /usr/bin/dpkg returned an error code (1)
  • php5-zeroc-ice has Replaces for libice3.5-php and php-zeroc-ice without Breaks (preferred) or Conflicts. This leaves the old packages lying around in a broken half-adopted state
  • zeroc-ice-utils conflicts with files in ice35-translators, yet it does not properly Replace/Break this package
  • the size warnings are also a bit odd; are the generated Packages[.gz] files up-to-date with the .debs they are indexing?

While these packages might work standalone without a preexisting Ice installation, they are an upgrade for the system-provided Ice packages and should be able to cleanly upgrade a system with these packages installed. In the case of the php-zeroc-ice and zeroc-ice-utils packages, was there really a need to break compatibility with the existing Debian package names rather than just adding a dummy package with a dependency to switch to the new names? i.e. the way Debian package renames are typically handled via a transitional package and a Replaces/Breaks on the new package.

Regards,
Roger