diff mbox

[xenial] UBUNTU: [Debian] Support custom and lts kernels in printchanges/insertchanges

Message ID 1498827811-26675-1-git-send-email-marcelo.cerri@canonical.com
State New
Headers show

Commit Message

Marcelo Henrique Cerri June 30, 2017, 1:03 p.m. UTC
Ignore: yes

Currently printchanges/insertchanges do not work for custom kernels
because commit messages for each release follow the format
"UBUNTU: Ubuntu-${flavour}-${prev_fullver}" instead of
"UBUNTU: Ubuntu-${prev_fullver}". Also, for the first release, the
previous version in the changelog does not match the version in the
previous release commit.

This patch makes the base commit selection more flexible, allowing
commit messages in the format "UBUNTU: Ubuntu-*${prev_fullver}" and it
fallbacks to the latest release commit when a exact match is not found
in order to support the custom kernels in their initial releases.

Signed-off-by: Marcelo Henrique Cerri <marcelo.cerri@canonical.com>
---
 debian/rules.d/1-maintainer.mk | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

Comments

Kleber Sacilotto de Souza July 6, 2017, 10:39 a.m. UTC | #1
On 06/30/17 15:03, Marcelo Henrique Cerri wrote:
> Ignore: yes
> 
> Currently printchanges/insertchanges do not work for custom kernels
> because commit messages for each release follow the format
> "UBUNTU: Ubuntu-${flavour}-${prev_fullver}" instead of
> "UBUNTU: Ubuntu-${prev_fullver}". Also, for the first release, the
> previous version in the changelog does not match the version in the
> previous release commit.
> 
> This patch makes the base commit selection more flexible, allowing
> commit messages in the format "UBUNTU: Ubuntu-*${prev_fullver}" and it
> fallbacks to the latest release commit when a exact match is not found
> in order to support the custom kernels in their initial releases.
> 
> Signed-off-by: Marcelo Henrique Cerri <marcelo.cerri@canonical.com>
> ---
>  debian/rules.d/1-maintainer.mk | 11 ++++++++---
>  1 file changed, 8 insertions(+), 3 deletions(-)
> 
> diff --git a/debian/rules.d/1-maintainer.mk b/debian/rules.d/1-maintainer.mk
> index 0c579c85195e..d469fc2331b7 100644
> --- a/debian/rules.d/1-maintainer.mk
> +++ b/debian/rules.d/1-maintainer.mk
> @@ -97,9 +97,14 @@ printenv:
>  
>  printchanges:
>  	@baseCommit=$$(git log --pretty=format:'%H %s' | \
> -		gawk '/UBUNTU: '".*Ubuntu-`echo $(prev_fullver) | sed 's/+/\\\\+/'`"'$$/ { print $$1; exit }'); \
> -		git log "$$baseCommit"..HEAD | \
> -		$(DROOT)/scripts/misc/git-ubuntu-log $(ubuntu_log_opts)
> +		gawk '/UBUNTU: '".*Ubuntu-.*`echo $(prev_fullver) | sed 's/+/\\\\+/'`"'(~.*)?$$/ { print $$1; exit }'); \
> +	if [ -z "$$baseCommit" ]; then \
> +		echo "WARNING: couldn't find a commit for the previous version. Using the lastest one." >&2; \
> +		baseCommit=$$(git log --pretty=format:'%H %s' | \
> +			gawk '/UBUNTU:\s*Ubuntu-.*$$/ { print $$1; exit }'); \
> +	fi; \
> +	git log "$$baseCommit"..HEAD | \
> +	$(DROOT)/scripts/misc/git-ubuntu-log $(ubuntu_log_opts)
>  
>  insertchanges: autoreconstruct
>  	@perl -w -f $(DROOT)/scripts/misc/insert-changes.pl $(DROOT) $(DEBIAN) 
> 

This seems to work well for both derivatives and backports.

My only comment is that I'm in favor of applying this patch as well on
all series we currently support. This will cause a conflict when we do
the rebase for some derivatives (for instance yakkety/raspi2 which looks
for ' Ubuntu-raspi2-' on git log), but that would a one-time only
conflict resolution.


Acked-by: Kleber Sacilotto de Souza <kleber.souza@canonical.com>
Kleber Sacilotto de Souza July 17, 2017, 2:44 p.m. UTC | #2
Applied to xenial/master-next branch, assuming the ACK also from Stefan
and Seth from the patches for the other series.

Thanks,
Kleber
diff mbox

Patch

diff --git a/debian/rules.d/1-maintainer.mk b/debian/rules.d/1-maintainer.mk
index 0c579c85195e..d469fc2331b7 100644
--- a/debian/rules.d/1-maintainer.mk
+++ b/debian/rules.d/1-maintainer.mk
@@ -97,9 +97,14 @@  printenv:
 
 printchanges:
 	@baseCommit=$$(git log --pretty=format:'%H %s' | \
-		gawk '/UBUNTU: '".*Ubuntu-`echo $(prev_fullver) | sed 's/+/\\\\+/'`"'$$/ { print $$1; exit }'); \
-		git log "$$baseCommit"..HEAD | \
-		$(DROOT)/scripts/misc/git-ubuntu-log $(ubuntu_log_opts)
+		gawk '/UBUNTU: '".*Ubuntu-.*`echo $(prev_fullver) | sed 's/+/\\\\+/'`"'(~.*)?$$/ { print $$1; exit }'); \
+	if [ -z "$$baseCommit" ]; then \
+		echo "WARNING: couldn't find a commit for the previous version. Using the lastest one." >&2; \
+		baseCommit=$$(git log --pretty=format:'%H %s' | \
+			gawk '/UBUNTU:\s*Ubuntu-.*$$/ { print $$1; exit }'); \
+	fi; \
+	git log "$$baseCommit"..HEAD | \
+	$(DROOT)/scripts/misc/git-ubuntu-log $(ubuntu_log_opts)
 
 insertchanges: autoreconstruct
 	@perl -w -f $(DROOT)/scripts/misc/insert-changes.pl $(DROOT) $(DEBIAN)