Date: Fri, 25 Oct 2013 19:40:06 -0400 From: Ken Moore <ken@pcbsd.org> To: freebsd-ports@freebsd.org Subject: Re: PKGNG: ability to view pkg-plist? Message-ID: <526B0156.1010004@pcbsd.org> In-Reply-To: <526AEB3A.3020004@FreeBSD.org> References: <526AA934.10405@pcbsd.org> <526AEB3A.3020004@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?526B0156.1010004>