You are not logged in.

#1 2014-09-12 02:15:39

Amanda S
Member
Registered: 2013-09-21
Posts: 276
Website

[SOLVED] Discover all dependencies from dozens of libraries?

I need to install a few packages but before I do it I need to check every dependency to see if I disagree with any of their licenses or publishers. The packages are:

openscenegraph git fltk plib cmake svn lib32-openal cvs freealut libpng scons python-imaging freeglut abs gettext boost libpng12 openexr ogre

I went to the packages page and saw the dependency of each package, but in a very "shallow" way. Each package has many dependencies, which also have many dependencies, and putting them ALL together would consume many hours. I though pacman would display everything that was going to be installed but here's the output:

$ sudo pacman -S openscenegraph git fltk plib cmake svn lib32-openal cvs freealut libpng scons python-imaging freeglut abs gettext boost libpng12 openexr ogre
[sudo] password for junior: 
warning: libpng-1.6.13-1 is up to date -- reinstalling
warning: gettext-0.19.2-1 is up to date -- reinstalling
warning: openexr-2.1.0-1 is up to date -- reinstalling
resolving dependencies...
looking for inter-conflicts...

Packages (31): apr-1.5.1-1  apr-util-1.5.3-4  freeimage-3.16.0-2  libxvmc-1.0.8-1  nvidia-cg-toolkit-3.1-3  ois-1.3-3  perl-error-0.17022-1  rsync-3.1.1-2
               serf-1.3.7-1  tinyxml-2.6.2-3  xine-lib-1.2.6-1  zziplib-0.13.62-2  abs-2.4.4-2  boost-1.56.0-1  cmake-3.0.1-1  cvs-1.11.23-9  fltk-1.3.2-5
               freealut-1.1.0-5  freeglut-2.8.1-1  gettext-0.19.2-1  git-2.1.0-1  lib32-openal-1.16.0-1  libpng-1.6.13-1  libpng12-1.2.51-1  ogre-1.9.0-7
               openexr-2.1.0-1  openscenegraph-3.2.1-1  plib-1.8.5-5  python2-pillow-2.5.3-2  scons-2.3.2-1  subversion-1.8.10-1

Total Download Size:    158.63 MiB
Total Installed Size:   542.15 MiB
Net Upgrade Size:       529.49 MiB

:: Proceed with installation? [Y/n] n

Here's the shallow package dependency I got from a few minutes worth of work:

openscenegraph  

    curl
    giflib
    jasper
    librsvg
    pth
    xine-lib
    gdal (optional)
    libvncserver (optional)
    openexr (optional)
    poppler-glib (optional)
    qt4 (optional)
    cmake (make)
    ffmpeg-compat (make)
    libvncserver (make)
    mesa (make)
    qt4 (make)

git

    curl
    expat>=2.0
    openssl
    pcre
    perl>=5.14.0
    perl-error
    cvsps2 (virtual) (optional) - git cvsimport
    gnome-keyring (optional) - GNOME keyring credential helper
    perl-authen-sasl (optional) - git send-email TLS support
    perl-libwww (optional) - git svn
    perl-mime-tools (optional) - git send-email
    perl-net-smtp-ssl (optional) - git send-email TLS support
    perl-term-readkey (optional) - git svn
    python2 (optional) - various helper scripts
    subversion (optional) - git svn
    tk (optional) - gitk and git gui
    asciidoc (make)
    emacs (make)
    libgnome-keyring (make)
    python2 (make)
    xmlto (make)

fltk

    desktop-file-utils
    hicolor-icon-theme
    libjpeg (libjpeg-turbo)
    libxcursor
    libxft
    libxinerama
    xdg-utils
    alsa-lib (make)
    desktop-file-utils (make)
    doxygen (make)
    glu (make)
    libjpeg (libjpeg-turbo) (make)
    libxcursor (make)
    libxft (make)
    libxinerama (make)
    mesa (make)

plib


    libxi (make)
    libxmu (make)
    mesa-libgl (make)

cmake


    curl
    libarchive
    shared-mime-info
    libxkbcommon-x11 (optional) - cmake-gui
    qt5-base (optional) - cmake-gui
    emacs (make)
    python-sphinx (make)
    qt5-base (make)

svn

   apr-1.5.1-1  
   apr-util-1.5.3-4  
   serf-1.3.7-1  
   subversion-1.8.10-1


lib32-openal


    lib32-glibc
    openal
    cmake (make)
    gcc-multilib (make)
    lib32-alsa-lib (make)
    lib32-libpulse (make)
    lib32-portaudio (make)
    lib32-sdl (make)
    pkgconfig (pkg-config) (make)

cvs


    krb5
    zlib
    inetutils (optional) - for using cvs over rsh
    openssh (optional) - for using cvs over ssh
    vim (make)

freealut

   openal


libpng

   zlib

scons

   python2

python-imaging

   python2-pillow

freeglut


    libgl (mesa-libgl, nvidia-libgl, nvidia-304xx-libgl)
    libxi
    libxrandr
    glu (make)
    libxxf86vm (make)
    mesa (make)


abs


    bash
    rsync


gettext

   acl
   gcc-libs
   glib2
   libunistring
   sh (bash)
   git (optional) 

boost

   boost-libs=1.56.0
   boost-build (virtual) (optional) - to use boost jam for building your project.
   python (optional) - for python bindings
   python2 (optional) - for python2 bindings
   bzip2 (make)
   icu>=53.1 (make)
   openmpi (make)
   python (make)
   python2 (make)
   zlib 
   
libpng12

   zlib
   ilmbase
   zlib

ogre


    boost-libs
    freeimage
    freetype2
    glu
    libxaw
    libxrandr
    nvidia-cg-toolkit
    ois
    tinyxml
    zziplib
    boost (optional) - for developing using ogre
    cppunit (optional) - unit testing
    intel-tbb (optional) - better threading support
    ogre-docs (optional) - documentation
    poco (virtual) (optional) - portability
    boost (make)
    cmake (make)
    doxygen (make)
    graphviz (make)
    mercurial (make)
    mesa (make)
    ttf-dejavu (make)

I would use pactree but it can't display everything

$ pactree openscenegraph
error: package 'openscenegraph' not found

$ sudo pactree plib
error: package 'plib' not found

$ pactree openscenegraph-3.2.1-1
error: package 'openscenegraph-3.2.1-1' not found

Last edited by Amanda S (2014-09-12 03:57:07)


If it ain't broke, you haven't tweaked it enough...

Offline

#2 2014-09-12 02:39:30

emeres
Member
Registered: 2013-10-08
Posts: 1,570

Re: [SOLVED] Discover all dependencies from dozens of libraries?

pactree -s openscenegraph
man pactree

Offline

#3 2014-09-12 03:00:33

progandy
Member
Registered: 2012-05-17
Posts: 5,322

Re: [SOLVED] Discover all dependencies from dozens of libraries?

pactree with expac works really well:

$ pactree -su openscenegraph | xargs expac "%n : %L"  
giflib : MIT
glibc : GPL  LGPL
linux-api-headers : GPL2
tzdata : GPL
filesystem : GPL
iana-etc : custom
jasper : custom:JasPer2.0
libjpeg-turbo : GPL  custom
libjpeg-turbo : GPL  custom
librsvg : LGPL
gdk-pixbuf2 : LGPL2.1
glib2 : LGPL
pcre : BSD
gcc-libs-multilib : GPL  LGPL  FDL  custom
readline : GPL
ncurses : MIT
zlib : custom
bzip2 : custom
bash : GPL
libffi : MIT
libpng : custom
libtiff : custom
xz : GPL  LGPL  custom
libx11 : custom
libxcb : custom
xcb-proto : custom
libxdmcp : custom
xproto : custom
libxau : custom
kbproto : custom
pango : LGPL
libthai : LGPL
libdatrie : LGPL
cairo-infinality-ultimate : LGPL  MPL
libxrender : custom
renderproto : custom
libxext : custom
xextproto : custom
fontconfig-infinality-ultimate : custom  MIT
expat : custom
freetype2-infinality-ultimate : GPL  MIT
harfbuzz : MIT
graphite : LGPL  GPL  custom
pixman : custom
mesa-git : custom
libdrm-git : custom
libpciaccess : custom
wayland : MIT
libxxf86vm : custom
xf86vidmodeproto : custom
libxdamage : custom
libxfixes : custom
fixesproto : custom
damageproto : custom
libxshmfence : GPL
systemd : GPL2  LGPL2.1  MIT
acl : LGPL
attr : LGPL
dbus : GPL  custom
libdbus : GPL  custom
kbd : GPL
pam : GPL2
cracklib : GPL
libtirpc : BSD
krb5 : custom
e2fsprogs : GPL  LGPL  MIT
libutil-linux : GPL2
libldap : custom
libsasl : custom
openssl : custom:BSD
perl : GPL  PerlArtistic
gdbm : GPL3
db : custom
keyutils : GPL2  LGPL2.1
pambase : GPL
kmod : GPL2
hwids : GPL2
libcap : GPL2
libgcrypt : LGPL
libgpg-error : LGPL
libsystemd : GPL2
libseccomp : LGPL2.1
util-linux : GPL2
shadow : BSD
coreutils : GPL3
gmp : LGPL3
elfutils : LGPL3  GPL  GPL3
llvm-libs : custom:University of Illinois/NCSA Open Source License
mesa-libgl-git : custom
mesa-libgl-git : custom
mesa-git : custom
llvm-libs-svn : custom:University of Illinois/NCSA Open Source License
lzo : GPL
libxft : custom
libcroco : LGPL
libxml2 : MIT
xine-lib : LGPL  GPL
libxvmc : custom
libxv : custom
videoproto : custom
ffmpeg : GPL
alsa-lib : GPL
gnutls : GPL3  LGPL2.1
libtasn1 : GPL3  LGPL
texinfo : GPL3
findutils : GPL3
gzip : GPL3
less : GPL3
nettle : GPL2
p11-kit : BSD
gsm : custom
lame : LGPL
libass : BSD
fribidi : LGPL
enca : GPL
recode : GPL  LGPL
libvdpau : custom
libbluray : LGPL2.1
libmodplug : custom
libpulse : LGPL
libasyncns : LGPL
libxtst : custom
libxi : custom
inputproto : custom
recordproto : custom
libsm : custom
libice : custom
libsndfile : LGPL
flac : BSD  GPL
libogg : BSD
libvorbis : BSD
json-c : MIT
libtheora : BSD
libva : MIT
libvpx : BSD
opencore-amr : APACHE
openjpeg : BSD
opus : BSD
rtmpdump : GPL2  LGPL2.1
schroedinger : GPL2  LGPL2.1  MPL  MIT
orc : custom
sdl : LGPL
speex : BSD
v4l-utils : LGPL
sysfsutils : GPL  LGPL
libx264-10bit : GPL
xvidcore : GPL
x265 : GPL
libxinerama : custom
xineramaproto : custom
curl : MIT
ca-certificates : MPL  GPL
ca-certificates-mozilla : MPL  GPL
ca-certificates-utils : MPL  GPL
run-parts : GPL
sed : GPL3
ca-certificates-cacert : custom:RDL
libssh2 : BSD
pth : LGPL
gawk : GPL
gawk : GPL
mpfr : LGPL

| alias CUTF='LANG=en_XX.UTF-8@POSIX ' | alias ENGLISH='LANG=C.UTF-8 ' |

Offline

#4 2014-09-12 03:35:30

Amanda S
Member
Registered: 2013-09-21
Posts: 276
Website

Re: [SOLVED] Discover all dependencies from dozens of libraries?

progandy wrote:

pactree with expac works really well

Amazing! Many thanks.

Cheers smile


If it ain't broke, you haven't tweaked it enough...

Offline

#5 2014-09-12 03:44:27

emeres
Member
Registered: 2013-10-08
Posts: 1,570

Re: [SOLVED] Discover all dependencies from dozens of libraries?

Offline

#6 2014-09-12 03:56:51

Amanda S
Member
Registered: 2013-09-21
Posts: 276
Website

Re: [SOLVED] Discover all dependencies from dozens of libraries?

emeres wrote:

I was going to, Mr smile I just had to take a look at expac.


If it ain't broke, you haven't tweaked it enough...

Offline

Board footer

Powered by FluxBB