joncampbell123 / dosbox-x

DOSBox-X fork of the DOSBox project
GNU General Public License v2.0
2.75k stars 381 forks source link

How to build on Alpine Linux #2568

Open bestpika opened 3 years ago

bestpika commented 3 years ago

I tried to compile DosBox-X on Alpine Linux by referring to the AUR on Arch Linux. But I found a lot of problems with the compilation process. I would like to ask what packages should be installed to compile and package DOSBox-X on Alpine Linux.

grapeli commented 3 years ago

You certainly don't need physfs. Dosbox-X is not linked to this external library in any case.

It all depends on what you need. A lot of dependencies are optional. You want screenshots - you will need libpng, you want to be able to record video in mpegts format with x264 codec, you need ffmpeg. Etc.

You have to be much more specific.

bestpika commented 3 years ago

It would be nice if there was a list of libraries that I could select by function, but I don't seem to see such a list.

grapeli commented 3 years ago

Such a list exists for ubuntu, fedora. https://github.com/joncampbell123/dosbox-x/blob/master/README.source-code-description#L99 It will be different for each of the Linux distributions. It will be different depending on whether you will be building on SDL1 or SDL2.

bestpika commented 3 years ago

@grapeli Thank you so much, it is hidden here. I'll try to check the Alpine Linux package list to see if there is a library for it.

grapeli commented 3 years ago

These are the standard libraries available in every distribution. Of course, they usually have different names, they can have different versions, they are sometimes packed differently (more fragmented).

bestpika commented 3 years ago

Okay. I've done it.

pkgname=dosbox-x
pkgver=0.83.14
pkgrel=0
pkgdesc="DOSBox-X"
url="https://dosbox-x.com"
arch="x86_64"
license="GPL"
depends=""
makedepends="autoconf automake libtool
alsa-lib-dev ffmpeg-dev fluidsynth-dev freetype-dev glu-dev
libpcap-dev libpng-dev libslirp-dev libx11-dev libxext-dev libxkbfile-dev libxrandr-dev
nasm ncurses-dev sdl-dev sdl2_net-dev sdl2-dev zlib-dev"
subpackages="$pkgname-doc"
source="https://github.com/joncampbell123/dosbox-x/archive/refs/tags/$pkgname-v$pkgver.tar.gz"
builddir="$srcdir/$pkgname-$pkgname-v$pkgver"

prepare() {
  default_prepare
  sed -i "s/sys\/perm.h/sys\/io.h/i" "$builddir/src/libs/porttalk/porttalk.cpp"
}

build() {
  # SDL1
  ./build-debug
  # SDL2
  # ./build-debug-sdl2
}

package() {
  make DESTDIR="$pkgdir" install
}

sha256sums=""
grapeli commented 3 years ago

Fast progress. A few cosmetic fixes. You certainly don't need sdl-dev. Even if you would build on the basis of SDL1, it is rather only with the attached library. Likewise, nasm is redundant. Even up to SDL1. For example, in Archlinux. https://github.com/archlinux/svntogit-community/blob/packages/sdl/trunk/PKGBUILD#L102