Clay Baenziger wrote:
Hello,
I filed bug 9777 but then thought perhaps this would be better suited to a discussion here:

Talking to many customers, I've found that tarballs reign for many shops who are cross platform. Talking with Bart certainly he suggest but why would anyone want to use something other than IPS. To ease the transition pain for folks used to un-taring a tarball during an install (with arbitrary scripting), would an easier interface to turn a tarball into a package be a sane offering? This is something the install team gets questioned about often with the removal of post-install scripts.

I envision a pkgsend option to publish a package whereby either a tarball is given (with absolute paths assumed) or a root for the tarball is given; then all the files are rolled up into a package. I'm not sure whether dependency checks would be necessary or not. (I suspect doing a solaris.py dependency check run would be good.) My only thought is perhaps this should be an interactive tool so that a user can mark volatile files during package creation (i.e. generates a manifest for the user).

I'm curious to hear feedback on these ideas and generate a good clear path to present for users who've wedded themselves to tarballs but could use a way to IPS.

I've already added most of this to bug 9777, but ... We essentially already have this functionality, today, as far as I know:

$ pkgsend -s file:///tmp/repo create-repository
$ export PKG_REPO=file:///tmp/repo
$ pkgsend open [email protected]
$ export PKG_TRANS_ID=1246321579_pkg%3A%2Ffoo%401.0%2C5.11%3A20090630T002619Z

$ pkgsend import extern/CherryPy-3.1.1.tar.gz

$ pkgsend close
pkg:/[email protected],5.11:20090630T002619Z
PUBLISHED

$ cat /tmp/repo/pkg/foo/1.0%2C5.11%3A20090630T002619Z

dir group= mode=02755 owner= path=CherryPy-3.1.1/
dir group= mode=02755 owner= path=CherryPy-3.1.1/cherrypy/
dir group= mode=02755 owner= path=CherryPy-3.1.1/cherrypy/lib/
file 3e6df188541abfa4ccceb53866f608ec3b149270
chash=f727da463a4b4adda15bd2ccf2e4de5350e947d4 group= mode=0644 owner=
path=CherryPy-3.1.1/cherrypy/lib/__init__.py pkg.csize=1474 pkg.size=4445
file 43c110cea62225fc52c7743d7dc5cb1ef66cc255
chash=b78f8673aa11b2c4d7a258476f450e78e5aa0f81 group= mode=0644 owner=
path=CherryPy-3.1.1/cherrypy/lib/auth.py pkg.csize=930 pkg.size=2981

So, at a basic level, if all they are doing is untarring some files somewhere, they can easily deliver a package using pkgsend, right now.

If they wanted to specify dependencies, they could also do that easily, just by doing 'add dependency type=require fmri=...' before or after the import above.

The only thing we don't really have right now is:

* the ability to include files from a tarball

* a tool to dump a manifest from an import suitable for editing, etc.

In the future, Brock's upcoming pkgdep tool could be used to generate dependencies based on the 'dumped' manifest from above, and/or integrated into pkgsend's import somehow.

I'm torn as to whether we could just add a '--dump' or the like option to the 'import' subcommand of pkgsend or whether a separate tool is more appropriate.

Cheers,
--
Shawn Walker
_______________________________________________
pkg-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/pkg-discuss

Reply via email to