diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a72ad3dd..79eb1d45 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -199,7 +199,7 @@ arch_pip_install: # The gradlew-fdroid tests are isolated from the rest of the test # suite, so they run as their own job. gradlew-fdroid: - image: debian:bullseye-slim + image: debian:bookworm-slim <<: *apt-template only: changes: @@ -371,7 +371,7 @@ macOS: gradle: - image: debian:bullseye + image: debian:bookworm-slim <<: *apt-template variables: GIT_DEPTH: 1000 @@ -469,7 +469,7 @@ fdroid build: # fdroiddata because that one is known to work, and this is a CI job, # so it should be isolated from the normal churn of fdroiddata. plugin_fetchsrclibs: - image: debian:bullseye + image: debian:bookworm-slim <<: *apt-template only: changes: @@ -513,7 +513,7 @@ plugin_fetchsrclibs: # test a full update and deploy cycle to gitlab.com servergitmirrors: - image: debian:bullseye-backports + image: debian:bookworm-slim <<: *apt-template only: - master@fdroid/fdroidserver @@ -534,7 +534,7 @@ servergitmirrors: python3-venv rsync wget - - apt-get install -t bullseye-backports apksigner + - apt-get install apksigner - python3 -m venv --system-site-packages env - . env/bin/activate - export PYTHONPATH=`pwd` @@ -557,7 +557,7 @@ servergitmirrors: - diff repo/index-v1.jar index-v1.jar Build documentation: - image: debian:bookworm + image: debian:bookworm-slim <<: *apt-template script: - apt-get install make python3-sphinx python3-numpydoc python3-pydata-sphinx-theme pydocstyle fdroidserver @@ -658,7 +658,7 @@ docker: - cd buildserver - docker build -t $TEST_IMAGE --build-arg GIT_REV_PARSE_HEAD=$(git rev-parse HEAD) . - docker tag $TEST_IMAGE $RELEASE_IMAGE - - docker tag $TEST_IMAGE ${RELEASE_IMAGE}-bullseye + - docker tag $TEST_IMAGE ${RELEASE_IMAGE}-bookworm - echo $CI_JOB_TOKEN | docker login -u gitlab-ci-token --password-stdin registry.gitlab.com # This avoids filling up gitlab.com free tier accounts with unused docker images. - if test -z "$FDROID_PUSH_DOCKER_IMAGE"; then @@ -668,4 +668,4 @@ docker: exit 0; fi - docker push $RELEASE_IMAGE - - docker push $RELEASE_IMAGE-bullseye + - docker push $RELEASE_IMAGE-bookworm diff --git a/buildserver/Dockerfile b/buildserver/Dockerfile index 2da6d8a3..3e863df5 100644 --- a/buildserver/Dockerfile +++ b/buildserver/Dockerfile @@ -1,5 +1,5 @@ -FROM debian:bullseye +FROM debian:bookworm ENV LANG=C.UTF-8 \ DEBIAN_FRONTEND=noninteractive @@ -41,7 +41,7 @@ RUN printf "path-exclude=/usr/share/locale/*\npath-exclude=/usr/share/man/*\npat && mkdir -p /usr/share/man/man1 \ && apt-get update \ && apt-get install ca-certificates \ - && sed -i 's,http:,https:,' /etc/apt/sources.list \ + && sed -i 's,http:,https:,' /etc/apt/sources.list.d/debian.sources \ && apt-get upgrade \ && apt-get dist-upgrade \ && apt-get install openssh-client iproute2 python3 openssh-server sudo \ diff --git a/buildserver/Vagrantfile b/buildserver/Vagrantfile index 3ba5f2b7..682c364c 100644 --- a/buildserver/Vagrantfile +++ b/buildserver/Vagrantfile @@ -35,7 +35,7 @@ Vagrant.configure("2") do |config| config.cache.enable :chef end - config.vm.box = "fdroid/bullseye64" + config.vm.box = "debian/bookworm64" if not configfile.has_key? "vm_provider" or configfile["vm_provider"] == "virtualbox" # default to VirtualBox if not set @@ -53,6 +53,8 @@ Vagrant.configure("2") do |config| libvirt.uri = "qemu:///system" libvirt.cpus = configfile["cpus"] libvirt.memory = configfile["memory"] + # Debian Vagrant image is only 20G, so allocate more + libvirt.machine_virtual_size = 1024 if configfile.has_key? "libvirt_disk_bus" libvirt.disk_bus = configfile["libvirt_disk_bus"] end @@ -86,6 +88,12 @@ Vagrant.configure("2") do |config| # necessary with 9p synced folders Dir.mkdir('cache') unless File.exists?('cache') + # Root partition needs to be resized to the new allocated space + config.vm.provision "shell", inline: <<-SHELL + growpart -v -u auto /dev/vda 1 + resize2fs /dev/vda1 + SHELL + config.vm.provision "shell", name: "setup-env-vars", path: "setup-env-vars", args: ["/opt/android-sdk"] config.vm.provision "shell", name: "apt-get-install", path: "provision-apt-get-install", diff --git a/buildserver/provision-apt-get-install b/buildserver/provision-apt-get-install index ef61234c..89c6e2de 100644 --- a/buildserver/provision-apt-get-install +++ b/buildserver/provision-apt-get-install @@ -39,28 +39,29 @@ if echo $debian_mirror | grep '^https' 2>&1 > /dev/null; then fi cat << EOF > /etc/apt/sources.list -deb ${debian_mirror} bullseye main -deb https://security.debian.org/debian-security bullseye-security main -deb ${debian_mirror} bullseye-updates main +deb ${debian_mirror} bookworm main +deb https://security.debian.org/debian-security bookworm-security main +deb ${debian_mirror} bookworm-updates main EOF -echo "deb ${debian_mirror} bullseye-backports main" > /etc/apt/sources.list.d/backports.list +echo "deb ${debian_mirror} bookworm-backports main" > /etc/apt/sources.list.d/backports.list apt-get update || apt-get update # purge things that might come from the base box, but we don't want # https://salsa.debian.org/cloud-team/debian-vagrant-images/-/tree/master/config_space/package_config # cat config_space/package_config/* | sort -u | grep -v '[A-Z#]' + purge=" apt-listchanges apt-utils bash-completion bind9-* bsdextrautils - build-essential bzip2 chrony cloud-utils cron + cron-daemon-common dbus debconf-i18n debian-faq @@ -69,6 +70,7 @@ purge=" fdisk file groff-base + inetutils-telnet krb5-locales less locales @@ -82,14 +84,13 @@ purge=" reportbug rsyslog tasksel - telnet traceroute unattended-upgrades + usrmerge vim-* wamerican wget whiptail - xxd xz-utils " # clean up files packages to be purged, then purge the packages @@ -106,6 +107,7 @@ packages=" apksigner default-jdk-headless default-jre-headless + curl dexdump fdroidserver git-svn @@ -116,6 +118,7 @@ packages=" rsync sdkmanager sudo + unzip " apt-get install $packages --download-only diff --git a/fdroidserver/checkupdates.py b/fdroidserver/checkupdates.py index 6aaaf117..c7af23b3 100644 --- a/fdroidserver/checkupdates.py +++ b/fdroidserver/checkupdates.py @@ -617,19 +617,23 @@ def checkupdates_app(app: metadata.App) -> None: if not gotcur: newbuilds = copy.deepcopy(builds[-len(vercodes):]) - bullseye_blocklist = [ + # These are either built-in or invalid in newer system versions + bookworm_blocklist = [ 'apt-get install -y openjdk-11-jdk', 'apt-get install openjdk-11-jdk-headless', 'apt-get install -y openjdk-11-jdk-headless', 'apt-get install -t stretch-backports openjdk-11-jdk-headless openjdk-11-jre-headless', 'apt-get install -y -t stretch-backports openjdk-11-jdk-headless openjdk-11-jre-headless', + 'apt-get install -y openjdk-17-jdk', + 'apt-get install openjdk-17-jdk-headless', + 'apt-get install -y openjdk-17-jdk-headless', 'update-alternatives --auto java', ] for build in newbuilds: if "sudo" in build: - if any("openjdk-11" in line for line in build["sudo"]): - build["sudo"] = [line for line in build["sudo"] if line not in bullseye_blocklist] + if any("openjdk-11" in line for line in build["sudo"]) or any("openjdk-17" in line for line in build["sudo"]): + build["sudo"] = [line for line in build["sudo"] if line not in bookworm_blocklist] if build["sudo"] == ['apt-get update']: build["sudo"] = '' diff --git a/gradlew-fdroid b/gradlew-fdroid index 65b50eb3..12319fb1 100755 --- a/gradlew-fdroid +++ b/gradlew-fdroid @@ -215,7 +215,7 @@ contains() { # (key) should accept. plugin versions are actually prefixes and catch sub- # versions as well. Pairs are taken from: # https://developer.android.com/studio/releases/gradle-plugin#updating-gradle -d_gradle_plugin_ver_k=(8.4 8.3 8.2 8.1 8.0 7.4 7.3 7.2.0 7.1 7.0 4.2 4.1 4.0 3.6 3.5 3.4 3.3 3.2 3.1 3.0 2.3 2.2 2.1.3 2.1 2.0 1.5 1.3 1.2 1.1 1.0 0.14 0.13 0.12 0.11 0.10 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2) +d_gradle_plugin_ver_k=(8.4 8.3 8.2 8.1 8.0 7.4 7.3 7.2.0 7.1 7.0 4.2 4.1 4.0 3.6 3.5 3.4 3.3 3.2 3.1 3.0 2.3 2.2 2.1.3 2.1 2.0) d_plugin_min_gradle_v=(8.6 8.4 8.2 8.0 8.0 7.5 7.4 7.3.3 7.2 7.0.2 6.7.1 6.5 6.1.1 5.6.4 5.4.1 5.1.1 4.10.1 4.6 4.4 4.1 3.3 2.14.1 2.14.1 2.12 2.12 2.4 2.4 2.3 2.2.1 2.2.1 2.1 2.1 1.12 1.12 1.12 1.11 1.10 1.9 1.8 1.6 1.6 1.4 1.4) # All gradle versions we know about diff --git a/makebuildserver b/makebuildserver index 39cbba06..bdeca683 100755 --- a/makebuildserver +++ b/makebuildserver @@ -47,35 +47,22 @@ logging.basicConfig(format=logformat, level=loglevel) tail = None -BASEBOX_DEFAULT = 'fdroid/bullseye64' -BASEBOX_VERSION_DEFAULT = "11.20221010.1" +BASEBOX_DEFAULT = 'debian/bookworm64' +BASEBOX_VERSION_DEFAULT = "12.20231211.1" BASEBOX_CHECKSUMS = { - "11.20221010.1": { + "12.20231211.1": { "libvirt": { - "box.img": "c2114aa276c176fa65b8072f5dcd1e8a6ab9f7d15fd5da791727a0164fd43254", + "box.img": "80b048312c423b7fbbbac934c348f9a29bdf2f98fae96dd13b3af70ddfe7f12a", "Vagrantfile": "f9c6fcbb47a4d0d33eb066859c8e87efd642287a638bd7da69a9e7a6f25fec47", - "metadata.json": "42b96a01106c25f3a222ddad0baead0b811cc64926f924fb836bbfa43580e646", + "metadata.json": "9d717678c19bb81d077e4e7eeb3602c168b6568cc38fee8fd3aa9d8f3cfe639b", }, "virtualbox": { - "box.ovf": "5e4de5f1f4b481b2c1917c0b2f6e6334f4741cc18c5b278e3bafb094535ff2cb", - "box.vmdk": "737053bc886037ae76bb38a1776eba2a5579d49423de990e93ef4a3f0cab4f1c", + "box.ovf": "8ad49ba600fbd1027e35c8fd41d37383c04bad30fdbafa860a29911d207a3e7b", + "box.vmdk": "57602a776860805e82bd3f61cdca9711f39781011db0f8f1dee9b2a614b2c889", "Vagrantfile": "0bbc2ae97668d8da27ab97b766752dcd0bf9e41900e21057de15a58ee7fae47d", "metadata.json": "ffdaa989f2f6932cd8042e1102371f405cc7ad38e324210a1326192e4689e83a", } }, - '11.20220317.1': { - 'libvirt': { - 'box.img': 'fbde152a2f61d191983be9d1dbeae2591af32cca1ec27daa342485d97187515e', - 'metadata.json': '42b96a01106c25f3a222ddad0baead0b811cc64926f924fb836bbfa43580e646', - 'Vagrantfile': 'f9c6fcbb47a4d0d33eb066859c8e87efd642287a638bd7da69a9e7a6f25fec47', - }, - 'virtualbox': { - 'box.ovf': 'becd5cea2666d42e12def13a91766aa0d4b0e8e6f53102486c2a6cdb4e401b08', - 'box.vmdk': '49c96a58a3ee99681d348075864a290c60a8d334fddd21be453c825fcee75eda', - 'metadata.json': 'ffdaa989f2f6932cd8042e1102371f405cc7ad38e324210a1326192e4689e83a', - 'Vagrantfile': '0bbc2ae97668d8da27ab97b766752dcd0bf9e41900e21057de15a58ee7fae47d', - } - }, } configfile = 'buildserver/Vagrantfile.yaml' diff --git a/tests/test-gradlew-fdroid b/tests/test-gradlew-fdroid index 3d6d6016..26d9bf5b 100755 --- a/tests/test-gradlew-fdroid +++ b/tests/test-gradlew-fdroid @@ -56,7 +56,7 @@ run_test osmandapp/osmand 2.2.1 cd $tmpdir mkdir -p download_cache_test/gradle/wrapper cd download_cache_test -echo 'distributionUrl=https\://services.gradle.org/distributions/gradle-0.7-bin.zip' \ +echo 'distributionUrl=https\://services.gradle.org/distributions/gradle-7.3-bin.zip' \ > gradle/wrapper/gradle-wrapper.properties printf "task helloWorld {\n\tdoLast {\n\t\tprintln '$TEST_VALUE'\n\t}\n}" > build.gradle @@ -65,11 +65,11 @@ mkdir -p $GRADLE_VERSION_DIR unset https_proxy printf "download, unpack, and run: " -download_cache_test 0.7 +download_cache_test 7.3 printf "unpack and run: " -rm -rf $GRADLE_VERSION_DIR/0.7/ -download_cache_test 0.7 +rm -rf $GRADLE_VERSION_DIR/7.3/ +download_cache_test 7.3 printf "just run: " -download_cache_test 0.7 +download_cache_test 7.3 exit $exit_value diff --git a/tests/triple-t-anysoftkeyboard/metadata/com.anysoftkeyboard.languagepack.dutch.yml b/tests/triple-t-anysoftkeyboard/metadata/com.anysoftkeyboard.languagepack.dutch.yml index 346f83c2..707bb096 100644 --- a/tests/triple-t-anysoftkeyboard/metadata/com.anysoftkeyboard.languagepack.dutch.yml +++ b/tests/triple-t-anysoftkeyboard/metadata/com.anysoftkeyboard.languagepack.dutch.yml @@ -53,7 +53,7 @@ Builds: subdir: addons/languages/dutch sudo: - apt-get update || apt-get update - - apt-get install -t stretch-backports openjdk-11-jdk-headless openjdk-11-jre-headless + - apt-get install -t bullseye openjdk-11-jdk-headless openjdk-11-jre-headless - update-alternatives --auto java gradle: - yes diff --git a/tests/triple-t-anysoftkeyboard/metadata/com.menny.android.anysoftkeyboard.yml b/tests/triple-t-anysoftkeyboard/metadata/com.menny.android.anysoftkeyboard.yml index 70a00573..4dc8d7ac 100644 --- a/tests/triple-t-anysoftkeyboard/metadata/com.menny.android.anysoftkeyboard.yml +++ b/tests/triple-t-anysoftkeyboard/metadata/com.menny.android.anysoftkeyboard.yml @@ -499,7 +499,7 @@ Builds: subdir: ime/app sudo: - apt-get update || apt-get update - - apt-get install -t stretch-backports openjdk-11-jdk-headless openjdk-11-jre-headless + - apt-get install -t bullseye openjdk-11-jdk-headless openjdk-11-jre-headless - update-alternatives --auto java gradle: - yes