@@ -216,7 +216,8 @@ def get_package_version(package_path: str, defines_path: str) -> str:
216
216
217
217
# Get reverse library dependency for specified package
218
218
def get_revdeps (
219
- package_name : str , alldeps : bool , include : list [str ], exclude : list [str ]
219
+ package_name : str , alldeps : bool , include : list [str ], exclude : list [str ],
220
+ sorevdeps : list [str ]
220
221
) -> list [dict [str , str ]]:
221
222
revdeps_list = []
222
223
try :
@@ -225,20 +226,28 @@ def get_revdeps(
225
226
)
226
227
response .raise_for_status ()
227
228
package_info = response .json ()
228
- revdeps_list = [
229
- package
230
- for group in package_info ["sobreaks" ]
231
- for package in group
232
- if package not in revdeps_list
233
- ]
234
- if package_info ["sobreaks_circular" ] != None :
235
- revdeps_list += package_info ["sobreaks_circular" ]
236
- if alldeps :
237
- revdeps_list += [
238
- package ["package" ]
239
- for group in package_info ["revdeps" ]
240
- for package in group ["deps" ]
241
- if package ["package" ] not in revdeps_list
229
+ if sorevdeps is None :
230
+ revdeps_list = [
231
+ package
232
+ for group in package_info ["sobreaks" ]
233
+ for package in group
234
+ if package not in revdeps_list
235
+ ]
236
+ if package_info ["sobreaks_circular" ] != None :
237
+ revdeps_list += package_info ["sobreaks_circular" ]
238
+ if alldeps :
239
+ revdeps_list += [
240
+ package ["package" ]
241
+ for group in package_info ["revdeps" ]
242
+ for package in group ["deps" ]
243
+ if package ["package" ] not in revdeps_list
244
+ ]
245
+ else :
246
+ revdeps_list = [
247
+ package
248
+ for soname in sorevdeps
249
+ for package in package_info ["sorevdeps" ][soname ]
250
+ if package not in revdeps_list
242
251
]
243
252
except :
244
253
logger .warning (
@@ -403,6 +412,9 @@ def main():
403
412
parser .add_argument (
404
413
"-p" , "--pkgbreak" , action = "store_true" , help = "Generate PKGBREAK"
405
414
)
415
+ parser .add_argument (
416
+ "-s" , "--sorevdeps" , nargs = "+" , help = "Use specific soname to generate reverse dependencies"
417
+ )
406
418
parser .add_argument (
407
419
"-b" ,
408
420
"--bump" ,
@@ -438,7 +450,8 @@ def main():
438
450
package_path , defines_path = search_package_path (args .package )
439
451
version = get_package_version (package_path , defines_path )
440
452
441
- revdeps = get_revdeps (args .package , args .alldeps , args .include , args .exclude )
453
+ revdeps = get_revdeps (args .package , args .alldeps , args .include ,
454
+ args .exclude , args .sorevdeps )
442
455
443
456
if args .rebuilds :
444
457
revdeps_path_list_str = gen_rebuilds_list_string (revdeps , args )
0 commit comments