[Cyril Brulebois] > From the python doc, it isn't obvious to me what changed between 2.6 > (squeeze) and 2.7 (wheezy), if that's indeed the default version > that's being used in both cases: > http://docs.python.org/2/library/subprocess.html
Me neither, but it did stop working in that time frame. :/ > Anyway, you had exception issues, and the doc says notably: > | The most common exception raised is OSError. This occurs, for example, > | when trying to execute a non-existent file. Applications should > | prepare for OSError exceptions. > > You may want to introduce some exception catching in later versions? Yes, got a larger rewrite pending in svn, but held it back to try to get the wheezy version fixed first. > Anyway, since what's in unstable seems to do the job, please prepare > a source debdiff against wheezy's source package, using a 0.8~deb7u1 > changelog entry on top of it, with wheezy as a distribution. Diff attached. Identical to the previous diff, except the version number. > (Once we ACK it, build with -v0.7 so that we get proper changes and > Closes: for the BTS, and version tracking should be our friend.) Ack. -- Happy hacking Petter Reinholdtsen
diff -ur libpam-mklocaluser-0.7/debian/changelog libpam-mklocaluser-0.8~deb7u1/debian/changelog --- libpam-mklocaluser-0.7/debian/changelog 2011-07-28 19:20:37.000000000 +0200 +++ libpam-mklocaluser-0.8~deb7u1/debian/changelog 2013-05-22 12:53:22.000000000 +0200 @@ -1,3 +1,9 @@ +libpam-mklocaluser (0.8~deb7u1) wheezy; urgency=low + + * Rewrite runcmd() to work with Python on Wheezy (Closes: #706753). + + -- Petter Reinholdtsen <p...@debian.org> Sat, 04 May 2013 08:25:53 +0200 + libpam-mklocaluser (0.7) unstable; urgency=low * Rewrite how Popen() is used to ensure the script wait for the diff -ur libpam-mklocaluser-0.7/debian/pam-python.py libpam-mklocaluser-0.8~deb7u1/debian/pam-python.py --- libpam-mklocaluser-0.7/debian/pam-python.py 2011-07-26 16:18:23.000000000 +0200 +++ libpam-mklocaluser-0.8~deb7u1/debian/pam-python.py 2013-05-04 13:35:27.000000000 +0200 @@ -16,13 +16,16 @@ import syslog def runcmd(pamh, cmd): - proc = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE,) + proc = subprocess.Popen(cmd, shell=True, \ + stdout=subprocess.PIPE, \ + stderr=subprocess.PIPE,) while proc.poll() == None: pass - result = proc.communicate(input=None)[0] - if result != 0: - syslog.syslog("Command %(command)s failed with %(msg)s" % ( cmd, proc.stderr.read()) ) -# print "output: %s" % output + (resultstdout, resultstderr) = proc.communicate(input=None) + if proc.returncode != 0: + msg = "Command '%s' failed with %s" % ( cmd, resultstderr.strip()) + syslog.syslog(msg) +# print "output: %s" % msg def check_and_create_localuser(pamh, user): # Location of local users