[Lsb-messages] /var/www/bzr/lsb/devel/task-pkgs r196: Give each task package its own version number.

Jeff Licquia licquia at linuxfoundation.org
Thu Nov 15 04:20:32 UTC 2012


------------------------------------------------------------
revno: 196
committer: Jeff Licquia <licquia at linuxfoundation.org>
branch nick: task-pkgs
timestamp: Wed 2012-11-14 23:20:32 -0500
message:
  Give each task package its own version number.
added:
  package/build-deb
  package/build-rpm
modified:
  package/Makefile
  package/README.source
  package/versionlists
-------------- next part --------------
=== modified file 'package/Makefile'
--- a/package/Makefile	2011-03-26 14:08:29 +0000
+++ b/package/Makefile	2012-11-15 04:20:32 +0000
@@ -1,13 +1,11 @@
 # Makefile for task packages.
 # Copyright 2007 Free Standards Group.
+# Copyright 2012 Linux Foundation.
 
 # Which LSB version should we build for?
 
 LSB_VERSION ?= 4.1
 
-PKG_VERSION=$(shell grep '$(LSB_VERSION)$$' versionlists | cut -d' ' -f1)
-PKG_RELEASE=$(shell grep '$(LSB_VERSION)$$' versionlists | cut -d' ' -f2)
-
 #
 # Derive date string for daily snapshots
 ISO_DATE=$(shell date +"%Y%m%d")
@@ -23,39 +21,18 @@
 EXPORT_TAG=-D now
 endif
 
-# Get RPM configuration information
-# NOTE THAT RPM_TMP_BUILD_DIR IS DELETED AFTER THE RPM BUILD IS COMPLETED
-# The rpmrc file translates targets where there are multiple choices per
-# architecture. On build, the derived RPM_BUILD_ARCH is given as the target
-RCFILELIST="/usr/lib/rpm/rpmrc:./rpmrc"
-MACROFILELIST="/usr/lib/rpm/macros:/etc/rpm:~/.rpmmacros:./rpmmacros"
-RPM_TMP_BUILD_DIR=/var/tmp/rpm-build
-RPM_BUILD_ARCH=noarch
-RPM_BINARY_DIR=$(RPM_TMP_BUILD_DIR)/RPMS/$(RPM_BUILD_ARCH)
-
-# Temporary build directory
-TMP_BUILD_DIR=/tmp/task_pkgs
-
-# Determine whether to use rpm or rpmbuild to build the packages
-ifeq ($(wildcard /usr/bin/rpmbuild),)
-        RPM_BUILD_CMD=rpm
-else
-        RPM_BUILD_CMD=rpmbuild 
-endif
-RPM_BUILD_CMDLINE=$(RPM_BUILD_CMD) --rcfile $(RCFILELIST) --macros=$(MACROFILELIST) \
-	--define="_sourcedir $(PWD)" --define="_topdir $(RPM_TMP_BUILD_DIR)" \
-	--define="_target_cpu $(RPM_BUILD_ARCH)" --define="rel $(PKG_RELEASE)" \
-	--define="version $(PKG_VERSION)"
-
-RPMS = build-$(LSB_VERSION)/lsb-task-dist-testkit-$(PKG_VERSION)-$(PKG_RELEASE).noarch.rpm \
-	build-$(LSB_VERSION)/lsb-task-app-testkit-$(PKG_VERSION)-$(PKG_RELEASE).noarch.rpm \
-	build-$(LSB_VERSION)/lsb-task-sdk-$(PKG_VERSION)-$(PKG_RELEASE).noarch.rpm \
-	build-$(LSB_VERSION)/lsb-task-appbat-$(PKG_VERSION)-$(PKG_RELEASE).noarch.rpm
-DEBS = build-$(LSB_VERSION)/lsb-task-dist-testkit_$(PKG_VERSION)-$(PKG_RELEASE)_all.deb \
-	build-$(LSB_VERSION)/lsb-task-app-testkit_$(PKG_VERSION)-$(PKG_RELEASE)_all.deb \
-	build-$(LSB_VERSION)/lsb-task-sdk_$(PKG_VERSION)-$(PKG_RELEASE)_all.deb \
-	build-$(LSB_VERSION)/lsb-task-appbat_$(PKG_VERSION)-$(PKG_RELEASE)_all.deb
-ROOTCMD = $(shell which fakeroot)
+
+# We work off stamp files in order to avoid complications regarding
+# embedded version numbers, which are different for different targets.
+
+RPMS = build-$(LSB_VERSION)/lsb-task-dist-testkit.rpm.stamp \
+	build-$(LSB_VERSION)/lsb-task-app-testkit.rpm.stamp \
+	build-$(LSB_VERSION)/lsb-task-sdk.rpm.stamp \
+	build-$(LSB_VERSION)/lsb-task-appbat.rpm.stamp
+DEBS = build-$(LSB_VERSION)/lsb-task-dist-testkit.deb.stamp \
+	build-$(LSB_VERSION)/lsb-task-app-testkit.deb.stamp \
+	build-$(LSB_VERSION)/lsb-task-sdk.deb.stamp \
+	build-$(LSB_VERSION)/lsb-task-appbat.deb.stamp
 
 ifdef BUILD_NO_DEB
 DEB_DEFAULT_TARGET = 
@@ -87,34 +64,20 @@
 build-$(LSB_VERSION)/%.spec: %.spec.in build-$(LSB_VERSION)/%.spec.deps
 	./build-requires build-$(LSB_VERSION)/$*.spec.deps < $*.spec.in > $@
 
-build-$(LSB_VERSION)/%-$(PKG_VERSION)-$(PKG_RELEASE).noarch.rpm: build-$(LSB_VERSION)/%.spec
-	@mkdir -p $(RPM_TMP_BUILD_DIR)/BUILD
-	@mkdir -p $(RPM_TMP_BUILD_DIR)/RPMS
-	@mkdir -p $(RPM_TMP_BUILD_DIR)/SRPMS
-
-	$(RPM_BUILD_CMDLINE) -bb $<
-
-	@mv $(RPM_BINARY_DIR)/$(@F) build-$(LSB_VERSION)
-	@rm -rf $(RPM_TMP_BUILD_DIR)
-
-# We can't build directly with alien because alien strips the dependencies
-# before creating the deb.  So, we use alien to create the deb project,
-# then add back the deps before building the package.
-
-build-$(LSB_VERSION)/%_$(PKG_VERSION)-$(PKG_RELEASE)_all.deb: build-$(LSB_VERSION)/%-$(PKG_VERSION)-$(PKG_RELEASE).noarch.rpm
-	alien --fixperms -dsgck $<
-	rpm -qRp $< | grep -v rpmlib | (while read line; do depline="$$depline, $$line"; done; echo "Depends: lsb$$depline") > $*.deps
-	mv $*-$(PKG_VERSION)/debian/control $*-$(PKG_VERSION)/debian/control.old
-	sed "s/^Depends:.*/$$(cat $*.deps)/" < $*-$(PKG_VERSION)/debian/control.old | sed s/_/-/g > $*-$(PKG_VERSION)/debian/control
-	cd $*-$(PKG_VERSION) && $(ROOTCMD) debian/rules binary
-	mv $(@F) build-$(LSB_VERSION)
-	rm $*.deps
-	$(ROOTCMD) rm -rf $*-$(PKG_VERSION)
+build-$(LSB_VERSION)/%.rpm.stamp: build-$(LSB_VERSION)/%.spec
+	./build-rpm $(LSB_VERSION) $*
+	touch $@
+
+build-$(LSB_VERSION)/%.deb.stamp: build-$(LSB_VERSION)/%.rpm.stamp
+	./build-deb $(LSB_VERSION) $*
+	touch $@
 
 list_uploadable:
-	@for builddir in build-*; do if [ -d $$builddir ]; then ls -1 $$builddir/*; fi; done
+	@for builddir in build-*; do if [ -d $$builddir ]; then ls -1 $$builddir/*.rpm 2>/dev/null; ls -1 $$builddir/*.deb 2>/dev/null; fi; done
 
 clean:
 	for d in build-*; do if [ -d $$d ]; then rm -rf $$d; fi; done
 
 .PHONY: tarball default rpm_package deb_package list_uploadable clean
+
+.PRECIOUS: build-$(LSB_VERSION) build-$(LSB_VERSION)/lsb-task-%.spec.deps build-$(LSB_VERSION)/%.spec

=== modified file 'package/README.source'
--- a/package/README.source	2008-11-06 18:00:32 +0000
+++ b/package/README.source	2012-11-15 04:20:32 +0000
@@ -22,11 +22,15 @@
 To change the version of the task packages themselves, edit the
 "versionlists" file.  This will contain lines that look like this:
 
-3.0.6 3 3.0
-
-This is, again, three fields, consisting of the package version,
-package release, and LSB version.  Be sure to only edit the package
-version and release for the LSB version you want to change!
+3.0.3 1 lsb-task-dist-testkit 3.0
+
+or:
+
+4.1.3 1 lsb-task-sdk independent
+
+These four fields give the package version, package release, package
+name, and LSB version.  As with pkglists, "independent" means that the
+package is independent of LSB version.
 
 Finally, setting LSB_VERSION on the "make" command line sets the
 version of the LSB we build task packages for.  By default, we build

=== added file 'package/build-deb'
--- a/package/build-deb	1970-01-01 00:00:00 +0000
+++ b/package/build-deb	2012-11-15 04:20:32 +0000
@@ -0,0 +1,38 @@
+#!/bin/sh -ex
+
+# Command-line arguments
+
+LSB_VERSION=$1
+PKG_NAME=$2
+
+# Other configured settings.
+
+ROOTCMD=$(which fakeroot)
+
+# Calculated settings.
+
+PKG_VERSION=$(egrep "$PKG_NAME ($LSB_VERSION|independent)" versionlists | cut -d' ' -f1)
+PKG_RELEASE=$(egrep "$PKG_NAME ($LSB_VERSION|independent)" versionlists | cut -d' ' -f2)
+
+RPM_FILENAME=$PKG_NAME-$PKG_VERSION-$PKG_RELEASE.noarch.rpm
+DEB_FILENAME=${PKG_NAME}_${PKG_VERSION}-${PKG_RELEASE}_all.deb
+
+DEB_BUILD_DIR=$PKG_NAME-$PKG_VERSION
+
+# We can't build directly with alien because alien strips the dependencies
+# before creating the deb.  So, we use alien to create the deb project,
+# then add back the deps before building the package.
+
+cd build-$LSB_VERSION
+
+alien --fixperms -dsgck $RPM_FILENAME
+rpm -qRp $RPM_FILENAME | grep -v rpmlib | (while read line; do depline="$depline, $line"; done; echo "Depends: lsb$depline") > $PKG_NAME.debian-deps
+mv $DEB_BUILD_DIR/debian/control $DEB_BUILD_DIR/debian/control.old
+sed "s/^Depends:.*/$(cat $PKG_NAME.debian-deps)/" < $DEB_BUILD_DIR/debian/control.old | sed s/_/-/g > $DEB_BUILD_DIR/debian/control
+
+cd $DEB_BUILD_DIR
+$ROOTCMD debian/rules binary
+cd ..
+
+rm $PKG_NAME.debian-deps
+$ROOTCMD rm -rf $DEB_BUILD_DIR

=== added file 'package/build-rpm'
--- a/package/build-rpm	1970-01-01 00:00:00 +0000
+++ b/package/build-rpm	2012-11-15 04:20:32 +0000
@@ -0,0 +1,42 @@
+#!/bin/sh -e
+
+# Command-line arguments
+
+LSB_VERSION=$1
+PKG_NAME=$2
+
+# Configuration settings
+
+RPM_TMP_BUILD_DIR=/var/tmp/rpm-build
+RPM_BINARY_DIR=$RPM_TMP_BUILD_DIR/RPMS/noarch
+
+# Calculated settings.
+
+SPEC_FILENAME=$PKG_NAME.spec
+
+PKG_VERSION=$(egrep "$PKG_NAME ($LSB_VERSION|independent)" versionlists | cut -d' ' -f1)
+PKG_RELEASE=$(egrep "$PKG_NAME ($LSB_VERSION|independent)" versionlists | cut -d' ' -f2)
+
+RPM_FILENAME=$PKG_NAME-$PKG_VERSION-$PKG_RELEASE.noarch.rpm
+
+# Set up the build command line
+
+RCFILELIST="/usr/lib/rpm/rpmrc:./rpmrc"
+MACROFILELIST="/usr/lib/rpm/macros:/etc/rpm:~/.rpmmacros:./rpmmacros"
+
+if [ -e /usr/bin/rpmbuild ]; then
+    RPM_BUILD_CMD=rpmbuild
+else
+    RPM_BUILD_CMD=rpm
+fi
+
+# Do the build.
+
+mkdir -p $RPM_TMP_BUILD_DIR/BUILD
+mkdir -p $RPM_TMP_BUILD_DIR/RPMS
+mkdir -p $RPM_TMP_BUILD_DIR/SRPMS
+
+$RPM_BUILD_CMD --rcfile $RCFILELIST --macros=$MACROFILELIST --define="_sourcedir $(pwd)" --define="_topdir $RPM_TMP_BUILD_DIR" --define="_target_cpu noarch" --define="rel $PKG_RELEASE" --define="version $PKG_VERSION" -bb build-$LSB_VERSION/$SPEC_FILENAME
+
+mv $RPM_BINARY_DIR/$RPM_FILENAME build-$LSB_VERSION
+rm -rf $RPM_TMP_BUILD_DIR

=== modified file 'package/versionlists'
--- a/package/versionlists	2012-05-06 10:27:33 +0000
+++ b/package/versionlists	2012-11-15 04:20:32 +0000
@@ -1,6 +1,14 @@
-4.1.90 1 5.0
-4.1.0 2 4.1
-4.0.0 2 4.0
-3.2.0 9 3.2
-3.1.1 6 3.1
-3.0 1 3.0
+4.1.5 1 lsb-task-sdk independent
+4.1.7 2 lsb-task-app-testkit independent
+4.1.90 1 lsb-task-dist-testkit 5.0
+4.1.7 2 lsb-task-dist-testkit 4.1
+4.0.6 1 lsb-task-dist-testkit 4.0
+3.2.0 9 lsb-task-dist-testkit 3.2
+3.1.1 6 lsb-task-dist-testkit 3.1
+3.0.0 1 lsb-task-dist-testkit 3.0
+4.1.90 1 lsb-task-appbat 5.0
+4.1.7 2 lsb-task-appbat 4.1
+4.0.6 1 lsb-task-appbat 4.0
+3.2.0 9 lsb-task-appbat 3.2
+3.1.1 6 lsb-task-appbat 3.1
+3.0.0 1 lsb-task-appbat 3.0



More information about the lsb-messages mailing list