Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

pkgin changes behavior if output is a tty or not, breaks Ansible #46

Closed
jeffrizzo opened this issue May 6, 2015 · 4 comments
Closed
Assignees

Comments

@jeffrizzo
Copy link

when the '-p' flag was added (a good thing!), a change was also made to have this if output is not a tty.

This breaks (among other things, probably) pkgin's usage in ansible. (See
ansible/ansible-modules-extras#316? for more details)

in other words: to support future tools better, you broke existing tools :(

I'm not certain whether switching back is a good thing or not at this point; it's worth pointing out that this affects all versions of ansible from 1.7 to 1.9.1 - ansible 1.6.3 (which is the current version in pkgsrc) has more limited pkgin support, and doesn't break in this particular way (but it breaks in other ways, which were fixed in newer ansible, at least until pkgin broke it entirely)

@bixu
Copy link

bixu commented Jun 3, 2015

I believe this is also causing trouble for anyone using Chef (it certainly is for my org).

@jperkin
Copy link
Contributor

jperkin commented Jun 25, 2015

I've worked around this in pkgsrc ansible for now, so that we have a working ansible package for 2015Q2:

http://mail-index.netbsd.org/pkgsrc-changes/2015/06/25/msg126311.html

As this pkgin behaviour has been in a few branches now I think we have no choice but to support both types of output in programs that parse it, as I've done above. However I'd still like to see this fixed as it's bound to catch other people out when they switch from e.g. pkgin list to pkgin list | grep ... and wonder why the output changed.

It's also worth noting that ';' as a delimiter isn't ideal, as there are a few packages which include semicolons in their COMMENT field:

$ git grep "^COMMENT=[^#]*\;"
chat/gg2/Makefile:COMMENT=      Instant messenger software for Poland; Jabber plugin included
devel/bcc/Makefile:COMMENT=             Bruce Evans' C compiler (with as and ld); can do 16-bit code
devel/p5-Dist-Zilla/Makefile:COMMENT=   Perl 5 module distribution builder; installer not included
games/crossfire-client-gtk/Makefile:COMMENT=    Multi-player graphical arcade and adventure game; GTK client
games/crossfire-client-gtk2/Makefile:COMMENT=   Multi-player graphical arcade and adventure game; GTK2 client
games/crossfire-client/Makefile:COMMENT=        Multi-player graphical arcade and adventure game; X11 client
graphics/tkpiechart/Makefile:COMMENT=   Tcl/Tk pie-chart utility; in Tcl, not as an extension
security/hs-digest/Makefile:COMMENT=    Various cryptographic hashes for bytestrings; CRC32 and Adler32
security/libssh/Makefile:COMMENT=               SSHv2+v1 protocol library; libssh.org version ${VER}
www/bozohttpd/Makefile:COMMENT= Bozotic HTTP server; small and secure
x11/xless/Makefile:COMMENT=     X11 text viewer; useful as an add-on tool for other apps

so anything which does split(';') or similar is not guaranteed the same size output array each time.

jsonn pushed a commit to jsonn/pkgsrc that referenced this issue Jun 25, 2015
 - pkgin changed its output delimiter from a space to ';' when outputting
   to a non-tty, breaking various configuration management systems which
   relied on the previous behaviour.  Handle both types in ansible until
   NetBSDfr/pkgin#46 is resolved.

 - OS X 10.10 changed the behaviour of sysctl(8) to hide certain entries
   unless they are explicitly named.  Apply patch to fix hw.model and
   hw.usermem from https://github.com/ansible/ansible/pull/8171/files

Clean up patches while here.  Bump PKGREVISION.
@jperkin jperkin self-assigned this Aug 13, 2015
@jperkin
Copy link
Contributor

jperkin commented Aug 13, 2015

Fixed in 1f9e65f and released in 0.9.0 (now in pkgsrc).

@jperkin jperkin closed this as completed Aug 13, 2015
@bixu
Copy link

bixu commented Aug 13, 2015

super nice! thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants