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>