Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 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
254 changes: 222 additions & 32 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,38 +3,228 @@ name: Build libraries package
on: [ push, pull_request, workflow_dispatch ]

jobs:
build_ps3libraries:
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

- 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: |
eval "$(brew shellenv)"
brew install autoconf automake openssl libelf ncurses zlib gmp wget pkg-config texinfo

- 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

- name: Download PS3DEV Toolchain
env:
GH_TOKEN: ${{ github.token }}
run: |
TOOLCHAIN_URL=$(gh api repos/ps3dev/ps3toolchain/releases \
--jq '
map(select(.prerelease and (.draft | not)))
| sort_by(.published_at)
| reverse
| .[0].assets[]
| select(.name == "ps3dev-${{ matrix.os }}-${{ runner.arch }}.tar.gz")
| .browser_download_url
')

curl -sL "$TOOLCHAIN_URL" | 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
run: |
git clone https://github.com/ps3dev/PSL1GHT.git
cd PSL1GHT
JOBS=$(nproc 2>/dev/null || sysctl -n hw.ncpu)
make -j"$JOBS" install-ctrl
make -j"$JOBS"
make -j"$JOBS" install

- name: Build Zlib 1.2.13
run: ./libraries.sh 001

- name: Build Libpng 1.4.4
run: ./libraries.sh 002

- name: Build Jpeg 8b
run: ./libraries.sh 003

- name: Build Freetype 2.4.3
run: ./libraries.sh 004

- name: Build Pixman 0.20.0
run: ./libraries.sh 005

- name: Build Cairo 1.10.0
run: ./libraries.sh 006

- name: Build Libogg 1.3.4
run: ./libraries.sh 007

- name: Build Libvorbis 1.3.5
run: ./libraries.sh 008

- name: Build Libzip 0.9.3
run: ./libraries.sh 009

- name: Build Tiff 3.9.4
run: ./libraries.sh 010

- name: Build Libmikmod 3.1.11
run: ./libraries.sh 011

- name: Build Libxml2 2.7.8
run: ./libraries.sh 012

- name: Build Sdl_psl1ght
run: ./libraries.sh 013

- name: Build Sdl2_psl1ght
run: ./libraries.sh 014

- name: Build Sdl_psl1ght_libs
run: ./libraries.sh 015

- name: Build SDL2_mixer 2.0.4
run: ./libraries.sh 016

- name: Build Polarssl 1.3.9
run: ./libraries.sh 017

- name: Build Libcurl 7.64.1
run: ./libraries.sh 018

- name: Build Libmad 0.15.1b
run: ./libraries.sh 019

- name: Build Flac 1.2.1
run: ./libraries.sh 020

- name: Build Faad2 2.7
run: ./libraries.sh 021

- name: Build Libtheora 1.1.1
run: ./libraries.sh 022

- name: Build NoRSX
run: ./libraries.sh 023

- name: Build Libjson
run: ./libraries.sh 024

- name: Build Debugnet
run: ./libraries.sh 025

- name: Build Ps3soundlib
run: ./libraries.sh 026

- name: Build Tiny3d_libfont
run: ./libraries.sh 027

- name: Build MbedTLS 2.28.10
run: ./libraries.sh 028

- name: Build Libunrar
run: ./libraries.sh 029

- name: Build Libnfs
run: ./libraries.sh 030

- name: Build Libsmb2
run: ./libraries.sh 031

- name: Build Package
run: |
tar -zcvf ps3libraries-${{ matrix.os }}-${{ runner.arch }}.tar.gz $PSL1GHT/portlibs/
Comment thread
bucanero marked this conversation as resolved.
Outdated

- 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 }}.tar.gz
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-get -y install autoconf automake bison flex make texinfo patch wget zlib1g-dev libtool-bin bzip2 pkg-config

# using pre-compiled PS3 toolchain
- name: Download PSL1GHT Toolchain
run: |
curl -sL https://github.com/ps3dev/ps3toolchain/releases/download/2026-06-09/ps3dev-92534e60-ubuntu-latest.tar.gz | tar xvz -C ./
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 Pre-Release
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
TAG="nightly-$(date -u +%Y-%m-%d)"
gh release delete "$TAG" --yes --cleanup-tag || true
gh release create "$TAG" artifacts/*.tar.gz --target ${{ GITHUB.SHA }} -t "$TAG" --prerelease
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/archives.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
File renamed without changes.
File renamed without changes.
17 changes: 12 additions & 5 deletions scripts/get-config-scripts.sh → config/get-config-scripts.sh
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
#!/bin/sh -e
#!/bin/sh
set -e

CONFIG_TIMEOUT="${CONFIG_TIMEOUT:-15}"
CONFIG_BASE_URL="https://git.savannah.gnu.org/cgit/config.git/plain"

SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
ROOT_DIR="$(cd "${SCRIPT_DIR}/.." && pwd)"
ASSET_DIR="${ROOT_DIR}/assets"
CONFIG_DIR="${ROOT_DIR}/config"

cd "${ROOT_DIR}/archives"

Expand Down Expand Up @@ -36,9 +37,15 @@ fetch_config_file() {

echo "Falling back to safe ${file}."
rm -f "${tmp}"
cp "${ASSET_DIR}/${file}" "${file}"
cp "${CONFIG_DIR}/${file}" "${file}"
chmod +x "${file}"
}

fetch_config_file config.guess
fetch_config_file config.sub
if [ -z "${NO_SAVANNAH}" ]; then
fetch_config_file config.guess
fetch_config_file config.sub
else
echo "NO_SAVANNAH is set, skipping Savannah downloads."
cp "${CONFIG_DIR}/config.guess" "config.guess"
cp "${CONFIG_DIR}/config.sub" "config.sub"
fi
Loading
Loading