diff --git a/builder/build-rpm b/builder/build-rpm index e5cdfe8..39724d5 100755 --- a/builder/build-rpm +++ b/builder/build-rpm @@ -8,9 +8,9 @@ cd "$(dirname "$0")/.." docker build -t kasmvnc_rpmbuilder_${os}:${os_codename} -f \ builder/dockerfile.${os}_${os_codename}.rpm.build . -rpm_output_dir=$(cd .. && echo $PWD) +source_dir=$(echo $PWD) L_UID=$(id -u) #Ubuntu already has UID env var, but this should work on all Linix systems L_GID=$(id -g) -docker run --rm -v "$rpm_output_dir":/src --user $L_UID:$L_GID \ +docker run --rm -v "$source_dir":/src --user $L_UID:$L_GID \ kasmvnc_rpmbuilder_${os}:${os_codename} /bin/bash -c \ - '/src/*/builder/build-rpm-inside-docker' + '/src/builder/build-rpm-inside-docker' diff --git a/builder/build-rpm-inside-docker b/builder/build-rpm-inside-docker new file mode 100755 index 0000000..1e856c6 --- /dev/null +++ b/builder/build-rpm-inside-docker @@ -0,0 +1,29 @@ +#!/bin/bash + +set -e + +prepare_build_env() { + rpmdev-setuptree + copy_spec_and_tar_with_binaries +} + +copy_spec_and_tar_with_binaries() { + cp /src/centos/kasmvncserver.spec ~/rpmbuild/SPECS/ + cp /src/builder/build/kasmvnc.${os}_${os_codename}.tar.gz \ + ~/rpmbuild/SOURCES/ +} + +copy_rpm_to_build_dir() { + cd /src/builder && \ + mkdir -p "$os_dir" && cp ~/rpmbuild/RPMS/*/*.rpm ${os_dir} +} + +cd "$(dirname "$0")/.." + +os=$(lsb_release -is | tr '[:upper:]' '[:lower:]') +os_codename=$(lsb_release -cs | tr '[:upper:]' '[:lower:]') +os_dir="build/${os}_${os_codename}" + +prepare_build_env +rpmbuild -ba ~/rpmbuild/SPECS/kasmvncserver.spec +copy_rpm_to_build_dir diff --git a/builder/dockerfile.centos_core.rpm.build b/builder/dockerfile.centos_core.rpm.build index cff6ae9..925eee4 100644 --- a/builder/dockerfile.centos_core.rpm.build +++ b/builder/dockerfile.centos_core.rpm.build @@ -1,10 +1,12 @@ FROM centos:centos7 RUN yum install -y rpm* gpg* rng-tools +RUN yum install -y tree vim less +RUN yum install -y redhat-lsb-core -RUN useradd -m docker && echo "docker:docker" | chpasswd +COPY centos/*.spec /tmp +RUN yum-builddep -y /tmp/*.spec -COPY . /src -RUN chown -R docker:docker /src +RUN useradd -m docker && echo "docker:docker" | chpasswd USER docker diff --git a/builder/test-rpm b/builder/test-rpm index 0249658..b352962 100755 --- a/builder/test-rpm +++ b/builder/test-rpm @@ -7,7 +7,7 @@ cd "$(dirname "$0")" echo kasmvnctester_${os}:$os_codename docker build --build-arg \ - KASMVNC_PACKAGE_DIR="build" \ + KASMVNC_PACKAGE_DIR="build/${os}_${os_codename}" \ -t kasmvnctester_${os}:$os_codename \ -f dockerfile.${os}_${os_codename}.rpm.test . echo docker run -it -p 443:8443 --rm -e "VNC_USER=foo" -e "VNC_PW=bar" \ diff --git a/builder/test-rpm-barebones b/builder/test-rpm-barebones index 485cd7e..3b528e5 100755 --- a/builder/test-rpm-barebones +++ b/builder/test-rpm-barebones @@ -6,7 +6,7 @@ cd "$(dirname "$0")" os="centos" os_codename="core" -docker build --build-arg KASMVNC_PACKAGE_DIR="build" \ +docker build --build-arg KASMVNC_PACKAGE_DIR="build/${os}_${os_codename}" \ -t kasmvnctester_barebones_${os}:$os_codename \ -f dockerfile.${os}_${os_codename}.barebones.rpm.test . echo diff --git a/centos/kasmvncserver.spec b/centos/kasmvncserver.spec index ca41e6e..6135904 100644 --- a/centos/kasmvncserver.spec +++ b/centos/kasmvncserver.spec @@ -6,6 +6,7 @@ Summary: Lorem ipsum License: GPLv2+ URL: https://github.com/kasmtech/KasmVNC +BuildRequires: rsync Requires: xorg-x11-xauth, xorg-x11-xkb-utils, xkeyboard-config, xorg-x11-server-utils, openssl %description @@ -16,7 +17,7 @@ Lorem ipsum %install rm -rf $RPM_BUILD_ROOT -DESTDIR=$RPM_BUILD_ROOT make -f /src/KasmVNC/debian/Makefile.to_fakebuild_tar_package install +DESTDIR=$RPM_BUILD_ROOT make -f /src/debian/Makefile.to_fakebuild_tar_package install %files /usr/bin/*