@@ -7,7 +7,7 @@ based on: https://github.com/bazel-contrib/rules-template/blob/0dadcb716f06f6728
7
7
8
8
load ("@bazel_features//:features.bzl" , "bazel_features" )
9
9
load ("@bazel_tools//tools/build_defs/repo:http.bzl" , "http_jar" )
10
- load ("//internal:rpm.bzl" , rpm_repository = "rpm" )
10
+ load ("//internal:rpm.bzl" , null_rpm_repository = "null_rpm" , rpm_repository = "rpm" )
11
11
load (":repositories.bzl" , "bazeldnf_register_toolchains" )
12
12
13
13
_DEFAULT_NAME = "bazeldnf"
@@ -159,6 +159,10 @@ _alias_repository = repository_rule(
159
159
},
160
160
)
161
161
162
+ def _to_rpm_repo_name (prefix , rpm_name ):
163
+ name = rpm_name .replace ("+" , "plus" )
164
+ return "{}{}" .format (prefix , name )
165
+
162
166
def _handle_lock_file (config , module_ctx , registered_rpms = {}):
163
167
if not config .lock_file :
164
168
fail ("No lock file provided for %s" % config .name )
@@ -200,8 +204,7 @@ def _handle_lock_file(config, module_ctx, registered_rpms = {}):
200
204
fail ("invalid entry in %s for %s" % (config .lock_file , rpm_name ))
201
205
rpm_name = urls [0 ].rsplit ("/" , 1 )[- 1 ]
202
206
203
- name = rpm_name .replace ("+" , "plus" )
204
- name = "{}{}" .format (config .rpm_repository_prefix , name )
207
+ name = _to_rpm_repo_name (config .rpm_repository_prefix , rpm_name )
205
208
if name in registered_rpms :
206
209
continue
207
210
registered_rpms [name ] = 1
@@ -218,6 +221,16 @@ def _handle_lock_file(config, module_ctx, registered_rpms = {}):
218
221
** rpm
219
222
)
220
223
224
+ # if there's targets without matching RPMs we need to create a null target
225
+ # so that consumers have something consistent that they can depend on
226
+ for target in lock_file_json .get ("targets" , []):
227
+ name = _to_rpm_repo_name (config .rpm_repository_prefix , target )
228
+ if name in registered_rpms :
229
+ continue
230
+
231
+ null_rpm_repository (name = name )
232
+ registered_rpms [name ] = 1
233
+
221
234
repository_args ["rpms" ] = ["@@%s//rpm" % x for x in registered_rpms .keys ()]
222
235
223
236
_alias_repository (
0 commit comments