even after a binNMU python-gnutls still depends on libgnutls-deb0-28
as it does not make use of the shlibs system. Please upgrade to use
GnuTLS 3.4
It's easy enough to change the gnutls version to 30 and update the package dependencies.

Unfortunately after doing so the code doesn't work. I get loads of errors trying to import functions that no longer exist, I tried to remove/fix these imports but I still couldn't get the examples in the package to work.

ccing the maintainers of mandos which seems to be the only reverse dependency of this package.

Debdiff of what I've done is attatched.
diff -u python-gnutls-2.0.1/debian/changelog 
python-gnutls-2.0.1/debian/changelog
--- python-gnutls-2.0.1/debian/changelog
+++ python-gnutls-2.0.1/debian/changelog
@@ -1,3 +1,22 @@
+python-gnutls (2.0.1-2+rpi1) stretch-staging; urgency=medium
+
+  * Update library version to 30
+  * Comment out wrappers for functions removed in gnutls.
+  * Use gnutls_pem_base64_decode2 for gnutls_pem_base64_decode_alloc
+    (the C header has a #define)
+  * Use gnutls_pem_base64_encode2 for gnutls_pem_base64_encode_alloc
+    (the C header has a #define)
+  * Use gnutls_srp_base64_decode2 for gnutls_srp_base64_decode_alloc
+    (the C header has a #define)
+  * Use gnutls_srp_base64_encode2 for gnutls_srp_base64_encode_alloc
+    (the C header has a #define)
+  * Use gnutls_certificate_set_retrieve_function for 
+    gnutls_certificate_server_set_retrieve_function and
+    gnutls_certificate_client_set_retrieve_function as suggested at
+    
http://www.gnutls.org/manual/html_node/Upgrading-from-previous-versions.html
+
+ -- Peter Michael Green <plugw...@raspbian.org>  Thu, 04 Feb 2016 11:14:56 
+0000
+
 python-gnutls (2.0.1-2) unstable; urgency=medium
 
   * Team upload.
diff -u python-gnutls-2.0.1/debian/control python-gnutls-2.0.1/debian/control
--- python-gnutls-2.0.1/debian/control
+++ python-gnutls-2.0.1/debian/control
@@ -11,7 +11,7 @@
 
 Package: python-gnutls
 Architecture: any
-Depends: ${python:Depends}, ${misc:Depends}, ${shlibs:Depends}, 
libgnutls-deb0-28
+Depends: ${python:Depends}, ${misc:Depends}, ${shlibs:Depends}, libgnutls30
 Recommends: python-twisted-core
 Provides: ${python:Provides}
 Description: Python wrapper for the GNUTLS library
diff -u python-gnutls-2.0.1/gnutls/library/functions.py 
python-gnutls-2.0.1/gnutls/library/functions.py
--- python-gnutls-2.0.1/gnutls/library/functions.py
+++ python-gnutls-2.0.1/gnutls/library/functions.py
@@ -84,7 +84,7 @@
 gnutls_certificate_client_get_request_status.argtypes = [gnutls_session_t]
 gnutls_certificate_client_get_request_status.restype = c_int
 
-gnutls_certificate_client_set_retrieve_function = 
libgnutls.gnutls_certificate_client_set_retrieve_function
+gnutls_certificate_client_set_retrieve_function = 
libgnutls.gnutls_certificate_set_retrieve_function
 gnutls_certificate_client_set_retrieve_function.argtypes = 
[gnutls_certificate_credentials_t, gnutls_certificate_client_retrieve_function]
 gnutls_certificate_client_set_retrieve_function.restype = None
 
@@ -129,7 +129,7 @@
 gnutls_certificate_server_set_request.argtypes = [gnutls_session_t, 
gnutls_certificate_request_t]
 gnutls_certificate_server_set_request.restype = None
 
-gnutls_certificate_server_set_retrieve_function = 
libgnutls.gnutls_certificate_server_set_retrieve_function
+gnutls_certificate_server_set_retrieve_function = 
libgnutls.gnutls_certificate_set_retrieve_function
 gnutls_certificate_server_set_retrieve_function.argtypes = 
[gnutls_certificate_credentials_t, gnutls_certificate_server_retrieve_function]
 gnutls_certificate_server_set_retrieve_function.restype = None
 
@@ -141,9 +141,9 @@
 gnutls_certificate_set_params_function.argtypes = 
[gnutls_certificate_credentials_t, gnutls_params_function]
 gnutls_certificate_set_params_function.restype = None
 
-gnutls_certificate_set_rsa_export_params = 
libgnutls.gnutls_certificate_set_rsa_export_params
-gnutls_certificate_set_rsa_export_params.argtypes = 
[gnutls_certificate_credentials_t, gnutls_rsa_params_t]
-gnutls_certificate_set_rsa_export_params.restype = None
+#gnutls_certificate_set_rsa_export_params = 
libgnutls.gnutls_certificate_set_rsa_export_params
+#gnutls_certificate_set_rsa_export_params.argtypes = 
[gnutls_certificate_credentials_t, gnutls_rsa_params_t]
+#gnutls_certificate_set_rsa_export_params.restype = None
 
 gnutls_certificate_set_verify_flags = 
libgnutls.gnutls_certificate_set_verify_flags
 gnutls_certificate_set_verify_flags.argtypes = 
[gnutls_certificate_credentials_t, c_uint]
@@ -209,9 +209,9 @@
 gnutls_certificate_type_list.argtypes = []
 gnutls_certificate_type_list.restype = POINTER(gnutls_certificate_type_t)
 
-gnutls_certificate_type_set_priority = 
libgnutls.gnutls_certificate_type_set_priority
-gnutls_certificate_type_set_priority.argtypes = [gnutls_session_t, 
POINTER(c_int)]
-gnutls_certificate_type_set_priority.restype = c_int
+#gnutls_certificate_type_set_priority = 
libgnutls.gnutls_certificate_type_set_priority
+#gnutls_certificate_type_set_priority.argtypes = [gnutls_session_t, 
POINTER(c_int)]
+#gnutls_certificate_type_set_priority.restype = c_int
 
 gnutls_certificate_verify_peers2 = libgnutls.gnutls_certificate_verify_peers2
 gnutls_certificate_verify_peers2.argtypes = [gnutls_session_t, POINTER(c_uint)]
@@ -245,9 +245,9 @@
 gnutls_cipher_list.argtypes = []
 gnutls_cipher_list.restype = POINTER(gnutls_cipher_algorithm_t)
 
-gnutls_cipher_set_priority = libgnutls.gnutls_cipher_set_priority
-gnutls_cipher_set_priority.argtypes = [gnutls_session_t, POINTER(c_int)]
-gnutls_cipher_set_priority.restype = c_int
+#gnutls_cipher_set_priority = libgnutls.gnutls_cipher_set_priority
+#gnutls_cipher_set_priority.argtypes = [gnutls_session_t, POINTER(c_int)]
+#gnutls_cipher_set_priority.restype = c_int
 
 gnutls_cipher_suite_get_name = libgnutls.gnutls_cipher_suite_get_name
 gnutls_cipher_suite_get_name.argtypes = [gnutls_kx_algorithm_t, 
gnutls_cipher_algorithm_t, gnutls_mac_algorithm_t]
@@ -273,9 +273,9 @@
 gnutls_compression_list.argtypes = []
 gnutls_compression_list.restype = POINTER(gnutls_compression_method_t)
 
-gnutls_compression_set_priority = libgnutls.gnutls_compression_set_priority
-gnutls_compression_set_priority.argtypes = [gnutls_session_t, POINTER(c_int)]
-gnutls_compression_set_priority.restype = c_int
+#gnutls_compression_set_priority = libgnutls.gnutls_compression_set_priority
+#gnutls_compression_set_priority.argtypes = [gnutls_session_t, POINTER(c_int)]
+#gnutls_compression_set_priority.restype = c_int
 
 gnutls_credentials_clear = libgnutls.gnutls_credentials_clear
 gnutls_credentials_clear.argtypes = [gnutls_session_t]
@@ -465,9 +465,9 @@
 gnutls_kx_list.argtypes = []
 gnutls_kx_list.restype = POINTER(gnutls_kx_algorithm_t)
 
-gnutls_kx_set_priority = libgnutls.gnutls_kx_set_priority
-gnutls_kx_set_priority.argtypes = [gnutls_session_t, POINTER(c_int)]
-gnutls_kx_set_priority.restype = c_int
+#gnutls_kx_set_priority = libgnutls.gnutls_kx_set_priority
+#gnutls_kx_set_priority.argtypes = [gnutls_session_t, POINTER(c_int)]
+#gnutls_kx_set_priority.restype = c_int
 
 gnutls_mac_get = libgnutls.gnutls_mac_get
 gnutls_mac_get.argtypes = [gnutls_session_t]
@@ -489,15 +489,15 @@
 gnutls_mac_list.argtypes = []
 gnutls_mac_list.restype = POINTER(gnutls_mac_algorithm_t)
 
-gnutls_mac_set_priority = libgnutls.gnutls_mac_set_priority
-gnutls_mac_set_priority.argtypes = [gnutls_session_t, POINTER(c_int)]
-gnutls_mac_set_priority.restype = c_int
+#gnutls_mac_set_priority = libgnutls.gnutls_mac_set_priority
+#gnutls_mac_set_priority.argtypes = [gnutls_session_t, POINTER(c_int)]
+#gnutls_mac_set_priority.restype = c_int
 
 gnutls_pem_base64_decode = libgnutls.gnutls_pem_base64_decode
 gnutls_pem_base64_decode.argtypes = [c_char_p, POINTER(gnutls_datum_t), 
POINTER(c_ubyte), POINTER(size_t)]
 gnutls_pem_base64_decode.restype = c_int
 
-gnutls_pem_base64_decode_alloc = libgnutls.gnutls_pem_base64_decode_alloc
+gnutls_pem_base64_decode_alloc = libgnutls.gnutls_pem_base64_decode2
 gnutls_pem_base64_decode_alloc.argtypes = [c_char_p, POINTER(gnutls_datum_t), 
POINTER(gnutls_datum_t)]
 gnutls_pem_base64_decode_alloc.restype = c_int
 
@@ -505,7 +505,7 @@
 gnutls_pem_base64_encode.argtypes = [c_char_p, POINTER(gnutls_datum_t), 
c_char_p, POINTER(size_t)]
 gnutls_pem_base64_encode.restype = c_int
 
-gnutls_pem_base64_encode_alloc = libgnutls.gnutls_pem_base64_encode_alloc
+gnutls_pem_base64_encode_alloc = libgnutls.gnutls_pem_base64_encode2
 gnutls_pem_base64_encode_alloc.argtypes = [c_char_p, POINTER(gnutls_datum_t), 
POINTER(gnutls_datum_t)]
 gnutls_pem_base64_encode_alloc.restype = c_int
 
@@ -613,9 +613,9 @@
 gnutls_protocol_list.argtypes = []
 gnutls_protocol_list.restype = POINTER(gnutls_protocol_t)
 
-gnutls_protocol_set_priority = libgnutls.gnutls_protocol_set_priority
-gnutls_protocol_set_priority.argtypes = [gnutls_session_t, POINTER(c_int)]
-gnutls_protocol_set_priority.restype = c_int
+#gnutls_protocol_set_priority = libgnutls.gnutls_protocol_set_priority
+#gnutls_protocol_set_priority.argtypes = [gnutls_session_t, POINTER(c_int)]
+#gnutls_protocol_set_priority.restype = c_int
 
 gnutls_psk_allocate_client_credentials = 
libgnutls.gnutls_psk_allocate_client_credentials
 gnutls_psk_allocate_client_credentials.argtypes = 
[POINTER(gnutls_psk_client_credentials_t)]
@@ -705,45 +705,45 @@
 gnutls_rehandshake.argtypes = [gnutls_session_t]
 gnutls_rehandshake.restype = c_int
 
-gnutls_rsa_export_get_modulus_bits = 
libgnutls.gnutls_rsa_export_get_modulus_bits
-gnutls_rsa_export_get_modulus_bits.argtypes = [gnutls_session_t]
-gnutls_rsa_export_get_modulus_bits.restype = c_int
-
-gnutls_rsa_export_get_pubkey = libgnutls.gnutls_rsa_export_get_pubkey
-gnutls_rsa_export_get_pubkey.argtypes = [gnutls_session_t, 
POINTER(gnutls_datum_t), POINTER(gnutls_datum_t)]
-gnutls_rsa_export_get_pubkey.restype = c_int
-
-gnutls_rsa_params_cpy = libgnutls.gnutls_rsa_params_cpy
-gnutls_rsa_params_cpy.argtypes = [gnutls_rsa_params_t, gnutls_rsa_params_t]
-gnutls_rsa_params_cpy.restype = c_int
-
-gnutls_rsa_params_deinit = libgnutls.gnutls_rsa_params_deinit
-gnutls_rsa_params_deinit.argtypes = [gnutls_rsa_params_t]
-gnutls_rsa_params_deinit.restype = None
-
-gnutls_rsa_params_export_pkcs1 = libgnutls.gnutls_rsa_params_export_pkcs1
-gnutls_rsa_params_export_pkcs1.argtypes = [gnutls_rsa_params_t, 
gnutls_x509_crt_fmt_t, POINTER(c_ubyte), POINTER(size_t)]
-gnutls_rsa_params_export_pkcs1.restype = c_int
-
-gnutls_rsa_params_export_raw = libgnutls.gnutls_rsa_params_export_raw
-gnutls_rsa_params_export_raw.argtypes = [gnutls_rsa_params_t, 
POINTER(gnutls_datum_t), POINTER(gnutls_datum_t), POINTER(gnutls_datum_t), 
POINTER(gnutls_datum_t), POINTER(gnutls_datum_t), POINTER(gnutls_datum_t), 
POINTER(c_uint)]
-gnutls_rsa_params_export_raw.restype = c_int
-
-gnutls_rsa_params_generate2 = libgnutls.gnutls_rsa_params_generate2
-gnutls_rsa_params_generate2.argtypes = [gnutls_rsa_params_t, c_uint]
-gnutls_rsa_params_generate2.restype = c_int
-
-gnutls_rsa_params_import_pkcs1 = libgnutls.gnutls_rsa_params_import_pkcs1
-gnutls_rsa_params_import_pkcs1.argtypes = [gnutls_rsa_params_t, 
POINTER(gnutls_datum_t), gnutls_x509_crt_fmt_t]
-gnutls_rsa_params_import_pkcs1.restype = c_int
-
-gnutls_rsa_params_import_raw = libgnutls.gnutls_rsa_params_import_raw
-gnutls_rsa_params_import_raw.argtypes = [gnutls_rsa_params_t, 
POINTER(gnutls_datum_t), POINTER(gnutls_datum_t), POINTER(gnutls_datum_t), 
POINTER(gnutls_datum_t), POINTER(gnutls_datum_t), POINTER(gnutls_datum_t)]
-gnutls_rsa_params_import_raw.restype = c_int
-
-gnutls_rsa_params_init = libgnutls.gnutls_rsa_params_init
-gnutls_rsa_params_init.argtypes = [POINTER(gnutls_rsa_params_t)]
-gnutls_rsa_params_init.restype = c_int
+#gnutls_rsa_export_get_modulus_bits = 
libgnutls.gnutls_rsa_export_get_modulus_bits
+#gnutls_rsa_export_get_modulus_bits.argtypes = [gnutls_session_t]
+#gnutls_rsa_export_get_modulus_bits.restype = c_int
+
+#gnutls_rsa_export_get_pubkey = libgnutls.gnutls_rsa_export_get_pubkey
+#gnutls_rsa_export_get_pubkey.argtypes = [gnutls_session_t, 
POINTER(gnutls_datum_t), POINTER(gnutls_datum_t)]
+#gnutls_rsa_export_get_pubkey.restype = c_int
+
+#gnutls_rsa_params_cpy = libgnutls.gnutls_rsa_params_cpy
+#gnutls_rsa_params_cpy.argtypes = [gnutls_rsa_params_t, gnutls_rsa_params_t]
+#gnutls_rsa_params_cpy.restype = c_int
+
+#gnutls_rsa_params_deinit = libgnutls.gnutls_rsa_params_deinit
+#gnutls_rsa_params_deinit.argtypes = [gnutls_rsa_params_t]
+#gnutls_rsa_params_deinit.restype = None
+
+#gnutls_rsa_params_export_pkcs1 = libgnutls.gnutls_rsa_params_export_pkcs1
+#gnutls_rsa_params_export_pkcs1.argtypes = [gnutls_rsa_params_t, 
gnutls_x509_crt_fmt_t, POINTER(c_ubyte), POINTER(size_t)]
+#gnutls_rsa_params_export_pkcs1.restype = c_int
+
+#gnutls_rsa_params_export_raw = libgnutls.gnutls_rsa_params_export_raw
+#gnutls_rsa_params_export_raw.argtypes = [gnutls_rsa_params_t, 
POINTER(gnutls_datum_t), POINTER(gnutls_datum_t), POINTER(gnutls_datum_t), 
POINTER(gnutls_datum_t), POINTER(gnutls_datum_t), POINTER(gnutls_datum_t), 
POINTER(c_uint)]
+#gnutls_rsa_params_export_raw.restype = c_int
+
+#gnutls_rsa_params_generate2 = libgnutls.gnutls_rsa_params_generate2
+#gnutls_rsa_params_generate2.argtypes = [gnutls_rsa_params_t, c_uint]
+#gnutls_rsa_params_generate2.restype = c_int
+
+#gnutls_rsa_params_import_pkcs1 = libgnutls.gnutls_rsa_params_import_pkcs1
+#gnutls_rsa_params_import_pkcs1.argtypes = [gnutls_rsa_params_t, 
POINTER(gnutls_datum_t), gnutls_x509_crt_fmt_t]
+#gnutls_rsa_params_import_pkcs1.restype = c_int
+
+#gnutls_rsa_params_import_raw = libgnutls.gnutls_rsa_params_import_raw
+#gnutls_rsa_params_import_raw.argtypes = [gnutls_rsa_params_t, 
POINTER(gnutls_datum_t), POINTER(gnutls_datum_t), POINTER(gnutls_datum_t), 
POINTER(gnutls_datum_t), POINTER(gnutls_datum_t), POINTER(gnutls_datum_t)]
+#gnutls_rsa_params_import_raw.restype = c_int
+
+#gnutls_rsa_params_init = libgnutls.gnutls_rsa_params_init
+#gnutls_rsa_params_init.argtypes = [POINTER(gnutls_rsa_params_t)]
+#gnutls_rsa_params_init.restype = c_int
 
 gnutls_server_name_get = libgnutls.gnutls_server_name_get
 gnutls_server_name_get.argtypes = [gnutls_session_t, c_void_p, 
POINTER(size_t), POINTER(c_uint), c_uint]
@@ -785,9 +785,9 @@
 gnutls_session_set_ptr.argtypes = [gnutls_session_t, c_void_p]
 gnutls_session_set_ptr.restype = None
 
-gnutls_set_default_export_priority = 
libgnutls.gnutls_set_default_export_priority
-gnutls_set_default_export_priority.argtypes = [gnutls_session_t]
-gnutls_set_default_export_priority.restype = c_int
+#gnutls_set_default_export_priority = 
libgnutls.gnutls_set_default_export_priority
+#gnutls_set_default_export_priority.argtypes = [gnutls_session_t]
+#gnutls_set_default_export_priority.restype = c_int
 
 gnutls_set_default_priority = libgnutls.gnutls_set_default_priority
 gnutls_set_default_priority.argtypes = [gnutls_session_t]
@@ -797,13 +797,13 @@
 gnutls_sign_get_name.argtypes = [gnutls_sign_algorithm_t]
 gnutls_sign_get_name.restype = c_char_p
 
-gnutls_sign_callback_get = libgnutls.gnutls_sign_callback_get
-gnutls_sign_callback_get.argtypes = [gnutls_session_t, POINTER(c_void_p)]
-gnutls_sign_callback_get.restype = gnutls_sign_func
-
-gnutls_sign_callback_set = libgnutls.gnutls_sign_callback_set
-gnutls_sign_callback_set.argtypes = [gnutls_session_t, gnutls_sign_func, 
c_void_p]
-gnutls_sign_callback_set.restype = None
+#gnutls_sign_callback_get = libgnutls.gnutls_sign_callback_get
+#gnutls_sign_callback_get.argtypes = [gnutls_session_t, POINTER(c_void_p)]
+#gnutls_sign_callback_get.restype = gnutls_sign_func
+
+#gnutls_sign_callback_set = libgnutls.gnutls_sign_callback_set
+#gnutls_sign_callback_set.argtypes = [gnutls_session_t, gnutls_sign_func, 
c_void_p]
+#gnutls_sign_callback_set.restype = None
 
 gnutls_strerror = libgnutls.gnutls_strerror
 gnutls_strerror.argtypes = [c_int]
@@ -1285,9 +1285,9 @@
 gnutls_x509_crt_verify.argtypes = [gnutls_x509_crt_t, 
POINTER(gnutls_x509_crt_t), c_int, c_uint, POINTER(c_uint)]
 gnutls_x509_crt_verify.restype = c_int
 
-gnutls_x509_crt_verify_data = libgnutls.gnutls_x509_crt_verify_data
-gnutls_x509_crt_verify_data.argtypes = [gnutls_x509_crt_t, c_uint, 
POINTER(gnutls_datum_t), POINTER(gnutls_datum_t)]
-gnutls_x509_crt_verify_data.restype = c_int
+#gnutls_x509_crt_verify_data = libgnutls.gnutls_x509_crt_verify_data
+#gnutls_x509_crt_verify_data.argtypes = [gnutls_x509_crt_t, c_uint, 
POINTER(gnutls_datum_t), POINTER(gnutls_datum_t)]
+#gnutls_x509_crt_verify_data.restype = c_int
 
 gnutls_x509_dn_deinit = libgnutls.gnutls_x509_dn_deinit
 gnutls_x509_dn_deinit.argtypes = [gnutls_x509_dn_t]
@@ -1707,7 +1707,7 @@
     gnutls_srp_base64_decode.argtypes = [POINTER(gnutls_datum_t), c_char_p, 
POINTER(size_t)]
     gnutls_srp_base64_decode.restype = c_int
 
-    gnutls_srp_base64_decode_alloc = libgnutls.gnutls_srp_base64_decode_alloc
+    gnutls_srp_base64_decode_alloc = libgnutls.gnutls_srp_base64_decode2
     gnutls_srp_base64_decode_alloc.argtypes = [POINTER(gnutls_datum_t), 
POINTER(gnutls_datum_t)]
     gnutls_srp_base64_decode_alloc.restype = c_int
 
@@ -1715,7 +1715,7 @@
     gnutls_srp_base64_encode.argtypes = [POINTER(gnutls_datum_t), c_char_p, 
POINTER(size_t)]
     gnutls_srp_base64_encode.restype = c_int
 
-    gnutls_srp_base64_encode_alloc = libgnutls.gnutls_srp_base64_encode_alloc
+    gnutls_srp_base64_encode_alloc = libgnutls.gnutls_srp_base64_encode2
     gnutls_srp_base64_encode_alloc.argtypes = [POINTER(gnutls_datum_t), 
POINTER(gnutls_datum_t)]
     gnutls_srp_base64_encode_alloc.restype = c_int
 
only in patch2:
unchanged:
--- python-gnutls-2.0.1.orig/gnutls/library/__init__.py
+++ python-gnutls-2.0.1/gnutls/library/__init__.py
@@ -56,7 +56,7 @@
         raise RuntimeError('cannot find libgnutls on this system')
 
 
-libgnutls = load_library(version=28)
+libgnutls = load_library(version=30)
 libgnutls.gnutls_global_init()
 
 

Reply via email to