diff -Nru fglrx-installer-updates-15.201/debian/changelog fglrx-installer-updates-15.201.2/debian/changelog --- fglrx-installer-updates-15.201/debian/changelog 2015-11-27 15:34:02.000000000 +0000 +++ fglrx-installer-updates-15.201.2/debian/changelog 2017-03-15 11:50:50.000000000 +0000 @@ -1,3 +1,39 @@ +fglrx-installer-updates (2:15.201.2-0ubuntu0.14.04.1) trusty-proposed; urgency=medium + + * Avoid triggering any prompts for /etc (LP: #1511301). + * Revert the previous change to etc/ati in the sources. + + -- Alberto Milone Wed, 15 Mar 2017 12:48:50 +0100 + +fglrx-installer-updates (2:15.201.1-0ubuntu0.14.04.1) trusty-proposed; urgency=medium + + * Bump the release replacing etc/ati so that we don't trigger a bug in + software updater (LP: #1511301). + + -- Alberto Milone Tue, 07 Mar 2017 17:35:47 +0100 + +fglrx-installer-updates (2:15.201-0ubuntu0.14.04.3) trusty-proposed; urgency=medium + + * debian/control.in, + debian/fglrx-core.postinst.in, + debian/fglrx.preinst.in, + debian/fglrx.postinst.in, + debian/fglrx.dirs.in, + debian/rules: + - Make sure that fglrx pre-depends on fglrx-core. + - Back up and restore the files that the old fglrx + removes when upgrading (LP: #1511301). + + -- Alberto Milone Thu, 02 Mar 2017 12:40:04 +0100 + +fglrx-installer-updates (2:15.201-0ubuntu0.14.04.2) trusty-proposed; urgency=medium + + * debian/fglrx-updates.{pre|post}inst.in: + - Make sure to also migrate the real ati configuration dir, not + only the symlinks, or the upgrade will fail (LP: #1511301). + + -- Alberto Milone Tue, 21 Feb 2017 18:10:59 +0100 + fglrx-installer-updates (2:15.201-0ubuntu0.14.04.1) trusty-proposed; urgency=medium * New upstream release (Catalyst 15.9): diff -Nru fglrx-installer-updates-15.201/debian/control fglrx-installer-updates-15.201.2/debian/control --- fglrx-installer-updates-15.201/debian/control 2015-11-27 15:48:35.000000000 +0000 +++ fglrx-installer-updates-15.201.2/debian/control 2017-03-15 11:53:00.000000000 +0000 @@ -39,7 +39,7 @@ Package: fglrx-updates Architecture: amd64 i386 Recommends: fglrx-amdcccle-updates -Pre-Depends: ${misc:Pre-Depends} +Pre-Depends: fglrx-updates-core, ${misc:Pre-Depends} Depends: ${shlibs:Depends}, fglrx-updates-core, ${xviddriver:Depends}, ${misc:Depends} Provides: fglrx-driver, xorg-driver-binary, ${xviddriver:Provides} diff -Nru fglrx-installer-updates-15.201/debian/control.in fglrx-installer-updates-15.201.2/debian/control.in --- fglrx-installer-updates-15.201/debian/control.in 2015-11-27 15:29:21.000000000 +0000 +++ fglrx-installer-updates-15.201.2/debian/control.in 2017-03-15 11:48:11.000000000 +0000 @@ -39,7 +39,7 @@ Package: #DRIVERNAME# Architecture: amd64 i386 Recommends: fglrx-amdcccle#FLAVOUR# -Pre-Depends: ${misc:Pre-Depends} +Pre-Depends: #DRIVERCORENAME#, ${misc:Pre-Depends} Depends: ${shlibs:Depends}, #DRIVERCORENAME#, ${xviddriver:Depends}, ${misc:Depends} Provides: fglrx-driver, xorg-driver-binary, ${xviddriver:Provides} diff -Nru fglrx-installer-updates-15.201/debian/fglrx-updates-core.install fglrx-installer-updates-15.201.2/debian/fglrx-updates-core.install --- fglrx-installer-updates-15.201/debian/fglrx-updates-core.install 2015-11-27 15:48:35.000000000 +0000 +++ fglrx-installer-updates-15.201.2/debian/fglrx-updates-core.install 2017-03-15 11:53:00.000000000 +0000 @@ -5,10 +5,10 @@ debian/71-fglrx.rules lib/udev/rules.d #Actual kernel modules -lib/modules/fglrx/build_mod/* usr/src/fglrx-updates-core-15.201 -debian/dkms/* usr/src/fglrx-updates-core-15.201 -arch/x86_64/lib/modules/fglrx/build_mod/lib* usr/src/fglrx-updates-core-15.201 -debian/dkms.conf usr/src/fglrx-updates-core-15.201 +lib/modules/fglrx/build_mod/* usr/src/fglrx-updates-core-15.201.2 +debian/dkms/* usr/src/fglrx-updates-core-15.201.2 +arch/x86_64/lib/modules/fglrx/build_mod/lib* usr/src/fglrx-updates-core-15.201.2 +debian/dkms.conf usr/src/fglrx-updates-core-15.201.2 #DRI stuff arch/x86_64/usr/X11R6/lib64/libatiadlxx.so usr/lib @@ -18,9 +18,9 @@ debian/acpi/fglrx-*-aticonfig etc/acpi/events debian/acpi/fglrx-powermode.sh etc/acpi -etc/ati/* etc/ati -debian/replacements/authatieventsd.sh etc/ati -arch/x86_64/etc/OpenCL/vendors/*.icd etc/OpenCL/vendors +etc/ati/* usr/lib/fglrx/etc/ati +debian/replacements/authatieventsd.sh usr/lib/fglrx/etc/ati +arch/x86_64/etc/OpenCL/vendors/*.icd usr/lib/fglrx/etc/OpenCL/vendors #binaries arch/x86_64/usr/bin/clinfo usr/bin diff -Nru fglrx-installer-updates-15.201/debian/fglrx-updates-core.install.in fglrx-installer-updates-15.201.2/debian/fglrx-updates-core.install.in --- fglrx-installer-updates-15.201/debian/fglrx-updates-core.install.in 2015-11-27 15:24:39.000000000 +0000 +++ fglrx-installer-updates-15.201.2/debian/fglrx-updates-core.install.in 2017-03-15 11:48:11.000000000 +0000 @@ -18,9 +18,9 @@ debian/acpi/fglrx-*-aticonfig #SYSCONFDIR#/acpi/events debian/acpi/fglrx-powermode.sh #SYSCONFDIR#/acpi -etc/ati/* #SYSCONFDIR#/ati -debian/replacements/authatieventsd.sh #SYSCONFDIR#/ati -arch/#SRCARCH#/etc/OpenCL/vendors/*.icd #SYSCONFDIR#/OpenCL/vendors +etc/ati/* #PKGLIBDIR#/#SYSCONFDIR#/ati +debian/replacements/authatieventsd.sh #PKGLIBDIR#/#SYSCONFDIR#/ati +arch/#SRCARCH#/etc/OpenCL/vendors/*.icd #PKGLIBDIR#/#SYSCONFDIR#/OpenCL/vendors #binaries arch/#SRCARCH#/usr/bin/clinfo #BINDIR# diff -Nru fglrx-installer-updates-15.201/debian/fglrx-updates-core.postinst fglrx-installer-updates-15.201.2/debian/fglrx-updates-core.postinst --- fglrx-installer-updates-15.201/debian/fglrx-updates-core.postinst 2015-11-27 15:48:35.000000000 +0000 +++ fglrx-installer-updates-15.201.2/debian/fglrx-updates-core.postinst 2017-03-15 11:53:00.000000000 +0000 @@ -89,9 +89,70 @@ echo $NEWEST_KERNEL } +backup_files() { + BACKUP_DIR=usr/share/fglrx-core-backup + + [ ! -d $BACKUP_DIR ] && mkdir -p $BACKUP_DIR + mkdir -p $BACKUP_DIR/etc/OpenCL/vendors/ $BACKUP_DIR/usr/lib \ + $BACKUP_DIR/usr/lib32 $BACKUP_DIR/usr/bin 2>/dev/null || true + + # Now that we are done transitioning the alternatives, let's restore + # the backups + echo "fglrx-core: creating backups for the fglrx-core transition" + for elem in \ + /usr/bin/atiode \ + /usr/bin/clinfo \ + /usr/bin/atieventsd \ + /etc/OpenCL/vendors/amdocl32.icd \ + /etc/OpenCL/vendors/amdocl64.icd \ + /usr/lib/libaticalcl.so \ + /usr/lib/libatiuki.so.1.0 \ + /usr/lib/libaticalrt.so \ + /usr/lib/libatiadlxx.so \ + /usr/lib/libamdocl12cl64.so \ + /usr/lib/libOpenCL.so.1 \ + /usr/lib/libamdocl64.so \ + /usr/lib/libaticaldd.so \ + /usr/lib/libatiuki.so.1 \ + /usr/lib32/libamdocl32.so \ + /usr/lib32/libaticalcl.so \ + /usr/lib32/libatiuki.so.1.0 \ + /usr/lib32/libaticalrt.so \ + /usr/lib32/libatiadlxx.so \ + /usr/lib32/libamdocl12cl32.so \ + /usr/lib32/libOpenCL.so.1 \ + /usr/lib32/libaticaldd.so \ + /usr/lib32/libatiuki.so.1; do + if [ -e "$elem" ]; then + echo "Backing up $elem" + cp -a $elem $BACKUP_DIR/$elem 2>/dev/null || true + fi + done +} + +backup_ati_dir() { + BACKUP_DIR=usr/share/fglrx-core-backup + ATI_DIR=etc/ati + ATI_PATH=/usr/lib/fglrx/$ATI_DIR + DEST_DIR=$BACKUP_DIR/etc + + if [ -d $ATI_PATH ]; then + echo "Backing up /$ATI_DIR" + mkdir -p $DEST_DIR 2>/dev/null || true + cp -a $ATI_PATH $DEST_DIR/ 2>/dev/null || true + fi +} + if [ "$1" = "configure" ]; then + # Make a backup of the files from fglrx-core (see LP: #1511301) + # only if fglrx is already installed + if [ -f /usr/lib/fglrx/libAMDXvBA.cap ]; then + backup_files + backup_ati_dir + fi + update-alternatives --force \ --install /etc/ld.so.conf.d/x86_64-linux-gnu_GFXCORE.conf x86_64-linux-gnu_gfxcore_conf /usr/lib/fglrx-core/ld.so.conf 1001 \ --slave /etc/modprobe.d/fglrx-core.conf x86_64-linux-gnu_fglrxcore_modconf /lib/fglrx/core-modprobe.conf diff -Nru fglrx-installer-updates-15.201/debian/fglrx-updates-core.postinst.in fglrx-installer-updates-15.201.2/debian/fglrx-updates-core.postinst.in --- fglrx-installer-updates-15.201/debian/fglrx-updates-core.postinst.in 2015-11-27 15:24:39.000000000 +0000 +++ fglrx-installer-updates-15.201.2/debian/fglrx-updates-core.postinst.in 2017-03-15 11:48:11.000000000 +0000 @@ -89,9 +89,70 @@ echo $NEWEST_KERNEL } +backup_files() { + BACKUP_DIR=#CORERESTOREDIR# + + [ ! -d $BACKUP_DIR ] && mkdir -p $BACKUP_DIR + mkdir -p $BACKUP_DIR/etc/OpenCL/vendors/ $BACKUP_DIR/usr/lib \ + $BACKUP_DIR/usr/lib32 $BACKUP_DIR/usr/bin 2>/dev/null || true + + # Now that we are done transitioning the alternatives, let's restore + # the backups + echo "fglrx-core: creating backups for the fglrx-core transition" + for elem in \ + /usr/bin/atiode \ + /usr/bin/clinfo \ + /usr/bin/atieventsd \ + /etc/OpenCL/vendors/amdocl32.icd \ + /etc/OpenCL/vendors/amdocl64.icd \ + /usr/lib/libaticalcl.so \ + /usr/lib/libatiuki.so.1.0 \ + /usr/lib/libaticalrt.so \ + /usr/lib/libatiadlxx.so \ + /usr/lib/libamdocl12cl64.so \ + /usr/lib/libOpenCL.so.1 \ + /usr/lib/libamdocl64.so \ + /usr/lib/libaticaldd.so \ + /usr/lib/libatiuki.so.1 \ + /usr/lib32/libamdocl32.so \ + /usr/lib32/libaticalcl.so \ + /usr/lib32/libatiuki.so.1.0 \ + /usr/lib32/libaticalrt.so \ + /usr/lib32/libatiadlxx.so \ + /usr/lib32/libamdocl12cl32.so \ + /usr/lib32/libOpenCL.so.1 \ + /usr/lib32/libaticaldd.so \ + /usr/lib32/libatiuki.so.1; do + if [ -e "$elem" ]; then + echo "Backing up $elem" + cp -a $elem $BACKUP_DIR/$elem 2>/dev/null || true + fi + done +} + +backup_ati_dir() { + BACKUP_DIR=#CORERESTOREDIR# + ATI_DIR=etc/ati + ATI_PATH=/usr/lib/fglrx/$ATI_DIR + DEST_DIR=$BACKUP_DIR/etc + + if [ -d $ATI_PATH ]; then + echo "Backing up /$ATI_DIR" + mkdir -p $DEST_DIR 2>/dev/null || true + cp -a $ATI_PATH $DEST_DIR/ 2>/dev/null || true + fi +} + if [ "$1" = "configure" ]; then + # Make a backup of the files from fglrx-core (see LP: #1511301) + # only if fglrx is already installed + if [ -f /usr/lib/fglrx/libAMDXvBA.cap ]; then + backup_files + backup_ati_dir + fi + update-alternatives --force \ --install /#SYSCONFDIR#/ld.so.conf.d/#DEB_HOST_MULTIARCH#_GFXCORE.conf #DEB_HOST_MULTIARCH#_gfxcore_conf /#CORELDSOCONF# #COREPRIORITY# \ --slave /#SYSCONFDIR#/modprobe.d/fglrx-core.conf #DEB_HOST_MULTIARCH#_fglrxcore_modconf /lib/fglrx/core-modprobe.conf diff -Nru fglrx-installer-updates-15.201/debian/fglrx-updates.dirs fglrx-installer-updates-15.201.2/debian/fglrx-updates.dirs --- fglrx-installer-updates-15.201/debian/fglrx-updates.dirs 2015-11-27 15:48:35.000000000 +0000 +++ fglrx-installer-updates-15.201.2/debian/fglrx-updates.dirs 2017-03-15 11:53:00.000000000 +0000 @@ -4,7 +4,6 @@ usr/lib/pxpress/lib usr/share/fglrx lib/fglrx -etc/ati usr/share/ati usr/lib/dri usr/lib/xorg/modules/drivers/ diff -Nru fglrx-installer-updates-15.201/debian/fglrx-updates.dirs.in fglrx-installer-updates-15.201.2/debian/fglrx-updates.dirs.in --- fglrx-installer-updates-15.201/debian/fglrx-updates.dirs.in 2015-11-27 15:23:07.000000000 +0000 +++ fglrx-installer-updates-15.201.2/debian/fglrx-updates.dirs.in 2017-03-15 11:48:11.000000000 +0000 @@ -4,7 +4,6 @@ #PXLIBDIR# #PKGDATADIR# #PKGLIBCONFDIR# -#SYSCONFDIR#/ati #DATADIR#/ati #LIBDIR#/dri #LIBDIR#/xorg/modules/drivers/ diff -Nru fglrx-installer-updates-15.201/debian/fglrx-updates.postinst fglrx-installer-updates-15.201.2/debian/fglrx-updates.postinst --- fglrx-installer-updates-15.201/debian/fglrx-updates.postinst 2015-11-27 15:48:35.000000000 +0000 +++ fglrx-installer-updates-15.201.2/debian/fglrx-updates.postinst 2017-03-15 11:53:00.000000000 +0000 @@ -9,7 +9,86 @@ ARCH=`dpkg --print-architecture` -CORE_SPLIT_RELEASE="2:14.502-0ubuntu1" +restore_fglrx_core() { + BACKUP_DIR=usr/share/fglrx-core-backup + if [ -d $BACKUP_DIR ]; then + for elem in \ + /usr/bin/atiode \ + /usr/bin/clinfo \ + /usr/bin/atieventsd \ + /etc/OpenCL/vendors/amdocl32.icd \ + /etc/OpenCL/vendors/amdocl64.icd \ + /usr/lib/libaticalcl.so \ + /usr/lib/libatiuki.so.1.0 \ + /usr/lib/libaticalrt.so \ + /usr/lib/libatiadlxx.so \ + /usr/lib/libamdocl12cl64.so \ + /usr/lib/libOpenCL.so.1 \ + /usr/lib/libamdocl64.so \ + /usr/lib/libaticaldd.so \ + /usr/lib/libatiuki.so.1 \ + /usr/lib32/libamdocl32.so \ + /usr/lib32/libaticalcl.so \ + /usr/lib32/libatiuki.so.1.0 \ + /usr/lib32/libaticalrt.so \ + /usr/lib32/libatiadlxx.so \ + /usr/lib32/libamdocl12cl32.so \ + /usr/lib32/libOpenCL.so.1 \ + /usr/lib32/libaticaldd.so \ + /usr/lib32/libatiuki.so.1; do + if [ -e "$BACKUP_DIR/$elem" ]; then + echo "Restoring $elem" + cp -aRf $BACKUP_DIR/$elem $elem 2>/dev/null || true + fi + done + fi +} + +restore_ati_dir() { + BACKUP_DIR=usr/share/fglrx-core-backup + ATI_DIR=etc/ati + if [ -d "$BACKUP_DIR/$ATI_DIR" ]; then + echo "Restoring /$ATI_DIR" + cp -aRf $BACKUP_DIR/$ATI_DIR /$ATI_DIR 2>/dev/null || true + fi +} + +restore_fglrx() { + BACKUP_DIR=usr/share/fglrx-backup + if [ -d $BACKUP_DIR ]; then + for elem in \ + /usr/bin/amdconfig \ + /usr/bin/atiode \ + /usr/bin/aticonfig \ + /usr/bin/fglrxinfo \ + /usr/bin/fgl_glxgears \ + /usr/lib/libAMDXvBA.cap \ + /usr/lib32/fglrx/libAMDXvBA.cap \ + /usr/lib/dri/fglrx_dri.so \ + /usr/lib32/fglrx/dri/fglrx_dri.so; do + if [ -e "$BACKUP_DIR/$elem" ]; then + echo "Restoring $elem" + cp -aRf $BACKUP_DIR/$elem $elem 2>/dev/null || true + fi + done + fi +} + +restore_fglrx_amdcccle() { + BACKUP_DIR=usr/share/fglrx-amdcccle-backup + if [ -d $BACKUP_DIR ]; then + for elem in \ + /usr/bin/amdupdaterandrconfig \ + /usr/bin/amdxdg-su \ + /usr/bin/amdcccle; do + if [ -e "$BACKUP_DIR/$elem" ]; then + echo "Restoring $elem" + cp -aRf $BACKUP_DIR/$elem $elem 2>/dev/null || true + fi + done + fi +} + if [ "$1" = "configure" ]; then @@ -29,35 +108,13 @@ done fi - if [ -n "$2" ]; then - if dpkg --compare-versions "$2" le "$CORE_SPLIT_RELEASE"; then - # Extra check, as amdcccle used to be a link set by alternatives - if [ -e /usr/bin/amdcccle ] && [ ! -h /usr/bin/amdcccle ]; then - # We make a backup of the new files that - # update-alternatives will otherwise remove - echo "Creating backups for the fglrx-core transition" - mv -n /usr/bin/atiode /usr/bin/atiode.dpkg-bak 2>/dev/null || true - mv -n /usr/bin/aticonfig /usr/bin/aticonfig.dpkg-bak 2>/dev/null || true - mv -n /usr/bin/fglrxinfo /usr/bin/fglrxinfo.dpkg-bak 2>/dev/null || true - mv -n /usr/bin/fgl_glxgears /usr/bin/fgl_glxgears.dpkg-bak 2>/dev/null || true - mv -n /usr/bin/amdconfig /usr/bin/amdconfig.dpkg-bak 2>/dev/null || true - mv -n /usr/bin/amdxdg-su /usr/bin/amdxdg-su.dpkg-bak 2>/dev/null || true - mv -n /usr/bin/amdupdaterandrconfig /usr/bin/amdupdaterandrconfig.dpkg-bak 2>/dev/null || true - mv -n /usr/bin/amdcccle /usr/bin/amdcccle.dpkg-bak 2>/dev/null || true - mv -n /usr/bin/clinfo /usr/bin/clinfo.dpkg-bak 2>/dev/null || true - mv -n /usr/bin/atieventsd /usr/bin/atieventsd.dpkg-bak 2>/dev/null || true - mv -n /usr/lib/dri/fglrx_dri.so /usr/lib/dri/fglrx_dri.so.dpkg-bak 2>/dev/null || true - mv -n /usr/lib/libAMDXvBA.cap /usr/lib/libAMDXvBA.cap.dpkg-bak 2>/dev/null || true - mv -n /etc/OpenCL/vendors/amdocl32.icd /etc/OpenCL/vendors/amdocl32.icd.dpkg-bak 2>/dev/null || true - mv -n /etc/OpenCL/vendors/amdocl64.icd /etc/OpenCL/vendors/amdocl64.icd.dpkg-bak 2>/dev/null || true - mv -n /usr/lib/libOpenCL.so /usr/lib/libOpenCL.so.dpkg-bak 2>/dev/null || true - mv -n /usr/lib/libaticalcl.so /usr/lib/libaticalcl.so.dpkg-bak 2>/dev/null || true - mv -n /usr/lib32/libaticalcl.so /usr/lib32/libaticalcl.so.dpkg-bak 2>/dev/null || true - mv -n /usr/lib/libaticalrt.so /usr/lib/libaticalrt.so.dpkg-bak 2>/dev/null || true - mv -n /usr/lib32/libaticalrt.so /usr/lib32/libaticalrt.so.dpkg-bak 2>/dev/null || true - mv -n /etc/ati /etc/ati.dpkg-bak 2>/dev/null || true - fi - fi + # Try to restore the files from fglrx-core (see LP: #1511301) + if [ -d usr/share/fglrx-core-backup ]; then + # Try to restore fglrx-core + restore_fglrx_core + + # Remove ati before the alternatives are updated + rm -Rf /etc/ati fi update-alternatives --force \ @@ -85,35 +142,29 @@ update-alternatives --force \ --install /etc/ld.so.conf.d/i386-linux-gnu_GL.conf i386-linux-gnu_gl_conf /usr/lib/pxpress/alt_ld.so.conf 901 - if [ -e /usr/bin/amdcccle.dpkg-bak ]; then - # Now that we are done transitioning the alternatives, let's restore - # the backups - echo "Restoring backups for the fglrx-core transition" - mv -n /usr/bin/atiode.dpkg-bak /usr/bin/atiode 2>/dev/null || true - mv -n /usr/bin/aticonfig.dpkg-bak /usr/bin/aticonfig 2>/dev/null || true - mv -n /usr/bin/fglrxinfo.dpkg-bak /usr/bin/fglrxinfo 2>/dev/null || true - mv -n /usr/bin/fgl_glxgears.dpkg-bak /usr/bin/fgl_glxgears 2>/dev/null || true - mv -n /usr/bin/amdconfig.dpkg-bak /usr/bin/amdconfig 2>/dev/null || true - mv -n /usr/bin/amdxdg-su.dpkg-bak /usr/bin/amdxdg-su 2>/dev/null || true - mv -n /usr/bin/amdupdaterandrconfig.dpkg-bak /usr/bin/amdupdaterandrconfig 2>/dev/null || true - mv -n /usr/bin/amdcccle.dpkg-bak /usr/bin/amdcccle 2>/dev/null || true - mv -n /usr/bin/clinfo.dpkg-bak /usr/bin/clinfo 2>/dev/null || true - mv -n /usr/bin/atieventsd.dpkg-bak /usr/bin/atieventsd 2>/dev/null || true - mv -n /usr/lib/dri/fglrx_dri.so.dpkg-bak /usr/lib/dri/fglrx_dri.so 2>/dev/null || true - mv -n /usr/lib/libAMDXvBA.cap.dpkg-bak /usr/lib/libAMDXvBA.cap 2>/dev/null || true - mv -n /etc/OpenCL/vendors/amdocl32.icd.dpkg-bak /etc/OpenCL/vendors/amdocl32.icd 2>/dev/null || true - mv -n /etc/OpenCL/vendors/amdocl64.icd.dpkg-bak /etc/OpenCL/vendors/amdocl64.icd 2>/dev/null || true - mv -n /usr/lib/libOpenCL.so.dpkg-bak /usr/lib/libOpenCL.so 2>/dev/null || true - mv -n /usr/lib/libaticalcl.so.dpkg-bak /usr/lib/libaticalcl.so 2>/dev/null || true - mv -n /usr/lib32/libaticalcl.so.dpkg-bak /usr/lib32/libaticalcl.so 2>/dev/null || true - mv -n /usr/lib/libaticalrt.so.dpkg-bak /usr/lib/libaticalrt.so 2>/dev/null || true - mv -n /usr/lib32/libaticalrt.so.dpkg-bak /usr/lib32/libaticalrt.so 2>/dev/null || true - mv -n /etc/ati.dpkg-bak /etc/ati 2>/dev/null || true - fi - # ldconfig needs to be run immediately as we're changing /etc/ld.so.conf.d/ with # alternatives. LDCONFIG_NOTRIGGER=y ldconfig + + # Try to restore the files from fglrx and fglrx-amdcccle (see LP: #1511301) + if [ -d usr/share/fglrx-core-backup ]; then + restore_fglrx + restore_fglrx_amdcccle + # Move /etc/ati back + restore_ati_dir + + rm -Rf usr/share/fglrx-core-backup + fi + + # If there still is no /etc/ati directory + if [ ! -d /etc/ati ] || ! [ "$(ls -A /etc/ati)" ]; then + cp -a /usr/lib/fglrx/etc/ati /etc/ + fi + + if [ ! -f /etc/OpenCL/vendors/amdocl32.icd ]; then + cp -af /usr/lib/fglrx/etc/OpenCL/vendors/*.icd /etc/OpenCL/vendors/ 2>/dev/null || true + fi + fi #DEBHELPER# diff -Nru fglrx-installer-updates-15.201/debian/fglrx-updates.postinst.in fglrx-installer-updates-15.201.2/debian/fglrx-updates.postinst.in --- fglrx-installer-updates-15.201/debian/fglrx-updates.postinst.in 2015-11-27 15:24:39.000000000 +0000 +++ fglrx-installer-updates-15.201.2/debian/fglrx-updates.postinst.in 2017-03-15 11:48:11.000000000 +0000 @@ -9,7 +9,86 @@ ARCH=`dpkg --print-architecture` -CORE_SPLIT_RELEASE="2:14.502-0ubuntu1" +restore_fglrx_core() { + BACKUP_DIR=#CORERESTOREDIR# + if [ -d $BACKUP_DIR ]; then + for elem in \ + /usr/bin/atiode \ + /usr/bin/clinfo \ + /usr/bin/atieventsd \ + /etc/OpenCL/vendors/amdocl32.icd \ + /etc/OpenCL/vendors/amdocl64.icd \ + /usr/lib/libaticalcl.so \ + /usr/lib/libatiuki.so.1.0 \ + /usr/lib/libaticalrt.so \ + /usr/lib/libatiadlxx.so \ + /usr/lib/libamdocl12cl64.so \ + /usr/lib/libOpenCL.so.1 \ + /usr/lib/libamdocl64.so \ + /usr/lib/libaticaldd.so \ + /usr/lib/libatiuki.so.1 \ + /usr/lib32/libamdocl32.so \ + /usr/lib32/libaticalcl.so \ + /usr/lib32/libatiuki.so.1.0 \ + /usr/lib32/libaticalrt.so \ + /usr/lib32/libatiadlxx.so \ + /usr/lib32/libamdocl12cl32.so \ + /usr/lib32/libOpenCL.so.1 \ + /usr/lib32/libaticaldd.so \ + /usr/lib32/libatiuki.so.1; do + if [ -e "$BACKUP_DIR/$elem" ]; then + echo "Restoring $elem" + cp -aRf $BACKUP_DIR/$elem $elem 2>/dev/null || true + fi + done + fi +} + +restore_ati_dir() { + BACKUP_DIR=#CORERESTOREDIR# + ATI_DIR=etc/ati + if [ -d "$BACKUP_DIR/$ATI_DIR" ]; then + echo "Restoring /$ATI_DIR" + cp -aRf $BACKUP_DIR/$ATI_DIR /$ATI_DIR 2>/dev/null || true + fi +} + +restore_fglrx() { + BACKUP_DIR=#RESTOREDIR# + if [ -d $BACKUP_DIR ]; then + for elem in \ + /usr/bin/amdconfig \ + /usr/bin/atiode \ + /usr/bin/aticonfig \ + /usr/bin/fglrxinfo \ + /usr/bin/fgl_glxgears \ + /usr/lib/libAMDXvBA.cap \ + /usr/lib32/fglrx/libAMDXvBA.cap \ + /usr/lib/dri/fglrx_dri.so \ + /usr/lib32/fglrx/dri/fglrx_dri.so; do + if [ -e "$BACKUP_DIR/$elem" ]; then + echo "Restoring $elem" + cp -aRf $BACKUP_DIR/$elem $elem 2>/dev/null || true + fi + done + fi +} + +restore_fglrx_amdcccle() { + BACKUP_DIR=#AMDCCCLERESTOREDIR# + if [ -d $BACKUP_DIR ]; then + for elem in \ + /usr/bin/amdupdaterandrconfig \ + /usr/bin/amdxdg-su \ + /usr/bin/amdcccle; do + if [ -e "$BACKUP_DIR/$elem" ]; then + echo "Restoring $elem" + cp -aRf $BACKUP_DIR/$elem $elem 2>/dev/null || true + fi + done + fi +} + if [ "$1" = "configure" ]; then @@ -29,35 +108,13 @@ done fi - if [ -n "$2" ]; then - if dpkg --compare-versions "$2" le "$CORE_SPLIT_RELEASE"; then - # Extra check, as amdcccle used to be a link set by alternatives - if [ -e /usr/bin/amdcccle ] && [ ! -h /usr/bin/amdcccle ]; then - # We make a backup of the new files that - # update-alternatives will otherwise remove - echo "Creating backups for the fglrx-core transition" - mv -n /usr/bin/atiode /usr/bin/atiode.dpkg-bak 2>/dev/null || true - mv -n /usr/bin/aticonfig /usr/bin/aticonfig.dpkg-bak 2>/dev/null || true - mv -n /usr/bin/fglrxinfo /usr/bin/fglrxinfo.dpkg-bak 2>/dev/null || true - mv -n /usr/bin/fgl_glxgears /usr/bin/fgl_glxgears.dpkg-bak 2>/dev/null || true - mv -n /usr/bin/amdconfig /usr/bin/amdconfig.dpkg-bak 2>/dev/null || true - mv -n /usr/bin/amdxdg-su /usr/bin/amdxdg-su.dpkg-bak 2>/dev/null || true - mv -n /usr/bin/amdupdaterandrconfig /usr/bin/amdupdaterandrconfig.dpkg-bak 2>/dev/null || true - mv -n /usr/bin/amdcccle /usr/bin/amdcccle.dpkg-bak 2>/dev/null || true - mv -n /usr/bin/clinfo /usr/bin/clinfo.dpkg-bak 2>/dev/null || true - mv -n /usr/bin/atieventsd /usr/bin/atieventsd.dpkg-bak 2>/dev/null || true - mv -n /usr/lib/dri/fglrx_dri.so /usr/lib/dri/fglrx_dri.so.dpkg-bak 2>/dev/null || true - mv -n /usr/lib/libAMDXvBA.cap /usr/lib/libAMDXvBA.cap.dpkg-bak 2>/dev/null || true - mv -n /etc/OpenCL/vendors/amdocl32.icd /etc/OpenCL/vendors/amdocl32.icd.dpkg-bak 2>/dev/null || true - mv -n /etc/OpenCL/vendors/amdocl64.icd /etc/OpenCL/vendors/amdocl64.icd.dpkg-bak 2>/dev/null || true - mv -n /usr/lib/libOpenCL.so /usr/lib/libOpenCL.so.dpkg-bak 2>/dev/null || true - mv -n /usr/lib/libaticalcl.so /usr/lib/libaticalcl.so.dpkg-bak 2>/dev/null || true - mv -n /usr/lib32/libaticalcl.so /usr/lib32/libaticalcl.so.dpkg-bak 2>/dev/null || true - mv -n /usr/lib/libaticalrt.so /usr/lib/libaticalrt.so.dpkg-bak 2>/dev/null || true - mv -n /usr/lib32/libaticalrt.so /usr/lib32/libaticalrt.so.dpkg-bak 2>/dev/null || true - mv -n /etc/ati /etc/ati.dpkg-bak 2>/dev/null || true - fi - fi + # Try to restore the files from fglrx-core (see LP: #1511301) + if [ -d #CORERESTOREDIR# ]; then + # Try to restore fglrx-core + restore_fglrx_core + + # Remove ati before the alternatives are updated + rm -Rf /etc/ati fi update-alternatives --force \ @@ -85,35 +142,29 @@ update-alternatives --force \ --install /#SYSCONFDIR#/ld.so.conf.d/#OTHER_ARCH#_GL.conf #OTHER_ARCH#_gl_conf /#ALTPXLDSOCONF# #PXALTPRIORITY# - if [ -e /usr/bin/amdcccle.dpkg-bak ]; then - # Now that we are done transitioning the alternatives, let's restore - # the backups - echo "Restoring backups for the fglrx-core transition" - mv -n /usr/bin/atiode.dpkg-bak /usr/bin/atiode 2>/dev/null || true - mv -n /usr/bin/aticonfig.dpkg-bak /usr/bin/aticonfig 2>/dev/null || true - mv -n /usr/bin/fglrxinfo.dpkg-bak /usr/bin/fglrxinfo 2>/dev/null || true - mv -n /usr/bin/fgl_glxgears.dpkg-bak /usr/bin/fgl_glxgears 2>/dev/null || true - mv -n /usr/bin/amdconfig.dpkg-bak /usr/bin/amdconfig 2>/dev/null || true - mv -n /usr/bin/amdxdg-su.dpkg-bak /usr/bin/amdxdg-su 2>/dev/null || true - mv -n /usr/bin/amdupdaterandrconfig.dpkg-bak /usr/bin/amdupdaterandrconfig 2>/dev/null || true - mv -n /usr/bin/amdcccle.dpkg-bak /usr/bin/amdcccle 2>/dev/null || true - mv -n /usr/bin/clinfo.dpkg-bak /usr/bin/clinfo 2>/dev/null || true - mv -n /usr/bin/atieventsd.dpkg-bak /usr/bin/atieventsd 2>/dev/null || true - mv -n /usr/lib/dri/fglrx_dri.so.dpkg-bak /usr/lib/dri/fglrx_dri.so 2>/dev/null || true - mv -n /usr/lib/libAMDXvBA.cap.dpkg-bak /usr/lib/libAMDXvBA.cap 2>/dev/null || true - mv -n /etc/OpenCL/vendors/amdocl32.icd.dpkg-bak /etc/OpenCL/vendors/amdocl32.icd 2>/dev/null || true - mv -n /etc/OpenCL/vendors/amdocl64.icd.dpkg-bak /etc/OpenCL/vendors/amdocl64.icd 2>/dev/null || true - mv -n /usr/lib/libOpenCL.so.dpkg-bak /usr/lib/libOpenCL.so 2>/dev/null || true - mv -n /usr/lib/libaticalcl.so.dpkg-bak /usr/lib/libaticalcl.so 2>/dev/null || true - mv -n /usr/lib32/libaticalcl.so.dpkg-bak /usr/lib32/libaticalcl.so 2>/dev/null || true - mv -n /usr/lib/libaticalrt.so.dpkg-bak /usr/lib/libaticalrt.so 2>/dev/null || true - mv -n /usr/lib32/libaticalrt.so.dpkg-bak /usr/lib32/libaticalrt.so 2>/dev/null || true - mv -n /etc/ati.dpkg-bak /etc/ati 2>/dev/null || true - fi - # ldconfig needs to be run immediately as we're changing /etc/ld.so.conf.d/ with # alternatives. LDCONFIG_NOTRIGGER=y ldconfig + + # Try to restore the files from fglrx and fglrx-amdcccle (see LP: #1511301) + if [ -d #CORERESTOREDIR# ]; then + restore_fglrx + restore_fglrx_amdcccle + # Move /etc/ati back + restore_ati_dir + + rm -Rf #CORERESTOREDIR# + fi + + # If there still is no /etc/ati directory + if [ ! -d /etc/ati ] || ! [ "$(ls -A /etc/ati)" ]; then + cp -a /#PKGLIBDIR#/#SYSCONFDIR#/ati /etc/ + fi + + if [ ! -f /etc/OpenCL/vendors/amdocl32.icd ]; then + cp -af /#PKGLIBDIR#/#SYSCONFDIR#/OpenCL/vendors/*.icd /etc/OpenCL/vendors/ 2>/dev/null || true + fi + fi #DEBHELPER# diff -Nru fglrx-installer-updates-15.201/debian/fglrx-updates.preinst fglrx-installer-updates-15.201.2/debian/fglrx-updates.preinst --- fglrx-installer-updates-15.201/debian/fglrx-updates.preinst 2015-11-27 15:48:35.000000000 +0000 +++ fglrx-installer-updates-15.201.2/debian/fglrx-updates.preinst 2017-03-15 11:53:00.000000000 +0000 @@ -18,7 +18,6 @@ PKGNAME=fglrx-updates OLDPKGNAME=xorg-driver-fglrx -CORE_SPLIT_RELEASE="2:14.502-0ubuntu1" if [ `dpkg --print-architecture` = "amd64" ]; then HAS_LIB32="yes" @@ -83,28 +82,6 @@ if [ ! -L /etc/X11/Xsession.d/10fglrx ]; then rm -f /etc/X11/Xsession.d/10fglrx fi - - if [ -n "$2" ]; then - if dpkg --compare-versions "$2" le "$CORE_SPLIT_RELEASE"; then - # Move the ati directory to /etc to preserve user settings, - # now that we no longer use alternatives for the directory - echo "Moving ati dir to /etc for the fglrx-core transition" - cp -RL /etc/ati /etc/ati.dpkg-bak 2>/dev/null || true - # Remove the link (or the actual directory from the upstream - # driver packages) - rm -Rf /etc/ati 2>/dev/null - # Finally move ati into /etc - mv /etc/ati.dpkg-bak /etc/ati 2>/dev/null || true - - # Remove the links that will otherwise prevent installing - # the actual files - echo "Removing links in /etc for the fglrx-core transition" - rm -f /etc/OpenCL/vendors/amdocl32.icd 2>/dev/null - rm -f /etc/OpenCL/vendors/amdocl64.icd 2>/dev/null - rm -f /usr/lib/libOpenCL.so 2>/dev/null - fi - fi - ;; abort-upgrade) diff -Nru fglrx-installer-updates-15.201/debian/fglrx-updates.preinst.in fglrx-installer-updates-15.201.2/debian/fglrx-updates.preinst.in --- fglrx-installer-updates-15.201/debian/fglrx-updates.preinst.in 2015-11-27 15:23:07.000000000 +0000 +++ fglrx-installer-updates-15.201.2/debian/fglrx-updates.preinst.in 2017-03-15 11:48:11.000000000 +0000 @@ -18,7 +18,6 @@ PKGNAME=#DRIVERNAME# OLDPKGNAME=xorg-driver-fglrx -CORE_SPLIT_RELEASE="2:14.502-0ubuntu1" if [ `dpkg --print-architecture` = "amd64" ]; then HAS_LIB32="yes" @@ -83,28 +82,6 @@ if [ ! -L /etc/X11/Xsession.d/10fglrx ]; then rm -f /etc/X11/Xsession.d/10fglrx fi - - if [ -n "$2" ]; then - if dpkg --compare-versions "$2" le "$CORE_SPLIT_RELEASE"; then - # Move the ati directory to /etc to preserve user settings, - # now that we no longer use alternatives for the directory - echo "Moving ati dir to /etc for the fglrx-core transition" - cp -RL /etc/ati /etc/ati.dpkg-bak 2>/dev/null || true - # Remove the link (or the actual directory from the upstream - # driver packages) - rm -Rf /etc/ati 2>/dev/null - # Finally move ati into /etc - mv /etc/ati.dpkg-bak /etc/ati 2>/dev/null || true - - # Remove the links that will otherwise prevent installing - # the actual files - echo "Removing links in /etc for the fglrx-core transition" - rm -f /etc/OpenCL/vendors/amdocl32.icd 2>/dev/null - rm -f /etc/OpenCL/vendors/amdocl64.icd 2>/dev/null - rm -f /usr/lib/libOpenCL.so 2>/dev/null - fi - fi - ;; abort-upgrade) diff -Nru fglrx-installer-updates-15.201/debian/overrides/fglrx-updates-core fglrx-installer-updates-15.201.2/debian/overrides/fglrx-updates-core --- fglrx-installer-updates-15.201/debian/overrides/fglrx-updates-core 2015-11-27 15:48:35.000000000 +0000 +++ fglrx-installer-updates-15.201.2/debian/overrides/fglrx-updates-core 2017-03-15 11:53:00.000000000 +0000 @@ -15,7 +15,7 @@ fglrx-updates-core: hardening-no-relro usr/lib32/libaticaldd.so fglrx-updates-core: hardening-no-relro usr/lib32/libaticalrt.so fglrx-updates-core: hardening-no-relro usr/lib32/libatiuki.so.1.0 -fglrx-updates-core: unstripped-binary-or-object usr/src/fglrx-updates-core-15.201/libfglrx_ip.a +fglrx-updates-core: unstripped-binary-or-object usr/src/fglrx-updates-core-15.201.2/libfglrx_ip.a fglrx-updates-core: unknown-section restricted/misc fglrx-updates-core: non-multi-arch-lib-dir usr/lib32/ fglrx-updates-core: script-with-language-extension usr/sbin/atigetsysteminfo.sh diff -Nru fglrx-installer-updates-15.201/debian/rules fglrx-installer-updates-15.201.2/debian/rules --- fglrx-installer-updates-15.201/debian/rules 2015-11-27 15:24:39.000000000 +0000 +++ fglrx-installer-updates-15.201.2/debian/rules 2017-03-15 11:48:11.000000000 +0000 @@ -90,6 +90,11 @@ CORE_libdir := $(CORE_dir)/lib CORE_libdir32 := $(CORE_dir32)/lib +PKG_driver_core_bck_dir := usr/share/fglrx-core-backup +PKG_driver_bck_dir := usr/share/fglrx-backup +PKG_control_bck_dir := usr/share/fglrx-amdcccle-backup + + # This is remove fglrx from the blacklist UNBLKLST_CORE_ld_so_conf_file := unblacklist_ld.so.conf UNBLKLST_CORE_ld_so_conf := $(CORE_dir)/$(UNBLKLST_CORE_ld_so_conf_file) @@ -237,6 +242,9 @@ -e "s|#SRCLIBDIR#|$(SRC_libdir)|g" \ -e "s|#DEB_HOST_MULTIARCH#|$(DEB_HOST_MULTIARCH)|g" \ -e "s|#OTHER_ARCH#|$(OTHER_ARCH)|g" \ + -e "s|#CORERESTOREDIR#|$(PKG_driver_core_bck_dir)|g" \ + -e "s|#RESTOREDIR#|$(PKG_driver_bck_dir)|g" \ + -e "s|#AMDCCCLERESTOREDIR#|$(PKG_control_bck_dir)|g" \ debian/$$i.in > debian/$$i; \ done @@ -455,6 +463,35 @@ execstack -q $$i && execstack -c $$i || true; \ done + # Create a backup directory for fglrx + mkdir -p $(CURDIR)/debian/$(PKG_driver)/$(PKG_driver_bck_dir)/$(bindir) \ + $(CURDIR)/debian/$(PKG_driver)/$(PKG_driver_bck_dir)/$(libdir)/dri + + cp -a debian/$(PKG_driver)/$(bindir)/amdconfig $(CURDIR)/debian/$(PKG_driver)/$(PKG_driver_bck_dir)/$(bindir) + cp -a debian/$(PKG_driver)/$(bindir)/aticonfig $(CURDIR)/debian/$(PKG_driver)/$(PKG_driver_bck_dir)/$(bindir) + cp -a debian/$(PKG_driver)/$(bindir)/atiode $(CURDIR)/debian/$(PKG_driver)/$(PKG_driver_bck_dir)/$(bindir) + cp -a debian/$(PKG_driver)/$(bindir)/fglrxinfo $(CURDIR)/debian/$(PKG_driver)/$(PKG_driver_bck_dir)/$(bindir) + cp -a debian/$(PKG_driver)/$(bindir)/fgl_glxgears $(CURDIR)/debian/$(PKG_driver)/$(PKG_driver_bck_dir)/$(bindir) + + cp -a debian/$(PKG_driver)/$(libdir)/libAMDXvBA.cap $(CURDIR)/debian/$(PKG_driver)/$(PKG_driver_bck_dir)/$(libdir) +ifeq ($(DEB_HOST_ARCH),amd64) + mkdir -p $(CURDIR)/debian/$(PKG_driver)/$(PKG_driver_bck_dir)/$(libdir32)/fglrx + cp -a debian/$(PKG_driver)/$(libdir32)/fglrx/libAMDXvBA.cap $(CURDIR)/debian/$(PKG_driver)/$(PKG_driver_bck_dir)/$(libdir32)/fglrx +endif + + cp -a debian/$(PKG_driver)/$(libdir)/dri/fglrx_dri.so $(CURDIR)/debian/$(PKG_driver)/$(PKG_driver_bck_dir)/$(libdir)/dri +ifeq ($(DEB_HOST_ARCH),amd64) + mkdir -p $(CURDIR)/debian/$(PKG_driver)/$(PKG_driver_bck_dir)/$(libdir32)/fglrx/dri + cp -a debian/$(PKG_driver)/$(libdir32)/fglrx/dri/fglrx_dri.so $(CURDIR)/debian/$(PKG_driver)/$(PKG_driver_bck_dir)/$(libdir32)/fglrx/dri +endif + + # Create a backup directory for fglrx-amdcccle + mkdir -p $(CURDIR)/debian/$(PKG_control)/$(PKG_control_bck_dir)/$(bindir) + + cp -a debian/$(PKG_control)/$(bindir)/amdupdaterandrconfig $(CURDIR)/debian/$(PKG_control)/$(PKG_control_bck_dir)/$(bindir) + cp -a debian/$(PKG_control)/$(bindir)/amdxdg-su $(CURDIR)/debian/$(PKG_control)/$(PKG_control_bck_dir)/$(bindir) + cp -a debian/$(PKG_control)/$(bindir)/amdcccle $(CURDIR)/debian/$(PKG_control)/$(PKG_control_bck_dir)/$(bindir) + binary-arch: pre-binary-arch #Run the normal stuff dh binary-arch