Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Docker arm images #34

Open
casjay opened this issue Jan 5, 2023 · 11 comments
Open

Docker arm images #34

casjay opened this issue Jan 5, 2023 · 11 comments

Comments

@casjay
Copy link

casjay commented Jan 5, 2023

Are there any plans on updating the docker image to support ARM?

  • Jason
@eyedeekay
Copy link
Contributor

I'd love to but right now I don't know exactly how. It seems it would require creating a second Dockerfile, say Dockerfile-arm64 and configuring an automated build for it on Dockerhub, which would be tagged differrently than the main release, say i2p-2.0.0-arm64, and the key difference between the 2 is that the build container would need to be alpine for aarch64 running in Qemu inside of Docker? I don't necessarily want to do "it" i.e. enable an arm64 container, until I understand how it works during the build, and that's what I'm getting from StackOverflow about the question. Dockerhub arm builds require a container with qemu and the host OS inside it. The good news, I think, is that the work of actually launching the vm-in-container strategy has largely already been done by people with this same problem and the only difference between the 2 Dockerfiles is that one would be based on alpine, and one would be based on alpine arm.

Does that sound right? Or is there an easier way? PR's on this are very welcome if you know better than I how to do it.

@casjay
Copy link
Author

casjay commented Jan 8, 2023

I'm not sure what your build platform is but docker has a way of building for multiple architectures using the buildx plugin.
https://docs.docker.com/build/install-buildx/
https://docs.docker.com/engine/reference/commandline/buildx_build/

@eyedeekay
Copy link
Contributor

OK so if I use those then I can't have DockerHub generate an image when I push to github, but I can build an arm image and push it to Dockerhub myself? I guess arm64 support may only be for releases but that's simple enough, I'll add it to the process.

@eyedeekay
Copy link
Contributor

@casjay I've managed to learn docker buildx and make it produce linux/arm64 images. At the moment, however, both of my Raspberry Pi's are in a storage unit and I can't test it. The output looks normal:

#1 [internal] load build definition from Dockerfile
#1 transferring dockerfile: 1.01kB done
#1 DONE 0.0s

#2 [internal] load .dockerignore
#2 transferring context: 516B done
#2 DONE 0.0s

#3 [auth] jlesage/baseimage:pull token for registry-1.docker.io
#3 DONE 0.0s

#4 [internal] load metadata for docker.io/jlesage/baseimage:alpine-3.15-glibc
#4 DONE 2.0s

#5 [builder 1/4] FROM docker.io/jlesage/baseimage:alpine-3.15-glibc@sha256:6351b3455f2658814ce27bcc19412161dcdfe2987174311bfcf3794a4cb3ffb8
#5 resolve docker.io/jlesage/baseimage:alpine-3.15-glibc@sha256:6351b3455f2658814ce27bcc19412161dcdfe2987174311bfcf3794a4cb3ffb8 0.0s done
#5 DONE 0.0s

#6 [internal] load build context
#6 transferring context: 965.07kB 0.6s done
#6 DONE 0.6s

#7 [builder 2/4] WORKDIR /tmp/build
#7 CACHED

#8 [builder 3/4] COPY . .
#8 DONE 3.9s

#9 [builder 4/4] RUN add-pkg --virtual build-base gettext tar bzip2 apache-ant openjdk17     && ant preppkg-linux-only     && rm -rf pkg-temp/osid pkg-temp/lib/wrapper pkg-temp/lib/wrapper.*     && del-pkg build-base gettext tar bzip2 apache-ant openjdk17
#9 0.495 fetch https://dl-cdn.alpinelinux.org/alpine/v3.15/main/x86_64/APKINDEX.tar.gz
#9 2.100 fetch https://dl-cdn.alpinelinux.org/alpine/v3.15/community/x86_64/APKINDEX.tar.gz
#9 2.889 (1/46) Installing libgomp (10.3.1_git20211027-r0)
#9 3.090 (2/46) Installing libintl (0.21-r0)
#9 3.316 (3/46) Installing ncurses-terminfo-base (6.3_p20211120-r1)
#9 3.534 (4/46) Installing ncurses-libs (6.3_p20211120-r1)
#9 3.753 (5/46) Installing libunistring (0.9.10-r1)
#9 3.972 (6/46) Installing gettext-libs (0.21-r0)
#9 4.172 (7/46) Installing xz-libs (5.2.5-r1)
#9 4.390 (8/46) Installing libxml2 (2.9.14-r2)
#9 4.629 (9/46) Installing gettext (0.21-r0)
#9 4.891 (10/46) Installing libacl (2.2.53-r0)
#9 5.052 (11/46) Installing tar (1.34-r0)
#9 5.244 (12/46) Installing bzip2 (1.0.8-r1)
#9 5.421 (13/46) Installing java-common (0.5-r0)
#9 5.600 (14/46) Installing libffi (3.4.2-r1)
#9 5.766 (15/46) Installing p11-kit (0.24.0-r1)
#9 5.965 (16/46) Installing libtasn1 (4.18.0-r1)
#9 6.129 (17/46) Installing p11-kit-trust (0.24.0-r1)
#9 6.331 (18/46) Installing ca-certificates (20220614-r0)
#9 6.529 (19/46) Installing java-cacerts (1.0-r1)
#9 6.690 (20/46) Installing openjdk17-jre-headless (17.0.5_p8-r0)
#9 14.17 (21/46) Installing libxau (1.0.9-r0)
#9 14.32 (22/46) Installing libmd (1.0.3-r0)
#9 14.49 (23/46) Installing libbsd (0.11.3-r1)
#9 14.66 (24/46) Installing libxdmcp (1.1.3-r0)
#9 14.81 (25/46) Installing libxcb (1.14-r2)
#9 15.03 (26/46) Installing libx11 (1.7.3.1-r0)
#9 15.31 (27/46) Installing libxext (1.3.4-r0)
#9 15.47 (28/46) Installing libxi (1.8-r0)
#9 15.63 (29/46) Installing libxrender (0.9.10-r3)
#9 15.81 (30/46) Installing libxtst (1.2.3-r3)
#9 15.97 (31/46) Installing alsa-lib (1.2.5.1-r1)
#9 16.19 (32/46) Installing brotli-libs (1.0.9-r5)
#9 16.39 (33/46) Installing libbz2 (1.0.8-r1)
#9 16.55 (34/46) Installing libpng (1.6.37-r1)
#9 16.72 (35/46) Installing freetype (2.11.1-r2)
#9 16.92 (36/46) Installing giflib (5.2.1-r0)
#9 17.09 (37/46) Installing libjpeg-turbo (2.1.2-r0)
#9 17.30 (38/46) Installing lcms2 (2.12-r1)
#9 17.48 (39/46) Installing openjdk17-jre (17.0.5_p8-r0)
#9 17.80 (40/46) Installing openjdk17-jdk (17.0.5_p8-r0)
#9 17.98 (41/46) Installing apache-ant (1.10.12-r0)
#9 18.48 (42/46) Installing openjdk17-jmods (17.0.5_p8-r0)
#9 35.52 (43/46) Installing openjdk17-demos (17.0.5_p8-r0)
#9 37.23 (44/46) Installing openjdk17-doc (17.0.5_p8-r0)
#9 37.43 (45/46) Installing openjdk17 (17.0.5_p8-r0)
#9 37.60 (46/46) Installing build-base (20230117.170558)
#9 37.60 Executing busybox-1.34.1-r3.trigger
#9 37.60 Executing java-common-0.5-r0.trigger
#9 37.61 Executing ca-certificates-20220614-r0.trigger
#9 37.86 Executing glibc-ldconfig-trigger-1.0-r0.trigger
#9 37.89 OK: 308 MiB in 64 packages
#9 38.18 Buildfile: /tmp/build/build.xml
#9 38.79 
#9 38.79 checkForGit:
#9 38.79 
#9 38.79 getGitRev:
#9 38.79 
#9 38.79 getReleaseNumber:
#9 38.86      [echo] Release number: 2.1.0
#9 38.86      [echo] API version:    0.9.57
#9 38.87 
#9 38.87 getBuildNumber:
#9 38.88      [echo] Build number is 1
#9 38.88 
#9 38.88 setBuildTimestamp:
#9 38.91 
#9 38.91 disableManifestClasspath:
#9 38.91 
#9 38.91 buildProperties:
#9 38.92      [echo] JDK: Alpine 17.0.5 (OpenJDK Runtime Environment 17.0.5+8-alpine-r0)
#9 38.92      [echo] Building version 2.1.0-1 (revision unknown)
#9 38.92 
#9 38.92 buildCore:
#9 38.97 
#9 38.97 depend:
#9 39.07 
#9 39.07 compile:
#9 39.08     [mkdir] Created dir: /tmp/build/core/java/build
#9 39.08     [mkdir] Created dir: /tmp/build/core/java/build/obj
#9 39.24     [javac] Compiling 414 source files to /tmp/build/core/java/build/obj
#9 39.24     [javac] Ignoring source, target and bootclasspath as release has been set
#9 42.26     [javac] /tmp/build/core/java/src/net/i2p/I2PAppContext.java:35: warning: [deprecation] SimpleScheduler in net.i2p.util has been deprecated
#9 42.26     [javac] import net.i2p.util.SimpleScheduler;
#9 42.26     [javac]                    ^
#9 50.24     [javac] 1 warning
#9 50.24 
#9 50.24 bundle:
#9 50.24     [mkdir] Created dir: /tmp/build/core/java/build/messages-src
#9 50.29      [exec] Generating net.i2p.util.messages_ar ResourceBundle...
#9 50.39      [exec] 0 translated messages, 10 untranslated messages.
#9 50.39      [exec] 1 translated message, 9 untranslated messages.
#9 50.39      [exec] 15 translated messages.
#9 50.39      [exec] 12 translated messages, 3 untranslated messages.Generating net.i2p.util.messages_az ResourceBundle...
#9 50.39      [exec] 14 translated messages, 1 untranslated message.
#9 50.39      [exec] Generating net.i2p.util.messages_cs ResourceBundle...
#9 50.39      [exec] 15 translated messages.
#9 50.39      [exec] 
#9 50.39      [exec] Generating net.i2p.util.messages_da ResourceBundle...
#9 50.39      [exec] 14 translated messages, 1 untranslated message.Generating net.i2p.util.messages_de ResourceBundle...
#9 50.39      [exec] 11 translated messages, 4 untranslated messages.
#9 50.39      [exec] 
#9 50.39      [exec] 3 translated messages, 12 untranslated messages.Generating net.i2p.util.messages_el ResourceBundle...
#9 50.39      [exec] 
#9 50.39      [exec] Generating net.i2p.util.messages_es ResourceBundle...
#9 50.39      [exec] Generating net.i2p.util.messages_et ResourceBundle...
#9 50.39      [exec] Generating net.i2p.util.messages_fa ResourceBundle...
#9 50.39      [exec] Generating net.i2p.util.messages_fi ResourceBundle...
#9 50.49      [exec] 15 translated messages.
#9 50.49      [exec] 14 translated messages, 1 untranslated message.
#9 50.49      [exec] 15 translated messages.
#9 50.49      [exec] 15 translated messages.
#9 50.49      [exec] 15 translated messages.
#9 50.49      [exec] 15 translated messages.
#9 50.49      [exec] 15 translated messages.
#9 50.49      [exec] 15 translated messages.
#9 50.49      [exec] Generating net.i2p.util.messages_fr ResourceBundle...14 translated messages, 1 untranslated message.
#9 50.49      [exec] Generating net.i2p.util.messages_hu ResourceBundle...
#9 50.49      [exec] 
#9 50.50      [exec] Generating net.i2p.util.messages_in ResourceBundle...
#9 50.50      [exec] Generating net.i2p.util.messages_it ResourceBundle...
#9 50.50      [exec] Generating net.i2p.util.messages_ja ResourceBundle...
#9 50.50      [exec] Generating net.i2p.util.messages_ko ResourceBundle...
#9 50.50      [exec] Generating net.i2p.util.messages_ku ResourceBundle...
#9 50.50      [exec] Generating net.i2p.util.messages_nb ResourceBundle...
#9 50.50      [exec] Generating net.i2p.util.messages_nl ResourceBundle...
#9 50.60      [exec] 14 translated messages, 1 untranslated message.
#9 50.60      [exec] 15 translated messages.
#9 50.60      [exec] 14 translated messages, 1 untranslated message.
#9 50.60      [exec] 15 translated messages.
#9 50.60      [exec] 15 translated messages.
#9 50.60      [exec] 15 translated messages.
#9 50.60      [exec] 15 translated messages.
#9 50.60      [exec] 15 translated messages.
#9 50.60      [exec] 15 translated messages.
#9 50.60      [exec] Generating net.i2p.util.messages_pl ResourceBundle...
#9 50.60      [exec] Generating net.i2p.util.messages_pt ResourceBundle...
#9 50.60      [exec] Generating net.i2p.util.messages_pt_BR ResourceBundle...
#9 50.60      [exec] Generating net.i2p.util.messages_ro ResourceBundle...
#9 50.60      [exec] Generating net.i2p.util.messages_ru ResourceBundle...
#9 50.60      [exec] Generating net.i2p.util.messages_sl ResourceBundle...
#9 50.60      [exec] Generating net.i2p.util.messages_sv ResourceBundle...
#9 50.61      [exec] Generating net.i2p.util.messages_tk ResourceBundle...
#9 50.61      [exec] Generating net.i2p.util.messages_tr ResourceBundle...
#9 50.66      [exec] Generating net.i2p.util.messages_uk ResourceBundle...
#9 50.66      [exec] Generating net.i2p.util.messages_vi ResourceBundle...
#9 50.66      [exec] Generating net.i2p.util.messages_zh ResourceBundle...
#9 50.66      [exec] Generating net.i2p.util.messages_zh_TW ResourceBundle...
#9 50.66      [exec] 15 translated messages.
#9 50.66      [exec] 15 translated messages.
#9 50.66      [exec] 6 translated messages, 4 untranslated messages.
#9 50.66      [exec] 14 translated messages, 1 untranslated message.
#9 50.66      [exec] 14 translated messages, 1 untranslated message.
#9 50.67     [javac] Compiling 32 source files to /tmp/build/core/java/build/obj
#9 50.67     [javac] Ignoring source, target and bootclasspath as release has been set
#9 51.01     [javac] Note: Some input files use unchecked or unsafe operations.
#9 51.01     [javac] Note: Recompile with -Xlint:unchecked for details.
#9 51.01 
#9 51.01 jarUpToDate:
#9 51.02 
#9 51.02 listChangedFiles:
#9 51.02 
#9 51.02 jar:
#9 51.02     [mkdir] Created dir: /tmp/build/core/java/build/obj/net/i2p/util/resources
#9 51.03      [copy] Copying 2 files to /tmp/build/core/java/build/obj/net/i2p/util/resources
#9 51.16       [jar] Building jar: /tmp/build/core/java/build/i2p.jar
#9 51.75      [copy] Copying 1 file to /tmp/build/build
#9 51.75 
#9 51.75 buildrouter:
#9 51.78 
#9 51.78 depend:
#9 51.84 
#9 51.84 dependVersion:
#9 51.87 
#9 51.87 compile:
#9 51.87     [mkdir] Created dir: /tmp/build/router/java/build
#9 51.87     [mkdir] Created dir: /tmp/build/router/java/build/obj
#9 52.06     [javac] Compiling 533 source files to /tmp/build/router/java/build/obj
#9 52.06     [javac] Ignoring source, target and bootclasspath as release has been set
#9 62.84     [javac] Creating empty /tmp/build/router/java/build/obj/com/southernstorm/noise/crypto/package-info.class
#9 62.84     [javac] Creating empty /tmp/build/router/java/build/obj/com/southernstorm/noise/protocol/package-info.class
#9 62.84 
#9 62.84 bundle:
#9 62.84     [mkdir] Created dir: /tmp/build/router/java/build/messages-src
#9 62.95      [exec] Generating net.i2p.router.util.messages_ar ResourceBundle...
#9 62.95      [exec] Generating net.i2p.router.util.messages_az ResourceBundle...
#9 62.95      [exec] Generating net.i2p.router.util.messages_cs ResourceBundle...
#9 62.95      [exec] 19 translated messages, 3 fuzzy translations, 13 untranslated messages.
#9 62.95      [exec] 5 translated messages, 3 fuzzy translations, 27 untranslated messages.
#9 63.05      [exec] Generating net.i2p.router.util.messages_da ResourceBundle...
#9 63.05      [exec] Generating net.i2p.router.util.messages_de ResourceBundle...
#9 63.05      [exec] 35 translated messages.
#9 63.05      [exec] 35 translated messages.
#9 63.15      [exec] Generating net.i2p.router.util.messages_el ResourceBundle...
#9 63.15      [exec] Generating net.i2p.router.util.messages_es ResourceBundle...
#9 63.15      [exec] 35 translated messages.
#9 63.15      [exec] 20 translated messages, 2 fuzzy translations, 13 untranslated messages.
#9 63.25      [exec] Generating net.i2p.router.util.messages_es_AR ResourceBundle...
#9 63.25      [exec] Generating net.i2p.router.util.messages_et ResourceBundle...
#9 63.26      [exec] 35 translated messages.
#9 63.26      [exec] 35 translated messages.
#9 63.26      [exec] 20 translated messages, 1 fuzzy translation, 14 untranslated messages.
#9 63.35      [exec] Generating net.i2p.router.util.messages_fa ResourceBundle...
#9 63.35      [exec] Generating net.i2p.router.util.messages_fi ResourceBundle...
#9 63.36      [exec] 4 translated messages, 31 untranslated messages.
#9 63.36      [exec] 33 translated messages, 2 fuzzy translations.
#9 63.46      [exec] Generating net.i2p.router.util.messages_fr ResourceBundle...
#9 63.46      [exec] Generating net.i2p.router.util.messages_hu ResourceBundle...
#9 63.46      [exec] Generating net.i2p.router.util.messages_in ResourceBundle...
#9 63.46      [exec] 35 translated messages.
#9 63.46      [exec] 35 translated messages.
#9 63.46      [exec] 35 translated messages.
#9 63.56      [exec] Generating net.i2p.router.util.messages_it ResourceBundle...
#9 63.56      [exec] Generating net.i2p.router.util.messages_ja ResourceBundle...
#9 63.56      [exec] Generating net.i2p.router.util.messages_ko ResourceBundle...
#9 63.56      [exec] Generating net.i2p.router.util.messages_ku ResourceBundle...
#9 63.56      [exec] Generating net.i2p.router.util.messages_nb ResourceBundle...
#9 63.56      [exec] 35 translated messages.
#9 63.56      [exec] 35 translated messages.
#9 63.56      [exec] 35 translated messages.
#9 63.56      [exec] 31 translated messages, 4 untranslated messages.
#9 63.66      [exec] Generating net.i2p.router.util.messages_nl ResourceBundle...
#9 63.66      [exec] Generating net.i2p.router.util.messages_pl ResourceBundle...
#9 63.66      [exec] Generating net.i2p.router.util.messages_pt ResourceBundle...
#9 63.66      [exec] Generating net.i2p.router.util.messages_pt_BR ResourceBundle...
#9 63.66      [exec] Generating net.i2p.router.util.messages_ro ResourceBundle...
#9 63.66      [exec] Generating net.i2p.router.util.messages_ru ResourceBundle...
#9 63.66      [exec] Generating net.i2p.router.util.messages_sl ResourceBundle...
#9 63.66      [exec] Generating net.i2p.router.util.messages_sv ResourceBundle...
#9 63.66      [exec] 34 translated messages, 1 fuzzy translation.
#9 63.66      [exec] 35 translated messages.
#9 63.66      [exec] 35 translated messages.
#9 63.66      [exec] 35 translated messages.
#9 63.66      [exec] 35 translated messages.
#9 63.66      [exec] 35 translated messages.
#9 63.66      [exec] 35 translated messages.
#9 63.66      [exec] 35 translated messages.
#9 63.75      [exec] Generating net.i2p.router.util.messages_tk ResourceBundle...
#9 63.75      [exec] Generating net.i2p.router.util.messages_tr ResourceBundle...
#9 63.75      [exec] Generating net.i2p.router.util.messages_uk ResourceBundle...
#9 63.75      [exec] Generating net.i2p.router.util.messages_vi ResourceBundle...
#9 63.75      [exec] Generating net.i2p.router.util.messages_zh ResourceBundle...
#9 63.75      [exec] Generating net.i2p.router.util.messages_zh_TW ResourceBundle...
#9 63.75      [exec] 35 translated messages.
#9 63.75      [exec] 35 translated messages.
#9 63.75      [exec] 35 translated messages.
#9 63.75      [exec] 35 translated messages.
#9 63.75      [exec] 18 translated messages, 2 fuzzy translations, 15 untranslated messages.
#9 63.75      [exec] 35 translated messages.
#9 63.75      [exec] 35 translated messages.
#9 63.75     [javac] Compiling 33 source files to /tmp/build/router/java/build/obj
#9 63.75     [javac] Ignoring source, target and bootclasspath as release has been set
#9 63.98     [javac] Note: Some input files use unchecked or unsafe operations.
#9 63.98     [javac] Note: Recompile with -Xlint:unchecked for details.
#9 63.98 
#9 63.98 jarUpToDate:
#9 63.98 
#9 63.98 listChangedFiles:
#9 63.98 
#9 63.98 jar:
#9 63.98     [mkdir] Created dir: /tmp/build/router/java/build/obj/net/i2p/router/util/resources
#9 63.98      [copy] Copying 1 file to /tmp/build/router/java/build/obj/net/i2p/router/util/resources
#9 64.03       [jar] Building jar: /tmp/build/router/java/build/router.jar
#9 64.54      [copy] Copying 1 file to /tmp/build/build
#9 64.55 
#9 64.55 buildSystray:
#9 64.55 
#9 64.55 depend:
#9 64.59    [depend] Deleted 3 out of date files in 0 seconds
#9 64.59 
#9 64.59 compile:
#9 64.59     [javac] Compiling 1 source file to /tmp/build/apps/systray/java/build/obj
#9 64.59     [javac] Ignoring source, target and bootclasspath as release has been set
#9 64.71 
#9 64.71 jarUpToDate:
#9 64.71 
#9 64.71 listChangedFiles:
#9 64.71 
#9 64.71 jar:
#9 64.72       [jar] Building jar: /tmp/build/apps/systray/java/build/systray.jar
#9 64.74      [copy] Copying 1 file to /tmp/build/build
#9 64.74 
#9 64.74 buildDesktopGui:
#9 64.75 
#9 64.75 init:
#9 64.75     [mkdir] Created dir: /tmp/build/apps/desktopgui/build
#9 64.75     [mkdir] Created dir: /tmp/build/apps/desktopgui/build/messages-src
#9 64.75 
#9 64.75 compile:
#9 64.75     [javac] Compiling 7 source files to /tmp/build/apps/desktopgui/build
#9 64.76     [javac] Ignoring source, target and bootclasspath as release has been set
#9 65.11 
#9 65.11 bundle:
#9 65.22      [exec] Generating net.i2p.desktopgui.messages_ar ResourceBundle...
#9 65.22      [exec] Generating net.i2p.desktopgui.messages_az ResourceBundle...
#9 65.22      [exec] 15 translated messages.
#9 65.22      [exec] 15 translated messages.
#9 65.22      [exec] 9 translated messages, 8 untranslated messages.
#9 65.22      [exec] 7 translated messages, 8 untranslated messages.
#9 65.22      [exec] 17 translated messages.
#9 65.22      [exec] 10 translated messages, 5 untranslated messages.
#9 65.22      [exec] Generating net.i2p.desktopgui.messages_bg ResourceBundle...
#9 65.22      [exec] Generating net.i2p.desktopgui.messages_ca ResourceBundle...
#9 65.22      [exec] Generating net.i2p.desktopgui.messages_cs ResourceBundle...
#9 65.22      [exec] Generating net.i2p.desktopgui.messages_da ResourceBundle...
#9 65.22      [exec] 16 translated messages, 1 untranslated message.Generating net.i2p.desktopgui.messages_de ResourceBundle...
#9 65.22      [exec] Generating net.i2p.desktopgui.messages_el ResourceBundle...
#9 65.22      [exec] Generating net.i2p.desktopgui.messages_es ResourceBundle...
#9 65.22      [exec] 
#9 65.22      [exec] 15 translated messages.
#9 65.32      [exec] Generating net.i2p.desktopgui.messages_es_AR ResourceBundle...
#9 65.32      [exec] Generating net.i2p.desktopgui.messages_fa ResourceBundle...
#9 65.32      [exec] 17 translated messages.
#9 65.32      [exec] 17 translated messages.
#9 65.32      [exec] 11 translated messages, 4 untranslated messages.
#9 65.32      [exec] 15 translated messages.
#9 65.32      [exec] 17 translated messages.
#9 65.32      [exec] 15 translated messages.
#9 65.32      [exec] 17 translated messages.
#9 65.32      [exec] 15 translated messages.
#9 65.32      [exec] 15 translated messages.
#9 65.32      [exec] Generating net.i2p.desktopgui.messages_fi ResourceBundle...
#9 65.32      [exec] Generating net.i2p.desktopgui.messages_fr ResourceBundle...
#9 65.32      [exec] Generating net.i2p.desktopgui.messages_gl ResourceBundle...
#9 65.32      [exec] Generating net.i2p.desktopgui.messages_hu ResourceBundle...
#9 65.32      [exec] Generating net.i2p.desktopgui.messages_in ResourceBundle...
#9 65.32      [exec] Generating net.i2p.desktopgui.messages_it ResourceBundle...
#9 65.32      [exec] Generating net.i2p.desktopgui.messages_ja ResourceBundle...
#9 65.42      [exec] 17 translated messages.
#9 65.42      [exec] 15 translated messages.
#9 65.42      [exec] 15 translated messages.
#9 65.42      [exec] 7 translated messages, 8 untranslated messages.
#9 65.42      [exec] 15 translated messages.
#9 65.42      [exec] 15 translated messages.
#9 65.42      [exec] 17 translated messages.
#9 65.42      [exec] 16 translated messages, 1 untranslated message.
#9 65.42      [exec] 16 translated messages, 1 untranslated message.
#9 65.42      [exec] Generating net.i2p.desktopgui.messages_ko ResourceBundle...
#9 65.42      [exec] Generating net.i2p.desktopgui.messages_ku ResourceBundle...
#9 65.42      [exec] Generating net.i2p.desktopgui.messages_mg ResourceBundle...
#9 65.42      [exec] Generating net.i2p.desktopgui.messages_nb ResourceBundle...
#9 65.42      [exec] Generating net.i2p.desktopgui.messages_nl ResourceBundle...
#9 65.42      [exec] Generating net.i2p.desktopgui.messages_pl ResourceBundle...
#9 65.42      [exec] Generating net.i2p.desktopgui.messages_pt ResourceBundle...
#9 65.42      [exec] Generating net.i2p.desktopgui.messages_pt_BR ResourceBundle...
#9 65.42      [exec] Generating net.i2p.desktopgui.messages_ro ResourceBundle...
#9 65.52      [exec] 15 translated messages.
#9 65.52      [exec] 15 translated messages.
#9 65.52      [exec] 8 translated messages, 7 untranslated messages.
#9 65.52      [exec] 14 translated messages, 3 untranslated messages.
#9 65.52      [exec] 17 translated messages.
#9 65.52      [exec] 15 translated messages.
#9 65.52      [exec] 15 translated messages.
#9 65.52      [exec] 15 translated messages.
#9 65.52      [exec] 17 translated messages.
#9 65.52      [exec] Generating net.i2p.desktopgui.messages_ru ResourceBundle...
#9 65.52      [exec] Generating net.i2p.desktopgui.messages_sk ResourceBundle...
#9 65.52      [exec] Generating net.i2p.desktopgui.messages_sl ResourceBundle...
#9 65.52      [exec] Generating net.i2p.desktopgui.messages_sq ResourceBundle...
#9 65.52      [exec] Generating net.i2p.desktopgui.messages_sr ResourceBundle...
#9 65.52      [exec] Generating net.i2p.desktopgui.messages_sv ResourceBundle...
#9 65.52      [exec] Generating net.i2p.desktopgui.messages_tk ResourceBundle...
#9 65.52      [exec] Generating net.i2p.desktopgui.messages_tr ResourceBundle...
#9 65.52      [exec] Generating net.i2p.desktopgui.messages_uk ResourceBundle...
#9 65.56      [exec] Generating net.i2p.desktopgui.messages_vi ResourceBundle...
#9 65.56      [exec] Generating net.i2p.desktopgui.messages_zh ResourceBundle...
#9 65.56      [exec] Generating net.i2p.desktopgui.messages_zh_TW ResourceBundle...
#9 65.56      [exec] 15 translated messages.
#9 65.56      [exec] 8 translated messages, 7 untranslated messages.
#9 65.56      [exec] 17 translated messages.
#9 65.56      [exec] 17 translated messages.
#9 65.57     [javac] Compiling 39 source files to /tmp/build/apps/desktopgui/build
#9 65.57     [javac] Ignoring source, target and bootclasspath as release has been set
#9 65.80     [javac] Note: Some input files use unchecked or unsafe operations.
#9 65.80     [javac] Note: Recompile with -Xlint:unchecked for details.
#9 65.80 
#9 65.80 jarUpToDate:
#9 65.81 
#9 65.81 listChangedFiles:
#9 65.81 
#9 65.81 jar:
#9 65.81      [copy] Copying 1 file to /tmp/build/apps/desktopgui/build/desktopgui/resources/images
#9 65.81      [copy] Copying 1 file to /tmp/build/apps/desktopgui/build/desktopgui/resources/images
#9 65.82      [copy] Copying 1 file to /tmp/build/apps/desktopgui/build/desktopgui/resources/images
#9 65.82       [jar] Building jar: /tmp/build/apps/desktopgui/dist/desktopgui.jar
#9 65.88      [copy] Copying 1 file to /tmp/build/build
#9 65.88 
#9 65.88 buildJetty:
#9 65.89 
#9 65.89 builddep:
#9 65.89 
#9 65.89 ensureJettylib1:
#9 65.89 
#9 65.89 mkJettylibdir:
#9 65.89 
#9 65.89 fetchJettylib:
#9 65.89 
#9 65.89 verifyJettylib:
#9 65.89 
#9 65.89 extractJettylib:
#9 65.89 
#9 65.89 compilePatches:
#9 65.89     [mkdir] Created dir: /tmp/build/apps/jetty/build
#9 65.89     [mkdir] Created dir: /tmp/build/apps/jetty/build/objPatches
#9 65.89     [javac] Compiling 1 source file to /tmp/build/apps/jetty/build/objPatches
#9 65.90     [javac] Ignoring source, target and bootclasspath as release has been set
#9 65.94 
#9 65.94 jarPatchesUpToDate:
#9 65.95 
#9 65.95 jarPatches:
#9 65.95       [jar] Building jar: /tmp/build/apps/jetty/build/jetty-util-patch.jar
#9 65.95 
#9 65.95 buildPatches:
#9 65.95 
#9 65.95 copyJettylib1:
#9 66.10       [jar] Building jar: /tmp/build/apps/jetty/jettylib/jetty-util.jar
#9 66.25       [jar] Building jar: /tmp/build/apps/jetty/jettylib/jetty-java5-threadpool.jar
#9 66.27       [jar] Building jar: /tmp/build/apps/jetty/jettylib/jetty-sslengine.jar
#9 66.27 
#9 66.27 copyTomcatLib1:
#9 66.27 
#9 66.27 copyJettylib2:
#9 66.32       [jar] Building jar: /tmp/build/apps/jetty/jettylib/javax.servlet.jar
#9 66.45       [jar] module-info.class already added, skipping
#9 66.45 
#9 66.45 copyJettylib3:
#9 66.45 
#9 66.45 copyTomcatLib2:
#9 66.50       [jar] Building jar: /tmp/build/apps/jetty/jettylib/commons-el.jar
#9 66.54       [jar] module-info.class already added, skipping
#9 66.72       [jar] Building jar: /tmp/build/apps/jetty/jettylib/jasper-runtime.jar
#9 66.75       [jar] META-INF/services/javax.servlet.ServletContainerInitializer already added, skipping
#9 66.89       [jar] module-info.class already added, skipping
#9 66.90       [jar] module-info.class already added, skipping
#9 66.95       [jar] module-info.class already added, skipping
#9 67.01 
#9 67.01 copyTomcatLib3:
#9 67.01       [jar] Building jar: /tmp/build/apps/jetty/jettylib/jasper-compiler.jar
#9 67.03 
#9 67.03 copyTomcatLib:
#9 67.03 
#9 67.03 copyJettylib:
#9 67.03 
#9 67.03 ensureJettylib:
#9 67.03 
#9 67.03 depend:
#9 67.05 
#9 67.05 compile:
#9 67.05     [mkdir] Created dir: /tmp/build/apps/jetty/build/obj
#9 67.06     [javac] Compiling 14 source files to /tmp/build/apps/jetty/build/obj
#9 67.06     [javac] Ignoring source, target and bootclasspath as release has been set
#9 67.20     [javac] /tmp/build/apps/jetty/java/src/net/i2p/jetty/I2PRequestLog.java:27: warning: [deprecation] PathMap in org.eclipse.jetty.http has been deprecated
#9 67.20     [javac] import org.eclipse.jetty.http.PathMap;
#9 67.20     [javac]                              ^
#9 67.33     [javac] /tmp/build/apps/jetty/java/src/net/i2p/jetty/I2PRequestLog.java:83: warning: [deprecation] PathMap in org.eclipse.jetty.http has been deprecated
#9 67.33     [javac]     private transient PathMap<String> _ignorePathMap;
#9 67.33     [javac]                       ^
#9 67.36     [javac] /tmp/build/apps/jetty/java/src/net/i2p/jetty/I2PRequestLog.java:486: warning: [deprecation] PathMap in org.eclipse.jetty.http has been deprecated
#9 67.36     [javac]             _ignorePathMap = new PathMap<String>();
#9 67.36     [javac]                                  ^
#9 67.49     [javac] 3 warnings
#9 67.50 
#9 67.50 jarUpToDate:
#9 67.50 
#9 67.50 listChangedFiles:
#9 67.50 
#9 67.50 jar:
#9 67.50      [copy] Copying 1 file to /tmp/build/apps/jetty/build/obj
#9 67.50       [jar] Building jar: /tmp/build/apps/jetty/jettylib/jetty-i2p.jar
#9 67.53 
#9 67.53 build:
#9 67.53      [copy] Copying 22 files to /tmp/build/build
#9 67.54 
#9 67.54 buildJrobin:
#9 67.55 
#9 67.55 depend:
#9 68.04 
#9 68.04 compile:
#9 68.05 
#9 68.05 jarUpToDate:
#9 68.08 
#9 68.08 listChangedFiles:
#9 68.08 
#9 68.08 jar:
#9 68.08      [copy] Copying 1 file to /tmp/build/build
#9 68.08 
#9 68.08 buildRouterConsole:
#9 68.11 
#9 68.11 prepare:
#9 68.11 
#9 68.11 depend:
#9 70.20    [depend] Deleted 225 out of date files in 2 seconds
#9 70.20 
#9 70.20 dependVersion:
#9 70.20 
#9 70.20 compile:
#9 70.22     [javac] Compiling 116 source files to /tmp/build/apps/routerconsole/java/build/obj
#9 70.22     [javac] Ignoring source, target and bootclasspath as release has been set
#9 74.73 
#9 74.73 bundle-news:
#9 74.75 
#9 74.75 bundle-countries:
#9 74.76 
#9 74.76 jarUpToDate:
#9 74.82 
#9 74.82 listChangedFiles:
#9 74.82 
#9 74.82 jar1:
#9 74.86       [jar] Building jar: /tmp/build/apps/routerconsole/java/build/routerconsole.jar
#9 75.74 
#9 75.74 precompilejsp:
#9 75.74 
#9 75.74 warUpToDate:
#9 75.80 
#9 75.80 listChangedFiles2:
#9 75.80 
#9 75.80 war:
#9 75.80      [copy] Copying 1 file to /tmp/build/apps/routerconsole/jsp
#9 75.83       [war] Building war: /tmp/build/apps/routerconsole/java/build/routerconsole.war
#9 76.10    [delete] Deleting: /tmp/build/apps/routerconsole/jsp/favicon.ico
#9 76.10 
#9 76.10 bundle:
#9 76.19 
#9 76.19 jar:
#9 76.19 
#9 76.19 buildMinistreaming:
#9 76.19 
#9 76.19 depend:
#9 76.30 
#9 76.30 compile:
#9 76.30     [mkdir] Created dir: /tmp/build/apps/ministreaming/java/build
#9 76.30     [mkdir] Created dir: /tmp/build/apps/ministreaming/java/build/obj
#9 76.30     [javac] Compiling 13 source files to /tmp/build/apps/ministreaming/java/build/obj
#9 76.30     [javac] Ignoring source, target and bootclasspath as release has been set
#9 76.45 
#9 76.45 bundle:
#9 76.45     [mkdir] Created dir: /tmp/build/apps/ministreaming/java/build/messages-src
#9 76.55      [exec] Generating net.i2p.client.streaming.messages_ar ResourceBundle...18 translated messages.
#9 76.55      [exec] 
#9 76.55      [exec] 18 translated messages.
#9 76.55      [exec] 15 translated messages, 3 untranslated messages.
#9 76.55      [exec] 18 translated messages.
#9 76.55      [exec] Generating net.i2p.client.streaming.messages_az ResourceBundle...
#9 76.55      [exec] Generating net.i2p.client.streaming.messages_ca ResourceBundle...
#9 76.55      [exec] 18 translated messages.Generating net.i2p.client.streaming.messages_cs ResourceBundle...
#9 76.55      [exec] Generating net.i2p.client.streaming.messages_de ResourceBundle...
#9 76.55      [exec] 
#9 76.55      [exec] 18 translated messages.
#9 76.55      [exec] 18 translated messages.Generating net.i2p.client.streaming.messages_es ResourceBundle...
#9 76.55      [exec] 9 translated messages, 9 untranslated messages.
#9 76.55      [exec] 
#9 76.55      [exec] Generating net.i2p.client.streaming.messages_es_AR ResourceBundle...
#9 76.55      [exec] Generating net.i2p.client.streaming.messages_fa ResourceBundle...
#9 76.56      [exec] Generating net.i2p.client.streaming.messages_fi ResourceBundle...
#9 76.66      [exec] 13 translated messages, 5 untranslated messages.
#9 76.66      [exec] 18 translated messages.
#9 76.66      [exec] 18 translated messages.
#9 76.66      [exec] 18 translated messages.
#9 76.66      [exec] 18 translated messages.
#9 76.66      [exec] 14 translated messages, 4 untranslated messages.
#9 76.66      [exec] 18 translated messages.
#9 76.66      [exec] 18 translated messages.
#9 76.66      [exec] Generating net.i2p.client.streaming.messages_fr ResourceBundle...
#9 76.66      [exec] Generating net.i2p.client.streaming.messages_gl ResourceBundle...
#9 76.66      [exec] Generating net.i2p.client.streaming.messages_hu ResourceBundle...
#9 76.66      [exec] 18 translated messages.Generating net.i2p.client.streaming.messages_in ResourceBundle...
#9 76.66      [exec] 
#9 76.66      [exec] Generating net.i2p.client.streaming.messages_it ResourceBundle...
#9 76.66      [exec] Generating net.i2p.client.streaming.messages_ko ResourceBundle...
#9 76.66      [exec] Generating net.i2p.client.streaming.messages_nb ResourceBundle...
#9 76.66      [exec] Generating net.i2p.client.streaming.messages_nl ResourceBundle...
#9 76.66      [exec] Generating net.i2p.client.streaming.messages_pl ResourceBundle...
#9 76.76      [exec] 18 translated messages.
#9 76.76      [exec] 18 translated messages.
#9 76.76      [exec] 18 translated messages.
#9 76.76      [exec] 18 translated messages.
#9 76.76      [exec] 18 translated messages.
#9 76.76      [exec] 18 translated messages.
#9 76.76      [exec] 18 translated messages.
#9 76.76      [exec] 18 translated messages.
#9 76.76      [exec] 18 translated messages.
#9 76.76      [exec] Generating net.i2p.client.streaming.messages_pt ResourceBundle...
#9 76.76      [exec] Generating net.i2p.client.streaming.messages_pt_BR ResourceBundle...
#9 76.76      [exec] Generating net.i2p.client.streaming.messages_ro ResourceBundle...
#9 76.76      [exec] Generating net.i2p.client.streaming.messages_ru ResourceBundle...
#9 76.76      [exec] Generating net.i2p.client.streaming.messages_sl ResourceBundle...
#9 76.76      [exec] Generating net.i2p.client.streaming.messages_sv ResourceBundle...
#9 76.76      [exec] Generating net.i2p.client.streaming.messages_tk ResourceBundle...
#9 76.76      [exec] Generating net.i2p.client.streaming.messages_tr ResourceBundle...
#9 76.79      [exec] Generating net.i2p.client.streaming.messages_uk ResourceBundle...
#9 76.79      [exec] Generating net.i2p.client.streaming.messages_zh ResourceBundle...
#9 76.79      [exec] Generating net.i2p.client.streaming.messages_zh_TW ResourceBundle...
#9 76.79      [exec] 11 translated messages, 7 untranslated messages.
#9 76.79      [exec] 18 translated messages.
#9 76.79      [exec] 18 translated messages.
#9 76.81     [javac] Compiling 29 source files to /tmp/build/apps/ministreaming/java/build/obj
#9 76.81     [javac] Ignoring source, target and bootclasspath as release has been set
#9 76.98     [javac] Note: Some input files use unchecked or unsafe operations.
#9 76.98     [javac] Note: Recompile with -Xlint:unchecked for details.
#9 76.98 
#9 76.98 jarUpToDate:
#9 76.98 
#9 76.98 listChangedFiles:
#9 76.98 
#9 76.98 jar:
#9 76.99       [jar] Building jar: /tmp/build/apps/ministreaming/java/build/mstreaming.jar
#9 77.01      [copy] Copying 1 file to /tmp/build/build
#9 77.01 
#9 77.01 buildStreaming:
#9 77.02 
#9 77.02 builddep:
#9 77.02 
#9 77.02 depend:
#9 77.25    [depend] Deleted 62 out of date files in 0 seconds
#9 77.25 
#9 77.25 compile:
#9 77.26     [javac] Compiling 35 source files to /tmp/build/apps/streaming/java/build/obj
#9 77.26     [javac] Ignoring source, target and bootclasspath as release has been set
#9 77.86 
#9 77.86 jarUpToDate:
#9 77.87 
#9 77.87 listChangedFiles:
#9 77.87 
#9 77.87 jar:
#9 77.88       [jar] Building jar: /tmp/build/apps/streaming/java/build/streaming.jar
#9 77.93      [copy] Copying 1 file to /tmp/build/build
#9 77.93 
#9 77.93 buildImagegen:
#9 77.93 
#9 77.93 build:
#9 77.93 
#9 77.93 builddep:
#9 77.93 
#9 77.93 depend:
#9 77.96 
#9 77.96 compile:
#9 77.96 
#9 77.96 jarUpToDate:
#9 77.96 
#9 77.96 listChangedFiles:
#9 77.96 
#9 77.96 jar:
#9 77.96 
#9 77.96 build:
#9 77.97 
#9 77.97 builddep:
#9 77.97 
#9 77.97 depend:
#9 78.01 
#9 78.01 compile:
#9 78.02 
#9 78.02 jarUpToDate:
#9 78.02 
#9 78.02 listChangedFiles:
#9 78.02 
#9 78.02 jar:
#9 78.03 
#9 78.03 build:
#9 78.03 
#9 78.03 builddep:
#9 78.03 
#9 78.03 depend:
#9 78.04 
#9 78.04 compile:
#9 78.04 
#9 78.04 warUpToDate:
#9 78.05 
#9 78.05 war:
#9 78.06       [war] Building war: /tmp/build/apps/imagegen/imagegen/build/imagegen.war
#9 78.10 
#9 78.10 build:
#9 78.10      [copy] Copying 1 file to /tmp/build/build
#9 78.10 
#9 78.10 buildI2PTunnel:
#9 78.12 
#9 78.12 builddep:
#9 78.12 
#9 78.12 depend:
#9 78.55    [depend] Deleted 122 out of date files in 0 seconds
#9 78.55 
#9 78.55 compile:
#9 78.57     [javac] Compiling 67 source files to /tmp/build/apps/i2ptunnel/java/build/obj
#9 78.57     [javac] Ignoring source, target and bootclasspath as release has been set
#9 79.69 
#9 79.69 bundle-proxy:
#9 79.71 
#9 79.71 jarUpToDate:
#9 79.73 
#9 79.73 listChangedFiles:
#9 79.73 
#9 79.73 jar:
#9 79.73      [gzip] Nothing to do: /tmp/build/apps/i2ptunnel/java/build/obj/net/i2p/i2ptunnel/resources/themes/console/light/proxy.css.gz is up to date.
#9 79.73      [gzip] Nothing to do: /tmp/build/apps/i2ptunnel/java/build/obj/net/i2p/i2ptunnel/resources/themes/console/dark/proxy.css.gz is up to date.
#9 79.74       [jar] Building jar: /tmp/build/apps/i2ptunnel/java/build/i2ptunnel.jar
#9 79.87 
#9 79.87 compileWeb:
#9 79.87     [javac] Compiling 2 source files to /tmp/build/apps/i2ptunnel/java/build/obj
#9 79.87     [javac] Ignoring source, target and bootclasspath as release has been set
#9 80.04 
#9 80.04 jarTempBeans:
#9 80.05       [jar] Building jar: /tmp/build/apps/i2ptunnel/java/build/temp-beans.jar
#9 80.07 
#9 80.07 precompilejsp:
#9 80.07 
#9 80.07 bundle:
#9 80.08 
#9 80.08 warUpToDate:
#9 80.10 
#9 80.10 listChangedFiles2:
#9 80.10 
#9 80.10 war:
#9 80.10      [copy] Copying 3 files to /tmp/build/apps/i2ptunnel/jsp/WEB-INF/classes/net/i2p/i2ptunnel/ui
#9 80.10      [copy] Copying 4 files to /tmp/build/apps/i2ptunnel/jsp/WEB-INF/classes/net/i2p/i2ptunnel/web
#9 80.11       [war] Building war: /tmp/build/apps/i2ptunnel/java/build/i2ptunnel.war
#9 80.26 
#9 80.26 build:
#9 80.26      [copy] Copying 1 file to /tmp/build/build
#9 80.26      [copy] Copying 1 file to /tmp/build/build
#9 80.26 
#9 80.26 buildAddressbook:
#9 80.27 
#9 80.27 init:
#9 80.27     [mkdir] Created dir: /tmp/build/apps/addressbook/build
#9 80.27 
#9 80.27 depend:
#9 80.34 
#9 80.34 warUpToDate:
#9 80.34 
#9 80.34 compile:
#9 80.35     [javac] Compiling 31 source files to /tmp/build/apps/addressbook/build
#9 80.35     [javac] Ignoring source, target and bootclasspath as release has been set
#9 80.87 
#9 80.87 changes:
#9 80.87 
#9 80.87 jar:
#9 80.87       [jar] Building jar: /tmp/build/apps/addressbook/dist/addressbook.jar
#9 80.90 
#9 80.90 emptyWar:
#9 80.91       [jar] Building jar: /tmp/build/apps/addressbook/dist/addressbook.war
#9 80.91 
#9 80.91 all:
#9 80.91      [copy] Copying 1 file to /tmp/build/build
#9 80.91      [copy] Copying 1 file to /tmp/build/build
#9 80.91 
#9 80.91 builddepSmall:
#9 80.91 
#9 80.91 buildSAM:
#9 80.92 
#9 80.92 depend:
#9 81.24    [depend] Deleted 58 out of date files in 0 seconds
#9 81.24 
#9 81.24 compile:
#9 81.26     [javac] Compiling 27 source files to /tmp/build/apps/sam/java/build/obj
#9 81.27     [javac] Ignoring source, target and bootclasspath as release has been set
#9 82.27 
#9 82.27 jarUpToDate:
#9 82.28 
#9 82.28 listChangedFiles:
#9 82.28 
#9 82.28 jar:
#9 82.29       [jar] Building jar: /tmp/build/apps/sam/java/build/sam.jar
#9 82.34      [copy] Copying 1 file to /tmp/build/build
#9 82.34 
#9 82.34 buildSusiMail:
#9 82.35 
#9 82.35 depend:
#9 82.80    [depend] Deleted 59 out of date files in 0 seconds
#9 82.80 
#9 82.80 compile:
#9 82.81     [javac] Compiling 29 source files to /tmp/build/apps/susimail/src/WEB-INF/classes
#9 82.81     [javac] Ignoring source, target and bootclasspath as release has been set
#9 83.43 
#9 83.43 bundle:
#9 83.43     [mkdir] Created dir: /tmp/build/apps/susimail/build/messages-src
#9 83.44 
#9 83.44 warUpToDate:
#9 83.46 
#9 83.46 listChangedFiles:
#9 83.46 
#9 83.46 war:
#9 83.47       [war] Building war: /tmp/build/apps/susimail/susimail.war
#9 83.58      [copy] Copying 1 file to /tmp/build/build
#9 83.58 
#9 83.58 buildSusiDNS:
#9 83.59 
#9 83.59 compile:
#9 83.60 
#9 83.60 verifylibtaglibs:
#9 83.60 
#9 83.60 precompilejsp:
#9 83.60 
#9 83.60 bundle:
#9 83.61 
#9 83.61 warUpToDate:
#9 83.62 
#9 83.62 war:
#9 83.62 
#9 83.62 all:
#9 83.62      [copy] Copying 1 file to /tmp/build/build
#9 83.62 
#9 83.62 buildI2PSnark:
#9 83.62 
#9 83.62 builddep:
#9 83.62 
#9 83.62 depend:
#9 84.23    [depend] Deleted 117 out of date files in 0 seconds
#9 84.23 
#9 84.23 compile:
#9 84.24     [javac] Compiling 59 source files to /tmp/build/apps/i2psnark/java/build/obj
#9 84.24     [javac] Ignoring source, target and bootclasspath as release has been set
#9 86.04 
#9 86.04 jarUpToDate:
#9 86.05 
#9 86.05 listChangedFiles:
#9 86.05 
#9 86.05 jar:
#9 86.06       [jar] Building jar: /tmp/build/apps/i2psnark/java/build/i2psnark.jar
#9 86.13 
#9 86.13 bundle:
#9 86.15 
#9 86.15 warUpToDate:
#9 86.16 
#9 86.16 war:
#9 86.21       [war] Building war: /tmp/build/apps/i2psnark/i2psnark.war
#9 86.41      [copy] Copying 1 file to /tmp/build/build
#9 86.41      [copy] Copying 1 file to /tmp/build/build
#9 86.42 
#9 86.42 buildRouter:
#9 86.42 
#9 86.42 buildI2PControl:
#9 86.42 
#9 86.42 builddep:
#9 86.47 
#9 86.47 compile:
#9 86.47     [mkdir] Created dir: /tmp/build/apps/i2pcontrol/build
#9 86.47     [mkdir] Created dir: /tmp/build/apps/i2pcontrol/build/obj
#9 86.48     [javac] Compiling 40 source files to /tmp/build/apps/i2pcontrol/build/obj
#9 86.48     [javac] Ignoring source, target and bootclasspath as release has been set
#9 87.00     [javac] Creating empty /tmp/build/apps/i2pcontrol/build/obj/com/thetransactioncompany/jsonrpc2/package-info.class
#9 87.00     [javac] Creating empty /tmp/build/apps/i2pcontrol/build/obj/com/thetransactioncompany/jsonrpc2/server/package-info.class
#9 87.00     [javac] Creating empty /tmp/build/apps/i2pcontrol/build/obj/com/thetransactioncompany/jsonrpc2/util/package-info.class
#9 87.00 
#9 87.00 war:
#9 87.01       [war] Building war: /tmp/build/apps/i2pcontrol/build/jsonrpc.war
#9 87.05      [copy] Copying 1 file to /tmp/build/build
#9 87.06 
#9 87.06 builddep:
#9 87.06 
#9 87.06 jarSmall:
#9 87.06 
#9 87.06 jar:
#9 87.06 
#9 87.06 buildWEB:
#9 87.06      [copy] Copying 1 file to /tmp/build/build
#9 87.06      [copy] Copying 1 file to /tmp/build/build
#9 87.06 
#9 87.06 build2:
#9 87.06 
#9 87.06 build:
#9 87.06 
#9 87.06 settomcatprop:
#9 87.06 
#9 87.06 preplicenses-unlesspkg:
#9 87.06 
#9 87.06 preplicenses:
#9 87.07 
#9 87.07 prepgeoupdate-unlesspkg:
#9 87.07     [mkdir] Created dir: /tmp/build/pkg-temp/geoip
#9 87.07    [gunzip] Expanding GeoLite2-Country.mmdb.gz to /tmp/build/pkg-temp/geoip/GeoLite2-Country.mmdb
#9 87.23 
#9 87.23 prepgeoupdate:
#9 87.23 
#9 87.23 prepConsoleDocs:
#9 87.23 
#9 87.23 prepCertificates:
#9 87.85      [java] Found 34 valid certs, 0 bad certs, 0 about to expire certs
#9 87.85 
#9 87.85 buildTools:
#9 87.86 
#9 87.86 depend:
#9 87.86 
#9 87.86 compile:
#9 87.86     [mkdir] Created dir: /tmp/build/installer/tools/java/build
#9 87.86     [mkdir] Created dir: /tmp/build/installer/tools/java/build/obj
#9 87.87     [javac] Compiling 1 source file to /tmp/build/installer/tools/java/build/obj
#9 87.87     [javac] Ignoring source, target and bootclasspath as release has been set
#9 87.97 
#9 87.97 jar:
#9 87.97       [jar] Building jar: /tmp/build/installer/tools/java/build/tools.jar
#9 87.97      [copy] Copying 1 file to /tmp/build/build
#9 87.97 
#9 87.97 prepRouterInfos:
#9 87.97 
#9 87.97 copyjetty-unlesspkg:
#9 87.98      [copy] Copying 17 files to /tmp/build/pkg-temp/lib
#9 87.98 
#9 87.98 copyjetty:
#9 87.98      [copy] Copying 1 file to /tmp/build/pkg-temp/lib
#9 87.99 
#9 87.99 copytomcat-unlesspkg:
#9 87.99      [copy] Copying 4 files to /tmp/build/pkg-temp/lib
#9 87.99 
#9 87.99 copyjstl-unlesspkg:
#9 87.99      [copy] Copying 1 file to /tmp/build/pkg-temp/lib
#9 87.99 
#9 87.99 copystandard-unlesspkg1:
#9 87.99 
#9 87.99 copystandard-unlesspkg2:
#9 87.99      [copy] Copying 1 file to /tmp/build/pkg-temp/lib
#9 87.99 
#9 87.99 copystandard-unlesspkg:
#9 87.99 
#9 87.99 copyflags-unlesspkg:
#9 88.00      [copy] Copying 20 files to /tmp/build/pkg-temp/eepsite/docroot/help/lib
#9 88.03      [copy] Copying 239 files to /tmp/build/pkg-temp/docs/icons/flags
#9 88.10 
#9 88.10 copyflags:
#9 88.10      [copy] Copying 1 file to /tmp/build/pkg-temp/eepsite/docroot/help/lib
#9 88.10 
#9 88.10 truncatehistory:
#9 88.10      [copy] Copying 1 file to /tmp/build/pkg-temp
#9 88.13 
#9 88.13 preppkg-base:
#9 88.14      [copy] Copying 1 file to /tmp/build/pkg-temp/lib
#9 88.14      [copy] Copying 1 file to /tmp/build/pkg-temp/lib
#9 88.14      [copy] Copying 1 file to /tmp/build/pkg-temp/lib
#9 88.14      [copy] Copying 1 file to /tmp/build/pkg-temp/lib
#9 88.14      [copy] Copying 1 file to /tmp/build/pkg-temp/lib
#9 88.15      [copy] Copying 1 file to /tmp/build/pkg-temp/lib
#9 88.15      [copy] Copying 1 file to /tmp/build/pkg-temp/lib
#9 88.15      [copy] Copying 1 file to /tmp/build/pkg-temp/lib
#9 88.15      [copy] Copying 1 file to /tmp/build/pkg-temp/lib
#9 88.16      [copy] Copying 1 file to /tmp/build/pkg-temp/lib
#9 88.16      [copy] Copying 1 file to /tmp/build/pkg-temp/lib
#9 88.16      [copy] Copying 1 file to /tmp/build/pkg-temp/webapps
#9 88.16      [copy] Copying 1 file to /tmp/build/pkg-temp/webapps
#9 88.16      [copy] Copying 1 file to /tmp/build/pkg-temp/lib
#9 88.16      [copy] Copying 1 file to /tmp/build/pkg-temp/webapps
#9 88.16      [copy] Copying 1 file to /tmp/build/pkg-temp/webapps
#9 88.16      [copy] Copying 1 file to /tmp/build/pkg-temp/webapps
#9 88.16      [copy] Copying 1 file to /tmp/build/pkg-temp/webapps
#9 88.17      [copy] Copying 1 file to /tmp/build/pkg-temp/webapps
#9 88.17      [copy] Copying 1 file to /tmp/build/pkg-temp
#9 88.17      [copy] Copying 1 file to /tmp/build/pkg-temp
#9 88.17      [copy] Copying 1 file to /tmp/build/pkg-temp
#9 88.17      [copy] Copying 1 file to /tmp/build/pkg-temp
#9 88.17      [copy] Copying 1 file to /tmp/build/pkg-temp
#9 88.17      [copy] Copying 1 file to /tmp/build/pkg-temp
#9 88.17      [copy] Copying 1 file to /tmp/build/pkg-temp/scripts
#9 88.17      [copy] Copying 1 file to /tmp/build/pkg-temp/docs
#9 88.17      [copy] Copying 1 file to /tmp/build/pkg-temp/docs
#9 88.17      [copy] Copying 1 file to /tmp/build/pkg-temp/docs
#9 88.17      [copy] Copying 1 file to /tmp/build/pkg-temp/docs
#9 88.18      [copy] Copying 52 files to /tmp/build/pkg-temp/eepsite
#9 88.20      [copy] Copied 6 empty directories to 3 empty directories under /tmp/build/pkg-temp/eepsite
#9 88.20      [copy] Copying 1 file to /tmp/build/pkg-temp/eepsite-jetty9.3
#9 88.20      [copy] Copying 1 file to /tmp/build/pkg-temp/eepsite/docroot
#9 88.20 
#9 88.20 prep-script-translation:
#9 88.20 
#9 88.20 bundle:
#9 88.22 
#9 88.22 preppkg-unix:
#9 88.22      [copy] Copying 1 file to /tmp/build/pkg-temp
#9 88.22      [copy] Copying 1 file to /tmp/build/pkg-temp
#9 88.23      [copy] Copying 1 file to /tmp/build/pkg-temp
#9 88.23      [copy] Copying 1 file to /tmp/build/pkg-temp
#9 88.23      [copy] Copying 1 file to /tmp/build/pkg-temp
#9 88.24 
#9 88.24 preppkg-linux-x86:
#9 88.24      [copy] Copying 2 files to /tmp/build/pkg-temp/lib/wrapper/linux
#9 88.24      [copy] Copying 2 files to /tmp/build/pkg-temp/lib/wrapper/linux64
#9 88.24 
#9 88.24 preppkg-linux-nonx86:
#9 88.24      [copy] Copying 2 files to /tmp/build/pkg-temp/lib/wrapper/linux-ppc
#9 88.25      [copy] Copying 2 files to /tmp/build/pkg-temp/lib/wrapper/linux-armv5
#9 88.25      [copy] Copying 2 files to /tmp/build/pkg-temp/lib/wrapper/linux-armv6
#9 88.25      [copy] Copying 2 files to /tmp/build/pkg-temp/lib/wrapper/linux-armv7
#9 88.26      [copy] Copying 2 files to /tmp/build/pkg-temp/lib/wrapper/linux64-armv8
#9 88.26 
#9 88.26 preppkg-linux:
#9 88.26 
#9 88.26 jbigi-linux-only:
#9 88.27       [jar] Building jar: /tmp/build/build/jbigi.jar
#9 89.65 
#9 89.65 preppkg-linux-only:
#9 89.65      [copy] Copying 1 file to /tmp/build/pkg-temp/lib
#9 89.65      [copy] Copying 1 file to /tmp/build/pkg-temp/lib
#9 89.66 
#9 89.66 BUILD SUCCESSFUL
#9 89.66 Total time: 51 seconds
#9 89.75 fetch https://dl-cdn.alpinelinux.org/alpine/v3.15/main/x86_64/APKINDEX.tar.gz
#9 91.88 fetch https://dl-cdn.alpinelinux.org/alpine/v3.15/community/x86_64/APKINDEX.tar.gz
#9 94.17 (1/46) Purging build-base (20230117.170558)
#9 94.17 (2/46) Purging gettext (0.21-r0)
#9 94.17 (3/46) Purging tar (1.34-r0)
#9 94.17 (4/46) Purging bzip2 (1.0.8-r1)
#9 94.17 (5/46) Purging apache-ant (1.10.12-r0)
#9 94.18 (6/46) Purging openjdk17 (17.0.5_p8-r0)
#9 94.18 (7/46) Purging openjdk17-jmods (17.0.5_p8-r0)
#9 94.20 (8/46) Purging openjdk17-demos (17.0.5_p8-r0)
#9 94.21 (9/46) Purging openjdk17-doc (17.0.5_p8-r0)
#9 94.21 (10/46) Purging openjdk17-jdk (17.0.5_p8-r0)
#9 94.21 (11/46) Purging openjdk17-jre (17.0.5_p8-r0)
#9 94.21 (12/46) Purging libgomp (10.3.1_git20211027-r0)
#9 94.21 (13/46) Purging gettext-libs (0.21-r0)
#9 94.22 (14/46) Purging libintl (0.21-r0)
#9 94.22 (15/46) Purging ncurses-libs (6.3_p20211120-r1)
#9 94.22 (16/46) Purging ncurses-terminfo-base (6.3_p20211120-r1)
#9 94.23 (17/46) Purging libunistring (0.9.10-r1)
#9 94.23 (18/46) Purging libxml2 (2.9.14-r2)
#9 94.23 (19/46) Purging xz-libs (5.2.5-r1)
#9 94.23 (20/46) Purging libacl (2.2.53-r0)
#9 94.23 (21/46) Purging openjdk17-jre-headless (17.0.5_p8-r0)
#9 94.29 (22/46) Purging java-cacerts (1.0-r1)
#9 94.29 Executing java-cacerts-1.0-r1.post-deinstall
#9 94.29 (23/46) Purging p11-kit-trust (0.24.0-r1)
#9 94.29 (24/46) Purging ca-certificates (20220614-r0)
#9 94.30 Executing ca-certificates-20220614-r0.post-deinstall
#9 94.31 (25/46) Purging java-common (0.5-r0)
#9 94.31 (26/46) Purging p11-kit (0.24.0-r1)
#9 94.32 (27/46) Purging libffi (3.4.2-r1)
#9 94.32 (28/46) Purging libtasn1 (4.18.0-r1)
#9 94.32 (29/46) Purging libxi (1.8-r0)
#9 94.32 (30/46) Purging libxtst (1.2.3-r3)
#9 94.32 (31/46) Purging libxext (1.3.4-r0)
#9 94.32 (32/46) Purging libxrender (0.9.10-r3)
#9 94.32 (33/46) Purging libx11 (1.7.3.1-r0)
#9 94.33 (34/46) Purging libxcb (1.14-r2)
#9 94.33 (35/46) Purging libxau (1.0.9-r0)
#9 94.33 (36/46) Purging libxdmcp (1.1.3-r0)
#9 94.33 (37/46) Purging libbsd (0.11.3-r1)
#9 94.33 (38/46) Purging libmd (1.0.3-r0)
#9 94.33 (39/46) Purging alsa-lib (1.2.5.1-r1)
#9 94.33 (40/46) Purging freetype (2.11.1-r2)
#9 94.33 (41/46) Purging brotli-libs (1.0.9-r5)
#9 94.33 (42/46) Purging libbz2 (1.0.8-r1)
#9 94.33 (43/46) Purging libpng (1.6.37-r1)
#9 94.33 (44/46) Purging giflib (5.2.1-r0)
#9 94.33 (45/46) Purging libjpeg-turbo (2.1.2-r0)
#9 94.33 (46/46) Purging lcms2 (2.12-r1)
#9 94.33 Executing busybox-1.34.1-r3.trigger
#9 94.34 Executing glibc-ldconfig-trigger-1.0-r0.trigger
#9 94.35 OK: 12 MiB in 18 packages
#9 DONE 94.6s

#10 [stage-1 2/5] RUN add-pkg openjdk17-jre
#10 CACHED

#11 [stage-1 3/5] WORKDIR /i2p
#11 CACHED

#12 [stage-1 4/5] COPY --from=builder /tmp/build/pkg-temp .
#12 DONE 0.2s

#13 [stage-1 5/5] COPY docker/rootfs/ /
#13 DONE 0.0s

#14 exporting to image
#14 exporting layers
#14 exporting layers 0.4s done
#14 writing image sha256:d71fbc7b25906a2121cec566c672e4fbe5e46a775bd4dca71d413454a7497221 done
#14 naming to docker.io/geti2p/i2p done
#14 DONE 0.4s

@eyedeekay
Copy link
Contributor

No dice yet

@casjay
Copy link
Author

casjay commented Feb 20, 2023

Sorry for the very delayed response.
The docker image you are using does not support arm64: https://hub.docker.com/layers/jlesage/baseimage/alpine-3.15-glibc/images/sha256-6351b3455f2658814ce27bcc19412161dcdfe2987174311bfcf3794a4cb3ffb8?context=explore
As far as I can tell none of the jlesage/baseimage:alpine-*-glibc support arm64

So you would need to update your docker image to one that supports arm64.
If you are still interested I will work on a multiarch image as I get the time

The following is untested but it could be a starting point.

FROM alpine:3.15.7 AS alpine-glibc

ENV GLIBC_VERSION 2.31-r0

# Download and install glibc
RUN apk add --update curl && \
  curl -Lo /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub && \
  curl -Lo glibc.apk "https://github.com/sgerrand/alpine-pkg-glibc/releases/download/${GLIBC_VERSION}/glibc-${GLIBC_VERSION}.apk" && \
  curl -Lo glibc-bin.apk "https://github.com/sgerrand/alpine-pkg-glibc/releases/download/${GLIBC_VERSION}/glibc-bin-${GLIBC_VERSION}.apk" && \
  apk add glibc-bin.apk glibc.apk && \
  /usr/glibc-compat/sbin/ldconfig /lib /usr/glibc-compat/lib && \
  echo 'hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4' >> /etc/nsswitch.conf && \
  apk del curl && \
  rm -rf glibc.apk glibc-bin.apk /var/cache/apk/*

FROM alpine-glibc as builder

ENV APP_HOME="/i2p"

WORKDIR /tmp/build
COPY . .

RUN add-pkg --virtual build-base gettext tar bzip2 apache-ant openjdk17 \
    && echo "build.built-by=Docker" >> override.properties \
    && ant preppkg-linux-only \
    && rm -rf pkg-temp/osid pkg-temp/lib/wrapper pkg-temp/lib/wrapper.* \
    && del-pkg build-base gettext tar bzip2 apache-ant openjdk17

FROM alpine-glibc
ENV APP_HOME="/i2p"

RUN add-pkg openjdk17-jre ttf-dejavu
WORKDIR ${APP_HOME}
COPY --from=builder /tmp/build/pkg-temp .

# "install" i2p by copying over installed files
COPY docker/rootfs/ /

# Mount home and snark
VOLUME ["${APP_HOME}/.i2p"]
VOLUME ["/i2psnark"]

EXPOSE 7654 7656 7657 7658 4444 6668 7659 7660 4445 12345

# Metadata.
LABEL \
      org.label-schema.name="i2p" \
      org.label-schema.description="Docker container for I2P" \
      org.label-schema.version="1.0" \
      org.label-schema.vcs-url="https://github.com/i2p/i2p.i2p" \
      org.label-schema.schema-version="1.0"

@dimaguy
Copy link

dimaguy commented Jan 9, 2024

Given the baseimage was merged, is there anything else blocking this issue? There still aren't arm64-compatible on the geti2p docker registry :/

@eyedeekay
Copy link
Contributor

Literally ability to test it. I don't want to push a broken image, all I need is somebody to buildx it on an x86_64 machine, transfer it to a Raspberry Pi or something, and run it.

@dimaguy
Copy link

dimaguy commented Jan 9, 2024

I can test that, the image already builds on my rpi, and github makes it easy to add arm architecture to it's workflows via qemu and whatnot.

Also docker supports arch emulation according to the documentation, the result will be the same as native compile, but slower

@deanapearce
Copy link

I've confirmed it working: built multiarch image on x86 machine and transferred to arm64. I've only tested the webconsole and eepsite access functionalities of the client, however.

@eyedeekay
Copy link
Contributor

Good enough for me. 2.4.0 will be made available for arm64 soon.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants