Compare commits

..

2 Commits

Author SHA1 Message Date
oxypomme 5c2f7a4c5f feat(piper): added build 2024-06-14 13:31:47 +02:00
oxypomme eca441355d feat(libratbag): added build 2024-06-14 13:31:42 +02:00
7 changed files with 150 additions and 2 deletions

View File

@ -5,7 +5,7 @@ ROOT="/build/${APP}-color"
IMAGE="${CONTAINER}:latest"
TARGET="~/bin"
docker build -t "${IMAGE}" "${APP}"
docker build -t "${IMAGE}" "${APP}" || exit 1
docker run -d --name "${CONTAINER}" "${IMAGE}"
docker cp "${CONTAINER}:${ROOT}/build/i3lock" "${TARGET}/i3lock"

View File

@ -0,0 +1,19 @@
FROM ubuntu:20.04
WORKDIR /build/libratbag
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update \
&& apt-get install -y build-essential git systemd check python3-dev python3-pip libudev-dev libevdev-dev libsystemd-dev libpcre3-dev swig libjson-glib-dev libunistring-dev
RUN pip3 install meson ninja evdev
RUN git clone --depth=1 https://github.com/libratbag/libratbag.git /build/libratbag
RUN meson setup builddir --prefix=/usr \
&& meson configure builddir -Ddocumentation=false
RUN ninja -C builddir
RUN ninja -C builddir install
CMD ["sleep", "infinity"]

25
ubuntu20-04/libratbag/build.sh Executable file
View File

@ -0,0 +1,25 @@
APP=libratbag
CONTAINER="build-${APP}"
ROOT="/build/${APP}"
IMAGE="${CONTAINER}:latest"
TARGET="~/bin"
docker build -t "${IMAGE}" "${APP}" || exit 1
docker run -d --name "${CONTAINER}" "${IMAGE}"
sudo docker cp "${CONTAINER}:/usr/share/libratbag" "/usr/share/libratbag"
sudo docker cp "${CONTAINER}:${ROOT}/builddir/ratbagd" "/usr/sbin/ratbagd"
sudo docker cp "${CONTAINER}:${ROOT}/builddir/ratbagctl" "/usr/bin/ratbagctl"
sudo docker cp "${CONTAINER}:${ROOT}/ratbagd/ratbagd.8" "/usr/share/man/man8"
sudo docker cp "${CONTAINER}:${ROOT}/builddir/ratbagd.service" "/lib/systemd/system"
sudo docker cp "${CONTAINER}:${ROOT}/builddir/org.freedesktop.ratbag1.service" "/usr/share/dbus-1/system-services"
sudo docker cp "${CONTAINER}:${ROOT}/builddir/org.freedesktop.ratbag1.conf" "/usr/share/dbus-1/system.d"
sudo docker cp "${CONTAINER}:${ROOT}/builddir/ratbagctl.1" "/usr/share/man/man1"
docker remove -f "${CONTAINER}"
sudo systemctl daemon-reload
sudo systemctl reload dbus.service
sudo ln -s /lib/systemd/system/ratbagd.service /etc/systemd/system/ratbagd.service
sudo systemctl enable ratbagd.service

View File

@ -0,0 +1,18 @@
FROM ubuntu:20.04
WORKDIR /build/piper
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update \
&& apt-get install -y build-essential git python3-dev python3-pip python-gi-dev gettext libcairo2-dev gtk-update-icon-cache desktop-file-utils
RUN pip3 install meson ninja lxml evdev pycairo
RUN git clone --depth=1 https://github.com/libratbag/piper.git /build/piper
RUN meson setup builddir --prefix=/usr
RUN ninja -C builddir
RUN ninja -C builddir install
CMD ["sleep", "infinity"]

27
ubuntu20-04/piper/build.sh Executable file
View File

@ -0,0 +1,27 @@
APP=piper
CONTAINER="build-${APP}"
ROOT="/build/${APP}"
IMAGE="${CONTAINER}:latest"
TARGET="~/bin"
docker build -t "${IMAGE}" "${APP}" || exit 1
docker run -d --name "${CONTAINER}" "${IMAGE}"
sudo mkdir -p /usr/lib/python3/dist-packages/piper
sudo docker cp "${CONTAINER}:/build/piper/piper" "/usr/lib/python3/dist-packages"
sudo docker cp "${CONTAINER}:${ROOT}/builddir/data/org.freedesktop.Piper.desktop" "/usr/share/applications"
sudo docker cp "${CONTAINER}:${ROOT}/builddir/data/org.freedesktop.Piper.appdata.xml" "/usr/share/metainfo"
sudo mkdir -p /usr/share/piper
sudo docker cp "${CONTAINER}:${ROOT}/builddir/data/piper.gresource" "/usr/share/piper"
sudo docker cp "${CONTAINER}:${ROOT}/builddir/data/piper.1" "/usr/share/man/man1"
sudo docker cp "${CONTAINER}:/build/piper/data/org.freedesktop.Piper.svg" "/usr/share/icons/hicolor/scalable/apps"
sudo docker cp "${CONTAINER}:/build/piper/data/org.freedesktop.Piper-symbolic.svg" "/usr/share/icons/hicolor/symbolic/apps"
sudo docker cp "${CONTAINER}:/build/piper/builddir/piper" "/usr/bin"
sudo docker cp "${CONTAINER}:${ROOT}/builddir/meson-private/python-3.8-installed.json" "/tmp"
docker remove -f "${CONTAINER}"
sudo gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
sudo update-desktop-database -q /usr/share/applications
sudo python3 "${APP}/pycompile.py" /tmp/python-3.8-installed.json 0

View File

@ -0,0 +1,59 @@
# SPDX-License-Identifier: Apache-2.0
# Copyright 2016 The Meson development team
# ignore all lints for this file, since it is run by python2 as well
# type: ignore
# pylint: disable=deprecated-module
import json, os, subprocess, sys
from compileall import compile_file
custom_env = {
"MESON_INSTALL_DESTDIR_PY_PURELIB": '/usr/lib/python3/dist-packages/piper',
"MESON_INSTALL_PY_PURELIB": '/usr/lib/python3/dist-packages/piper',
}
quiet = int(os.environ.get('MESON_INSTALL_QUIET', 0))
def compileall(files):
for f in files:
# f is prefixed by {py_xxxxlib}, both variants are 12 chars
# the key is the middle 10 chars of the prefix
key = f[1:11].upper()
f = f[12:]
ddir = None
fullpath = absf = custom_env['MESON_INSTALL_DESTDIR_'+key] + f
f = custom_env['MESON_INSTALL_'+key] + f
if absf != f:
ddir = os.path.dirname(f)
if os.path.isdir(absf):
for root, _, files in os.walk(absf):
if ddir is not None:
ddir = root.replace(absf, f, 1)
for dirf in files:
if dirf.endswith('.py'):
fullpath = os.path.join(root, dirf)
compile_file(fullpath, ddir, force=True, quiet=quiet)
else:
compile_file(fullpath, ddir, force=True, quiet=quiet)
def run(manifest):
data_file = os.path.join(os.path.dirname(__file__), manifest)
with open(data_file, 'rb') as f:
dat = json.load(f)
compileall(dat)
if __name__ == '__main__':
manifest = sys.argv[1]
run(manifest)
if len(sys.argv) > 2:
optlevel = int(sys.argv[2])
# python2 only needs one or the other
if optlevel == 1 or (sys.version_info >= (3,) and optlevel > 0):
subprocess.check_call([sys.executable, '-O'] + sys.argv[:2])
if optlevel == 2:
subprocess.check_call([sys.executable, '-OO'] + sys.argv[:2])

View File

@ -5,7 +5,7 @@ ROOT="/build/${APP}"
IMAGE="${CONTAINER}:latest"
TARGET="~/bin"
docker build -t "${IMAGE}" "${APP}"
docker build -t "${IMAGE}" "${APP}" || exit 1
docker run -d --name "${CONTAINER}" "${IMAGE}"
docker cp "${CONTAINER}:${ROOT}/bin/ugrep" "${TARGET}/ugrep"