public inbox for isar-users@googlegroups.com
 help / color / mirror / Atom feed
* [PATCH v2 0/6] "apt-get source" fetch/unpack support
@ 2019-01-30  6:54 Maxim Yu. Osipov
  2019-01-30  6:54 ` [PATCH v2 1/6] conf: add deb-src entries to all our distro configs Maxim Yu. Osipov
                   ` (6 more replies)
  0 siblings, 7 replies; 10+ messages in thread
From: Maxim Yu. Osipov @ 2019-01-30  6:54 UTC (permalink / raw)
  To: isar-users

Hello,

FYI:

This is rebased version of  '"apt-get source" fetch/unpack support' series
with droppped pacth #6 from the original series.


Regards,
Maxim.

Henning Schild (6):
  conf: add deb-src entries to all our distro configs
  dpkg-base: introduce an "apt-get source" fetch/unpack step
  meta: move debianization code into a class and into dpkg-base
  debianize: allow changlog version change
  meta-isar/recipes-app: add upstream hello rebuild example
  local.conf: enable rebuilding "hello" for all distros

 .../conf/distro/debian-stretch-backports.list      |  1 +
 meta-isar/conf/distro/raspbian-jessie.list         |  1 +
 meta-isar/conf/local.conf.sample                   |  2 +-
 meta-isar/recipes-app/hello/hello.inc              | 19 +++++
 meta-isar/recipes-app/hello/hello_2.10.bb          |  8 +++
 meta-isar/recipes-app/hello/hello_2.9.bb           |  8 +++
 meta/classes/debianize.bbclass                     | 82 +++++++++++++++++++++
 meta/classes/dpkg-base.bbclass                     | 20 ++++++
 meta/classes/dpkg-raw.bbclass                      | 83 ----------------------
 meta/conf/distro/debian-buster.list                |  3 +
 meta/conf/distro/debian-jessie.list                |  3 +
 meta/conf/distro/debian-stretch.list               |  3 +
 12 files changed, 149 insertions(+), 84 deletions(-)
 create mode 100644 meta-isar/recipes-app/hello/hello.inc
 create mode 100644 meta-isar/recipes-app/hello/hello_2.10.bb
 create mode 100644 meta-isar/recipes-app/hello/hello_2.9.bb
 create mode 100644 meta/classes/debianize.bbclass

-- 
2.11.0


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH v2 1/6] conf: add deb-src entries to all our distro configs
  2019-01-30  6:54 [PATCH v2 0/6] "apt-get source" fetch/unpack support Maxim Yu. Osipov
@ 2019-01-30  6:54 ` Maxim Yu. Osipov
  2019-01-30  6:54 ` [PATCH v2 2/6] dpkg-base: introduce an "apt-get source" fetch/unpack step Maxim Yu. Osipov
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 10+ messages in thread
From: Maxim Yu. Osipov @ 2019-01-30  6:54 UTC (permalink / raw)
  To: isar-users

From: Henning Schild <henning.schild@siemens.com>

That will allow us to use "apt-get source" to fetch debian sources from
the mirrors we also get the binary packages from.

Signed-off-by: Henning Schild <henning.schild@siemens.com>
---
 meta-isar/conf/distro/debian-stretch-backports.list | 1 +
 meta-isar/conf/distro/raspbian-jessie.list          | 1 +
 meta/conf/distro/debian-buster.list                 | 3 +++
 meta/conf/distro/debian-jessie.list                 | 3 +++
 meta/conf/distro/debian-stretch.list                | 3 +++
 5 files changed, 11 insertions(+)

diff --git a/meta-isar/conf/distro/debian-stretch-backports.list b/meta-isar/conf/distro/debian-stretch-backports.list
index 727a835..f606be5 100644
--- a/meta-isar/conf/distro/debian-stretch-backports.list
+++ b/meta-isar/conf/distro/debian-stretch-backports.list
@@ -1 +1,2 @@
 deb	http://ftp.de.debian.org/debian stretch-backports main
+deb-src	http://ftp.de.debian.org/debian stretch-backports main
diff --git a/meta-isar/conf/distro/raspbian-jessie.list b/meta-isar/conf/distro/raspbian-jessie.list
index 792f9c6..0a5af41 100644
--- a/meta-isar/conf/distro/raspbian-jessie.list
+++ b/meta-isar/conf/distro/raspbian-jessie.list
@@ -1 +1,2 @@
 deb	http://archive.raspbian.org/raspbian	jessie	main contrib non-free firmware
+deb-src	http://archive.raspbian.org/raspbian	jessie	main contrib non-free firmware
diff --git a/meta/conf/distro/debian-buster.list b/meta/conf/distro/debian-buster.list
index 18311d8..1e38f1a 100644
--- a/meta/conf/distro/debian-buster.list
+++ b/meta/conf/distro/debian-buster.list
@@ -1,3 +1,6 @@
 deb	http://ftp.de.debian.org/debian buster	main contrib non-free
+deb-src	http://ftp.de.debian.org/debian buster	main contrib non-free
 deb	http://ftp.de.debian.org/debian buster-updates	main contrib non-free
+deb-src	http://ftp.de.debian.org/debian buster-updates	main contrib non-free
 deb	http://security.debian.org	buster/updates	main contrib non-free
+deb-src	http://security.debian.org	buster/updates	main contrib non-free
diff --git a/meta/conf/distro/debian-jessie.list b/meta/conf/distro/debian-jessie.list
index be46a57..5143f4d 100644
--- a/meta/conf/distro/debian-jessie.list
+++ b/meta/conf/distro/debian-jessie.list
@@ -1,3 +1,6 @@
 deb	http://ftp.de.debian.org/debian	jessie	main contrib non-free
+deb-src	http://ftp.de.debian.org/debian	jessie	main contrib non-free
 deb	http://ftp.de.debian.org/debian jessie-updates	main contrib non-free
+deb-src	http://ftp.de.debian.org/debian jessie-updates	main contrib non-free
 deb	http://security.debian.org	jessie/updates	main contrib non-free
+deb-src	http://security.debian.org	jessie/updates	main contrib non-free
diff --git a/meta/conf/distro/debian-stretch.list b/meta/conf/distro/debian-stretch.list
index bfa5cf9..d4f3de0 100644
--- a/meta/conf/distro/debian-stretch.list
+++ b/meta/conf/distro/debian-stretch.list
@@ -1,3 +1,6 @@
 deb	http://ftp.de.debian.org/debian stretch	main contrib non-free
+deb-src	http://ftp.de.debian.org/debian stretch	main contrib non-free
 deb	http://ftp.de.debian.org/debian stretch-updates	main contrib non-free
+deb-src	http://ftp.de.debian.org/debian stretch-updates	main contrib non-free
 deb	http://security.debian.org	stretch/updates	main contrib non-free
+deb-src	http://security.debian.org	stretch/updates	main contrib non-free
-- 
2.11.0


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH v2 2/6] dpkg-base: introduce an "apt-get source" fetch/unpack step
  2019-01-30  6:54 [PATCH v2 0/6] "apt-get source" fetch/unpack support Maxim Yu. Osipov
  2019-01-30  6:54 ` [PATCH v2 1/6] conf: add deb-src entries to all our distro configs Maxim Yu. Osipov
@ 2019-01-30  6:54 ` Maxim Yu. Osipov
  2019-01-30  7:38   ` Jan Kiszka
  2019-01-30  6:54 ` [PATCH v2 3/6] meta: move debianization code into a class and into dpkg-base Maxim Yu. Osipov
                   ` (4 subsequent siblings)
  6 siblings, 1 reply; 10+ messages in thread
From: Maxim Yu. Osipov @ 2019-01-30  6:54 UTC (permalink / raw)
  To: isar-users

From: Henning Schild <henning.schild@siemens.com>

This creates a new task to fetch/unpack debian sources from debian
source mirrors. This is done using "apt-get source" and the new variable
APT_SRC to control the arguments.

An example where a original debian package gets rebuild will follow in a
later commit.

Signed-off-by: Cedric Hombourger <Cedric_Hombourger@mentor.com>
Signed-off-by: Henning Schild <henning.schild@siemens.com>
---
 meta/classes/dpkg-base.bbclass | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/meta/classes/dpkg-base.bbclass b/meta/classes/dpkg-base.bbclass
index f1b127c..2f324f9 100644
--- a/meta/classes/dpkg-base.bbclass
+++ b/meta/classes/dpkg-base.bbclass
@@ -20,6 +20,25 @@ do_adjust_git[stamp-extra-info] = "${DISTRO}-${DISTRO_ARCH}"
 inherit patch
 addtask patch after do_adjust_git before do_build
 
+SRC_APT ?= ""
+
+do_apt_fetch[depends] = "buildchroot-target:do_build"
+
+do_apt_fetch() {
+	if [ -z "${@d.getVar("SRC_APT", True).strip()}" ]; then
+		exit
+	fi
+	dpkg_do_mounts
+	E="${@ bb.utils.export_proxies(d)}"
+	sudo -E chroot --userspec=$( id -u ):$( id -g ) ${BUILDCHROOT_DIR} \
+		sh -c 'cd ${PP} && apt-get -y source ${SRC_APT}'
+	dpkg_undo_mounts
+}
+
+addtask apt_fetch after do_unpack before do_patch
+do_apt_fetch[lockfiles] += "${REPO_ISAR_DIR}/isar.lock"
+do_apt_fetch[stamp-extra-info] = "${DISTRO}-${DISTRO_ARCH}"
+
 def get_package_srcdir(d):
     s = d.getVar("S", True)
     workdir = d.getVar("WORKDIR", True)
-- 
2.11.0


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH v2 3/6] meta: move debianization code into a class and into dpkg-base
  2019-01-30  6:54 [PATCH v2 0/6] "apt-get source" fetch/unpack support Maxim Yu. Osipov
  2019-01-30  6:54 ` [PATCH v2 1/6] conf: add deb-src entries to all our distro configs Maxim Yu. Osipov
  2019-01-30  6:54 ` [PATCH v2 2/6] dpkg-base: introduce an "apt-get source" fetch/unpack step Maxim Yu. Osipov
@ 2019-01-30  6:54 ` Maxim Yu. Osipov
  2019-01-30  6:54 ` [PATCH v2 4/6] debianize: allow changlog version change Maxim Yu. Osipov
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 10+ messages in thread
From: Maxim Yu. Osipov @ 2019-01-30  6:54 UTC (permalink / raw)
  To: isar-users

From: Henning Schild <henning.schild@siemens.com>

This is pure restructuring. Move the code into its own class and include
that in dpkg-base, it was available only in dpkg-raw before.

Signed-off-by: Henning Schild <henning.schild@siemens.com>
---
 meta/classes/debianize.bbclass | 80 ++++++++++++++++++++++++++++++++++++++++
 meta/classes/dpkg-base.bbclass |  1 +
 meta/classes/dpkg-raw.bbclass  | 83 ------------------------------------------
 3 files changed, 81 insertions(+), 83 deletions(-)
 create mode 100644 meta/classes/debianize.bbclass

diff --git a/meta/classes/debianize.bbclass b/meta/classes/debianize.bbclass
new file mode 100644
index 0000000..c771e9c
--- /dev/null
+++ b/meta/classes/debianize.bbclass
@@ -0,0 +1,80 @@
+# This software is a part of ISAR.
+# Copyright (C) 2017-2019 Siemens AG
+
+deb_add_changelog() {
+	date=$( LANG=C date -R )
+	cat <<EOF > ${S}/debian/changelog
+${PN} (${PV}) UNRELEASED; urgency=low
+
+  * generated by Isar
+
+ -- ${MAINTAINER}  ${date}
+EOF
+	if [ -f ${WORKDIR}/changelog ]; then
+		echo >> ${S}/debian/changelog
+		cat ${WORKDIR}/changelog >> ${S}/debian/changelog
+	fi
+}
+
+deb_create_compat() {
+	echo 9 > ${S}/debian/compat
+}
+
+deb_create_control() {
+	compat=$( cat ${S}/debian/compat )
+	cat << EOF > ${S}/debian/control
+Source: ${PN}
+Section: misc
+Priority: optional
+Standards-Version: 3.9.6
+Maintainer: ${MAINTAINER}
+Build-Depends: debhelper (>= ${compat})
+
+Package: ${PN}
+Architecture: any
+Depends: ${DEBIAN_DEPENDS}
+Description: ${DESCRIPTION}
+EOF
+}
+
+deb_create_rules() {
+	cat << EOF > ${S}/debian/rules
+#!/usr/bin/make -f
+%:
+	dh \$@
+
+EOF
+	chmod +x ${S}/debian/rules
+}
+
+deb_debianize() {
+	if [ -f ${WORKDIR}/compat ]; then
+		install -v -m 644 ${WORKDIR}/compat ${S}/debian/compat
+	else
+		deb_create_compat
+	fi
+	if [ -f ${WORKDIR}/control ]; then
+		install -v -m 644 ${WORKDIR}/control ${S}/debian/control
+	else
+		deb_create_control
+	fi
+	if [ -f ${WORKDIR}/rules ]; then
+		install -v -m 755 ${WORKDIR}/rules ${S}/debian/rules
+	else
+		deb_create_rules
+	fi
+	deb_add_changelog
+
+	for t in pre post
+	do
+		for a in inst rm
+		do
+			if [ -f ${WORKDIR}/${t}${a} ]; then
+				install -v -m 755 ${WORKDIR}/${t}${a} \
+					${S}/debian/${t}${a}
+			fi
+		done
+	done
+}
+
+
diff --git a/meta/classes/dpkg-base.bbclass b/meta/classes/dpkg-base.bbclass
index 2f324f9..175dc80 100644
--- a/meta/classes/dpkg-base.bbclass
+++ b/meta/classes/dpkg-base.bbclass
@@ -4,6 +4,7 @@
 # SPDX-License-Identifier: MIT
 
 inherit buildchroot
+inherit debianize
 
 DEPENDS ?= ""
 
diff --git a/meta/classes/dpkg-raw.bbclass b/meta/classes/dpkg-raw.bbclass
index a9143e9..0434313 100644
--- a/meta/classes/dpkg-raw.bbclass
+++ b/meta/classes/dpkg-raw.bbclass
@@ -17,89 +17,6 @@ do_install[cleandirs] = "${D}"
 do_install[stamp-extra-info] = "${DISTRO}-${DISTRO_ARCH}"
 addtask install after do_unpack before do_prepare_build
 
-deb_add_changelog() {
-	date=$( LANG=C date -R )
-	cat <<EOF > ${D}/debian/changelog
-${PN} (${PV}) UNRELEASED; urgency=low
-
-  * generated by Isar
-
- -- ${MAINTAINER}  ${date}
-EOF
-	if [ -f ${WORKDIR}/changelog ]; then
-		echo >> ${D}/debian/changelog
-		cat ${WORKDIR}/changelog >> ${D}/debian/changelog
-	fi
-}
-
-deb_create_compat() {
-	echo 9 > ${D}/debian/compat
-}
-
-deb_create_control() {
-	compat=$( cat ${D}/debian/compat )
-	cat << EOF > ${D}/debian/control
-Source: ${PN}
-Section: misc
-Priority: optional
-Standards-Version: 3.9.6
-Maintainer: ${MAINTAINER}
-Build-Depends: debhelper (>= ${compat})
-
-Package: ${PN}
-Architecture: any
-Depends: ${DEBIAN_DEPENDS}
-Description: ${DESCRIPTION}
-EOF
-}
-
-DH_FIXPERM_EXCLUSIONS = \
-    "${@' '.join(['-X ' + x for x in \
-                  (d.getVar('PRESERVE_PERMS', False) or '').split()])}"
-
-deb_create_rules() {
-	cat << EOF > ${S}/debian/rules
-#!/usr/bin/make -f
-
-override_dh_fixperms:
-	dh_fixperms ${DH_FIXPERM_EXCLUSIONS}
-
-%:
-	dh \$@
-EOF
-	chmod +x ${S}/debian/rules
-}
-
-deb_debianize() {
-	if [ -f ${WORKDIR}/compat ]; then
-		install -v -m 644 ${WORKDIR}/compat ${D}/debian/compat
-	else
-		deb_create_compat
-	fi
-	if [ -f ${WORKDIR}/control ]; then
-		install -v -m 644 ${WORKDIR}/control ${D}/debian/control
-	else
-		deb_create_control
-	fi
-	if [ -f ${WORKDIR}/rules ]; then
-		install -v -m 755 ${WORKDIR}/rules ${D}/debian/rules
-	else
-		deb_create_rules
-	fi
-	deb_add_changelog
-
-	for t in pre post
-	do
-		for a in inst rm
-		do
-			if [ -f ${WORKDIR}/${t}${a} ]; then
-				install -v -m 755 ${WORKDIR}/${t}${a} \
-					${D}/debian/${t}${a}
-			fi
-		done
-	done
-}
-
 do_prepare_build[cleandirs] += "${D}/debian"
 do_prepare_build() {
 	cd ${D}
-- 
2.11.0


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH v2 4/6] debianize: allow changlog version change
  2019-01-30  6:54 [PATCH v2 0/6] "apt-get source" fetch/unpack support Maxim Yu. Osipov
                   ` (2 preceding siblings ...)
  2019-01-30  6:54 ` [PATCH v2 3/6] meta: move debianization code into a class and into dpkg-base Maxim Yu. Osipov
@ 2019-01-30  6:54 ` Maxim Yu. Osipov
  2019-01-30  6:54 ` [PATCH v2 5/6] meta-isar/recipes-app: add upstream hello rebuild example Maxim Yu. Osipov
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 10+ messages in thread
From: Maxim Yu. Osipov @ 2019-01-30  6:54 UTC (permalink / raw)
  To: isar-users

From: Henning Schild <henning.schild@siemens.com>

Introduce a variable to control the version string we put into a
generated changelog entry.

Signed-off-by: Henning Schild <henning.schild@siemens.com>
---
 meta/classes/debianize.bbclass | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/meta/classes/debianize.bbclass b/meta/classes/debianize.bbclass
index c771e9c..64994e4 100644
--- a/meta/classes/debianize.bbclass
+++ b/meta/classes/debianize.bbclass
@@ -1,10 +1,12 @@
 # This software is a part of ISAR.
 # Copyright (C) 2017-2019 Siemens AG
 
+CHANGELOG_V ?= "${PV}"
+
 deb_add_changelog() {
 	date=$( LANG=C date -R )
 	cat <<EOF > ${S}/debian/changelog
-${PN} (${PV}) UNRELEASED; urgency=low
+${PN} (${CHANGELOG_V}) UNRELEASED; urgency=low
 
   * generated by Isar
 
-- 
2.11.0


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH v2 5/6] meta-isar/recipes-app: add upstream hello rebuild example
  2019-01-30  6:54 [PATCH v2 0/6] "apt-get source" fetch/unpack support Maxim Yu. Osipov
                   ` (3 preceding siblings ...)
  2019-01-30  6:54 ` [PATCH v2 4/6] debianize: allow changlog version change Maxim Yu. Osipov
@ 2019-01-30  6:54 ` Maxim Yu. Osipov
  2019-01-30  6:54 ` [PATCH v2 6/6] local.conf: enable rebuilding "hello" for all distros Maxim Yu. Osipov
  2019-01-30 14:43 ` [PATCH v2 0/6] "apt-get source" fetch/unpack support Henning Schild
  6 siblings, 0 replies; 10+ messages in thread
From: Maxim Yu. Osipov @ 2019-01-30  6:54 UTC (permalink / raw)
  To: isar-users

From: Henning Schild <henning.schild@siemens.com>

This commit introduces a rebuild example of an upstream package. It also
shows how to deal with multiple versions of such a package, depending on
your distro. And in fact we actually have to patch it to rebuild it,
because its build-deps are wrong.

Signed-off-by: Henning Schild <henning.schild@siemens.com>
---
 meta-isar/recipes-app/hello/hello.inc     | 19 +++++++++++++++++++
 meta-isar/recipes-app/hello/hello_2.10.bb |  8 ++++++++
 meta-isar/recipes-app/hello/hello_2.9.bb  |  8 ++++++++
 3 files changed, 35 insertions(+)
 create mode 100644 meta-isar/recipes-app/hello/hello.inc
 create mode 100644 meta-isar/recipes-app/hello/hello_2.10.bb
 create mode 100644 meta-isar/recipes-app/hello/hello_2.9.bb

diff --git a/meta-isar/recipes-app/hello/hello.inc b/meta-isar/recipes-app/hello/hello.inc
new file mode 100644
index 0000000..49e2eb9
--- /dev/null
+++ b/meta-isar/recipes-app/hello/hello.inc
@@ -0,0 +1,19 @@
+# This software is a part of ISAR.
+
+inherit dpkg
+
+# this will fetch and unpack the sources from upstream debian
+SRC_APT = "${PN}"
+
+MAINTAINER = "Your name here <you@domain.com>"
+CHANGELOG_V = "${PV}-99+isar"
+
+do_prepare_build() {
+	deb_add_changelog
+	# this seems to be a build dep missing in the upstream control file
+	if ! grep texinfo ${S}/debian/control; then
+		sed -i -e 's/Build-Depends:/Build-Depends: texinfo,/g' ${S}/debian/control
+	fi
+}
+
+
diff --git a/meta-isar/recipes-app/hello/hello_2.10.bb b/meta-isar/recipes-app/hello/hello_2.10.bb
new file mode 100644
index 0000000..1598565
--- /dev/null
+++ b/meta-isar/recipes-app/hello/hello_2.10.bb
@@ -0,0 +1,8 @@
+# Example recipe to rebuild a debian source package
+#
+# This software is a part of ISAR.
+
+require hello.inc
+
+DEFAULT_PREFERENCE_debian-buster = "1"
+DEFAULT_PREFERENCE_debian-stretch = "1"
diff --git a/meta-isar/recipes-app/hello/hello_2.9.bb b/meta-isar/recipes-app/hello/hello_2.9.bb
new file mode 100644
index 0000000..b5d5b2e
--- /dev/null
+++ b/meta-isar/recipes-app/hello/hello_2.9.bb
@@ -0,0 +1,8 @@
+# Example recipe to rebuild a debian source package
+#
+# This software is a part of ISAR.
+
+require hello.inc
+
+DEFAULT_PREFERENCE_debian-jessie = "1"
+DEFAULT_PREFERENCE_raspbian-jessie = "1"
-- 
2.11.0


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH v2 6/6] local.conf: enable rebuilding "hello" for all distros
  2019-01-30  6:54 [PATCH v2 0/6] "apt-get source" fetch/unpack support Maxim Yu. Osipov
                   ` (4 preceding siblings ...)
  2019-01-30  6:54 ` [PATCH v2 5/6] meta-isar/recipes-app: add upstream hello rebuild example Maxim Yu. Osipov
@ 2019-01-30  6:54 ` Maxim Yu. Osipov
  2019-01-30 14:43 ` [PATCH v2 0/6] "apt-get source" fetch/unpack support Henning Schild
  6 siblings, 0 replies; 10+ messages in thread
From: Maxim Yu. Osipov @ 2019-01-30  6:54 UTC (permalink / raw)
  To: isar-users

From: Henning Schild <henning.schild@siemens.com>

This commit includes the rebuild example in our default builds and
therefore into CI.

Signed-off-by: Henning Schild <henning.schild@siemens.com>
---
 meta-isar/conf/local.conf.sample | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/meta-isar/conf/local.conf.sample b/meta-isar/conf/local.conf.sample
index a671b20..a53e965 100644
--- a/meta-isar/conf/local.conf.sample
+++ b/meta-isar/conf/local.conf.sample
@@ -161,7 +161,7 @@ CONF_VERSION = "1"
 
 #
 # The default list of extra packages to be installed.
-IMAGE_INSTALL = "hello-isar example-raw example-module-${KERNEL_NAME} enable-fsck"
+IMAGE_INSTALL = "hello-isar hello example-raw example-module-${KERNEL_NAME} enable-fsck"
 
 #
 # Enable cross-compilation support
-- 
2.11.0


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 2/6] dpkg-base: introduce an "apt-get source" fetch/unpack step
  2019-01-30  6:54 ` [PATCH v2 2/6] dpkg-base: introduce an "apt-get source" fetch/unpack step Maxim Yu. Osipov
@ 2019-01-30  7:38   ` Jan Kiszka
  2019-01-30 14:41     ` Henning Schild
  0 siblings, 1 reply; 10+ messages in thread
From: Jan Kiszka @ 2019-01-30  7:38 UTC (permalink / raw)
  To: Maxim Yu. Osipov, isar-users

On 30.01.19 07:54, Maxim Yu. Osipov wrote:
> From: Henning Schild <henning.schild@siemens.com>
> 
> This creates a new task to fetch/unpack debian sources from debian
> source mirrors. This is done using "apt-get source" and the new variable
> APT_SRC to control the arguments.
> 
> An example where a original debian package gets rebuild will follow in a
> later commit.
> 
> Signed-off-by: Cedric Hombourger <Cedric_Hombourger@mentor.com>

This SOB is still wrong.

> Signed-off-by: Henning Schild <henning.schild@siemens.com>
> ---
>   meta/classes/dpkg-base.bbclass | 19 +++++++++++++++++++
>   1 file changed, 19 insertions(+)
> 
> diff --git a/meta/classes/dpkg-base.bbclass b/meta/classes/dpkg-base.bbclass
> index f1b127c..2f324f9 100644
> --- a/meta/classes/dpkg-base.bbclass
> +++ b/meta/classes/dpkg-base.bbclass
> @@ -20,6 +20,25 @@ do_adjust_git[stamp-extra-info] = "${DISTRO}-${DISTRO_ARCH}"
>   inherit patch
>   addtask patch after do_adjust_git before do_build
>   
> +SRC_APT ?= ""
> +
> +do_apt_fetch[depends] = "buildchroot-target:do_build"
> +
> +do_apt_fetch() {
> +	if [ -z "${@d.getVar("SRC_APT", True).strip()}" ]; then
> +		exit
> +	fi
> +	dpkg_do_mounts
> +	E="${@ bb.utils.export_proxies(d)}"
> +	sudo -E chroot --userspec=$( id -u ):$( id -g ) ${BUILDCHROOT_DIR} \
> +		sh -c 'cd ${PP} && apt-get -y source ${SRC_APT}'
> +	dpkg_undo_mounts
> +}
> +
> +addtask apt_fetch after do_unpack before do_patch
> +do_apt_fetch[lockfiles] += "${REPO_ISAR_DIR}/isar.lock"
> +do_apt_fetch[stamp-extra-info] = "${DISTRO}-${DISTRO_ARCH}"
> +
>   def get_package_srcdir(d):
>       s = d.getVar("S", True)
>       workdir = d.getVar("WORKDIR", True)
> 

...and I'm still wondering if we cannot extend bitbake (without patching it) 
instead.

Jan

-- 
Siemens AG, Corporate Technology, CT RDA IOT SES-DE
Corporate Competence Center Embedded Linux

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 2/6] dpkg-base: introduce an "apt-get source" fetch/unpack step
  2019-01-30  7:38   ` Jan Kiszka
@ 2019-01-30 14:41     ` Henning Schild
  0 siblings, 0 replies; 10+ messages in thread
From: Henning Schild @ 2019-01-30 14:41 UTC (permalink / raw)
  To: [ext] Jan Kiszka; +Cc: Maxim Yu. Osipov, isar-users

On Wed, 30 Jan 2019 08:38:34 +0100
"[ext] Jan Kiszka" <jan.kiszka@siemens.com> wrote:

> On 30.01.19 07:54, Maxim Yu. Osipov wrote:
> > From: Henning Schild <henning.schild@siemens.com>
> > 
> > This creates a new task to fetch/unpack debian sources from debian
> > source mirrors. This is done using "apt-get source" and the new
> > variable APT_SRC to control the arguments.
> > 
> > An example where a original debian package gets rebuild will follow
> > in a later commit.
> > 
> > Signed-off-by: Cedric Hombourger <Cedric_Hombourger@mentor.com>  
> 
> This SOB is still wrong.
> 
> > Signed-off-by: Henning Schild <henning.schild@siemens.com>
> > ---
> >   meta/classes/dpkg-base.bbclass | 19 +++++++++++++++++++
> >   1 file changed, 19 insertions(+)
> > 
> > diff --git a/meta/classes/dpkg-base.bbclass
> > b/meta/classes/dpkg-base.bbclass index f1b127c..2f324f9 100644
> > --- a/meta/classes/dpkg-base.bbclass
> > +++ b/meta/classes/dpkg-base.bbclass
> > @@ -20,6 +20,25 @@ do_adjust_git[stamp-extra-info] =
> > "${DISTRO}-${DISTRO_ARCH}" inherit patch
> >   addtask patch after do_adjust_git before do_build
> >   
> > +SRC_APT ?= ""
> > +
> > +do_apt_fetch[depends] = "buildchroot-target:do_build"
> > +
> > +do_apt_fetch() {
> > +	if [ -z "${@d.getVar("SRC_APT", True).strip()}" ]; then
> > +		exit
> > +	fi
> > +	dpkg_do_mounts
> > +	E="${@ bb.utils.export_proxies(d)}"
> > +	sudo -E chroot --userspec=$( id -u ):$( id -g )
> > ${BUILDCHROOT_DIR} \
> > +		sh -c 'cd ${PP} && apt-get -y source ${SRC_APT}'
> > +	dpkg_undo_mounts
> > +}
> > +
> > +addtask apt_fetch after do_unpack before do_patch
> > +do_apt_fetch[lockfiles] += "${REPO_ISAR_DIR}/isar.lock"
> > +do_apt_fetch[stamp-extra-info] = "${DISTRO}-${DISTRO_ARCH}"
> > +
> >   def get_package_srcdir(d):
> >       s = d.getVar("S", True)
> >       workdir = d.getVar("WORKDIR", True)
> >   
> 
> ...and I'm still wondering if we cannot extend bitbake (without
> patching it) instead.

I have one more trick in mind to at least get the interface right and
keep the implementation that relies on another task instead of do_fetch.

In fact the debian fetcher is an unpacker as well and has funny
buildchroot dependencies ... not a "simple" bb fetcher.

Henning

> Jan
> 


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 0/6] "apt-get source" fetch/unpack support
  2019-01-30  6:54 [PATCH v2 0/6] "apt-get source" fetch/unpack support Maxim Yu. Osipov
                   ` (5 preceding siblings ...)
  2019-01-30  6:54 ` [PATCH v2 6/6] local.conf: enable rebuilding "hello" for all distros Maxim Yu. Osipov
@ 2019-01-30 14:43 ` Henning Schild
  6 siblings, 0 replies; 10+ messages in thread
From: Henning Schild @ 2019-01-30 14:43 UTC (permalink / raw)
  To: Maxim Yu. Osipov; +Cc: isar-users

Hey Maxim,

thanks for the rebase. I sent updates for two patches already. And i am
looking into the SRC_URI issue one more time.
I will send the full rebased thing again once i have come to a
decision/solution.

Henning

On Wed, 30 Jan 2019 06:54:46 +0000
"Maxim Yu. Osipov" <mosipov@ilbers.de> wrote:

> Hello,
> 
> FYI:
> 
> This is rebased version of  '"apt-get source" fetch/unpack support'
> series with droppped pacth #6 from the original series.
> 
> 
> Regards,
> Maxim.
> 
> Henning Schild (6):
>   conf: add deb-src entries to all our distro configs
>   dpkg-base: introduce an "apt-get source" fetch/unpack step
>   meta: move debianization code into a class and into dpkg-base
>   debianize: allow changlog version change
>   meta-isar/recipes-app: add upstream hello rebuild example
>   local.conf: enable rebuilding "hello" for all distros
> 
>  .../conf/distro/debian-stretch-backports.list      |  1 +
>  meta-isar/conf/distro/raspbian-jessie.list         |  1 +
>  meta-isar/conf/local.conf.sample                   |  2 +-
>  meta-isar/recipes-app/hello/hello.inc              | 19 +++++
>  meta-isar/recipes-app/hello/hello_2.10.bb          |  8 +++
>  meta-isar/recipes-app/hello/hello_2.9.bb           |  8 +++
>  meta/classes/debianize.bbclass                     | 82
> +++++++++++++++++++++
> meta/classes/dpkg-base.bbclass                     | 20 ++++++
> meta/classes/dpkg-raw.bbclass                      | 83
> ----------------------
> meta/conf/distro/debian-buster.list                |  3 +
> meta/conf/distro/debian-jessie.list                |  3 +
> meta/conf/distro/debian-stretch.list               |  3 + 12 files
> changed, 149 insertions(+), 84 deletions(-) create mode 100644
> meta-isar/recipes-app/hello/hello.inc create mode 100644
> meta-isar/recipes-app/hello/hello_2.10.bb create mode 100644
> meta-isar/recipes-app/hello/hello_2.9.bb create mode 100644
> meta/classes/debianize.bbclass
> 


^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2019-01-30 14:43 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-01-30  6:54 [PATCH v2 0/6] "apt-get source" fetch/unpack support Maxim Yu. Osipov
2019-01-30  6:54 ` [PATCH v2 1/6] conf: add deb-src entries to all our distro configs Maxim Yu. Osipov
2019-01-30  6:54 ` [PATCH v2 2/6] dpkg-base: introduce an "apt-get source" fetch/unpack step Maxim Yu. Osipov
2019-01-30  7:38   ` Jan Kiszka
2019-01-30 14:41     ` Henning Schild
2019-01-30  6:54 ` [PATCH v2 3/6] meta: move debianization code into a class and into dpkg-base Maxim Yu. Osipov
2019-01-30  6:54 ` [PATCH v2 4/6] debianize: allow changlog version change Maxim Yu. Osipov
2019-01-30  6:54 ` [PATCH v2 5/6] meta-isar/recipes-app: add upstream hello rebuild example Maxim Yu. Osipov
2019-01-30  6:54 ` [PATCH v2 6/6] local.conf: enable rebuilding "hello" for all distros Maxim Yu. Osipov
2019-01-30 14:43 ` [PATCH v2 0/6] "apt-get source" fetch/unpack support Henning Schild

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox