On 10/25/2013 18:05, Matthew Seaman wrote:
On 25/10/2013 18:24, Ken Moore wrote:
I have been looking around, but I am unable to find a way to easily read
the pkg-plist within a PKGNG package on the repository. Is this
functionality missing in pkg, or am I just missing something?
If you've downloaded the package tarball, then like this:

lucid-nonsense:...cache/pkg/All:% pkg info -l -F ./pkg-1.1.4_8.txz
pkg-1.1.4_8:
        /usr/local/share/licenses/pkg-1.1.4_8/catalog.mk
        /usr/local/share/licenses/pkg-1.1.4_8/LICENSE
        /usr/local/share/licenses/pkg-1.1.4_8/BSD
        /usr/local/etc/pkg.conf.sample
        /usr/local/sbin/pkg
        /usr/local/sbin/pkg-static
        /usr/local/sbin/pkg2ng
        /usr/local/include/pkg.h
        /usr/local/lib/libpkg.so.1
        /usr/local/lib/libpkg.so
        /usr/local/lib/libpkg.a
        /usr/local/etc/periodic/daily/400.status-pkg
        /usr/local/etc/periodic/daily/411.pkg-backup
        /usr/local/etc/periodic/daily/490.status-pkg-changes
        /usr/local/etc/periodic/security/410.pkg-audit
        /usr/local/etc/periodic/security/460.pkg-checksum
        /usr/local/libdata/pkgconfig/pkg.pc
        /usr/local/man/man3/pkg_printf.3.gz
        /usr/local/man/man5/pkg-repository.5.gz
        /usr/local/man/man5/pkg.conf.5.gz
        /usr/local/man/man8/pkg-add.8.gz
        /usr/local/man/man8/pkg-annotate.8.gz
        /usr/local/man/man8/pkg-audit.8.gz
        /usr/local/man/man8/pkg-autoremove.8.gz
        /usr/local/man/man8/pkg-backup.8.gz
        /usr/local/man/man8/pkg-check.8.gz
        /usr/local/man/man8/pkg-clean.8.gz
        /usr/local/man/man8/pkg-convert.8.gz
        /usr/local/man/man8/pkg-create.8.gz
        /usr/local/man/man8/pkg-delete.8.gz
        /usr/local/man/man8/pkg-fetch.8.gz
        /usr/local/man/man8/pkg-info.8.gz
        /usr/local/man/man8/pkg-install.8.gz
        /usr/local/man/man8/pkg-lock.8.gz
        /usr/local/man/man8/pkg-query.8.gz
        /usr/local/man/man8/pkg-register.8.gz
        /usr/local/man/man8/pkg-remove.8.gz
        /usr/local/man/man8/pkg-repo.8.gz
        /usr/local/man/man8/pkg-rquery.8.gz
        /usr/local/man/man8/pkg-search.8.gz
        /usr/local/man/man8/pkg-set.8.gz
        /usr/local/man/man8/pkg-shell.8.gz
        /usr/local/man/man8/pkg-shlib.8.gz
        /usr/local/man/man8/pkg-static.8.gz
        /usr/local/man/man8/pkg-stats.8.gz
        /usr/local/man/man8/pkg-unlock.8.gz
        /usr/local/man/man8/pkg-update.8.gz
        /usr/local/man/man8/pkg-updating.8.gz
        /usr/local/man/man8/pkg-upgrade.8.gz
        /usr/local/man/man8/pkg-version.8.gz
        /usr/local/man/man8/pkg-which.8.gz
        /usr/local/man/man8/pkg.8.gz
        /usr/local/share/zsh/site-functions/_pkg
        /usr/local/etc/bash_completion.d/_pkg.bash

Otherwise there is an optional '-l' flag to 'pkg repo' that creates a
database of all of the files installable by all of the packages in the
repo -- which should be downloadable as 'filesite.txz'.  Whether this
exists or not depends on the choices of the repository maintainer.  It's
not currently available from the official repos for http://pkg.freebsd.org/


Just for a bit of context:
I am working on adding the functionality into EasyPBI to work *without*
a local copy of the ports tree available, so I am trying to grab all the
information about a given package from the remote repository (with user
privileges) to maintain the "Easy" part of EasyPBI in the new version.
Most of the information can be easily pulled using "pkg rquery", but the
only thing I am still missing is the ability to search through the
pkg-plist for binaries/icons/etc..
Yeah -- the repository catalogue is a collection of selected package
metadata for the packages in the repo.  Unfortunately the lists of files
and directories from each package aren't part of that selection.  Mostly
because of the space they'd take up.

Whether it would be desirable to publish a 'filesite.txz' index of all
the files in the packages on the official repos is a matter for debate.
It would probably mean some changes to poudriere too -- I can't see any
obvious way of telling it to run 'pkg repo -l' instead of plain 'pkg repo'.

        Cheers,

        Matthew


Thanks for the confirmation. The only way I am seeing that it can be done at the moment is to download and/or install the package first, and then there are a couple of pkg command for getting the pkg-plist ("pkg info -l -F" if not installed, "pkg query %Fp" if it is installed). Unfortunately, this generally requires root/admin permissions to fetch the package (unless I change the package cache dir, but I am hesitant to do that for a simple application like this), so that is out of the question for my use case.

I will look into the "pkg repo -l" option and see if that will work. If so, we might be able to use that on the PC-BSD package repo, and I can just tell people that the simplifications for generating XDG desktop/menu entries are only available if you are using a repository with that option enabled.

Is a general way to list the files in a package that important for others, or is my case very specialized? I can think of a few situations where it might be a nice option to search for package(s) on the repo that contains a particular binary name, but I might be in a very small group of people that would actually use it.

Thanks!

--
~~ Ken Moore ~~
PC-BSD/iXsystems

_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "[email protected]"

Reply via email to