Date: Fri, 04 Jul 2003 11:38:01 -0700 From: Tim Kientzle <kientzle@acm.org> To: Julian Elischer <julian@elischer.org> Cc: Kris Kennaway <kris@obsecurity.org> Subject: libtarfile (Was Re: pkg_create broken by design?) Message-ID: <3F05C989.7040908@acm.org> References: <Pine.BSF.4.21.0306271101500.22281-100000@InterJet.elischer.org>
next in thread | previous in thread | raw e-mail | index | archive | help
[-- Attachment #1 --]
Julian Elischer wrote:
> Sometimes it's a pain to have to install the package before one can
> build it..
>
> The trouble is that both the @srcdir and the @cwd produce
> '-C [dir]' to be added to the 'tar' command list
>
> I see several possible fixes..
Another alternative: stop trying to use a separate 'tar'
program. The attached is a functional alpha of "libtarfile", which
provides a pretty clean API for building and reading tar archives (complete
with gzip or bzip2 compression). In particular, this could be
incorporated into pkg_create to address both of the problems you described:
* Remove the need to install a package before
creating the package file. In particular, using this library,
you can separate the filename written into the
library from the file used as a source of data.
* Remove problems with building 'tar' command lines.
On the read side, this library eliminates most of
tar's historic limitations (by supporting 'pax extended'
format archives and a couple of extensions used by GNU tar
and star). These extensions have not yet been fully
implemented for writing archives, though I do plan
to implement the 'pax extended' format. (The hooks are
all in place; I'm just missing a few hundred lines of code.)
The source code includes a very minimal standalone tar
program. If anyone is interested in trying to complete
it, please let me know.
I am working on a complete replacement for pkg_add
using this library. So far, it's working pretty well,
though I'm now looking at some complicated issues of
package management, version control, and the like.
I have some ideas for handling these issues, but there's
still a lot of code to be written.
Updating pkg_create should be much simpler, though it's not something
I'll be able to look into for quite a while. Again, if someone would
like to use this library to improve pkg_create, let me know.
(In particular, this will encourage me to find time to polish the
write support.)
Feedback much appreciated,
Tim Kientzle
[-- Attachment #2 --]
P? \{FϯغMرN8-|iᄴj!Q}̮qss vvvfvvfvvcCß؎g}գc|W^WQŋ#>8(J} (}?,¸tQ=VcB7s=Ϟ=3 <?-iKu+|]Z)vBˎ=azug'P,|oB:;
^܍,9{C97BsjJ̤aI4S9u=I7oGXCo4&"iz!yhM]>:SQ;qUX*W_V o2;>\xJb}F[fܙFV~ibwJ=;4K03,&6{&rmm~n`ذ*5Cs+Of_ q`"$Զ.BYULKNP(ٮDB{W( g'EF(1n5՞/9njV=3Fakjx.JMX^'(+m<TW
վI?|ã/gR-n}{:E,js 5, /_Kkϩ'-, !V0\KDp+/MOƶkeAYܐ}áo/
ܳmj-×܂dʿ-\3#d3ǻ;r-:eVH7i2=9h%ػ&-
B2 f]f9, aϥQ0~^xcN :[L-aEVJ(o텇><BUBf{'xsYJDSa}z07nj1:ҵ<j1cC6PPx
IxC*JiVM>1"/xQE#=mE{>n
\_߷͆8{Ʀ
ob$Z;;i{EGZ:ShuaySgÁtݺh
6yn{..[<ڭ{5ЈݞZoЪ۵.}.~]k]4<迭+|5ASTXY> BS\@N,z.?4A~!zo@hEM/Y!U9@p"gAk04śnAfV?.\M&Qxx`| aŒju^ox9hu;% 5nHYB{OI,x="j$ת`r1sK~Ezԛ%DZf @c!NspeD:-_c-%,[-XͿ9<7^op +`ɽ٫^^rb9loEw+(>ە'DyL
}-`ƾw%X1;X'O';i4bCcd
{8-À6 Afr
Sh-vw}|@x;s8>y [XĻL'|RKƥ1o!]f(@~%h
WY
fs4ͽ)PNJ$Ś]DKZcBeJϩ iMcveȰ$;nZ&xbyĝ
91"'|):Bq-!Rs $
j=ґQ6dҜ JTHV* C00xO?^O~҄tI^.T:~0O؉kw!<ةSj/Zc щ{ESTClH~_EQcY.(aBoɭ[uKE) }tZ[-v==[5vi$GU0iU&a2QT8cAVJv<t!M IA)]C'R*-t֠<PR_Շv籹s"<m*ƈ'݇
ΗeJG*R[/l8L(="*G?h/X^[p4lO]Ϗc:,9\m}
v.Bw=DC'yLװ<9_.}iNx;-n;5@R͝gbϝjo"KE5t}izSp/KGeѤغ*AV"PjrMX>LnJ*BB4+o+ 8Eӎv.b}>\m,ji80uWdakkKA'N^#S⡕?DӢH84ri1e*z!I=;)KIw+gVzd fL!;-_Wc5uʐ&F&Gpi({J
j7X1L.Dz"HK@[K<#<DHY5SR
aoV@up@!]ef-eZQK#sL*?]?
Ԩ4
Sy5)1 I:(+b}H
}U4c,KolDo٪ɐP·HXy"V}&}Nd'Fµ$@We:
}c3(@",x'_"Tp <df'QN O5vEc ^:_S5FpuEUVY'Ӓ(,F\xm$ל/4*opr~SU\&pû>}Rrx0hViŹg~n' Ͽ4HuXIR5sbnƊF^{jÛl9LFʐ?Hwkt;Hc]&%7
bdH*ձ`Gr4$m2PsL8uhWM"r'8() fafbob'4G %~Xx~(H>}-<PՄ5U.gkEbb.#]
^6AoةE̢v?rna+vfGRƩȧ-OI"bsAHZ9OexpZS*Hƶ ~腆#??hObbK)GpQb%8iJCŰλNcYk4{<q! 2sFruϦ⁜6:%@2TFG Hi
8}z6ba1r-Ɓ18Pg>yύVor鈞wc;p#DdH'.MVK:-NQG:tGwU`
Nc+ {ShR)ްϾC0xޕbjPԉ-q9'cQn2)bv ؏\Xa ʜnP_ف,uCgyjV(U4f[UٜO3H!c+ضrEd#h7*a4Cx4g1=0wq_c?˦>8ku2PHU ,Rt#?{#MCy8dTps
Q%%^.r2i
A<ޅ}*&%nu$/-Q&tnjO&{2P{cS"SӖg35p&wiE`+2<Yl41vh/rV^mƘ,[2wR
N[[qJ7V+d u2ʬ)ONXj`=$0AjIS&949ܔ$U-u?!Z\펡9ΌǾw_Ǫ2edLB%q\
9r`?ே?ōṖ!'B!=aW<}3D$iUX/oa4:Qy0GOD:<eգ-zB
'5Kw}?K|\!gˀY86-f3_":n_}NX`,Wt;JOʮ|UU
C)l-7pzzS9 3:V&빥Vq
ڭmD;Ȅ, +K-xBwO?uD^<Z=zA}W|RKyĵ$٥)xN
Ch0 vyCץҳft썠`^Cai
<
zZs:Q3MI/b_D W˼}XUYQfw\J
$#Lt>?oGjM8UH7Yp\61|yS~;uBB}~AG;u~js.' ,Qa
oP5?^mYWlK?(6pz7sMWнC7CGb4V`*
YO! [V;]7e$ARy#EsᙳJ3k^IĕNGpdp#M/J>#M=T9TY*l&^EtE0)RդЕ>Vn4*QnV]j]vm^jqcrD)03}I,[1r
feEZqD
NN!v!Z鸐IWNA\:y>WtpV?a$ͺ.X%TÒ.,eoƆCA,Ж\`,t(u'vw86S73)d!
ⒺXYIԍeEDXYu:i^5:aP=$qA`_Pنr0 ,&DXb|y>#_U閄xr4z};9(x+K
ԩR߷:}b
`TM{c|\GM5U
rL+ 4mHPQ>^jSa`&VSOvk
'"L"⧁02}`=TMz9Nq|krȜG&bx*سnӸK/*H{;vx<.ߧ%>l'm'pxТy)½]U[+: 5P@a+$hЕ謷촯G;V&bM_w\B{NR\漵t=ys (u$7eκl24'睌oqʔbbx3>^֩X,dh.3{*w=QPp#ם<,I`m>FNpDCk8o,̸=({h!t|.UIT`EXd?+?e]i`x$1IKpIlkquLgsɦZ$Mm"%7KF!u=䇎KC&"A(\{yQm^ʧ8Gpv&l/%"b
=9K{xŗ]P/7_zr_{oFv>Ŷ%aI6vc/Vb/)XQI`r5$Ij{g>CHiv}ٕIkgxRcjSec>&<1J)= tԍGZWb 𛈨T/lX6cE8%@ol!Dzl>$f)aǰ!~-=hfl-m~W(X> H&9
m_pϬ^=OP'Փ<nQ1ˈKVnJ
ӧr$S;(WE*
$
f@a.#na,卻cGõxV:}͇5즳=!CWfThp\ZX@J$96PL/lsG=PI=!L2!lڠc*kVtK2F0N.,TM;oPą~Y{݉+^QqIኧX
`n__
QΟn#YݣOZlX]YMyH"TN<5;rᣌ[[
#9BWFͬT6~侴W
' '}=MUޢv|6kxO3qPEbg/L:F\%;T!27ǓfK]>q*ӧHM)#wܼjjWp_Uxj[l{"ami[UeF"幬dgާ
j U+,nO++vgt{u
fӾK/Ju~LSb?utDBeꄊ *yTPZ!i`?I&'
o*e!\ඝ֝nkv+4XsgHu#k,m nb䎠a,CW=Bia~pw'yvoa>ܿ'apQ;&hp
"|+)eWˡS[a}Gl_}m,oO6wsƝ[[Q4b*6≹caja`a};meӎ
ZAhЦ
դL^fq$v_
aаjpH#Ŏ5qz`W
JjF_[lHU
5:-|Uիgb`S>?${ŕ7
NJ:"V$d
m00}|5EF|,SGS"EjG/qHn;\ud$*$Sɧ#vTUׯෲN^;vqy':j
*)tNp?RSa@9>^N23Q誫;jVVv5_oJZޜ\O[iUA<#~Tp$C\yRs}B!JhZoo%d"}[\MP\A/UA}FA#_CfDY=]C/'AQ
<~bʌOa=e)!-7$ޱ7kỆ[fC#2HzERDV}x%Sg>AHB\MeB8VjJwza\asDg?J--dm-_ kO>5G
8x*o5Po;E薦{[t4>K8eʶ|֘
w^x NSkO_0ּ OuL~Q%_
f5D_]ę`p_xi|u(Q ~Sm?[1qU~Jѿ6=~?x7*?w;ߝNw4M;o}SpAĘ'YdBW\~ՋicA`4ؼm{N[e~Q?|~ {vXؕ`7P$'kg@x=ڰ0YW}WDAsmYlD֩wyWx21op
˩L` V+UBaSF݄Z:">uԮ
$6 Z<Ғ~D/Ȼ>%Ӭ9"^1[;HBGJxq^2+ekYJ?KHaDGS1ŠfFoXQe}mCzos~]E{!vtS<
'd"0ojaܗ+n3+[qc?rT09%ضe$|cOD#ja$+
F憂#(wbpZs9F寤mSSvjWm@kkN:u_:JAn3]"Y&MvzCbcWW
Y!(tWz_5OO0[^qPA6zD_3ocw~Z6<juto]9|
&@{|UYx !aT֪[O4`Oonff
jCX|e,)e1&9B`~Ιhq]vRw(VeBГS66mQv1r[wi9`5:y%9BK:,Bw:t?oX/WzY@ajfգO''Vm|EI;Y[<cd
3,mlq'E#};swh)7MM䐝
@W*Aqo7$3^1,yBa .K"zO/)3Fo$RvBJLҤ>%Sm"SO?Mb˘^5Lq&)5ygHoLaFGfMBG!u#(j%yM{xm> ,|6ggGDK2ט0g=CȲ*E§yWg(O#HXKڦ#OFuj5Z8P\|paղ}a/ @B$tB4l/Lu+(gdɩ\[<M>plzbx3$f1_)5EˑJ$NPX&P2gx4O-/
JGYx<~fIdE?0ޗTeuJHAy"
#.X`qd߹XIƨhhQHOY/)%y%)x\ߡS|
Cr&,TkMD: RP_زb檩a%M:ދԑu9'پB8`t4(xqAG ]üu}yɄ1B9Lc[M{
fۛ\ڝrv[EP-fFRh jy>5ca3t/k}|7l|lsÕ"Pm\Kd!dȘ7 \wj)G0
PuΠ~OIi5ŏc4KX̺Ӥ>7!h9!'YaW^Q3" Snt;5Z,b}RYWaFγ9`>M?#dKIa
?+?w%g!C ·Mee炘j\Is<<y44i9I>Z{)kӔX ?bַhm6m&ppk#dW
,#`lh_8gN,LSO!>7~n;Q"*M
Mё Kboo_.Z,aOḢ}dMlMPLId@t>"z䨋H3h&P18=+% b#OϺ t&xXdlX4K!'PsT@1焾 ݦ8t+2|Q;3$Sjxb̘WeĒ:oA
)%=fB-kըjYN1Zu<4
?v56'-3/mSȗRSjt\BF0m#NTyO{5HфaI#su^6;I9+:t{#BkHAE?Z9KYKl_kyF?y{K[_,h^#/`lթi3ƌ;MKմxب'$ \4dEhq,u}Q"P]wKXWϺY1pP>H?HvÔErybX.nJOjh_ҚO}Tn7;Gqf-Ct>U(|?=TwӉ!U394a/#
.=\%7++}Vת/_υ̽к|^}W%#<I߸bx/`75+{
7@bBH8?eSf-wpZ^ltU04p'c5`=0Lg;\VE0 ͥ>L2Wў&H/ⲃu'6ϪU$]~-uLx\ >\!XvDΓsR[@DVh/0x.2#N-.I'xǬ?_~:p;7K/avAZju[YgRnl^axB؆Dh#nH;lZ@|֨,rc=Wgn{8t,!I3q~ɋ7{[B4;)C&/Bط8p0}9ga9arg!lHx=OܼS
.ԞHwb^0ҜL1ڔ]?!K=lA:7ӝ_])sοj?-U+(#cCB 2? t<ЅB+|yA'A9ag7YU")%v|rT^{#f28좫1aPJXFwqlc 6G倸K5h4T#W4Ț!I%kLTkH)Hv.]7gYOô@1>?#P4F=}n | #]y˨PEJ|4?0+%fmkwuU_aFI]37:T⫢!0\[[ޘ%u+$PO'\mIZW
f84a)hO_$tZ{S8v3XH2?JKDFtV9|H`VBIҾj2EdBO)q`X#ۨ_Pᘨ4XUE<|9\#uÆC%]O3+jy0%vFŊ/#]/Ah
<'7=:c;Od \!ss6J;jc 'FA* 0SXvFafb`>1Vgr<.Hwd(vR1ow~zwK
q_
1˄44[>E'Ǟg"~L9j>;|'[pu" 4@B A1~poK
Z%iy$vSC%fzLDH%bo( K({U(ƒ*]\vl&ek>5IelFΜly0=N>|/QK}SI@kNbMf5ti'.;:9pwjmqwk.^\?5
$lbb"K{?/;+6/((Qܗ J3FޮSWwYt˦f| 1aESnp☡u>|1$JD E*WS}DB!tCd t0>e`dsG$п0Rgu+ҕ5qpCRok[Cуm =)/9{iPNƅY!BR
>,Fh7k43n/J5tVGDN;se-Ą`"reeOn6to3HL@<a6?6cRk
ʼn)CKMtX=ˊͽoǒ<^[Y<?얈ιuQ?wwU{/ /I> \<`%mrYfzLIaxĜH\#)ޏǰi1+#x*xSۣR=91tFC}R'u愩S
~cӃXB.k͇1/786ؔ{C9[drD/xd.LεvoխOnR%dO"P(/Xxռ"Ϙz8=m4p˂)2yǎ-ڒ2K[o:O%\} 0rFH;*b6thPGQq[NRFd
;*=ּ_Fc~&0|}>ʈnEcVSL0
&H}#jIWZmVF0&vESz;9&~}%f}SE1vjfKs7kY4e?$FU&Kaq`SAmk$alI/uT9`钆}%ȞGSP2S}3 --U_E4Z笮jEjhQ'匕[Z{;L*iX'yj)q=N:gʘK=*r 8!\4Jel=fbﰰҙ=`iܱwcIy6ušdZxG̀B31'yA\-wyR'Tq$[+<f$S.fta12fw$mz7{
? .7BFflwB
Xqũ7H~apr]ų{LXI˳Nuʹ: qafԥty
B=Hfη'?Nj[ICM0͈(?DfK&^ dލ|[yĤ}L^irr2e M~ eM!Mm&eMѼJn3bC1_ 6U)q<zǤ~J]W6303+?]l܂5_KY$L+0
(N_Mί-Z:kPN }[cdFnԙ\ڠUAzoF.W"rXR>Md>L0|mj=CwbTw'F1.N+>´C+1%W<U_VE~
`a2Hg[:2_ =WcG3&i͝nMUi:ɔPD?2{FU/52J# (\@r
rnrn)э+yT:NMN<wga.uiE^_3*i i 2ŞJd!9!M5YؽWf .'b*$N>,ZƸ,Ɇ
A /0gwxCP2;S]C3j"LJp7j-&0'NE]G\kOǤ*;*
YZe[",sw7Mw**>svSe%*L>|\)nB@ي^Dyt<~㋰p[Vr]hٰp2{=Ov/re%r|%ny-$؋<b
31jN+bL`pr24eWWUK2L>BkS2m-Z&Z䥎rQ%SpySq}2jͼ\ܶoRX]B|%F8h>z'E%34BwMҖ g'vUrܛƘ>NK!S^O?O?_П~?rF:HL08"Z|r9B+Q}T-0
]ʇD`-zqu:|^zU(jV~"yP"`A`=1"Z:vCb.t"<1/#E4_ޑ.
c$1wjcdtac
vOIK# ZxW!굲eDg|y'$b̝<_\V&bɃ[flĩ>#!l~8A]l&VZxn~JZpjBSadOX5H
Hvu8kXxk.S Ϧ577B~y)PWJchIzO*Y/u/h7-5pm\E:#蠰FMkE7{.Wn}<qEDO:C]^Rе j@+`5`QqIo$0le;{/[C
x)Zgq֧M$7),QmT٢N8 $MI,s-f3̓-вkU7fG3 |jndxK]?^1`t閑GLQ1oS
{gAPV_}&PSV;>$qmx\.v5> :`
Ulg]`ܓiCc̼z {qfaj4o}[<rMYْge;#g5g >
O]?Z
s}MfSo,
qӹR}x\<e9-#Z/A!5 -eqI`H#d
'kx̓=)o:dLn.rLe4Ȳ;bRW$JUlly:nKjƗOh;LKaw^y%A
0We(h$>~zM^u~}R6?2_LA!f%r`GK|\HI+9t6"SbamۙA6Ap@?UP js#uyFUa%H|G$節<\b+8U
'e9I/ܮ4Oj~jAJ5ymPjTM(Ug+ zCj+"oQY
[[fex_dg:aqP|
w|p/s_ v2)J%6FF*5s/,!Z'|rj>v_bk#T/1ʉfk.$ulrQ$α)/UV @/'cwOw'q%Tm.1bZN<T1@'i3Ep3o2G0j~/-PaVꣀt17aYk !.fILj81'A4N׃A2bx$a$k4HC6a2'xV9)KrYKkq16x$Ȏqq
Oƽpk# $_y+@>2ULJu!VQSQzLOP(Pv=4N/{rn+\]շUSӱԅW>`}>=]]>LJaC(!Mxp<_9\11Q+<[ӄO%`YYۿI6>9*ߍW<bBZrshufsCfP3f+ʆ;įl)`ݻw//;c*oTKGkX:uHx'3_Ohx?M
Tfm8*_O|x) Ksq)k+iB٦w՝H"e,%yP5Az%9ɍѭ6VeF$x:^W-gE,ybL~ jcan{_+hAOt7{b=:khʅ,VܒVujJ/X+Xm}Vgi|<@Z5-1REshm,$` r:-Rr4"]Tw!=Qn]QK5"Qei}+3*rEqgr4G 0U,1u $N_s5$
]KW l<[aY »?R
I-(g(Y
)8`'Dil9/؏# ֩.2_;(L=>,yNh=JGG8.4=Xo+Ňu$SuX7,2 1yWfRܜ1&7l7Q`.I\4ET1EG+Q
qtsk$) 2cmc1@0͡X9oasC""!&COAU#Td8ϸO'/]vvRe[s P~=u2
g
!P774rFp
14!q&mQDY
po6?f=_`q'*
"uJWOwם= ߒ)p,QS\'~{ vw\͇1<8>yY-)N҂`Ν֙S4̪utM릌~AX>Yq&̄ޜ~o=:ͦ2y0ZmM"W<?#uρp-☏|DѾr,+Su+ٺyސ=-g390Oqo|lrs7:8%EyrοYخo>`^o;BSղ?B#eH젌6YN'#B!:]kgEG(}s{wyAaiP)T3s/,="g/Q̖RO`efdut&-W] 1<