Finding files in packages (MANIFEST)

Chris Rees utisoft at gmail.com
Sun Nov 21 11:35:23 UTC 2010


On 21 November 2010 10:31, Anders F Björklund <afb at users.sourceforge.net> wrote:
>
> For PackageKit's "app-install", I wanted to list all
> ports/packages that had a .desktop file (= an "app").
>
> This ended up in a large number of "false positives",
> since there is no list of the contents of each package.
> So the brute-force method is to download *all* of them.
>
> For Slackware, which also uses tarballs for packages,
> it was easier because they also make a MANIFEST file
> available in addition to the FILE_LIST (= ls -lR)...
>
> ftp://ftp.sunet.se/pub/Linux/distributions/slackware/slackware64-13.1/slackware64/FILE_LIST
> ftp://ftp.sunet.se/pub/Linux/distributions/slackware/slackware64-13.1/slackware64/MANIFEST.bz2
> ftp://ftp.sunet.se/pub/Linux/distributions/slackware/slackware64-13.1/slackware64/PACKAGES.TXT
>
> Would it be possible to make such a file available
> for FreeBSD Packages too ? (maybe even both of them)
>
> --anders
>
>
> PS. Here was the simple script I used to create mine:
>
> #!/bin/sh
>
> MF=/tmp/MANIFEST
>
> for tbz in All/*.tbz
> do
>  echo $tbz
>  echo "++========================================" >> ${MF}
>  echo "||" >> ${MF}
>  echo "||   Package: $tbz" >> ${MF}
>  echo "||" >> ${MF}
>  echo "++========================================" >> ${MF}
>  tar tjvf $tbz >> ${MF}
> done

I may be misunderstanding you here, but you could just:

[chris at amnesiac]~% echo /usr/ports/*/*/pkg-plist | xargs egrep
'\.desktop$' | sed 's|/usr/ports/[a-zA-Z]*/||' > contains_desktop

That works for me,

Chris


More information about the freebsd-ports mailing list