Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
98b1d71
build deb file
tumble1999 Jul 16, 2025
df0dc2f
maybe this creates app dir
tumble1999 Jul 16, 2025
7acfb9e
submodules
tumble1999 Jul 16, 2025
21ea6a6
deb file name
tumble1999 Jul 16, 2025
aba1800
tabs
tumble1999 Jul 16, 2025
b5e4696
with
tumble1999 Jul 16, 2025
30161ed
specify recipie file
tumble1999 Jul 16, 2025
d031782
verfsion
tumble1999 Jul 16, 2025
aaed1fb
add version
tumble1999 Jul 16, 2025
3041693
appimage tool instead maybe
tumble1999 Jul 16, 2025
2bc2a16
remove extra o
tumble1999 Jul 16, 2025
9b837ab
matrix test
tumble1999 Jul 16, 2025
bb4fcfc
on push
tumble1999 Jul 16, 2025
5ad3478
okk ok
tumble1999 Jul 16, 2025
683cc24
artifects
tumble1999 Jul 16, 2025
9fc9277
add deb file
tumble1999 Jul 16, 2025
7ea79a1
missing {
tumble1999 Jul 16, 2025
2f28372
missing h
tumble1999 Jul 16, 2025
5307485
python change
tumble1999 Jul 16, 2025
741019d
fix debian arch
tumble1999 Jul 16, 2025
c197082
permissions
tumble1999 Jul 16, 2025
cd79eac
id prpper
tumble1999 Jul 16, 2025
92bbefd
check python
tumble1999 Jul 16, 2025
2b1451d
no sudo maybe
tumble1999 Jul 16, 2025
527bb2b
does that work?
tumble1999 Jul 16, 2025
a1e3c4a
container image
tumble1999 Jul 16, 2025
d0df13b
conatiener
tumble1999 Jul 16, 2025
d186914
ok this
tumble1999 Jul 16, 2025
c21da3f
rong arch
tumble1999 Jul 16, 2025
39ecf81
check for jinja 2
tumble1999 Jul 16, 2025
b97a92d
sudo
tumble1999 Jul 16, 2025
dc974c2
no python maybe
tumble1999 Jul 16, 2025
c0f7e41
container for arm
tumble1999 Jul 16, 2025
669bd2c
not arm
tumble1999 Jul 16, 2025
3c4ec81
ok
tumble1999 Jul 16, 2025
1c026bb
target
tumble1999 Jul 16, 2025
1be55db
sudo sometimes
tumble1999 Jul 16, 2025
5d962a0
yes
tumble1999 Jul 16, 2025
262d7f3
spaces
tumble1999 Jul 16, 2025
64acdf2
ok
tumble1999 Jul 16, 2025
8d336e7
app image
tumble1999 Jul 16, 2025
af2feb7
app image
tumble1999 Jul 16, 2025
f0ddbbb
file name propper
tumble1999 Jul 16, 2025
64bd7d1
upload linux binary
tumble1999 Jul 16, 2025
76b4d93
arch package maybe
tumble1999 Jul 16, 2025
573b71b
create folders
tumble1999 Jul 16, 2025
5b2ce72
bin too
tumble1999 Jul 16, 2025
ddcc502
deb
tumble1999 Jul 16, 2025
4fb7ea6
app image folder
tumble1999 Jul 16, 2025
c0e6c6f
app image fix
tumble1999 Jul 16, 2025
200353e
ls statements
tumble1999 Jul 16, 2025
6bd4c42
branch and repo
tumble1999 Jul 16, 2025
c330cc6
install pacman
tumble1999 Jul 16, 2025
e615e32
add safe folder
tumble1999 Jul 16, 2025
c7bea12
maybe do this
tumble1999 Jul 16, 2025
8eeb27e
file command
tumble1999 Jul 16, 2025
e9909b4
fix pkgbuild
tumble1999 Jul 16, 2025
f3cbd4e
set version
tumble1999 Jul 16, 2025
1c1061c
update pacman
tumble1999 Jul 16, 2025
1a9d6c8
go
tumble1999 Jul 17, 2025
9181c1c
ok
tumble1999 Jul 17, 2025
24d60c3
ok
tumble1999 Jul 17, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# EditorConfig is awesome: https://EditorConfig.org

# top-most EditorConfig file
root = true

[*]
indent_style = tab
indent_size = 4
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = false
insert_final_newline = false

[*.yml]
indent_style = space
indent_size = 2
191 changes: 191 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,191 @@
name: Ninecraft build

on:
- workflow_dispatch
- push

env:
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
BUILD_TYPE: Release

jobs:
build:
strategy:
fail-fast: false
matrix:
target: [ ubuntu-latest ]
arch: [i686,arm]
include:
- target: windows-latest
arch: i686
out: portable
runs-on: ${{matrix.target}}
container: ${{ matrix.arch == 'arm' && matrix.target == 'ubuntu-latest' && 'debian:bookworm' || null }}
permissions:
contents: read
steps:
- uses: actions/checkout@v4
if: matrix.arch != 'arm' || matrix.target != 'ubuntu-latest'
with:
submodules: true




- name: Set up Python
id: python
if: matrix.target == 'windows-latest'
uses: actions/setup-python@v4
with:
python-version: '3.11'

- name: Install Python dependencies
if: matrix.target == 'windows-latest'
run: |
python -m pip install --upgrade pip
pip install jinja2

- name: check python
if: matrix.target == 'windows-latest'
run: |
pip list
pip show jinja2
python3 -c "import sys; print(sys.path)"
python3 -c "import jinja2"

- name: Get Debian Architecture
id: debian
if: ${{matrix.target == 'ubuntu-latest'}}
run: |
if [ "${{ matrix.arch }}" = "i686" ]; then
echo arch=i386 >> $GITHUB_OUTPUT
fi
if [ "${{ matrix.arch }}" = "arm" ]; then
echo arch=armhf >> $GITHUB_OUTPUT
fi


- name: Get AppImage Architecture
id: appimage
if: ${{matrix.target == 'ubuntu-latest'}}
run: |
if [ "${{ matrix.arch }}" = "i686" ]; then
echo arch=i686 >> $GITHUB_OUTPUT
fi
if [ "${{ matrix.arch }}" = "arm" ]; then
echo arch=armhf >> $GITHUB_OUTPUT
fi

- name: Setup APT ${{matrix.arch}}
if: matrix.target == 'ubuntu-latest'
run: |
${{matrix.arch == 'i686' && 'sudo' || ''}} dpkg --add-architecture ${{steps.debian.outputs.arch}}
${{matrix.arch == 'i686' && 'sudo' || ''}} apt update -y
${{matrix.arch == 'i686' && 'sudo' || ''}} apt install -y gnupg archlinux-keyring file git pacman-package-manager wget make cmake unzip python3-jinja2 zenity libopenal-dev:${{steps.debian.outputs.arch}} libx11-dev:${{steps.debian.outputs.arch}} libxrandr-dev:${{steps.debian.outputs.arch}} libxinerama-dev:${{steps.debian.outputs.arch}} libxcursor-dev:${{steps.debian.outputs.arch}} libxi-dev:${{steps.debian.outputs.arch}} libgl-dev:${{steps.debian.outputs.arch}} libwayland-dev:${{steps.debian.outputs.arch}} libpulse-dev:${{steps.debian.outputs.arch}} libxkbcommon-dev:${{steps.debian.outputs.arch}} libegl-dev:${{steps.debian.outputs.arch}}

- name: Install GCC-Multilib
if: ${{matrix.target == 'ubuntu-latest' && matrix.arch == 'i686'}}
run: ${{matrix.arch == 'i686' && 'sudo' || ''}} apt install -y gcc g++ gcc-multilib g++-multilib

- name: Install GCC-gnueabihf
if: ${{matrix.target == 'ubuntu-latest' && matrix.arch == 'arm'}}
run: ${{matrix.arch == 'i686' && 'sudo' || ''}} apt install -y gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf

- name: Setup AppImageTool
if: ${{matrix.target == 'ubuntu-latest' }}
uses: AnimMouse/setup-appimage@v1
with:
name: appimagetool
url: https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-x86_64.AppImage


- if: matrix.arch == 'arm'
run: |
git config --global --add safe.directory /__w/Ninecraft/Ninecraft
git clone http://github.com/$GITHUB_REPOSITORY . --recursive
git switch $GITHUB_REF_NAME


- name: Build ${{matrix.arch}}-linux
if: matrix.target != 'windows-latest'
run: make build-${{matrix.arch}}

- name: Build ${{matrix.arch}}-windows
if: matrix.target == 'windows-latest'
run:
|
cmake -B ${{github.workspace}}/build -A Win32 -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}}
cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}


- name: Upload Windows
uses: actions/upload-artifact@v4
if: ${{ matrix.target == 'windows-latest' }}
with:
name: ninecraft-${{matrix.arch}}-windows
path: build/${{ env.BUILD_TYPE }}/ninecraft/ninecraft.exe

- name: Upload Linux
uses: actions/upload-artifact@v4
if: ${{matrix.target != 'windows-latest' }}
with:
name: ninecraft-${{matrix.arch}}-linux
path: build-${{matrix.arch}}/ninecraft/ninecraft

- name: Build Deb
if: ${{matrix.target == 'ubuntu-latest' }}
run: |
ls -al
mkdir -p pkgs/deb/usr/bin
mkdir -p pkgs/deb/usr/share/applications
ls -al pkgs
ls -al pkgs/deb
cp build-${{matrix.arch}}/ninecraft/ninecraft pkgs/deb/usr/bin
cp tools/extract.sh pkgs/deb/usr/bin/ninecraft-extract
dpkg-deb -b pkgs/deb

- name: Upload Deb
if: ${{matrix.target == 'ubuntu-latest' }}
uses: actions/upload-artifact@v4
with:
name: ninecraft-${{matrix.arch}}-linux.deb
path: pkgs/deb.deb

- name: Build AppImage
if: ${{matrix.target == 'ubuntu-latest' }}
run: |
wget https://archive.org/download/MCPEAlpha/PE-a0.6.1-x86.apk
./tools/extract.sh ./PE-a0.6.1-x86.apk
mkdir -p pkgs/appimage/usr/bin
cp build-${{matrix.arch}}/ninecraft/ninecraft pkgs/appimage/usr/bin
cp res/drawable/iconx.png pkgs/appimage/ninecraft.png
ARCH=${{steps.appimage.outputs.arch}} appimagetool ./pkgs/appimage/

- name: Upload Appimage
if: ${{matrix.target == 'ubuntu-latest' }}
uses: actions/upload-artifact@v4
with:
name: ninecraft-${{matrix.arch}}-linux.AppImage
path: ./*.AppImage


- name: Build Arch pkg
if: ${{matrix.target == 'ubuntu-latest' }}
run: |
${{matrix.arch == 'i686' && 'sudo' || ''}} sh ./pkgs/setup-pacman.sh
cp build-${{matrix.arch}}/ninecraft/ninecraft pkgs/arch
cd pkgs/arch
${{matrix.arch == 'i686' && 'sudo' || ''}} pacman -Syy
makepkg -si --nobuild
# - name: Build Arch Linux package
# uses: FFY00/build-arch-package@v1
# with:
# PKGBUILD: pkgs/arch/PKGBUILD
# OUTDIR: $HOME

- name: Upload Arch pkg
if: ${{matrix.target == 'ubuntu-latest' }}
uses: actions/upload-artifact@v4
with:
name: ninecraft-${{matrix.arch}}-linux.pkgs.tar
path: ninecraft.pkg.tar
38 changes: 36 additions & 2 deletions .github/workflows/ninecraft-x86-linux-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,18 @@ jobs:

steps:
- uses: actions/checkout@v4
with:
submodules: true

- name: Install Dependencies
run: |
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install git make cmake unzip python3-jinja2 zenity gcc g++ gcc-multilib g++-multilib libopenal-dev:i386 libx11-dev:i386 libxrandr-dev:i386 libxinerama-dev:i386 libxcursor-dev:i386 libxi-dev:i386 libgl-dev:i386 libwayland-dev:i386 libpulse-dev:i386 libxkbcommon-dev:i386 libegl-dev:i386

- name: Gather Submodules
run: git submodule update --init
# not needed because the about actions/checkout has that funtionality: https://github.com/actions/checkout?tab=readme-ov-file#usage
# - name: Gather Submodules
# run: git submodule update --init

- name: Build
run: make build-i686
Expand All @@ -36,3 +39,34 @@ jobs:
with:
name: ninecraft
path: build-i686/ninecraft/ninecraft

- name: Build Deb
run: |
mkdir -p pkgs/ninecraft/usr/bin
cp build-i686/ninecraft/ninecraft pkgs/ninecraft/usr/bin
cp tools/extract.sh pkgs/ninecraft/usr/bin/ninecraft-extract
dpkg-deb -b pkgs/ninecraft

- name: Upload Deb
uses: actions/upload-artifact@v4
with:
name: ninecraft.deb
path: pkgs/ninecraft.deb


- name: Setup AppImageTool
uses: AnimMouse/setup-appimage@v1
with:
name: appimagetool
url: https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-x86_64.AppImage

- name: Build Appimage
run: |
mkdir -p pkgs/Ninecraft.AppDir/usr/bin
cp build-i686/ninecraft/ninecraft pkgs/Ninecraft.AppDir/usr/bin
ARCH=X86_64 appimagetool ./pkgs/Ninecraft.AppDir/
- name: Upload Appimage
uses: actions/upload-artifact@v4
with:
name: ninecraft.AppImage
path: ./*.AppImage
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -28,3 +28,6 @@ a.out
result/
result
result*
*.deb
/pkgs/ninecraft/*/bin
pkgs/Ninecraft.AppDir/.DirIcon
42 changes: 42 additions & 0 deletions PKGBUILD
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
projectName=ninecraft

pkgname=$projectName
pkgrel=1
pkgpsc="A mcpe 0.1 .0 - 0.10 .5 launcher for linux and windows"
arch=("any")
url=""
license=('MIT')
groups=()
depends=('git'
'make'
'cmake'
'gcc'
'gcc-multilib'
'lib32-openal'
'lib32-libx11'
'lib32-libxrandr'
'lib32-libxinerama'
'lib32-libxcursor'
'lib32-libxi'
'lib32-libglvnd'
'zenity'
'unzip'
'python-jinja')
optdepends=()
provides=()
conflicts=()
replaces=()
backup=()
options=()
install=
changelog=
source=('project-path')
noextract=()
md5sums=('SKIP')


package () {
projectPath=$(cat project-path)
mkdir -p "$pkgdir/usr/"{"bin","share/applications"}
install -Dm755 $projectPath/build-(arch)/ninecraft/ninecraft $pkgdir/usr/bin
}
6 changes: 3 additions & 3 deletions flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -58,9 +58,9 @@
};
};
formatter = pkgs.alejandra;
devShell = pkgs.callPackage ./nix/shell.nix {
inherit (packages) ninecraft ninecraft-nixgl;
};
devShell =
pkgs.callPackage ./nix/shell.nix {
};
})
// {
nixosModule = {pkgs, ...}: {
Expand Down
30 changes: 17 additions & 13 deletions nix/shell.nix
Original file line number Diff line number Diff line change
@@ -1,13 +1,17 @@
{
mkShell,
ninecraft,
ninecraft-extract,
ninecraft-nixgl,
}:
mkShell {
packages = [
ninecraft
ninecraft-extract
ninecraft-nixgl
];
}
# compilation shell
with (import <nixpkgs> {}).pkgsi686Linux;
mkShell {
packages = [
gnumake
pkg-config
cmake
libgcc
python312Packages.jinja2
zlib
SDL2

# packaging
dpkg
pacman
];
}
2 changes: 2 additions & 0 deletions pkgs/appimage/AppRun
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
HERE="$(dirname "$(readlink -f "${0}")")"
EXEC=$HERE/usr/bin/ninecraft
9 changes: 9 additions & 0 deletions pkgs/appimage/Ninecraft.desktop
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
[Desktop Entry]
Name=Ninecraft
Exec=ninecraft --game "~/.local/share/ninecraft" --home "~/.local/share/ninecraft"
Icon=ninecraft
Type=Application
Categories=Game;AdventureGame
Comment=A mcpe 0.1 .0 - 0.10 .5 launcher for linux and windows
GenericName=MCPE Alpha Player
Keywords=mcpe;android;mcpi;pocket;edition
Loading