You are not logged in.

#1 2016-10-06 08:11:27

yousry
Member
Registered: 2014-11-28
Posts: 17
Website

[Solved] Need help for packaging my OpenGL Game.

I would like to create a AUR package for my game https://github.com/yousry/COOL-The-Game. It was originally developed for OS-X and therefore many BSD / GNUstep dependencies exists that are only available as AUR packages. The problem is, that these packages are missing necessary or performance features to create a usable executable.

Otherwise the AppImage (Sandbox binary) version works completely fine  https://yousry.itch.io/cool. Would a AUR package containing an AppImage being accepted?   

Side Note: I noticed that Games sometimes start to flicker under Wayland  with X layer emulation.  Is there a workaround available?

Last edited by yousry (2016-10-10 14:10:32)

Offline

#2 2016-10-06 10:24:48

Awebb
Member
Registered: 2010-05-06
Posts: 6,282

Re: [Solved] Need help for packaging my OpenGL Game.

A numbered reply, if you don't mind:

1. Source based AUR package

Could you post your list of dependencies and, if it's already available, your preliminary PKGBUILD? There are different approaches that can be combined to solve the dependency problem:

a) Work with the AUR maintainers of your dependencies and request, that your requirements are being added. If the features you require do not interfere with the overall performance of the dependency, this shouldn't be a big problem.

b) Maintain your own set of dependencies on the AUR. Name the package according to the feature you activated compared to the "default package" (libfoo-xwayland for example, libfoo-dkms is a very common example), to indicate its anomaly.


2. Binary AUR packages

https://wiki.archlinux.org/index.php/Ar … submission
https://wiki.archlinux.org/index.php/Ar … R_packages

I cannot find an explicit rule against binary releases on the AUR. In fact, there are multiple binary and source releases of the same package coexisting right now. This might not be optimal, but it is hard to avoid sometimes.

Example: telegram-desktop. The AUR has:

telegram-desktop
telegram-desktop-bin
telegram-desktop-bin-dev
telegram-desktop-cn
telegram-desktop-dark-git
telegram-desktop-dev
telegram-desktop-git
telegram-desktop-light
telegram-desktop-patched

The upstream package updates so often and the number of AUR deps is so high, that you'd need a "clever" build system to comfortably use telegram-desktop. You also need to update it regularly, because it's a messenger. The binary package makes a lot of sense. How are you going to deal with the AppImage? Do you intend to extract it to /opt/coolgame and symlink the binary and probably the desktop file? I was able to find one AppImage package on the AUR: https://aur.archlinux.org/packages/upwork-appimage/. Whatever you do, make sure to name your package in a way that identifies it as a binary release. *-bin is the default, *-appimage was used once.

Whatever you do, it would be wise to post this question to the AUR mailing list as well, the folks there deal with the AUR on a daily basis and the Trusted Users hang around there, too. The mailing lists can be found on the Arch main page in the navigation on the right.


3. XWayland flickers

This might or might not be very hardware specific. Is it "games" or just your game? You might want to create a new thread with specific information to solve this, there is no catch-all solution.

Offline

#3 2016-10-06 15:09:45

yousry
Member
Registered: 2014-11-28
Posts: 17
Website

Re: [Solved] Need help for packaging my OpenGL Game.

1. Necessary packages:

freealut 1.1.0-5
libbsd 0.8.3-1
bullet 2.83.7-1
freetype2 2.7-2
glfw-x11 3.2.1-1
libogg 1.3.2-1
openal 1.17.2-2
soil 1.16-2
libvorbis 1.3.5-1
libxml2 2.9.4+4+g3169602-1
libxslt 1.1.29-1
(clang 3.8.1-1)

As list:

freealut, libbsd, bullet, freetype2, glfw-x11, libogg, openal, soil, libvorbis, libxml2, libxslt, clang


from AUR:

gnustep-base-clang-svn,
gnustep-libobjc2-clang-svn,
gnustep-make-clang-svn,
libdispatch-clang-git,
clang-compiler-rt-svn,
clang-svn

I couldn't build the  gnustep-base-clang-svn and clang-svn packages from AUR. Which is why I wasn't able to start the  package creation.

2. Will Do

3. The Wayland problem was fixed with the latest update.

Offline

#4 2016-10-06 16:23:45

Awebb
Member
Registered: 2010-05-06
Posts: 6,282

Re: [Solved] Need help for packaging my OpenGL Game.

clang-svn is part of the llvm-svn package. llvm-svn is a split package. I don't know how you tried to build it. I'll build it on my server and let you know what happened. It would help to know, what exactly went wrong with the other package. Can you either provide the error messages or describe where it failed?

EDIT: gnustep-base-clang-svn has a number of AUR dependencies:

(in your case) clang-svn -> gnustep-make-clang-svn -> gnustep-libobjc2-clang-svn -> gnustep-base-clang-svn

EDIT: Funny story: I tried to build llvm-svn in /tmp and went OOM, because there is no swap. I'll... rather wait for your error message :-)

Last edited by Awebb (2016-10-06 20:54:37)

Offline

#5 2016-10-07 12:19:53

yousry
Member
Registered: 2014-11-28
Posts: 17
Website

Re: [Solved] Need help for packaging my OpenGL Game.

I narrowed the problem down to gnustep-libobjc2-clang-svn

The output is:

[archie@MyContainer gnustep-libobjc2-clang-svn]$ makepkg -si
==> Making package: gnustep-libobjc2-clang-svn 1:r38298-1 (Fri Oct  7 13:45:52 CEST 2016)
==> Checking runtime dependencies...
==> Installing missing dependencies...
error: target not found: gcc-libs-multilib
==> ERROR: 'pacman' failed to install missing dependencies.
[archie@MyContainer gnustep-libobjc2-clang-svn]$ 

Perhaps the package should be replaced/supplemented with a more up to date version with sources from here:
https://github.com/gcc-mirror/gcc/tree/master/libobjc

I tried to edit the PKGBUILD: https://gist.github.com/yousry/cb389246 … 33660d28be

but I would favour a new package based on  http://wiki.gnustep.org/index.php/GNUst … untu_Linux instead.

Offline

#6 2016-10-07 13:46:34

Lone_Wolf
Member
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 11,911

Re: [Solved] Need help for packaging my OpenGL Game.

error: target not found: gcc-libs-multilib

The gnustep-libobjc2-clang-svn has a weird structure combining i686 and a x86_64 multilib version in one package.

Normally there would be 2 packages :
gnustep-libobjc2-clang-svn for i686 and  lib32-gnustep-libobjc-clang-svn for x86_64 multilib .

The gnustep from scratch instructions are poorly documented but appear to be intended to build the full gnustep suite,not just libojc2 .

If i had to build this i'd probably start with converting AL official gnustep packages to build the svn version, then switch them from gcc to using clang-svn.

For clarity : do you intend to use stable clang or a clang-svn trunk version ?

Last edited by Lone_Wolf (2016-10-07 13:56:26)


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.


(A works at time B)  && (time C > time B ) ≠  (A works at time C)

Offline

#7 2016-10-08 08:34:49

yousry
Member
Registered: 2014-11-28
Posts: 17
Website

Re: [Solved] Need help for packaging my OpenGL Game.

Lone_Wolf wrote:

For clarity : do you intend to use stable clang or a clang-svn trunk version ?

I tried to use clang-svn with clang-compiler-rt-svn because libblocks https://github.com/mackyle/blocksruntime (a small replacement for the rt) is missing from the AUR.

Offline

#8 2016-10-08 12:36:11

Lone_Wolf
Member
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 11,911

Re: [Solved] Need help for packaging my OpenGL Game.

blocksruntime appears to just build 2 files : a header file and a *.a file .

The author claims that available packages may have Blocks support but don't include the runtime libBlocksRuntime.a library .

The solution for that is not to fork a small part of the compiler-rt code but to ask the maintainers of those packages to include that runtime library .

If you use mackyle's code, you're trusting code that was forked in july 2014 and hasn't been touched after that.

Llvm has progressed from version 3.4.2 to 3.9.0 in those 2 years and saw lots of changes.

I advise you to move away from mackyle's libblocks and work with kerberizer to get the current version of that lib included in llvm-svn / clang-compiler-rt-svn .

Edit :

It may be much easier for you to use the AppImage.
There are packages in AUR that use binary code, and there's atleast one appimage package,


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.


(A works at time B)  && (time C > time B ) ≠  (A works at time C)

Offline

#9 2016-10-10 14:12:57

yousry
Member
Registered: 2014-11-28
Posts: 17
Website

Re: [Solved] Need help for packaging my OpenGL Game.

The AppImage works just fine. I will build a package with it.

Offline

Board footer

Powered by FluxBB