Fixed Bazel deb package dependency on Ubuntu 16.04
Declare openjdk-9-jdk as Conflicts
Progress towards #1456
--
Change-Id: I67c17b78f90f81dbcc9c39bf6f3915789662fa94
Reviewed-on: https://bazel-review.googlesource.com/#/c/3951
MOS_MIGRATED_REVID=126402113
diff --git a/scripts/packages/BUILD b/scripts/packages/BUILD
index 38fc2f3..05702d1 100644
--- a/scripts/packages/BUILD
+++ b/scripts/packages/BUILD
@@ -111,6 +111,9 @@
name = "bazel-debian",
architecture = "amd64",
built_using = "bazel (HEAD)",
+ conflicts = [
+ "openjdk-9-jdk",
+ ],
data = ":debian-data",
depends = select({
"//tools/jdk:jdk7": [
diff --git a/tools/build_defs/pkg/README.md b/tools/build_defs/pkg/README.md
index 8095647..4e6b8a6 100644
--- a/tools/build_defs/pkg/README.md
+++ b/tools/build_defs/pkg/README.md
@@ -227,7 +227,7 @@
### pkg_deb
```python
-pkg_deb(name, data, package, architecture, maintainer, preinst, postinst, prerm, postrm, version, version_file, description, description_file, built_using, built_using_file, priority, section, homepage, depends, suggests, enhances, predepends, recommends)
+pkg_deb(name, data, package, architecture, maintainer, preinst, postinst, prerm, postrm, version, version_file, description, description_file, built_using, built_using_file, priority, section, homepage, depends, suggests, enhances, conflicts, predepends, recommends)
```
Create a debian package. See <a
@@ -358,7 +358,7 @@
<tr>
<td>
<code>depends</code>, <code>suggests</code>, <code>enhances</code>,
- <code>predepends</code> and <code>recommends</code>.
+ <code>conflicts</code>, <code>predepends</code> and <code>recommends</code>.
</td>
<td>
<code>String list, optional</code>
diff --git a/tools/build_defs/pkg/make_deb.py b/tools/build_defs/pkg/make_deb.py
index 54c5ee9..c232928 100644
--- a/tools/build_defs/pkg/make_deb.py
+++ b/tools/build_defs/pkg/make_deb.py
@@ -26,22 +26,16 @@
# list of debian fields : (name, mandatory, wrap[, default])
# see http://www.debian.org/doc/debian-policy/ch-controlfields.html
DEBIAN_FIELDS = [
- ('Package', True, False),
- ('Version', True, False),
+ ('Package', True, False), ('Version', True, False),
('Section', False, False, 'contrib/devel'),
('Priority', False, False, 'optional'),
- ('Architecture', True, False, 'all'),
- ('Depends', False, True, []),
- ('Recommends', False, True, []),
- ('Suggests', False, True, []),
- ('Enhances', False, True, []),
- ('Pre-Depends', False, True, []),
- ('Installed-Size', False, False),
- ('Maintainer', True, False),
- ('Description', True, True),
- ('Homepage', False, False),
- ('Built-Using', False, False, 'Bazel')
- ]
+ ('Architecture', True, False, 'all'), ('Depends', False, True, []),
+ ('Recommends', False, True, []), ('Suggests', False, True, []),
+ ('Enhances', False, True, []), ('Conflicts', False, True, []),
+ ('Pre-Depends', False, True, []), ('Installed-Size', False, False),
+ ('Maintainer', True, False), ('Description', True, True),
+ ('Homepage', False, False), ('Built-Using', False, False, 'Bazel')
+]
gflags.DEFINE_string('output', None, 'The output file, mandatory')
gflags.MarkFlagAsRequired('output')
@@ -254,20 +248,27 @@
def main(unused_argv):
- CreateDeb(FLAGS.output, FLAGS.data,
+ CreateDeb(FLAGS.output,
+ FLAGS.data,
preinst=GetFlagValue(FLAGS.preinst, False),
postinst=GetFlagValue(FLAGS.postinst, False),
prerm=GetFlagValue(FLAGS.prerm, False),
postrm=GetFlagValue(FLAGS.postrm, False),
- package=FLAGS.package, version=GetFlagValue(FLAGS.version),
+ package=FLAGS.package,
+ version=GetFlagValue(FLAGS.version),
description=GetFlagValue(FLAGS.description),
maintainer=FLAGS.maintainer,
- section=FLAGS.section, architecture=FLAGS.architecture,
- depends=FLAGS.depends, suggests=FLAGS.suggests,
- enhances=FLAGS.enhances, preDepends=FLAGS.pre_depends,
- recommends=FLAGS.recommends, homepage=FLAGS.homepage,
+ section=FLAGS.section,
+ architecture=FLAGS.architecture,
+ depends=FLAGS.depends,
+ suggests=FLAGS.suggests,
+ enhances=FLAGS.enhances,
+ preDepends=FLAGS.pre_depends,
+ recommends=FLAGS.recommends,
+ homepage=FLAGS.homepage,
builtUsing=GetFlagValue(FLAGS.built_using),
priority=FLAGS.priority,
+ conflicts=FLAGS.conflicts,
installedSize=GetFlagValue(FLAGS.installed_size))
CreateChanges(
FLAGS.changes,
diff --git a/tools/build_defs/pkg/pkg.bzl b/tools/build_defs/pkg/pkg.bzl
index 55d15f2..0f00fc3 100644
--- a/tools/build_defs/pkg/pkg.bzl
+++ b/tools/build_defs/pkg/pkg.bzl
@@ -117,6 +117,7 @@
args += ["--depends=" + d for d in ctx.attr.depends]
args += ["--suggests=" + d for d in ctx.attr.suggests]
args += ["--enhances=" + d for d in ctx.attr.enhances]
+ args += ["--conflicts=" + d for d in ctx.attr.conflicts]
args += ["--pre_depends=" + d for d in ctx.attr.predepends]
args += ["--recommends=" + d for d in ctx.attr.recommends]
@@ -181,6 +182,7 @@
"depends": attr.string_list(default=[]),
"suggests": attr.string_list(default=[]),
"enhances": attr.string_list(default=[]),
+ "conflicts": attr.string_list(default=[]),
"predepends": attr.string_list(default=[]),
"recommends": attr.string_list(default=[]),
# Implicit dependencies.