PKGNG: ability to view pkg-plist?

2013-10-25 Thread Ken Moore

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?

2013-10-25 Thread Matthew Seaman
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?

2013-10-25 Thread Ken Moore

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?

2013-10-26 Thread Matthew Seaman
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