pkg equivalent of "pkg_info -R"

Michel Talon talon at lpthe.jussieu.fr
Fri Mar 7 10:02:10 UTC 2014



> Until then, you'ld have to write a shell wrapper around pkg query to
> achieve the same effect.

Here is a small python script which seems to do the job ( please excuse me, my python-fu is rusty):

niobe% cat deps.py 
#!/usr/local/bin/python


import os, sys, string

pk = sys.argv[1]

deps = []
deps1 = [pk]

def clean_ans(ans):
    return string.split(ans)[1:]

def add_deps1(deps1):
    global deps
    deps2 = []
    for pk in deps1:
        pi = os.popen("pkg info -r " + pk)
        deps3 = pi.read()
        pi.close()
        deps3 = clean_ans(deps3)
        deps = deps + deps3
        deps = set(deps)
        deps = list(deps)
        deps2  = deps2 + deps3
        deps2 = set(deps2)
        deps2 = list(deps2)
    return deps2

while (len(deps1)):
    deps1 = add_deps1(deps1)

print(deps)



Example of use

niobe% ./deps.py xf86-video-ati
['xorg-7.7', 'xorg-drivers-7.7']

Or for a big answer (and quite slow):
niobe% ./deps.py ffmpeg  
['kdemultimedia-ffmpegthumbs-4.10.5_1', 'kbruch-4.10.5', 'sweeper-4.10.5', 'kmplot-4.10.5', 'kdegraphics-thumbnailers-4.10.5', 'kdeedu-4.10.5', 'polkit-kde-0.99.1', 'kscd-4.10.5', 'granatier-4.10.5', 'kdeplasma-addons-4.10.5_1', 'kmousetool-4.10.5', 'rocs-4.10.5', 'kdegraphics-svgpart-4.10.5', 'filelight-4.10.5', 'kcharselect-4.10.5', 'ktimer-4.10.5', 'kiriki-4.10.5', 'kolf-4.10.5', 'kdeaccessibility-4.10.5', 'kdegraphics-strigi-analyzer-4.10.5', 'kcm-polkit-kde-0.0.20121008', 'kactivitymanagerd-4.10.5_3', 'kmag-4.10.5', 'kreversi-4.10.5', 'okular-4.10.5_3', 'libkcompactdisc-4.10.5', 'kcalc-4.10.5', 'libkipi-4.10.5', 'libkmahjongg-4.10.5', 'libkgapi-0.4.4', 'ktouch-4.10.5', 'kgamma-4.10.5', 'kamera-4.10.5', 'libkdegames-4.10.5', 'libkonq-4.10.5', 'print-manager-4.10.5', 'kwallet-4.10.5', 'bovo-4.10.5', 'kdegraphics-mobipocket-4.10.5_1', 'kapman-4.10.5', 'kde-4.10.5_1', 'ark-4.10.5', 'analitza-4.10.5', 'kgoldrunner-4.10.5', 'libksane-4.10.5', 'cantor-4.10.5', 'kblackbox-4.10.5', 'kgpg-4.10.5', 'nepomuk-core-4.10.5_1', 'kaccessible-4.10.5_1', 'kmix-4.10.5', 'kde-workspace-4.10.5_1', 'py27-pykde4-4.10.5_1', 'kanagram-4.10.5', 'kdegraphics-4.10.5_1', 'kfloppy-4.10.5', 'kopete-4.10.5_1', 'kstars-4.10.5', 'blinken-4.10.5', 'kdetoys-4.10.5_1', 'ksquares-4.10.5', 'pairs-4.10.5', 'kajongg-4.10.5_1', 'krfb-4.10.5', 'kde-baseapps-4.10.5_1', 'kgeography-4.10.5', 'kolourpaint-4.10.5', 'kdesdk-4.10.5_1', 'libkdeedu-4.10.5', 'kdepimlibs-4.10.5_2', 'kdeadmin-4.10.5', 'libkexiv2-4.10.5', 'kfourinline-4.10.5', 'kbreakout-4.10.5', 'kdepim-runtime-4.10.5', 'kio-audiocd-4.10.5', 'kshisen-4.10.5', 'kigo-4.10.5', 'ksnapshot-4.10.5', 'juk-4.10.5', 'katomic-4.10.5', 'kpat-4.10.5', 'kjumpingcube-4.10.5', 'kspaceduel-4.10.5', 'gwenview-4.10.5_1', 'libkcddb-4.10.5', 'lskat-4.10.5', 'ksudoku-4.10.5', 'kdepim-4.10.5_1', 'klines-4.10.5', 'kdegames-4.10.5_1', 'konquest-4.10.5', 'klettres-4.10.5', 'libktorrent-1.3.1_2', 'bomber-4.10.5', 'superkaramba-4.10.5', 'kremotecontrol-4.10.5', 'kdelibs-4.10.5_2', 'kubrick-4.10.5', 'marble-4.10.5', 'killbots-4.10.5', 'ksnakeduel-4.10.5', 'kblocks-4.10.5', 'dragon-player-4.10.5', 'ksirk-4.10.5', 'krdc-4.10.5', 'kmouth-4.10.5', 'kdeartwork-4.10.5_1', 'kdewebdev-4.10.5', 'kollision-4.10.5', 'konsole-4.10.5', 'kate-4.10.5_1', 'kdemultimedia-4.10.5', 'kde-runtime-4.10.5_3', 'kdf-4.10.5', 'parley-4.10.5', 'kalgebra-4.10.5', 'kde-base-artwork-4.10.5', 'kruler-4.10.5', 'step-4.10.5_1', 'kdenetwork-4.10.5_1', 'kturtle-4.10.5', 'knetwalk-4.10.5', 'kdeutils-4.10.5', 'kbounce-4.10.5', 'kig-4.10.5', 'libstreamanalyzer-0.7.8_2', 'ja-kiten-4.10.5', 'khangman-4.10.5', 'knavalbattle-4.10.5', 'ktuberling-4.10.5', 'jovie-4.10.5_1', 'libkdcraw-4.10.5', 'palapeli-4.10.5', 'kmahjongg-4.10.5', 'nepomuk-widgets-4.10.5', 'kcolorchooser-4.10.5', 'kde-wallpapers-4.10.5', 'kmines-4.10.5', 'kwordquiz-4.10.5', 'libkolab-0.4.2', 'kactivities-4.10.5_3', 'ksaneplugin-4.10.5', 'kdiamond-4.10.5']





--

Michel Talon
talon at lpthe.jussieu.fr





-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 2825 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-questions/attachments/20140307/8793ab75/attachment.bin>


More information about the freebsd-questions mailing list