diff options
Diffstat (limited to 'build-recipe-snapcraft')
-rw-r--r-- | build-recipe-snapcraft | 192 |
1 files changed, 0 insertions, 192 deletions
diff --git a/build-recipe-snapcraft b/build-recipe-snapcraft deleted file mode 100644 index e4b5e98..0000000 --- a/build-recipe-snapcraft +++ /dev/null @@ -1,192 +0,0 @@ -################################################################# -# -# snapcraft specific functions. -# -# Author: Adrian Schroeter <adrian@suse.de> -# -################################################################ -# -# Copyright (c) 2016 SUSE Linux Products GmbH -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License version 2 or 3 as -# published by the Free Software Foundation. -# -# 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 General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program (see the file COPYING); if not, write to the -# Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA -# -################################################################ - -recipe_setup_snapcraft() { - TOPDIR=/usr/src/packages - test "$DO_INIT_TOPDIR" = false || rm -rf "$BUILD_ROOT$TOPDIR" - for i in OTHER SOURCES SNAPCRAFT_ROOT ; do - mkdir -p "$BUILD_ROOT$TOPDIR/$i" - done - chown -R "$ABUILD_UID:$ABUILD_GID" "$BUILD_ROOT$TOPDIR" - if test "$MYSRCDIR" = $BUILD_ROOT/.build-srcdir ; then - mv "$MYSRCDIR"/* $BUILD_ROOT$TOPDIR/SOURCES/ - else - cp -p "$MYSRCDIR"/* $BUILD_ROOT$TOPDIR/SOURCES/ - fi -} - -recipe_prepare_snapcraft() { - : -} - -createrepo_debian() { - local DIR=${1} - local ARCH=${2} - local DIST=${3} - - if [ -z "${DIR}" -o ! -d ${DIR} -o ${DIR} = ${DIR##${BUILD_ROOT}} ] ; then - return - fi - - pushd ${DIR} >/dev/null - - # cleanup existing repository files - rm -f Packages Packages.gz Release - rm -fr dists - - mkdir -p dists/${DIST} - # Suite is symlinked to Codename - ln -s ${DIST} dists/stable - - # create Packages and Sources files - mkdir -p dists/${DIST}/main/binary-${ARCH} - mkdir -p dists/${DIST}/main/source - cat > ${BUILD_ROOT}/.createrepo_debian.tmp.sh <<-EOF - cd /.build.binaries || exit 1 - dpkg-scanpackages -m . > dists/${DIST}/main/binary-${ARCH}/Packages - gzip -c9 < dists/${DIST}/main/binary-${ARCH}/Packages \ - > dists/${DIST}/main/binary-${ARCH}/Packages.gz - dpkg-scansources . > dists/${DIST}/main/source/Sources - gzip -c9 dists/${DIST}/main/source/Sources \ - > dists/${DIST}/main/source/Sources.gz - EOF - chroot $BUILD_ROOT su -c "sh /.createrepo_debian.tmp.sh" - root - local RESULT=$? - rm -f $BUILD_ROOT/.createrepo_debian.tmp.sh - [ "${RESULT}" != 0 ] && return - - # create Release file - pushd dists/${DIST} >/dev/null - cat > Release <<-EOF - Origin: Debian - Label: Debian - Suite: stable - Version: 7.1 - Codename: ${DIST} - Date: Sat, 15 Jun 2013 10:55:26 UTC - Description: Debian repository created by build-recipe-livebuild - Components: main - EOF - echo "SHA256:" >> Release - for file in main/binary-${ARCH}/Packages* ; do - local SUM=( $(sha256sum ${file}) ) - local SIZE=$(stat -c '%s' ${file}) - echo " ${SUM} ${SIZE} ${file}" >> Release - done - for file in main/source/Sources* ; do - local SUM=( $(sha256sum ${file}) ) - local SIZE=$(stat -c '%s' ${file}) - echo " ${SUM} ${SIZE} ${file}" >> Release - done - popd >/dev/null - - # TODO: this is missing the signature with the private key - - popd >/dev/null -} - -collect_prebuild_parts() { - - mkdir -p $BUILD_ROOT/root/.local/share/snapcraft/ - rm -f $BUILD_ROOT/root/.local/share/snapcraft/parts.yaml - for part in $BUILD_ROOT/.build.snap_parts/*; do - if [ -e "$part" ]; then - cat "$part/part.yaml" >> \ - $BUILD_ROOT/root/.local/share/snapcraft/parts.yaml - fi - done -} - -# This script expects that the $BUILD_ROOT is a Debian installation with -# snapcraft already installed! -# -# Variables: -# $BUILD_ROOT the Debian chroot -# $TOPDIR/SOURCES includes the snapcraft sources -# $TOPDIR/$SNAPCRAFT_ROOT where snapcraft will be called -# $RECIPEFILE the name of the snapcraft.yaml config file - -recipe_build_snapcraft() { - local ARCH=$(chroot $BUILD_ROOT su -c "dpkg-architecture -qDEB_BUILD_ARCH") - local DIST="OBS" - local SNAPCRAFT_ROOT="SNAPCRAFT_ROOT" - - [ -z "${ARCH}" -o -z "${DIST}" ] && cleanup_and_exit 1 - - test -d $BUILD_ROOT/.build.binaries || cleanup_and_exit 1 - if test "$DO_INIT" = true -o ! -d "$BUILD_ROOT/.build.binaries/dists" ; then - echo "creating repository metadata..." - createrepo_debian $BUILD_ROOT/.build.binaries ${ARCH} ${DIST} - # setup /etc/apt/sources.list - mkdir -p "$BUILD_ROOT/etc/apt" - echo "deb [trusted=yes] file:/.build.binaries OBS main" >> "$BUILD_ROOT/etc/apt/sources.list" - fi - - collect_prebuild_parts - - chroot $BUILD_ROOT su -c "cd $TOPDIR/SOURCES && snapcraft pull" - root \ - || cleanup_and_exit 1 - chroot $BUILD_ROOT su -c "cd $TOPDIR/SOURCES && snapcraft build" - root \ - || cleanup_and_exit 1 - chroot $BUILD_ROOT su -c "cd $TOPDIR/SOURCES && snapcraft snap" - root \ - || cleanup_and_exit 1 - - # extract build result basenames - local build_results="" - for i in $BUILD_ROOT/$TOPDIR/SOURCES/* ; do - test -f "$i" || continue - case "${i##*/}" in - *.snap) - build_results="${build_results}\n${i%%.snap}" - ;; - *) - ;; - esac - done - - # Fail the build if no build results are found - if [ -z "${build_results}" ] ; then - cleanup_and_exit 1 "No live-build result found" - fi - - # move created products (and their metadata files) to destination - local buildnum="${RELEASE:+-Build${RELEASE}}" - for prefix in $(echo -e ${build_results} | sort | uniq) ; do - for f in ${prefix}.* ; do - mv ${f} \ - $BUILD_ROOT/$TOPDIR/OTHER/${prefix##*/}${buildnum}${f#${prefix}} - BUILD_SUCCEEDED=true - done - done -} - -recipe_resultdirs_snapcraft() { - : -} - -# Local Variables: -# mode: Shell-script -# End: |