pkgng "requirements" script equivalent

Baptiste Daroussin bapt at freebsd.org
Thu Oct 30 00:44:39 UTC 2014


On Wed, Oct 29, 2014 at 01:43:27PM -0700, Nick Rogers wrote:
> On Wed, Oct 29, 2014 at 1:02 PM, Baptiste Daroussin <bapt at freebsd.org>
> wrote:
> 
> > On Wed, Oct 29, 2014 at 12:44:21PM -0700, Nick Rogers wrote:
> > > Hello,
> > >
> > > I am in the process of upgrading some proprietary software that has
> > always
> > > been deployed via a "custom" package created by the old pkg_create. So
> > far
> > > I've been able to use "pkg create" to achieve what I want, but it seems
> > > that the "requirements" script is no longer a part of the new pkg
> > > framework. This used to be a script that you could include with a package
> > > that could halt the pkg add or remove process by returning a non-zero
> > exit
> > > code from the script. I've been using it with the old pkg tools as a way
> > to
> > > enforce some proprietary requirements logic that goes beyond requiring
> > > certain pkg dependencies, architecture, etc. One example is to make sure
> > a
> > > specific custom kernel is running by analyzing uname output.
> > >
> > > I am wondering if anyone has a suggestion as to how to interrupt the pkg
> > > add process in a similar way. It looks like the "requirements" script has
> > > been removed entirely, and from what I can tell a failure in the
> > > pre-install script does not halt pkg add.
> >
> > What is the requirement script you are speaking about? I never heard of it?
> >
> 
> man pkg_create(1)
> https://www.freebsd.org/cgi/man.cgi?query=pkg_create&apropos=0&sektion=1&manpath=FreeBSD+8.3-RELEASE&arch=default&format=html
> -r rscript
>     Set rscript to be the ``requirements'' procedure for the package.
>     This can be any executable program (or shell script).  It will be
>     invoked automatically at installation/deinstallation time to
>     determine whether or not installation/deinstallation should pro-
>     ceed.  To differentiate between installation and deinstallation,
>     the keywords INSTALL and DEINSTALL are passed respectively, along
>     with the package's name.
> 
> 
> > Explain me in detail the way you were producing the package with
> > pkg_create and
> > I'll explain you how to do the same with pkg(8).
> >
> 
> I was running pkg_create with the following arguments:
> 
> pkg_create -f plistfile -c -'comment' -d -description' -v -P 'list of
> dependency packages' -v -r requirements_script_file -i
> pre-install_script_file -I post-install-script_file -k
> pre-deinstall_script_file -K post-deinstall_script_file -s
> /space/build/trunk -D displayfile -p /space/rxg -o category/name pkg.tbz
> 
> For the most part I've figured out the appropriate +MANIFEST file and
> manifest directory contents, except for the "requirements procedure" script.
> 

Ok requirements are gone, and you have a perfectly justified use case, I will
readd such functionnality as soon as I can when dealing with binary upgrade it
is basically a wrong idea to fail the procedure because a script fails so I need
to add the notion of trigger and run the requirements prior the procedure.

Might be complicated to add but it is for sure something we need.

I cannot promise anything for pkg 1.4 which is in freeze time but I'll try to
see what I can do.

regards,
Bapt
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 181 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-ports/attachments/20141030/6422c769/attachment.sig>


More information about the freebsd-ports mailing list