From: Herton R. Krzesinski <her...@redhat.com>

redhat: split changelog generation from genspec.sh

This creates a new genlog.sh script to split out the changelog
generation code from genspec.sh. The splitted code is kept
as is.

Signed-off-by: Herton R. Krzesinski <her...@redhat.com>

diff --git a/redhat/genlog.sh b/redhat/genlog.sh
new file mode 100755
index blahblah..blahblah 100755
--- /dev/null
+++ b/redhat/genlog.sh
@@ -0,0 +1,90 @@
+#!/bin/bash
+
+LAST_MARKER=$(cat "${REDHAT}"/marker)
+clogf="$SOURCES/changelog"
+# hide [redhat] entries from changelog
+HIDE_REDHAT=1;
+# hide entries for unsupported arches
+HIDE_UNSUPPORTED_ARCH=1;
+# override LC_TIME to avoid date conflicts when building the srpm
+LC_TIME=
+
+GIT_FORMAT="--format=- %s (%an)%n%N%n^^^NOTES-END^^^%n%b"
+GIT_NOTES="--notes=refs/notes/${RHEL_MAJOR}.${RHEL_MINOR}*"
+
+lasttag=$(git rev-list --first-parent --grep="^\[redhat\] 
kernel-${SPECKVERSION}.${SPECKPATCHLEVEL}" --max-count=1 HEAD)
+# if we didn't find the proper tag, assume this is the first release
+if [[ -z $lasttag ]]; then
+    if [[ -z ${MARKER//[0-9a-f]/} ]]; then
+        # if we're doing an untagged release, just use the marker
+        echo "Using $MARKER"
+        lasttag=$MARKER
+    else
+       lasttag=$(git describe --match="$MARKER" --abbrev=0)
+    fi
+fi
+echo "Gathering new log entries since $lasttag"
+# master is expected to track mainline.
+
+cname="$(git var GIT_COMMITTER_IDENT |sed 's/>.*/>/')"
+cdate="$(LC_ALL=C date +"%a %b %d %Y")"
+cversion="[$BASEVERSION]";
+echo "* $cdate $cname $cversion" > "$clogf"
+
+git log --topo-order --no-merges -z "$GIT_NOTES" "$GIT_FORMAT" \
+       ^"${UPSTREAM}" "$lasttag".. -- ':!/redhat/rhdocs' | "${0%/*}"/genlog.py 
>> "$clogf"
+
+if [ "$HIDE_REDHAT" = "1" ]; then
+       grep -v -e "^- \[redhat\]" "$clogf" |
+               sed -e 's!\[Fedora\]!!g' > "$clogf.stripped"
+       cp "$clogf.stripped" "$clogf"
+fi
+
+if [ "$HIDE_UNSUPPORTED_ARCH" = "1" ]; then
+       grep -E -v "^- 
\[(alpha|arc|arm|avr32|blackfin|c6x|cris|frv|h8300|hexagon|ia64|m32r|m68k|metag|microblaze|mips|mn10300|openrisc|parisc|score|sh|sparc|tile|um|unicore32|xtensa)\]"
 "$clogf" > "$clogf.stripped"
+       cp "$clogf.stripped" "$clogf"
+fi
+
+# If the markers aren't the same then this a rebase.
+# This means we need to zap entries that are already present in the changelog.
+if [ "$MARKER" != "$LAST_MARKER" ]; then
+       # awk trick to get all unique lines
+       awk '!seen[$0]++' "$SOURCES/$SPECCHANGELOG" "$clogf" > "$clogf.unique"
+       # sed trick to get the end of the changelog minus the line
+       sed -e '1,/# END OF CHANGELOG/ d' "$clogf.unique" > "$clogf.tmp"
+       # Add an explicit entry to indicate a rebase.
+       echo "" > "$clogf"
+       echo -e "- $MARKER rebase" | cat "$clogf.tmp" - >> "$clogf"
+       rm "$clogf.tmp" "$clogf.unique"
+fi
+
+# HACK temporary hack until single tree workflow
+# Don't reprint all the ark-patches again.
+if [ -n "$(git log --oneline --first-parent --grep="Merge ark patches" 
"$lasttag"..)" ]; then
+       # Throw away the clogf and just print the summary merge
+       echo "" > "$clogf"
+       echo "- Merge ark-patches" >> "$clogf"
+fi
+
+# during rh-dist-git genspec runs again and generates empty changelog
+# create empty file to avoid adding extra header to changelog
+LENGTH=$(grep -c "^-" "$clogf" | awk '{print $1}')
+if [ "$LENGTH" = 0 ]; then
+       rm -f "$clogf"
+       touch "$clogf"
+fi
+
+cat "$clogf" "$SOURCES/$SPECCHANGELOG" > "$clogf.full"
+mv -f "$clogf.full" "$SOURCES/$SPECCHANGELOG"
+
+# genlog.py generates Resolves lines as well, strip these from RPM changelog
+grep -v -e "^Resolves: " "$SOURCES/$SPECCHANGELOG" > "$clogf".stripped
+
+test -f "$SOURCES/$SPECFILE" &&
+       sed -i -e "
+       /%%SPECCHANGELOG%%/r $clogf.stripped
+       /%%SPECCHANGELOG%%/d" "$SOURCES/$SPECFILE"
+
+echo "MARKER is $MARKER"
+
+rm -f "$clogf"{,.stripped};
diff --git a/redhat/genspec.sh b/redhat/genspec.sh
index blahblah..blahblah 100755
--- a/redhat/genspec.sh
+++ b/redhat/genspec.sh
@@ -1,16 +1,6 @@
 #!/bin/bash
 # shellcheck disable=SC2153
 
-LAST_MARKER=$(cat "${REDHAT}"/marker)
-clogf="$SOURCES/changelog"
-# hide [redhat] entries from changelog
-HIDE_REDHAT=1;
-# hide entries for unsupported arches
-HIDE_UNSUPPORTED_ARCH=1;
-# override LC_TIME to avoid date conflicts when building the srpm
-LC_TIME=
-# STAMP=$(echo $MARKER | cut -f 1 -d '-' | sed -e "s/v//"); # unused
-
 UPSTREAM=$(git rev-parse -q --verify origin/"${UPSTREAM_BRANCH}" || \
           git rev-parse -q --verify "${UPSTREAM_BRANCH}")
 
@@ -97,83 +87,7 @@ if [ -n "$RHSELFTESTDATA" ]; then
        exit 0
 fi
 
-GIT_FORMAT="--format=- %s (%an)%n%N%n^^^NOTES-END^^^%n%b"
-GIT_NOTES="--notes=refs/notes/${RHEL_MAJOR}.${RHEL_MINOR}*"
-
-lasttag=$(git rev-list --first-parent --grep="^\[redhat\] 
kernel-${SPECKVERSION}.${SPECKPATCHLEVEL}" --max-count=1 HEAD)
-# if we didn't find the proper tag, assume this is the first release
-if [[ -z $lasttag ]]; then
-    if [[ -z ${MARKER//[0-9a-f]/} ]]; then
-        # if we're doing an untagged release, just use the marker
-        echo "Using $MARKER"
-        lasttag=$MARKER
-    else
-       lasttag=$(git describe --match="$MARKER" --abbrev=0)
-    fi
-fi
-echo "Gathering new log entries since $lasttag"
-# master is expected to track mainline.
-
-cname="$(git var GIT_COMMITTER_IDENT |sed 's/>.*/>/')"
-cdate="$(LC_ALL=C date +"%a %b %d %Y")"
-cversion="[$BASEVERSION]";
-echo "* $cdate $cname $cversion" > "$clogf"
-
-git log --topo-order --no-merges -z "$GIT_NOTES" "$GIT_FORMAT" \
-       ^"${UPSTREAM}" "$lasttag".. -- ':!/redhat/rhdocs' | "${0%/*}"/genlog.py 
>> "$clogf"
-
-if [ "$HIDE_REDHAT" = "1" ]; then
-       grep -v -e "^- \[redhat\]" "$clogf" |
-               sed -e 's!\[Fedora\]!!g' > "$clogf.stripped"
-       cp "$clogf.stripped" "$clogf"
-fi
-
-if [ "$HIDE_UNSUPPORTED_ARCH" = "1" ]; then
-       grep -E -v "^- 
\[(alpha|arc|arm|avr32|blackfin|c6x|cris|frv|h8300|hexagon|ia64|m32r|m68k|metag|microblaze|mips|mn10300|openrisc|parisc|score|sh|sparc|tile|um|unicore32|xtensa)\]"
 "$clogf" > "$clogf.stripped"
-       cp "$clogf.stripped" "$clogf"
-fi
-
-# If the markers aren't the same then this a rebase.
-# This means we need to zap entries that are already present in the changelog.
-if [ "$MARKER" != "$LAST_MARKER" ]; then
-       # awk trick to get all unique lines
-       awk '!seen[$0]++' "$SOURCES/$SPECCHANGELOG" "$clogf" > "$clogf.unique"
-       # sed trick to get the end of the changelog minus the line
-       sed -e '1,/# END OF CHANGELOG/ d' "$clogf.unique" > "$clogf.tmp"
-       # Add an explicit entry to indicate a rebase.
-       echo "" > "$clogf"
-       echo -e "- $MARKER rebase" | cat "$clogf.tmp" - >> "$clogf"
-       rm "$clogf.tmp" "$clogf.unique"
-fi
-
-# HACK temporary hack until single tree workflow
-# Don't reprint all the ark-patches again.
-if [ -n "$(git log --oneline --first-parent --grep="Merge ark patches" 
"$lasttag"..)" ]; then
-       # Throw away the clogf and just print the summary merge
-       echo "" > "$clogf"
-       echo "- Merge ark-patches" >> "$clogf"
-fi
-
-# during rh-dist-git genspec runs again and generates empty changelog
-# create empty file to avoid adding extra header to changelog
-LENGTH=$(grep -c "^-" "$clogf" | awk '{print $1}')
-if [ "$LENGTH" = 0 ]; then
-       rm -f "$clogf"
-       touch "$clogf"
-fi
-
-cat "$clogf" "$SOURCES/$SPECCHANGELOG" > "$clogf.full"
-mv -f "$clogf.full" "$SOURCES/$SPECCHANGELOG"
-
-# genlog.py generates Resolves lines as well, strip these from RPM changelog
-grep -v -e "^Resolves: " "$SOURCES/$SPECCHANGELOG" > "$clogf".stripped
-
-test -f "$SOURCES/$SPECFILE" &&
-       sed -i -e "
-       /%%SPECCHANGELOG%%/r $clogf.stripped
-       /%%SPECCHANGELOG%%/d" "$SOURCES/$SPECFILE"
-
-echo "MARKER is $MARKER"
+"${0%/*}"/genlog.sh
 
 if [ "$DISTRO" == "fedora" ]; then
        # The tarball in the SRPM contains only the upstream sources.
@@ -188,5 +102,3 @@ else
        # compatibility is necessary.
        touch "${SOURCES}/patch-${SPECKVERSION}.${SPECKPATCHLEVEL}"-redhat.patch
 fi
-
-rm -f "$clogf"{,.stripped};

--
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1980
_______________________________________________
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue

Reply via email to