
Hi, milkytracker maintainer here (
https://milkytracker.org).
For our next release, we want to introduce a tcz extension to our userbase.
Milkytracker is a perfect fit for old hardware & TC, as it does not need much..so potato-laptops can be revived as dedicated 'musictracker-devices'

First we want to offer it as a download (for the latest TC) which can simply be installed via wget + tce-load:
$ wget https://....../milkytracker-1.06.tcz
$ tce-load -i milkytracker-1.06.tczSo far I've been able to create these files:
$ ls -la milkytracker-1.06.*
-rw-r--r-- 1 leon users 700 Jun 22 14:09 milkytracker-1.06.err
-rw-r--r-- 1 leon users 1409024 Jun 22 14:01 milkytracker-1.06.tcz
-rw-r--r-- 1 leon users 9 Jun 22 14:01 milkytracker-1.06.tcz.dep
-rw-r--r-- 1 leon users 481 Jun 22 14:01 milkytracker-1.06.tcz.info
-rw-r--r-- 1 leon users 48 Jun 22 14:01 milkytracker-1.06.tcz.list
$ unsquashfs -l milkytracker-1.06.tcz
squashfs-root
squashfs-root/usr
squashfs-root/usr/bin
squashfs-root/usr/bin/milkytracker
squashfs-root/usr/bin/milkytracker.buildImportant addition is `milkytracker.build`, as shellscript which is the build-script (for reproducability/tinkering purposes..something which binary-packages usually lack):
$ unsquashfs milkytracker-1.06.tcz
$ cat squashfs-root/usr/bin/milkytracker.build
#!/bin/sh
# this script is for reproducability purposes in case the binary does not work
# install deps
tce-load -wi git.tcz SDL2-dev.tcz gcc.tcz cmake.tcz make.tcz glibc_base-dev.tcz linux-6.18_api_headers.tcz squashfs-tools.tcz
test -d milkytracker || {
git clone https://github.com/milkytracker/milkytracker
}
set -x
set -e
cd milkytracker
export VERSION=$(git tag | tail -n1)
git submodule update --init
mkdir build
cd build
cmake ..
make
# package
test -d /tmp/package && rm -rf /tmp/package
mkdir -p /tmp/package/usr/bin
cp $0 /tmp/package/usr/bin/milkytracker.build # copy buildscript
cp src/tracker/milkytracker /tmp/package/usr/bin/.
strip /tmp/package/usr/bin/milkytracker
mksquashfs /tmp/package milkytracker-$VERSION.tcz
All works **almost** fine, when running:
$ tce-load -i milkytracker-1.06.tgz
$ milkytracker
SDL: SDL_CreateWindow (width: 1280, height: 960) failed: Failed loading libGL.so.1: libGL.so.1: cannot open shared object file: No such file or directory
Retrying with default size...SDL: SDL_CreateWindow (width: 640, height: 480) failed: Failed loading libGL.so.1: libGL.so.1: cannot open shared object file: No such file or directory
Giving up.
SDL: Could not create window.
ASCIISYNTH IMPORT: 'M1(C*(51)D)vA)/)M),(Xt@()((((((('
DISPLAY: set env-var SCREEN=640x480 to specify windowsize
DISPLAY: set env-var FULLSCREEN=1 to specify fullscreen
DISPLAY: assuming screenscalefactor 2
DISPLAY: set env-var NO_SCALE=1 to disable scaling
DISPLAY: set env-var NO_OPENGL=1 to disable hardware accelerationThis will error on a basic TC (which has no libGL installed)...which is probably MOST of the users.
This can be remediated by running this instead:
```
$ NO_OPENGL=1 NO_SCALE=1 SCREEN=640x480 milkytracker`
```
How can I make this a default behaviour in a flexible way?
First I was thinking in renaming /usr/bin/milkytracker to /usr/bin/milkytracker.app and then defining /usr/bin/milkytracker:
#!/bin/sh
find /lib | grep libGL || export NO_OPENGL=1
milkytracker
However, these overrides would jail the user into those settings forever
Questions / Feedback for improvements1. Any feedback/suggestions so far?
2. Where to put a 'milkytracker' alias/shellscript-wrapper (which can be edited by the user)..should I perhaps go for a wbar icon/cmd? (which can be edited by the user?)