Сломалось с perl-base-5.12.2-alt02 как минимум: --- 0.9.5-alt2 # /usr/sbin/smbldap-migrate-unix-accounts -v -P ~/passwd 2>&1 | head -n 40 Use of uninitialized value $typeuser in hash element at /usr/sbin/smbldap-migrate-unix-accounts line 255, <$INFILE> line 1. Use of uninitialized value within @_ in list assignment at /usr/share/perl5/Net/LDAP.pm line 50, <$INFILE> line 1. Use of uninitialized value $typeuser in hash element at /usr/sbin/smbldap-migrate-unix-accounts line 262, <$INFILE> line 1. Use of uninitialized value in concatenation (.) or string at /usr/sbin/smbldap-migrate-unix-accounts line 262, <$INFILE> line 1. ------------------------------------------------------------------------ dn:uid=username, [...] --- (последняя строчка, которая уже кусок LDIF'а, обрывается именно на запятой) --- 0.9.6-alt1 (с патчем от 0.9.5-alt2, лёг нормально): # /usr/sbin/smbldap-migrate-unix-accounts -v -u -P ~/passwd 2>&1 | head -n 40 Use of uninitialized value $typeuser in hash element at /usr/sbin/smbldap-migrate-unix-accounts line 257, <$INFILE> line 1. Use of uninitialized value within @_ in list assignment at /usr/share/perl5/Net/LDAP.pm line 50, <$INFILE> line 1. Use of uninitialized value $typeuser in hash element at /usr/sbin/smbldap-migrate-unix-accounts line 264, <$INFILE> line 1. Use of uninitialized value in concatenation (.) or string at /usr/sbin/smbldap-migrate-unix-accounts line 264, <$INFILE> line 1. ------------------------------------------------------------------------ dn:uid=username, [...] --- Если патч оторвать, то 0.9.6 с текущим перлом работает. Предлагаю оторвать до того, как кто-нить доберётся починить (возможно, перл поумнел и переоптимизировал что-то с этим undef'ом добавленным).
smbldap-tools-0.9.6-alt2 -> sisyphus: * Mon Jan 10 2011 Michael Shigorin <mike@altlinux> 0.9.6-alt2 - drop patch, breaks with perl-5.12 at the very least (closes: #24888) * Mon Jan 10 2011 Michael Shigorin <mike@altlinux> 0.9.6-alt1 - 0.9.6
патч кривоват, при использовании любой из опций -P -S -M может привести к некорректным результатам. Ошибка в том, что функция get_user_entry() использует переменную $typeuser, значение которой определяется _позже_ вызова этой функции. Т.о. при обработке первой строчки данных используется пустое значение (отсюда warning'и), а каждая следующая строчка использует значение $typeuser вычисленное для предыдущей строки, что может дать, мягко говоря, совершенно неверные результаты.