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
248 changes: 216 additions & 32 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,38 +3,222 @@ 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: ./libraries.sh 000

- 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: |
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-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/*.zip --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