[augeas-devel] Weird print result with Perl bindings on amd64

Dominique Dumont domi.dumont at free.fr
Sun Jan 11 15:19:49 UTC 2009


Hello

I'm facing a weird problem which occurs only through the Perl bindings
on amd64.

I'm using a sshd_config with 3 Match blocks. With a C program like this
one:

#include <augeas.h>
#include <stdio.h>

main () {
  augeas* a = aug_init("wr_root","/",0);

  aug_print (a,stdout, NULL);
}

I get the following correct print result for the Match blocks :
$ ./a.out
/augeas
/augeas/root = "wr_root/"
/augeas/save = "overwrite"
/augeas/files
/augeas/files/etc
/augeas/files/etc/ssh
/augeas/files/etc/ssh/sshd_config
/augeas/files/etc/ssh/sshd_config/path = "/files/etc/ssh/sshd_config"
/augeas/files/etc/ssh/sshd_config/lens
/augeas/files/etc/ssh/sshd_config/lens/info = "/usr/share/augeas/lenses/sshd.aug:59.12-61.36"
/augeas/files/etc/ssh/sshd_config/lens/id = "0x1ddba30"
/files
/files/etc
/files/etc/ssh
/files/etc/ssh/sshd_config
/files/etc/ssh/sshd_config/HostbasedAuthentication = "no"
/files/etc/ssh/sshd_config/HostKey[1] = "/etc/ssh/ssh_host_key"
/files/etc/ssh/sshd_config/HostKey[2] = "/etc/ssh/ssh_host_rsa_key"
/files/etc/ssh/sshd_config/HostKey[3] = "/etc/ssh/ssh_host_dsa_key"
/files/etc/ssh/sshd_config/Subsystem[1]
/files/etc/ssh/sshd_config/Subsystem[1]/sftp = "/usr/lib/openssh/sftp-server"
/files/etc/ssh/sshd_config/Subsystem[2]
/files/etc/ssh/sshd_config/Subsystem[2]/tftp = "/usr/lib/openssh/tftp-server"
/files/etc/ssh/sshd_config/Subsystem[3]
/files/etc/ssh/sshd_config/Subsystem[3]/rftp = "/usr/lib/openssh/rftp-server"
/files/etc/ssh/sshd_config/AcceptEnv[1]
/files/etc/ssh/sshd_config/AcceptEnv[1]/1 = "LC_PAPER"
/files/etc/ssh/sshd_config/AcceptEnv[1]/2 = "LC_NAME"
/files/etc/ssh/sshd_config/AcceptEnv[1]/3 = "LC_ADDRESS"
/files/etc/ssh/sshd_config/AcceptEnv[1]/4 = "LC_TELEPHONE"
/files/etc/ssh/sshd_config/AcceptEnv[1]/5 = "LC_MEASUREMENT"
/files/etc/ssh/sshd_config/AcceptEnv[2]
/files/etc/ssh/sshd_config/AcceptEnv[2]/6 = "LC_IDENTIFICATION"
/files/etc/ssh/sshd_config/AcceptEnv[2]/7 = "LC_ALL"
/files/etc/ssh/sshd_config/AllowUsers
/files/etc/ssh/sshd_config/AllowUsers/1 = "foo"
/files/etc/ssh/sshd_config/AllowUsers/2 = "bar at 192.168.0.*"
/files/etc/ssh/sshd_config/Match[1]
/files/etc/ssh/sshd_config/Match[1]/Condition
/files/etc/ssh/sshd_config/Match[1]/Condition/User = "domi"
/files/etc/ssh/sshd_config/Match[1]/Settings
/files/etc/ssh/sshd_config/Match[1]/Settings/AllowTcpForwarding = "yes"
/files/etc/ssh/sshd_config/Match[2]
/files/etc/ssh/sshd_config/Match[2]/Condition
/files/etc/ssh/sshd_config/Match[2]/Condition/User = "sarko"
/files/etc/ssh/sshd_config/Match[2]/Condition/Group = "pres.*"
/files/etc/ssh/sshd_config/Match[2]/Settings
/files/etc/ssh/sshd_config/Match[2]/Settings/Banner = "/etc/bienvenue.txt"
/files/etc/ssh/sshd_config/Match[3]
/files/etc/ssh/sshd_config/Match[3]/Condition
/files/etc/ssh/sshd_config/Match[3]/Condition/User = "bush"
/files/etc/ssh/sshd_config/Match[3]/Condition/Group = "pres.*"
/files/etc/ssh/sshd_config/Match[3]/Condition/Host = "white.house.*"
/files/etc/ssh/sshd_config/Match[3]/Settings
/files/etc/ssh/sshd_config/Match[3]/Settings/Banner = "/etc/welcome.txt"

But when I use perl bindings, I get :

$ AUGEAS_ROOT=wr_root perl -MConfig::Augeas -e '$a=Config::Augeas::init(); $a->print(STDOUT,"");'
/augeas
/augeas/root = "wr_root/"
/augeas/save = "overwrite"
/augeas/files
/augeas/files/etc
/augeas/files/etc/ssh
/augeas/files/etc/ssh/sshd_config
/augeas/files/etc/ssh/sshd_config/path = "/files/etc/ssh/sshd_config"
/augeas/files/etc/ssh/sshd_config/lens
/augeas/files/etc/ssh/sshd_config/lens/info = "/usr/share/augeas/lenses/sshd.aug:59.12-61.36"
/augeas/files/etc/ssh/sshd_config/lens/id = "0xf84a00"
/files
/files/etc
/files/etc/ssh
/files/etc/ssh/sshd_config
/files/etc/ssh/sshd_config/HostbasedAuthentication = "no"
/files/etc/ssh/sshd_config/HostKey[1] = "/etc/ssh/ssh_host_key"
/files/etc/ssh/sshd_config/HostKey[2] = "/etc/ssh/ssh_host_rsa_key"
/files/etc/ssh/sshd_config/HostKey[3] = "/etc/ssh/ssh_host_dsa_key"
/files/etc/ssh/sshd_config/Subsystem[1]
/files/etc/ssh/sshd_config/Subsystem[1]/sftp = "/usr/lib/openssh/sftp-server"
/files/etc/ssh/sshd_config/Subsystem[2]
/files/etc/ssh/sshd_config/Subsystem[2]/tftp = "/usr/lib/openssh/tftp-server"
/files/etc/ssh/sshd_config/Subsystem[3]
/files/etc/ssh/sshd_config/Subsystem[3]/rftp = "/usr/lib/openssh/rftp-server"
/files/etc/ssh/sshd_config/AcceptEnv[1]
/files/etc/ssh/sshd_config/AcceptEnv[1]/1 = "LC_PAPER"
/files/etc/ssh/sshd_config/AcceptEnv[1]/2 = "LC_NAME"
/files/etc/ssh/sshd_config/AcceptEnv[1]/3 = "LC_ADDRESS"
/files/etc/ssh/sshd_config/AcceptEnv[1]/4 = "LC_TELEPHONE"
/files/etc/ssh/sshd_config/AcceptEnv[1]/5 = "LC_MEASUREMENT"
/files/etc/ssh/sshd_config/AcceptEnv[2]
/files/etc/ssh/sshd_config/AcceptEnv[2]/6 = "LC_IDENTIFICATION"
/files/etc/ssh/sshd_config/AcceptEnv[2]/7 = "LC_ALL"
/files/etc/ssh/sshd_config/AllowUsers
/files/etc/ssh/sshd_config/AllowUsers/1 = "foo"
/files/etc/ssh/sshd_config/AllowUsers/2 = "bar at 192.168.0.*"
/files/etc/ssh/sshd_config/Match[1] = "User domi"
/files/etc/ssh/sshd_config/AllowTcpForwarding = "yes"
/files/etc/ssh/sshd_config/Match[2] = "User sarko Group pres.*"
/files/etc/ssh/sshd_config/Banner[1] = "/etc/bienvenue.txt"
/files/etc/ssh/sshd_config/Match[3] = "User bush Group pres.* Host white.house.*"
/files/etc/ssh/sshd_config/Banner[2] = "/etc/welcome.txt"


Note that Match lens is flat instead of being a hierarchy of lenses.

I have no such problem on my machine at work (Debian/sid 32
bits). 

I guess there's a clash between the Perl bindings, Perl and Augeas,
but I really do not know where.

Has anyone a clue about what's going on ?

All the best

PS: I've included the test sshd_config file. You should save it 
in wr_root/etc/ssh to run the tests I've mentioned in this mail

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: sshd_config
URL: <http://listman.redhat.com/archives/augeas-devel/attachments/20090111/1912ee9d/attachment.ksh>


More information about the augeas-devel mailing list