Installing BlitzMax 1.32/MaxGUI 1.32 on Ubuntu 9.0

Archives Forums/Linux Discussion/Installing BlitzMax 1.32/MaxGUI 1.32 on Ubuntu 9.0

dawlane(Posted 2009) [#1]
Oops the should have said "Installing BlitzMax 1.32/MaxGUI 1.32 on Ubuntu 9.04"

Yesterday I did a clean install of the newest versions of Ubuntu32/Ubuntu64 as a dual boot set up then load BlitzMax 1.32 and MaxGui 1.32.
The packages required are basically the same as for 8.04/8.10.

First make sure you have the your graphics card drivers installed or use the restricted drivers (System->Administration->Hardware Drivers). If you can't see and drivers listed it's most likely that you have a Intel graphics chipset or an older nVidia or ATI card and are using the MESA DRI driver. This may cause problems as many features may not be available using these drivers as they are open source (3D and GL acceleration is one).

If you feel brave you could use the drivers supplied by the video card manufactures. These will be more recent than the restricted drivers, but can be a pain when things go wrong. If you successfully install these drivers make sure that libGL.so (found in /usr/lib or /usr/lib32 or both) is linked to the driver (it may link to another link that is linked to the driver). Note older cards may not be supported so you may have to use older drivers or the restricted drivers.

Further on in the post is what addition packages will be installed using the following commands.

In a terminal type
For 32bit versions of Ubuntu

sudo apt-get install gcc libxxf86vm-dev libglu1-mesa-dev build-essential libxft-dev


For 64bit version of Ubuntu

I don't know much about these packages listed below but I installed them before I ran the command line below and found that I didn't need to do any softlinks to the necessary libraries for BlitzMax to work on a 64bit install.
ia32-apt-get
ia32-libs-tools
ia32-archive


Note: found out a bit more on the above packages ia32-archive isn't necessary for BlitzMax to work. ia32-apt-get will automatically select ia32-lib-tools, build-essentials and gcc/g++ as ia32-apt-get relies on these.

Edit: Found a better description of ia32-apt-get
Ia32-apt-get provides wrappers for dpkg.deb and apt-get that allow
installing deb packages from an i386 repository (or local file)
directly. The apt-get wrapper handles mangling the Packages file from
i386 during download so apt can use it and the dpkg.deb wrapper
handles converting i386 debs to amd64 / ia64 during unpacking. Through
this every i386 package in Debian (or other apt repositories) becomes
available on amd64 / ia64 as well. In case of binary/data packages the
package name remains as is while for library packages the name is
prefixed with ia32- to allow both 64bit and 32bit flavours of
libraries to be installed. Package updates become available to the
user the moment they hit the archive without needing an extra upload
or testing migration.


NOTE UPDATE!: ia32-apt-get has a serious bug and as it's not supported by the canonical, so it wont be fixed in 9.04. But I have seen somewhere that it has been fixed, you just have to build it from source. It's safe for the time being to leave it out but the ia32-libs can not be updated with apt-get. If you have already installed it use apt-get or Synaptic and remove ia32-apt-get ia32-lib-tools. You will also have to remove the repositories that it installs (they have -i386 in them). This is one of the problems as you wont be able to update your system. I have removed the sudo apt-get install ia32-apt-get command from the list be low.

sudo apt-get install ia32-libs
sudo apt-get install gcc-multilib g++-multilib libxxf86vm-dev libglu1-mesa-dev libxft-dev

During installing ia32-apt-get ia32-libs. You will see a window pop-up for postfix configuration. Read the options it gives you and use tab,space and enter to navigate and select the menus. If you don't know what to do select the first item in the list.

For both Ubuntu 32/64bit
If your using MaxGui you will need to add the package below.
sudo apt-get install x11proto-xext-dev


Mark lists libxpm-dev as one of the dependences, but it seems to run ok with out it. So if you have any problems with pixmaps it may be a good idea to install it.

Additional packages that will be installed with...

build-essential
  dpkg-dev g++ g++-4.3 libstdc++6-4.3-dev patch

libxxf86vm-dev
  libpthread-stubs0 libpthread-stubs0-dev libx11-dev libxau-dev libxcb1-dev libxdmcp-dev x11proto-core-dev
  x11proto-input-dev x11proto-kb-dev x11proto-xf86vidmode-dev xtrans-dev

libglu1-mesa-dev
  libgl1-mesa-dev mesa-common-dev

libxft-dev
  libexpat1-dev libfontconfig1-dev libfreetype6-dev libxrender-dev x11proto-render-dev zlib1g-dev

ia32-apt-get and ia32-libs
  bsd-mailx build-essential dctrl-tools devscripts diffstat dpkg-dev dput g++
  g++-4.3 gettext ia32-libs-tools intltool-debian lib32asound2 lib32gcc1
  lib32ncurses5 lib32stdc++6 lib32z1 libapr1 libaprutil1 libauthen-sasl-perl
  libc6-i386 libdevel-symdump-perl libio-pty-perl libio-stringy-perl
  libipc-run-perl libmysqlclient15off libneon27-gnutls
  libparse-debcontrol-perl libpod-coverage-perl libpq5 libstdc++6-4.3-dev
  libsvn1 libterm-size-perl libtest-pod-perl lintian mysql-common patchutils
  postfix subversion wdiff

gcc-multilib
  gcc-4.3-multilib lib32gomp1 libc6-dev-i386

g++-multilib
  g++-4.3-multilib


I had some issues with the display on the both versions of Ubuntu and it turned out to be compiz which I disabled as described below.

Other video cards may not suffer these problems, but mine's an old ATI X1900 series and there are no upto date restricted drivers any more as AMD/ATI have made this series and some others legacy.

There is one issue that I came across when building the Gui samples with MaxGui.. and that is compiz yet again. Turning desktop effects will not work. If you get an error like the one bellow
X Error of failed request: BadMatch (invalid parameter attributes)
Major opcode of failed request: 70 (X_PolyFillRectangle)
Serial number of failed request: 314
Current serial number in output stream: 324


You will have to edit your xorg.conf file directly to solve this (there could be other ways than this).

In a terminal type
sudo gedit /etc/X11/xorg.conf


and add to the bottom the code below, save and restart Ubuntu.

Section "Extensions"
    Option "Composite" "false"
EndSection


I hope I haven't made any mistakes. I'm going to see if I can get Bruceys MaxGTK mod to fully work.


Brucey(Posted 2009) [#2]
I'm going to see if I can get Bruceys MaxGTK mod to fully work.

the GTK module has issues with 1.32.
I'm kind of working through them.... but some of the low-level stuff for events has changed a lot in BlitzMax... which messes some things up in the IDE.

I've been using 32bit Jaunty since early March, and it runs BlitzMax as expected. Mine's an update from 8.10. Interesting to see it progress through Alpha - one day it would work... next update would break something... following update would fix that, but break something else...
But it seems to be pretty solid now it's reached full release.

The only issue I'm having is with some bugs in gcc 4.3 - which are fixed in gcc trunk, but will need to be released to ubuntu at some point - (breaks raknet compiling on Linux).


dawlane(Posted 2009) [#3]
the GTK module has issues with 1.32.

Thanks for the warning Brucey as I would have spent hours banging my head against a wall trying to get GTK mod working on a 64bit distro.

I've been using 32bit Jaunty since early March, and it runs BlitzMax as expected. Mine's an update from 8.10. Interesting to see it progress through Alpha - one day it would work... next update would break something... following update would fix that, but break something else...
But it seems to be pretty solid now it's reached full release.

I would have found that bl**dy annoying my self, but then someone has to test it so I don't have to worry about it crashing half way through compiling. The last time I used a beta of Ubuntu then upgrade to the release caused a major head ache with the repositories gpg keys, so now I just stick to the release.


Mark Tiffany(Posted 2009) [#4]
Thanks for the warning Brucey as I would have spent hours banging my head against a wall trying to get GTK mod working on a 64bit distro.

GTK mostly works on 32bit - it's "just" that there a few issues at runtime, rather than wholesale broken-ness. Doesn't make it any easy for Brucey to sort out though!
I would have found that bl**dy annoying my self

Ditto. I've only just moved to 8.10, and will not be moving to 9.04 any time soon without a very good reason.


Brucey(Posted 2009) [#5]
I would have found that bl**dy annoying my self

Well, I've got two development boxes (The new Linux box, and my Mac Mini), so I can happily work on either without major concerns. But it is nice to have both available all the time.
What's nice with the quad-core Linux box, is just how fast everything works.
If only bmk could build in parallel, a full rebuild of all my modules would take hardly any time at all - I have a plan for this though :-p

9.04 seems to be rock solid (for me) at the moment - if you ignore the gcc 4.3.3 issue (which of course you would have on 8.10 if you were to install 4.3.3...)

GTK mostly works on 32bit - it's "just" that there a few issues at runtime

I was half considering writing a wxMaxGUI wrapper, but then came to my senses, since I think I'd still have a hard time connecting the two Event systems.
I should probably just port the IDE to wxMax and be done with it....


Mark Tiffany(Posted 2009) [#6]
I was half considering writing a wxMaxGUI wrapper

LOL. Would be technically nice, but not 100% convinced anyone's likely to make heavy use of it.


WildStorm(Posted 2009) [#7]
wow oh my god finally blitzmax on 64bit arch, thank you so much !!! works perfectly


ajoe(Posted 2009) [#8]
dawlane,

Just wanted to thank you for posting this.

I had been struggling to get Blitz running on Ubuntu, but following your post did the trick.

Thanks again!


dawlane(Posted 2009) [#9]
I should have done this a while back when I discovered it.

NOTE UPDATE!: ia32-apt-get has a serious bug and as it's not supported by the canonical, so it wont be fixed in 9.04 and I can not see them supporting this in the future. But I have seen somewhere that it has been fixed, you just have to build it from source. It's safe for the time being to leave it out but the ia32-libs can not be updated with apt-get. If you have already installed it use apt-get or Synaptic and remove ia32-apt-get ia32-lib-tools. You will also have to remove the repositories that it installs (they hav i386 in them). This is one of the problems as you wont be able to update your system.