Sunday, August 19, 2012

Wine 1.5.10 Backporting Notes

As I said earlier, I had some major problems getting it to package, but after two days of mucking around I've finally gotten something working.  All that after the jump.
The backport uses these two particular packages from the PPA.
  • wine1.5_1.5.10-0ubuntu1~pulse19+build3.debian.tar.gz
  • wine1.5_1.5.10.orig.tar.bz2

The debian package is particularly odd because it's not a diff and it's got some nasty stuff like the icons in png format instead of the uuencode/uudecode.

Debianization File Modifications

Basic rundown of the changes I did to backport it.
  • Updated the Maintainer
  • Changed debhelper  to >= 5
  • Changed gcc-4.5 dependence to gcc
  • Remove oss4-dev dependence
  • Remove opencl-headers and libosmesa6-dev dependence
  • Modified Provides and Replaces to add wine1.3 (because my wine 1.4 has wine1.3 as the package name.)
  • Modified the compat file to 5
  • A raft of changes on the rules file.
  • Various on the .install files
  • Heavy changes on the control file to remove i386 and amd64 specific packages (not sure I needed in retrospect, but I was bumping into errors and these were some of the things I did to simplify the build process).
  • Fix the Depends section.
  • Removed the icons folder in the debian folder.  
  • Reintroduced icons.tar.coded from my wine 1.4 build.
  • Overwrote the .preinst, .postinst.postrm scripts to the wine 1.4 build.  (dpkg is too old to use the new commands!)
  • Zap Wine64 building!
  • Update changelog file.
Rules File Modifications
Most of the changes are old and new because the rules file now is totally different from before.

This reverts the compilation back to gcc and removes the 64-bit compilation of Wine.

CC="gcc" instead of gcc-4.5
ifeq ($(DEB_BUILD_ARCH), amd64)
        CC="gcc" dh_auto_configure -- --libdir=\$${prefix}/lib32

This adds code to unpack the uuencode icons while building.

override_dh_install:
        uudecode -o debian/icons.tar debian/icons.tar.coded
        tar -C debian/ -xf debian/icons.tar
        dh_install --fail-missing
        cp -rf debian/icons debian/wine1.5/usr/share/


Modified wine1.5.install to copy the files in the correct place.

wine1.5.install contents:

debian/tmp/usr/bin/* usr/bin
debian/tmp/usr/lib32/* usr/lib32
debian/tmp/usr/share/* usr/share
debian/xdg/wine.menu etc/xdg/menus/applications-merged
debian/icons usr/share
debian/applications usr/share
debian/desktop-directories usr/share
debian/binfmts usr/share
debian/wineserver-restart-required.update-notifier usr/share/wine

wine1.5-dev.install contents:

debian/tmp/usr/include usr/

Control File

Package: wine1.5
Architecture: any
...

Depends:    ${shlibs:Depends},
            ${misc:Depends},
            libncurses5



Package: wine1.5-dev
Architecture: any
Section: libdevel
Pre-Depends: dpkg (>= 1.14.12ubuntu3), ${misc:Pre-Depends}
Depends:   libc6-dev,
           wine1.5 (= ${binary:Version}),
           ${shlibs:Depends}



Some Problems During Testing

I had some trouble installing the deb package too.  Daaaamn!

dpkg: error processing
 wine1.5_1.5.10-0ubuntu1~pulse19+build3_amd64.deb (--install):
subprocess new pre-installation script returned error exit status 127
/var/lib/dpkg/tmp.ci/postrm: 5:
 dpkg-maintscript-helper: not found

dpkg: error while cleaning up:
 subprocess new post-removal script returned error exit status 127

Well that sucked.  I had to force it out.
sudo dpkg --remove --force-all wine1.5

This prompted me to reintroduce the .preinst.postinst.postrm  files.  Apparently, the .prerm file remained largely unchanged.

FIXMEs

Well, the icons are largely wonky in the new install build.  The install path is in /usr/share/icons but it could be placed somewhere in /usr/share/icons/hicolor.  I need to review the install paths from wine 1.4 and see where it really should be.

I also would have wanted wine1.5 to remove the wine1.3 previous install that I had.  Nothing right now though.

Lastly, slip in the SWTOR patch!





No comments: