Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/build-deb-packages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,11 +34,11 @@ jobs:

- distribution: debian12
arch: amd64
deb_build_profiles: "no-python312"
deb_build_profiles: "nopython"

- distribution: debian12
arch: arm64
deb_build_profiles: "no-python312"
deb_build_profiles: "nopython"

- distribution: debian13
arch: amd64
Expand Down
11 changes: 0 additions & 11 deletions ICE_LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -12,17 +12,6 @@ details.
You should have received a copy of the GNU General Public License version
2 along with this program; if not, see http://www.gnu.org/licenses.

Linking Ice statically or dynamically with other software (such as a
library, module or application) is making a combined work based on Ice.
Thus, the terms and conditions of the GNU General Public License version
2 cover this combined work.

If such software can only be used together with Ice, then not only the
combined work but the software itself is a work derived from Ice and as
such shall be licensed under the terms of the GNU General Public License
version 2. This includes the situation where Ice is only being used
through an abstraction layer.

As a special exception to the above, ZeroC grants to the copyright
holders and contributors of the Mumble project (http://www.mumble.info)
the permission to license the Ice-based software they contribute to
Expand Down
2 changes: 1 addition & 1 deletion packaging/common/glacier2router.service
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
Description=Glacier2 router daemon
Documentation=man:glacier2router(1)
Documentation=https://docs.zeroc.com/ice/3.8/cpp/glacier2
After=syslog.target network.target
After=network.target

[Service]
ExecStart=/usr/bin/glacier2router --Ice.Config=/etc/glacier2router.conf
Expand Down
2 changes: 1 addition & 1 deletion packaging/common/icegridnode.service
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
Description=IceGrid node daemon
Documentation=man:icegridnode(1)
Documentation=https://docs.zeroc.com/ice/3.8/cpp/icegridnode
After=syslog.target network.target icegridregistry.service
After=network.target icegridregistry.service

[Service]
ExecStart=/usr/bin/icegridnode --Ice.Config=/etc/icegridnode.conf
Expand Down
2 changes: 1 addition & 1 deletion packaging/common/icegridregistry.service
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ Description=IceGrid registry daemon
Documentation=man:icegridregistry(1)
Documentation=https://docs.zeroc.com/ice/3.8/cpp/icegridregistry
Before=icegridnode.service
After=syslog.target network.target
After=network.target

[Service]
ExecStart=/usr/bin/icegridregistry --Ice.Config=/etc/icegridregistry.conf
Expand Down
18 changes: 15 additions & 3 deletions packaging/deb/build-package.sh
Original file line number Diff line number Diff line change
Expand Up @@ -29,15 +29,27 @@ fi

UPSTREAM_VERSION=$(echo $ICE_VERSION | cut -f1 -d'-')

# Generate a tarball of the current repository state for the given UPSTREAM_VERSION
# Generate a tarball of the current repository state for the given UPSTREAM_VERSION, excluding files
# listed in Files-Excluded in debian/copyright (pre-built Java binaries and other non-essential files).
echo "Creating tarball for UPSTREAM_VERSION=$UPSTREAM_VERSION"
cd /workspace/ice
git config --global --add safe.directory /workspace/ice
git archive --format=tar.gz -o /workspace/zeroc-ice_${UPSTREAM_VERSION}.orig.tar.gz HEAD
git archive --format=tar.gz \
--prefix=zeroc-ice-${UPSTREAM_VERSION}/ \
-o /workspace/zeroc-ice_${UPSTREAM_VERSION}.orig.tar.gz \
HEAD \
':(exclude)ICE_LICENSE' \
':(exclude)cpp/src/IceUtil/ConvertUTF.*' \
':(exclude)cpp/msbuild/*' \
':(exclude)csharp/*' \
':(exclude)java/*' \
':(exclude)js/*' \
':(exclude)packaging/rpm/*' \
':(exclude)packaging/windows-installer/*'

# Unpack the source tarball
cd /workspace/build
tar xzf ../zeroc-ice_${UPSTREAM_VERSION}.orig.tar.gz
tar xzf ../zeroc-ice_${UPSTREAM_VERSION}.orig.tar.gz --strip-components=1

# Build the source package (-S generates .dsc and .tar.gz files)
dpkg-buildpackage -S
Expand Down
27 changes: 19 additions & 8 deletions packaging/deb/debian/BUILDING.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,12 +55,22 @@ export UPSTREAM_VERSION=$(echo $ICE_VERSION | cut -f1 -d'-')

### 4. Create Source Archive

Generate the upstream tarball from the Git repository:
Generate the upstream tarball from the Git repository, excluding files listed in
`Files-Excluded` in `debian/copyright`:

```bash
cd ice
git archive --format=tar.gz --prefix=zeroc-ice-${UPSTREAM_VERSION}/ \
-o $HOME/packaging/zeroc-ice/zeroc-ice_${UPSTREAM_VERSION}.orig.tar.gz HEAD
-o $HOME/packaging/zeroc-ice/zeroc-ice_${UPSTREAM_VERSION}.orig.tar.gz \
HEAD \
':(exclude)ICE_LICENSE' \
':(exclude)cpp/src/IceUtil/ConvertUTF.*' \
':(exclude)cpp/msbuild/*' \
':(exclude)csharp/*' \
':(exclude)java/*' \
':(exclude)js/*' \
':(exclude)packaging/rpm/*' \
':(exclude)packaging/windows-installer/*'
```

### 5. Extract Source
Expand All @@ -80,10 +90,11 @@ Install the required build dependencies:
sudo mk-build-deps -ir -t 'apt-get -y' debian/control
```

**For Debian 12:** Use the `no-python312` build profile to exclude Python 3.12 support:
**For Debian 12:** Use the `nopython` build profile to skip building the Python package (requires Python >= 3.12,
which Debian 12 doesn't provide):

```bash
sudo DEB_BUILD_PROFILES="no-python312" mk-build-deps -ir -t 'apt-get -y' debian/control
sudo DEB_BUILD_PROFILES="nopython" mk-build-deps -ir -t 'apt-get -y' debian/control
```

### 7. Build Packages
Expand All @@ -96,10 +107,10 @@ Build the source package (generates .dsc and .tar.gz files):
dpkg-buildpackage -S -uc -us
```

**For Debian 12:** Use the `no-python312` build profile:
**For Debian 12:** Use the `nopython` build profile:

```bash
DEB_BUILD_PROFILES="no-python312" dpkg-buildpackage -S -uc -us
DEB_BUILD_PROFILES="nopython" dpkg-buildpackage -S -uc -us
```

#### Binary Packages
Expand All @@ -110,10 +121,10 @@ Build the binary packages:
dpkg-buildpackage -b -uc -us
```

**For Debian 12:** Use the `no-python312` build profile:
**For Debian 12:** Use the `nopython` build profile:

```bash
DEB_BUILD_PROFILES="no-python312" dpkg-buildpackage -b -uc -us
DEB_BUILD_PROFILES="nopython" dpkg-buildpackage -b -uc -us
```

The built packages will be available in the parent directory (`$HOME/packaging/zeroc-ice/`):
Expand Down
1 change: 0 additions & 1 deletion packaging/deb/debian/README
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ php-zeroc-ice Ice for PHP
python3-zeroc-ice Ice for Python [1]
zeroc-dsnode DataStorm server
zeroc-glacier2 Glacier2 service
zeroc-ice-ice2slice The Ice to Slice compiler
zeroc-ice-slice Slice definition files
zeroc-ice-utils Admin utilities for Ice services
zeroc-icebox IceBox server for C++
Expand Down
2 changes: 1 addition & 1 deletion packaging/deb/debian/changelog
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ zeroc-ice (3.8.1-1) unstable; urgency=medium

* New upstream version 3.8.1

-- José Gutiérrez de la Concha <jose@zeroc.com> Thu, 26 Feb 2026 12:00:00 +0100
-- José Gutiérrez de la Concha <jose@zeroc.com> Mon, 30 Mar 2026 12:00:00 +0200

zeroc-ice (3.8.0-1) unstable; urgency=medium

Expand Down
49 changes: 14 additions & 35 deletions packaging/deb/debian/control
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@ Build-Depends: debhelper,
dh-exec,
dh-php (>= 0.20),
dh-python,
libbluetooth-dev [!hurd-i386 !kfreebsd-i386 !kfreebsd-amd64],
libbluetooth-dev [!hurd-i386],
libbz2-dev,
libcrypt-dev,
libdbus-1-dev [!hurd-i386 !kfreebsd-i386 !kfreebsd-amd64],
libdbus-1-dev [!hurd-i386],
libedit-dev,
libexpat1-dev,
liblmdb-dev,
Expand All @@ -22,11 +22,12 @@ Build-Depends: debhelper,
openssl,
php-all-dev,
php-cli,
python3 (>= 3.12) <!no-python312>,
python3-dev (>= 3.12) <!no-python312>,
python3 (>= 3.12) <!nopython>,
python3-dev (>= 3.12) <!nopython>,
python3-setuptools,
python3-passlib
Standards-Version: 4.7.2
Standards-Version: 4.7.3
Rules-Requires-Root: no
Homepage: https://zeroc.com
Vcs-Git: https://github.com/zeroc-ice/ice.git
Vcs-Browser: https://github.com/zeroc-ice/ice
Expand All @@ -35,7 +36,7 @@ Package: libzeroc-ice-dev
Architecture: any
Section: libdevel
Depends: libzeroc-ice3.8 (= ${binary:Version}),
zeroc-ice-slice (= ${binary:Version}),
zeroc-ice-slice (= ${source:Version}),
libssl-dev,
${misc:Depends}
Description: libraries and headers for developing Ice applications in C++
Expand Down Expand Up @@ -89,7 +90,7 @@ Package: php-zeroc-ice
Architecture: any
Section: php
Depends: libzeroc-ice3.8 (= ${binary:Version}),
zeroc-ice-slice (= ${binary:Version}),
zeroc-ice-slice (= ${source:Version}),
${misc:Depends},
${php:Depends},
${shlibs:Depends}
Expand All @@ -103,11 +104,11 @@ Description: PHP extension for Ice
your application logic.

Package: python3-zeroc-ice
Build-Profiles: <!no-python312>
Build-Profiles: <!nopython>
Architecture: any
Section: python
Depends: libzeroc-ice3.8 (= ${binary:Version}),
zeroc-ice-slice (= ${binary:Version}),
zeroc-ice-slice (= ${source:Version}),
${misc:Depends},
${python3:Depends},
${shlibs:Depends}
Expand Down Expand Up @@ -137,27 +138,8 @@ Description: Glacier2 router
network programming interfaces and allows you to focus your efforts on
your application logic.

Package: zeroc-ice-ice2slice
Architecture: any
Section: devel
Depends: zeroc-ice-slice (= ${binary:Version}),
${misc:Depends}
Description: Ice to Slice compiler
This package provides the ice2slice compiler. It converts Slice definitions
written in ".ice" files into Slice definitions in ".slice" files.
.
The ".ice" format is the syntax understood by the Slice compilers included
with Ice. The ".slice" format is the syntax understood by slicec, the Slice
compiler provided by IceRPC
.
Ice is a comprehensive RPC framework that helps you network your software
with minimal effort. Ice takes care of all interactions with low-level
network programming interfaces and allows you to focus your efforts on
your application logic.

Package: zeroc-ice-slice
Architecture: all
Section: devel
Depends: ${misc:Depends}
Description: Slice files for Ice
This package contains Slice files used by the Ice framework.
Expand Down Expand Up @@ -250,19 +232,17 @@ Description: IceBridge service
Package: zeroc-ice-compilers
Architecture: all
Section: oldlibs
Priority: optional
Depends: libzeroc-ice-dev (= ${binary:Version}),
python3-zeroc-ice (= ${binary:Version}) <!no-python312>,
php-zeroc-ice (= ${binary:Version}),
Depends: libzeroc-ice-dev (>= ${source:Version}),
python3-zeroc-ice (>= ${source:Version}) <!nopython>,
php-zeroc-ice (>= ${source:Version}),
${misc:Depends}
Description: transitional dummy package for Ice 3.7 all-dev metapackage
Description: transitional dummy package for Ice 3.7 compilers metapackage
This empty package ensures a smooth upgrade from Ice 3.7 by replacing
the obsolete zeroc-ice-compilers. It can be safely removed.

Package: zeroc-ice-all-dev
Architecture: all
Section: oldlibs
Priority: optional
Depends: ${misc:Depends}
Description: transitional dummy package for Ice 3.7 all-dev metapackage
This empty package ensures a smooth upgrade from Ice 3.7 by replacing
Expand All @@ -271,7 +251,6 @@ Description: transitional dummy package for Ice 3.7 all-dev metapackage
Package: zeroc-ice-all-runtime
Architecture: all
Section: oldlibs
Priority: optional
Depends: ${misc:Depends}
Description: transitional dummy package for Ice 3.7 all-runtime metapackage
This empty package ensures a smooth upgrade from Ice 3.7 by replacing
Expand Down
72 changes: 28 additions & 44 deletions packaging/deb/debian/copyright
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@ Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: ZeroC Ice
Upstream-Contact: ZeroC Info <info@zeroc.com>
Source: https://github.com/zeroc-ice/
Files-Excluded: */gradle/GRADLE_LICENSE */gradle/wrapper */gradlew* cpp/src/IceUtil/ConvertUTF.*
Comment: Repackaged to remove files not needed for the Debian build.
Files-Excluded: ICE_LICENSE cpp/src/IceUtil/ConvertUTF.* cpp/msbuild/* csharp/* java/* js/* packaging/rpm/* packaging/windows-installer/*

Files: *
Copyright: 2003-2026 ZeroC, Inc.
Expand All @@ -13,11 +14,33 @@ Copyright: 2003-2026 ZeroC, Inc.
2016 Ondřej Surý
License: GPL-2.0+exceptions

Files: java/src/IceGridGUI/src/main/java/IceGridGUI/SimpleInternalFrame.java
Copyright: 2000-2005 JGoodies Karsten Lentzsch.
License: BSD-3-clause
Files: cpp/src/*/Grammar.cpp cpp/src/*/Grammar.h
Copyright: 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation, Inc.
License: GPL-3+-with-Bison-2.2-exception
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
.
On Debian systems, the complete text of the GNU General Public License
version 3 can be found in "/usr/share/common-licenses/GPL-3".
.
As a special exception, you may create a larger work that contains
part or all of the Bison parser skeleton and distribute that work
under terms of your choice, so long as that work isn't itself a
parser generator using the skeleton or a modified version thereof
as a parser skeleton. Alternatively, if you modify or redistribute
the parser skeleton itself, you may (at your option) remove this
special exception, which will cause the skeleton and the resulting
Bison output files to be licensed under the GNU General Public
License without this special exception.

Files: cpp/test/IceUtil/unicode/*.utf*
Files: cpp/test/IceUtil/unicode/*
Copyright: Authors of cœur page on Wikipedia.fr as of May 25, 2016.
License: CC-BY-SA-3.0

Expand All @@ -37,17 +60,6 @@ License: GPL-2.0+exceptions
On Debian systems, the complete text of the GNU General Public
License version 2 can be found in "/usr/share/common-licenses/GPL-2".
.
Linking Ice statically or dynamically with other software (such as a
library, module or application) is making a combined work based on Ice.
Thus, the terms and conditions of the GNU General Public License version
2 cover this combined work.
.
If such software can only be used together with Ice, then not only the
combined work but the software itself is a work derived from Ice and as
such shall be licensed under the terms of the GNU General Public License
version 2. This includes the situation where Ice is only being used
through an abstraction layer.
.
As a special exception to the above, ZeroC grants to the copyright
holders and contributors of the Mumble project (http://www.mumble.info)
the permission to license the Ice-based software they contribute to
Expand All @@ -72,34 +84,6 @@ License: GPL-2.0+exceptions
provided above to your version of Ice, but you are not obligated to
so

License: BSD-3-clause
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
.
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in
the documentation and/or other materials provided with the
distribution.
.
3. Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived
from this software without specific prior written permission.
.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

License: CC-BY-SA-3.0
CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL
SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN ATTORNEY-CLIENT
Expand Down
4 changes: 0 additions & 4 deletions packaging/deb/debian/gbp.conf

This file was deleted.

Loading
Loading