Bug 36526 - Upgrade fails: univention-grub depends on python2.7, univention-debug, ucr
Upgrade fails: univention-grub depends on python2.7, univention-debug, ucr
Status: CLOSED FIXED
Product: UCS
Classification: Unclassified
Component: Grub
UCS 4.0
Other Linux
: P5 normal (vote)
: UCS 4.0
Assigned To: Philipp Hahn
Stefan Gohmann
: interim-4
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2014-11-07 18:13 CET by Philipp Hahn
Modified: 2014-11-26 06:55 CET (History)
1 user (show)

See Also:
What kind of report is it?: ---
What type of bug is this?: ---
Who will be affected by this bug?: ---
How will those affected feel about the bug?: ---
User Pain:
Enterprise Customer affected?:
School Customer affected?:
ISV affected?:
Waiting Support:
Flags outvoted (downgraded) after PO Review:
Ticket number:
Bug group (optional):
Max CVSS v3 score:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Philipp Hahn univentionstaff 2014-11-07 18:13:48 CET
1. univention-grub-generate-menu-lst uses python2.7 but does not depends on it, so it fails on updates when python2.7 is not yet fully operational
2. Uses univention.debug, but doesn't depend on it, ...

/usr/sbin/update-grub: 6: /usr/sbin/univention-grub-generate-menu-lst: not found
dpkg: error processing gub-pc (--configure):
 subprocess installed post-installation script returned error exit status 127

Traceback
 File "/usr/sbin/univention-grub-generate-menu-lst", line 38, in <module>
    import univention.debug as udbg
ImportError: No module named univention.debug
dpkg: error processing gub-pc (--configure):
 subprocess installed post-installation script returned error exit status 1
Comment 1 Philipp Hahn univentionstaff 2014-11-07 18:37:56 CET
r55532 | Bug #36526 GRUB: Fix Python dependencies

Package: univention-grub
Version: 8.0.4-1.123.201411071818
Branch: ucs_4.0-0


There are probably a lot more cases of hidden update problems caused by missing Python dependencies:
$ for d in */*/debian; do ( grep -q python_support "$d/rules" && grep -q -Fq '${python:Depends}' "$d/control" ) || ( grep -Fq python2.7 "$d/control" ) || ( find "${d%/debian}" -type f -exec grep '^#! */usr/bin/python' {} + ) ; done
base/univention-base-files/univention-directory-policy/univention-policy-update-config-registry.py:#!/usr/bin/python2.7
base/univention-base-files/univention-directory-policy/nfsmounts.py:#!/usr/bin/python2.7
base/univention-firewall/umc/python/firewall/backend.py:#!/usr/bin/python2.7
base/univention-firewall/umc/python/firewall/__init__.py:#!/usr/bin/python2.7
base/univention-heimdal/conffiles/usr/share/univention-heimdal/check_cracklib.py:#!/usr/bin/python2.7
base/univention-heimdal/salt_krb5Keys:#!/usr/bin/python2.7
base/univention-heimdal/univention-create-keytab:#!/usr/bin/python2.7
base/univention-heimdal/kerberos_now:#!/usr/bin/python2.7
base/univention-home-mounter/univention-mount-homedir:#!/usr/bin/python2.7
base/univention-network-manager/univention-register-network-address:#!/usr/bin/python2.7
base/univention-network-manager/etc/network/if-up.d/12_univention_config_registry:#!/usr/bin/python2.7
base/univention-pam/well-known-sid-name-mapping.py:#!/usr/bin/python2.7
base/univention-pam/ldap-group-to-file.py:#!/usr/bin/python2.7
base/univention-pam/nscd.py:#!/usr/bin/python2.7
base/univention-pam/faillog.py:#!/usr/bin/python2.7
base/univention-pam/nss.py:#!/usr/bin/python2.7
base/univention-printclient/univention-directory-policy/univention-policy-set-print-server:#!/usr/bin/python2.7
base/univention-server/univention-directory-policy/univention-set-ldap-server:#!/usr/bin/python2.7
base/univention-skel/univention-skel:#!/usr/bin/python2.7
base/univention-ssl/univention-certificate-check-validity:#!/usr/bin/python2.7
mail/univention-mail-cyrus/univention-mail-valid-mboxname.py:#!/usr/bin/python2.7
mail/univention-mail-cyrus/usr/sbin/univention-cyrus-mailbox-delete:#!/usr/bin/python2.7
mail/univention-mail-cyrus/usr/sbin/univention-cyrus-rename-shared:#!/usr/bin/python2.7
mail/univention-mail-cyrus/usr/sbin/univention-cyrus-set-quota:#!/usr/bin/python2.7
mail/univention-mail-cyrus/usr/sbin/univention-cyrus-mkdir:#!/usr/bin/python2.7
mail/univention-mail-cyrus/usr/sbin/univention-cyrus-set-acl:#!/usr/bin/python2.7
mail/univention-mail-cyrus/usr/sbin/univention-cyrus-dump-acl:#!/usr/bin/python2.7
mail/univention-mail-cyrus/usr/sbin/univention-cyrus-set-quota-shared:#!/usr/bin/python2.7
mail/univention-mail-cyrus/usr/sbin/univention-cyrus-mailbox-rename:#!/usr/bin/python2.7
mail/univention-mail-cyrus/usr/sbin/univention-cyrus-mkdir-shared:#!/usr/bin/python2.7
mail/univention-mail-cyrus/usr/sbin/univention-cyrus-delete-folder:#!/usr/bin/python2.7
mail/univention-mail-cyrus-murder/usr/lib/univention-mail-cyrus-murder/coherence-check.py:#!/usr/bin/python2.7
mail/univention-mail-cyrus-murder/usr/sbin/univention-cyrus-murder-movemailbox:#!/usr/bin/python2.7
mail/univention-mail-postfix/share/listfilter.py:#!/usr/bin/python2.7 -u
management/univention-admingrp-user-passwordreset/ldap-group-to-file-hooks.d/admingrp-user-passwordreset:#!/usr/bin/python2.7
management/univention-directory-replication/schema-openldap2.1.py:#!/usr/bin/python2.7
management/univention-ldap/scripts/convert_univentionMailSharedFolderDeliveryAddress.py:#!/usr/bin/python2.7
management/univention-ldap/scripts/convert_to_sharesSambaWriteable.py:#!/usr/bin/python2.7
management/univention-ldap/scripts/convert_shadowMax.py:#!/usr/bin/python2.7
management/univention-ldap-overlay-memberof/univention-update-memberof:#!/usr/bin/python2.7
management/univention-management-console-frontend/univention-management-console-web-server:#!/usr/bin/python2.7
management/univention-management-console-module-appcenter/apps/python/apps/__init__.py:#!/usr/bin/python2.7
management/univention-management-console-module-appcenter/umc/python/appcenter/app_center.py:#!/usr/bin/python2.7
management/univention-management-console-module-appcenter/umc/python/appcenter/__init__.py:#!/usr/bin/python2.7
management/univention-management-console-module-appcenter/umc/python/appcenter/util.py:#!/usr/bin/python2.7
management/univention-management-console-module-appcenter/scripts/univention-register-apps:#!/usr/bin/python2.7
management/univention-management-console-module-appcenter/scripts/univention-rename-app:#!/usr/bin/python2.7
management/univention-management-console-module-diagnostic/umc/python/diagnostic/plugins/proxy.py:#!/usr/bin/python2.7
management/univention-management-console-module-diagnostic/umc/python/diagnostic/plugins/__init__.py:#!/usr/bin/python2.7
management/univention-management-console-module-diagnostic/umc/python/diagnostic/plugins/nameserver.py:#!/usr/bin/python2.7
management/univention-management-console-module-diagnostic/umc/python/diagnostic/plugins/gateway.py:#!/usr/bin/python2.7
management/univention-management-console-module-diagnostic/umc/python/diagnostic/plugins/security_limits.py:#!/usr/bin/python2.7
management/univention-management-console-module-diagnostic/umc/python/diagnostic/__init__.py:#!/usr/bin/python2.7
management/univention-management-console-module-ipchange/umc/python/ipchange/__init__.py:#!/usr/bin/python2.7
management/univention-management-console-module-lib/umc/python/lib/server.py:#!/usr/bin/python2.7
management/univention-management-console-module-lib/umc/python/lib/__init__.py:#!/usr/bin/python2.7
management/univention-management-console-module-mrtg/umc/python/mrtg/__init__.py:#!/usr/bin/python2.7
management/univention-management-console-module-passwordchange/umc/python/passwordchange/__init__.py:#!/usr/bin/python2.7
management/univention-management-console-module-reboot/umc/python/reboot/__init__.py:#!/usr/bin/python2.7
management/univention-management-console-module-services/umc/python/services/__init__.py:#!/usr/bin/python2.7
management/univention-management-console-module-top/umc/python/top/__init__.py:#!/usr/bin/python2.7
management/univention-management-console-module-ucr/umc/python/ucr/__init__.py:#!/usr/bin/python2.7
management/univention-management-console-module-udm/univention-directory-reports-cleanup:#!/usr/bin/python2.7
management/univention-management-console-module-udm/umc/python/udm/tools.py:#!/usr/bin/python2.7
management/univention-management-console-module-udm/umc/python/udm/syntax.py:#!/usr/bin/python2.7
management/univention-management-console-module-udm/umc/python/udm/__init__.py:#!/usr/bin/python2.7
management/univention-management-console-module-udm/umc/python/udm/udm_ldap.py:#!/usr/bin/python2.7
management/univention-system-info/umc/python/sysinfo/__init__.py:#!/usr/bin/python2.7
management/univention-system-info/umc/python/sysinfo/upload.py:#!/usr/bin/python2.7
services/univention-bind/import-zone:#!/usr/bin/python2.7
services/univention-bind/bind.py:#!/usr/bin/python2.7
services/univention-dansguardian/conffiles/dansguardian-filtergroups.py:#!/usr/bin/python2.7
services/univention-dhcp/import-dhcpd.conf:#!/usr/bin/python2.7
services/univention-log-collector/python/log-collector-client.py:#!/usr/bin/python2.7
services/univention-log-collector/python/log-collector-server.py:#!/usr/bin/python2.7
services/univention-net-installer/univention-net-installer-daemon:#!/usr/bin/python2.6
services/univention-printquota/univention-printquota-setuser:#!/usr/bin/python2.7
services/univention-radius/usr/share/pyshared/univention/pyMsChapV2.py:#!/usr/bin/python2.7
services/univention-radius/usr/bin/univention-radius-ntlm-auth:#!/usr/bin/python2.7
services/univention-radius/usr/bin/univention-radius-check-access:#!/usr/bin/python2.7
services/univention-samba4/samba4-idmap.py:#!/usr/bin/python2.7
services/univention-samba4/sysvol-sync-scripts/sysvol-cleanup.py:#!/usr/bin/python2.7
services/univention-samba4/s4search-decode:#!/usr/bin/python2.7
services/univention-samba4/scripts/purge_s4_computer.py:#!/usr/bin/python2.7
services/univention-samba4/scripts/mount_extfs_with_user_xattr.py:#!/usr/bin/python2.7
services/univention-samba4/scripts/univention-samba4-site-tool.py:#!/usr/bin/python2.7
services/univention-samba4/scripts/migrate-sid.py:#!/usr/bin/python2.7
services/univention-samba/server_password_change.d/univention-samba:#!/usr/bin/python2.7
services/univention-samba/vampire/remove-samba-account:#!/usr/bin/python2.7
services/univention-samba/vampire/fix_primary_group:#!/usr/bin/python2.7
services/univention-samba/vampire/fix_user_sids:#!/usr/bin/python2.7
services/univention-samba/vampire/fix_primary_groups:#!/usr/bin/python2.7
services/univention-samba/vampire/set_privilege:#!/usr/bin/python2.7
services/univention-samba/vampire/password_check:#!/usr/bin/python2.7
services/univention-samba/vampire/mount_extfs_with_user_xattr.py:#!/usr/bin/python2.7
services/univention-samba/vampire/set_default_settings:#!/usr/bin/python2.7
services/univention-samba/vampire/purge_users_and_groups:#!/usr/bin/python2.7
services/univention-samba/vampire/query_domain_policy:#!/usr/bin/python2.7
services/univention-samba/vampire/set_domain_sid:#!/usr/bin/python2.7
services/univention-samba/vampire/change_sid:#!/usr/bin/python2.7
services/univention-samba/conffiles/samba.local.config.py:#!/usr/bin/python2.7
services/univention-samba/python/share_restrictions.py:#!/usr/bin/python2.7
services/univention-samba/scripts/kerberize_user:#!/usr/bin/python2.7
services/univention-squid/squid_ldap_ntlm_auth:#!/usr/bin/python2.7 -u
test/ucs-ec2-tools/ucs-ec2-list:#!/usr/bin/python
test/ucs-ec2-tools/examples/jenkins/utils/ad-join.py:#!/usr/bin/python2.7
test/ucs-ec2-tools/examples/jenkins/utils/schoolinstaller.py:#!/usr/bin/python2.6
test/ucs-ec2-tools/ucs-ec2-terminate:#!/usr/bin/python
test/ucs-ec2-tools/ucs-ec2-create:#!/usr/bin/python
test/ucs-ec2-tools/ucs-kvm-create:#!/usr/bin/python
test/ucs-test-tools/usr/sbin/create-32k-users-in-groups:#!/usr/bin/python2.7
test/univention-demo-configuration/data/create_import_commands.py:#!/usr/bin/python2.7
virtualization/univention-virtual-machine-manager-node/conffiles/uvmm_restore.py:#!/usr/bin/python2.7
virtualization/univention-virtual-machine-manager-node/libvirtd-acl.py:#!/usr/bin/python2.7
virtualization/univention-virtual-machine-manager-node/ucs-kvm-reconnect-bridge:#!/usr/bin/python2.7
virtualization/univention-virtual-machine-manager-node/univention-virtual-machine-manager-restore.py:#!/usr/bin/python2.7

This manifests during build as
 dpkg-gencontrol: warning: Depends field of package XXX: unknown substitution variable ${python:Depends}
which is most often caused by a missing "--with python_support" for dh in debian/rules.

I didn't check them.
Comment 2 Stefan Gohmann univentionstaff 2014-11-10 08:00:15 CET
OK. I've also added the bug number to the changelog: r55557
Comment 3 Stefan Gohmann univentionstaff 2014-11-26 06:55:44 CET
UCS 4.0-0 has been released:
 http://docs.univention.de/release-notes-4.0-0-en.html
 http://docs.univention.de/release-notes-4.0-0-de.html

If this error occurs again, please use "Clone This Bug".