Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 2 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
*.sh text eol=lf linguist-language=Shell
*.txt eol=lf
15 changes: 10 additions & 5 deletions .github/workflows/CI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,19 +10,24 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6

- name: Check shell scripts are executable
run: |
test -x libraries.sh
test -x scripts/get-config-scripts.sh
find scripts depends -name '*.sh' -exec test -x {} \;
bad=()
while IFS= read -r f; do
test -x "$f" || bad+=("$f")
done < <(find . -name '*.sh')
if (( ${#bad[@]} )); then
printf 'NOT executable: %s\n' "${bad[@]}"
exit 1
fi

- name: Check config helper cache path
run: |
mkdir -p build
cd build
CONFIG_BASE_URL="https://127.0.0.1/pretend-savannah-is-down" CONFIG_TIMEOUT=1 ../scripts/get-config-scripts.sh
NO_SAVANNAH=1 ../utils/get-config-scripts.sh
test -s ../archives/config.guess
test -s ../archives/config.sub

Expand Down
282 changes: 245 additions & 37 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,42 +3,250 @@ name: Build libraries package
on: [ push, pull_request, workflow_dispatch ]

jobs:
build_ps3libraries:
runs-on: ubuntu-22.04
build:
runs-on: ${{ matrix.runner }}
strategy:
fail-fast: false
matrix:
include:
- runner: ubuntu-latest
os: linux

- runner: macos-15-intel
os: macos

- runner: macos-26
os: macos

steps:
- name: Checkout
uses: actions/checkout@v6

- name: Set env vars
id: slug
run: |
echo "sha_name=$(echo ${GITHUB_SHA} | cut -c1-8)" >> $GITHUB_ENV
echo "NO_SAVANNAH=1" >> $GITHUB_ENV

- name: Install Linux requirements
if: matrix.os == 'linux'
run: |
sudo apt-get -y install gcc libelf-dev autoconf automake bison flex make texinfo patch wget zlib1g-dev libtool-bin bzip2 pkg-config libssl-dev pv

- name: Install MacOS requirements
if: matrix.os == 'macos'
shell: bash
env:
HOMEBREW_NO_AUTO_UPDATE: 1
HOMEBREW_NO_INSTALL_CLEANUP: 1
HOMEBREW_NO_ENV_HINTS: 1
run: |
if ! command -v brew >/dev/null 2>&1; then
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
fi

if [[ -d /opt/homebrew ]]; then
eval "$(/opt/homebrew/bin/brew shellenv)"
else
eval "$(/usr/local/bin/brew shellenv)"
fi

brew install autoconf automake openssl libelf ncurses zlib gmp wget pkg-config texinfo pv

- name: Create build folder
run: |
mkdir build

- name: Cache downloaded archives
uses: actions/cache@v5
with:
path: archives
key: archives-${{ hashFiles('archives/archives.txt') }}

- name: Purge unverifiable archives
run: |
while IFS= read -r line; do
set -- $line
[ "${1:-}" = "-" ] || continue
# 3rd field is URL, 5th field (if "->") is rename
url="$3"
rename=""
[ "${4:-}" = "->" ] && rename="${5:-}"
file="${rename:-$(basename "$url")}"
rm -f "archives/$file"
done < archives/archives.txt

# using pre-compiled PS3 toolchain
# to do: replace toolchain link
- name: Download PS3DEV Toolchain
run: |
curl -sL https://github.com/clienthax/ps3toolchain/releases/latest/download/ps3dev-${{ matrix.os }}-${{ runner.arch }}.tar.gz | tar xvz -C ./
echo "PS3DEV=${GITHUB_WORKSPACE}/ps3dev" >> $GITHUB_ENV
echo "PSL1GHT=${GITHUB_WORKSPACE}/ps3dev" >> $GITHUB_ENV
echo "PATH=$PATH:$PWD/ps3dev/bin:$PWD/ps3dev/ppu/bin:$PWD/ps3dev/spu/bin" >> $GITHUB_ENV

- name: Download files
working-directory: ./build
run: ../download.sh

- name: Build Psl1ght
working-directory: ./build
run: ../scripts/000-psl1ght.sh

- name: Build Zlib 1.2.13
working-directory: ./build
run: ../scripts/001-zlib-1.2.13.sh

- name: Build Libpng 1.4.4
working-directory: ./build
run: ../scripts/002-libpng-1.4.4.sh

- name: Build Jpeg 8b
working-directory: ./build
run: ../scripts/003-jpeg-8b.sh

- name: Build Freetype 2.4.3
working-directory: ./build
run: ../scripts/004-freetype-2.4.3.sh

- name: Build Pixman 0.20.0
working-directory: ./build
run: ../scripts/005-pixman-0.20.0.sh

- name: Build Cairo 1.10.0
working-directory: ./build
run: ../scripts/006-cairo-1.10.0.sh

- name: Build Libogg 1.3.4
working-directory: ./build
run: ../scripts/007-libogg-1.3.4.sh

- name: Build Libvorbis 1.3.5
working-directory: ./build
run: ../scripts/008-libvorbis-1.3.5.sh

- name: Build Libzip 0.9.3
working-directory: ./build
run: ../scripts/009-libzip-0.9.3.sh

- name: Build Tiff 3.9.4
working-directory: ./build
run: ../scripts/010-tiff-3.9.4.sh

- name: Build Libmikmod 3.1.11
working-directory: ./build
run: ../scripts/011-libmikmod-3.1.11.sh

- name: Build Libxml2 2.7.8
working-directory: ./build
run: ../scripts/012-libxml2-2.7.8.sh

- name: Build Sdl_psl1ght
working-directory: ./build
run: ../scripts/013-sdl_psl1ght.sh

- name: Build Sdl2_psl1ght
working-directory: ./build
run: ../scripts/014-sdl2_psl1ght.sh

- name: Build Sdl_psl1ght_libs
working-directory: ./build
run: ../scripts/015-sdl_psl1ght_libs.sh

- name: Build SDL2_mixer 2.0.4
working-directory: ./build
run: ../scripts/016-SDL2_mixer-2.0.4.sh

- name: Build Polarssl 1.3.9
working-directory: ./build
run: ../scripts/017-polarssl-1.3.9.sh

- name: Build Libcurl 7.64.1
working-directory: ./build
run: ../scripts/018-libcurl-7.64.1.sh

- name: Build Libmad 0.15.1b
working-directory: ./build
run: ../scripts/019-libmad-0.15.1b.sh

- name: Build Flac 1.2.1
working-directory: ./build
run: ../scripts/020-flac-1.2.1.sh

- name: Build Faad2 2.7
working-directory: ./build
run: ../scripts/021-faad2-2.7.sh

- name: Build Libtheora 1.1.1
working-directory: ./build
run: ../scripts/022-libtheora-1.1.1.sh

- name: Build NoRSX
working-directory: ./build
run: ../scripts/023-NoRSX.sh

- name: Build Libjson
working-directory: ./build
run: ../scripts/024-libjson.sh

- name: Build Debugnet
working-directory: ./build
run: ../scripts/025-debugnet.sh

- name: Build Ps3soundlib
working-directory: ./build
run: ../scripts/026-ps3soundlib.sh

- name: Build Tiny3d_libfont
working-directory: ./build
run: ../scripts/027-tiny3d_libfont.sh

- name: Build MbedTLS 2.28.10
working-directory: ./build
run: ../scripts/028-mbedTLS-2.28.10.sh

- name: Build Libunrar
working-directory: ./build
run: ../scripts/029-libunrar.sh

- name: Build Libnfs
working-directory: ./build
run: ../scripts/030-libnfs.sh

- name: Build Libsmb2
working-directory: ./build
run: ../scripts/031-libsmb2.sh

- name: Build Package
run: |
7z a ps3libraries-${{ matrix.os }}-${{ runner.arch }}.zip $PSL1GHT/portlibs/

- name: Push package artifact
uses: actions/upload-artifact@v7
with:
name: ps3libraries-${{ env.sha_name }}-${{ matrix.os }}-${{ runner.arch }}
path: ps3libraries-${{ matrix.os }}-${{ runner.arch }}.zip
if-no-files-found: error

push_release:
if: |
github.event_name == 'push' &&
github.repository == 'ps3dev/ps3libraries'
needs: build
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout
uses: actions/checkout@v6

- name: Download artifacts
uses: actions/download-artifact@v8
with:
path: artifacts
merge-multiple: true

- name: Checkout
uses: actions/checkout@v4

- name: Set env vars
id: slug
run: |
echo "sha_name=$(echo ${GITHUB_SHA} | cut -c1-8)" >> $GITHUB_ENV
sudo apt install python2.7
sudo apt-get -y install autoconf automake bison flex make texinfo patch wget zlib1g-dev libtool-bin bzip2 pkg-config

# using pre-compiled PS3 toolchain
# to do: replace toolchain link
- name: Download PSL1GHT Toolchain
run: |
curl -sL https://github.com/bucanero/ps3toolchain/releases/download/ubuntu-latest-fad3b5fb/ps3dev-ubuntu-latest-2020-08-31.tar.gz | tar xvz -C ./
curl -sL https://github.com/ps3dev/PSL1GHT/raw/master/ppu/include/sysutil/sysutil.h -o ps3dev/ppu/include/sysutil/sysutil.h
curl -sL https://gist.github.com/bucanero/150ec41325894bbd1b4513ecb9e1cfb6/raw/1814600a1b3c804209c4f71dd6316779e160cb25/utime.h -o ps3dev/ppu/ppu/include/sys/utime.h
echo "PS3DEV=${GITHUB_WORKSPACE}/ps3dev" >> $GITHUB_ENV
echo "PSL1GHT=${GITHUB_WORKSPACE}/ps3dev" >> $GITHUB_ENV

- name: Install libraries
run: |
sed -i.bak '8d' libraries-sudo.sh
./libraries-sudo.sh

- name: Build Package
run: |
7z a ps3libraries.zip $PSL1GHT/portlibs/

- name: Push package artifact
uses: actions/upload-artifact@v4
with:
name: ps3libraries-build_${{ env.sha_name }}
path: ps3libraries.zip
if-no-files-found: error
- name: Create Release
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: gh release create 1.0${{ GITHUB.RUN_NUMBER }} artifacts/*.zip --target ${{ GITHUB.SHA }} -t 1.0${{ GITHUB.RUN_NUMBER }}
7 changes: 3 additions & 4 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
/build
/archives/*-[0-9]*
/archives/*.tar.gz
/archives/config.guess
/archives/config.sub
/archives/*
!/archives/manifest.txt
/ps3dev
63 changes: 32 additions & 31 deletions archives/archives.txt
Original file line number Diff line number Diff line change
@@ -1,31 +1,32 @@
9b8aa094c4e5765dabf4da391f00d15c 1497445 https://github.com/madler/zlib/releases/download/v1.2.13/zlib-1.2.13.tar.gz
297b38f925e745061489b41b1f7c4bb1 829414 http://download.sourceforge.net/libpng/libpng-1.4.4.tar.gz
61ea7b0b1489b6a0315faedb081f5b45 935594 http://www.ijg.org/files/jpegsrc.v8b.tar.gz
649dd3c558278ae1d79a4e8e502c13e4 1907043 http://download.savannah.gnu.org/releases/freetype/freetype-old/freetype-2.4.3.tar.gz
c1a31d5cedfa97c5af7148a2d1fd4356 537274 http://cairographics.org/releases/pixman-0.20.0.tar.gz
70a2ece66cf473d976e2db0f75bf199e 24022822 http://cairographics.org/releases/cairo-1.10.0.tar.gz
b9a66c80bdf45363605e4aa75fa951a8 589570 http://downloads.xiph.org/releases/ogg/libogg-1.3.4.tar.gz
7220e089f3be3412a2317d6fde9e3944 1638779 http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.5.tar.gz
27610091ca27bf843a6646cd05de35b9 304965 http://www.nih.at/libzip/libzip-0.9.3.tar.bz2
2006c1bdd12644dbf02956955175afd6 1436968 http://download.osgeo.org/libtiff/old/tiff-3.9.4.tar.gz
705106da305e8de191549f1e7393185c 611590 http://mikmod.raphnet.net/files/libmikmod-3.1.11.tar.gz
8127a65e8c3b08856093099b52599c86 4881808 http://xmlsoft.org/sources/libxml2-2.7.8.tar.gz
a36e8410cac46b00a4d01752b32c3eb1 11125077 http://www.libsdl.org/projects/SDL_mixer/release/SDL2_mixer-2.0.4.tar.gz
48af7d1f0d5de512cbd6dacf5407884c 1741396 https://mirror2.openwrt.org/sources/polarssl-1.3.9-gpl.tgz
371239c13ed64ae4c56cd2480cde52f8 4008103 http://curl.haxx.se/download/curl-7.64.1.tar.gz
1be543bc30c56fb6bea1d7bf6a64e66c 502379 http://downloads.sourceforge.net/project/mad/libmad/0.15.1b/libmad-0.15.1b.tar.gz
153c8b15a54da428d1f0fadc756c22c7 2009217 http://downloads.sourceforge.net/project/flac/flac-src/flac-1.2.1-src/flac-1.2.1.tar.gz
ee1b4d67ea2d76ee52c5621bc6dbf61e 1137407 http://downloads.sourceforge.net/faac/faad2-2.7.tar.gz
292ab65cedd5021d6b7ddd117e07cd8e 1903175 http://downloads.xiph.org/releases/theora/libtheora-1.1.1.tar.bz2
7013b2471a507942eb8ed72a5d872d16 455089 https://codeload.github.com/json-c/json-c/tar.gz/json-c-0.11-20130402
d12e48309d6d1cfdc31a6ebf866c25db 3489179 https://github.com/Mbed-TLS/mbedtls/releases/download/mbedtls-2.28.10/mbedtls-2.28.10.tar.bz2
- - https://github.com/zeldin/SDL_PSL1GHT/tarball/master -> sdl_psl1ght.tar.gz
- - https://github.com/zeldin/SDL_PSL1GHT_Libs/tarball/master -> sdl_psl1ght_libs.tar.gz
- - https://github.com/shagkur/SDL_PSL1GHT/archive/refs/heads/sdl2_master.tar.gz -> sdl2_psl1ght.tar.gz
- - https://github.com/wargio/NoRSX/tarball/master -> NoRSX.tar.gz
- - https://github.com/sergiou87/ps3debugnet/tarball/master -> ps3debugnet.tar.gz
- - https://github.com/wargio/ps3soundlib/tarball/master -> ps3soundlib.tar.gz
- - https://github.com/wargio/tiny3d/tarball/master -> tiny3d.tar.gz
- - https://github.com/bucanero/libunrar-ps3/tarball/master -> libunrar.tar.gz
- - https://github.com/sahlberg/libnfs/tarball/master -> libnfs.tar.gz
- - https://github.com/sahlberg/libsmb2/tarball/master -> libsmb2.tar.gz
b3a24de97a8fdbc835b9833169501030b8977031bcb54b3b3ac13740f846ab30 1497445 https://github.com/madler/zlib/releases/download/v1.2.13/zlib-1.2.13.tar.gz
d07616ba1e9c161017384feb3b576d70c160b970abfd9549ad39a622284b574a 829414 https://download.sourceforge.net/libpng/libpng-1.4.4.tar.gz
64be2429346b1aa84a014fc47264661ca2e6c786aea25afecb363d5973b4e6a9 935594 https://www.ijg.org/files/jpegsrc.v8b.tar.gz
33ec92273c2d809e51dece879c09d206e5dfa3d6deb7ce9e4c2bf0891b8111f9 1907043 https://download.savannah.gnu.org/releases/freetype/freetype-old/freetype-2.4.3.tar.gz
9c02c22c6cc3f28f3633d02ef6f0cac130518f621edb011ebbbf08cd1a81251a 537274 https://cairographics.org/releases/pixman-0.20.0.tar.gz
0f2ce4cc4615594088d74eb8b5360bad7c3cc3c3da9b61af9bfd979ed1ed94b2 24022822 https://cairographics.org/releases/cairo-1.10.0.tar.gz
fe5670640bd49e828d64d2879c31cb4dde9758681bb664f9bdbf159a01b0c76e 589570 https://downloads.xiph.org/releases/ogg/libogg-1.3.4.tar.gz
6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce 1638779 https://downloads.xiph.org/releases/vorbis/libvorbis-1.3.5.tar.gz
e63f5dc1b33fd1c02a881d5a819620634a69d1e4ce8637261ca0cb0fbc9f9dca 304965 https://www.nih.at/libzip/libzip-0.9.3.tar.bz2
67b76d075fb74f7cb32e7e4b217701674755fe6cee0f463b259a753fce691da6 1436968 https://download.osgeo.org/libtiff/old/tiff-3.9.4.tar.gz
2d7598cd2a8c61c023f27c9c7c1aca8bbfd92aadbee2f98b7a6d421eae35c929 611590 https://mikmod.raphnet.net/files/libmikmod-3.1.11.tar.gz
cda23bc9ebd26474ca8f3d67e7d1c4a1f1e7106364b690d822e009fdc3c417ec 4881808 http://xmlsoft.org/sources/libxml2-2.7.8.tar.gz
b4cf5a382c061cd75081cf246c2aa2f9df8db04bdda8dcdc6b6cca55bede2419 11125077 https://www.libsdl.org/projects/SDL_mixer/release/SDL2_mixer-2.0.4.tar.gz
d3605afc28ed4b7d1d9e3142d72e42855e4a23c07c951bbb0299556b02d36755 1741396 https://mirror2.openwrt.org/sources/polarssl-1.3.9-gpl.tgz
432d3f466644b9416bc5b649d344116a753aeaa520c8beaf024a90cba9d3d35d 4008103 https://curl.haxx.se/download/curl-7.64.1.tar.gz
bbfac3ed6bfbc2823d3775ebb931087371e142bb0e9bb1bee51a76a6e0078690 502379 https://downloads.sourceforge.net/project/mad/libmad/0.15.1b/libmad-0.15.1b.tar.gz
9635a44bceb478bbf2ee8a785cf6986fba525afb5fad1fd4bba73cf71f2d3edf 2009217 https://downloads.sourceforge.net/project/flac/flac-src/flac-1.2.1-src/flac-1.2.1.tar.gz
ee26ed1e177c0cd8fa8458a481b14a0b24ca0b51468c8b4c8b676fd3ceccd330 1137407 https://downloads.sourceforge.net/faac/faad2-2.7.tar.gz
b6ae1ee2fa3d42ac489287d3ec34c5885730b1296f0801ae577a35193d3affbc 1903175 https://downloads.xiph.org/releases/theora/libtheora-1.1.1.tar.bz2
9988283408c71838d8d62e5418e5abb5eb5300bd84c385fdc96143b5e8f10ed5 455089 https://codeload.github.com/json-c/json-c/tar.gz/json-c-0.11-20130402 -> json-c-0.11-20130402.tar.gz
19e5b81fdac0fe22009b9e2bdcd52d7dcafbf62bc67fc59cf0a76b5b5540d149 3489179 https://github.com/Mbed-TLS/mbedtls/releases/download/mbedtls-2.28.10/mbedtls-2.28.10.tar.bz2
- - https://github.com/zeldin/SDL_PSL1GHT/tarball/master -> sdl_psl1ght.tar.gz
- - https://github.com/zeldin/SDL_PSL1GHT_Libs/tarball/master -> sdl_psl1ght_libs.tar.gz
- - https://github.com/shagkur/SDL_PSL1GHT/archive/refs/heads/sdl2_master.tar.gz -> sdl2_psl1ght.tar.gz
- - https://github.com/wargio/NoRSX/tarball/master -> NoRSX.tar.gz
- - https://github.com/sergiou87/ps3debugnet/tarball/master -> ps3debugnet.tar.gz
- - https://github.com/wargio/ps3soundlib/tarball/master -> ps3soundlib.tar.gz
- - https://github.com/wargio/tiny3d/tarball/master -> tiny3d.tar.gz
- - https://github.com/bucanero/libunrar-ps3/tarball/master -> libunrar.tar.gz
- - https://github.com/sahlberg/libnfs/tarball/master -> libnfs.tar.gz
- - https://github.com/sahlberg/libsmb2/tarball/master -> libsmb2.tar.gz
- - https://github.com/clienthax/psl1ght/tarball/master -> psl1ght.tar.gz
Loading