00:42 < bridge> Finally 02:55 < bridge> Meow, figured out that ddnet has a kinky checksumming system in place (in plain sight) which measures various a number of code related parameters both at runtime and build time. 02:55 < bridge> Kinda surprised to see that it goes to the point of allowing the server to retrieve the hash of arbitrary sections of the game image on the fs lol 02:55 < bridge> 02:55 < bridge> At a glance it seems like TeeFusion is probing at join time both one of such parameters and retrieving the hash of a section of the executable. 02:55 < bridge> 02:55 < bridge> I hope that not many other servers are going to take on the business of blocking clients on the simple basis that they don't match 1:1 the official executables ☔ 07:41 < bridge> ez 09:50 < bridge> Sounds worth if you dont want other clients than DDNet's on your server ^^ 10:44 < bridge> i love this github roast thingie 10:44 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1330835210660741170/image.png?ex=678f6c5f&is=678e1adf&hm=50bf543234c31f7bb6568e93aaa1315bf0df41c6f8b7903bff9a74e91549e813& 11:03 < bridge> i thought this is supposed to roast you, not every DDnet Player :feelsbadman: 11:25 < bridge> wtf is that 😄 ? 11:41 < bridge> https://github-roast.pages.dev/ 11:51 < bridge> To my fellow open source contributors. GNU AGPLv3 is currently the most strict GPL, no? It forces any code-change to be open source 11:58 < bridge> You can probably craft something more restrict. 11:58 < bridge> 11:58 < bridge> But AGPL disallows servers to be closed source, even if not distributed. They basically say that hosting the server is a service, and that service is a distributed. 11:59 < bridge> You can probably craft something more restrict. 11:59 < bridge> 11:59 < bridge> But AGPL disallows servers to be closed source, even if the binary is not distributed. They basically say that hosting the server is a service, and that service is a distributed. 11:59 < bridge> You can probably craft something more restrict. 11:59 < bridge> 11:59 < bridge> But AGPL disallows servers to be closed source, even if the binary is not distributed. They basically say that hosting the server is a service, and that service is a distribution. 12:01 < bridge> https://github.com/rust-lang/rust/pull/116161 12:02 < bridge> in 31 days rust 2024 releases 12:04 < bridge> Is there any way to run ddnet client on an ios device? preferably without using an emulator 12:05 < bridge> no 12:05 < bridge> https://koto.dev/ 12:05 < bridge> wasm 12:24 < bridge> Ah, thanks! We are currently discussing in our company about open-sourcing & what license to choose from 12:25 < bridge> it is the one that enforces the 4 user rights the most best 12:25 < bridge> so yes its the best license 12:25 < bridge> debatable 😬 12:25 < bridge> 😬 12:25 < bridge> u need to be pragmatic in this world https://www.gnu.org/philosophy/pragmatic.en.html 12:26 < bridge> AGPL is not pragmatic imo 12:26 < bridge> @avolicious what u open sourcing? 12:26 < bridge> it is 12:27 < bridge> For pragmatism, you need some form of "i dont care" 12:29 < bridge> gnu has a ideal and to apply this ideal it is pragmatism 12:29 < bridge> gnu has a ideal and to apply this ideal it needs pragmatism 12:29 < bridge> isnt that idealismus xD 12:29 < bridge> A small VPN helper for MacOS 😄 Its just a side project, but I would like to setup a basic open source contribution guideline ^^ 12:29 < bridge> lism* 12:29 < bridge> > Every decision a person makes stems from the person's values and goals. People can have many different goals and values; fame, profit, love, survival, fun, and freedom, are just some of the goals that a good person might have. When the goal is a matter of principle, we call that idealism. 12:29 < bridge> > 12:29 < bridge> > My work on free software is motivated by an idealistic goal: spreading freedom and cooperation. I want to encourage free software to spread, replacing proprietary software that forbids cooperation, and thus make our society better. 12:29 < bridge> > 12:29 < bridge> > That's the basic reason why the GNU General Public License is written the way it is—as a copyleft. All code added to a GPL-covered program must be free software, even if it is put in a separate file. I make my code available for use in free software, and not for use in proprietary software, in order to encourage other people who write software to make it free as well. I figure that since proprietary software developers use copyright to stop us 12:29 < bridge> > 12:29 < bridge> > Not everyone who uses the GNU GPL has this goal. Many years ago, a friend of mine was asked to rerelease a copylefted program under noncopyleft terms, and he responded more or less like this: 12:29 < bridge> > 12:30 < bridge> > “Sometimes I work on free software, and sometimes I work on proprietary software—but when I work on proprietary software, I expect to get paid.” 12:30 < bridge> > 12:30 < bridge> > He was willing to share his work with a community that shares software, but saw no reason to give a handout to a business making products that would be off-limits to our community. His goal was different from mine, but he decided that the GNU GPL was useful for his goal too. 12:30 < bridge> > 12:30 < bridge> > If you want to accomplish something in the world, idealism is not enough—you need to choose a method that works to achieve the goal. In other words, you need to be “pragmatic.” Is the GPL pragmatic? Let's look at its results. 12:30 < bridge> But its written in rust 😄 12:30 < bridge> thats good 12:30 < bridge> @avolicious my work makes us use tailscale to connect to ssh 12:31 < bridge> i only use it on the m3 i got tho 12:31 < bridge> Its not about our VPN, its more about the clients vpn's 12:31 < bridge> Their setups are something pretty weird 12:31 < bridge> happens xd 12:32 < bridge> Haha, at their scale I would assume their setup is somehow efficient 12:34 < bridge> neat, they increased the tax on electricity 12:34 < bridge> from 10% to 21% 12:34 < bridge> epic capitalism 12:34 < bridge> But KoG also goes open source, just no contributions yet ^^ https://github.com/KoG-teeworlds/maps-workflow 12:34 < bridge> finally 12:34 < bridge> ah but not the server? xd 12:35 < bridge> when do you give me access to your m3? 12:35 < bridge> so i can add macos support lmao 12:35 < bridge> xD 12:38 < bridge> The gameserver itself is not planned as of now. But step by step 12:39 < bridge> To be fair, the gameserver doesnt differ a lot game-wise from ddnet. Physics and so on are still upstream compliant 12:56 < bridge> 😬 12:56 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1330868526671462471/image.png?ex=678f8b67&is=678e39e7&hm=353b6fb100435e28051800aea10b07bfa5629532a8ebb5bf6b7a4064166cbc73& 13:37 < bridge> can i have the ddnet server use a map file from a completly different path? 13:37 < bridge> 13:37 < bridge> trying to get my VPS to allow hot-reloading the server when i save the .map file i edit with ddnet-rs 13:37 < bridge> 13:37 < bridge> ddnet-rs is bound to the config directory at `~/.config/ddnet-editor-server` so the map file is in `~/.config/ddnet-editor-server/maps/map.map` 13:38 < bridge> you can simply modify the storage.cfg to use the same path 13:39 < bridge> dat works? :o 13:39 < bridge> i don't think ddnet-rs writes any files ddnet uses 13:39 < bridge> yeah edit the first line in storage.cfg and use a global path instead 13:39 < bridge> i think that should work 13:39 < bridge> But you can also simply add new paths 13:39 < bridge> i think that is what ddnet-maps repo is doing too 13:39 < bridge> https://github.com/ddnet/ddnet-maps/blob/master/storage.cfg 13:47 < bridge> that didnt really work - but i just symlinked it which seems to work :kekw: 13:47 < bridge> how does it reload it? 13:47 < bridge> with rcon? 13:48 < bridge> or better: how does ddnet server hot reload? 13:50 < bridge> i think it just checks if you're authed and the editor is saved, i just do it manually via `reload` 13:50 < bridge> would be annoying for the map to reload every ~60 seconds (e.g save interval) anyway atm. 13:50 < bridge> 13:50 < bridge> tho i'm not sure how to properly integrate everything together 13:51 < bridge> yeah 13:51 < bridge> the editor server currently doesnt save anyway, basically for that exact reason 13:51 < bridge> u can save locally tho 13:52 < bridge> oh it doesnt? 13:52 < bridge> so the file on my VPS stays untouched? 13:52 < bridge> or how does that work 13:52 < bridge> rn yes, i can patch it directly 13:52 < bridge> but let's first discuss the goal 13:52 < bridge> yeah 13:52 < bridge> i guess the general goal would be a simple `play map` button :kekw: 13:53 < bridge> - e.g. how to force a save on the server from client 13:53 < bridge> - how to configure the save periode 13:53 < bridge> - is it important that it only saves the map if file actually changed 13:53 < bridge> ye 14:09 < bridge> okay the way i do it now is super sketchy but it works lmao 14:10 < bridge> i'm such a windows scripter 14:10 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1330887255476404344/image.png?ex=678f9cd8&is=678e4b58&hm=789bc06485fec4d101bed7ea19d040fbaaa1fceedb1395ea7e6365afb49543f1& 14:17 < bridge> please pin this, maybe in #showroom 16:42 < ws-client> @dynamofox this discussion does not belong in a public channel. But I can tell you this much I can join all teefusion servers with selfcompiled chillerbot just fine. I think @0xfaulty fixed that for me last time. I can reproduce ddnet-git from the aur being blocked. 16:48 < bridge> <0xfaulty> Yes, but this is more of an exception. Ideally, there should be an official checkable image for Linux from DDNet, with same build files like on Windows 16:49 < bridge> It'll never work reliably unless one builds with the same toolchain of the official exes and the the build process is reproducible. 16:55 < ws-client> hmm @0xfaulty on arch linux it is common to have programes compiled from source when installing them ._. 16:58 < bridge> At that point one might also be more inclined to consider the idea of using the official builds. 16:58 < bridge> 16:58 < bridge> Because iirc the current official builds are just some opaquely built blobs whose dependencies were also opaquely built some time ago and stashed in the ddnet-libs repository on some opaque built system. 16:58 < bridge> <0xfaulty> Unfortunately, at the moment, there is no other way to block custom-built clients 16:59 < bridge> btw note that I wouldn't like to insinuate that the current exes are built with malicious intents ^^. 16:59 < bridge> 16:59 < bridge> It's just hard to ponder how trustworthy they are. 17:03 < bridge> btw note that I wouldn't like to insinuate that the individual who builds the current exes does so with malicious intents ^^. 17:03 < bridge> 17:03 < bridge> It's just hard to ponder how trustworthy they are. 17:05 < bridge> At that point one might also be more inclined to consider the idea of using the official builds. 17:05 < bridge> 17:05 < bridge> Because iirc the current official builds are just some opaquely built blobs whose dependencies were also opaquely built some time ago and stashed in the ddnet-libs repository coming from some opaque build system. 17:06 < bridge> Sometimes this open-source only people are weird. They dont trust pre-compiled software, but they trust their bank with their money 17:08 < bridge> Sometimes this open-source only people are weird. They dont trust pre-compiled software, but they trust the bank with their money 17:09 < bridge> I *somewhat* trust my bank with my money 17:10 < bridge> and I'm only against precompiled software when I *need* it to work and it's occasionally temperamental 17:12 < bridge> the code is the best documentation and if I don't have access to that then how am I supposed to know what I'm doing wrong 17:12 < bridge> So you dont play any game besides teeworlds 17:12 < bridge> I don't *need* games to work 17:12 < bridge> > the code is the best documentation and if I don't have access to that then how am I supposed to know what I'm doing wrong 17:13 < bridge> This is DDNet, so hopefully not too much work related 😄 17:13 < bridge> Yeah, I'm just talking in general 17:13 < bridge> I've had a good few instances where I couldn't find the solution in the documentation but looking at the source made my issue instantly obvious 17:14 < bridge> with various pieces of software 17:15 < bridge> I was more referencing to DynamoFox's statement 17:20 < bridge> I do think it's a shame that people get punished for not using the official builds, pretty weird even 17:21 < bridge> But why? Let server hosters decide what types clients they want to accept 17:22 < bridge> Is it wrong to be a little reticent about running opaque binary blobs built by some single individual without any other oversight? 17:22 < bridge> 17:22 < bridge> The relationship one has with a bank is of a different kind and with actual contractual obligations on from both sides and some safeties for basic bank account operation. 17:23 < bridge> And what if I download the latest build from Github Actions, will that be official enough for those servers or will they complain because I'm trying to test something fresher than the latest release? 17:24 < bridge> If I dont want experimental clients, sure 17:24 < bridge> You can decide what bank you are using & other banks can deny your bank if they dont want to work with them 17:24 < bridge> I agree with that. But if you're going to mandate a client it has to be trustworthy to a degree. 17:24 < bridge> 17:24 < bridge> It also unjustly highs the responsibility bar on the one who builds in case stuff goes rouge by accident on its build machine. 17:25 < bridge> It always does 17:25 < bridge> something something Nix 17:25 < bridge> to be clear I'm not one of these Nix nuts 17:27 < bridge> Is it wrong to be a little reticent about running opaque binary blobs built by some single individual on some hobby project without any other oversight? 17:27 < bridge> 17:27 < bridge> The relationship one has with a bank is of a different kind and with actual contractual obligations on from both sides and some safeties for basic bank account operation. 17:29 < bridge> I agree with that. But if you're going to mandate a client it has to be trustworthy to a degree. 17:29 < bridge> 17:29 < bridge> It also unjustly highs the responsibility bar on the one who builds the whitelisted client in case stuff goes rouge by accident on its build machine. 17:30 < bridge> I agree with that. But if you're going to mandate a client it has to be of a trustworthy origin to a degree. 17:30 < bridge> 17:30 < bridge> It also unjustly highs the responsibility bar on the one who builds the whitelisted client in case stuff goes rouge by accident on its build machine. 18:07 < bridge> they have no way to proof if your client is trustworthy enough 18:07 < bridge> prove* 23:33 < bridge> I do trust enough into my bank and the government to protect up to 100k but if I had a choice I would never use a bank account. I only use it to get a paycheck and pay rent/electricity and all the other things that refuse to operate on cash. 23:42 < bridge> this sounds like something that would lead into cryptocurrency nonsense 23:50 < bridge> Crypto is nice 23:52 < bridge> teeworlds nfts