Page 1 of 2 1 2 LastLast
Results 1 to 15 of 23

Thread: Debian packages for ZeroC Ice

  1. #1
    fmoya is offline Registered User
    Name: Francisco Moya
    Organization: UCLM
    Project: Debian packages
    Join Date
    Oct 2004
    Posts
    51

    Debian packages for ZeroC Ice

    First of all I would like to thank ZeroC for this forum. It will certainly contribute to the community around the ZeroC Ice ecosystem.

    I know of many people using Debian based distributions with pristine ZeroC Ice sources without a glitch. Michi Henning himself wrote a message in these forums about that. And this is fine most of the time. But in our lab we currently use a decent variety of architectures (x86, amd64, ppc, arm and in a near future ia64) and we do not like the idea of having a separate development machine for every architecture. Besides I use Ice as a teaching tool for several undergrad courses. A packaging system such as Debian packages relieves users from many maintainment tasks that would otherwise be too cumbersome.

    Therefore if you happen to use a debian based distribution or ubuntu based distribution try the packages for ZeroC Ice. If you are not convinced you can always go back to a manual installation.

    Debian Policy dictates a lot of rules that choke on the ZeroC installation conventions. I try to respect the original source as much as possible, but a number of patches are currently applied to the Debian packages. I'll try to explain the differences and why they are different.

    • Debian source packages should be split in as many binary packages as it makes sense. Unfortunately it makes sense a lot of different packages. In 3.2.1 I made a major reorganization in order to merge some of them. Now ZeroC Ice is decomposed into 24 packages.
    • What happens to be most frustrating for Debian users is that ZeroC Ice files are not located in a single directory but in the standard places. For their convenience I added the contents of the upstream config directory to the documentation directory of package ice33-services. This is not ideal but at least they can use the migration scripts and the ZeroC Ice Makefiles.
    • Debian supports both 2.4.x and 2.6.x kernels. This means that we must deal with kernels where epoll is not available. One alternative would be to build ZeroC Ice without epoll support but that would impact performance of the typical case. As suggested by Jim Paris I modified the event loop to fall-back to standard poll when epoll is not available. The overhead is negligible. Unfortunately there is a regression in 3.3.0-1 because the upstream code was reorganized and I havenīt had enough time to redo the patch.
    • ZeroC relies on manual configuration to determine word size and byte order. Unfortunately this is inconvenient for Debian, which supports dozens of target architectures, some of them with multiple byte orders. What I think it is the right solution is to rely on the GNU C library includes. Of course this is again a Debian specific issue and there is no portable way to guess word size and byte order at compile time. Another way would be to execute a small test program but this is a non-issue for any GNU variant.
    • JGoodies Looks was missing from Debian due to its reliance on a non-free Java runtime library. Fortunately Gregor Herrman is now actively maintaining libjgoodies-looks-java for Debian. He removes all of the dependencies on non-standard Java features. In particular he removed the WindowsLookAndFeel because it was built on com.sun.javax.swing.plaf.windows which is not available in GNU ClassPath. Therefore I had to remove the WindowsLookAndFeel from IceGridGUI as well. Fortunately IceGridGUI was designed to also support the PlasticLookAndFeel which is also quite nice.
    • I install the JAR files into the standard /usr/share/java directory and a symlink named /usr/share/java/Ice.jar is always pointing to the last version. Perhaps I should install an alternative, but I was just waiting for a clearly defined Java Debian Policy.
    • The IceGridGUI application is wrapped into a shell script. You just need to invoke icegrid-gui.
    • Debian packages support multiple python versions. Debian package is built with python-support, which automatically takes care of compiling python sources with every installed version of the python interpreter.
    • The IcePHP extension is automatically configured to be available as an extension. It is currently installed directly on the extension directory. This is far from ideal since this scheme disallows the simultaneous installation of different versions. I'm just waiting for a clearly defined PHP Debian Policy.
    • Debian packages of ZeroC Ice for C# conform fully with the CLI Debian Policy. DLLs are shared among the available CLR implementations and they are properly installed in the GAC of every available runtime.
    • While installation directories are completely different to the ZeroC makefiles users should not notice that. Using the -pkg:icecs notation you may build completely portable Makefiles.
    • The iceboxnet.exe executable is renamed to include the interface version and wrapped into a shell script. You should just run icebox-3.3.
    • Of course I try to track closely the Patches Forum at the ZeroC Ice site and all binary compatible patches are applied as soon as they are released.
    • Ruby package uses completely different installation directories but that should be hidden from the user. Currently I only support ruby1.8. The module is currently installed directly on the architecture-dependent directory. This is far from ideal since this scheme disallows the simultaneous installation of different versions. I'm just waiting for a clearly defined Ruby Debian Policy.


    We are also involved in some personal projects and research projects which use Ice in some way. I will try to send a description shortly.
    Francisco Moya Fernandez
    Computer Architecture and Tecnology Group
    University of Castilla-La Mancha

    Debian Maintainer of ZeroC Ice packages.

  2. #2
    n2503v is offline Registered User
    Name: Alex Makarenko
    Organization: ACFR, University of Sydney
    Project: Orca
    Join Date
    Jun 2005
    Posts
    134
    Hi Francisco,

    Many thanks for maintaining the Debian packages. We use Ice on multiple machines (robots) and using packages save a lot of time. For beginners it also removes a certain psychological barrier associated with using something "big" like Ice.

    Could you give a hint when to expect the 3.3 packages in testing?

    I'm considering installing from source (made painful by MCPP) but would much rather wait for the packages if they are not too far off.

    Cheers, Alex
    Alex Makarenko
    Marathon Robotics
    project: multi-robot systems

  3. #3
    fmoya is offline Registered User
    Name: Francisco Moya
    Organization: UCLM
    Project: Debian packages
    Join Date
    Oct 2004
    Posts
    51
    Quote Originally Posted by n2503v View Post
    Could you give a hint when to expect the 3.3 packages in testing?

    I'm considering installing from source (made painful by MCPP) but would much rather wait for the packages if they are not too far off.
    Starting from Ice 3.3 ZeroC changed their release policy. Now there is a single source package. The 3.2 building rules found in Debian packages were merged together into a single set of building rules. Therefore the build dependencies were merged together and it turned out into build dependencies which cannot be met in some architectures (e.g. mono is missing on most architectures). I'm now rewriting the building rules in order to avoid unmet dependencies (separate arch-dep build and arch-indep build). Hopefully it will be released by the end of July.

    BTW: MCPP is not a problem now that Debian promoted mcpp 2.7.1 to testing.

    Regards,
    F. Moya
    Francisco Moya Fernandez
    Computer Architecture and Tecnology Group
    University of Castilla-La Mancha

    Debian Maintainer of ZeroC Ice packages.

  4. #4
    n2503v is offline Registered User
    Name: Alex Makarenko
    Organization: ACFR, University of Sydney
    Project: Orca
    Join Date
    Jun 2005
    Posts
    134
    thanks for the update.

    TW: MCPP is not a problem now that Debian promoted mcpp 2.7.1 to testing.
    and thanks for the tip, much easier this way.

    alex
    Alex Makarenko
    Marathon Robotics
    project: multi-robot systems

  5. #5
    trivian is offline Registered User
    Name: Thorvald Natvig
    Organization: Mumble
    Project: Mumble
    Join Date
    Jun 2008
    Posts
    14

    Static libraries?

    Hi,

    I'm using the package in testing for mumble-server, and it works great

    However.. Could you add static libraries to the dev package? I release static binaries for use on non-updated distributions (like etch), which has too many outdated dependencies that it's possible to do a backport, so at the moment I have to disable ICE for those builds. The availability of static libraries would (hopefully) solve this issue for me.

  6. #6
    bernard's Avatar
    bernard is offline ZeroC Staff
    Name: Bernard Normier
    Organization: ZeroC, Inc.
    Project: Ice
    Join Date
    Feb 2003
    Location
    Jupiter, FL
    Posts
    1,376
    Hi Thorvald,

    The Ice build system does not provide a "build static libraries" option, so I suspect it would be a bit of work to add one for the Debian packages (or any other distribution).

    Also, not everybody likes static libraries . See this thread.

    Ice overall, and more so the Ice core, does not have many third-party dependencies. Maybe you could just provide the few required shared libraries alongside your Ice shared library?

    Cheers,
    Bernard
    Bernard Normier
    ZeroC, Inc.

  7. #7
    fmoya is offline Registered User
    Name: Francisco Moya
    Organization: UCLM
    Project: Debian packages
    Join Date
    Oct 2004
    Posts
    51
    Quote Originally Posted by trivian View Post
    I release static binaries for use on non-updated distributions (like etch), which has too many outdated dependencies that it's possible to do a backport, so at the moment I have to disable ICE for those builds.
    Perhaps you should consider tools such as EEE: EEE - Environment Embedding Executable, or ELF STATIFIER MAIN PAGE, or Ermine: Home. But you will need to pay special attention to IceBox services and Ice Plugins.

    Regards,
    F. Moya
    Last edited by fmoya; 08-16-2008 at 01:43 PM. Reason: Added pointers to other statifiers.
    Francisco Moya Fernandez
    Computer Architecture and Tecnology Group
    University of Castilla-La Mancha

    Debian Maintainer of ZeroC Ice packages.

  8. #8
    trivian is offline Registered User
    Name: Thorvald Natvig
    Organization: Mumble
    Project: Mumble
    Join Date
    Jun 2008
    Posts
    14
    Quote Originally Posted by bernard View Post
    The Ice build system does not provide a "build static libraries" option, so I suspect it would be a bit of work to add one for the Debian packages (or any other distribution).
    Hi,

    I ended up manually compiling Ice 3.3.0, and had to change the build system slightly. I did end up with working static libraries though, and I'm now shipping a fully static binary that works on all the distros I have tested

    I kind of doubt it is of genereal interest, but if anybody wants it let me know and I'll make a proper patch of it.

  9. #9
    trivian is offline Registered User
    Name: Thorvald Natvig
    Organization: Mumble
    Project: Mumble
    Join Date
    Jun 2008
    Posts
    14
    Quote Originally Posted by fmoya View Post
    Starting from Ice 3.3 ZeroC changed their release policy. Now there is a single source package. The 3.2 building rules found in Debian packages were merged together into a single set of building rules. Therefore the build dependencies were merged together and it turned out into build dependencies which cannot be met in some architectures (e.g. mono is missing on most architectures). I'm now rewriting the building rules in order to avoid unmet dependencies (separate arch-dep build and arch-indep build). Hopefully it will be released by the end of July.
    I see lenny still only has zeroc-ice32. Since lenny is now frozen, is there still a chance to see the 3.3 version in lenny?

  10. #10
    fmoya is offline Registered User
    Name: Francisco Moya
    Organization: UCLM
    Project: Debian packages
    Join Date
    Oct 2004
    Posts
    51
    I'm afraid that unless the new package fixes a release critical bug it cannot enter a frozen distribution. For your convenience I made lenny x86 binaries available at the following apt repo:

    Code:
    deb http://arco.esi.uclm.es/~francisco.moya/debian-lenny ./
    Add the above line in your /etc/apt/sources.list and run apt-get update before you try to install Ice 3.3.

    For architectures other than x86 I'm afraid you will need to compile the package yourself. It shouldn't be that hard. Add my repo to your /etc/apt/sources.list and run:

    Code:
    $ apt-get update
    $ apt-get install build-essential cdbs debhelper patchutils libdb4.6++-dev \
       libmcpp-dev libreadline5-dev libexpat1-dev libssl-dev libbz2-dev \
       zlib1g-dev python-all-dev python-support php5-dev ruby1.8-dev \
       ruby1.8 cli-common-dev mono-gmcs libmono2.0-cil pkg-config \
       default-jdk-builddep proguard libdb4.6-java ant ant-optional \
       libjgoodies-forms-java libjgoodies-looks-java
    $ apt-get source zeroc-ice
    $ cd zeroc-ice-*
    $ dpkg-buildpackage -b
    $ dpkg -i ../*.deb
    You may even build just the sections of Ice you use. For example, instead of dpkg-buildpackage you may issue:

    Code:
    $ fakeroot ./debian/rules binary/cpp
    Or even a single package:

    Code:
    $ fakeroot ./debian/rules binary/icegrid-gui
    Regards,
    F. Moya
    Francisco Moya Fernandez
    Computer Architecture and Tecnology Group
    University of Castilla-La Mancha

    Debian Maintainer of ZeroC Ice packages.

  11. #11
    trivian is offline Registered User
    Name: Thorvald Natvig
    Organization: Mumble
    Project: Mumble
    Join Date
    Jun 2008
    Posts
    14

    PHP ice.slice?

    Hi,

    I plan to package a few PHP/ICE examples with Mumble, and that means including the
    ice.slice=/path/to/Murmur.ice
    somewhere in the php configuration.

    However, if I do that, that profile will be the default for all of PHP, which probably isn't right.

    Have you considered adding
    ice.profiles=/etc/php.ice.profiles
    and an empty php.ice.profiles file, or something along those lines? Then other packages could simply append their named profile to that file.
    Perhaps a directory /etc/php.ice is appropriate, with a ice.profiles file and the various .ice files applications want to install.

  12. #12
    ractoc is offline Registered User
    Name: Mark Schrijver
    Organization: Personal
    Project: distributed Plugin framework
    Join Date
    Jan 2010
    Posts
    11

    Lightbulb

    First off, I know this is an old and dead thread, but I still thought I'd put it in here....

    I've had a run today with setting up ice, more specifically slice2java, on my Ubuntu desktop. And actually, it turned out to be quite simple.

    There's a few steps and extra packages you need to make it work.

    1. download the Redhat RPM
    2. install the alien package
    3. gunzip the downloaded Redhat RPMs
    4. convert the RPMs to DEBs with the help of alien
    5. install the DEB packages
    6. add the /usr/lib64 folder to your dlconfig
    7. reload your ldconfig


    Step 1: Download the RedHat RPM.
    This can be done fro the ZeroC site

    Step 2: Install alien package
    How this can be done is explained at Install .rpm Files in Debian and Ubuntu.

    Step 3: gunzip the downloaded Redhat RPMs
    I'm assuming you guys know this one.

    Step 4: Convert the RPMs to DEB packages.
    How this can be done is explained at Install .rpm Files in Debian and Ubuntu.

    Step 5: Install the DEB packages
    In your Download folder execute the following command:
    sudo dpkg -i *deb

    Step 6: add the /usr/lib64 folder to your dlconfig
    Execute the following in the correct order:
    • execute: sudo vi /etc/ld.so.conf.d/libc.conf
    • Add /usr/lib64 to the file


    Step 7: reload your ldconfig
    Execute the following command:
    sudo /sbin/ldconfig
    This reloads the dlconfig you just altered.

    And you're done.

    With these steps it should be pretty straight forward even though it took me most of the day to figure it out.
    And it should work similarly on most Debian systems as well.

    I hope this helps some of you guys set things up faster.

    Mark

  13. #13
    fmoya is offline Registered User
    Name: Francisco Moya
    Organization: UCLM
    Project: Debian packages
    Join Date
    Oct 2004
    Posts
    51

    Why do you need RedHat packages?

    Ubuntu already has ZeroC Ice 3.4 packages. Just a bit outdated compared to Debian but it's a matter of a few days at most.

    Did you try those?

    Regards,
    Paco
    Francisco Moya Fernandez
    Computer Architecture and Tecnology Group
    University of Castilla-La Mancha

    Debian Maintainer of ZeroC Ice packages.

  14. #14
    ractoc is offline Registered User
    Name: Mark Schrijver
    Organization: Personal
    Project: distributed Plugin framework
    Join Date
    Jan 2010
    Posts
    11
    Cool, I tried looking for those but wasn't able to find anything. Thanks for the heads up. I'll try replacing mine with these then, Since these are the offical ones they might work a bit better...

    No wait, those appear to be just for Ice with C++, I need the Ice for Java stuff...

  15. #15
    fmoya is offline Registered User
    Name: Francisco Moya
    Organization: UCLM
    Project: Debian packages
    Join Date
    Oct 2004
    Posts
    51
    Quote Originally Posted by ractoc View Post
    No wait, those appear to be just for Ice with C++, I need the Ice for Java stuff...
    Nope, there are packages for Ice for C++, Java, PHP, C#, and Python. You may install each of these individually or install everything at once using the zeroc-ice34 metapackage.

    Regards,
    Paco
    Francisco Moya Fernandez
    Computer Architecture and Tecnology Group
    University of Castilla-La Mancha

    Debian Maintainer of ZeroC Ice packages.

Page 1 of 2 1 2 LastLast

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. Ice Debian Packages
    By jesse in forum Help Center
    Replies: 15
    Last Post: 11-13-2010, 05:29 AM
  2. Debian packages for Ice 3.2.1
    By fmoya in forum Patches
    Replies: 0
    Last Post: 08-15-2007, 05:45 PM
  3. Ice 3.2 Debian packages
    By fmoya in forum Patches
    Replies: 0
    Last Post: 03-22-2007, 04:35 PM
  4. Debian packages for Ice 3.0.1
    By fmoya in forum Help Center
    Replies: 1
    Last Post: 01-24-2006, 12:24 PM
  5. Debian packages for Ice 3.0.0 and IceE 1.0.0
    By fmoya in forum Help Center
    Replies: 0
    Last Post: 11-20-2005, 08:21 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •