Browse Source

Revert To Binary Packaging

master
TheBrokenRail 4 weeks ago
parent
commit
941572063e
  1. 8
      .gitmodules
  2. 7
      cmake/i386-toolchain.cmake
  3. 9
      cmake/i686-toolchain.cmake
  4. 6
      debian/.gitignore
  5. 7
      debian/client-amd64
  6. 7
      debian/client-arm64
  7. 7
      debian/client-armhf
  8. 21
      debian/control
  9. 21
      debian/copyright
  10. 24
      debian/rules
  11. 7
      debian/server-amd64
  12. 7
      debian/server-arm64
  13. 7
      debian/server-armhf
  14. 17
      dependencies/libpng/CMakeLists.txt
  15. 1
      dependencies/libpng/src
  16. 1
      dependencies/minecraft-pi/CMakeLists.txt
  17. 16
      dependencies/zlib/CMakeLists.txt
  18. 1
      dependencies/zlib/src
  19. 14
      scripts/build-all.sh
  20. 11
      scripts/ci/run.sh
  21. 5
      scripts/install-dependencies.sh
  22. 41
      scripts/package.sh
  23. 2
      scripts/test.sh

8
.gitmodules

@ -0,0 +1,8 @@
[submodule "dependencies/libpng/src"]
path = dependencies/libpng/src
url = https://github.com/glennrp/libpng.git
shallow = true
[submodule "dependencies/zlib/src"]
path = dependencies/zlib/src
url = https://github.com/madler/zlib.git
shallow = true

7
cmake/i386-toolchain.cmake

@ -1,7 +0,0 @@
# Compile For i386
include("${CMAKE_CURRENT_LIST_DIR}/base-toolchain.cmake")
# Use i386 Cross-Compiler
setup_toolchain("i386-linux-gnu")
# Details
set(CMAKE_SYSTEM_NAME "Linux")
set(CMAKE_SYSTEM_PROCESSOR "i386")

9
cmake/i686-toolchain.cmake

@ -0,0 +1,9 @@
# Warning
message(WARNING "i686 Builds Are Unsupported, Proceed At Your Own Risk")
# Compile For i686
include("${CMAKE_CURRENT_LIST_DIR}/base-toolchain.cmake")
# Use i686 Cross-Compiler
setup_toolchain("i686-linux-gnu")
# Details
set(CMAKE_SYSTEM_NAME "Linux")
set(CMAKE_SYSTEM_PROCESSOR "i686")

6
debian/.gitignore

@ -1,6 +0,0 @@
*
!control
!copyright
!rules
!source
!.gitignore

7
debian/client-amd64

@ -0,0 +1,7 @@
Package: minecraft-pi-reborn-client
Version: ${VERSION}
Maintainer: TheBrokenRail <connor24nolan@live.com>
Description: Fun with Blocks
Homepage: https://www.minecraft.net/en-us/edition/pi
Architecture: amd64
Depends: libc6, libstdc++6, libc6-armhf-cross, libstdc++6-armhf-cross, zenity, libgles1, libegl1, libglfw3 | libglfw3-wayland, libfreeimage3, libopenal1, qemu-user-static

7
debian/client-arm64

@ -0,0 +1,7 @@
Package: minecraft-pi-reborn-client
Version: ${VERSION}
Maintainer: TheBrokenRail <connor24nolan@live.com>
Description: Fun with Blocks
Homepage: https://www.minecraft.net/en-us/edition/pi
Architecture: arm64
Depends: libc6, libstdc++6, libc6:armhf, libstdc++6:armhf, zenity, libgles1, libegl1, libglfw3 | libglfw3-wayland, libfreeimage3, libopenal1

7
debian/client-armhf

@ -0,0 +1,7 @@
Package: minecraft-pi-reborn-client
Version: ${VERSION}
Maintainer: TheBrokenRail <connor24nolan@live.com>
Description: Fun with Blocks
Homepage: https://www.minecraft.net/en-us/edition/pi
Architecture: armhf
Depends: libc6, libstdc++6, zenity, libgles1, libegl1, libglfw3 | libglfw3-wayland, libfreeimage3, libopenal1

21
debian/control

@ -1,21 +0,0 @@
Source: minecraft-pi-reborn
Section: games
Priority: optional
Maintainer: TheBrokenRail <connor24nolan@live.com>
Build-Depends: debhelper-compat (= 12), clang:native, lld:native, cmake, git, make:native, libglfw3, libglfw3-dev, libfreeimage3, libfreeimage-dev:native, libopenal1, libopenal-dev, crossbuild-essential-armhf
Standards-Version: 4.4.1
Homepage: https://www.minecraft.net/en-us/edition/pi
Vcs-Browser: https://gitea.thebrokenrail.com/TheBrokenRail/minecraft-pi-reborn
Vcs-Git: https://gitea.thebrokenrail.com/TheBrokenRail/minecraft-pi-reborn.git
Package: minecraft-pi-reborn-client
Architecture: amd64 i386 arm64 armhf
Multi-Arch: foreign
Depends: libc6, libstdc++6, libc6-armhf-cross [!arm64 !armhf], libstdc++6-armhf-cross [!arm64 !armhf], zenity, libgles1, libegl1, libglfw3 | libglfw3-wayland, libfreeimage3, libopenal1, qemu-user-static [!arm64 !armhf]
Description: Fun with Blocks
Package: minecraft-pi-reborn-server
Architecture: amd64 i386 arm64 armhf
Multi-Arch: foreign
Depends: libc6, libstdc++6, libc6-armhf-cross [!arm64 !armhf], libstdc++6-armhf-cross [!arm64 !armhf], qemu-user-static [!arm64 !armhf]
Description: Fun with Blocks (Dedicated Server)

21
debian/copyright

@ -1,21 +0,0 @@
MIT License
Copyright (c) 2021 TheBrokenRail
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

24
debian/rules

@ -1,24 +0,0 @@
#!/usr/bin/make -f
DEB_CUSTOM_OUTPUT_DIR ?= ..
include /usr/share/dpkg/architecture.mk
%:
dh $@
override_dh_auto_configure:
override_dh_strip:
override_dh_dwz:
override_dh_makeshlibs:
override_dh_shlibdeps:
override_dh_auto_build:
./scripts/build.sh client $(DEB_HOST_ARCH)
./scripts/build.sh server $(DEB_HOST_ARCH)
override_dh_auto_install:
cp -ar out/client-$(DEB_HOST_ARCH)/. debian/minecraft-pi-reborn-client
cp -ar out/server-$(DEB_HOST_ARCH)/. debian/minecraft-pi-reborn-server
override_dh_builddeb:
dh_builddeb --destdir=${DEB_CUSTOM_OUTPUT_DIR}

7
debian/server-amd64

@ -0,0 +1,7 @@
Package: minecraft-pi-reborn-server
Version: ${VERSION}
Maintainer: TheBrokenRail <connor24nolan@live.com>
Description: Fun with Blocks
Homepage: https://www.minecraft.net/en-us/edition/pi
Architecture: amd64
Depends: libc6, libstdc++6, libc6-armhf-cross, libstdc++6-armhf-cross, qemu-user-static

7
debian/server-arm64

@ -0,0 +1,7 @@
Package: minecraft-pi-reborn-server
Version: ${VERSION}
Maintainer: TheBrokenRail <connor24nolan@live.com>
Description: Fun with Blocks
Homepage: https://www.minecraft.net/en-us/edition/pi
Architecture: arm64
Depends: libc6, libstdc++6, libc6:armhf, libstdc++6:armhf

7
debian/server-armhf

@ -0,0 +1,7 @@
Package: minecraft-pi-reborn-server
Version: ${VERSION}
Maintainer: TheBrokenRail <connor24nolan@live.com>
Description: Fun with Blocks
Homepage: https://www.minecraft.net/en-us/edition/pi
Architecture: armhf
Depends: libc6, libstdc++6

17
dependencies/libpng/CMakeLists.txt

@ -1,29 +1,20 @@
project(libpng)
include(FetchContent)
# Silence Warnings
add_compile_options(-w)
## LibPNG
# Download
FetchContent_Declare(
libpng
GIT_REPOSITORY "https://github.com/glennrp/libpng.git"
GIT_TAG "v1.2.59"
)
FetchContent_Populate(libpng)
set(ZLIB_LIBRARY zlib)
set(ZLIB_INCLUDE_DIR "${zlib_SOURCE_DIR}" "${zlib_BINARY_DIR}")
set(ZLIB_LIBRARY zlibstatic)
set(ZLIB_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../zlib" "${CMAKE_CURRENT_BINARY_DIR}/../zlib")
set(CMAKE_POLICY_DEFAULT_CMP0054 OLD) # Silence Warning
add_subdirectory("${libpng_SOURCE_DIR}" "${libpng_BINARY_DIR}" EXCLUDE_FROM_ALL)
add_subdirectory(src EXCLUDE_FROM_ALL)
set(CMAKE_POLICY_DEFAULT_CMP0054 NEW) # Re-Enable New Behavior
set_target_properties(png12 PROPERTIES LINK_FLAGS "-Wl,--version-script='${CMAKE_CURRENT_SOURCE_DIR}/libpng.vers'") # Use Symbol Versioning
set_target_properties(png12 PROPERTIES LINK_FLAGS "-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/libpng.vers") # Use Symbol Versioning
set_target_properties(png12 PROPERTIES DEBUG_POSTFIX "") # Fix LibPNG Suffix In Debug Mode
# Ensure Build
add_custom_target(png12-build ALL DEPENDS png12)
# Install
install(TARGETS png12 DESTINATION "${MCPI_LIB_DIR}")

1
dependencies/libpng/src

@ -0,0 +1 @@
Subproject commit 5bb5bf345aef1e62adcfe30791f4364730a2aede

1
dependencies/minecraft-pi/CMakeLists.txt

@ -13,4 +13,3 @@ FetchContent_Populate(minecraft-pi)
# Install
install(DIRECTORY "${minecraft-pi_SOURCE_DIR}/" DESTINATION "${MCPI_INSTALL_DIR}" USE_SOURCE_PERMISSIONS)

16
dependencies/zlib/CMakeLists.txt

@ -1,24 +1,12 @@
project(zlib)
include(FetchContent)
# Silence Warnings
add_compile_options(-w)
## zlib
# Download
FetchContent_Declare(
zlib
GIT_REPOSITORY "https://github.com/madler/zlib.git"
GIT_TAG "v1.2.11"
)
FetchContent_Populate(zlib)
include_directories("${zlib_SOURCE_DIR}" "${zlib_BINARY_DIR}") # Fix ZLib Build
add_subdirectory("${zlib_SOURCE_DIR}" "${zlib_BINARY_DIR}" EXCLUDE_FROM_ALL)
add_subdirectory(src EXCLUDE_FROM_ALL)
# Ensure Build
add_custom_target(zlib-build ALL DEPENDS zlib)
# Install
install(TARGETS zlib DESTINATION "${MCPI_LIB_DIR}")
add_custom_target(zlib-build ALL DEPENDS zlibstatic)

1
dependencies/zlib/src

@ -0,0 +1 @@
Subproject commit cacf7f1d4e3d44d871b605da3b647f07d718623f

14
scripts/build-all.sh

@ -0,0 +1,14 @@
#!/bin/sh
set -e
# Clean Prefix
rm -rf out
# Build
./scripts/build.sh client amd64
./scripts/build.sh server amd64
./scripts/build.sh client arm64
./scripts/build.sh server arm64
./scripts/build.sh client armhf
./scripts/build.sh server armhf

11
scripts/ci/run.sh

@ -14,12 +14,13 @@ echo '==== Installing Dependencies ===='
./scripts/install-dependencies.sh
# Build
echo '==== Building & Packaging ===='
rm -rf out build
./scripts/package.sh amd64
./scripts/package.sh arm64
./scripts/package.sh armhf
echo '==== Building ===='
./scripts/build-all.sh
# Test
echo '==== Testing ===='
./scripts/test.sh
# Package
echo '==== Packaging ===='
./scripts/package.sh

5
scripts/install-dependencies.sh

@ -20,7 +20,6 @@ sudo apt-get dist-upgrade -y
# Install
sudo apt-get install --no-install-recommends -y \
build-essential \
ca-certificates \
lsb-release \
git \
@ -28,10 +27,6 @@ sudo apt-get install --no-install-recommends -y \
lld \
cmake \
make \
dpkg-dev \
debhelper \
devscripts \
libdistro-info-perl \
libglfw3 libglfw3-dev \
libfreeimage3 libfreeimage-dev \
crossbuild-essential-armhf \

41
scripts/package.sh

@ -3,18 +3,35 @@
set -e
# Prepare
rm -f debian/changelog
PACKAGE='minecraft-pi-reborn'
VERSION="$(cat VERSION)"
DISTRO="$(lsb_release -cs)"
EDITOR='true' NAME='TheBrokenRail' EMAIL='connor24nolan@live.com' dch -u low -v "${VERSION}" --create --distribution "${DISTRO}" --package "${PACKAGE}" "Release ${VERSION}"
# Custom Architecture
ARCH="$(dpkg-architecture -qDEB_BUILD_ARCH)"
if [ -z "$1" ]; then
ARCH="$1"
fi
# Common
package() {
local dir="out/$1"
# Create DEBIAN Dir
rm -rf "${dir}/DEBIAN"
mkdir -p "${dir}/DEBIAN"
cp "debian/$1" "${dir}/DEBIAN/control"
# Format DEBIAN/control
sed -i "s/\${VERSION}/${VERSION}/g" "${dir}/DEBIAN/control"
# Fix Permissions On Jenkins
chmod -R g-s "${dir}"
# Package
dpkg-deb --root-owner-group --build "${dir}" out
}
# Build
export DEB_CUSTOM_OUTPUT_DIR='out'
debuild --no-lintian -a"${ARCH}" -us -uc --buildinfo-option=-u"${DEB_CUSTOM_OUTPUT_DIR}" --changes-option=-u"${DEB_CUSTOM_OUTPUT_DIR}" -b
# Find And Package
for dir in out/*; do
# Check If Directory Exists
if [ -d "${dir}" ]; then
# Check If Debian Package Exists
pkg="$(basename ${dir})"
if [ -f "debian/${pkg}" ]; then
package "${pkg}"
fi
fi
done

2
scripts/test.sh

@ -3,7 +3,7 @@
set -e
# Add minecraft-pi-reborn-server To PATH
export PATH="$(pwd)/out/server-$(dpkg-architecture -qDEB_HOST_ARCH)/usr/bin:${PATH}"
export PATH="$(pwd)/out/server-x86_64/usr/bin:${PATH}"
# Create Test Directory
rm -rf build/test

Loading…
Cancel
Save