Everyone seemingly getting mad about systemd adding a completely optional date of birth field to user records that is, in reality, only ever going to be filled in on the machines of children administered by parents who want such restrictions enforced, perhaps on machines administered by schools, or by people who want their computer to wish them a happy birthday.

There’s a lot that can be said about the ineffectiveness of age gates or the problems of rating systems but those are better directed at legislators rather than open source maintainers working to ensure that distros are in legal compliance with flawed legislation by the deadline, especially with regards to laws like New York’s with serious privacy issues and that are pretty much unworkable by any open source projects

And also a lot to think about in terms of why educating parents is ineffective and the nature of the societal problems motivating these laws and how to address them in the real world with actual parents

The more I ruminate on this thought the more I realise that the way I see it is that the California law may be misguided but it's designed in a minimally invasive way, and I see that as intentional as opposed to the start of a slippery slope

On the flip side we have things like New York's proposal, which is unavoidably a major invasion of privacy
@erincandescent what differences lead you to see them so differently? 
@OctaviaConAmore California's law (and copies thereof) is entirely based upon self reported age. You get asked for your age when creating an account and also the OS can just throw that away if you're over 18 (I'm pretty sure an "I'm over 18" checkbox would be legal also, with any age entry field only appearing if you didn't check it)

New York's law requires IDV or similar
@erincandescent will see soon if its a slippery slope.
@erincandescent ... don't tell people about GECOS. 😅

@erincandescent default date, 1/1/1970

If there absolutely have to be a date there, also hoping for an ISO date, 1970-01-01

@erincandescent "working to ensure legal compliance" is the problem though. no one should be complying at all.
@trwnh if i were a person shipping a distro to users in California from the 1st Jan next year, I'd be asking who's going to pay my legal fees...
@erincandescent assuming the distro has a legal entity that california etc can sue? sure, maybe in that case. i don't envy being system76 headquartered in colorado, but i also am not using pop os. for a community project like arch, i am not sure how feasible it is for us states to sue some guy in germany or prevent the distribution of linux isos.
@trwnh as a person not in the US and with no intention to travel I'd personally feel fairly comfortable, but I might worry about mirror operators
@erincandescent @trwnh What legal fees?

Just slap a disclaimer you're not responsible for nor approving of users choosing to use it in non-Free locations and that they take the risk on their own.

"This distribution is not approved for use in police states. Do so at your own risk."

@erincandescent @trwnh Besides, Guix provides a hint of the solution for this.

The binary bootstrap seed.

Distribute everything as text, speech, that is to say, and provide the bootstrap as an image or shirt or something.

Then provide a very minimal boot image the user can use to enter the seed manually and overwrite the start of a disk (a very old school kind of editor isn't it?), with the next partition over (or a USB disk) containing the source for everything else, and now the blocking of such a distribution is a Free Speech issue.

UEFI provides most of the tooling necessary to make this require an absolute minimum object code (little enough to be auditable reasonably without source if need be).

@trwnh @[email protected] so how do distros with codecs from countries without software patents get away with being used in countries where that's Problematic
@erincandescent I don't think cute happy birthdays needed to be handled by systemd, and this is all done in the context of laws being pushed that would criminalise computer use without age verification. So I think now, and not later, is the reasonable time to push back on it.

@seachaint systemd maintains a standard for a user database format, because /etc/passwd is incredibly limited and lacking many fields you might want to store on a modern system.

It contains optional fields like a user’s e-mail address, “real name”, or details like identifiers of security tokens they might wish to use to unlock their account.

In this case they’re adding a definition of a dateOfBirth fields to a JSON map, and nothing more. In particular you will not find any particular age confirmation method here; it’s entirely up to self reporting by the system administrator(s)

@erincandescent @seachaint The fact that this surfaces whatsoever in systemd, and not some other fully independent subsystem, is damning of the architectural choices in systemd.

@jripley @seachaint it could be in a separate package called userdbd and you’d be complaining that Lenart’s 30 interconnected packages were taking over the Linux system 🤷

It’s not even actually a user database, it’s a replacement/alternative for the NSS interface that lets you query various properties of a user that multiple backends can plug into including several external backends (I’ve written my own! It’s trivial!) and several backends that e.g. provide synthetic users inside the systemd package itself.

@erincandescent If there were in fact 30 interconnected packages, which were fully disentangled, optional, and independent, I think you’d address the central issue everyone has with it. And this age verification nonsense would be an independent thing (or part of one of the above, which could easily be forked) and there would have been zero controversy.

@jripley the thing is that these things can’t be disentangled. One of the userdb backends is provided by pid1 itself, for example (to support the DynamicUser feature)

It’s very difficult to disentangle these things because so many of the things systemd touches are cross-cutting concerns that affect the whole system, and the reason it keeps touching them is that having them historically spread across so many packages has ossified so they are stuck in the 70s

@erincandescent The key complaint with systemd is that everyone warned it was in danger of assimilating a weird rewritten version of every daemon, because it was architecturally a monolithic source of truth, and then it blundered its way, very predictably, into exactly that. Even this is another example: it’s a choice to assimilate this too, when there are so many other ways. Like, UUID of user maps to age bracket. Independent service.
@erincandescent @jripley

except it doesn't need deep bidirectional integration for DynamicUser to work, as rose's gardenerdb (a userdb freestanding implementation) shows: https://git.pinkro.se/Rose/gardenhouse/gardenerdb.git/tree/examples

openrc, s6, and runit examples for dynamically allocated users
examples - gardenerdb.git - Drop-in standalone implementation of systemd-userdb

@navi @erincandescent @jripley TIL about gardenerdb, that's so damn cool

@navi @jripley which is exactly an example of how you can just take the userdb interface and reimplement it.

I don’t know what point you’re making. They could have implemented it in a separate project? Sure, at the cost of circular dependencies (systemd -> userdbd or at least the protocol definition -> libsystemd), or you split it into more projects and now you’re continually having to do commits across 7 separate repositories to implement simple features, bumping dependencies all the way.

You don’t like the implementation choices, you can reimplement it. Heck I’m pretty damn sure that systemd would work perfectly with gardnerdb (as long as you let pid1 itself provide the io.systemd.DynamicUsers service as it needs to do)

@erincandescent @jripley

> I don’t know what point you’re making. They could have implemented it in a separate project? Sure, at the cost of circular dependencies (systemd -> userdbd or at least the protocol definition -> libsystemd),

yes, the only reason gardenerdb exists is because userdb can't be used without systemd, at least not without incredible effort and we're all seeing the mess that is elogind breaking all the time

libsystemd is another nightmare, that is basically 5-ish different libraries in one, that who knows if it can work without systemd as pid1

having to reimplement thing after thing for the only reason that the project pushing for those things is hostile to alternate ecosystem is not sustainable

@navi @jripley as i say, i’m not without complaints

but you have to ask why nobody else has done any of these things.

@erincandescent @jripley

consolekit existed before logind pretty much killed it, and it has been revived by freebsd folks

smaller Wayland compositors brought us seatd to use over logind as well

if asking me, the only reason I can give to why there's no one else pushing so frequently for those large api refactorings, is because it takes a ton of effort and time, and not a lot of other projects had the power back then of a dozen or so full time red hat employees hired to work on such things

systemd could've benefited the whole unix ecosystem so much if they had cared to not be one huge self-referential system layer, but to work with the ecosystems, so it's forever sad to me that this is the path it went down
@navi Even ‘Poettering himself denied the push’ is the failure of systemd in a nutshell. Large scale system design should be with an understanding that it’s always going to invoke Conway’s Law. The choices made in systemd result in a single person having veto power. A better result would have been, ‘The community largely rejected inclusion of this plugin’. But that’s not a thing that was ever a consideration, from the start.
@erincandescent @seachaint Collecting data is not innocent. Are they going to add citizenship next? Would they like to add a religion field too?
@[email protected] I saw a take that "submitting" to these kinds of laws would never have happened on Linux 2 decades ago..

Because, as we all know, no company was selling Linux commercially in the early 2000s.
@erincandescent yeah from what I see that's something they could have added 50 years ago when they came up with the /etc/passwd file format, along with your phone number

@erincandescent "only ever going to be filled in on the machines of children administered by parents who want such restrictions enforced"

You say this as if it's not a huge problem in itself. We should not be building or shipping tools for abusive parents to use to surveil or control their children.

@dalias abusive parents will surveil and control their children whatever you do. Honestly if some of these parents decide to leave things up to the government (which is on average midly conservative) instead of themselves (which is quite often incredibly conservative) it might even be a net win

@erincandescent That doesn't justify being part to it and essentially forcing distros to ship an abuse-mechanism unless they actively patch it out (thereby having to make a highly charged political statement).

Yes a determined parent with technological know-how can always find a way to put such malware onto their child's machine. We should not be making it an out-of-the-box feature of "Linux".

@dalias A date of birth field in a user information record is an abuse mechanism?
@erincandescent @dalias um, yes. because its intended purpose is to prevent people from accessing resources that could help them survive.

RE: https://social.treehouse.systems/@mgorny/116274748222570834

@erincandescent Combined with other things, yes. See for example:

@erincandescent Right now, there is no standard place for a DOB field to be stored or for applications to know how to access that information or use it to enforce rules blocking access to information.

By creating standard places to store it and standard APIs to access it, you setup the infrastructure needed for these abuses to be something available out-of-the-box rather than requiring a ton of custom hackery by the abuser to setup.

@dalias i’m not sure what your actual argument is here.

Is it

  • “We shouldn’t provide parental controls because instead of using them responsibly to give children access to developmentally appropriate things they’ll abuse them to restrict what they can see”, or
  • “We shouldn’t provide parental controls because instead it should be the responsibility of those same abusive parents to watch over what their children are doing”, or
  • “We shouldn’t provide a system level age restrictions API because the parent might provide an accurate age to the relatively trustworthy computer (which will inevitably result in them providing it to relatively untrustwothy apps instead)”, or
  • “There is absolutley nothing harmful to children available on the internet and we should just provide them 100% unrestricted unmonitored access without age gates of any kind”?
@erincandescent @dalias 4) Parental controls don't protect kids, bans on advertising, tracking, and conversion therapy do.
@emma @dalias hey i’m all for these things but also think maybe we should do things to stop young children from accidentally wandering into pornography (especially but not limited to, to use an example, things like CNC scenes absent the context to understand things like pre-negotiated consent) or violent movies

@erincandescent @dalias that's fine, but don't make it easier for evangelicals to murder people along the way.

btw, when you say CNC I assume you don't mean computer numerical control, unless you want to block access to all of the precision machining content on YouTube.

@emma @dalias By CNC I mean consentual non consent.
@erincandescent @dalias we can't have nice things... I guess, everything has to have a double meaning for horny fic writers.

@erincandescent @emma Nobody "accidentally wanders into pornography". That's an excuse.

If you're really worried about this, you mandate that porn sites have a splash page that says "this is a porn site. what you're about to see is sexually explicit. do you want to continue?"

Children who are not actually looking for porn are going to hit the back button stat.

@dalias @lispi314 @erincandescent @emma thinking back, I discovered explicit porn arguing maybe 13 or 14 years old, but the things that haunt me the most even now are never sexual imagery, but rather, gore 

@erincandescent None of the above.

My position is not that there is nothing harmful on the internet, but that for both fundamental reasons and reasons of political capture by people who wish harm to any children who are not straight cis neurotypical, any attempt to gate access to information will both block critically important non-harmful things and fail to block the most harmful things.

I could go into my views on how parents should deal with these truths, but I don't believe that "how else are we supposed to PrOtEcT tHe ChIlDrEn??????" is relevant.

Protecting children is not on the table here.

Doing harm to children and harm to people who need to be anonymous are what's on the table.

@erincandescent @dalias

Parental controls imply giving a parent control over what the child sees. This goes in the direction of taking that control away and giving it to the law and whoever runs the service a young fellow is interacting with.

@robryk @dalias One of the things I see being discussed on the xdg-desktop-portal pull request is that the Age Verification service will provide the minimum viable API required to comply with the California/Coloradan/etc law, and that an entirely separate API would allow queries around specific content descriptors which would allow a much more capable decision system.

(In fact you could imagine such an API providing a way for you to configure for yourself that you don’t want to see certain things or that they should be hidden by default)

@robryk @erincandescent No, the direction we've always had is that *nobody has control* except someone who's hovering over them.

Government - pushed by industry, who wants to shed legal liability for the harms they are encouraging and amplifying on their platforms - is attempting to force us to participate in building a system of parental controls that's always there.

On top of that being bad enough in itself, it's a requirement they could change into "governmental controls" whenever they like.

@dalias @robryk Can you tell me which industry is pushing for social media bans for under (insert jurisdiction dependent age here)s? Because it surely can’t be the social media industry which stands only to lose users from this and I can’t see anyone else who is at all affected by this

@erincandescent @robryk Seriously? You think this agenda just popped up worldwide all the sudden without someone funding it all? 🙄

The receipts purporting to pin it on Facebook haven't been verified yet, but I thought it was widely understood that they're doing this to avoid blanket bans, hoping instead of herd underage users onto reduced-harm versions of their platforms while keeping all the maximal-harm stuff in place for adult users.

@dalias @robryk This popped up all of a sudden? It’s been building slowly for years now. It’s a long term political trend if you read the news.

I don’t think social media bans will actually do anything useful. I also think that it’s hard to think of any regulation that would mitigate the real harms here and not just open a different can of worms.

I mean, except for maybe legislating the abolition of Meta Platforms Inc and all associated companies.

@erincandescent @dalias @robryk It's likely less of "we really care about age info" and more "we care about liability and we want biometric data as it's just generally useful"

combined with

"the us government in this particular instance isn't supposed to collect this data and share it widely between departments /but it can buy it from third parties just fine/" kind of silliness

(disclaimer: I work at FB. I have no idea of what's actually going on internally here.)

@[email protected] @dalias I think it is only a positive iff used by the hands-off kind of parents

@dalias @erincandescent The thing I am worried about is when the first bit of software tries to use that API, even when I am located outside of the demanded age restrictions. And it does not really matter if that software is a web browser to provide fingerprinting, a media player to verify that I am not playing an R-rated movie or Steam to collect statistics.

I don't believe/trust this stays opt-in and if I don't provide anything, (1) nothing will complain and (2) nothing will use even the negative information against my will. I don't believe in adding an API that is supposed to not be used based on where I am geographically located.

(And I don't trust an API that emerged as a result of this geopolitical climate.)

I don't want such an API existing on my device, even if “the API itself is harmless” and the harm may come from “just” from the applications that utilise it.

@ledoian @dalias it’s Linux, you’re root, you can just change the code to simply lie or do whatever you want, you have that capability.

Unless someone legislates that you can no longer actually control your own computer (and yes, people are trying to do that), or systems are legislated to collect some kind of proof but that’s a completely different legislative problem

@erincandescent @ledoian Why are you so invested in defending the people doing stuff that the rest of us are telling you is an aggression against us?
@erincandescent @dalias Yes. Yes, I have that capability. But I imagine my use of the computer differently than patching random software so it has no access to an API that does not benefit me in any way.