Browse Source

switch to new gnu/linux installer zip

master
Alexandros Theodotou 5 months ago
parent
commit
7218f61eba
Signed by: alex
GPG Key ID: 022EAE42313D70F3
  1. 11
      .builds/archlinux.yml
  2. 182
      .builds/debian.yml
  3. 4
      .builds/ubuntu2004.yml
  4. 44
      .travis.yml
  5. 11
      scripts/common.sh.in
  6. 108
      scripts/zip-gnu-linux-packages.sh

11
.builds/archlinux.yml

@ -34,24 +34,15 @@ tasks: @@ -34,24 +34,15 @@ tasks:
- install-texlive: |
sudo sed -i '1iServer = http://mirror.lty.me/archlinux/$repo/os/$arch' /etc/pacman.d/mirrorlist
sudo pacman -S --noconfirm --needed texlive-most
- make-archlinux: |
- create-and-deploy-manuals: |
# make sure pkg suffix is .pkg.tar.zst
echo "PKGEXT='.pkg.tar.zst'" | sudo tee -a /etc/makepkg.conf
sudo pip3 install meson sphinx-intl furo sphinx-copybutton sphinxcontrib-svg2pdfconverter
export PATH=$PATH:/home/build/.local/bin
export MESON_PATH=meson
zrythm-builds/scripts/make-pkg.sh archlinux arch-pkg
zrythm-builds/scripts/make-pkg.sh archlinux
- deploy-archlinux: |
zrythm-builds/scripts/push-pkg.sh archlinux
- create-and-deploy-manuals: |
zrythm-builds/scripts/create-manuals-zip.sh archlinux /tmp/artifacts/user-manual
zrythm-builds/scripts/push-pkg.sh user-manual
- cleanup_space: |
sudo pacman -R --noconfirm texlive-langjapanese texlive-most
- gen-gnu-linux-installer-zips: |
timeout 4600 zrythm-builds/scripts/zip-gnu-linux-packages.sh
- deploy-gnu-linux-installer-zips: |
zrythm-builds/scripts/deploy-gnu-linux-installer.sh
- update-sendowl: |
timeout 7400 zrythm-builds/scripts/send-to-sendowl.sh

182
.builds/debian.yml

@ -1,182 +0,0 @@ @@ -1,182 +0,0 @@
#
# Copyright (C) 2020 Alexandros Theodotou <alex at zrythm dot org>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published
# by the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
image: debian/stable
packages:
- awscli
- binutils
- cmake
- flex
- libfl-dev
- libcurl4-gnutls-dev
- libgtk-3-dev
- libjack-dev
#- liblilv-dev
- libsndfile1-dev
- meson
- debhelper
- dpkg-dev
- devscripts
- build-essential
- ninja-build
- gettext
- guile-2.2-dev
- help2man
- python3-sphinx
- libjson-glib-dev
- ladspa-sdk
- libboost-dev
- libfftw3-dev
- libasound2-dev
- libavcodec-dev
- libavutil-dev
- libavformat-dev
- libchromaprint-dev
- libgtksourceview-3.0-dev
- libgraphene-1.0-dev
- libgraphviz-dev
#- libsuil-dev
#- lv2-dev
- libsamplerate0-dev
- libyaml-dev
- libpcre2-dev
- libxml2-utils
- libxxhash-dev
- python3
- librubberband-dev
- rubberband-cli
- libzstd-dev
- xdg-utils
- rsync
- desktop-file-utils
- libsdl2-dev
- lv2-dev
- liblilv-dev
- libjpeg-dev
- librsvg2-dev
- libtiff-dev
- patchelf
- portaudio19-dev
- sassc
- librtaudio-dev
- tar
- unzip
- zip
- vamp-plugin-sdk
- wget
- vim
sources:
- https://git.sr.ht/~alextee/zrythm
- https://git.sr.ht/~alextee/zrythm-installer
- https://github.com/mesonbuild/meson
- https://gitlab.com/lv2/lv2
- https://gitlab.com/drobilla/serd
- https://gitlab.com/lv2/lilv
secrets:
- 063cb70d-6da6-492a-b530-04edc07651ba
- 10b48de1-2cfb-4112-b215-080444177c46
- 7c85cca9-3e6f-4c7c-ba42-b44ca7379585
tasks:
- prepare: |
mkdir deps
# needed for debian rules
sudo ln -s bash /bin/sh.bash
sudo mv /bin/sh.bash /bin/sh
- install-wayland: |
cd deps
git clone https://gitlab.freedesktop.org/wayland/wayland
pushd wayland
git checkout 1.21.0
/home/build/meson/meson.py build -Dprefix=/usr -Ddocumentation=false -Ddtd_validation=false -Dtests=false
ninja -C build
sudo ninja -C build install
- install-wayland-protocols: |
cd deps
git clone https://github.com/wayland-project/wayland-protocols
pushd wayland-protocols
git checkout 1.26
/home/build/meson/meson.py build -Dprefix=/usr
ninja -C build
sudo ninja -C build install
- install-latest-rust: |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
sudo ln -s /home/build/.cargo/bin/cargo /usr/bin/cargo
sudo ln -s /home/build/.cargo/bin/rustc /usr/bin/rustc
- install-glib: |
cd deps
git clone https://gitlab.gnome.org/GNOME/glib
pushd glib
/home/build/meson/meson.py build -Dprefix=/usr
ninja -C build
sudo ninja -C build install
- install-json-glib: |
cd deps
git clone https://gitlab.gnome.org/GNOME/json-glib
pushd json-glib
/home/build/meson/meson.py build -Dprefix=/usr -Dintrospection=disabled -Dgtk_doc=disabled -Dtests=false
ninja -C build
sudo ninja -C build install
- install-cairo: |
cd deps
git clone https://github.com/freedesktop/cairo
pushd cairo
/home/build/meson/meson.py build -Dprefix=/usr -Dtests=disabled
ninja -C build
sudo ninja -C build install
- install-harfbuzz: |
cd deps
git clone https://github.com/harfbuzz/harfbuzz
pushd harfbuzz
/home/build/meson/meson.py build -Dprefix=/usr -Dtests=disabled -Dintrospection=disabled -Ddocs=disabled
ninja -C build
sudo ninja -C build install
- install-pango: |
cd deps
git clone --depth 1 https://gitlab.gnome.org/GNOME/pango
pushd pango
/home/build/meson/meson.py build -Dprefix=/usr
ninja -C build
sudo ninja -C build install
- install-gdk-pixbuf: |
cd deps
git clone https://gitlab.gnome.org/GNOME/gdk-pixbuf
pushd gdk-pixbuf
/home/build/meson/meson.py build -Dprefix=/usr -Djpeg=enabled -Dpng=enabled -Dbuiltin_loaders=png,jpeg -Dman=false
ninja -C build
sudo ninja -C build install
- install-librsvg: |
source $HOME/.cargo/env
cd deps
wget https://download.gnome.org/sources/librsvg/2.52/librsvg-2.52.4.tar.xz
tar xf librsvg-2.52.4.tar.xz
cd librsvg-2.52.4
./configure --prefix=/usr --disable-gtk-doc --disable-vala --disable-introspection
make
make install DESTDIR=/tmp/librsvg
sudo cp -RT /tmp/librsvg/usr/ /usr/
- install-gtk: |
cd deps
wget https://download.gnome.org/sources/gtk/4.7/gtk-4.7.2.tar.xz
tar xf gtk-4.7.2.tar.xz
pushd gtk-4.7.2
/home/build/meson/meson.py build -Dprefix=/usr -Ddemos=false -Dbuild-examples=false -Dbuild-tests=false -Dmedia-gstreamer=disabled -Dintrospection=disabled
ninja -C build
sudo ninja -C build install
- make: |
zrythm-builds/scripts/make-pkg.sh debian11
- deploy: |
zrythm-builds/scripts/push-pkg.sh debian11

4
.builds/ubuntu2004.yml

@ -190,7 +190,3 @@ tasks: @@ -190,7 +190,3 @@ tasks:
zrythm-builds/scripts/make-pkg.sh appimage
- deploy-appimage: |
zrythm-builds/scripts/push-pkg.sh appimage
- make: |
zrythm-builds/scripts/make-pkg.sh ubuntu2004
- deploy: |
zrythm-builds/scripts/push-pkg.sh ubuntu2004

44
.travis.yml

@ -1,44 +0,0 @@ @@ -1,44 +0,0 @@
# Copyright (C) 2020 Alexandros Theodotou <alex at zrythm dot org>
language: c
os: osx
osx_image: xcode11.5
script:
- |-
set -e
exit 0
git clone https://git.sr.ht/~alextee/mxe
git clone https://git.sr.ht/~alextee/zrythm
git clone https://git.sr.ht/~alextee/zrythm-builds
git clone https://git.sr.ht/~alextee/zrythm-installer
git clone https://github.com/KDE/breeze-icons
git clone https://github.com/mesonbuild/meson
echo "$SSH_PRIVATE_KEY" > tmp_rsa
openssl base64 -d -A < tmp_rsa > id_rsa
grep -q "BEGIN RSA PRIVATE KEY" id_rsa
chmod 600 id_rsa
zrythm-builds/scripts/create-manuals-zip.sh osx-brew-zip
zrythm-builds/scripts/make-pkg.sh osx-brew-zip
zrythm-builds/scripts/push-pkg.sh osx-brew-zip
addons:
homebrew:
packages:
- cmake
- fftw
- meson
- libsamplerate
- sdl2
- chromaprint
- lilv
- librsvg
- adwaita-icon-theme
- gtk+3
- guile
- gtksourceview4
- graphviz
- zstd
- rt-audio
- rtmidi
update: true

11
scripts/common.sh.in

@ -44,7 +44,7 @@ else @@ -44,7 +44,7 @@ else
fi
set -u
distros="archlinux debian11 debian12 fedora36 ubuntu2004 ubuntu2204 gnu-linux"
distros="gnu-linux"
linguas="en de fr it ja pt"
sendowl_bucket_name="sendowl-bucket"
sendowl_bucket_url="s3://$sendowl_bucket_name"
@ -75,15 +75,6 @@ is_tag () { @@ -75,15 +75,6 @@ is_tag () {
distro_to_pkg_type () {
distro=$1
case "$distro" in
"archlinux")
echo "ARCH"
;;
"debian"* | "ubuntu"* )
echo "DEBIAN"
;;
"fedora"*)
echo "FEDORA"
;;
"windows")
echo "WINDOWS"
;;

108
scripts/zip-gnu-linux-packages.sh

@ -1,108 +0,0 @@ @@ -1,108 +0,0 @@
#! /bin/bash
#
# Copyright (C) 2020-2022 Alexandros Theodotou <alex at zrythm dot org>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published
# by the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
distro=""
source zrythm-builds/scripts/common.sh.in
artifacts_dir="$(pwd)/zrythm-installer/artifacts"
mkdir -p $artifacts_dir
echo "configuring zrythm-installer..."
meson_path="$(pwd)/meson/meson.py"
pushd zrythm-installer
$meson_path build --reconfigure -Dmeson-path=$meson_path \
-Dzrythm-git-ver=master -Dzrythm-pkg-ver=$zrythm_pkg_ver \
-Dzrythm-pkg-semver=$zrythm_pkg_semver \
-Dbreeze-dark-path="$(pwd)/breeze-icons/icons-dark" -Ddistro=gnu-linux \
-Dbuild-trial=false -Dpackages-dir=$artifacts_dir \
--prefix=/tmp/artifacts
popd
echo "done"
wget_package_and_plugins () {
distro=$1
pkg_filename=$(get_package_filename $distro)
pkg_trial_filename=$(get_package_filename $distro "-trial")
artifacts_distro_dir="$artifacts_dir/$distro"
mkdir -p "$artifacts_distro_dir"
# get package
>&2 echo "getting package $pkg_filename for $distro..."
fetch_file \
"packages/$distro/$pkg_filename" \
"$artifacts_distro_dir/$pkg_filename" \
"$connection_type_server"
>&2 echo "done"
# get trial if tag
if is_tag ; then
>&2 echo "getting package $pkg_trial_filename for $distro..."
fetch_file \
"packages/$distro/$pkg_trial_filename" \
"$artifacts_distro_dir/$pkg_trial_filename" \
"$connection_type_server"
>&2 echo "done"
fi
}
# wait for all packages to be submitted
echo "waiting for packages to be submitted..."
while true; do
sleep 12
wait_more=0
for distro in $distros ; do
if [ "$distro" != "gnu-linux" ]; then
echo "checking if remote pkg exists for $distro..."
if ! remote_pkg_exists $distro "$connection_type_server" ; then
echo "not exists" && wait_more=1
fi
if is_tag ; then
echo "checking if remote trial_pkg exists for $distro..."
if ! remote_pkg_exists $distro "$connection_type_server" "-trial"; then
echo "not exists" && wait_more=1
fi
fi
fi
done
if [ $wait_more -eq 0 ]; then
break
fi
done
# move packages/plugins to where they are expected
echo "fetching packages..."
for distro in $distros ; do
if [ "$distro" != "gnu-linux" ]; then
echo "fetching packages and plugins for $distro..."
wget_package_and_plugins $distro
fi
done
# make zip
echo "making $gnu_linux_zip_filename..."
pushd zrythm-installer
ninja -C build install
echo "done"
if is_tag ; then
echo "making $gnu_linux_zip_trial_filename..."
$meson_path build --reconfigure -Dbuild-trial=true
ninja -C build install
echo "done"
fi
popd
Loading…
Cancel
Save