FS#44743 - [couchdb] 1.6.1-4 executable requires getopt binary but util-linux isn't a dependency

Attached to Project: Community Packages
Opened by Jason Parrott (Moncader) - Monday, 27 April 2015, 09:18 GMT
Last edited by Sergej Pupykin (sergej) - Monday, 27 April 2015, 18:42 GMT
Task Type Bug Report
Category Packages
Status Closed
Assigned To Sergej Pupykin (sergej)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Description:
The CouchDB executable in /usr/bin/couchdb is a sh script that uses the binary getopt.
In cases of manual installation of Arch, say for containers where the base package is not installed, the util-linux package which contains the getopt binary is not installed on the system and CouchDB will not execute.

util-linux should be added as a dependency for the couchdb package.


Additional info:
* package version: 1.6.1-4
* $ cat /usr/bin/couchdb | grep -n getopt
350: options=`getopt hVa:A:ncibp:r:Ro:e:skd $@`

This task depends upon

Closed by  Sergej Pupykin (sergej)
Monday, 27 April 2015, 18:42 GMT
Reason for closing:  Fixed
Additional comments about closing:  in svn/trunk only
Comment by Doug Newgard (Scimmia) - Monday, 27 April 2015, 15:22 GMT
What makes you think it should work without base?
Comment by Jason Parrott (Moncader) - Monday, 27 April 2015, 15:25 GMT
It doesn't have to work without base. However with the current dependency list for pacman, it says it doesn't require base/util-linux and therefore I would expect it to work without it.
I would be perfectly happy with there being a dependency on base or more preferably on util-linux (since that is what it actually needs).
Comment by Doug Newgard (Scimmia) - Monday, 27 April 2015, 15:41 GMT
You might expect that, but you'd often be wrong. Many packagers assume the base group is installed.
Comment by Jason Parrott (Moncader) - Monday, 27 April 2015, 15:44 GMT
Even if that is so it does not make it correct :)

If it is not possible to fix this than can you answer how it might be possible to make CouchDB work using Pacman, using only reverse dependency checking like a package manager should be able to accomplish? Currently I don't see that as possible.

If you know of a way I'd be happy to use that.
Comment by Doug Newgard (Scimmia) - Monday, 27 April 2015, 15:55 GMT
Using pacman? `pacman -Syu couchdb base`.

FWIW I agree with you and don't personally think packages should have implicit runtime dependencies on base, but it's currently up the the maintainer to choose if they want to or not.
Comment by Jason Parrott (Moncader) - Monday, 27 April 2015, 16:02 GMT
Ah sorry. I meant how would you grab all the dependencies without having to install base, which brings in things like systemd which is unneeded for container technology. In CouchDB's case there is only a dependency on the util-linux package (sort of, its actually just the getopt binary which is kind of unfortunate) and it is quite heavy to bring in the whole base group.

To build a container (a rocket container) I'm manually grabbing the package dependencies using `pacman -Sii couchdb` and parsing for Depends On. By following this reverse lookup, util-linux is never pulled in and therefore knowledge that couchdb uses util-linux is required and manual installation is needed.

I know for the average system this is pointless to discuss. However for building custom, light as possible containers I personally believe this is important (though not urgent).

Loading...