Page 1 of 2

Please add the Exult PPA to the Downloads Page

Posted: Fri Nov 08, 2013 4:45 pm
by TaoMing
Hi Guys,

Newbie here who wanted to play Ultima 7 for the first time on a linux machine. I must say I went through a whole lot of hassle trying to compile from source before I found a forum post linking to the PPA. Added the PPA on my Ubuntu machine and it installed just fine.

I would like to ask that for the benefit of other like myself you either make the .deb files available from the downloads page or leave directions to the PPA there. If you need someone to write all the necessary instructions up I would happily do that for you.

Thanks for listening :)

Re: Please add the Exult PPA to the Downloads Page

Posted: Fri Nov 08, 2013 5:18 pm
by Dominus
Instructions would be nice and I'll link on the snapshots faq

Re: Please add the Exult PPA to the Downloads Page

Posted: Mon Nov 11, 2013 9:09 am
by TaoMing
Hi Dominus,

Thanks for the reply. Will I need to e-mail the instructions to you or do I just type them into this topic?

Re: Please add the Exult PPA to the Downloads Page

Posted: Mon Nov 11, 2013 10:30 am
by Dominus
Whatever you feel like ;)

Re: Please add the Exult PPA to the Downloads Page

Posted: Mon Nov 11, 2013 11:17 am
by TaoMing
Alrighty, here goes:

For Ubuntu- users:

A copy of Exult is already available via Ubuntu's official repositories (apt-get install to download), however the version currently available on Ubuntu/Debian repositories is 1.2. To get the latest snapshot version 1.5 you will need to add the Exult Daily PPA and download from there.

To do so, run the following commands in your terminal (Make sure you already have a copy of Ultima 7 - BG or SI on your machine):

1. sudo apt-add-repository ppa:exult-team/exult-daily #Adds the repository
* You will be required to accept the key file. Just press 'Enter'
2. sudo apt-get update #Update your cache.
3. sudo apt-get install exult exult-audiopack #Installs Exult itself and audio files

This will download and install exult and all necessary dependencies.

After downloading, the Exult install process will require you to enter the location of your Ultima 7 games (Black Gate and Serpent Isle). Simply type in the path in the boxes provided (e.g. /home/user/Games/Ultima7).

Upon completion, exult will be added to your application list from where you can run it. Alternatively just type 'exult' in your terminal to launch it and begin playing.

Re: Please add the Exult PPA to the Downloads Page

Posted: Tue Nov 12, 2013 9:08 am
by Dominus
Thanks, I'll see about updating the FAQ this week

Re: Please add the Exult PPA to the Downloads Page

Posted: Fri Nov 15, 2013 8:29 am
by TaoMing
Thanks!

Re: Please add the Exult PPA to the Downloads Page

Posted: Fri Nov 15, 2013 1:25 pm
by Dominus
hmm, the only problem I see is that it is not exactly lock stock Exult svn but has some patches applied. I just can't easily see which ones.

Re: Please add the Exult PPA to the Downloads Page

Posted: Tue Nov 19, 2013 6:23 pm
by paulo
This ppa is mine... it is currently outdated because it is not building since 2013-11-01 because some personal patches are failing and a exult incompatibility with new flex.

Dominus, you can see what's being applied by following the links on the recipe:
https://code.launchpad.net/~exult-team/ ... xult-daily

namely it is applying on top my packaging repository:
https://code.launchpad.net/~exult-team/ ... /packaging

which pulls the build of the mt32 ppa i did to build mt32emu as a lib, the patch to apply it to exult, and some other patches, which one or two are probably broken.

Also, i recall that exult was not building because of a recent tool update (flex i think) that broke some usage of the flex lexer that exult did (one .h instead of two or something), which wjp didn't want to change because most distros used the previous version, and i couldn't do conditional patching for distro version, so i left it as it was until exult decided to drop support for old flex)

Re: Please add the Exult PPA to the Downloads Page

Posted: Tue Nov 19, 2013 6:28 pm
by paulo
Actually the mt32emu lib is also outdated... another build error... i have no idea why this time ^_^

Re: Please add the Exult PPA to the Downloads Page

Posted: Tue Nov 19, 2013 6:30 pm
by Dominus
yeah, I knew it was yours. I just added it to the download page snapshots. As it doesn't build atm, maybe I shouldn't have...

As I recall the problem is not old flex but something more sinister.

Maybe you could do two Exult daylies, one with everything (usecode compiler, Exult Studio...) (that fails atm) and one that only has the Exult engine without any tools and usecode compiler.

As for the patches, can you be more precise where to find what is being applied? When I look at the recipe page I have no clue what to link to follow to see the patches.

Re: Please add the Exult PPA to the Downloads Page

Posted: Tue Nov 19, 2013 6:31 pm
by paulo
Also i recall i gave wjp admin rights over both repositories. So technically, he's also the owner of it.

Re: Please add the Exult PPA to the Downloads Page

Posted: Tue Nov 19, 2013 6:37 pm
by paulo
The patches are this dir:
http://bazaar.launchpad.net/~exult-team ... n/patches/

The disableForkedMIDI.diff is to disable a sound option that crashes exult in ubuntu (missing command line utility)
fixTouchpadInFullscreen.diff is supposed to work around a bug on SDL fullscreen on touchpads (painfully slow mouse speed)
fluidsynthDefaults.diff never did work but it was supposed to make fluidsynth use port defaults that the ubuntu package used... but i never managed to make it work anyway so i really should delete the patch
staticMt32Emu.diff is the patch that makes exult build files use a static mt32emu lib file instead of the old inbuilt source
tryFmoplFirst.diff is just to make exult default sound output FMOPL, which is the one that worked without problems or config or prerequisites (roms or soundfonts) on my testing, for a good 'first impression'.

Re: Please add the Exult PPA to the Downloads Page

Posted: Tue Nov 19, 2013 6:43 pm
by paulo
Actually i was wrong, the fluidsyth thing is working fine, it is supposed to find the soundfont by itself, that port problem was with another patch (already deleted).

Re: Please add the Exult PPA to the Downloads Page

Posted: Tue Nov 19, 2013 6:47 pm
by paulo
I was also experimenting with that patch to disable combat music interrupting the other music, but i wasn't really happy with it (and wjp wasn't either since he didn't merge) so i left it out.

Re: Please add the Exult PPA to the Downloads Page

Posted: Tue Nov 19, 2013 7:17 pm
by paulo
Mmmm, exult is using SDL2.0 already? The touchpad problem might just not exist there. I might nuke the patch and update the dependencies to see how it goes.

Re: Please add the Exult PPA to the Downloads Page

Posted: Tue Nov 19, 2013 7:22 pm
by paulo
That would mean dropping support for previous ubuntus though...

Re: Please add the Exult PPA to the Downloads Page

Posted: Tue Nov 19, 2013 7:39 pm
by paulo
The mt32emu project now has a default dir to look for roms.

/usr/share/mt32-rom-data

it's a bit aggressive towards the user unless i use the same approach as the game of asking for it on install since that dir is not user writable.

Re: Please add the Exult PPA to the Downloads Page

Posted: Tue Nov 19, 2013 8:35 pm
by Dominus
As for SDL2, see http://exult.info/forum/viewtopic.php?p=516617#p516617. Work has begun and has stopped again, but it's not yet fully working. The plan is also to keep both SDL 1.2 and 2 support for now.

On MT32-Emu, after I tried the standalone MT32-qt gui thing, I'm more in favor of abandoning built-in mt32 support altogether now and only use that...

Re: Please add the Exult PPA to the Downloads Page

Posted: Tue Nov 19, 2013 9:59 pm
by paulo
Well, mt32-qt is not built by my packaging ppa.
I suppose the the qt gui would only be a question of installing the package if existed and using that to control the currently running dll with no additional code support on exult itself. However, i rather doubt that this can be workable with the current approach of embedding the mt32emu sources on the exult svn, unless you want to start depending on QT.

The adoption of a default path for the romfiles upstream simplifies the patch, now it almost only requires linking the library. If only someone on ubuntu itself took it up.

Re: Please add the Exult PPA to the Downloads Page

Posted: Tue Nov 19, 2013 10:24 pm
by Dominus
The approach with the mt32-qt is that as far as Exult is concerned it's just another midi device it sends its midi commands to. With device type in Exult set to mt32 the mt32-qt works just like a real MT32 with Exult. So with the mt32-qt you don't need to worry about anything else in regard to Exult.
Works wonderful on OS X (with other usability problems that are OS X specific).

Re: Please add the Exult PPA to the Downloads Page

Posted: Thu Nov 21, 2013 5:29 pm
by paulo
Unfortunately it appears to be that it's only the mt32emu-alsa driver that is looking for roms on a default dir. Oh, well, i already changed the libmt32emu-dev to ask the user for the roms on install, so i'll change my patch to look for them there. The dosbox patch will be easy to change since it now has a dosbox config option for that.

Re: Please add the Exult PPA to the Downloads Page

Posted: Thu Nov 21, 2013 9:56 pm
by Dominus
I added the ppa now to the FAQ as well, along with the short how to. Thanks TaoMing.

Now paulo just has to make them build again :)

Have you considered my suggestion of a plain Exult built without tools and Studio?

Re: Please add the Exult PPA to the Downloads Page

Posted: Thu Nov 21, 2013 10:06 pm
by paulo
They're building again for ubuntu's lower than 13.10.

Now i'm back again at that parse error, which like all bad things, hasn't gone away by itself.

make[4]: Entering directory `/build/buildd/exult-1.5.0+svn20131121~ubuntu13.10.1/usecode/compiler'
/bin/bash ../../ylwrap ucparse.yy y.tab.c ucparse.cc y.tab.h `echo ucparse.cc | sed -e s/cc$/hh/ -e s/cpp$/hpp/ -e s/cxx$/hxx/ -e s/c++$/h++/ -e s/c$/h/` y.output ucparse.output -- bison -y -d -v
updating ucparse.output
updating ucparse.hh
g++ -DHAVE_CONFIG_H -I. -I../.. -I./../../headers -I./.. -I./../../files -I./../.. -O2 -Wno-long-long -O2 -c -o ucparse.o ucparse.cc
/bin/bash ../../ylwrap uclex.ll lex.yy.c uclex.cc -- flex
make[4]: *** No rule to make target `ucparse.h', needed by `uclex.o'. Stop.


A reminder, this is the indirect cause:
http://lists.gnu.org/archive/html/autom ... 00017.html
http://stackoverflow.com/questions/1609 ... ble-change

I guess i will try the stackoverflow suggestion as a hack patch.

Re: Please add the Exult PPA to the Downloads Page

Posted: Thu Nov 21, 2013 10:17 pm
by Dominus
I think the lowest solution might be the best overall.


and, btw., sorry, I should have added this ppa a long time ago to the downloads page and/or the FAQ.

Re: Please add the Exult PPA to the Downloads Page

Posted: Fri Nov 22, 2013 12:47 am
by paulo
Looks like a horrible hack to be honest. I think i'd prefer something like this:
http://cgit.freedesktop.org/mesa/mesa/c ... 41e6beffdf

Or indeed, just to require 1.2 and damn the slowpokes (if i was not one of them ^_^ )

Re: Please add the Exult PPA to the Downloads Page

Posted: Fri Nov 22, 2013 1:15 am
by paulo
I think there is a unneeded patch there, you can set the default TIMIDITY location for configure and it will work without altering the default timidity.cfg from their project?

Re: Please add the Exult PPA to the Downloads Page

Posted: Fri Nov 22, 2013 1:23 am
by paulo
Oh, right exult includes the timidity source so there is no point in not shipping timidity.cfg... the patch can go though.

Re: Please add the Exult PPA to the Downloads Page

Posted: Fri Nov 22, 2013 12:10 pm
by Dominus
Sh4rm4 posted some other way in #exult

Re: Please add the Exult PPA to the Downloads Page

Posted: Fri Nov 22, 2013 8:14 pm
by paulo
I've got a candidate patch (candidate because the build bot is not likely to build it today since i've already uploaded a src package with the same name so it will complain).

http://bazaar.launchpad.net/~exult-team ... y_bug.diff

As you can see it depends on a env variable that autotools sets instead of doing `automake --version` directly. I thought this was slightly more compatible with a more predictable version string.

Re: Please add the Exult PPA to the Downloads Page

Posted: Fri Nov 22, 2013 11:41 pm
by Dominus
We are more likely to do this

Code: Select all

diff --git a/usecode/compiler/Makefile.am b/usecode/compiler/Makefile.am
index b12e3fa..b637615 100644
--- a/usecode/compiler/Makefile.am
+++ b/usecode/compiler/Makefile.am
@@ -28,6 +28,9 @@ ucc_LDADD =                   \
        ../libusecode.la        \
        $(SYSLIBS)

+ucparse.h: ucparse.cc
+       test -e ucparse.hh && cp ucparse.hh ucparse.h
+

uclex.o: uclex.cc ucparse.h

Re: Please add the Exult PPA to the Downloads Page

Posted: Fri Nov 22, 2013 11:45 pm
by paulo
sure, that will work

Re: Please add the Exult PPA to the Downloads Page

Posted: Fri Nov 22, 2013 11:52 pm
by paulo
I will use yours if you don't mind, it's much shorter and the build is likely to still work if you commit it.

Re: Please add the Exult PPA to the Downloads Page

Posted: Sat Nov 23, 2013 12:12 am
by paulo
I doesn't build:
/bin/bash ../../ylwrap ucparse.yy y.tab.c ucparse.cc y.tab.h `echo ucparse.cc | sed -e s/cc$/hh/ -e s/cpp$/hpp/ -e s/cxx$/hxx/ -e s/c++$/h++/ -e s/c$/h/` y.output ucparse.output -- bison -y -d -v
updating ucparse.output
updating ucparse.hh
g++ -DHAVE_CONFIG_H -I. -I../.. -I./../../headers -I./.. -I./../../files -I./../.. -O2 -Wno-long-long -O2 -c -o ucparse.o ucparse.cc
/bin/bash ../../ylwrap uclex.ll lex.yy.c uclex.cc -- flex
make[4]: *** No rule to make target `test', needed by `ucparse.h'. Stop.

I guess the ppa will keep on with the uglier one

Re: Please add the Exult PPA to the Downloads Page

Posted: Sat Nov 23, 2013 12:17 am
by Dominus
It would be better to figure out why it fails for you.
Try adding $(SHELL) before the test -e... (Though if that works the problem is that this doesn't seem to work on osx)

Re: Please add the Exult PPA to the Downloads Page

Posted: Sat Nov 23, 2013 5:55 am
by paulo
It's building again... i added the battle music patch in the end, since i like the feature for my personal use (even though the code is a bit messy).

Re: Please add the Exult PPA to the Downloads Page

Posted: Sat Nov 23, 2013 6:10 am
by Dominus
Is it building with the SHELL thing or with the more elaborate patch of yours?

Honestly I'd prefer a cleaner ppa, the mt32 patch might be ok but the combat music patch is a bit too invasive, IMO. And/or an elaborate description of the patches applied and what these do. So everyone adding your ppa knows what's different to Exult SVN

Re: Please add the Exult PPA to the Downloads Page

Posted: Sat Nov 23, 2013 3:56 pm
by paulo
The elaborate one. The magic of quilt means that as soon as exult implements its own workaround i can just delete the patch in the repository and things will fall out working.

A patch description is a good idea i guess.

Re: Please add the Exult PPA to the Downloads Page

Posted: Sat Nov 23, 2013 4:19 pm
by paulo
https://code.launchpad.net/~exult-team/ ... xult-daily

has a description of all patches applied that the use will see whe he does apt-add-repository

Re: Please add the Exult PPA to the Downloads Page

Posted: Sat Nov 23, 2013 9:53 pm
by Dominus
Thanks for the descriptions, much better this way.

Could you try a bit with the patch and adding $(SHELL) there? We need help in figuring out an easy way and if it doesn't work for you it will be good to know what exactly doesn't work and find a way to make it work.

Edit: wjp suspects that your problem stems from either misapplying the patch or that automake and config.status didn't get re-run.

Can you do the patch again in a clean SVN (make clean && make distclean and also manually remove uclex.cc ucparse.cc ucparse.hh ucparse.h in usecode/compiler) and run the whole steps, autogen.sh, configure before building? Please make sure you patch usecode/compiler/automake.am not some other makefile.am.

Re: Please add the Exult PPA to the Downloads Page

Posted: Sun Nov 24, 2013 1:44 am
by paulo
I'll try it tomorrow. Notice that you can test it even on old ubuntu just by installing automake 1.12 (for instance, from this ppa: https://launchpad.net/~rbose-debianizer ... e/automake)
It's probably a issue on all platforms getting automake updates too.

Re: Please add the Exult PPA to the Downloads Page

Posted: Mon Nov 25, 2013 6:54 am
by paulo
Exact same error (no i didn't forget autogen or configure)

./autogen.sh && ./configure --enable-compiler --enable-all-hq-scalers=no --enable-nxbr=no && make &> log.txt

[...]
make[3]: Entering directory `/home/paulo/Documents/Netbeans_projects/exult/usecode/compiler'
/bin/bash ../../ylwrap ucparse.yy y.tab.c ucparse.cc y.tab.h `echo ucparse.cc | sed -e s/cc$/hh/ -e s/cpp$/hpp/ -e s/cxx$/hxx/ -e s/c++$/h++/ -e s/c$/h/` y.output ucparse.output -- bison -y -d -v
updating ucparse.output
updating ucparse.hh
g++ -DHAVE_CONFIG_H -I. -I../.. -I./../../headers -I./.. -I./../../files -I./../.. -O2 -Wno-long-long -g -O2 -MT ucparse.o -MD -MP -MF .deps/ucparse.Tpo -c -o ucparse.o ucparse.cc
mv -f .deps/ucparse.Tpo .deps/ucparse.Po
/bin/bash ../../ylwrap uclex.ll lex.yy.c uclex.cc -- flex
make[3]: *** No rule to make target `test', needed by `ucparse.h'. Stop.

Re: Please add the Exult PPA to the Downloads Page

Posted: Mon Nov 25, 2013 6:55 am
by paulo
Added code in the middle:

ucc_LDADD = \
../libusecode.la \
$(SYSLIBS)

ucparse.h: ucparse.cc \
$(SHELL) test -e ucparse.hh && cp ucparse.hh ucparse.h


uclex.o: uclex.cc ucparse.h

Re: Please add the Exult PPA to the Downloads Page

Posted: Mon Nov 25, 2013 7:00 am
by paulo
Probably not the right way to call shell programs. I think 'test' is a builin of the shell?

Re: Please add the Exult PPA to the Downloads Page

Posted: Mon Nov 25, 2013 7:32 am
by Dominus
Get rid of the \ after ucparse.cc and don't forget to make distclean and manualy delete the files I wrote above.

Edit: yes with the \ it breaks. Why did you add this? It's not in the above patch? Please try again without \ and without $(SHELL)

Re: Please add the Exult PPA to the Downloads Page

Posted: Mon Nov 25, 2013 7:42 am
by paulo
btw i hate make. Make and shell scripting in it's current form can't die soon enough, bring on gradle or something like that.

Re: Please add the Exult PPA to the Downloads Page

Posted: Mon Nov 25, 2013 7:58 am
by paulo
I've always been deleting the exult directory and unziping a tar.gz file created from the svn so those files never exist when i'm trying the patch... a workaround because debuld apparently leaves some file pollution such that exult can't 'debuild' a second time.

Anyway, the '\' is required for makefile syntax. it simply breaks without it, since it's not a single line and makefile targets never do two lines without it.
just removing it:
Making all in compiler
make[3]: Entering directory `/home/paulo/Documents/Netbeans_projects/exult/usecode/compiler'
Makefile:669: *** missing separator. Stop.

joining the lines like so
ucparse.h: ucparse.cc $(SHELL) test -e ucparse.hh && cp ucparse.hh ucparse.h
Didnt' have any effect as expected:
make[3]: Entering directory `/home/paulo/Documents/Netbeans_projects/exult/usecode/compiler'
/bin/bash ../../ylwrap ucparse.yy y.tab.c ucparse.cc y.tab.h `echo ucparse.cc | sed -e s/cc$/hh/ -e s/cpp$/hpp/ -e s/cxx$/hxx/ -e s/c++$/h++/ -e s/c$/h/` y.output ucparse.output -- bison -y -d -v
updating ucparse.output
updating ucparse.hh
g++ -DHAVE_CONFIG_H -I. -I../.. -I./../../headers -I./.. -I./../../files -I./../.. -O2 -Wno-long-long -g -O2 -MT ucparse.o -MD -MP -MF .deps/ucparse.Tpo -c -o ucparse.o ucparse.cc
mv -f .deps/ucparse.Tpo .deps/ucparse.Po
/bin/bash ../../ylwrap uclex.ll lex.yy.c uclex.cc -- flex
make[3]: *** No rule to make target `test', needed by `ucparse.h'. Stop.

Re: Please add the Exult PPA to the Downloads Page

Posted: Mon Nov 25, 2013 8:15 am
by Dominus
test isn't a target, it is a command

Re: Please add the Exult PPA to the Downloads Page

Posted: Mon Nov 25, 2013 8:38 am
by paulo
i know

Re: Please add the Exult PPA to the Downloads Page

Posted: Mon Nov 25, 2013 8:46 am
by paulo
and of course, i've _not_ been applying my patches when trying out this one, so don't worry about that.