Implement creating global packages changelog file

Implements: blueprint consolidated-packages-changelog

Change-Id: Ieaea19ac4cb78b7ac6d9f8347917d3d3c84008ab
This commit is contained in:
Dmitry Burmistrov 2014-10-30 18:43:21 +03:00
parent 0d3f162547
commit 49ca2880d9
3 changed files with 38 additions and 1 deletions

View File

@ -56,11 +56,13 @@ $(BUILD_DIR)/iso/isoroot-centos.done: \
else
$(BUILD_DIR)/iso/isoroot-centos.done: \
$(BUILD_DIR)/mirror/build.done \
$(BUILD_DIR)/mirror/make-changelog.done \
$(BUILD_DIR)/packages/build.done \
$(BUILD_DIR)/openstack/build.done \
$(BUILD_DIR)/iso/isoroot-dotfiles.done
mkdir -p $(ISOROOT)
rsync -rp $(LOCAL_MIRROR_CENTOS_OS_BASEURL)/ $(ISOROOT)
rsync -rp $(LOCAL_MIRROR)/centos-packages.changelog $(ISOROOT)
createrepo -g $(ISOROOT)/comps.xml \
-u media://`head -1 $(ISOROOT)/.discinfo` $(ISOROOT)
rpm -qi -p $(ISOROOT)/Packages/*.rpm | $(SOURCE_DIR)/iso/pkg-versions.awk > $(ISOROOT)/centos-versions.yaml
@ -88,10 +90,12 @@ $(BUILD_DIR)/iso/isoroot-ubuntu.done: \
else
$(BUILD_DIR)/iso/isoroot-ubuntu.done: \
$(BUILD_DIR)/mirror/build.done \
$(BUILD_DIR)/mirror/make-changelog.done \
$(BUILD_DIR)/packages/build.done \
$(BUILD_DIR)/iso/isoroot-dotfiles.done
mkdir -p $(ISOROOT)/ubuntu
rsync -rp $(LOCAL_MIRROR_UBUNTU_OS_BASEURL)/ $(ISOROOT)/ubuntu/
rsync -rp $(LOCAL_MIRROR)/ubuntu-packages.changelog $(ISOROOT)
rsync -p $(BUILD_DIR)/packages/deb/debian-boot/initrd.gz $(ISOROOT)/ubuntu/installer-amd64/current/images/netboot/ubuntu-installer/amd64/initrd.gz
cat $(ISOROOT)/ubuntu/dists/$(UBUNTU_RELEASE)/main/binary-amd64/Packages | $(SOURCE_DIR)/iso/pkg-versions.awk > $(ISOROOT)/ubuntu/ubuntu-versions.yaml
$(ACTION.TOUCH)

View File

@ -1,6 +1,7 @@
.PHONY: mirror clean clean-mirror
.PHONY: mirror clean clean-mirror make-changelog
mirror: $(BUILD_DIR)/mirror/build.done
make-changelog: $(BUILD_DIR)/mirror/make-changelog.done
clean: clean-mirror
@ -17,3 +18,8 @@ $(BUILD_DIR)/mirror/build.done: \
$(BUILD_DIR)/mirror/ubuntu/build.done \
$(BUILD_DIR)/mirror/docker/build.done
$(ACTION.TOUCH)
$(BUILD_DIR)/mirror/make-changelog.done: $(BUILD_DIR)/mirror/build.done
sudo bash -c "export LOCAL_MIRROR=$(LOCAL_MIRROR); \
$(SOURCE_DIR)/report-changelog.sh"
$(ACTION.TOUCH)

27
report-changelog.sh Executable file
View File

@ -0,0 +1,27 @@
#!/bin/bash -e
CENTOS_CHANGELOG=${LOCAL_MIRROR}/centos-packages.changelog
UBUNTU_CHANGELOG=${LOCAL_MIRROR}/ubuntu-packages.changelog
[ -f ${CENTOS_CHANGELOG} ] && rm ${CENTOS_CHANGELOG}
for packagename in `find ${LOCAL_MIRROR} -name \*.rpm | sort -u`; do
echo ${packagename##*/} >> ${CENTOS_CHANGELOG}
rpm -qp --changelog ${packagename} 2>/dev/null | sed -e '/^$/,$d' >> ${CENTOS_CHANGELOG}
echo '' >> ${CENTOS_CHANGELOG}
done
[ -f ${UBUNTU_CHANGELOG} ] && rm ${UBUNTU_CHANGELOG}
for packagename in `find ${LOCAL_MIRROR} -name \*.deb | sort -u`; do
pkgname=${packagename##*/}
DATAFILE=`ar t $packagename | grep ^data`
case ${DATAFILE##*.} in
bz2) ZFLAG='--bzip2' ;;
gz) ZFLAG='-z' ;;
xz) ZFLAG='-J' ;;
*) echo "Unknown data tarball format for package $packagename"; continue ;;
esac
CHANGELOGFILE=`ar p $packagename $DATAFILE | tar $ZFLAG -tvf - | grep '/usr/share/doc/' | grep "/changelog\.Debian\.gz" || :`
CHANGELOGFILE=${CHANGELOGFILE##* }
if [[ ${CHANGELOGFILE:0:2} == './' ]]; then
ar p $packagename $DATAFILE | tar $ZFLAG -xO $CHANGELOGFILE | gzip -cd | sed -n '1,/--/ p' >> ${UBUNTU_CHANGELOG}
echo '' >> ${UBUNTU_CHANGELOG}
fi
done