~dr|z3d
@RN
@RN_
@StormyCloud
@T3s|4
@T3s|4_
@eyedeekay
@orignal
@postman
@zzz
%Liorar
+FreefallHeavens
+Over
+Xeha
+bak83
+cumlord
+hk
+onon_
+poriori
+profetikla
+r00tobo
+uop23ip
+weko
An0nm0n
Arch
Danny
DeltaOreo
Irc2PGuest53061
Irc2PGuest57148
Irc2PGuest60340
Irc2PGuest99578
Meow
Nausicaa
Onn4l7h
Onn4|7h
acetone_
anon3
anu3
boonst
carried6590
enoxa
mareki2pb
not_bob_afk
plap
shiver_
simprelay
solidx66
thetia
u5657
orignal
made one more fix for visual studio
dr|z3d
dolphinandcat: welcome to #saltr. have you looked at hub.docker.com/r/justinhimself/i2pplus ?
dolphinandcat
no, i will try it thanks
dolphinandcat
also
dr|z3d
see also: gitlab.com/y2kboy23/I2P.Plus
dolphinandcat
wait nevermind that's for #i2p
dr|z3d
y2kboy runs i2p+ in a docker.
dolphinandcat
that's 4446 commits behind
dolphinandcat
i'm betting even official i2p is more up to date
dr|z3d
official + repo -> git.skank.i2p/i2pplus/I2P.Plus
dr|z3d
if you've got a functional recipe for docker, you should be good.
dolphinandcat
is the mirror on git.idk.i2p behind or current?
dr|z3d
that's for canon i2p, not i2p+
dolphinandcat
the problem is when i run i2pplus with the same dockerfile it gets confused about where the config paths are
dolphinandcat
i meant same dockercompose
dolphinandcat
not dockerfile
dolphinandcat
any idea why i2p uses alpine:3.17.1 yet i2pplus uses jlesage/baseimage:debian-11-v3?
dolphinandcat
wait no i meant
dolphinandcat
it uses jlesage/baseimage:alpine-3.15-glibc
dolphinandcat
i switched it to debian because jlesage/baseimage:alpine-3.15-glibc was only for amd64 and my raspberry pi is arm64
zzz
whats the last you saw dr|z3d
dr|z3d
last here:
dr|z3d
<dolphinandcat> is the mirror on git.idk.i2p behind or current?
dr|z3d
<dr|z3d> that's for canon i2p, not i2p+
dr|z3d
<dr|z3d> this may also be useful: github.com/by-justin/docker-autobuild
dr|z3d
<dr|z3d> git.idk.i2p is current, anyways. it's the same as i2pgit.org
dolphinandcat
i thought i2pgit had a i2pplus repository, anyway i got confused
dolphinandcat
i want to propose that we stop using jlesage/baseimage:alpine-3.15-glibc and start using normal alpine base image, the same one i2p uses. because jlesage/baseimage:alpine-3.15-glibc is only available for amd64 whereas docker's standardalpine is multiarch
dr|z3d
if you want better support, have a look at this? if you've got an MR, both i2p and i2pplus are happy to have a look.
dr|z3d
if you register your nick, goose2, I'll put you on autovoice.
dolphinandcat
what's autovoice?
dr|z3d
it's what you've got. you're voice when you enter the channel, assuming you're registered and identified to nickserv.
dr|z3d
*voiced
dr|z3d
it means you can speak in channel.
dr|z3d
if you type /cycle dolphinandcat, you'll see it in action.
dolphinandcat
i read about some irc chathistory extension some ircv3 thing, is it a thing here i can enable?
dr|z3d
your client should provide a history buffer, and/or logs.
dr|z3d
or you might want to look at znc.
dolphinandcat
well yea, it remembers it from like last day
dolphinandcat
but not from when i wasn't online
dolphinandcat
it can't go like "hey what'd i miss" to the server
dolphinandcat
like discord and matrix and stuff
dr|z3d
that's where znc works, assuming you can put that online 24/7
cumlord
you got to be online irc server doesn't store by default, unrealircd can but these aren't setup that way
dolphinandcat
so i run a server on my raspberry pi that pretends to be me and i connect to it and proxy through it, so even when i close my client it still keeps me on and has logs?
dr|z3d
zzz, I missed something?
zzz
maybe
zzz
<dolphinandcat> the problem is when i run i2pplus with the same dockerfile it gets confused about where the config paths are
zzz
<dolphinandcat> i meant same dockercompose
zzz
<dolphinandcat> not dockerfile
zzz
<dolphinandcat> any idea why i2p uses alpine:3.17.1 yet i2pplus uses jlesage/baseimage:debian-11-v3?
zzz
<dolphinandcat> wait no i meant
zzz
<dolphinandcat> it uses jlesage/baseimage:alpine-3.15-glibc
zzz
<dolphinandcat> i switched it to debian because jlesage/baseimage:alpine-3.15-glibc was only for amd64 and my raspberry pi is arm64
zzz
eot
dr|z3d
oh, thanks. got most of that.
cumlord
dolphinandcat yeah pretty much, bouncer like znc will do that or some webclients
dr|z3d
maybe we should switch to that.
dolphinandcat
not quite
dolphinandcat
you should switch to the normal alpine imeage
dolphinandcat
not jlesage/baseimage:alpine-3.15-glibc
dolphinandcat
because jlesage/baseimage:alpine-3.15-glibc is only for amd64
dolphinandcat
normal alpine is multiarch
dr|z3d
ah, I gotcha. we need to bump up the version to .17 and all is good?
dr|z3d
as to why i2pplus uses the debian baseimage, I couldn't tell you. maybe that's what y2kboy3 offered in an MR. I'm not really on top of the docker stuff.
dolphinandcat
it doesn't
dolphinandcat
like i said i made a mistake
dolphinandcat
i switched it to debian on my git clone
dolphinandcat
it uses a weird fork of docker's alpine image
dr|z3d
ah, ok.
dolphinandcat
that only supports amd64
dolphinandcat
whereas i2p just uses normal alpine
dolphinandcat
also it seems to not work
dolphinandcat
i'll switch it to normal alpine and see what happens, maybe debian was the issue
zzz
dr|z3d, looks like you may not have picked up some canon changes from Jan. 2023
zzz
cc00337ec15063a5b6cc1957ff1e33527d7c3028 and ac4daeb82c79f37f989f5ff400e4801ceb3f7a3e
dr|z3d
zzz: more than likely, thanks.
zzz
Author: Jean-Luc <jeanluc1@live.de>
zzz
Date: Sat Jan 28 09:47:09 2023
zzz
changed baseimage to allow for multiarch build (specifically arm64)
zzz
Author: Jean-Luc <jeanluc1@live.de>
zzz
Date: Sun Jan 29 08:02:54 2023
zzz
pinned alpine base image version
dolphinandcat
for i2pplus development, do i use github, gitlab or i2pplus's gitea?
dr|z3d
any of them.
dr|z3d
github and gitlab are realtime, git.skank is max 10m behind.
dolphinandcat
i'll go with github then i guess?
dr|z3d
whatever works for you. github and gitlab are synced at the same time.
eyedeekay
goose2 I need your email to approve your account
dr|z3d
roger that, zzz, thanks, I'll make the necessary changes.
dr|z3d
alpine:latest or alpine:3.17.1 ?
zzz
I also know nothing about docker or those changes, just looking at the Dockerfile history; eyedeekay might know more
dolphinandcat
latest sounds fine
dr|z3d
ok, I'll run with latest then.
dolphinandcat
latest is just a symlink to 3.17.1
dolphinandcat
and then it'll change to 3.17.2 so when you rebuild after the new alpine releases it'll pull the new image
dolphinandcat
n stuff
dr|z3d
what about openjdk?
dolphinandcat
irc has a set release, me personally i always use latest on my dockerfiles
dolphinandcat
from what i see you install alpine package "openjdk17-jre"
dr|z3d
23 has just been marked general availability.
dolphinandcat
so that would stay the same
dolphinandcat
but it may not be a bad idea to use a newer java version as long as it doesn't break compatibility
dolphinandcat
check if alpine has a "openjdk-jre" package that just points to the newest one
dr|z3d
that's your job :)
dolphinandcat
i use debian
dolphinandcat
wait i thought you were doing it?
dr|z3d
otherwise it'll stay at 17.
dolphinandcat
i can do it too ig
dr|z3d
I'm modifying the Dockerfile
dr|z3d
I'm just asking you if we need to bump the openjdk version.
dr|z3d
I see 'COPY docker/rootfs/ /' in i2pplus vs:
dr|z3d
COPY --chown=root:root docker/rootfs/ /
dr|z3d
RUN chmod +x /startapp.sh
dr|z3d
in upstream. either/or fine?
dolphinandcat
actually, i2pplus runs as app:app which is uid 1000:1000
dolphinandcat
so do COPY --chown=1000:1000
dolphinandcat
to avoid any permission issues
dolphinandcat
with the configs
dolphinandcat
but uhh
dolphinandcat
ykw don't change it right now
dolphinandcat
i'll test it
dolphinandcat
get it to work
dr|z3d
shouldn't be needed, I'm also referencing: github.com/by-justin/docker-autobuild/blob/master/i2pplus/Dockerfile
dolphinandcat
and ill just open a pr
dolphinandcat
i had to do this:
dolphinandcat
COPY docker/rootfs/ /
dolphinandcat
RUN chown -R 1000:1000 /i2p
dolphinandcat
so yea copy with the chown 1000 is the right one prob
dolphinandcat
i'll make the dockerfile and pr
dr|z3d
here's what's now current:
dolphinandcat
what's cake.i2p? a pastebin?
dolphinandcat
nevermind it finally loaded
dr|z3d
should also be up on gitlab/github.
dolphinandcat
did you test it?
dolphinandcat
i didn't test it yet-
dr|z3d
no, I don't do docker here.
dr|z3d
I'm referencing the commit(s) zzz mentioned, github.com/by-justin/docker-autobuild/blob/master/i2pplus/Dockerfile and your feedback.
dolphinandcat
actually i'm p sure it will not work
dolphinandcat
because you use add-pkg, not apt add
dolphinandcat
add-pkg is a command made by the creator of the alpine fork thing
dolphinandcat
i have a Dockerfile that should work
dolphinandcat
i'll test it and pr if it works
dr|z3d
ok, thanks.
dolphinandcat
*by apt add i meant apk add
dr|z3d
so apk add and apk del instead?
dr|z3d
I'll assume that's a yes and commit those changes.
dolphinandcat
this should work
dolphinandcat
but i'll test it first
dolphinandcat
just remove the blank line in line 9
dolphinandcat
that i didn't notice on the paste
dr|z3d
ok, let me know when you've tested it. thanks.
dolphinandcat
wait
dolphinandcat
ill do a pr
dolphinandcat
ill test
dolphinandcat
and open a github pr
dolphinandcat
the issue is to test i need to stop my i2p which'll disconnect me from irc2p
dolphinandcat
any other way to connect to irc2p outside of i2p?
dolphinandcat
maybe some irc2p.postman.com or something?
dr|z3d
not really. there used to be a freenode gateway, but that hasn't been working for a while. StormyCloud might be running something, not sure, you'd have to ask him.
cumlord
can run another router, i2pd would be quick to setup
dolphinandcat
well yes, except
dolphinandcat
i need
dolphinandcat
other device
cumlord
you can run on same device
dolphinandcat
port conflict
dolphinandcat
don't feel like changing every single port
cumlord
change http port on i2pd from 4444 to something else
dolphinandcat
i use i2p not i2pd
dolphinandcat
also i want irc2p to stay up, idc abt i2p, i just want to test the dockerfile for i2pplus
dolphinandcat
anyway it's fine
dolphinandcat
i'll join back in a bit
cumlord
that's why i keep a separate one for irc
dolphinandcat
i did it
dolphinandcat
"Docker persistent home" is what broke the whole thing
dolphinandcat
that one line
dolphinandcat
changing I2P=${HOME} to I2P=${HOME}/i2p is what broke it all
dolphinandcat
dr|z3d
dr|z3d
thanks, dolphinandcat, I'll probably manual merge that and credit you in the commit note.
dolphinandcat
why manual merge?
dolphinandcat
i mean it's fine
dolphinandcat
just
dolphinandcat
why
dr|z3d
because it's easier for me.
dr|z3d
you've also manged things.
dr|z3d
RUN apk add openjdk17-jre ttf-opensans
dr|z3d
RUN apk add openjdk17-jre ttf-dejavu
dr|z3d
why?
dolphinandcat
idk that's how it was from i2p, ig you can just not include that line
dr|z3d
you've not respected the changes that are specific to I2P+
dolphinandcat
i didn't notice the font change
dolphinandcat
sorry
dr|z3d
the font is required for the graphs.
dr|z3d
so I'll be manually merging. :)
dolphinandcat
ah, mb
dr|z3d
we didn't establish if root permissions are actually required, either.
dolphinandcat
yea actually that weird alpine image
dolphinandcat
it does the whole app user thing
dolphinandcat
when running normally
dolphinandcat
it runs as root
dolphinandcat
i can make it run as a non-root docker user i guess if it's something that you think matters
dolphinandcat
but running as root is simpler in docker
dolphinandcat
less permission hell
dr|z3d
better not to run it as root, but if it's all self-contained, probably not an issue.
dolphinandcat
also there seems to be a docker.entrypoint.sh that isn't used anywhere so if you wanna delete it
dolphinandcat
at some point it prob was used, then the way docker worked changed again and it stopped being used but never got removed
dolphinandcat
i should prob check if it is being used first tho
dolphinandcat
lemme check and i'll let u know if it's needed
dr|z3d
ok
dolphinandcat
actually
dolphinandcat
yea
dolphinandcat
it's not in use
dolphinandcat
it's some old
dolphinandcat
leftover
dolphinandcat
stuff
dolphinandcat
from back when i2p was in /opt/i2p and not just /i2p, that's how old
dolphinandcat
(talking abt the docker image, i'm assuming it's /opt/i2p on normal installs)
dolphinandcat
i'll also update the Docker.md docs a lil bit i think i can improve them to make it easier for others
dr|z3d
ok, but can you use the files from the i2pplus repo as your starting point, not the files on the i2p repo. only change what's necessary.
dr|z3d
otherwise it just creates more work for me.
dolphinandcat
yea obviously
dolphinandcat
sure :)
dolphinandcat
\:)
dr|z3d
thx
dolphinandcat
how do i escape the smile emoji?
dolphinandcat
i wanna send a normal text-based smile
dolphinandcat
anyway-
dr|z3d
prefix it with a space perhaps if the first character is a .
dr|z3d
.)
dolphinandcat
didn't work
dolphinandcat
the problem with Docker.md is that because i2pplus is a softfork of i2p, nothing mentions i2pplus so i was trying to figure out, is geti2p/i2p actually i2pplus or what rd|z3d
dolphinandcat
dr|z3d
dolphinandcat
and that's currently what i'm trying to solve, provide documentation for both
dr|z3d
ok, dolphinandcat, thanks, we appreciate the effort.
uop23ip
Hi dr|z3d , router.overrideIsSlow=true did not work for arm iirc, they are always classified as slow, correct?
dr|z3d
not necessarily, uop23ip, let's have a look at the source.
uop23ip
it does not work for me on arm, at least it doesn't show up on routerinfo. restarted ofc.
dr|z3d
ok
dr|z3d
public static boolean isSlow() {
dr|z3d
// we don't put the NBI call in the static field,
dr|z3d
// to prevent a circular initialization with NBI.
dr|z3d
return _isSlow || !NativeBigInteger.isNative() || (getCores() < 4 && !is64Bit()) ||
dr|z3d
(getCores() == 1 && getMaxMemory() < 384*1024*1024L) &&
dr|z3d
!I2PAppContext.getGlobalContext().getBooleanProperty(PROP_OVERRIDE_IS_SLOW);
dr|z3d
}
dr|z3d
so technically if you've configured overrideIsSlow, then wherever the router uses isSlow() to determine behavior, you won't be treated as slow.
uop23ip
btw. is Native BigInteger library jbigi not loaded a big performance minus?
dr|z3d
it is.
dr|z3d
if you're not loading jbgi and running it via software emulation, that may prevent you overriding isSlow()
uop23ip
looks like fun geti2p.net/en/misc/jbigi. Is legit for plus,too?
dr|z3d
if you mean building your own, sure, works for both.
uop23ip
my cpu doesn't seem to be correct detected. unrecognized [Jcpuid version: 0].
dr|z3d
entirely possible, cpuid isn't an exhaustive list.
uop23ip
bc armv8_64 is there in jbigi.jar
uop23ip
can i force it to use armv8_64?
dr|z3d
what chip have you got?
uop23ip
pi4 Cortex-A72 (ARM v8) 64-bit SoC
dolphinandcat
uop23ip, you rocking a raspberry pi 4 too? today i contributed a fix to make i2pplus docker image work on arm, so that i could use it on my raspberry pi
uop23ip
thanks for that, dolphinandcat
dolphinandcat
you got the 8gb model or the 4gb?
uop23ip
lower :)
dolphinandcat
2gb?
dolphinandcat
who buys that?
dolphinandcat
i got the 8gb
uop23ip
static String getCPUModelName() mmm
uop23ip
gitlab.com/i2pplus/I2P.Plus/-/blob/master/core/java/src/freenet/support/CPUInformation/CPUID.java right place?
uop23ip
"probably using other detection methods than the x86-only CPUID instruction" xx86 only?
dolphinandcat
i just noticed
dolphinandcat
that it supports sunos
dolphinandcat
who uses sunos-?
dr|z3d
uop23ip: yeah, that's the place.
dr|z3d
although it's been modified over the years, it was originally pulled from freenet.
uop23ip
"Native CPUID library jcpuid not loaded - will not be able to read CPU information using CPUID"
uop23ip
can't run cpuid, can't search for the right arch name, no native bigilib found, i guess that's what happened here
dr|z3d
smells like it.
uop23ip
looking into gitlab.com/i2pplus/I2P.Plus/-/blob/master/core/java/src/net/i2p/util/NativeBigInteger.java
uop23ip
Tries to resolve the best type of CPU that we have an optimized jbigi-dll/so for.
uop23ip
* This is for x86 only.
uop23ip
* @return A string containing the CPU-type or null if CPU type is unknown
uop23ip
private static String resolveCPUType() {
uop23ip
but can branch to else if (_isArm) , but it uses getCPUInfo() cpuid, which fails results in false, i guess
uop23ip
has v8 in if (arch.startsWith("8")) return JBIGI_OPTIMIZATION_ARM_ARMV8;
uop23ip
needed a if !cpuid {type in your arch} or just return JBIGI_OPTIMIZATION_ARM_ARMV8 for everything :) idk
dr|z3d
that's probably also of interest to canon/zzz.
dr|z3d
I've added some additional detection for AMD cpus, but mostly it's zzz's domain.
uop23ip
in CPUID.java there is private static final void loadNative() which returns false if there isn't a Native CPUID library, which is needed by cpuid. checking it to see if cpuid will work at all