It is currently Fri Aug 29, 2014 5:28 am



Welcome
Welcome to antiX-forum.

You are currently viewing our boards as a guest, which gives you limited access to view most discussions and access our other features. By joining our free community, you will have access to post topics, communicate privately with other members (PM), respond to polls, upload content, and access many other special features. Registration is fast, simple, and absolutely free, so please, join our community today!


Post new topic Reply to topic  [ 3 posts ] 
Author Message
 Post subject: Backporting / wxwidgets 2.9 / wxmupen64plus GUI N64 Emulator
PostPosted: Wed Apr 04, 2012 8:18 am 
Offline

Joined: Wed Jan 18, 2012 8:42 pm
Posts: 73
The CuteMupen GUI for the Mupen64plus N64 Emulator has stopped working on Wheezy so I decided to build the wxMupen64plus GUI which requires building wxwidgets 2.9 (the current default is 2.8 on Wheezy). I successfully backported wxwidgets using GCC-4.5 (& not the current default 4.6) - but in the end used my own deb package built to install under /opt which I also detail further below.

If you would just like the debs:

Backported wxwidgets 2.9.2 for Wheezy
wxwidgets 2.9.3 (which installs to /opt) - see notes below to manually add wxwidgets to the Library Path with ldconfig.
wxmuppen64plus 0.30 GUI

First the Backporting (a variation of these instructions):

Download the debianised source code from the Ubuntu PPA (the last 3 wxwidgets files .diff.gz / .dsc / .orig.tar.gz). Make sure your build folder has no spaces in the folder name.

Install the build tools:
Code:
apt-get install debhelper dpkg-dev devscripts fakeroot build-essential pbuilder

Open a Terminal in your build folder & patch the source code:
Code:
dpkg-source -x wxwidgets2.9_2.9.2-2.dsc

Edit the changelog:
Code:
cd wxwidgets2.9-2.9.2/debian
dch -i

Edit the first few lines of the changelog, such as adding ~wheezy after the version number & adding "repackaged for Debian Wheezy" after the * on the line below & then:

<Ctl><O> (the letter 'O')
<Bkspace> four times
<Enter>
Y, to overwrite
<Ctl><X> to exit nano.

The debian/control & control.in files contain the build dependencies which need one amendment to build wxwidgets on Wheezy. Change libjpeg62-dev to libjpeg8-dev & save the files.

You can go through the control files manually to get a list of the build dependencies - or the easier way (which may also require aptitude to be installed):
Code:
su -c /usr/lib/pbuilder/pbuilder-satisfydepends

Install the dependencies shown & re-run the above command until there is nothing left to install. You may find synaptic moans of a broken dependency for "pbuilder-dummy" - this is safe to uninstall from synaptic.

For some reason trying to compile wxwidgets with GCC-4.6 gave me seg faults. The easiest way to change the compiler version used when working with debianised sources is to change the symbolic link pointing to GCC. In this case to GCC-4.5:
Code:
mv /usr/bin/gcc /usr/bin/gcc.bak-4.6
ln -s /usr/bin/gcc-4.5 /usr/bin/gcc

To build deb packages without rebuilding the source packages or signing them:
Code:
debuild -b

Alternatively - if you do want to build the deb packages AND rebuild the sources, execute:
Code:
debuild -us -uc

The debs will be built one level above the source folder (where your original downloaded source files are) & can be installed with:
Code:
sudo dpkg -i *.deb

& change the symlink back for GCC:
Code:
mv /usr/bin/gcc /usr/bin/gcc.bak-4.5
mv /usr/bin/gcc.bak-4.6 /usr/bin/gcc

This will give you a bunch of deb packages:
Code:
libwxbase2.9-0_2.9.2-2.1~wheezy_i386.deb
libwxbase2.9-dbg_2.9.2-2.1~wheezy_i386.deb
libwxbase2.9-dev_2.9.2-2.1~wheezy_i386.deb
libwxgtk2.9-0_2.9.2-2.1~wheezy_i386.deb
libwxgtk2.9-dbg_2.9.2-2.1~wheezy_i386.deb
libwxgtk2.9-dev_2.9.2-2.1~wheezy_i386.deb
wx2.9-headers_2.9.2-2.1~wheezy_i386.deb
wx2.9-i18n_2.9.2-2.1~wheezy_all.deb
wx-common_2.9.2-2.1~wheezy_i386.deb

But it's generally not a good idea to install the development version of anything on your system under /usr if you also run the stable libraries. A better option is to build a package that installs under /opt to avoid any version conflicts (the above files are 2.8 compatible however & could become the only wx libraries on your system).

The Backported wxwidgets-2.9.2 deb packages (minus the debug packages) can be found here (8.6meg)

The safer option (building your own deb package to install under /opt):

Download & unpack the wxwidgets development version & open a Terminal in the source folder.

This build has OpenGL / SDL & Webkit support so I also installed:
Code:
apt-get install freeglut3-dev libsdl1.2-dev libwebkitgtk-dev

& ran configure in the source tree to use GCC-4.5 (& not 4.6). I also configured wxwidgets to use it's built in libraries to reduce any future conflicts with 3rd party libraries:
Code:
CC=gcc-4.5 ./configure --prefix=/opt/wx/2.9.3 \
             --with-gtk \
             --with-gnomeprint \
             --with-opengl \
             --enable-debug \
             --enable-debug_gdb \
             --enable-geometry \
             --enable-graphics_ctx \
             --enable-sound --with-sdl \
             --enable-mediactrl \
             --enable-display \
             --enable-unicode \
             --with-libjpeg=builtin \
             --with-libpng=builtin \
             --with-libtiff=builtin \
             --with-zlib=builtin \
             --with-regex=builtin \
             --with-expat=builtin \
             --enable-optimise \
             --disable-compat26 \
             --enable-webview \
             --enable-webview-webkit \

Finally compile the source code with one of the following:
Code:
make
make -j2 # for Dual Core processors
make -j4 # for Quad Core processors

& build a deb package with checkinstall:
Code:
sudo checkinstall

& the deb package will install itself (& can be found in the source code folder)

The Wheezy wxwidgets-2.9.3 deb package can be found here (9.2 meg)

You also need to add the new wxwidget library to the Library & Binary PATH's:
Code:
nano /etc/ld.so.conf
### & add the following on the first line:
/opt/wx/2.9.3/lib

& add the new Binary PATH to /root/.bashrc
Code:
export PATH=$PATH:/opt/wx/2.9.3/bin

Finally as root run:
Code:
ldconfig
### & check the wxwidgets version:
wx-config --version

Finally build wxMupen64plus

Code:
apt-get install mercurial
hg clone https://bitbucket.org/auria/wxmupen64plus
cd wxmupen64plus
### download mupen64plus API (not wx)
hg clone https://bitbucket.org/richard42/mupen64plus-core

The configure command must include the absolute path to the API or it will fail - it should be something like:
Code:
./waf configure --mupenapi=/home/user/build/wxmupen64plus/mupen64plus-core/src/api --wxconfig=/opt/wx/2.9.3/bin/wx-config

Finally compile & build a deb package:
Code:
./waf
sudo checkinstall --fstrans=no --nodoc ./waf install

The wxmupen64plus 0.30 deb package can be found here (305k). A desktop dot file & script to register the mime type are included in the archive.

Games can be played inside the application or externally:

Image

Image


Top
 Profile  
 
 
 Post subject: Re: Backporting / wxwidgets 2.9 / wxmupen64plus GUI N64 Emul
PostPosted: Fri Jun 08, 2012 10:42 am 
Offline

Joined: Thu Jun 07, 2012 8:12 pm
Posts: 1
Hello,

as CuteMupen author, I'm interested in details about the problem you encountered.
Was it with a source build, or a binary tarball ? Which release of Mupen64Plus and CM ?
Any message ?


Top
 Profile  
 
 Post subject: Re: Backporting / wxwidgets 2.9 / wxmupen64plus GUI N64 Emul
PostPosted: Fri Jun 08, 2012 2:21 pm 
Offline

Joined: Wed Jan 18, 2012 8:42 pm
Posts: 73
I did not have any problems building wxmupen64plus - it compiled on the first attempt.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 3 posts ] 


Who is online

Users browsing this forum: No registered users and 0 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
suspicion-preferred