|
|
Subscribe / Log in / New account

Debian's "global" package visits the Technical Committee

By Jake Edge
October 26, 2016

Debian package maintainers have famously wide latitude in making technical decisions about their packages. There are few checks on that power, though the distribution's Technical Committee (TC) has some rarely used abilities to rein in maintainers who are not acting in the best interests of Debian and its users. A recent request that the TC help resolve a dispute with the maintainer of the package for the GNU GLOBAL source-code tagging system shows just how knotty solving that kind of problem can be.

The Debian "global" package is based on version 5.7.1 of GLOBAL, which was released in 2008 and is seriously obsolete according to the upstream project. Back in 2010, a bug was filed that asked package maintainer Ron Lee to update to the then-current 5.9.2 release. Over the next several years, others piled on, asking that the Debian package be updated, with no response from Lee. But, when GLOBAL developer Shigio Yamaguchi orphaned the package in 2013, Lee did respond; he pointed out that Debian was then frozen for the "Wheezy" (Debian 7) release, but also noted that there is a fundamental problem with part of the newer versions of GLOBAL:

I cannot feel comfortable about introducing a new interface for end-users that requires them to run a freshly generated script, from an unsecured directory, as root, as part of normal invocation and use, from distro packaged software.

Lee had patched around that problem (with the "htags" feature) in the versions of the package he released from 1999 to 2009; he also suggested a fix to the upstream project that was apparently rejected by Yamaguchi. The htags feature provides a way to browse the source code and tags using CGI scripts that are generated from the source. Those must be installed in system-wide location, which requires root privileges.

In response to Lee, Yamaguchi noted that any bug reports or feature requests for GLOBAL should be posted to the bug-global mailing list. Lee argued that nothing had changed since it had been discussed earlier (evidently in private email), however. Over the next year or so, there were some others asking about updating the Debian global package in the bug, once again without any response.

In March 2014, though, a different tack was tried. Punit Agrawal posted about some progress he had made in creating an updated global package. He had not encountered the problem with the htags feature, since he doesn't use it. That feature is believed to be little-used, though there is no real data on exactly how little-used it is.

What is clear is that Lee is frustrated with how GLOBAL is developed and the choices the project has made in how it gets installed, while some of the users of GLOBAL are frustrated with the way-old version of it that is packaged for Debian. Lee described the problems he sees in response to Agrawal's efforts to package the newer version:

Global creates everything that is needed, but installing it to the system requires privilege that an ordinary user should not have. Which means we need a secure and sensible interface for someone with that privilege to exercise it, in a way that meets the normal distro expectations and standards.

A generated script that the user is required to run as root, or making a privileged system directory 777 writable is not such an interface.

The obvious solution (to some, at least) is to simply patch out the htags piece, but Lee was opposed to that option as well: "Saying 'I don't need this, so I'm just going to remove it for everyone else to rush out the bits that _I_ want' is not an acceptable solution." The security issue that Lee is raising is serious, but tangential to the main use of the tool, at least for those posting in the bug. Yamaguchi's suggestion to create a "global6" package that removed the CGI piece was also shot down by Lee. Instead, he argued, any bugs in the existing global package should be identified and fixed.

That's where things stood until Wei Liu filed another bug in March 2016 asking that the global package be updated to 6.5.2. Several others agreed that an update would be useful, but Lee did not reply. By October, though, Vincent Bernat, who also participated in the first bug report, was seemingly fed up; he suggested that if another maintainer could be found, this problem could be taken to the TC for resolution. Agrawal said that he was willing to take the global package over and would prefer that Lee be given the chance to reconsider, rather than simply routing around him by creating a global6 package.

Enter the TC

To that end, Bernat filed the TC bug on October 19. In it, he asked that the TC either find a way to convince Lee to update the package or overrule his decision not to do so; if being overruled is not acceptable to Lee, he asked that the maintainership be handed off to Agrawal. Wookey agreed that the problem appears to be intractable at this point:

The current situation is that the existing version is so old that it doesn't work properly with modern code any more, but the maintainer has refused to do any of:

1) upload a new package,
2) allow an upload which removes the offending CGI bit (which users don't really care about anyway)
3) write something to change the local behaviour to be satisfactory.

Upstream has been clear that they are not going to change how it works, but they don't care if debian omits that bit or changes it locally, so it seems to me that a maintainer has to do one of the above three things. 5 years of this is more than long enough to conclude that they are not doing their job adequately, and because of our strong maintainership culture, are preventing other people from doing that job.

As might be guessed, Lee sees things rather differently. In his lengthy reply (one of several long responses to the TC bug), it is clear that he believes the fault lies with the upstream GLOBAL project being unwilling to change or drop the htags feature so that it can be installed sanely on Debian. In fact, he said, the project has changed the interfaces that he and Yamaguchi worked out in 1999 such that his changes to GLOBAL to package it for Debian no longer work. Thus, he is between a rock and a hard place:

I want a good solution to this at least as much as anyone else does, but the path of least resistance is what makes a river crooked, so if we don't want this to end up as some sort of bug infested billabong spreading disease to the people who use it, then we will need some better answers than just "blindly package and upload a new upstream version" - because the minimal work needed to do just that is not the actual problem here.

He and Bernat went back and forth a bit, but it is clear that no one is changing any minds and progress is not being made. Many of the participants obviously have their heels dug in—Yamaguchi on htags staying in the upstream version, Lee on the insecurity of the htags, Bernat and others on the global version currently packaged. Removing htags from the Debian package would seem an option, but Lee is leery of doing that without getting more information on who is actually using the feature; he is worried that any htags users will be unhappy with a new version without that feature:

Because one way or the other, _somebody's_ toys are going to be broken here in the absence of sanity from upstream. And if we're going to make a consensus decision here about whose toys that should be, then we need to be able to explain that to them in some better way than "Vincent said 'better you than me'".

TC member Tollef Fog Heen tried to find some middle ground. He agreed with Lee that making uninformed decisions is not sensible, but wondered if this had all been going on too long:

On the other hand, waiting forever isn't productive either, which I think is where a lot of Vincent's frustration comes from, that it's hard to know when we've waited «long enough».

I'm leaning towards dropping htags, since that seems to have problems security-wise (the idea of generated CGIs don't fill me with joy, at least, and hopefully not many others either), and also has a lot less value today than it used to back in the days.

It turns out that Lee may be coming around to that conclusion as well. The changes made to GLOBAL in the interim have made it even less palatable to ship the htags piece and he had suggested several times that Doxygen could easily replace htags for those that do actually need to browse the source code and tags from the web. He also noted that patching the existing version of the Debian global package to fix the problems that people are running into might be possible as well.

It isn't exactly clear which path Lee will take, but he seems to be backing down, at least a bit, on the requirement to keep the htags piece in the Debian package. But, what is clear is that it took an escalation to the TC to even get Lee to engage about the problem; progress may be made soon, but it seems somewhat counterproductive to force an escalation to make that happen. As Wookey put it:

Debian used to have a (largely deserved) reputation as an unpleasant project to work in. We've done a lot in the last few years to improve that situation. I invite the TC to reflect on how this would have played out if global had had a different maintainer. This is (or should be) about attitude, responsiveness, and helpfulness, at least as much as the technical (htags) debate.

Certainly, blocking any updates for nearly a decade over a dispute about how a certain feature should work—even because of security concerns—is not helping anyone. If Lee lost confidence in the upstream project, as it appears he has, then allowing someone else to take over the maintainership would seem the right course. Protecting existing users from having their workflow interrupted by removal of an ancillary feature is to be lauded at some level, but keeping up with the "new shiny" is part of the maintainer's responsibility as well. It can be a difficult balance to strike.

No formal resolution of the TC bug has occurred; the members may be hoping to see the problem resolved without actually having to take that step. When pressed, Lee can seemingly muster up strong and voluminous arguments for his course of action, but it is a bit hard for outsiders to see things his way. While he may be skeptical that the "new shiny" adds any real value, many users of the package have effectively routed around him to simply take the upstream version because the ancient Debian version does not work for them. That is an unfortunate outcome—and one to be avoided if possible.



to post comments

Splitting the package

Posted Oct 27, 2016 13:55 UTC (Thu) by epa (subscriber, #39769) [Link] (1 responses)

Isn't it common for a single upstream project to become multiple packages? So the weirdy-beardy generated CGI feature could be packaged separately and not installed by default.

Splitting the package

Posted Oct 27, 2016 20:33 UTC (Thu) by ovitters (guest, #27950) [Link]

That's done if the upstream is modular enough to allow it. This article talks about patching things out.

Debian's "global" package visits the Technical Committee

Posted Oct 29, 2016 4:38 UTC (Sat) by satbyy (guest, #107278) [Link]

Albeit anecdotal, in my decade of C programming career in several companies, I haven't come across anyone who actively used htags. Most of them use Vim or Emacs package to interface with gtags/global (i.e. without htags). So dropping htags or moving it out to a separate debian package makes sense. Anyways, those who want htags can always build from upstream source (like they are doing now already because the debian package is stuck at 5.x).

Debian's "global" package visits the Technical Committee

Posted Nov 4, 2016 5:01 UTC (Fri) by toyotabedzrock (guest, #88005) [Link] (1 responses)

If they had a different maintainer there would be a security problem sitting there as we speak. And maybe a nice logo to accompany it.

Being hard headed to prevent bad security is needed because people will whine and complain endlessly.

See Yahoo for what being agreeable instead of secure brings you.

Debian's "global" package visits the Technical Committee

Posted Nov 7, 2016 19:46 UTC (Mon) by JanC_ (guest, #34940) [Link]

The article includes at least 3 different ways other maintainers proposed to solve that security issue (some even had packages ready to implementing them).

And I wonder how many less-obvious security issues (possibly fixed in newer versions) the rest of that old code has…


Copyright © 2016, Eklektix, Inc.
This article may be redistributed under the terms of the Creative Commons CC BY-SA 4.0 license
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds