From owner-svn-src-projects@FreeBSD.ORG Sun Feb 8 18:12:35 2015 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 0EC3FDCD; Sun, 8 Feb 2015 18:12:35 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id EF1FB834; Sun, 8 Feb 2015 18:12:34 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t18ICY2C020122; Sun, 8 Feb 2015 18:12:34 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t18ICYu2020121; Sun, 8 Feb 2015 18:12:34 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <201502081812.t18ICYu2020121@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Sun, 8 Feb 2015 18:12:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r278393 - projects/release-pkg X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 08 Feb 2015 18:12:35 -0000 Author: bapt Date: Sun Feb 8 18:12:34 2015 New Revision: 278393 URL: https://svnweb.freebsd.org/changeset/base/278393 Log: Add a new kernel-pkgs target to create pkg(8) packages from the kernel The version scheme used is the following: For stable/current branches: ${REVISION}.sYYYYMMDDhhmmss s standing for snapshot For releases branches: ${REVISION}_${PATCHLEVEL} When packaging the kernel 2 different package are created per kernel release (only contains the regular kernel and modules) debug (contains the .symbols files) Note that package the kernel (packaging world will follow the same rule) can only by passing -DNO_ROOT to the build (hence can be done as a regular user) To package the kernel: make buildkernel make distributekernel DESTDIR=/somewhere -DNO_ROOT make kernel-pkgs DESTDIR=/somewhere -DNO_ROOT The packages will be created inside the DESTDIR Modified: projects/release-pkg/Makefile.inc1 Modified: projects/release-pkg/Makefile.inc1 ============================================================================== --- projects/release-pkg/Makefile.inc1 Sun Feb 8 18:07:23 2015 (r278392) +++ projects/release-pkg/Makefile.inc1 Sun Feb 8 18:12:34 2015 (r278393) @@ -153,6 +153,21 @@ SRCRELDATE!= awk '/^\#define[[:space:]]* VERSION= FreeBSD ${REVISION}-${BRANCH:C/-p[0-9]+$//} ${TARGET_ARCH} ${SRCRELDATE} .endif +.if !defined(PKG_VERSION) +REVISION!= ${MAKE} -C ${SRCDIR}/release -V REVISION +BRANCH!= ${MAKE} -C ${SRCDIR}/release -V BRANCH +SRCRELDATE!= awk '/^\#define[[:space:]]*__FreeBSD_version/ { print $$3 }' \ + ${SRCDIR}/sys/sys/param.h +.if ${BRANCH:MSTABLE*} || ${BRANCH:MCURRENT*} +TIMENOW!= TZ=UTC date +%Y%m%d%H%M%S +EXTRA_REVISION= .s${TIMENOW} +.endif +.if ${BRANCH:M*-p*} +EXTRA_REVISION= _${BRANCH:C/.*-p([0-9]+$)/\1/} +.endif +PKG_VERSION= ${REVISION}${EXTRA_REVISION} +.endif + KNOWN_ARCHES?= amd64 arm armeb/arm armv6/arm armv6hf/arm i386 i386/pc98 mips mipsel/mips mips64el/mips mips64/mips mipsn32el/mips mipsn32/mips powerpc powerpc64/powerpc sparc64 .if ${TARGET} == ${TARGET_ARCH} _t= ${TARGET} @@ -1165,6 +1180,54 @@ packagekernel: .endfor .endif +kernel-pkgs: +.if !defined(NO_ROOT) + @echo "ERROR: kernel-pkgs can only be done with -DNO_ROOT"; \ + false +.endif + @cd ${DESTDIR}/${DISTDIR} ; \ + awk -f ${SRCDIR}/release/scripts/mtree-to-plist.awk \ + ${DESTDIR}/${DISTDIR}/kernel.meta +.for flavor in release debug +.if exists(${DESTDIR}/${DISTDIR}/${flavor}.plist) + @rm -rf ${DESTDIR}/${DISTDIR}/${flavor}-manifestdir + @cp -r ${SRCDIR}/release/packages/kernel \ + ${DESTDIR}/${DISTDIR}/${flavor}-manifestdir + @cd ${DESTDIR}/${DISTDIR} ; \ + sed -i '' -e "s/%VERSION%/${PKG_VERSION}/" \ + -e "s/%PKGNAME%/kernel-${flavor}/" \ + -e "s/%COMMENT%/FreeBSD ${KERNCONF} kernel ${flavor}/" \ + -e "s/%DESC%/FreeBSD ${KERNCONF} kernel ${flavor}/" \ + ${DESTDIR}/${DISTDIR}/${flavor}-manifestdir/+MANIFEST + @pkg create -v -m ${DESTDIR}/${DISTDIR}/${flavor}-manifestdir \ + -p ${DESTDIR}/${DISTDIR}/${flavor}.plist \ + -r ${DESTDIR}/${DISTDIR}/kernel \ + -o ${DESTDIR} +.endif +.endfor +.for _kernel in ${BUILDKERNELS:S/${INSTALLKERNEL}//} + @cd ${DESTDIR}/${DISTDIR} ; \ + awk -f ${SRCDIR}/release/scripts/mtree-to-plist.awk \ + ${DESTDIR}/${DISTDIR}/kernel${_kernel}.meta +.for flavor in release debug +.if exists(${DESTDIR}/${DISTDIR}/${flavor}.plist) + @rm -rf ${DESTDIR}/${DISTDIR}/${flavor}-manifestdir + @cp -r ${SRCDIR}/release/packages/kernel \ + ${DESTDIR}/${DISTDIR}/${flavor}-manifestdir + @cd ${DESTDIR}/${DISTDIR} ; \ + sed -i '' -e "s/%VERSION%/${PKG_VERSION}/" \ + -e "s/%PKGNAME%/kernel-${flavor}/" \ + -e "s/%COMMENT%/FreeBSD ${KERNCONF} kernel ${flavor}/" \ + -e "s/%DESC%/FreeBSD ${KERNCONF} kernel ${flavor}/" \ + ${DESTDIR}/${DISTDIR}/${flavor}-manifestdir/+MANIFEST + @pkg create -v -m ${DESTDIR}/${DISTDIR}/${flavor}-manifestdir \ + -p ${DESTDIR}/${DISTDIR}/${flavor}.plist \ + -r ${DESTDIR}/${DISTDIR}/kernel.${_kernel} \ + -o ${DESTDIR} +.endif +.endfor +.endfor + # # doxygen #