Well now I am back here is a new set of files for ftp method for dselect. The only change is that it parses the Filename: field in the Packages file to get the .deb filename (but dosn't use the whole path just the filename).
eg, if: Filename: development/binary/text/a2gs-1.0-4.deb looks for "a2gs-1.0-4.deb" in the ls -lR listing (it will probably find it in "text/" !). If it cannot find a Filename field it falls back on using pkgname-ver[-rev].deb. WHAT TO DO: To install, untar the attached file and copy into /usr/lib/dpkg/methods/ftp Compile the dvercmp.c file, and put the executable some where in the default path (/usr/local/bin) Create a directory /var/lib/dpkg/methods/ftp Use dselect and select ftp from the access method. You will then be prompted for a ftp site and directory. The directory should be a debian binary distribution (ie contain a Packages.gz file, along with .deb files in base/, net/ etc.) What the methods do: Setup: Prompts for site/dir. Gets a listing of the directory and checks there is a file beginning with Packages. Update: Uses ftp to get Packages.gz and a ls -lR listing of the directory and then merges using dpkg --merge-avail. Install: Checks the ftp/binary directory for short or corrupted .deb files and remove them. Munges status and Packages file to find the names of packages to get, looks them up in the listing and uses ftp to get them in /var/lib/dpkg/methods/ftp/binary if they don't already exist. Checks the .deb files again and then installs them. [ you can interrupt the ftp session and it will continue with the rest of the script after deleting any half got files (useful eh?) ] Prompts if you want to remove the binary directory (and therefore all the .deb files). WARNING: Although I have tested this and it works for me, it may do anything including but not limited to deleting everything on your harddisk, sending nasty email to Bill Clinton or actual work as planned. To interface to ftp program it creates a .netrc file (there is no way to use an alternate .netrc file from ftp -- arrggghhh), it tries to keep your current .netrc intact and not leave a .netrc lying around at the end - but it may. NOTE to FTP site maintainers: The things this assumes is: under a directory is a Packages.gz file and the .deb files (possibly in sub dirs), that it can do an ls -lR and the last part of the Filename: field in the Packages file is the correct name of the .deb file. All of these seem reasonable and the current practice. NOTE to Ian: I havn't changed the default .deb filename to include two hyphens, it is a trival change but not really necessary now I use the Filename: field. Andy. 354f5c260ba85bbf7cb2b269c3375715 ftp.method.tar.gz begin 664 ftp.method.tar.gz M'XL(``4][C```^T[:U/;2+;YBG[%P7$%FQC;\HL:'#-+",FR=T(H('<K19@@ M2VVL1994>IAX9K*__9YSNEL/&X;=6P.Y>P<5A>7N\^KN\^K3[6;KV8,_T&MO M]_OP#,#<[K>+G_II`PS:V]U>=]#=QG?8[IK;SZ#_\*(]>Y;&B14!/+-\9_%[ M</?U_X<^OC43\0/S,-OMP:#W.^O?[=#Z#[K]=J_=P?4WVYU._QFT'[EMAIL PROTECTED] MZS]HPR0)X=#':?`\2&/7OZ*6IO&])7MZ'N.)19*&#\P#[7][^V[_W^WTI?WW M3+/?,P=D_]U>[\G^'^-YOMX:NWXKGAH&J@)L"6-N18X;C2I5LV+,1#(-G%&U M8P1AX@;^J-HU#-N!2BN-HY;GCEM.>'W5DF!Q"_U&Q6A"LS5)[EMAIL PROTECTED] M(]-((BN$C4C$21`)7R21/02!75#%?QO0EH2KDGV9I!&D28A_5F3-H%:'7XTU M84\#A.Y4X#>(A8."0R5N;;0V/N.SL=$:0MSZN54U1_*UBET5V'W1-;[A0*?! MC>LGT;58&,9S.$VL1`#R=:VQ)V)L0::QFPA\8^=([R";433=2J^&.X%SV)I` M/$7\9E7.$EP8R53XQAI-1:G'F+C$\0IGFHFB4C$=.9I/00HSU$>(TS#T%MB; MLT\"_!KXBUF0QMR:!`U&MXB`L'%2%W#C)E.P*HJ<(\8NDL#EM;#/<>,D<L<I M"YBC8&-J)[EMAIL PROTECTED]>S`3RS7UY0L.+;L:^M*Q,VK7V#B>E)R'*2F'JI^ M<'V>29(R3L?()VYJ*OKSX&HG&Q>_-:6DS2"ZTC#D%]0D[T!+]K?04G&!6I+E M$M4M'[EMAIL PROTECTED];^H):UD:Y-AP7G>?;&#Y+Q8%+JQ!1<M$I:3J073 MK50SDB.40M,%#37*J1*!6X3$L:W(2&UWBXB]]TI(ZI0+R/16Y"/[EMAIL PROTECTED] M+)@+"#R'[EMAIL PROTECTED](+FQZJ#J8%6G/I*P03"[EMAIL PROTECTED]'SB'>GAV3TDY$ M8D\+^J9HP20*9J"G<$>)VFRBLB"7V%*2--E/&[EMAIL PROTECTED];'E%V="V=ZL2 M8N+Z;CR5[TC+"5A/V62F-`HGP'[EMAIL PROTECTED]'R;@1<!0F([EMAIL PROTECTED] M4RNAYAO+3Y0,^X3`?1+:0JN):)CY:'D\VD44I(4+>/$":G`5"72)Y_`YN=`& MME&"VR7=G[?\%%.SNEY`946Y<"YZ!-<73:49&N(,AYU/O!/$_D9FV3PGXFN( MG>@\-?-S-.\+7M<*42'G;+)ZB*_"ANYNR9?AVMR4/7.F\`7C6`5`D7+=-(S9 M'%;(EEMD`'F49.#/[EMAIL PROTECTED]'O87G<D_^9O78WS_^ZO/_K]0=/^=]C//^[_._. M]&\U^[L[J?M7T\);LJB5$+8:<\M9GO2([T3";E7[.\YBLHA$:0V')9U!L/O. M(J.=HG?WDU)[EMAIL PROTECTED],L7-X>[EMAIL PROTECTED]@[EMAIL PROTECTED]<H!3$>9HB!9 MR+]*_5_<L-A7CA1O7([EMAIL PROTECTED]@!NO$(@MBY8!4(+(2[I?"R;*PY8RG\I%\ M4F&=F`HOQAKI&VQMS41T);:LN>5Z&9%B6E39MWP_H+7R\^BF`MM:09"GP.*( MV&ZB.CTDC_OJ?]UN3_K_]G;?-'OD_P>#I_K?HSRJ\&?QMC"[EMAIL PROTECTED]>BUWYP [EMAIL PROTECTED]'5&S^5[!J%W:>(L'MUJ\ADT%NYCF@:QM&'LX,=2L5CL''/DI`75GD^ M9=\SRR>+)PXN[90LCB1R9ZOR>".,`EO$TGO/+'[EMAIL PROTECTED]);T`BL,6:=3Q7, M?^5QY?H_*(][\K]>QS35^8\YZ&^;;/_]I_K?HSQ_=/Z'61)A7X8WSN7_U63P M.7J-:P%Q&K&CP?]N7'!<*UEA(?=9SEAT\G,4E-,,F`0I4ME"O^<$L&>3O_HW M\ZE_GZ3!-0RT9D>,8QJF=I2HXDF:48GR:EU"90T+)R`6GBP%4+?R"2HI/99$ M2,("'4['K)MK&D!5+GIK+J*8=O#4K%=9H?P&<1`EL*NSZ"T%6Q)S>;@14"T@ [EMAIL PROTECTED]<"8*$B^)\8]`U462FT!E^3J9].S4DREI/G4!I;K,E1&I`.T' MOJBL#+'$"/G>-O2LFX=.=3/*7)>80<T5@"QB&0X==S(1O"5!;$*N4^EL&J2> [EMAIL PROTECTED]""[A`8/QW+42(2I;[EMAIL PROTECTED]:7J[-GST*>/`U\23)/W"NR'`RQ+"V? M()?5JN8%P355!I5JDV!D5./41=G2,([EMAIL PROTECTED]&[IN+05JBJRN0NU)N!P\\$ MS2K)>DUWR`Y8`F):S>[EMAIL PROTECTED],8%&+8)?'PYH`>RY^A<Z"AWNG'6C3_5)$DI&:S MI6WTDLFI^FJQN$K-RGSI6=V%5,/"A%083.W!,HHT]S3Q"'JAVHO;HCV/:KP+ M+C8JN(IFQUN?TAPM1%S1F*0[&J.PI\Q[BZJ]DQ-?RQ:$FA0O=#39AX/::)0K MKFIN"K(L%Z`S][:[EMAIL PROTECTED]'-#0:+W[P+DU[NK8L2#*-MTF(@JMM M^EV%7E2B9O.N>B]Z2E7'=H(;[EMAIL PROTECTED]>WXIY8WP3QW%GH"76-]R;[EMAIL PROTECTED] MXJI3D"VR!=C8I`.-#9RV"$/.Y9W#/RX,7[G<Y1*NRLZ+CH='BS//&V'WW<F' [EMAIL PROTECTED]:2/*)>2-(9)(=\VEG!ZA:$4T4',[SC;-3`1FC44_\`'R:35Y&'+^[RK5! MTTM[`BJ`D\".Y*`&GD1"_$AB\:14)<[EMAIL PROTECTED])(>AE.AI%_X=GT*(?#`> [EMAIL PROTECTED]'@PZVF$_UWT=Z\A3$TL:NTB_T:P4/(*,\!7&E,:U(S%V5LV#D MI<M#RF]L"(<RF\QSR!,@2EPX"V%P8=G3C!]E)[EMAIL PROTECTED](`FD&692`,^A?= MC50R",S?9ZY,"E$(@>G=!N5B&PU"T.BW0/V(#P4#UR=W>N/B(,:8?D4I"H4^ MBX[V*#O&P)W/[EMAIL PROTECTED]&OC]<&[PR/X%0[?'7TX.=C?.SU`?V<.%:41M([EMAIL PROTECTED] [EMAIL PROTECTED]".H=H8T(`H1G#P.:4R%;X;*G[%%S2XV9@/"5AI!Q?AF2.HO M7N@<?53`H.;6SWS,N%DMBH)"&ARDM$0-$J9!,C0R+D.D?CLVCO"Y.BY5LT0! MF#IYCF3>HY>+5`?ITGLN;-6$?T+EOR4(AJ1?U614._!M&>I$+3:#R5FZ#>R4 MQ\]`V=S=!O=6#4^20Z`X]-RD5NTTP&I`I56IER;:.H\N:$G_OQ65\B3_X7C< M5_\=;+?S^D^7_7^GUWGR_X_Q%/T_^WUU08"<9!];A.?$.P7G_,I&C=G%#[1` [EMAIL PROTECTED]/%ECY_U\#:7G`SM==!OZ0&TYH)"?]DBB9&KYQ1)`!F%4>["N MG22:+VT5R((7<2)F-:@X4JNA0I9?H8^N_.C+CP'^*URM0%.G7-0G3V$.919; [EMAIL PROTECTED]/NMSS$`C^JVPAD5X&V/]]P+Y1:*"M027#W&9,]N%%S.JVAHC(D;>A#MPI MIW'BHT?^H]:_L,_]HTBN//[EMAIL PROTECTED]/SF.XY%O! M`%=M8W1L_=Q\N</!GO;_([K*%R=1K6HV`/_0KJ^2::W:KF^9=40AF'7>Y&)T M17T27[&O(0LM=>II(R&INP2ZE$Y(#LS[>T_&G_`IEN<?BL<]]M_M;`_T_9]! M;[!-]C_H;C_9_V,\SR&-Q23U(%.$TF$)7[8&4-]&E<LX21:P9>E;USYLQ*WF M)O6C$7^NG?\\O-C\7!\V-UN?S5:X<5G):EGX<CB1Y\IT^F+17BRA-Z[S([$D MP(P]"+,J7DQE_FQ_Z2^H'!@'?H-#(4J='Q)':[EMAIL PROTECTED]@>UJI*TSA>FQT&4-!F< MMDA9T4_N5V4Q57Q5E=WB#699GVIMJDT+%P-)@')!,"^A%PN#>L:XH)M5!DM5 ML*7[HR0.G:;C()!H,R])9I*HFE^AQGU_V3$O?@/4J%JX182W#JD07;Q6BBY; MUA+MI9XZ_/8;U`KU1)*U&M(6=8:?,EWA`C#7\7!^N;8Z^F=KI;:OYD32>DV' [EMAIL PROTECTED]"KMWYEN7#"[5E35BB7-P;X(NUZ=I7V.;S?>W,`KS_!F^/_>O?E M[=GQE_<'9W_]\&9#(Y1OU!8693;7("5^5%,EX>31!26CND?,+-<;77H!)[27 MG_]R.0WBA)=B:[EMAIL PROTECTED];$&'9FV5.JD.C;LX#$J?:07?P/K3B^"2(' MJLP=+<EVQ`05PDV*A7U-;VK%T\+-:-V,&?\L3&[I4#?K5SML![+;Y%GGMU+E MO[3&XX6X39YRFSV=!0[Z_3;D!(M5>D61+N!Q(SR\$I!F%U8^YY3K1-F446N* M?45D'([EMAIL PROTECTED],^60O2H6QAH:YEM_?QSW*>=6\(">UML;7^''`(?H5A%R3 M`OR"4+J1CA+6UN3!$,'+5GE>O[:&C-?6;"L6)0R78,^/_(O-^AH+-4*YJ-:4 MI)$/PR'U?EKDO0L^/"MVB]BR27`T=QP8'ZV45OR4C%W='M*>6[FM&C5MS7.M M?I7/?F?WA8FQ)!'L\INH[^QVF.8&[EMAIL PROTECTED]&QN8MDD*EHV,*I/WM>T?/ M__Q';96;]@/RN"?_ZZO[/YS_=>G=--O]I_K/HSR8Y%!"0_5;NO:0I32PV<*$ MR?5M+W708N/$\=QQ<[I;;G.#Y::(#F2QS6AM(@U`))E=P!OY:S299O%EDI0C MG#N.*(>)@C2A*PJ$I%42L:1L;DSU_KST[Z>S,;XB+('O!^$B<J^F"=3VZV#^ M\$,?#I'3WY`3X;UR;_YAMO]BIW'3MF9-RVZFU[L*]8SN#-+/9R)T0#$ZM1N< MB"$GJ;9%)Q#9K^;XMW&H`RW,P#!LN9,%X6-;BOO=2%X;$=$L)C'IR[NCC_`. MXUAD>7"<CCW7AI]<6Z`W!HL'&5(C'[>.%XSQEF0X53+`6[KLP[<RAR!<NJ64 MC;[3('R4HV8E)&H$\B94G7-4STIRV.;2.//A.+I</PU"(>\!X6#T"8C<$S0P MZTD(_>^'&#X_GL'>T2?X^][)R=[1V:<A']M024_,A23E8F+L(F4<0&3YN$\( M)H3]_N!D_Z^(LO?Z\*?#LT\D^=O#LZ.#TU-X^^$$]N!X[^3L</_C3WLG</SQ MY/[EMAIL PROTECTED]<N)[P<.%^.2#`ABO6`Z:>4ZBK,E-+*2-C"G0N'?Z45 M+NY>)4+.%LH+Z.==?-<&E7A(V8`?)`VXB=1/,E?6C=#SI6O`H6\W&S#8[L-[ M3-U@;RX:L&_-QI'K7.'K^SUH=\SN#PWX>[EMAIL PROTECTED])3C)PU*ZLED9B MCO91L]%.$\RBT'UMSBU<K6)#)";[EMAIL PROTECTED]@,BFRJ;/*(YPD8>?2V1"!N([EMAIL PROTECTED] M57M<1YIUP']4G-%5T76FB_]T(RU`;[EMAIL PROTECTED]<[.W-AQK]R$ MOM>1:OCRY5!F7(B`Y`H(T1)"1`A1AK#$$%G:S)(*I<CK1VC##L^'1D`>-O,@ MB"B#P(8<[EMAIL PROTECTED],.NBYUS6PEE>>'4PJ\T"!M>CJ#3'PR!MHIQG-(1 MZ=[I_N$A3ZEEDR72K4I<UIQ45"85$:DH(U7FN8X2VW6=B,W)(\IU!/@FYYN6 M9QZJN:1EB=27N3=J#R6AI;E'#/0"2>#52&MJ).KF9OT%?3';=47J%FRY$#DV MLLNQZ4N&S=)[++V72^^1]%X.L4ZKQ'.QJ;2*X=I+$%G'EEGL*:*\Y)YOE)FZ M^8&"BFME.Y%=R[8BCQ4:!JP^2T9U!X&)II$;740R1:."P6K<G$Q=S7&4#45B MJ1G+,#,)BYSH8-:8!ZZ#[MJZ$E\P.GUQ7%&CIKI!8DRX%#"I8:1&[EMAIL PROTECTED] M''DECVO4:4WA[.:S7V%`X,-@>=)ZUUE-#DL4&KZ$ONW,)H>DJP)6=!5SB,5@ M(X_JV;#Y5ZFX-^7?I6.2D"/QW2]UH(N!K,V^&-ED-TH+H![Z;A._LS828LV4 MDT7+8N#&V:_1&\J`?E&NX"9^F<M)[EMAIL PROTECTED])YM0I/B\=S%4Z^LJ3UDC.J3K M_?K20M09`L=5<\F:W%<]_/?RI79=B+J.-&E]B?NY^]*\:*AS)+0T9N=>T'1B MRS"[,5CHR-"D^B-)&"UK/T.WD3"_F/JEHU^Z%W7IW%'(4;L.2F4J<>$JAIY+ M`MHMP`0>ZE6Q\U5;#TZ#\&53#:)60[J);^7%^=Z)\-/S]#P]3\^?[/D?DLC5 %D0!0```> ` end