public inbox for isar-users@googlegroups.com
 help / color / mirror / Atom feed
* [PATCH 1/3] debianize: make changelog date reproducible
@ 2021-09-06  8:34 Henning Schild
  2021-09-06  8:34 ` [PATCH 2/3] debianize: prepend changelog entries Henning Schild
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Henning Schild @ 2021-09-06  8:34 UTC (permalink / raw)
  To: isar-users; +Cc: Cedric Hombourger, Henning Schild, Venkata.Pyla

Deriving the date from the filesystem and git also does not always
produce the same result.

In case there is a changelog file and our version does not yet exist
in it, make the new entry 42s later. If there was no changelog use
"1970-01-01 00:00:00 UTC".

Reported-by: <Venkata.Pyla@toshiba-tsip.com>
Signed-off-by: Henning Schild <henning.schild@siemens.com>
---
 meta/classes/debianize.bbclass | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/meta/classes/debianize.bbclass b/meta/classes/debianize.bbclass
index 44867780f7b9..e6a300700a5f 100644
--- a/meta/classes/debianize.bbclass
+++ b/meta/classes/debianize.bbclass
@@ -14,20 +14,19 @@ MAINTAINER ??= "Unknown maintainer <unknown@example.com>"
 
 deb_add_changelog() {
 	changelog_v="${CHANGELOG_V}"
+	timestamp=0
 	if [ -f ${S}/debian/changelog ]; then
 		if [ ! -f ${WORKDIR}/changelog.orig ]; then
 			cp ${S}/debian/changelog ${WORKDIR}/changelog.orig
 		fi
 		orig_version=$(dpkg-parsechangelog -l ${WORKDIR}/changelog.orig -S Version)
 		changelog_v=$(echo "${changelog_v}" | sed 's/<orig-version>/'${orig_version}'/')
+		orig_date=$(dpkg-parsechangelog -l ${WORKDIR}/changelog.orig -S Date)
+		orig_seconds=$(date --date="${orig_date}" +'%s')
+		timestamp=$(echo "${orig_seconds}+42" | bc)
 	fi
 
-	timestamp=$(find ${S}/ -type f -not -path "${S}/debian/*" -printf "%T@\n"|sort -n -r|head -n 1)
-	if [ -n "${timestamp}" ]; then
-		date=$(LANG=C date -R -d @${timestamp})
-	else
-		date=$(LANG=C date -R)
-	fi
+	date=$(LANG=C date -R -d @${timestamp})
 	cat <<EOF > ${S}/debian/changelog
 ${PN} (${changelog_v}) UNRELEASED; urgency=low
 
-- 
2.32.0


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

* [PATCH 2/3] debianize: prepend changelog entries
  2021-09-06  8:34 [PATCH 1/3] debianize: make changelog date reproducible Henning Schild
@ 2021-09-06  8:34 ` Henning Schild
  2021-09-06  8:34 ` [PATCH 3/3] isar-exclude-docs: include "native" package changelogs Henning Schild
  2021-09-07 12:55 ` [PATCH 1/3] debianize: make changelog date reproducible Anton Mikanovich
  2 siblings, 0 replies; 5+ messages in thread
From: Henning Schild @ 2021-09-06  8:34 UTC (permalink / raw)
  To: isar-users; +Cc: Cedric Hombourger, Henning Schild

Make sure to include the upstream changelog and prepend our entry.
Before that change i.e. hello would end up with a changelog containing
only our entry. After that we will get the full upstream changelog and
our prepended entry.

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

diff --git a/meta/classes/debianize.bbclass b/meta/classes/debianize.bbclass
index e6a300700a5f..386c34149b5b 100644
--- a/meta/classes/debianize.bbclass
+++ b/meta/classes/debianize.bbclass
@@ -34,6 +34,12 @@ ${PN} (${changelog_v}) UNRELEASED; urgency=low
 
  -- ${MAINTAINER}  ${date}
 EOF
+	if [ -f ${WORKDIR}/changelog.orig ]; then
+		# prepend our entry to the original changelog
+		echo >> ${S}/debian/changelog
+		cat ${WORKDIR}/changelog.orig >> ${S}/debian/changelog
+	fi
+
 	if [ -f ${WORKDIR}/changelog ]; then
 		latest_version=$(dpkg-parsechangelog -l ${WORKDIR}/changelog -S Version)
 		if [ "${latest_version}" = "${changelog_v}" ]; then
-- 
2.32.0


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

* [PATCH 3/3] isar-exclude-docs: include "native" package changelogs
  2021-09-06  8:34 [PATCH 1/3] debianize: make changelog date reproducible Henning Schild
  2021-09-06  8:34 ` [PATCH 2/3] debianize: prepend changelog entries Henning Schild
@ 2021-09-06  8:34 ` Henning Schild
  2021-09-21  7:24   ` Henning Schild
  2021-09-07 12:55 ` [PATCH 1/3] debianize: make changelog date reproducible Anton Mikanovich
  2 siblings, 1 reply; 5+ messages in thread
From: Henning Schild @ 2021-09-06  8:34 UTC (permalink / raw)
  To: isar-users; +Cc: Cedric Hombourger, Henning Schild, Venkata.Pyla

So called "native" packages will put the debian changelog into the
package as "changelog" and not "changelog.Debian".
dh_installchangelogs(1)

We have the file from ubuntu and with this change we start doing things
differently. For isar "raw" packages will be "native" so we probably
want that no matter what ubuntu might think. I still started a
discussion on the topic.
https://github.com/tianon/docker-brew-ubuntu-core/issues/216

This was found when working on reproducible builds, for some reason the
changelogs of the raw packages did not differ, because they are not in
the rootfs.

Reported-by: <Venkata.Pyla@toshiba-tsip.com>
Signed-off-by: Henning Schild <henning.schild@siemens.com>
---
 meta/recipes-support/isar-exclude-docs/files/isar-exclude-docs  | 2 +-
 meta/recipes-support/isar-exclude-docs/files/postinst           | 2 +-
 .../{isar-exclude-docs_0.1.bb => isar-exclude-docs_0.2.bb}      | 0
 3 files changed, 2 insertions(+), 2 deletions(-)
 rename meta/recipes-support/isar-exclude-docs/{isar-exclude-docs_0.1.bb => isar-exclude-docs_0.2.bb} (100%)

diff --git a/meta/recipes-support/isar-exclude-docs/files/isar-exclude-docs b/meta/recipes-support/isar-exclude-docs/files/isar-exclude-docs
index 5bec6260fddd..a77a47d1fe01 100644
--- a/meta/recipes-support/isar-exclude-docs/files/isar-exclude-docs
+++ b/meta/recipes-support/isar-exclude-docs/files/isar-exclude-docs
@@ -8,4 +8,4 @@ path-exclude=/usr/share/doc/*
 path-include=/usr/share/doc/*/copyright
 
 # ... and Debian changelogs
-path-include=/usr/share/doc/*/changelog.Debian.*
+path-include=/usr/share/doc/*/changelog.*
diff --git a/meta/recipes-support/isar-exclude-docs/files/postinst b/meta/recipes-support/isar-exclude-docs/files/postinst
index f6c0d1b2df52..d34c04ea47f0 100644
--- a/meta/recipes-support/isar-exclude-docs/files/postinst
+++ b/meta/recipes-support/isar-exclude-docs/files/postinst
@@ -4,4 +4,4 @@
 # what we delete needs to be in sync with the dpkg configuration we ship
 
 rm -rf /usr/share/man/*
-find /usr/share/doc/ -type f ! -name "copyright" ! -name "changelog.Debian.*" -exec rm -rf {} \;
+find /usr/share/doc/ -type f ! -name "copyright" ! -name "changelog.*" -exec rm -rf {} \;
diff --git a/meta/recipes-support/isar-exclude-docs/isar-exclude-docs_0.1.bb b/meta/recipes-support/isar-exclude-docs/isar-exclude-docs_0.2.bb
similarity index 100%
rename from meta/recipes-support/isar-exclude-docs/isar-exclude-docs_0.1.bb
rename to meta/recipes-support/isar-exclude-docs/isar-exclude-docs_0.2.bb
-- 
2.32.0


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

* Re: [PATCH 1/3] debianize: make changelog date reproducible
  2021-09-06  8:34 [PATCH 1/3] debianize: make changelog date reproducible Henning Schild
  2021-09-06  8:34 ` [PATCH 2/3] debianize: prepend changelog entries Henning Schild
  2021-09-06  8:34 ` [PATCH 3/3] isar-exclude-docs: include "native" package changelogs Henning Schild
@ 2021-09-07 12:55 ` Anton Mikanovich
  2 siblings, 0 replies; 5+ messages in thread
From: Anton Mikanovich @ 2021-09-07 12:55 UTC (permalink / raw)
  To: Henning Schild, isar-users; +Cc: Cedric Hombourger, Venkata.Pyla

06.09.2021 11:34, Henning Schild wrote:
> Deriving the date from the filesystem and git also does not always
> produce the same result.
>
> In case there is a changelog file and our version does not yet exist
> in it, make the new entry 42s later. If there was no changelog use
> "1970-01-01 00:00:00 UTC".
>
> Reported-by: <Venkata.Pyla@toshiba-tsip.com>
> Signed-off-by: Henning Schild <henning.schild@siemens.com>
> ---
>   meta/classes/debianize.bbclass | 11 +++++------
>   1 file changed, 5 insertions(+), 6 deletions(-)
>
> diff --git a/meta/classes/debianize.bbclass b/meta/classes/debianize.bbclass
> index 44867780f7b9..e6a300700a5f 100644
> --- a/meta/classes/debianize.bbclass
> +++ b/meta/classes/debianize.bbclass
> @@ -14,20 +14,19 @@ MAINTAINER ??= "Unknown maintainer <unknown@example.com>"
>   
>   deb_add_changelog() {
>   	changelog_v="${CHANGELOG_V}"
> +	timestamp=0
>   	if [ -f ${S}/debian/changelog ]; then
>   		if [ ! -f ${WORKDIR}/changelog.orig ]; then
>   			cp ${S}/debian/changelog ${WORKDIR}/changelog.orig
>   		fi
>   		orig_version=$(dpkg-parsechangelog -l ${WORKDIR}/changelog.orig -S Version)
>   		changelog_v=$(echo "${changelog_v}" | sed 's/<orig-version>/'${orig_version}'/')
> +		orig_date=$(dpkg-parsechangelog -l ${WORKDIR}/changelog.orig -S Date)
> +		orig_seconds=$(date --date="${orig_date}" +'%s')
> +		timestamp=$(echo "${orig_seconds}+42" | bc)
>   	fi
>   
> -	timestamp=$(find ${S}/ -type f -not -path "${S}/debian/*" -printf "%T@\n"|sort -n -r|head -n 1)
> -	if [ -n "${timestamp}" ]; then
> -		date=$(LANG=C date -R -d @${timestamp})
> -	else
> -		date=$(LANG=C date -R)
> -	fi
> +	date=$(LANG=C date -R -d @${timestamp})
>   	cat <<EOF > ${S}/debian/changelog
>   ${PN} (${changelog_v}) UNRELEASED; urgency=low
>   

I suggest using expr instead of bc to avoid adding new Isar dependencies.

-- 
Anton Mikanovich
Promwad Ltd.
External service provider of ilbers GmbH
Maria-Merian-Str. 8
85521 Ottobrunn, Germany
+49 (89) 122 67 24-0
Commercial register Munich, HRB 214197
General Manager: Baurzhan Ismagulov


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

* Re: [PATCH 3/3] isar-exclude-docs: include "native" package changelogs
  2021-09-06  8:34 ` [PATCH 3/3] isar-exclude-docs: include "native" package changelogs Henning Schild
@ 2021-09-21  7:24   ` Henning Schild
  0 siblings, 0 replies; 5+ messages in thread
From: Henning Schild @ 2021-09-21  7:24 UTC (permalink / raw)
  To: isar-users; +Cc: Cedric Hombourger, Venkata.Pyla

I reported the issue with the changelog upstream and it has been fixed
there.

https://bugs.launchpad.net/bugs/1943114

So now this patch is in line with what ubuntu does to shrink their
cloud/container images.

Henning

Am Mon, 6 Sep 2021 10:34:03 +0200
schrieb Henning Schild <henning.schild@siemens.com>:

> So called "native" packages will put the debian changelog into the
> package as "changelog" and not "changelog.Debian".
> dh_installchangelogs(1)
> 
> We have the file from ubuntu and with this change we start doing
> things differently. For isar "raw" packages will be "native" so we
> probably want that no matter what ubuntu might think. I still started
> a discussion on the topic.
> https://github.com/tianon/docker-brew-ubuntu-core/issues/216
> 
> This was found when working on reproducible builds, for some reason
> the changelogs of the raw packages did not differ, because they are
> not in the rootfs.
> 
> Reported-by: <Venkata.Pyla@toshiba-tsip.com>
> Signed-off-by: Henning Schild <henning.schild@siemens.com>
> ---
>  meta/recipes-support/isar-exclude-docs/files/isar-exclude-docs  | 2
> +- meta/recipes-support/isar-exclude-docs/files/postinst           |
> 2 +- .../{isar-exclude-docs_0.1.bb => isar-exclude-docs_0.2.bb}
> | 0 3 files changed, 2 insertions(+), 2 deletions(-)
>  rename
> meta/recipes-support/isar-exclude-docs/{isar-exclude-docs_0.1.bb =>
> isar-exclude-docs_0.2.bb} (100%)
> 
> diff --git
> a/meta/recipes-support/isar-exclude-docs/files/isar-exclude-docs
> b/meta/recipes-support/isar-exclude-docs/files/isar-exclude-docs
> index 5bec6260fddd..a77a47d1fe01 100644 ---
> a/meta/recipes-support/isar-exclude-docs/files/isar-exclude-docs +++
> b/meta/recipes-support/isar-exclude-docs/files/isar-exclude-docs @@
> -8,4 +8,4 @@ path-exclude=/usr/share/doc/*
> path-include=/usr/share/doc/*/copyright # ... and Debian changelogs
> -path-include=/usr/share/doc/*/changelog.Debian.*
> +path-include=/usr/share/doc/*/changelog.*
> diff --git a/meta/recipes-support/isar-exclude-docs/files/postinst
> b/meta/recipes-support/isar-exclude-docs/files/postinst index
> f6c0d1b2df52..d34c04ea47f0 100644 ---
> a/meta/recipes-support/isar-exclude-docs/files/postinst +++
> b/meta/recipes-support/isar-exclude-docs/files/postinst @@ -4,4 +4,4
> @@ # what we delete needs to be in sync with the dpkg configuration
> we ship 
>  rm -rf /usr/share/man/*
> -find /usr/share/doc/ -type f ! -name "copyright" ! -name
> "changelog.Debian.*" -exec rm -rf {} \; +find /usr/share/doc/ -type f
> ! -name "copyright" ! -name "changelog.*" -exec rm -rf {} \; diff
> --git
> a/meta/recipes-support/isar-exclude-docs/isar-exclude-docs_0.1.bb
> b/meta/recipes-support/isar-exclude-docs/isar-exclude-docs_0.2.bb
> similarity index 100% rename from
> meta/recipes-support/isar-exclude-docs/isar-exclude-docs_0.1.bb
> rename to
> meta/recipes-support/isar-exclude-docs/isar-exclude-docs_0.2.bb


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

end of thread, other threads:[~2021-09-21  7:24 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-06  8:34 [PATCH 1/3] debianize: make changelog date reproducible Henning Schild
2021-09-06  8:34 ` [PATCH 2/3] debianize: prepend changelog entries Henning Schild
2021-09-06  8:34 ` [PATCH 3/3] isar-exclude-docs: include "native" package changelogs Henning Schild
2021-09-21  7:24   ` Henning Schild
2021-09-07 12:55 ` [PATCH 1/3] debianize: make changelog date reproducible Anton Mikanovich

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