On Mon, Aug 23, 2021 at 1:50 PM Nathan Hartman <hartman.nat...@gmail.com> wrote: > > On Mon, Aug 23, 2021 at 6:15 AM Johan Corveleyn <jcor...@gmail.com> wrote: >> >> On Fri, Aug 7, 2020 at 7:01 AM Robby Zinchak <s...@editingarchive.com> wrote: >> > >> > Small rant here from a very long time subversion user, regarding >> > subversion project's decision to compile out plaintext password storage by >> > default (https://marc.info/?l=subversion-commits&m=154101482302608&w=2). >> > >> > There are a tremendous number of scenarios where users would desire to use >> > subversion without a keyring -- for me, that's today running Ubuntu 20.04 >> > and trying to set up an automated subversion client on a server VM. I >> > obviously can't be logging into a keyring every time the server reboots, >> > that'd be idiotic. >> > >> > I cannot fathom how the team thought this was a good decision. It reeks >> > of devs thinking "we know better, force the users to do it this way," >> > without actually understanding the needs of your users. >> > >> > I'm left with four solutions as far as I can see it: >> > >> > 1) Crowbarring one of the supported keyrings into not needing a keyring >> > password. Assuming this is even possible, it seems like a lot of extra >> > work with no benefit, and added fragility. I am loathe to dive into a >> > whole set of docs to try and figure this out (assuming it's even >> > possible), when the old methods worked just fine. >> > >> > 2) Compiling my own subversion with the enable-plaintext-password-storage >> > flag -- obviously insecure since there's no way I'll be able to keep up >> > with software updates. And I've heard it's quite difficult to compile >> > subversion, so that'll waste precious time I could be spending on >> > something else that's actually productive for my business. >> > >> > 3) Finding an ubuntu package overlay by a third party, questionably >> > insecure since now I have to trust an unofficial/unvetted third party with >> > providing svn builds. >> > >> > 4) Bite the bullet and just switch to another VCS >> > >> > Every time version control comes up in dev conversations among my peers, I >> > go to great lengths to defend SVN against the many criticisms my peers >> > level at it and promote it to other devs looking for a quality VCS. But >> > honestly this decision is one of the most myopic ones I've seen in years >> > on any software project and reeks of the project developers making an >> > idealistic stand that inconveniences users with no practical real-world >> > benefit. The decision should be left to the user, rather than forcing >> > them into a difficult situation. The earlier change to make plaintext >> > something users have to intentionally opt into makes total sense so that >> > users are aware of what they're opting into - but removing it entirely is >> > too far. I guarantee you, right now there are people trying to puzzle >> > through this stack overflow answer, giving up, and switching to git. >> > (https://stackoverflow.com/questions/2899209/how-to-save-password-when-using-subversion-from-the-console) >> > This is a downright awful decision for the overall long term health of >> > what's left of the subversion userbase. >> > >> > I would love to hear what the expected workaround is for users running >> > automated subversion clients on server VMs, because all the options look >> > rather terrible. >> > >> > Thanks for listening to my rant, and be assured it comes only from a place >> > of wanting to see subversion succeed. >> > >> > Best, >> > Robby >> >> Late to te party, but I have to agree with Robby here. I'm only >> running into this now, since we'd like to upgrade the 1.9 client on >> our Solaris build machine to a more recent version ... sigh. >> >> I know the decision to disable plaintext pwd storage by default was >> briefly discussed on this very list [1], but sadly I didn't pay >> attention back then. I have a lot of respect for all people involved >> here, but I think this was a mistake, especially WRT server machines >> which don't have a GUI, no X11 etc. Or even if they have it installed, >> why force additional work on users / sysadmins that have been running >> these machines for years, and now have to jump through additional >> hoops, even if they decided before (through explicit configuration) >> that they were OK with plaintext password storage (= their decision / >> responsability). >> >> I have been defending Subversion at my company for a long time, >> highlighting its stability, simplicity and care for *backwards >> compatibility*. Unfortunately, backwards compatibility is broken here >> (I understand security can trump backwards compatibility, but to me >> this feels more like a "let's make this even more inconvenient" kind >> of security; not plugging a glaring security hole). So there goes one >> of my most important arguments pro SVN :-(. >> >> I know Stefan Sperling suggested in a reply to convince package >> maintainers, if necessary, to re-enable it with a configure flag (as >> he did for OpenBSD). But isn't that world upside down? Should every >> packager now explicitly enable it? Why not leave the default as it >> was, and tell package maintainers to disable it if they feel sensitive >> about this? >> >> Anyway, concerning package maintainers, for Solaris, I'm getting even >> more depressed ... >> * We were using Collab.net's distro, but apparently their Solaris >> build is no longer maintained: >> https://www.collab.net/downloads/subversion >> * Wandisco then? Nope: >> https://www.wandisco.com/source-code-management/subversion#solaris ... >> only Windows, Linux and MacOS. >> * Fortunately, there is still a relatively recent build on OpenCSW: >> https://www.opencsw.org/packages/subversion/ >> >> (-> Wandisco's link should be removed from >> http://subversion.apache.org/packages.html#solaris -- making that >> section empty ... or should we add a link to opencsw then?) >> (-> this abandoning of packagers / maintainers makes me feel our >> ecosystem is breaking down) >> >> So I guess my best shot is contacting the maintainer of the openCSW >> package, and asking him to add the --enable-plaintext-password-storage >> configure flag and make a new build then. >> >> Building it ourselves is not an option. >> >> [1] >> https://lists.apache.org/thread.html/6751582f2d8eda885722933f935a3c90d1b0adb0f9c9dbe536a5c2d7%40%3Cdev.subversion.apache.org%3E >> >> -- >> Johan > > > > Given the amount of complaints/trouble this change has led to, perhaps we > should rethink it and consider an approach where plaintext saving is always > compiled in but off until enabled by runtime config or something. > > In the meantime, even with plaintext support compiled out, SVN always > supports using passwords that are already stored.
Yes, I know. But with passwords being changed regularly, that's not going to help for long. > So, as a workaround, is it an option to use either Daniel Shahaf's zsh script > or Daniel Sahlberg's python script (both upthread I think) to store the > needed passwords? Thanks, those are good efforts (and thanks to both Daniels for writing them), but I'm afraid those workarounds are not good enough. The thing is: this is not for me alone. This needs to be handled in buildscripts that can be run by around 50 developers. I don't want to explain to them how to run an additional script when the password has been changed (and how / where do I manage the "canonical version" of such a script etc). I also don't want to write the additional plumbing in our buildscripts to automate this (capture a pwd failure from svn; propose to the user "hey, maybe the password was changed, want to type in a new one?"; run external script and handling its possible errors; all transparent to the user / dev that really doesn't want to know about all this ...). Maybe I should take a closer look at gnome-keyring or one of the alternatives, but ... first have to gather some energy to climb that hill. -- Johan