From dd46e3d77cb07573d2ff1cb0caed60e5f474cc3c Mon Sep 17 00:00:00 2001 From: Steven Knight Date: Tue, 27 May 2003 11:55:49 +0000 Subject: Generate our own copies of Gentoo files (.ebuild, and a digest record). --- HOWTO/release.txt | 17 +++++++++++++++++ README | 3 +++ SConstruct | 32 ++++++++++++++++++++++++++++++++ gentoo/scons.ebuild.in | 25 +++++++++++++++++++++++++ 4 files changed, 77 insertions(+) create mode 100644 gentoo/scons.ebuild.in diff --git a/HOWTO/release.txt b/HOWTO/release.txt index d9c0ae8..283c4ab 100644 --- a/HOWTO/release.txt +++ b/HOWTO/release.txt @@ -327,6 +327,23 @@ Things to do to release a new version of SCons: [wait until business hours so the announcement hits mailboxes while U.S. workers are active] + Notify Gentoo Linux of the update + + For now, we will do this by entering a bug report, and + attaching the files in build/gentoo to the report. Go + to: + + http://bugs.gentoo.org/ + + This requires an account (based on your email address) + and a certain amount of Bugzilla-based navigation, + but nothing that's too difficult. + + This is just my best stab at a process that will work + for Gentoo. This process may change if the Gentoo + developers come back and want something submitted in + some other form. + Notify www.cmtoday.com/contribute.html [This guy wants an announcement no more frequently than diff --git a/README b/README index 47c9090..965a623 100644 --- a/README +++ b/README @@ -316,6 +316,9 @@ etc/ and which we don't want to force people to have to install on their own just to help out with SCons development. +gentoo/ + Stuff to generate files for Gentoo Linux. + HOWTO/ Documentation of SCons administrative procedures (making a change, releasing a new version). Maybe other administrative diff --git a/SConstruct b/SConstruct index 59f7088..570570d 100644 --- a/SConstruct +++ b/SConstruct @@ -241,6 +241,7 @@ def SCons_revision(target, source, env): line = string.replace(line, '__FILE' + '__', str(source[0])) line = string.replace(line, '__REVISION' + '__', env['REVISION']) line = string.replace(line, '__VERSION' + '__', env['VERSION']) + line = string.replace(line, '__NULL' + '__', '') outf.write(line) inf.close() outf.close() @@ -733,6 +734,37 @@ for p in [ scons ]: deb, "dpkg --fsys-tarfile $SOURCES | (cd $TEST_DEB_DIR && tar -xf -)") + + # + # Generate portage files for submission to Gentoo Linux. + # + gentoo = os.path.join('build', 'gentoo') + ebuild = os.path.join(gentoo, 'scons-%s.ebuild' % version) + digest = os.path.join(gentoo, 'files', 'digest-scons-%s' % version) + env.Command(ebuild, os.path.join('gentoo', 'scons.ebuild.in'), SCons_revision) + def Digestify(target, source, env): + import md5 + def hexdigest(s): + """Return a signature as a string of hex characters. + """ + # NOTE: This routine is a method in the Python 2.0 interface + # of the native md5 module, but we want SCons to operate all + # the way back to at least Python 1.5.2, which doesn't have it. + h = string.hexdigits + r = '' + for c in s: + i = ord(c) + r = r + h[(i >> 4) & 0xF] + h[i & 0xF] + return r + src = source[0].rfile() + contents = open(str(src)).read() + sig = hexdigest(md5.new(contents).digest()) + bytes = os.stat(str(src))[6] + open(str(target[0]), 'w').write("MD5 %s %s %d\n" % (sig, + src.name, + bytes)) + env.Command(digest, tar_gz, Digestify) + # # Use the Python distutils to generate the appropriate packages. # diff --git a/gentoo/scons.ebuild.in b/gentoo/scons.ebuild.in new file mode 100644 index 0000000..36f83db --- /dev/null +++ b/gentoo/scons.ebuild.in @@ -0,0 +1,25 @@ +# Copyright 1999-2003 Gentoo Technologies, Inc. +# Distributed under the terms of the GNU General Public License v2 +# $__NULL__Header: /home/cvsroot/gentoo-x86/dev-util/scons/scons-__VERSION__.ebuild,v 1.2 2003/02/13 12:00:11 vapier Exp __NULL__$ + +MY_P=${PN}-__VERSION__ +S=${WORKDIR}/${MY_P} +DESCRIPTION="Extensible python-based build utility" +SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tar.gz" +HOMEPAGE="http://www.scons.org" + +SLOT="0" +LICENSE="as-is" +KEYWORDS="~x86 ~sparc" + +DEPEND=">=dev-lang/python-2.0" + +src_compile() { + python setup.py build +} + +src_install () { + python setup.py install --root=${D} + dodoc *.txt PKG-INFO MANIFEST + doman scons.1 +} -- cgit v0.12