Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 15 Jul 2013 16:27:19 +0000
From:      "Teske, Devin" <Devin.Teske@fisglobal.com>
To:        Baptiste Daroussin <bapt@FreeBSD.org>
Cc:        Devin Teske <dteske@freebsd.org>, Garrett Wollman <wollman@hergotha.csail.mit.edu>, "freebsd-current@freebsd.org" <freebsd-current@freebsd.org>
Subject:   Re: [HEADSUP] No more pkg_install on HEAD by default
Message-ID:  <13CA24D6AB415D428143D44749F57D7201FC7489@ltcfiswmsgmb21>
In-Reply-To: <20130715062759.GF1516@ithaqua.etoilebsd.net>
References:  <13CA24D6AB415D428143D44749F57D7201FC2DBD@ltcfiswmsgmb21> <20130713080732.GV85556@ithaqua.etoilebsd.net> <13CA24D6AB415D428143D44749F57D7201FC3AA2@ltcfiswmsgmb21> <13CA24D6AB415D428143D44749F57D7201FC3C92@ltcfiswmsgmb21> <CA%2B7WWSe7C2UXAsEX3OZH7nPJJbxotpQ_iYBxgake4R68sbUtLA@mail.gmail.com> <13CA24D6AB415D428143D44749F57D7201FC3FAA@ltcfiswmsgmb21> <CAGE5yCoH2auer_kKpUT_caFUZPpVM5TdAFH5tJcGgF4Ji12f0g@mail.gmail.com> <201307140613.r6E6Dsov002016@hergotha.csail.mit.edu> <201307140706.r6E76Kg0002959@hergotha.csail.mit.edu> <13CA24D6AB415D428143D44749F57D7201FC51FE@ltcfiswmsgmb21> <20130715062759.GF1516@ithaqua.etoilebsd.net>

next in thread | previous in thread | raw e-mail | index | archive | help

On Jul 14, 2013, at 11:27 PM, Baptiste Daroussin wrote:

> On Sun, Jul 14, 2013 at 07:29:50AM +0000, Teske, Devin wrote:
>>=20
>>> Or you
>>> can maintain the old cruft for your business -- just don't expect
>>> anyone else to use it, or even want to.
>>>=20
>>=20
>>=20
>> I have no intention of making old-world packages... but I also have no i=
ntention of using "pkg create".
>=20
> So you are taking as an exemple rpm but with RPM you do want to use what =
they do
> provide, aka rpmbuild but with pkgng you want to manually handwrite the p=
ackages
> because we haven't hidden the format behind opaque names and format.
>=20

Close... I use rpmbuild because I haven't figured out how to subvert it to =
create cpio-balls for rpm(8). I know how to extract the contents of binary =
rpm's using rpm2cpio and I know how to extract the meta data and supplant i=
t into a template SPECFILE using rpm -q -p file.rpm --qf "queryformat" ... =
but I haven't spent enough time with rpm's to know how to master them witho=
ut rpmbuild. The best I've done is learn how to use ".rpmmacros" to make rp=
mbuild behave in a sane manner that is conducive to (a) building the archiv=
e out of the current directory (including all temporary files, etc.) and (b=
) working on source-controlled checkouts.

However, even if I did figure out the cpio-ball/metadata format, it is quit=
e convenient to have rpmbuild do the work -- which unfortunately introduces=
 the constraint that you have to generate the archive on the system for whi=
ch it will be installed (something you eluded that is inconclusive -- I'll =
cover that in a reply to that-reply directly).

The convenience however is not because the tool does everything I need it t=
o do, but the convenience comes from the translation of YAML into metadata.=
 It doesn't appear that this will be necessary with pkgng packages, just as=
 it wasn't necessary for pkg_install packages.

To be more clear,... because tools like pkg_create and "pkg create" take a =
file-in, add data to it, and then (the most important part) put a modified =
form into the archive (which quite-closely resembles the original), it is t=
hen possible to imagine that:

(1) there's value in learning both the input format and the output format s=
o that you can validate packages, fix broken packages, etc.

ASIDE: For example... a binary release package ends up with incorrect depen=
dencies encoded within its +CONTENTS file -- I can slurp the package into o=
ur "pkgbase", adjust the PLIST (generated from +CONTENTS), and produce a fi=
xed package in mere moments (and I didn't have to wake anybody in the middl=
e of the night, ask that FTP mirrors be updated, balk at the core team -- n=
one of that... the problem was solved and in the next release we hope for t=
he best that the dependency chain isn't busted for the same binary package =
within the set of "X.Y-RELEASE" packages).

(2) there's value in writing a shell-script method to translate the input f=
ormat into the output format from a system of makefiles calling said shell =
scripts out of a revision-controlled checkout

ASIDE: This one should be obvious. If you can assemble a package using noth=
ing but shell scripts (and mostly awk, ls, find, cp, mkdir, ln, cvs, make, =
md5/sha256/sha512/openssl, and etc.), then you don't have to port the "port=
" system (our "port" system being called "pkgbase" -- and working to "keep =
you stable" rather than "keep you up-to-date").



> You know in that case you should probably create your own RPM without RPM=
 just
> write by hand the header and happened the cpio to it, in that case you wi=
ll end
> up having the same at what you are trying to do with pkg.
>=20

It's a good idea... except one thing... the YAML SPECFILE (minus the elemen=
ts that are specific to the `-bb' process of rpmbuild) get completely chang=
ed in the process. Doing this would require a YAML parser + metadata encode=
r process-pair. Whereas for FreeBSD it's YAML-in, YAML-out. So I don't need=
 a YAML-parser, just a line-parser and light YAML-encoder -- which could be=
 fixed-strings, doesn't have to be complex... e.g., awk).
--=20
Devin

_____________
The information contained in this message is proprietary and/or confidentia=
l. If you are not the intended recipient, please: (i) delete the message an=
d all copies; (ii) do not disclose, distribute or use the message in any ma=
nner; and (iii) notify the sender immediately. In addition, please be aware=
 that any message addressed to our domain is subject to archiving and revie=
w by persons other than the intended recipient. Thank you.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?13CA24D6AB415D428143D44749F57D7201FC7489>