diff --git a/Containerfile.debian b/Containerfile.debian index 041c64e..85222fc 100644 --- a/Containerfile.debian +++ b/Containerfile.debian @@ -1,5 +1,5 @@ ARG NODE_VERSION -FROM node:${NODE_VERSION} +FROM docker.io/node:${NODE_VERSION}-buster RUN apt-get -qq update && apt-get -qq install --no-install-recommends -y \ curl \ @@ -23,8 +23,4 @@ ENV RUSTUP_HOME=/usr/local/rustup \ PATH=/usr/local/cargo/bin:$PATH RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --no-modify-path --profile minimal -COPY . /project -WORKDIR /project - -# There might be remnants of the host which break the build -RUN make fixup \ No newline at end of file +WORKDIR /project \ No newline at end of file diff --git a/Containerfile.fedora b/Containerfile.fedora index a61578c..a886a89 100644 --- a/Containerfile.fedora +++ b/Containerfile.fedora @@ -1,6 +1,6 @@ -FROM fedora:latest +FROM docker.io/fedora:38 -RUN dnf install -y openssl openssl-devel rust cargo llvm libsecret libsecret-devel g++ ruby-devel gcc make rpm-build libffi-devel tcl libxcrypt-compat +RUN dnf install -y openssl openssl-devel cargo llvm libsecret libsecret-devel sqlcipher sqlcipher-devel g++ ruby-devel gcc make rpm-build libffi-devel tcl libxcrypt-compat pkgconf perl # node setup ARG NODE_VERSION @@ -13,8 +13,9 @@ RUN npm install -g yarn RUN npm install -g node-gyp RUN gem install --no-user-install --no-document fpm -COPY . /project -WORKDIR /project +ENV RUSTUP_HOME=/usr/local/rustup \ + CARGO_HOME=/usr/local/cargo \ + PATH=/usr/local/cargo/bin:$PATH +RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --no-modify-path --profile minimal -# There might be remnants of the host which break the build -RUN make fixup +WORKDIR /project \ No newline at end of file diff --git a/Containerfile.windows b/Containerfile.windows new file mode 100644 index 0000000..0c0776a --- /dev/null +++ b/Containerfile.windows @@ -0,0 +1,13 @@ +ARG CONTAINER_IMAGE_DEBIAN +FROM ${CONTAINER_IMAGE_DEBIAN}:latest + +RUN dpkg --add-architecture i386 && apt-get update && apt-get install --no-install-recommends -y \ + wine \ + wine32 \ + wine64 \ + libwine \ + libwine:i386 \ + fonts-wine \ + zip + +WORKDIR /project \ No newline at end of file diff --git a/Makefile b/Makefile index 205cea9..472d391 100644 --- a/Makefile +++ b/Makefile @@ -1,8 +1,8 @@ .PHONY: all setup regenerate-i18n web desktop-common linux debian rpm pacman local-pkgbuild local-pkgbuild-install windows windows-portable .PHONY: web-release debian-release rpm-release pacman-release windows-setup-release windows-unpacked-release windows-portable-release windows-release .PHONY: macos-common macos macos-mas macos-release macos-mas-release icns -.PHONY: container-build-debian container-build-fedora -.PHONY: container-web-release container-debian-release container-rpm-release container-appimage-release +.PHONY: container-build-debian container-build-fedora container-build-windows +.PHONY: container-web-release container-debian-release container-rpm-release container-appimage-release container-windows-release container-release container-local-pkgbuild .PHONY: clean undo_setup fixup .PHONY: fix_yarn_cache @@ -12,7 +12,7 @@ all: web YARN ?= yarnpkg CONTAINER_ENGINE ?= podman -NODE_VERSION ?= 16 +NODE_VERSION ?= 18 VERSION := $(shell grep version element-desktop/package.json | sed 's|.*: \"\(.*\)\",|\1|') WEB_APP_NAME := $(shell grep '"name"' element-web/package.json | head -n 1 | sed 's|.*: \"\(.*\)\",|\1|') @@ -39,6 +39,7 @@ OUT_MACOS_MAS := $(DESKTOP_OUT)/mas-universal/$(PRODUCT_NAME).app CONTAINER_IMAGE_DEBIAN := schildichat-desktop-containerbuild-debian CONTAINER_IMAGE_FEDORA := schildichat-desktop-containerbuild-fedora +CONTAINER_IMAGE_WINDOWS := schildichat-desktop-containerbuild-windows RELEASE_DIR := release CURRENT_RELEASE_DIR := $(RELEASE_DIR)/$(VERSION) @@ -76,7 +77,7 @@ web: setup desktop-common: web $(YARN) --cwd element-desktop run fetch --cfgdir '' - SQLCIPHER_STATIC=1 $(YARN) --cwd element-desktop run build:native + SQLCIPHER_BUNDLED=1 $(YARN) --cwd element-desktop run build:native macos-common: web icns $(YARN) --cwd element-desktop run fetch --cfgdir '' @@ -162,22 +163,35 @@ macos-mas-release: macos-mas cp $(OUT_MACOS_MAS) $(CURRENT_RELEASE_DIR) container-build-debian: - $(CONTAINER_ENGINE) build -t $(CONTAINER_IMAGE_DEBIAN) -f Containerfile.debian --build-arg NODE_VERSION=$(NODE_VERSION) . + $(CONTAINER_ENGINE) build --security-opt seccomp=unconfined --security-opt label=disable -t $(CONTAINER_IMAGE_DEBIAN) -f Containerfile.debian --build-arg NODE_VERSION=$(NODE_VERSION) . container-build-fedora: - $(CONTAINER_ENGINE) build -t $(CONTAINER_IMAGE_FEDORA) -f Containerfile.fedora --build-arg NODE_VERSION=$(NODE_VERSION) . + $(CONTAINER_ENGINE) build --security-opt seccomp=unconfined --security-opt label=disable -t $(CONTAINER_IMAGE_FEDORA) -f Containerfile.fedora --build-arg NODE_VERSION=$(NODE_VERSION) . + +container-build-windows: container-build-debian + $(CONTAINER_ENGINE) build --security-opt seccomp=unconfined --security-opt label=disable -t $(CONTAINER_IMAGE_WINDOWS) -f Containerfile.windows --build-arg CONTAINER_IMAGE_DEBIAN=$(CONTAINER_IMAGE_DEBIAN) . container-web-release: container-build-debian - $(CONTAINER_ENGINE) run --rm -ti -v $(PWD)/release:/project/release --security-opt label=disable $(CONTAINER_IMAGE_DEBIAN):latest make web-release + $(CONTAINER_ENGINE) run --rm -ti -v $(PWD):/project --security-opt seccomp=unconfined --security-opt label=disable $(CONTAINER_IMAGE_DEBIAN):latest make web-release container-debian-release: container-build-debian - $(CONTAINER_ENGINE) run --rm -ti -v $(PWD)/release:/project/release --security-opt label=disable $(CONTAINER_IMAGE_DEBIAN):latest make debian-release + $(CONTAINER_ENGINE) run --rm -ti -v $(PWD):/project --security-opt seccomp=unconfined --security-opt label=disable $(CONTAINER_IMAGE_DEBIAN):latest make debian-release container-rpm-release: container-build-fedora - $(CONTAINER_ENGINE) run --rm -ti -v $(PWD)/release:/project/release --security-opt label=disable $(CONTAINER_IMAGE_FEDORA):latest make rpm-release + $(CONTAINER_ENGINE) run --rm -ti -v $(PWD):/project --security-opt seccomp=unconfined --security-opt label=disable $(CONTAINER_IMAGE_FEDORA):latest make rpm-release container-appimage-release: container-build-debian - $(CONTAINER_ENGINE) run --rm -ti -v $(PWD)/release:/project/release --security-opt label=disable $(CONTAINER_IMAGE_DEBIAN):latest make appimage-release + $(CONTAINER_ENGINE) run --rm -ti -v $(PWD):/project --security-opt seccomp=unconfined --security-opt label=disable $(CONTAINER_IMAGE_DEBIAN):latest make appimage-release + +container-windows-release: container-build-windows + $(CONTAINER_ENGINE) run --rm -ti -v $(PWD):/project --security-opt seccomp=unconfined --security-opt label=disable $(CONTAINER_IMAGE_WINDOWS):latest make windows-release + +container-release: container-build-windows container-build-fedora + $(CONTAINER_ENGINE) run --rm -ti -v $(PWD):/project --security-opt seccomp=unconfined --security-opt label=disable $(CONTAINER_IMAGE_WINDOWS):latest make web-release debian-release appimage-release windows-setup-release windows-portable-release + $(CONTAINER_ENGINE) run --rm -ti -v $(PWD):/project --security-opt seccomp=unconfined --security-opt label=disable $(CONTAINER_IMAGE_FEDORA):latest make rpm-release + +container-local-pkgbuild: container-build-debian + $(CONTAINER_ENGINE) run --rm -ti -v $(PWD):/project --security-opt seccomp=unconfined --security-opt label=disable $(CONTAINER_IMAGE_DEBIAN):latest make local-pkgbuild bom.lock: element-desktop/yarn.lock element-web/yarn.lock matrix-js-sdk/yarn.lock matrix-react-sdk/yarn.lock ./build-bom.sh diff --git a/element-desktop b/element-desktop index 6c5a11e..1885b7a 160000 --- a/element-desktop +++ b/element-desktop @@ -1 +1 @@ -Subproject commit 6c5a11e9011511aece7c7fac8e6acdc335752118 +Subproject commit 1885b7a6c13733b440e0a30690a879b184ecbf73 diff --git a/element-web b/element-web index cf448cf..e74ce0a 160000 --- a/element-web +++ b/element-web @@ -1 +1 @@ -Subproject commit cf448cf08cbd8caa6a6e983f79af3cb66f3792e9 +Subproject commit e74ce0adbfe037334a848d475155e92d4fe73eea diff --git a/matrix-js-sdk b/matrix-js-sdk index 4ab226e..bc03950 160000 --- a/matrix-js-sdk +++ b/matrix-js-sdk @@ -1 +1 @@ -Subproject commit 4ab226e58045f8f072bf3c14374d591c96a7a78b +Subproject commit bc03950f8a1bbc2900c5c4198430c040474bd144 diff --git a/matrix-react-sdk b/matrix-react-sdk index a869ff1..ab0b524 160000 --- a/matrix-react-sdk +++ b/matrix-react-sdk @@ -1 +1 @@ -Subproject commit a869ff1750b3e160477df4c5262fef9cc0b98baf +Subproject commit ab0b52468ff27bbeef7fcbe166c44e68fc89471d