PKGNG: ability to view pkg-plist?
Hey guys, 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? 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.. Thanks! -- ~~ Ken Moore ~~ PC-BSD/iXsystems ___ freebsd-ports@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"
Re: PKGNG: ability to view pkg-plist?
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 -- Dr Matthew J Seaman MA, D.Phil. PGP: http://www.infracaninophile.co.uk/pgpkey signature.asc Description: OpenPGP digital signature
Re: PKGNG: ability to view pkg-plist?
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
Re: PKGNG: ability to view pkg-plist?
On 26/10/2013 00:40, Ken Moore wrote: > 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. We had the constraint of not blowing up the size of the repository catalogue, even for a repo containing all the packages you could generate from the ports tree. The lists of files and directories in the pkg were a large blob of stuff that we couldn't see a presssing need for, so they got dropped. The filesite.txz stuff is all about automatically detecting package conflicts -- not sure exactly what the plans are around doing that at some point in the future. However, if you've got a good use case for having this metadata available then we can certainly revisit all this. Mind you, if you have a repository you control, it wouldn't be that difficult to script up something that would extract the +METADATA from each of the pkg files in the repo as a postprocessing thing during repo updates, and make it available for your app to pull down off the web. If anyone wants a nice web-based project, it would be pretty cool to be able to point a browser at the repository root and be able to explore package content / metadata all nicely formatted to be human readable. Cheers, Matthew -- Dr Matthew J Seaman MA, D.Phil. PGP: http://www.infracaninophile.co.uk/pgpkey signature.asc Description: OpenPGP digital signature