From: Daniel Martí Date: Sun, 31 Jan 2016 13:26:26 +0000 (+0000) Subject: Merge branch 'licenses' into 'master' X-Git-Tag: 0.6.0~20 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=d180f4f8c46b39be2b9db1906916d22517fdbbab;hp=c773fdf633d703fb56a1026fdc365239de86a0ba;p=fdroidserver.git Merge branch 'licenses' into 'master' wp-fdroid: Linkify more licenses See merge request !90 --- diff --git a/buildserver/cookbooks/fdroidbuild-general/recipes/default.rb b/buildserver/cookbooks/fdroidbuild-general/recipes/default.rb index ce46c6b6..e70de6fe 100644 --- a/buildserver/cookbooks/fdroidbuild-general/recipes/default.rb +++ b/buildserver/cookbooks/fdroidbuild-general/recipes/default.rb @@ -7,7 +7,7 @@ execute 'set_debian_mirror' do end execute "jessie_backports" do - command "echo 'deb http://http.debian.net/debian jessie-backports main' > /etc/apt/sources.list.d/backports.list" + command "echo 'deb #{debian_mirror} jessie-backports main' > /etc/apt/sources.list.d/backports.list" only_if "grep jessie /etc/apt/sources.list" end diff --git a/docs/fdroid.texi b/docs/fdroid.texi index e57b4a12..96545d73 100644 --- a/docs/fdroid.texi +++ b/docs/fdroid.texi @@ -117,7 +117,7 @@ VirtualBox (debian package virtualbox) @item Ruby (debian packages ruby and rubygems) @item -Vagrant (unpackaged, tested on v1.4.3) +Vagrant (debian package vagrant - 1.4.x or higher required) @item vagrant-cachier plugin (unpackaged): `vagrant plugin install vagrant-cachier` @item diff --git a/examples/makebuildserver.config.py b/examples/makebuildserver.config.py index 1d4bd0d3..cc536844 100644 --- a/examples/makebuildserver.config.py +++ b/examples/makebuildserver.config.py @@ -38,3 +38,9 @@ # Set to True if your base box is 64 bit (e.g. testing32.box isn't) # arch64 = True + +# If this is running on an older machine or on a virtualized system, +# it can run a lot slower. If the provisioning fails with a warning +# about the timeout, extend the timeout here. (default: 600 seconds) +# +# boot_timeout = 1200 diff --git a/fdroidserver/build.py b/fdroidserver/build.py index 463e6057..021e1041 100644 --- a/fdroidserver/build.py +++ b/fdroidserver/build.py @@ -178,16 +178,15 @@ def get_clean_vm(reset=False): p = subprocess.Popen(['vagrant', '--version'], stdout=subprocess.PIPE) - vver = p.communicate()[0] + vver = p.communicate()[0].strip().split(' ')[1] + if vver.split('.')[0] != '1' or int(vver.split('.')[1]) < 4: + raise BuildException("Unsupported vagrant version {0}".format(vver)) + with open(os.path.join('builder', 'Vagrantfile'), 'w') as vf: - if vver.startswith('Vagrant version 1.2'): - vf.write('Vagrant.configure("2") do |config|\n') - vf.write('config.vm.box = "buildserver"\n') - vf.write('end\n') - else: - vf.write('Vagrant::Config.run do |config|\n') - vf.write('config.vm.box = "buildserver"\n') - vf.write('end\n') + vf.write('Vagrant.configure("2") do |config|\n') + vf.write('config.vm.box = "buildserver"\n') + vf.write('config.vm.synced_folder ".", "/vagrant", disabled: true\n') + vf.write('end\n') logging.info("Starting new build server") retcode, _ = vagrant(['up'], cwd='builder') diff --git a/fdroidserver/common.py b/fdroidserver/common.py index 60d1a7c7..a20aa59b 100644 --- a/fdroidserver/common.py +++ b/fdroidserver/common.py @@ -1072,19 +1072,22 @@ def parse_androidmanifests(paths, app): if matches: vercode = matches.group(1) else: - xml = parse_xml(path) - if "package" in xml.attrib: - s = xml.attrib["package"].encode('utf-8') - if app_matches_packagename(app, s): - package = s - if "{http://schemas.android.com/apk/res/android}versionName" in xml.attrib: - version = xml.attrib["{http://schemas.android.com/apk/res/android}versionName"].encode('utf-8') - base_dir = os.path.dirname(path) - version = retrieve_string_singleline(base_dir, version) - if "{http://schemas.android.com/apk/res/android}versionCode" in xml.attrib: - a = xml.attrib["{http://schemas.android.com/apk/res/android}versionCode"].encode('utf-8') - if string_is_integer(a): - vercode = a + try: + xml = parse_xml(path) + if "package" in xml.attrib: + s = xml.attrib["package"].encode('utf-8') + if app_matches_packagename(app, s): + package = s + if "{http://schemas.android.com/apk/res/android}versionName" in xml.attrib: + version = xml.attrib["{http://schemas.android.com/apk/res/android}versionName"].encode('utf-8') + base_dir = os.path.dirname(path) + version = retrieve_string_singleline(base_dir, version) + if "{http://schemas.android.com/apk/res/android}versionCode" in xml.attrib: + a = xml.attrib["{http://schemas.android.com/apk/res/android}versionCode"].encode('utf-8') + if string_is_integer(a): + vercode = a + except Exception: + logging.warning("Problem with xml at {0}".format(path)) # Remember package name, may be defined separately from version+vercode if package is None: diff --git a/fdroidserver/gpgsign.py b/fdroidserver/gpgsign.py index 15c4deeb..07b0b155 100644 --- a/fdroidserver/gpgsign.py +++ b/fdroidserver/gpgsign.py @@ -63,6 +63,8 @@ def main(): '--detach-sig'] if 'gpghome' in config: gpgargs.extend(['--homedir', config['gpghome']]) + if 'gpgkey' in config: + gpgargs.extend(['--local-user', config['gpgkey']]) gpgargs.append(os.path.join(output_dir, apkfilename)) p = FDroidPopen(gpgargs) if p.returncode != 0: diff --git a/fdroidserver/scanner.py b/fdroidserver/scanner.py index dde02977..30aaddf8 100644 --- a/fdroidserver/scanner.py +++ b/fdroidserver/scanner.py @@ -82,6 +82,7 @@ def scan_source(build_dir, root_dir, build): 'oss.sonatype.org/content/repositories/snapshots', 'oss.sonatype.org/content/repositories/releases', 'oss.sonatype.org/content/groups/public', + 'clojars.org/repo', # Clojure free software libs ] ] diff --git a/makebuildserver b/makebuildserver index 4e575a09..aeb5ebbc 100755 --- a/makebuildserver +++ b/makebuildserver @@ -41,16 +41,21 @@ parser.add_option("-v", "--verbose", action="store_true", default=False, help="Spew out even more information than normal") parser.add_option("-c", "--clean", action="store_true", default=False, help="Build from scratch, rather than attempting to update the existing server") -parser.add_option("--debian-mirror", default="http://http.debian.net/debian/", - help="Use the specified Debian mirror in the box's /etc/apt/sources.list.") options, args = parser.parse_args() # set up default config +cachedir = os.path.join(os.getenv('HOME'), '.cache', 'fdroidserver') config = { 'arch64': False, 'basebox': 'jessie32', - 'baseboxurl': 'https://f-droid.org/jessie32.box', - 'cachedir': os.path.join(os.getenv('HOME'), '.cache', 'fdroidserver'), + # TODO in py3, convert this to pathlib.Path(absolute_path_string).as_uri() + 'baseboxurl': [ + 'file://' + os.path.join(cachedir, 'jessie32.box'), + 'https://f-droid.org/jessie32.box', + ], + 'debian_mirror': 'http://http.debian.net/debian/', + 'boot_timeout': 600, + 'cachedir': cachedir, 'cpus': 1, 'memory': 3584, } @@ -349,11 +354,14 @@ Vagrant.configure("2") do |config| v.customize ["modifyvm", :id, "--cpus", "{3}"] end + config.vm.boot_timeout = {4} + config.vm.provision :shell, :path => "fixpaths.sh" """.format(config['basebox'], baseboxurl, config['memory'], - config.get('cpus', 1)) + config.get('cpus', 1), + config['boot_timeout']) if 'aptproxy' in config and config['aptproxy']: vagrantfile += """ config.vm.provision :shell, :inline => 'sudo echo "Acquire::http {{ Proxy \\"{0}\\"; }};" > /etc/apt/apt.conf.d/02proxy && sudo apt-get update' @@ -378,7 +386,7 @@ vagrantfile += """ chef.add_recipe "kivy" end end -""" % (options.debian_mirror) +""" % (config['debian_mirror']) # Check against the existing Vagrantfile, and if they differ, we need to # create a new box: