[devel] Обновление до krb5-1.15.1

Evgeny Sinelnikov sin на altlinux.org
Вс Авг 20 06:20:36 MSK 2017


Здравствуйте,

в связи с тем, что патчи от 1.16.x всё-таки имеют смысл обновление
затянулось. В итоге было решено две проблемы:

Первая потребовала вот такого патча:

diff --git a/krb5/src/tests/gssapi/t_ccselect.py
b/krb5/src/tests/gssapi/t_ccselect.py
index 6be6b4e..47d9ce6 100755
--- a/krb5/src/tests/gssapi/t_ccselect.py
+++ b/krb5/src/tests/gssapi/t_ccselect.py
@@ -53,7 +53,7 @@ if 'No Kerberos credentials available' not in output:
 ccdir = os.path.join(r1.testdir, 'cc')
 ccname = 'DIR:' + ccdir
 r1.env['KRB5CCNAME'] = ccname
-r2.env['KRB5CCNAME'] = ccname
+r2.env['KRB5CCNAME'] = ccname + '2'
.
 # Use .k5identity from testdir and not from the tester's homedir.
 r1.env['HOME'] = r1.testdir

Может быть кто-нибудь подскажет как оно работает в Fedora?
Смысл в том, что на один и тот же кеш ключей задётся два разных kinit.
Конечно, при этом, остаётся только последний. При этом тест из патча
fedora-Use-fallback-realm-for-GSSAPI-ccache-selection.patch падает:

*** [33] Executing: ./t_ccselect h:host at localhost
gss_accept_sec_context: Unspecified GSS failure.  Minor code may
provide more information
gss_accept_sec_context: Request ticket server
host/localhost.localdomain at KRBTEST2.COM not found in keytab (ticket
kvno 1)
*** [33] Completed with return code 1
*** Failure: ./t_ccselect failed with code 1.
*** Last command (#33): ./t_ccselect h:host at localhost
*** Output of last command:
gss_accept_sec_context: Unspecified GSS failure.  Minor code may
provide more information
gss_accept_sec_context: Request ticket server
host/localhost.localdomain at KRBTEST2.COM not found in keytab (ticket
kvno 1)

Use --debug=NUM to run a command under a debugger.  Use
--stop-after=NUM to stop after a daemon is started in order to
attach to it with a debugger.  Use --help to see other options.
make[2]: *** [check-pytests] Error 1
make[2]: Leaving directory `/usr/src/RPM/BUILD/krb5-1.15.1/src/tests/gssapi'
make[1]: *** [check-recurse] Error 1
make[1]: Leaving directory `/usr/src/RPM/BUILD/krb5-1.15.1/src/tests'
make: *** [check-recurse] Error 1
make: Leaving directory `/usr/src/RPM/BUILD/krb5-1.15.1/src'
error: Bad exit status from /usr/src/tmp/rpm-tmp.49745 (%check)


Вторая потребовала вытащить бинарные куски из патча
fedora-Add-test-cert-generation-to-make-certs.sh.patch, который
отваливается с ошибкой "git binary diffs are not supported."
Может быть это нужно как-то по-другому решается?


В общем, в итоге, у нас имеется тестовая сборка:
#187284 BUILDING #1 [locked] [test-only] sisyphus krb5.git=1.15.1-alt1%ubt

В принципе, битых пакетов не так-то много получается:

        i586: NEW unmet dependencies detected:
pecl-krb5#1.1.1-alt1.5.6.31.20170607.alt1.S1    libkadm5clnt_mit.so.10
>= set:kfLdpMy7YJqZrZJ5kxzGUKIBlrq8mV9tfKEyW0OSiBgSd0
pecl-krb5#1.1.1-alt1.5.6.31.20170607.alt1.S1
libkadm5clnt_mit.so.10(kadm5clnt_mit_10_MIT)
pecl-krb5-debuginfo#1.1.1-alt1.5.6.31.20170607.alt1.S1
debug(libkadm5clnt_mit.so.10)
python-module-kadmin5#0.0.5-alt5.qa6.1  libkadm5srv_mit.so.10 >=
set:lhNzR5Mvn7eqpejBPZvXPt1gorqdBsFEJ3X64
python-module-kadmin5#0.0.5-alt5.qa6.1
libkadm5srv_mit.so.10(kadm5srv_mit_10_MIT)
python-module-kadmin5-debuginfo#0.0.5-alt5.qa6.1
debug(libkadm5srv_mit.so.10)
        x86_64: NEW unmet dependencies detected:
pecl-krb5#1.1.1-alt1.5.6.31.20170607.alt1.S1
libkadm5clnt_mit.so.10()(64bit) >=
set:kfLdpMy7YJqZrZJ5kxzGUKIBlrq8mV9tfKEyW0OSiBgSd0
pecl-krb5#1.1.1-alt1.5.6.31.20170607.alt1.S1
libkadm5clnt_mit.so.10(kadm5clnt_mit_10_MIT)(64bit)
pecl-krb5-debuginfo#1.1.1-alt1.5.6.31.20170607.alt1.S1
debug64(libkadm5clnt_mit.so.10)
python-module-kadmin5#0.0.5-alt5.qa6.1  libkadm5srv_mit.so.10()(64bit)
>= set:lhNzR5Mvn7eqpejBPZvXPt1gorqdBsFEJ3X64
python-module-kadmin5#0.0.5-alt5.qa6.1
libkadm5srv_mit.so.10(kadm5srv_mit_10_MIT)(64bit)
python-module-kadmin5-debuginfo#0.0.5-alt5.qa6.1
debug64(libkadm5srv_mit.so.10)



17 июля 2017 г., 16:49 пользователь Alexander Bokovoy <ab at altlinux.org> написал:
> 2017-07-14 21:47 GMT+03:00 Evgeny Sinelnikov <sin at altlinux.org>:
>> Здравствуйте,
>>
>> планирую на этих выходных обновиться в сизифе до krb5-1.15.1
>> Тестовая сборка прошла успешно. Конфликты в ABI - минимальны и, для
>> клиентских приложений, с ходу незаметны.
>>
>> $ ssh girar task ls
>> #185394 TESTED #2 [test-only] sisyphus krb5.git=1.15.1-alt1%ubt
>> python-module-kadmin5.git=0.0.5-alt6 pecl-krb5.git=1.1.2-alt1
>>
>> Отладку я проведу на samba-стенде, причём в p8 (стенда на сизифе у
>> меня пока нет), и после этого сборка уедет в сизиф.
>>
>> На текущий момент я решаю вопрос о расширениях ABI, которые имеются в
>> федоре. Там довольно обширный набор дополнительных патчей, добавляющих
>> дополнительные тесты для PKINIT, также дополнительные возможности,
>> расширяющие структуру krb5_kdcpreauth_callbacks_st двумя функцииями
>> match_client ("Return true if princ matches the principal named in the
>> request or the client principal (possibly canonicalized).  If princ
>> does not match, attempt a database lookup of princ with aliases
>> allowed and compare the result to the client principal, returning true
>> if it matches. Otherwise, return false.") и client_name ("Get an alias
>> to the client DB entry principal (possibly canonicalized)")
>>
>> fedora-Add-certauth-pluggable-interface.patch
>> fedora-Add-k5test-expected_msg-expected_trace.patch
>> fedora-Add-PKINIT-UPN-tests-to-t_pkinit.py.patch
>> fedora-Add-test-case-for-PKINIT-DH-renegotiation.patch
>> fedora-Add-test-cert-generation-to-make-certs.sh.patch
>> fedora-Add-the-client_name-kdcpreauth-callback.patch
>> fedora-Build-with-Werror-implicit-int-where-supported.patch
>> fedora-Correct-error-handling-bug-in-prior-commit.patch
>> fedora-Deindent-crypto_retrieve_X509_sans.patch
>> fedora-Fix-leaks-in-gss_inquire_cred_by_oid.patch
>> fedora-Improve-PKINIT-UPN-SAN-matching.patch
>> fedora-Use-expected_msg-in-test-scripts.patch
>> fedora-Use-expected_trace-in-test-scripts.patch
>> fedora-Use-fallback-realm-for-GSSAPI-ccache-selection.patch
>> fedora-Use-GSSAPI-fallback-skiptest.patch
>> fedora-Use-the-canonical-client-principal-name-for-OTP.patch
>>
>> В общем, match_client() возволяет искать юзеров по псевдонимам, а
>> client_name возвращает псевдонимы. Этот функционал расширяет ABI
>> плагина kdcpreauth до версии 4, которая планируется в krb5-1.16, и уже
>> добавлен в репозиторий апстрима. Я не знаю насколько это актуально, но
>> думаю, что это, как раз, для интеграционных задач (Samba4/FreeIPA)
>> имеет значение.
> Весь этот код был добавлен для нужд FreeIPA, Samba AD и python-gssapi.
> Он востребован, соответственно, в FreeIPA 4.5.x и Samba 4.7 (RC1).





-- 
Sin (Sinelnikov Evgeny)


Подробная информация о списке рассылки Devel