summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWilliam Deegan <bill@baddogconsulting.com>2018-09-28 17:43:58 (GMT)
committerGitHub <noreply@github.com>2018-09-28 17:43:58 (GMT)
commit748b05d34deacb718a57b2463aa9a1f10958740c (patch)
tree05b2f378d67e930ab2db4f6a0d38064599a29eb4
parentea56f6332709476cf81f758bd357001787f466da (diff)
parent4d5876fc98ef438b8d92d211dfdd91b4136f483e (diff)
downloadSCons-748b05d34deacb718a57b2463aa9a1f10958740c.zip
SCons-748b05d34deacb718a57b2463aa9a1f10958740c.tar.gz
SCons-748b05d34deacb718a57b2463aa9a1f10958740c.tar.bz2
Merge pull request #3203 from mwichmann/packaging-xz
Add xz compression to tar packaging choices.
-rw-r--r--bin/scons_dev_master.py19
-rw-r--r--src/CHANGES.txt1
-rw-r--r--src/engine/SCons/Tool/packaging/__init__.py6
-rw-r--r--src/engine/SCons/Tool/packaging/__init__.xml12
-rw-r--r--src/engine/SCons/Tool/packaging/src_tarbz2.py2
-rw-r--r--src/engine/SCons/Tool/packaging/src_targz.py2
-rw-r--r--src/engine/SCons/Tool/packaging/src_tarxz.py43
-rw-r--r--src/engine/SCons/Tool/packaging/tarbz2.py2
-rw-r--r--src/engine/SCons/Tool/packaging/targz.py2
-rw-r--r--src/engine/SCons/Tool/packaging/tarxz.py44
-rw-r--r--test/packaging/guess-package-name.py25
-rw-r--r--test/packaging/tar/xz_packaging.py74
12 files changed, 210 insertions, 22 deletions
diff --git a/bin/scons_dev_master.py b/bin/scons_dev_master.py
index 3d67cb5..4fa5899 100644
--- a/bin/scons_dev_master.py
+++ b/bin/scons_dev_master.py
@@ -11,11 +11,12 @@ import sys
from Command import CommandRunner, Usage
INITIAL_PACKAGES = [
- 'mercurial',
+ 'git',
]
INSTALL_PACKAGES = [
'wget',
+ 'xz-utils',
]
PYTHON_PACKAGES = [
@@ -60,8 +61,7 @@ DOCUMENTATION_PACKAGES = [
'gcc-doc',
'pkg-config',
'python-doc',
- 'sun-java5-doc',
- 'sun-java6-doc',
+ 'openjdk-8-doc',
'swig-doc',
'texlive-doc',
]
@@ -70,21 +70,22 @@ TESTING_PACKAGES = [
'bison',
'cssc',
'cvs',
+ 'hg',
'flex',
'g++',
'gcc',
'gcj',
'ghostscript',
-# 'libgcj7-dev',
'm4',
'openssh-client',
'openssh-server',
'python-profiler',
'python-all-dev',
+ 'python3-all-dev',
+ 'pypy-dev',
'rcs',
'rpm',
-# 'sun-java5-jdk',
- 'sun-java6-jdk',
+ 'openjdk-8-jdk',
'swig',
'texlive-base-bin',
'texlive-extra-utils',
@@ -131,7 +132,7 @@ Usage: scons_dev_master.py [-hnqy] [--password PASSWORD] [--username USER]
buildbot Install packages for running BuildBot
"""
- scons_url = 'https://bdbaddog@bitbucket.org/scons/scons'
+ scons_url = 'https://github.com/SCons/scons.git'
sudo = 'sudo'
password = '""'
username = 'guest'
@@ -180,13 +181,15 @@ Usage: scons_dev_master.py [-hnqy] [--password PASSWORD] [--username USER]
cmd.run('%(sudo)s apt-get %(yesflag)s upgrade')
elif arg == 'checkout':
cmd.run('%(sudo)s apt-get %(yesflag)s install %(initial_packages)s')
- cmd.run('hg clone" %(scons_url)s')
+ cmd.run('git clone" %(scons_url)s')
elif arg == 'building':
cmd.run('%(sudo)s apt-get %(yesflag)s install %(building_packages)s')
elif arg == 'docs':
cmd.run('%(sudo)s apt-get %(yesflag)s install %(doc_packages)s')
elif arg == 'testing':
cmd.run('%(sudo)s apt-get %(yesflag)s install %(testing_packages)s')
+ #TODO: maybe copy ipkg-build from openwrt git
+ #cmd.run('%(sudo)s wget https://raw.githubusercontent.com/openwrt/openwrt/master/scripts/ipkg-build SOMEWHERE')
elif arg == 'buildbot':
cmd.run('%(sudo)s apt-get %(yesflag)s install %(buildbot_packages)s')
elif arg == 'python-versions':
diff --git a/src/CHANGES.txt b/src/CHANGES.txt
index 52ab116..6bbff3e 100644
--- a/src/CHANGES.txt
+++ b/src/CHANGES.txt
@@ -151,6 +151,7 @@ RELEASE 3.1.0.alpha.yyyymmdd - NEW DATE WILL BE INSERTED HERE
- Test for tar packaging fixups
- Stop using deprecated unittest asserts
- messages in strip-install-dir test now os-neutral
+ - Add xz compression format to packaging choices.
From Hao Wu
- typo in customized decider example in user guide
diff --git a/src/engine/SCons/Tool/packaging/__init__.py b/src/engine/SCons/Tool/packaging/__init__.py
index 4c92022..2e98b07 100644
--- a/src/engine/SCons/Tool/packaging/__init__.py
+++ b/src/engine/SCons/Tool/packaging/__init__.py
@@ -37,7 +37,11 @@ from SCons.Warnings import warn, Warning
import os
import imp
-__all__ = [ 'src_targz', 'src_tarbz2', 'src_zip', 'tarbz2', 'targz', 'zip', 'rpm', 'msi', 'ipk' ]
+__all__ = [
+ 'src_targz', 'src_tarbz2', 'src_xz', 'src_zip',
+ 'targz', 'tarbz2', 'xz', 'zip',
+ 'rpm', 'msi', 'ipk',
+]
#
# Utility and Builder function
diff --git a/src/engine/SCons/Tool/packaging/__init__.xml b/src/engine/SCons/Tool/packaging/__init__.xml
index 348b2be..9b8eecf 100644
--- a/src/engine/SCons/Tool/packaging/__init__.xml
+++ b/src/engine/SCons/Tool/packaging/__init__.xml
@@ -64,13 +64,15 @@ the following packagers available:
<para>
* msi - Microsoft Installer
- * rpm - Redhat Package Manger
+ * rpm - RPM Package Manger
* ipkg - Itsy Package Management System
- * tarbz2 - compressed tar
- * targz - compressed tar
+ * tarbz2 - bzip2 compressed tar
+ * targz - gzip compressed tar
+ * tarxz - xz compressed tar
* zip - zip file
- * src_tarbz2 - compressed tar source
- * src_targz - compressed tar source
+ * src_tarbz2 - bzip2 compressed tar source
+ * src_targz - gzip compressed tar source
+ * src_tarxz - xz compressed tar source
* src_zip - zip file source
</para>
diff --git a/src/engine/SCons/Tool/packaging/src_tarbz2.py b/src/engine/SCons/Tool/packaging/src_tarbz2.py
index 04ea71b..d132291 100644
--- a/src/engine/SCons/Tool/packaging/src_tarbz2.py
+++ b/src/engine/SCons/Tool/packaging/src_tarbz2.py
@@ -1,4 +1,4 @@
-"""SCons.Tool.Packaging.tarbz2
+"""SCons.Tool.Packaging.src_tarbz2
The tarbz2 SRC packager.
"""
diff --git a/src/engine/SCons/Tool/packaging/src_targz.py b/src/engine/SCons/Tool/packaging/src_targz.py
index 62d6f5d..7b759dc 100644
--- a/src/engine/SCons/Tool/packaging/src_targz.py
+++ b/src/engine/SCons/Tool/packaging/src_targz.py
@@ -1,4 +1,4 @@
-"""SCons.Tool.Packaging.targz
+"""SCons.Tool.Packaging.src_targz
The targz SRC packager.
"""
diff --git a/src/engine/SCons/Tool/packaging/src_tarxz.py b/src/engine/SCons/Tool/packaging/src_tarxz.py
new file mode 100644
index 0000000..5889b8a
--- /dev/null
+++ b/src/engine/SCons/Tool/packaging/src_tarxz.py
@@ -0,0 +1,43 @@
+"""SCons.Tool.Packaging.src_tarxz
+
+The tarxz SRC packager.
+"""
+
+#
+# __COPYRIGHT__
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+
+from SCons.Tool.packaging import putintopackageroot
+
+def package(env, target, source, PACKAGEROOT, **kw):
+ bld = env['BUILDERS']['Tar']
+ bld.set_suffix('.tar.xz')
+ target, source = putintopackageroot(target, source, env, PACKAGEROOT, honor_install_location=0)
+ return bld(env, target, source, TARFLAGS='-Jc')
+
+# Local Variables:
+# tab-width:4
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=4 shiftwidth=4:
diff --git a/src/engine/SCons/Tool/packaging/tarbz2.py b/src/engine/SCons/Tool/packaging/tarbz2.py
index 3806e76..392bf95 100644
--- a/src/engine/SCons/Tool/packaging/tarbz2.py
+++ b/src/engine/SCons/Tool/packaging/tarbz2.py
@@ -1,6 +1,6 @@
"""SCons.Tool.Packaging.tarbz2
-The tarbz2 SRC packager.
+The tarbz2 packager.
"""
#
diff --git a/src/engine/SCons/Tool/packaging/targz.py b/src/engine/SCons/Tool/packaging/targz.py
index acb6344..4130f32 100644
--- a/src/engine/SCons/Tool/packaging/targz.py
+++ b/src/engine/SCons/Tool/packaging/targz.py
@@ -1,6 +1,6 @@
"""SCons.Tool.Packaging.targz
-The targz SRC packager.
+The targz packager.
"""
#
diff --git a/src/engine/SCons/Tool/packaging/tarxz.py b/src/engine/SCons/Tool/packaging/tarxz.py
new file mode 100644
index 0000000..747296b
--- /dev/null
+++ b/src/engine/SCons/Tool/packaging/tarxz.py
@@ -0,0 +1,44 @@
+"""SCons.Tool.Packaging.tarxz
+
+The tarxz packager.
+"""
+
+#
+# __COPYRIGHT__
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+
+from SCons.Tool.packaging import stripinstallbuilder, putintopackageroot
+
+def package(env, target, source, PACKAGEROOT, **kw):
+ bld = env['BUILDERS']['Tar']
+ bld.set_suffix('.tar.xz')
+ target, source = putintopackageroot(target, source, env, PACKAGEROOT)
+ target, source = stripinstallbuilder(target, source, env)
+ return bld(env, target, source, TARFLAGS='-Jc')
+
+# Local Variables:
+# tab-width:4
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=4 shiftwidth=4:
diff --git a/test/packaging/guess-package-name.py b/test/packaging/guess-package-name.py
index 33c3329..8ba4c9e 100644
--- a/test/packaging/guess-package-name.py
+++ b/test/packaging/guess-package-name.py
@@ -81,9 +81,9 @@ env.Package( NAME = 'libfoo',
source = [ 'src/main.c', 'SConstruct' ] )
""")
-test.run(stderr = None)
+test.run(stderr=None)
-test.must_exist( 'src.tar.gz' )
+test.must_exist('src.tar.gz')
#
# TEST: default package name creation with overridden packager.
@@ -98,9 +98,26 @@ env.Package( NAME = 'libfoo',
source = [ 'src/main.c', 'SConstruct' ] )
""")
-test.run(stderr = None)
+test.run(stderr=None)
-test.must_exist( 'libfoo-1.2.3.tar.bz2' )
+test.must_exist('libfoo-1.2.3.tar.bz2')
+
+#
+# TEST: default package name creation with another packager.
+#
+
+test.write('SConstruct', """
+env=Environment(tools=['default', 'packaging'])
+env.Program( 'src/main.c' )
+env.Package( NAME = 'libfoo',
+ VERSION = '1.2.3',
+ PACKAGETYPE = 'src_tarxz',
+ source = [ 'src/main.c', 'SConstruct' ] )
+""")
+
+test.run(stderr=None)
+
+test.must_exist('libfoo-1.2.3.tar.xz')
test.pass_test()
diff --git a/test/packaging/tar/xz_packaging.py b/test/packaging/tar/xz_packaging.py
new file mode 100644
index 0000000..194b110
--- /dev/null
+++ b/test/packaging/tar/xz_packaging.py
@@ -0,0 +1,74 @@
+#!/usr/bin/env python
+#
+# __COPYRIGHT__
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+
+"""
+This tests the SRC xz packager, which does the following:
+ - create a tar package from the specified files
+"""
+
+import TestSCons
+
+python = TestSCons.python
+
+test = TestSCons.TestSCons()
+
+tar = test.detect('TAR', 'tar')
+if not tar:
+ test.skip_test('tar not found, skipping test\n')
+
+xz = test.where_is('xz')
+if not xz:
+ test.skip_test('tar found, but helper xz not found, skipping test\n')
+
+test.subdir('src')
+
+test.write([ 'src', 'main.c'], r"""
+int main( int argc, char* argv[] )
+{
+ return 0;
+}
+""")
+
+test.write('SConstruct', """
+Program( 'src/main.c' )
+env=Environment(tools=['default', 'packaging'])
+env.Package( PACKAGETYPE = 'src_tarxz',
+ target = 'src.tar.xz',
+ PACKAGEROOT = 'test',
+ source = [ 'src/main.c', 'SConstruct' ] )
+""")
+
+test.run(arguments='', stderr=None)
+
+test.must_exist('src.tar.xz')
+
+test.pass_test()
+
+# Local Variables:
+# tab-width:4
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=4 shiftwidth=4: