Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add 32-bit CI and Qt 5 build of Mixxx #21

Draft
wants to merge 4 commits into
base: main
Choose a base branch
from
Draft
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 .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ jobs:
arch: x86_64
- platform: linux/arm64
arch: aarch64
- platform: linux/386
arch: pentium4

steps:
- uses: actions/checkout@v3
Expand Down
31 changes: 16 additions & 15 deletions mixxx-git/PKGBUILD
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,14 @@
# Contributor: Gimmeapill <[email protected]>
# Contributor: regreddit <[email protected]>

pkgname=mixxx-git
_pkgname=mixxx
pkgname=$_pkgname-git
pkgver=r8881
pkgrel=1
pkgdesc="Digital DJ mixing software. Git master branch (development/alpha)."
# TODO: Re-add aarch64 once we figure out a performant way to build it
# See https://github.com/fwcd/arch-repo/pull/12 for details
arch=('i686' 'pentium4' 'x86_64')
arch=('x86_64')
url="https://mixxx.org/"
license=('GPL2')
groups=('pro-audio')
Expand Down Expand Up @@ -46,22 +47,22 @@ depends=(
'wavpack'
)
makedepends=('git' 'lv2' 'qt6-tools' 'cmake' 'ninja' 'gtest' 'benchmark')
provides=('mixxx')
conflicts=('mixxx')
source=("${pkgname%-*}::git+https://github.com/mixxxdj/mixxx.git"
'mixxx.install')
provides=("$_pkgname")
conflicts=("$_pkgname")
source=("$_pkgname::git+https://github.com/mixxxdj/$_pkgname.git"
"$_pkgname.install")
sha256sums=('SKIP'
'8f2db8c423cce9685df8ce010dc1dfbf48d0961e7a453d40c495220bf3a272ec')
install='mixxx.install'
install="$_pkgname.install"

pkgver() {
cd "$srcdir/${pkgname%-*}"
cd "$srcdir/$_pkgname"
echo "r$(git log --pretty=oneline --first-parent | wc -l)"
}

prepare() {
mkdir -p "$srcdir/${pkgname%-*}/build"
cmake -S $srcdir/${pkgname%-*} -G Ninja -B $srcdir/${pkgname%-*}/build \
mkdir -p "$srcdir/$_pkgname/build"
cmake -S $srcdir/$_pkgname -G Ninja -B $srcdir/$_pkgname/build \
-DCMAKE_INSTALL_PREFIX=/usr \
-DINSTALL_USER_UDEV_RULES=OFF \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
Expand All @@ -80,16 +81,16 @@ prepare() {
}

build() {
cmake --build "$srcdir/${pkgname%-*}/build" --parallel "$(nproc)" --target mixxx
cmake --build "$srcdir/$_pkgname/build" --parallel "$(nproc)" --target $_pkgname
}

check() {
cmake --build "$srcdir/${pkgname%-*}/build" --parallel "$(nproc)" --target mixxx-test
ctest --test-dir "$srcdir/${pkgname%-*}/build" --parallel "$(nproc)" --output-on-failure
cmake --build "$srcdir/$_pkgname/build" --parallel "$(nproc)" --target $_pkgname-test
ctest --test-dir "$srcdir/$_pkgname/build" --parallel "$(nproc)" --output-on-failure
}

package() {
mkdir -p "$pkgdir/usr/lib/udev/rules.d/"
install -Dm644 "$srcdir/${pkgname%-*}/res/linux/mixxx-usb-uaccess.rules" "$pkgdir/usr/lib/udev/rules.d/99-mixxx-usb-uaccess.rules"
DESTDIR="$pkgdir" cmake --install "$srcdir/${pkgname%-*}/build"
install -Dm644 "$srcdir/$_pkgname/res/linux/$_pkgname-usb-uaccess.rules" "$pkgdir/usr/lib/udev/rules.d/99-$_pkgname-usb-uaccess.rules"
DESTDIR="$pkgdir" cmake --install "$srcdir/$_pkgname/build"
}
57 changes: 57 additions & 0 deletions mixxx-qt5-git/.SRCINFO
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
pkgbase = mixxx-git
pkgdesc = Digital DJ mixing software. Git master branch (development/alpha).
pkgver = r8881
pkgrel = 1
url = https://mixxx.org/
install = mixxx.install
arch = i686
arch = pentium4
arch = x86_64
groups = pro-audio
license = GPL2
makedepends = git
makedepends = lv2
makedepends = qt6-tools
makedepends = cmake
makedepends = ninja
makedepends = gtest
makedepends = benchmark
depends = chromaprint
depends = flac
depends = hidapi
depends = lame
depends = libebur128
depends = libid3tag
depends = libmad
depends = libmodplug
depends = libmp4v2
depends = libshout
depends = libsndfile
depends = libtheora
depends = libusb
depends = lilv
depends = microsoft-gsl
depends = opusfile
depends = portaudio
depends = portmidi
depends = protobuf
depends = qt6-declarative
depends = qt6-5compat
depends = qt6-svg
depends = qt6-translations
depends = qtkeychain-qt6
depends = rubberband
depends = soundtouch
depends = taglib
depends = ttf-opensans
depends = ttf-ubuntu-font-family
depends = upower
depends = wavpack
provides = mixxx
conflicts = mixxx
source = mixxx::git+https://github.com/mixxxdj/mixxx.git
source = mixxx.install
sha256sums = SKIP
sha256sums = 8f2db8c423cce9685df8ce010dc1dfbf48d0961e7a453d40c495220bf3a272ec

pkgname = mixxx-git
1 change: 1 addition & 0 deletions mixxx-qt5-git/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
mixxx
98 changes: 98 additions & 0 deletions mixxx-qt5-git/PKGBUILD
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
# Maintainer: Holzhaus <[email protected]>
# Contributor: Gimmeapill <[email protected]>
# Contributor: regreddit <[email protected]>

_pkgname=mixxx
pkgname=$_pkgname-qt5-git
pkgver=r8881
pkgrel=1
pkgdesc="Digital DJ mixing software. Git master branch built with Qt 5 (development/alpha)."
# TODO: Re-add aarch64 once we figure out a performant way to build it
# See https://github.com/fwcd/arch-repo/pull/12 for details
arch=('i686' 'pentium4' 'x86_64')
url="https://mixxx.org/"
license=('GPL2')
groups=('pro-audio')
depends=(
'chromaprint'
'flac'
'hidapi'
'lame'
'libebur128'
'libid3tag'
'libmad'
'libmodplug'
'libmp4v2'
'libshout'
'libsndfile'
'libtheora'
'libusb'
'lilv'
'microsoft-gsl'
'opusfile'
'portaudio'
'portmidi'
'protobuf'
'qt5-declarative'
'qt5-quickcontrols'
'qt5-quickcontrols2'
'qt5-svg'
'qt5-translations'
'qt5-x11extras'
'qtkeychain'
'rubberband'
'soundtouch'
'taglib'
'ttf-opensans'
'ttf-ubuntu-font-family'
'upower'
'wavpack'
)
makedepends=('git' 'lv2' 'qt5-tools' 'cmake' 'ninja' 'gtest' 'benchmark')
provides=("$_pkgname")
conflicts=("$_pkgname")
source=("$_pkgname::git+https://github.com/mixxxdj/$_pkgname.git"
"$_pkgname.install")
sha256sums=('SKIP'
'8f2db8c423cce9685df8ce010dc1dfbf48d0961e7a453d40c495220bf3a272ec')
install="$_pkgname.install"

pkgver() {
cd "$srcdir/$_pkgname"
echo "r$(git log --pretty=oneline --first-parent | wc -l)"
}

prepare() {
mkdir -p "$srcdir/$_pkgname/build"
cmake -S $srcdir/$_pkgname -G Ninja -B $srcdir/$_pkgname/build \
-DCMAKE_INSTALL_PREFIX=/usr \
-DINSTALL_USER_UDEV_RULES=OFF \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DOPTIMIZE=native \
-DQT6=OFF \
-DBULK=ON \
-DFAAD=ON \
-DLILV=ON \
-DFFMPEG=ON \
-DKEYFINDER=ON \
-DMAD=ON \
-DMODPLUG=ON \
-DOPUS=ON \
-DQTKEYCHAIN=ON \
-DWAVPACK=ON
}

build() {
cmake --build "$srcdir/$_pkgname/build" --parallel "$(nproc)" --target $_pkgname
}

check() {
cmake --build "$srcdir/$_pkgname/build" --parallel "$(nproc)" --target $_pkgname-test
ctest --test-dir "$srcdir/$_pkgname/build" --parallel "$(nproc)" --output-on-failure
}

package() {
mkdir -p "$pkgdir/usr/lib/udev/rules.d/"
install -Dm644 "$srcdir/$_pkgname/res/linux/$_pkgname-usb-uaccess.rules" "$pkgdir/usr/lib/udev/rules.d/99-$_pkgname-usb-uaccess.rules"
DESTDIR="$pkgdir" cmake --install "$srcdir/$_pkgname/build"
}
17 changes: 17 additions & 0 deletions mixxx-qt5-git/mixxx.install
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
post_install() {
printf "Reloading udev rules...\n"
# udev is not a Mixxx dependency, so let's check if udevadm is available.
if command -v udevadm >/dev/null
then
udevadm trigger
udevadm control --reload-rules
fi
}

post_upgrade() {
post_install
}

post_remove() {
post_install
}
1 change: 1 addition & 0 deletions packages.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,6 @@ nqptp-git
shairport-sync-git
swift-bin
mixxx-git
mixxx-qt5-git
paru
yay