diff --git a/docker/Dockerfile_ubuntu_21.04 b/docker/Dockerfile_ubuntu_21.04 new file mode 100644 index 0000000000000000000000000000000000000000..8b074a70cd5dd11d6ac8acff32dd8fb3d871b504 --- /dev/null +++ b/docker/Dockerfile_ubuntu_21.04 @@ -0,0 +1,69 @@ +FROM ubuntu:21.04 + +ENV DEBIAN_FRONTEND noninteractive + +RUN apt-get clean +RUN apt-get update && \ + apt-get install -y devscripts equivs + +# Speed up mk-build-deps +RUN apt-get clean +RUN apt-get update && \ + apt-get install -y -o Acquire::Retries=10 \ + git \ + autoconf \ + automake \ + autopoint \ + cmake \ + libtool \ + libdbus-1-dev \ + libdbus-c++-dev \ + libgnutls28-dev \ + libargon2-0-dev \ + libcanberra-gtk3-dev \ + libclutter-gtk-1.0-dev \ + libclutter-1.0-dev \ + libglib2.0-dev \ + libgtk-3-dev \ + libnotify-dev \ + qtbase5-dev \ + qttools5-dev \ + qttools5-dev-tools \ + yasm \ + nasm \ + autotools-dev \ + gettext \ + libpulse-dev \ + libasound2-dev \ + libexpat1-dev \ + libpcre3-dev \ + libyaml-cpp-dev \ + libboost-dev \ + libxext-dev \ + libxfixes-dev \ + libspeex-dev \ + libspeexdsp-dev \ + uuid-dev \ + libavcodec-dev \ + libavutil-dev \ + libavformat-dev \ + libswscale-dev \ + libavdevice-dev \ + libopus-dev \ + libudev-dev \ + libgsm1-dev \ + libjsoncpp-dev \ + libmsgpack-dev \ + libnatpmp-dev \ + libayatana-appindicator3-dev \ + libqrencode-dev \ + libnm-dev \ + libwebkit2gtk-4.0-dev \ + libcrypto++-dev \ + libva-dev \ + libvdpau-dev \ + libssl-dev + +ADD scripts/build-package-debian.sh /opt/build-package-debian.sh + +CMD /opt/build-package-debian.sh diff --git a/packaging/rules/debian-one-click-install/jami-all.postinst b/packaging/rules/debian-one-click-install/jami-all.postinst index 3eef137e2a91779755bf7c72fe20048c54bcc729..b2ce6a314f3aa19ea75928d04787bcd390adcd81 100755 --- a/packaging/rules/debian-one-click-install/jami-all.postinst +++ b/packaging/rules/debian-one-click-install/jami-all.postinst @@ -104,6 +104,8 @@ if [ -f /etc/os-release ]; then ENDTAG="ubuntu_20.04" elif [ "${UBUNTU_CODENAME}" = "groovy" ] || [ "${ID}_${VERSION_ID}" = "ubuntu_20.10" ]; then ENDTAG="ubuntu_20.10" + elif [ "${UBUNTU_CODENAME}" = "hirsute" ] || [ "${ID}_${VERSION_ID}" = "ubuntu_21.04" ]; then + ENDTAG="ubuntu_21.04" else # Distribution is not supported. Don't provide automatic updates. CAN_ADD_DEB_SOURCE=false diff --git a/packaging/rules/debian-one-click-install/rules b/packaging/rules/debian-one-click-install/rules index e9ffc2709a37ecc77651ca644d6e6a807f89a362..44d7d430bdbeb8a1934637b9472c8134e9312ba4 100755 --- a/packaging/rules/debian-one-click-install/rules +++ b/packaging/rules/debian-one-click-install/rules @@ -16,16 +16,20 @@ endif JAMI_ALL_IN_ONE_PKG_NAME="jami-all" # Bundled packages from contrib -BUNDLED_PKGS = .ffmpeg +BUNDLED_PKGS="" ifeq (raspbian_10_armhf,$(findstring raspbian_10_armhf, $(DISTRIBUTION))) # Raspbian's yaml-cpp lib does not work properly -BUNDLED_PKGS += .yaml-cpp +BUNDLED_PKGS="--enable-ffmpeg --enable-yaml-cpp" # Add host environment variables CMAKE_OPTIONS=-DCHOST=${HOST_ARCH} \ -DCMAKE_C_COMPILER=${HOST_ARCH}-gcc \ -DCMAKE_CXX_COMPILER=${HOST_ARCH}-g++ \ -DCMAKE_FIND_ROOT_PATH=/usr/${HOST_ARCH} \ -DPKG_CONFIG_EXECUTABLE=/usr/bin/${HOST_ARCH}-pkg-config +else +ifneq (ubuntu_21.04,$(findstring ubuntu_21.04, $(DISTRIBUTION))) +BUNDLED_PKGS="--enable-ffmpeg" # For ubuntu 21.04 it seems there is massive issues with linking for swscale +endif endif %: @@ -45,7 +49,7 @@ override_dh_auto_configure: done ########################### - ## Ring Daemon configure ## + ## Daemon configure ## ########################### mkdir -p daemon/contrib/native cd daemon/contrib/native && \ @@ -61,11 +65,10 @@ override_dh_auto_configure: --disable-sndfile \ --disable-gsm \ --disable-speexdsp \ - --disable-natpmp \ - --enable-gnutls && \ + --disable-natpmp \ + --enable-gnutls $(BUNDLED_PKGS) && \ make list && \ - make -j$(NO_CPUS) V=1 && \ - make -j$(NO_CPUS) $(BUNDLED_PKGS) V=1 + make -j$(NO_CPUS) V=1 cd daemon && \ ./autogen.sh && \ ./configure \ @@ -82,7 +85,6 @@ override_dh_auto_configure: cmake \ -DRING_BUILD_DIR=$(CURDIR)/daemon/src \ -DCMAKE_INSTALL_PREFIX=/usr \ - -DCMAKE_BUILD_TYPE=Debug \ $(CMAKE_OPTIONS) \ .. @@ -103,7 +105,7 @@ override_dh_auto_configure: override_dh_auto_build: ####################### - ## Ring Daemon build ## + ## Daemon build ## ####################### make -C daemon -j$(NO_CPUS) V=1 pod2man daemon/man/dring.pod > daemon/dring.1 @@ -125,7 +127,7 @@ override_dh_auto_clean: rm -rfv daemon/contrib/tarballs ####################### - ## Ring Daemon clean ## + ## Daemon clean ## ####################### if [ -f daemon/contrib/native/Makefile ]; then make -C daemon/contrib/native distclean; fi rm -rfv daemon/contrib/native diff --git a/packaging/rules/debian/rules b/packaging/rules/debian/rules index 2c098c6a339de240b6aeaad334519799d3efa7dd..847c39cd6fc5d2cb2486e394ca6e791c7746291a 100755 --- a/packaging/rules/debian/rules +++ b/packaging/rules/debian/rules @@ -18,16 +18,20 @@ JAMI_CLIENT_PKG_NAME="jami" JAMI_DAEMON_PKG_NAME="jami-daemon" # Bundled packages from contrib -BUNDLED_PKGS = .ffmpeg +BUNDLED_PKGS="" ifeq (raspbian_10_armhf,$(findstring raspbian_10_armhf, $(DISTRIBUTION))) # Raspbian's yaml-cpp lib does not work properly -BUNDLED_PKGS += .yaml-cpp +BUNDLED_PKGS="--enable-ffmpeg --enable-yaml-cpp" # Add host environment variables CMAKE_OPTIONS=-DCHOST=${HOST_ARCH} \ -DCMAKE_C_COMPILER=${HOST_ARCH}-gcc \ -DCMAKE_CXX_COMPILER=${HOST_ARCH}-g++ \ -DCMAKE_FIND_ROOT_PATH=/usr/${HOST_ARCH} \ -DPKG_CONFIG_EXECUTABLE=/usr/bin/${HOST_ARCH}-pkg-config +else +ifneq (ubuntu_21.04,$(findstring ubuntu_21.04, $(DISTRIBUTION))) +BUNDLED_PKGS="--enable-ffmpeg" # For ubuntu 21.04 it seems there is massive issues with linking for swscale +endif endif %: @@ -47,7 +51,7 @@ override_dh_auto_configure: done ########################### - ## Ring Daemon configure ## + ## Daemon configure ## ########################### mkdir -p daemon/contrib/native cd daemon/contrib/native && \ @@ -63,11 +67,10 @@ override_dh_auto_configure: --disable-sndfile \ --disable-gsm \ --disable-speexdsp \ - --disable-natpmp \ - --enable-gnutls && \ + --disable-natpmp \ + --enable-gnutls $(BUNDLED_PKGS) && \ make list && \ - make -j$(NO_CPUS) V=1 && \ - make -j$(NO_CPUS) $(BUNDLED_PKGS) V=1 + make -j$(NO_CPUS) V=1 cd daemon && \ ./autogen.sh && \ ./configure \ @@ -84,7 +87,6 @@ override_dh_auto_configure: cmake \ -DRING_BUILD_DIR=$(CURDIR)/daemon/src \ -DCMAKE_INSTALL_PREFIX=/usr \ - -DCMAKE_BUILD_TYPE=Debug \ $(CMAKE_OPTIONS) \ .. @@ -105,7 +107,7 @@ override_dh_auto_configure: override_dh_auto_build: ####################### - ## Ring Daemon build ## + ## Daemon build ## ####################### make -C daemon -j$(NO_CPUS) V=1 pod2man daemon/man/dring.pod > daemon/dring.1 @@ -127,7 +129,7 @@ override_dh_auto_clean: rm -rfv daemon/contrib/tarballs ####################### - ## Ring Daemon clean ## + ## Daemon clean ## ####################### if [ -f daemon/contrib/native/Makefile ]; then make -C daemon/contrib/native distclean; fi rm -rfv daemon/contrib/native @@ -155,7 +157,7 @@ override_dh_clean: override_dh_auto_install: ######################### - ## Ring daemon install ## + ## Daemon install ## ######################### cd daemon && make DESTDIR=$(CURDIR)/debian/$(JAMI_DAEMON_PKG_NAME) install diff --git a/scripts/make-packaging-target.py b/scripts/make-packaging-target.py index 4139f04ebb41f60fc9577bd775ad12adb8c1dc26..425c56d86e206e81e4e5fe732c75399a16ba5587 100755 --- a/scripts/make-packaging-target.py +++ b/scripts/make-packaging-target.py @@ -244,6 +244,20 @@ def run_generate_all(parsed_args): "options": "-e OVERRIDE_PACKAGING_DIR=$(DEBIAN_OCI_PKG_DIR) --privileged --security-opt apparmor=docker-default", "version": "$(DEBIAN_OCI_VERSION)", }, + { + "distribution": "ubuntu_21.04", + "debian_packaging_override": "", + "output_file": "$(DEBIAN_DSC_FILENAME)", + "options": "--privileged --security-opt apparmor=docker-default", + }, + { + "distribution": "ubuntu_21.04_oci", + "docker_image": "ubuntu_21.04", + "debian_packaging_override": "", + "output_file": "$(DEBIAN_OCI_DSC_FILENAME)", + "options": "-e OVERRIDE_PACKAGING_DIR=$(DEBIAN_OCI_PKG_DIR) --privileged --security-opt apparmor=docker-default", + "version": "$(DEBIAN_OCI_VERSION)", + }, # Fedora {