From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6579174846558633984 X-Received: by 2002:aa7:d998:: with SMTP id u24-v6mr760906eds.5.1531833515368; Tue, 17 Jul 2018 06:18:35 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a50:ed0c:: with SMTP id j12-v6ls58912eds.4.gmail; Tue, 17 Jul 2018 06:18:35 -0700 (PDT) X-Google-Smtp-Source: AAOMgpd6q2+uQm24nnYNh6dCPN41xm8uj8Sz6QSdiNRmWUcc1fy7PWCvRoX/Ay3aunebPjxeJs0B X-Received: by 2002:a50:fb85:: with SMTP id e5-v6mr766241edq.1.1531833514945; Tue, 17 Jul 2018 06:18:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1531833514; cv=none; d=google.com; s=arc-20160816; b=amEcc6xLr8YQPsQYY4AC3/YvsF7fS4VoOKv6SkH330gdGj5g/9MhN6q1XL2K0CMVub X0QsfxRXOYDqQlDFB9XQ6+X8Wa2uZC79ZcM2i6eYOvVNHKnLWFECX60c4hqle/nm090E EG3ZW3lguQJzoJgKIjCzJU5FbAjsmP2+/t/cwPbwv8Zq41CzXlnexz8Irc9Ok+EYlncH XB1f8hA7F/TRt3aLaZGler236VPqlAAZycklWYhZc/GafEWO1hzVSWQLlSNC61bXCLBV hoka9kA7OC8Q+NHLO9EwodfkK0IlXkBf3TlXfjDI1+6wSddQWg3Ro7RE60upT8sxgOsG 8j8g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=references:in-reply-to:message-id:date:subject:cc:to:from :arc-authentication-results; bh=Jx5O7NU4GEFXzx6ECfONe1Jmi26jbGAhjbJvmUh6YgE=; b=sjKkBtlcZVFudmoOet+kSj5lmUzd3j/2TMqGB5kmrcSCpkXN7Mtb6nxF8MIpyMCaAo JgloapQdNNc35CQxo/xxW8Xh64R+MV15JeN77YbYLT3psERnmq9qBgfxcynmpLXpd0cH bbXtSLtNTE+/DHreCHwxZCwIRmhF6KJRelR1MBZAYG1kuWpmKm1L4nuWCLcliERHpZFw Fzp0Sd3PI88/c6dIcWqqWnF45o9pdx1VeKONmSWAoyCnws/Ew1HcnXryldBiQUWCeQua AODQ3fzXx+BBuGv3GS3JaVgWTm3gYAaC3D8SVko4CbhPqMcR2c02HxJVF9wc7uksH0zM 9PBA== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: best guess record for domain of asmirnov@ilbers.de designates 85.214.62.211 as permitted sender) smtp.mailfrom=asmirnov@ilbers.de Return-Path: Received: from aqmola.ilbers.de (aqmola.ilbers.de. [85.214.62.211]) by gmr-mx.google.com with ESMTPS id x7-v6si36233edh.5.2018.07.17.06.18.34 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 17 Jul 2018 06:18:34 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of asmirnov@ilbers.de designates 85.214.62.211 as permitted sender) client-ip=85.214.62.211; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: best guess record for domain of asmirnov@ilbers.de designates 85.214.62.211 as permitted sender) smtp.mailfrom=asmirnov@ilbers.de Received: from zbook.fosdem.net ([188.227.110.165]) (authenticated bits=0) by aqmola.ilbers.de (8.14.4/8.14.4/Debian-4+deb7u1) with ESMTP id w6HDIIY4024651 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 17 Jul 2018 15:18:25 +0200 From: Alexander Smirnov To: isar-users@googlegroups.com Cc: Alexander Smirnov Subject: [PATCH v3 2/7] buildchroot: Split generic part Date: Tue, 17 Jul 2018 16:18:06 +0300 Message-Id: <20180717131811.14239-3-asmirnov@ilbers.de> X-Mailer: git-send-email 2.9.5 In-Reply-To: <20180717131811.14239-1-asmirnov@ilbers.de> References: <20180717131811.14239-1-asmirnov@ilbers.de> X-TUID: TlwJ6+IT7Rt2 Split generic part of the buildchroot creation process. Also intriduce buildchroot recipe for target. Signed-off-by: Alexander Smirnov --- meta/classes/dpkg-base.bbclass | 2 +- meta/classes/dpkg-raw.bbclass | 1 + meta/classes/dpkg.bbclass | 4 +- meta/classes/wic-img.bbclass | 3 +- meta/conf/isar-bitbake.conf | 2 +- .../buildchroot/buildchroot-target.bb | 54 ++++++++++++++ meta/recipes-devtools/buildchroot/buildchroot.bb | 83 ---------------------- meta/recipes-devtools/buildchroot/buildchroot.inc | 37 ++++++++++ 8 files changed, 99 insertions(+), 87 deletions(-) create mode 100644 meta/recipes-devtools/buildchroot/buildchroot-target.bb delete mode 100644 meta/recipes-devtools/buildchroot/buildchroot.bb create mode 100644 meta/recipes-devtools/buildchroot/buildchroot.inc diff --git a/meta/classes/dpkg-base.bbclass b/meta/classes/dpkg-base.bbclass index 75b45a7..3234234 100644 --- a/meta/classes/dpkg-base.bbclass +++ b/meta/classes/dpkg-base.bbclass @@ -15,7 +15,7 @@ inherit patch addtask patch after do_adjust_git before do_build # Add dependency from buildchroot creation -do_build[depends] = "buildchroot:do_build" +do_build[depends] = "buildchroot-target:do_build" # Add dependency between Isar recipes DEPENDS ?= "" diff --git a/meta/classes/dpkg-raw.bbclass b/meta/classes/dpkg-raw.bbclass index 28233ac..2f23eb7 100644 --- a/meta/classes/dpkg-raw.bbclass +++ b/meta/classes/dpkg-raw.bbclass @@ -7,6 +7,7 @@ DEBIAN_DEPENDS ?= "" MAINTAINER ?= "FIXME Unknown maintainer" D = "${WORKDIR}/image/" +BUILDCHROOT_DIR = "${BUILDCHROOT_TARGET_DIR}" # Populate folder that will be picked up as package do_install() { diff --git a/meta/classes/dpkg.bbclass b/meta/classes/dpkg.bbclass index c8d4ac5..563b63c 100644 --- a/meta/classes/dpkg.bbclass +++ b/meta/classes/dpkg.bbclass @@ -1,8 +1,10 @@ # This software is a part of ISAR. -# Copyright (C) 2015-2016 ilbers GmbH +# Copyright (C) 2015-2018 ilbers GmbH inherit dpkg-base +BUILDCHROOT_DIR = "${BUILDCHROOT_TARGET_DIR}" + # Build package from sources using build script dpkg_runbuild() { E="${@ bb.utils.export_proxies(d)}" diff --git a/meta/classes/wic-img.bbclass b/meta/classes/wic-img.bbclass index 07c2a9e..b56df7b 100644 --- a/meta/classes/wic-img.bbclass +++ b/meta/classes/wic-img.bbclass @@ -13,6 +13,7 @@ STAGING_DIR ?= "${TMPDIR}" IMAGE_BASENAME ?= "${PN}-${DISTRO}" FAKEROOTCMD ?= "${ISARROOT}/scripts/wic_fakeroot" RECIPE_SYSROOT_NATIVE ?= "/" +BUILDCHROOT_DIR = "${BUILDCHROOT_TARGET_DIR}" do_wic_image[stamp-extra-info] = "${DISTRO}-${MACHINE}" @@ -73,6 +74,6 @@ do_wic_image() { cp -f `ls -t -1 ${BUILDCHROOT_DIR}/tmp/${WKS_FILE}*.direct | head -1` ${WIC_IMAGE_FILE} } -do_wic_image[depends] = "buildchroot:do_build" +do_wic_image[depends] = "buildchroot-target:do_build" addtask wic_image before do_build after do_copy_boot_files diff --git a/meta/conf/isar-bitbake.conf b/meta/conf/isar-bitbake.conf index ead7798..aaba96e 100644 --- a/meta/conf/isar-bitbake.conf +++ b/meta/conf/isar-bitbake.conf @@ -21,7 +21,7 @@ WORKDIR = "${TMPDIR}/work/${DISTRO}-${DISTRO_ARCH}/${PF}" DL_DIR = "${TOPDIR}/downloads" SSTATE_DIR ?= "${TMPDIR}/sstate-cache" -BUILDCHROOT_DIR = "${TMPDIR}/work/${DISTRO}-${DISTRO_ARCH}/buildchroot/rootfs" +BUILDCHROOT_TARGET_DIR = "${TMPDIR}/work/${DISTRO}-${DISTRO_ARCH}/buildchroot-target/rootfs" CACHE = "${TMPDIR}/cache" OVERRIDES_append = ":${DISTRO}:${DISTRO_ARCH}" diff --git a/meta/recipes-devtools/buildchroot/buildchroot-target.bb b/meta/recipes-devtools/buildchroot/buildchroot-target.bb new file mode 100644 index 0000000..66b526a --- /dev/null +++ b/meta/recipes-devtools/buildchroot/buildchroot-target.bb @@ -0,0 +1,54 @@ +# Root filesystem for packages building +# +# This software is a part of ISAR. +# Copyright (C) 2015-2018 ilbers GmbH + +DESCRIPTION = "Isar development filesystem for target" + +include buildchroot.inc + +BUILDCHROOT_PREINSTALL ?= "gcc \ + make \ + build-essential \ + debhelper \ + autotools-dev \ + dpkg \ + locales \ + docbook-to-man \ + apt \ + automake \ + devscripts \ + equivs" + +BUILDCHROOT_PREINSTALL_WIC = " \ + parted \ + gdisk \ + util-linux \ + dosfstools \ + mtools \ + e2fsprogs \ + python3" + +BUILDCHROOT_PREINSTALL_WIC_append_amd64 = " \ + syslinux \ + syslinux-common \ + grub-efi-amd64-bin" + +BUILDCHROOT_PREINSTALL_WIC_append_armhf = " \ + grub-efi-arm-bin" + +BUILDCHROOT_PREINSTALL_WIC_append_arm64 = " \ + grub-efi-arm64-bin" + +BUILDCHROOT_PREINSTALL_WIC_append_i386 = " \ + syslinux \ + syslinux-common \ + grub-efi-ia32-bin" + +python () { + if d.getVar('IMAGE_TYPE', True) == 'wic-img': + d.appendVar('BUILDCHROOT_PREINSTALL', + d.getVar('BUILDCHROOT_PREINSTALL_WIC', True)) +} + +do_build[depends] = "isar-apt:do_cache_config isar-bootstrap-target:do_bootstrap" diff --git a/meta/recipes-devtools/buildchroot/buildchroot.bb b/meta/recipes-devtools/buildchroot/buildchroot.bb deleted file mode 100644 index 7ad24f1..0000000 --- a/meta/recipes-devtools/buildchroot/buildchroot.bb +++ /dev/null @@ -1,83 +0,0 @@ -# Root filesystem for packages building -# -# This software is a part of ISAR. -# Copyright (C) 2015-2016 ilbers GmbH - -DESCRIPTION = "Isar development filesystem" - -LICENSE = "gpl-2.0" -LIC_FILES_CHKSUM = "file://${LAYERDIR_isar}/licenses/COPYING.GPLv2;md5=751419260aa954499f7abaabaa882bbe" - -FILESPATH_prepend := "${THISDIR}/files:" -SRC_URI = "file://configscript.sh \ - file://build.sh" -PV = "1.0" - -inherit isar-bootstrap-helper - -BUILDCHROOT_PREINSTALL ?= "gcc \ - make \ - build-essential \ - debhelper \ - autotools-dev \ - dpkg \ - locales \ - docbook-to-man \ - apt \ - automake \ - devscripts \ - equivs" - -BUILDCHROOT_PREINSTALL_WIC = " \ - parted \ - gdisk \ - util-linux \ - dosfstools \ - mtools \ - e2fsprogs \ - python3" - -BUILDCHROOT_PREINSTALL_WIC_append_amd64 = " \ - syslinux \ - syslinux-common \ - grub-efi-amd64-bin" - -BUILDCHROOT_PREINSTALL_WIC_append_armhf = " \ - grub-efi-arm-bin" - -BUILDCHROOT_PREINSTALL_WIC_append_arm64 = " \ - grub-efi-arm64-bin" - -BUILDCHROOT_PREINSTALL_WIC_append_i386 = " \ - syslinux \ - syslinux-common \ - grub-efi-ia32-bin" - -python () { - if d.getVar('IMAGE_TYPE', True) == 'wic-img': - d.appendVar('BUILDCHROOT_PREINSTALL', - d.getVar('BUILDCHROOT_PREINSTALL_WIC', True)) -} - -WORKDIR = "${TMPDIR}/work/${DISTRO}-${DISTRO_ARCH}/${PN}" - -do_build[stamp-extra-info] = "${DISTRO}-${DISTRO_ARCH}" -do_build[root_cleandirs] = "${BUILDCHROOT_DIR} \ - ${BUILDCHROOT_DIR}/isar-apt \ - ${BUILDCHROOT_DIR}/downloads \ - ${BUILDCHROOT_DIR}/home/builder" -do_build[depends] = "isar-apt:do_cache_config isar-bootstrap-target:do_bootstrap" - -do_build() { - setup_root_file_system "${BUILDCHROOT_DIR}" ${BUILDCHROOT_PREINSTALL} - - # Install package builder script - sudo chmod -R a+rw "${BUILDCHROOT_DIR}/home/builder" - sudo install -m 755 ${WORKDIR}/build.sh ${BUILDCHROOT_DIR} - - # Configure root filesystem - sudo install -m 755 ${WORKDIR}/configscript.sh ${BUILDCHROOT_DIR} - sudo chroot ${BUILDCHROOT_DIR} /configscript.sh - - sudo mount --bind ${DL_DIR} ${BUILDCHROOT_DIR}/downloads -} diff --git a/meta/recipes-devtools/buildchroot/buildchroot.inc b/meta/recipes-devtools/buildchroot/buildchroot.inc new file mode 100644 index 0000000..43e3cd6 --- /dev/null +++ b/meta/recipes-devtools/buildchroot/buildchroot.inc @@ -0,0 +1,37 @@ +# Common part for build chroot filesystem. +# +# This software is a part of ISAR. +# Copyright (C) 2015-2018 ilbers GmbH + +LICENSE = "gpl-2.0" +LIC_FILES_CHKSUM = "file://${LAYERDIR_isar}/licenses/COPYING.GPLv2;md5=751419260aa954499f7abaabaa882bbe" + +FILESPATH_prepend := "${THISDIR}/files:" +SRC_URI = "file://configscript.sh \ + file://build.sh" +PV = "1.0" + +inherit isar-bootstrap-helper + +WORKDIR = "${TMPDIR}/work/${DISTRO}-${DISTRO_ARCH}/${PN}" +BUILDCHROOT_DIR = "${WORKDIR}/rootfs" + +do_build[stamp-extra-info] = "${DISTRO}-${DISTRO_ARCH}" +do_build[root_cleandirs] = "${BUILDCHROOT_DIR} \ + ${BUILDCHROOT_DIR}/isar-apt \ + ${BUILDCHROOT_DIR}/downloads \ + ${BUILDCHROOT_DIR}/home/builder" + +do_build() { + setup_root_file_system ${PARAMS} ${BUILDCHROOT_DIR} ${BUILDCHROOT_PREINSTALL} + + # Install package builder script + sudo chmod -R a+rw "${BUILDCHROOT_DIR}/home/builder" + sudo install -m 755 ${WORKDIR}/build.sh ${BUILDCHROOT_DIR} + + # Configure root filesystem + sudo install -m 755 ${WORKDIR}/configscript.sh ${BUILDCHROOT_DIR} + sudo chroot ${BUILDCHROOT_DIR} /configscript.sh + + sudo mount --bind ${DL_DIR} ${BUILDCHROOT_DIR}/downloads +} -- 2.1.4