Skip to content

Commit

Permalink
Initial build support for Ubuntu 24.04
Browse files Browse the repository at this point in the history
  • Loading branch information
bphinz committed Jun 18, 2024
1 parent 175c7a1 commit 41e6e79
Show file tree
Hide file tree
Showing 16 changed files with 868 additions and 0 deletions.
13 changes: 13 additions & 0 deletions .github/containers/noble/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
FROM ubuntu:noble

ARG DEBIAN_FRONTEND=noninteractive

RUN apt-get update
RUN apt-get -y install packaging-dev equivs

RUN useradd -s /bin/bash -m deb
RUN echo >> /etc/sudoers
RUN echo "deb ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers

USER deb
WORKDIR /home/deb
59 changes: 59 additions & 0 deletions .github/containers/noble/build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
#!/bin/bash

set -e
set -x

## Basic variables

CURDIR=$(dirname $(readlink -f $0))
TOPDIR=$(git rev-parse --show-toplevel 2>/dev/null)

DEBDIR=${TOPDIR}/contrib/packages/deb/ubuntu-noble

VERSION=$(grep '^set(VERSION ' ${TOPDIR}/CMakeLists.txt | sed 's@^set(VERSION \(.*\))@\1@')

## Prepare the build directory

rm -rf ${CURDIR}/build
mkdir -p ${CURDIR}/build
chmod a+w ${CURDIR}/build
[ -x /usr/sbin/selinuxenabled ] && /usr/sbin/selinuxenabled && chcon -Rt container_file_t ${CURDIR}/build

## Copy over the source code

(cd ${TOPDIR} && git archive --prefix tigervnc-${VERSION}/ HEAD) | xz > ${CURDIR}/build/tigervnc_${VERSION}.orig.tar.xz

## Copy over the packaging files

cp -r ${DEBDIR}/debian ${CURDIR}/build/debian

chmod a+x ${CURDIR}/build/debian/rules

# Assemble a fake changelog entry to get the correct version

cat - > ${CURDIR}/build/debian/changelog << EOT
tigervnc (${VERSION}-1ubuntu1) UNRELEASED; urgency=low
* Automated build for TigerVNC
-- Build bot <[email protected]> $(date -R)
EOT
cat ${DEBDIR}/debian/changelog >> ${CURDIR}/build/debian/changelog

## Start the build

docker run --volume ${CURDIR}/build:/home/deb/build --interactive --rm tigervnc/${DOCKER} \
bash -e -x -c "
tar -C ~/build -axf ~/build/tigervnc_${VERSION}.orig.tar.xz
cp -a ~/build/debian ~/build/tigervnc-${VERSION}/debian
sudo apt-get update
mk-build-deps ~/build/tigervnc-${VERSION}/debian/control
sudo DEBIAN_FRONTEND=noninteractive \
apt-get install -y ~/tigervnc-build-deps_*.deb
cd ~/build/tigervnc-${VERSION} && dpkg-buildpackage
"

mkdir -p ${CURDIR}/result
cp -av ${CURDIR}/build/*.deb ${CURDIR}/result
cp -av ${CURDIR}/build/*.ddeb ${CURDIR}/result
1 change: 1 addition & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,7 @@ jobs:
- bionic
- focal
- jammy
- noble
fail-fast: false
runs-on: ubuntu-latest
env:
Expand Down
5 changes: 5 additions & 0 deletions contrib/packages/deb/ubuntu-noble/debian/changelog
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
tigervnc (1.13.80) noble; urgency=low

* Initial release.

-- Brian P. Hinz <[email protected]> Tue, 18 Jun 2024 18:50:23 -0400
1 change: 1 addition & 0 deletions contrib/packages/deb/ubuntu-noble/debian/compat
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
10
193 changes: 193 additions & 0 deletions contrib/packages/deb/ubuntu-noble/debian/control
Original file line number Diff line number Diff line change
@@ -0,0 +1,193 @@
Source: tigervnc
Section: x11
Priority: optional
Maintainer: Brian P. Hinz <[email protected]>
Standards-Version: 3.8.4
Build-Depends:
# TigerVNC dependencies
debhelper (>= 9),
dh-autoreconf,
po-debconf,
dpkg-dev (>= 1.16.1),
appstream,
cmake,
pkg-config,
gettext,
zlib1g-dev,
libjpeg-turbo8-dev,
libavcodec-dev,
libavutil-dev,
libswscale-dev,
libgnutls28-dev,
nettle-dev,
libgmp-dev,
libpam0g-dev,
libpng-dev,
libxext-dev,
libxi-dev,
libxtst-dev,
libxrandr-dev,
libxdamage-dev,
libxfixes-dev,
libfltk1.3-dev,
xorg-server-source,
xserver-xorg-dev,
openjdk-8-jdk,
# Xorg dependencies
# debhelper-compat (= 12),
po-debconf,
quilt,
bison,
flex,
xutils-dev (>= 1:7.6+4),
xfonts-utils (>= 1:7.5+1),
x11proto-dev (>= 2021.5),
xtrans-dev (>= 1.3.5),
libxau-dev (>= 1:1.0.5-2),
libxcvt-dev,
libxdmcp-dev (>= 1:0.99.1),
libxfont-dev (>= 1:2.0.1),
libxkbfile-dev (>= 1:0.99.1),
libpixman-1-dev (>= 0.27.2),
libpciaccess-dev (>= 0.12.901),
libgcrypt20-dev,
libudev-dev (>= 151-3) [linux-any],
libselinux1-dev (>= 2.0.80) [linux-any],
libaudit-dev [linux-any],
libdrm-dev (>= 2.4.107-5~) [!hurd-i386],
libgl1-mesa-dev (>= 9.2),
mesa-common-dev,
# Don't use libunwind for armel, armhf, and arm64 as this library is buggy (bug #923962) on those architectures.
libunwind-dev [amd64 hppa i386 ia64 mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el sh4],
libxmuu-dev (>= 1:0.99.1),
libxext-dev (>= 1:0.99.1),
libx11-dev (>= 2:1.6),
libxrender-dev (>= 1:0.9.0),
libxi-dev (>= 2:1.8),
libxpm-dev (>= 1:3.5.3),
libxaw7-dev (>= 1:0.99.1),
libxt-dev (>= 1:0.99.1),
libxmu-dev (>= 1:0.99.1),
libxtst-dev (>= 1:0.99.1),
libxres-dev (>= 1:0.99.1),
libxfixes-dev (>= 1:3.0.0),
libxv-dev,
libxinerama-dev,
libxshmfence-dev (>= 1.1) [!hurd-i386],
# glamor
libepoxy-dev [linux-any kfreebsd-any],
libegl1-mesa-dev [linux-any kfreebsd-any],
libgbm-dev (>= 10.2) [linux-any kfreebsd-any],
## XCB bits for Xephyr
# libx11-xcb-dev,
# libxcb1-dev,
# libxcb-xkb-dev,
# libxcb-shape0-dev,
# libxcb-render0-dev,
# libxcb-render-util0-dev,
# libxcb-util0-dev,
# libxcb-image0-dev,
# libxcb-icccm4-dev,
# libxcb-shm0-dev,
# libxcb-keysyms1-dev,
# libxcb-randr0-dev,
# libxcb-xv0-dev,
# libxcb-glx0-dev,
# libxcb-xf86dri0-dev (>= 1.6),
# unit tests
xkb-data,
x11-xkb-utils,
# arc4random_buf(), getpeereid()
libbsd-dev,
#logind
libdbus-1-dev (>= 1.0) [linux-any],
# systemd-daemon
libsystemd-dev [linux-any],
Homepage: http://www.tigervnc.com

Package: tigervncserver
Architecture: any
Provides:
xserver,
vnc-server
Depends:
x11-common | xserver-common,
x11-utils,
xauth,
x11-xkb-utils,
${shlibs:Depends},
${perl:Depends},
${misc:Depends}
Recommends:
xfonts-base,
x11-xserver-utils
Suggests:
xtigervncviewer,
tigervnc-java
Description: virtual network computing server software
Virtual Network Computing (VNC) is a remote display system which allows you to
view and interact with a virtual desktop environment that is running on another
computer on the network. Using VNC, you can run graphical applications on a
remote machine and send only the display from these applications to your local
machine. VNC is platform-independent and supports a wide variety of operating
systems and architectures as both servers and clients.
.
TigerVNC is a high-speed version of VNC based on the RealVNC 4 and X.org code
bases. TigerVNC started as a next-generation development effort for TightVNC
on Unix and Linux platforms, but it split from its parent project in early 2009
so that TightVNC could focus on Windows platforms. TigerVNC supports a variant
of Tight encoding that is greatly accelerated by the use of the libjpeg-turbo
JPEG codec.

Package: xtigervncviewer
Architecture: any
Provides:
vncviewer,
vnc-viewer
Depends:
${shlibs:Depends},
${misc:Depends}
Recommends:
xfonts-base
Suggests:
tigervncserver,
ssh
Description: virtual network computing client software for X
Virtual Network Computing (VNC) is a remote display system which allows you to
view and interact with a virtual desktop environment that is running on another
computer on the network. Using VNC, you can run graphical applications on a
remote machine and send only the display from these applications to your local
machine. VNC is platform-independent and supports a wide variety of operating
systems and architectures as both servers and clients.
.
TigerVNC is a high-speed version of VNC based on the RealVNC 4 and X.org code
bases. TigerVNC started as a next-generation development effort for TightVNC
on Unix and Linux platforms, but it split from its parent project in early 2009
so that TightVNC could focus on Windows platforms. TigerVNC supports a variant
of Tight encoding that is greatly accelerated by the use of the libjpeg-turbo
JPEG codec.

Package: tigervnc-java
Architecture: any
Suggests:
tigervncserver
Provides:
vncviewer,
vnc-viewer
Depends:
default-jre
Description: TigerVNC java applet
Virtual Network Computing (VNC) is a remote display system which allows you to
view and interact with a virtual desktop environment that is running on another
computer on the network. Using VNC, you can run graphical applications on a
remote machine and send only the display from these applications to your local
machine. VNC is platform-independent and supports a wide variety of operating
systems and architectures as both servers and clients.
.
TigerVNC is a high-speed version of VNC based on the RealVNC 4 and X.org code
bases. TigerVNC started as a next-generation development effort for TightVNC
on Unix and Linux platforms, but it split from its parent project in early 2009
so that TightVNC could focus on Windows platforms. TigerVNC supports a variant
of Tight encoding that is greatly accelerated by the use of the libjpeg-turbo
JPEG codec.

Loading

0 comments on commit 41e6e79

Please sign in to comment.