[Newbie] OpenAl locate/install issue (edited, library dependencies help)

Hi.

I'm giving my first steps in GNU/Linux and I chose Zorin OS 16. I started just a few days ago, I find it relatively easy to use, as a long time Windows user, and I can say I know nothing of regular, "actual", real Linux using, in terms of terminal use and how the OS works. :sweat_smile:

After configuring some easy, new user, very basic stuff, I've decided to try and learn a bit more by attempting to install a (very) old game (1997), but I got into a few hiccups with its GPL source code.

After extracting the tar file, I used command ./configure and ran into an error:

 (...)
 checking for openal... no
 checking AL/al.h usability... no
 checking AL/al.h presence... no
 checking for AL/al.h... no
 checking OpenAL/al.h usability... no
 checking OpenAL/al.h presence... no
 checking for OpenAL/al.h... no
 configure: error: OpenAL not found

Then, I used command sudo apt-get install OpenAl
Return code:

Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package OpenAl

How can I locate and install OpenAl (site)? Could I get a thorough "how to" do this?

I followed your sugestion, then retyped ./configure and got:

checking for openal... yes
checking for sdl2 >= 2.0.4... no
checking for sdl2-config... no
checking for SDL2.framework... 
dirname: missing operand
Try 'dirname --help' for more information.
checking for libenet... no
checking for enet_initialize in -lenet -lws2_32 -lwinmm... no
checking for enet_initialize in -lenet... no
configure: error: enet not found

OpenAl seems to have been installed, but now, I have no idea what is wrong. :sweat_smile:

Yes, it's a 32bit game.

That sudo dpkg --add-architecture i386 did nothing.

sudo apt update && sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386 libbz2-1.0:i386 did:

libbz2-1.0:i386 is already the newest version (1.0.8-2).
libbz2-1.0:i386 set to manually installed.
libc6:i386 is already the newest version (2.31-0ubuntu9.2).
libc6:i386 set to manually installed.
libstdc++6:i386 is already the newest version (10.3.0-1ubuntu1~20.04).
libstdc++6:i386 set to manually installed.

The following additional packages will be installed: libtinfo5:i386

The following NEW packages will be installed: libncurses5:i386 libtinfo5:i386

0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.

However, when I ./configure again, the terminal output is the same as before.

You are actually heading into dangerous territory here... Chances are that you are trying to install something that has dependencies long outdated. I could be wrong but without researching the further to know for sure if it does or which packages it calls upon, a game from '97 that has not been ported to modern OS versions will try to call on deprecated programs.
The risk you run into is tunnel-vision; As you struggle to get the game installed and working, you will downgrade essential packages, breaking the over-all system.

Your best bet is to look for a platform like Steam that supports the game.

You might check GOG Galaxy as a possible source.

The dependencies might be somewhat old, but it shouldn't be too old. The source code was released around 2009 and the last fan update is just over 1 year old, July 2020.

I didn't say it before, because I don't know if it's against any forum rule I might have missed, but the game is Seven Kingdoms AA (fan site url). The fan help is Building_From_Source (url). You can look into it yourself, if you're willing.

This is what I've been trying to use to compile the game, that and looking up the net for code that might help me doing it, but I'm having trouble to get and install dependencies.

I have tried to progress a bit further today. Right now, when I ./configure it's like this:

(...)
hecking for iconv... yes
checking for openal... yes
checking for sdl2 >= 2.0.4... yes
checking for libenet... no
checking for enet_initialize in -lenet -lws2_32 -lwinmm... no
checking for enet_initialize in -lenet... no
configure: error: enet not found

I believe I managed to solve OpenAl library missing. It seems to me I still need to solve the enet library missing error and maybe update SDL library to 2.0.8. Before even trying to update SDL, I'd have to see what version of it I currently have.

Any help on doing those things?

Will take a look (@Storm may be better qualified) but it may take some time to investigate and test.

That's quite old game, the possibility is that it doesn't work with newer libraries.

Edit: try install i386 of libenet-dev

Edit: edit: checked the site. It seems to be maintained. 2009 it started?

1 Like

It still has to work. I'm in a Discord channel where there were members that could play it in linux. Too bad I took too long to decide to try linux. :sweat_smile:

I asked for help there first, but those linux using members aren't showing up in quite some time. All I got from the others was this Building_From_Source (url)

Here's this github (url), with the updated source code

1 Like

But still 32-bit?

sudo apt install libenet7:i386
1 Like

enet:
http://enet.bespin.org/download/enet-1.3.17.tar.gz

Extract the file, then open terminal in the extracted directory or cd into it.
Then

./configure && make && make install

1 Like
sudo apt install libenet7:i386

#Outout

Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package libenet7:i386

What am I doing wrong? :grimacing:

However, I don't think this is the problem. All errors I'm geting in ./configure point elsewhere.

For example, I need to install ENet

(...)/enet-1.3.17$ autoreconf -vfi
autoreconf: Entering directory `.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal --force -Im4
autoreconf: configure.ac: tracing
autoreconf: configure.ac: not using Libtool
autoreconf: running: /usr/bin/autoconf --force
configure.ac:8: error: possibly undefined macro: AC_PROG_LIBTOOL
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
autoreconf: /usr/bin/autoconf failed with exit status: 1

To install ENet (http://enet.bespin.org/Installation.html), it seems I must install Libtool, if I'm understanding the error message correctly. How can I get and install it?

sudo apt-get install libtool

1 Like

This is one of the things I find funny in linux. Sometimes, geting a new specific library is quite hard, for a noob. Others, it seems to be that simple, as sudo apt-get install libtool, as Aravisian typed. :laughing:

Thanks, that seemed to work. I believe I'm close to finaly installing ENet, but there's still something. This time, I'm having a harder time discovering the current error to try to fix, with your help.

I'm trying to install ENet with ./configure && make && make install, but I get errors in the "make" part of that chain of commands.

(...)
configure: creating ./config.status
config.status: creating Makefile
config.status: creating libenet.pc
config.status: executing depfiles commands
config.status: executing libtool commands
make: Nothing to be done for 'all'.
make[1]: Entering directory '/home/blitzkrieg_i/AXIA/enet-1.3.17'
/usr/bin/mkdir -p '/usr/local/lib'
/bin/bash ./libtool --mode=install /usr/bin/install -c libenet.la '/usr/local/lib'
libtool: install: /usr/bin/install -c .libs/libenet.so.7.0.5 /usr/local/lib/libenet.so.7.0.5
/usr/bin/install: cannot create regular file '/usr/local/lib/libenet.so.7.0.5': Permission denied
make[1]: *** [Makefile:417: install-libLTLIBRARIES] Error 1
make[1]: Leaving directory '/home/blitzkrieg_i/AXIA/enet-1.3.17'
make: *** [Makefile:785: install-am] Error 2

What is that " Nothing to be done for 'all' "?
How can I pass that "Permission denied" error?
What about those "make" command errors? How can I correct them?

I believe the make errors are a result of the permission denied error.
Instead, try:

./configure

make

sudo make install

./configure seems to work fine.

However, when I type make, I get this:

make: Nothing to be done for 'all'.

I have no idea what this is.

It may just be noting no task there. Check that it installs.

Success! I managed to install the game! :star_struck:

I tried to find a work around. I went to an Ubuntu page to search for the name of a certain package that might install ENet.

I was looking for the correct name of package libenet, which I found out in here: https://packages.ubuntu.com/search?suite=default&section=all&arch=any&keywords=libenet&searchon=names. Turns out it was actually called libenet-dev.

After that, sudo apt-get install libenet-dev and I got the needed Enet in it. That problem was solved.

So, back to game source directory, then ./configure and all went with no errors, finally! I knew it would probably all go well from here and it did. make command, followed by sudo make install, typed the name of the game, 7kaa, and it launched.

So, I tested it and it's working and with sound. I still need to figure out how to install the non GPL music, but the music creator authorized its use with the game. That will not be simple, but it's not really linux related, but game related, so I won't ask help for it. :slightly_smiling_face:

Now, I want to create a shortcut for the game, to put in desktop or start menu. How do I create a shortcut? Which file should I be doing it from? What extension should I be looking for? *.sh? Where should I place the shortcut file?

https://cdn.netbsd.org/pub/pkgsrc/current/pkgsrc/games/7kaa-music/README.html

1 Like

Thanks.

I have the music files from the fan site, but I don't know where to put them so they play in-game. I ran the fan site suggested commands, but I still only get sound effects and no music in-game.

wget https://www.7kfans.com/downloads/7kaa-music-2.15.tar.bz2
bzip2 -cd 7kaa-music-2.15.tar.bz2 | tar xvf -
mv 7kaa-music/MUSIC data/MUSIC

The music files are where they're supposed to be, at least according to that command destination, but I'll have to test where to put them. I'll try to get it done later. If any information for that is in the link you left above, https://cdn.netbsd.org/pub/pkgsrc/current/pkgsrc/games/7kaa-music/README.html, I fail to see it, but I'll definitely take another look at that later.

Right now, I'm trying to create and place a shortcut for the game. I don't even know what file extension I should be looking for, nor file location. I'm searching for it online, but my OS doesn't seem to have certain directories, like:

/usr/local/share/applications

I have no such folder in that directory in Zorin and, as far as I know, I have activated the option to see hidden files and folders.

It's there.
You hit ctrl+h to see hidden files and directories? Hidden (when shown) files have a . in front of them. You should see /.config, /.cache, /.local and many others.

How are you launching the game? Whatever you are using to launch it, that is your 'Exec='
That path to it is your exec path.

1 Like