zzz
possible new offender DtQs
dr|z3d
they keep on coming!
zzz
pushed a change to make it easier to get the ip/port of a connected peer which was previously kindof annoying, will help in these kinds of investigations
mesh
can anybody think why i2p would crash and then magically downgrade from 2.0 to 1.9.0?
mesh
wow i2p went crazy
dr|z3d
got most of that minus the port on renderPeerHTML zzz, though the port's not a bad idea.
dr|z3d
(might has well present that info globally where flags/hash is shown)
mesh
why would i2p downgrade? That shouldn't ever happen right?
zzz
it's hard to go from a hash to actual connected ip/port but if you have that all in cannon, great
dr|z3d
yeah, it was a bit of work.
dr|z3d
RouterInfo ri = _context.netDb().lookupRouterInfoLocally(peer);
dr|z3d
String c = getCountry(peer);
dr|z3d
String h = peer.toBase64();
dr|z3d
if (ri != null) {
dr|z3d
String caps = ri.getCapabilities();
dr|z3d
String v = ri.getVersion();
dr|z3d
String ip = net.i2p.util.Addresses.toString(getValidIP(ri));
dr|z3d
buf.append("<span class=\"routerid\"><span class=\"flag\">");
dr|z3d
if (ri != null && c != null) {
dr|z3d
String countryName = getCountryName(c);
dr|z3d
if (countryName.length() > 2)
dr|z3d
countryName = Translate.getString(countryName, _context, COUNTRY_BUNDLE_NAME);
dr|z3d
buf.append("<a href=\"/netdb?c=" + c + "\"><img height=\"12\" width=\"16\" loading=\"lazy\" decoding=\"async\" alt=\"")
dr|z3d
.append(c.toUpperCase(Locale.US)).append("\" title=\"");
dr|z3d
buf.append(countryName).append(" • ");
dr|z3d
if (ri != null && ip != null)
dr|z3d
buf.append(ip);
dr|z3d
buf.append("\" src=\"/flags.jsp?c=").append(c).append("\"></a></span> ");
zzz
dr|z3d, that's (one of) the IP in the RI, not the actual connected IP
dr|z3d
yeah, I figured. primary ip, better than nowt.
zzz
what I did is to easily get the IP of a connected + firewalled router, which otherwise is real pita
dr|z3d
Blinded message
dr|z3d
that is, if said router is f/wd.
mesh
l
zzz
no dr|z3d that's the actual IP/port from the ntcp/ssu connection state
zzz
not from the RI
dr|z3d
ok, neat.
dr|z3d
I might use that and append the ip to a gwhois search icon link as I do elsewhere.
mesh
man I don't know what version of i2p I'm running now
dr|z3d
if you want something like that for your own use, something like <a title=\"Lookup on gwhois.org\" class=whois href=https://gwhois.org/" + Addresses.toString(peer.getRemoteIP() + " target=_blank>" + Addresses.toString(peer.getRemoteIP() + "</a>" or a variant with an icon + tooltip.
zzz
dunno mesh, unless you have two separate installs or are trying to hack your own updates
mesh
zzz: not sure what's going on. But I think part of the problem is that I upgraded an I2P+ install to normal I2P. Now everything is a bit wonky.
mesh
zzz: btw, how do I get onto the dev build stream like 2.0.0-4?
dr|z3d
should be fine, mesh, cross-grading isn't usually an issue.
zzz
there is no 'dev build stream', you must build it yourself
mesh
dr|z3d: yeah it's something I've done before. But with 2.0 things got especially wonky
dr|z3d
that's on you, nothing to do with i2p/i2p+ crossgrading per se.
mesh
it should be a simple matter of taking my i2p+ tarball and upgrading it to i2p 2.0
dr|z3d
the only time there's an issue is if you're trying to update from the easy install bundle to standard i2p or i2p+. then, problems.
mesh
I will probably have to build my own tarball
mesh
there's definitely something wonky going on. now the darktheme doesn't work and my eyes are so sensitive that the light theme is unusable
zzz
shift-reload might do the trick
zzz
to get the new css
dr|z3d
yeah, used to work, except themes are loaded from entirely different locations now, so shouldn't be an issue.
dr|z3d
doesn't work is a bit vague to troubleshoot :)
mesh
dr|z3d: Don't worry about it. I'm going to do a clean install. I'm probbaly the only person in the world that regularly installs i2p+ and then upgrades to i2p.
zzz
yeah well next time don't wail 'I don't know what happened, i2p is possessed' here because you did know exactly what happened
mesh
zzz: I mean I don't know what happened. I installed i2p+, upgraded to i2p 2.0, restarted. Then windows fucked me and I had to restart again and suddenly I was running i2p 1.9. Very strange.
zzz
ok but if your install is not-normal or self-sabotaged please lead with that
mesh
zzz: I guess. Though I wonder, why doesn't i2p distribute a tarball distribution? There are lots of people who can't run tne installer you know
zzz
another goose chase example: git.idk.i2p/i2p-hackers/i2p.i2p/-/issues/375
zzz
we have a source tarball and a binary update on our d/l page
mesh
the only reason me and my friends jump through this hoop is because we're stuck on computers with java but no kind of admin access
zzz
we also have instructions on how to run the installer in CLI mode somewhere
dr|z3d
there's also tar.gz development builds back on skank/gitlab. plenty of choices :)
mesh
zzz: the installer requires admin access, every time. In the build.xml file there is a 'tarball' target that produces the simple core router which is what we need
zzz
mesh if you're not allowed to install software on your own computer there's not a lot we can do from our side
mesh
dr|z3d: that's what we do. We take the tar.gz dev build from gitlab and then upgrade that. It used to work pretty regularly
dr|z3d
once you have an install working, mesh, you only need to deploy an update, either an i2p or i2p+ update. no need for admin privs for that.
mesh
zzz: well if we had a tarball then we can run i2p because at the end of the day it's just a regular java program. So once we have a tarball it's just a matter of
mesh
$ $JAVA_HOME/bin/java -Di2p.dir.base="$I2P_INSTALL_DIR" -Di2p.dir.pid="$I2P_WORKSPACE_DIR" -Di2p.dir.tmp="$I2P_WORKSPACE_DIR/data/tmp/" -Di2p.dir.config="$I2P_WORKSPACE_DIR/data/config/" -Djava.library.path="${I2P_INSTALL_DIR}/lib" -cp "${I2P_INSTALL_DIR}/lib/*" -XX:+UseZGC -XX:SoftMaxHeapSize=2g -XX:+UseNUMA -XX:+UseStringDeduplication net.i2p.router.Router
mesh
the problem is there's no good way to get a tarball distribution of the router
mesh
at least this is what we've been doing all year since the installer always fails
dr|z3d
there are two methods currently. either use the i2p+ builds, or build your own from source. both are GREAT methods.
mesh
dr|z3d: yes I know this :) I will look into building our own distribution. my point was that it would be nice if we could dl such a distribution from geti2p.net. But anyways yes, the solution is to build our own
dr|z3d
you can also extract the .jar or .exe file for an equvalent file structure.
dr|z3d
actually, strike that, not that simple.
dr|z3d
you want some cut and paste code for the gwhois search, zzz?
mesh
wow, "stablecoin" USDN has failed. wtf. The whole world has decided to go crazy on friday night. I guess it's been a long week
zzz
it's not our job to help you circumvent the policies of a computer you don't own
zzz
no thanks dr|z3d
mesh
zzz: I don't think any policies are being circumvented. i2p is just a java program and the way we run it, it makes no changes to the computer, nothing is written to C:\, everything is written to a usb. I don't think wanting to run in such a portable manner is so crazy. In Asia there are lots of internet cafes where people use computers they don't own to do all sorts of stuff
mesh
only recently have many people begun buying their own laptops and it's only businessmen and rich college students
zzz
if installer used to work but 2.0.0 doesn't, it's because zab didn't sign it. That's unfortunate but we don't have a replacement
zzz
the point of portable is to install it on a stick and then just run it on whatever computer you have. you shouldn't need to rerun the installer
mesh
zzz: the installer never worked. It tries to write files to directories that apparently require admin access. It's why we've taken to using a tarball and running i2p from the commandline
zzz
so whats the problem?
mesh
but keep in mind this is on computers that have been locked down though made available to the public
zzz
if command line works, do that
mesh
zzz: well the only problem is that it's not easy to get access to an i2p tarball.
mesh
zzz: the command line only works if you can get a tarball
dr|z3d
there comes a point where these circular discussions start to get very tedious and time-wasting for all involved.
dr|z3d
grab i2p+ tarball or build your own. those are your options.
mesh
but if I can figure out how to build my own tarballs then that will fix it. my only point was that it would be nice if i2p did distro a tarball for people who don't want/can't use the offical installers
dr|z3d
start with 'ant tarball' and end there.
mesh
dr|z3d: yeah I learned about ant tarball. I think it requires jdk8 but just need to figure out if it's possible to use a modern jdk.
zzz
thats a source tarball. I assume you're asking for a binary tarball
zzz
if you can't afford a computer, maybe try android?
mesh
zzz: the tarball that expands into a "core router" I think. This contains a lib/ and some other stuff (geoip, certificates)
mesh
oh **now** I see what happened
mesh
(good news is i2p isn't possessed, I forgot to update a windows shortcut and actually launched the wrong version of the router hence the unexplained update)
zzz
told you that an hour ago
dr|z3d
ant tarball creates the install dir, zzz, at least here.
dr|z3d
[echo] tarball Create tar archive for clean install ➜ ./i2p.tar.bz2
zzz
ok, I see, it is a binary tarball
zzz
wasn't familiar
zzz
that target isn't maintained, and it probably doesn't have any of the config file fixups that the installer does, so I don't know how well it would work to just extract and run it
dr|z3d
we don't yet have the plumbing in place for a source tarball, though it's probably not difficult to hand that off to git via ant.
dr|z3d
apparently it works fine according to mesh. when he's not getting fscked by windows. :)
zzz
not designed as a turnkey portable install though
zzz
sure we have a source tarball target, it's part of the release process
zzz
and on our d/l page
mesh
zzz: hehe, we've been using the output of ant tarball all year
zzz
great
zzz
there are some portable targets too, put in by our chinese friend walking about 15 years ago, also not maintained
mesh
usually what we do is download i2p.tar.gz (the output of ant tarball) from gitlab.com/i2pplus/I2P.Plus/-/jobs/3445420924/artifacts/browse
mesh
if you download i2p.tar.bz2 from that page it gives you a tarball that can be run from the commandline
zzz
so if you have something working, then you don't need us
mesh
heh, I wouldn't call it working, but yeah it seems to work most of the time.
zzz
pushing my throttle changes because I'm not seeing any false positives, but let's see if others do
zzz
still getting tag teamed by CyLg and DtQs
dr|z3d
haha, lucky boy :)
dr|z3d
got gwhois lookups working for your identified ips on /peers now, zzz. handy, should make miscreants easier to hunt down.
zzz
ok
zzz
ping eyedeekay re: android
eyedeekay
zzz I'm here, is something up with Android?
zzz
eyedeekay, I assume you missed my question on tuesday
zzz
re: translations
zzz
fine because I have more q's now...
zzz
anyway
zzz
1) are you pulling and checking in translations before every android release?
zzz
because I recently pulled and got quite a few new ones
eyedeekay
I thought I was, but I just tried `tx pull -a -f` and got new ones too
eyedeekay
So I guess I need to force-pull translations every time
zzz
you only need -f if your local timestamps are off
zzz
anyway, I checked in what I got the other day
zzz
so you don't need to
zzz
on to 2)
zzz
I see you've added/changed strings in the resource several times over the years...
zzz
but the source was last updated on tx three years ago
zzz
so...
zzz
you only get translations if you push them to the translators, or ask somebody else to push them (I forget if you have privs)
eyedeekay
I see the problem, I don't recall if I have the privs yet but I also don't know if anybody ever showed me how to push them either, is it just something like `tx push`?
zzz
yeah, tx push -s, but only if you have privs, and the deprecated python tx was supposed to stop working 9 days ago, but still seems to for now
eyedeekay
I just checked my "RELEASE_PROCESS.md" doc and it's not in there, I will add it
zzz
ok, ideally on or before the desktop tag freeze
zzz
also, if you do push yourself, tell me anyway so I can tell the translators in my tag-freeze-day announcement
eyedeekay
I will have a tag freeze the same day as the desktop distro, seems clearest and that's how I've been treating it generally
eyedeekay
Can do
zzz
3) router stats
zzz
the optional 'router stats' section on the home page is not translated
zzz
I'm working on a patch
zzz
kinda hung up on the build, it's been a year or two and having all sorts of issues
zzz
but would you like a MR for that?
eyedeekay
Sure, I'm pretty good at picking dissecting build stuff these days, put it in an MR and I'll help
zzz
well, ideally I'll ask for help first to get the build working so I can test the patch, then I'll do the MR
zzz
if I give up then I'll just give you the MR
zzz
oh, also, the push should be tx push -s -R I2P.android (to specify the resource, since there's two)
zzz
you want to try the push, and if it doesn't work ask me to?
eyedeekay
Yeah that should clear up whether I have push rights on transifex pretty quickly
zzz
ok
zzz
4) build problems
zzz
I'm not using studio
zzz
the GUI SDK manager isn't showing anything later than 29.0.6
zzz
the command line does offer 33.0.3 and I updated that way
zzz
GUI still doesn't show it
zzz
gradle yanked 33.0.2 though, hung up on licensing until I got 33.0.3 via sdkmanager command line
zzz
so then the build got going, but blew up due to some spectacular class problem
zzz
Execution failed for task ':app:lintVitalDonateRelease'.
zzz
> Lint infrastructure error
zzz
Caused by: java.lang.reflect.InvocationTargetException
zzz
Blinded message
zzz
Caused by: java.lang.LinkageError: loader constraint violation: when resolving method "com.android.tools.lint.gradle.api.LintExecutionRequest.getLintOptions()Lcom/android/tools/lint/model/LintModelLintOptions;" the class loader (instance of com/android/tools/lint/gradle/api/DelegatingClassLoader) of the current class, com/android/tools/lint/gradle/LintGradleExecution, and the class loader (instance of
zzz
org/gradle/internal/classloader/VisitableURLClassLoader) for the method's defining class, com/android/tools/lint/gradle/api/LintExecutionRequest, have different Class objects for the type com/android/tools/lint/model/LintModelLintOptions used in the signature
zzz
at com.android.tools.lint.gradle.LintGradleExecution.runLint(LintGradleExecution.kt:201)
zzz
any clues?
eyedeekay
Maybe, I don't know for sure yet but I think I worked around this by setting an option in Android Studio, so if I can find that option and add it to the equivalent config file that the non-Studio builds that should work
eyedeekay
But I think what I should really do is try and set up a non-Studio build environment from scratch
zzz
I thought we took the donate version off gplay? why is it still part of the build?
zzz
I assume the non-donate build would die too, but...
eyedeekay
It's a workaround for when somebody wants to use a release version and a dev build on the same device
eyedeekay
donate's been taken down from gplay but the target's still there for that reason
zzz
ok
zzz
not asking you to reproduce a non-studio setup, just wondering if any of this rings a bell
zzz
I googled pretty hard to try to figure out why the gui sdk manager was stuck at 29, no luck
zzz
have not really searched for the lint problem yet
zzz
have you added some sort of lint setting? or is gradle off doing this on its own?
eyedeekay
Just a sec while I refresh my memory, I think I've found it
eyedeekay
OK so what's happening now is that gradle is running the linter on release builds by default every time, but the linter doesn't like the other build options we have to set, at least as far as I can tell
eyedeekay
but if you just disable the linter, then everything goes back to working
eyedeekay
to disable the linter for every build, go to app/build.gradle and find the lintOptions field
eyedeekay
add this line: `checkReleaseBuilds false` to it
eyedeekay
That's going to be the easiest way for you to work around it until I can figure out what studio options I set to work around it
zzz
woo I got past the error with that
zzz
may I check in that change?
eyedeekay
Yeah go ahead
zzz
back, fun times
zzz
I have either overheating or power issues on this box and it likes to just shut down
zzz
anyway, disabling lint works for me
dr|z3d
not the phenom perchance, zzz?
zzz
may I check in that change to build.gradle?
dr|z3d
eyedeekay says "yes!"
zzz
no phenoms here
mesh
you have a modern computer that just overheats and shuts down?
dr|z3d
ok, I vaguely recall you had one before.
zzz
define modern?
dr|z3d
you're getting sucked in, zzz.. :)
mesh
zzz: there's two possibilities in my experience. (1) your computer needs to be thoroughly cleaned. all dust removed. (2) your power supply may be seriously compromised and on the verge of exploding
zzz
asks the person who only uses Other People's Computers
mesh
either way probably want to take it in to an expert. that's def not normal on modern boxen
dr|z3d
there's a bunch of different possibles based on zzz's description of the issue.
mesh
zzz: I use i2p on other people's computers. important difference.
zzz
still don't know if it's modern by your definition
mesh
modern == any computer released after say 2015. Most people would say if you're running windows 10 or so it's a modern box
dr|z3d
his cpu cooler might need reseating or re-pasting. he could have dodgy ram. his psu could be under specced. all sorts of hypothetical issues.
zzz
then it's not modern
mesh
dodgy ram wouldn't lead to a sporadic shutdown
zzz
the voltages as reported by sensors do swing wildly as the load goes up
zzz
can't watch videos on it any more, shuts down within a couple minutes
mesh
zzz: ouch, really? well in that case you should just buy a new box. Computers have actually improved significantly over the last 10 years for various reasons.
dr|z3d
try cpufreq-set perhaps.
zzz
I'm well aware of the trends in computers over the last 10 years, thanks.
dr|z3d
you can downclock the cores and run them all with the conservative governor, or if that doesn't work, powersave invariably will.
zzz
And I do have several of what you would call modern boxes here, just not this one
dr|z3d
zzz: 2022 is calling!
dr|z3d
if something functions, no sense just throwing it away because better, faster.
zzz
fix pushed, thanks eyedeekay
dr|z3d
older kit also has the benefit of forcing you to better optimize for slower hardware. if it runs well on "non-modern" kit, it'll run fantastically on the newer stuff.
zzz
I'll redo the build on a different box, then get to testing my translation patch, will let you know, low priority for me
dr|z3d
too many developers lose sight of where their code might actually be deployed.
eyedeekay
Thanks zzz, just ping me when you're ready
eyedeekay
if it's the one I remember, I think it's one certain enthusiasts will continue to buy long after it has been considered obsolete in the mainstream
mesh
eyedeekay: is it a potato?
zzz
eyedeekay, any ideas why the sdk manager gui is stuck at 29? didn't see anything about it being obsolete, but maybe it is?
zzz
the 'sdkmanager' is a workaround but a little wonky
zzz
*CLI
eyedeekay
I don't know for sure but I'll look into it, just a hunch, are you using it from the debian package?
zzz
no
eyedeekay
OK that would have been too easy :)
eyedeekay
I'll figure it out
zzz
the gui is tools/bin/android, are you familiar? this was the pre-studio build lib installer/manager
zzz
I assume it's all in studio now
zzz
correction, tools/android
eyedeekay
Yeah I'm actually mildly confused that there would, the studio equivalent is almost identical and I had assumed they were the same thing and the sdk manager was being launched by the Studio menu
eyedeekay
*there would be a difference
eyedeekay
If there's no difference then maybe we can just drop the studio version of the configuration in where the SDK manager is looking
zzz
the thing is, the CLI tools/bin/sdkmanager sees the latest, but tools/android doesn't
zzz
hmm, now it's showing what I have installed at least
zzz
but not recent ones that aren't installed
eyedeekay
Getting some answers, officially the GUI SDK manager became unsupported with the end of the ADT plugin for Eclipse in 2015, at some point since then this problem has emerged
eyedeekay
They might have put in a check against new versions at some point, or maybe the feed format for the updates changed slightly, don't know for sure
zzz
are you on 33 now? or 32?
eyedeekay
I'm on 33 in the emulator in Android Studio and 32 on my hardware
zzz
what about for SDK platform, build-tools, and platform-tools?
zzz
ok I see you have 31 in gradle.properties
eyedeekay
sorry my lunch was boiling over, yeah minimum SDK version is 21, target SDK version is 31
zzz
should you be updating target SDK every release? or is that a bad idea? how do you decide?
zzz
do we only increase if something breaks? I can't remember, it's been so long...
eyedeekay
I've not been clear on that in the past but having done it a couple times now I think it makes sense to do it when new numbered API's and/or Android versions come out
eyedeekay
I *think* because it seems to be that sometimes you can end up being incompatible with newer devices without code changes, which are usually small and manageable
zzz
well, you're two behind, latest is 33
zzz
so if that's the best practice, add it to the checklist
zzz
so you're recommending I change it to 33 and build and test with that?
eyedeekay
Will do
eyedeekay
For now I know it's safe to test it in the state that it's in and that it works on 33+ devices, so if you want to leave the target the same it will be fine and I'll update the target SDK version tonight
zzz
ok, so I'll build and test as-is with 31
zzz
what are you using for build-tools and platform-tools?
zzz
do you always update those to the latest before the release?
zzz
I don't think they have to match SDK platform
eyedeekay
That all gets configured by Android Studio and they don't have to match, just a sec while I figure out how to display the platform-tools
eyedeekay
my build-tools is 33.0.1
eyedeekay
My platform-tools is 33.0.3
zzz
ok, those appear to be the latest, so I'll use those also, with SDK platform 31
zzz
thanks
zzz
sorry for all the q's, it's all left my brain
zzz
looks like there's a new signing key config I'll have to figure out too
eyedeekay
No problem
eyedeekay
apk should have the same signing key setup, it's just the GPlay builds that have to be `.aab` style packages that require new a different signing key setup now
zzz
ok
dr|z3d
in other news, I've pushed the button on the exploratory/participating naming changes.
dr|z3d
exploratory -> utility; participating -> transit.
dr|z3d
your integrated -> floodfill change nudged me to do the rest, zzz.
dr|z3d
still debating whether Unreachable should be changed to Firewalled.
eyedeekay
Ah, I knew I must have had a reason for leaving it at 31... it requires upgrading to gradle >=7, which breaks the maven gradle plugin, so I have to migrate off that to upgrade completely
mesh
eyedeekay: build.xml?
eyedeekay
No it's the android-specific one, it's gradle/maven-push.gradle
eyedeekay
You'll be able to see it clearly in what I'm about to check in
eyedeekay
Need to migrate from `maven` to `maven-publish` I think
anonymousmaybe
another issue is that android user can set whatever router encryption available including sha1