> -----Original Message----- > From: Devin Teske [mailto:devin_at_shxd.cx] > Sent: Tuesday, September 2, 2014 4:12 PM > To: 'dteske_at_FreeBSD.org'; 'freebsd-current' > Cc: 'Julian Elischer'; 'Nathan Whitehorn' > Subject: RE: [CFT] Installer Enhancement -- dpv > > I have posted this on reviews.f.o: > > https://reviews.freebsd.org/D714 I have updated phabricator differential review D714. -- Cheers, Devin > > -----Original Message----- > > From: devin_at_shxd.cx [mailto:devin_at_shxd.cx] On Behalf Of > > dteske_at_FreeBSD.org > > Sent: Tuesday, September 2, 2014 12:11 PM > > To: 'freebsd-current' > > Cc: dteske_at_FreeBSD.org; 'Julian Elischer'; 'Nathan Whitehorn' > > Subject: [CFT] Installer Enhancement -- dpv > > > > Hi all, > > > > I've completed a significant enhancement to bsdinstall's distextract. > > > > Current code: > > http://svnweb.freebsd.org/base/head/usr.sbin/bsdinstall/distextract/ > > > > Proposed Patch: > > http://druidbsd.sf.net/download/dpv-1.1-freebsd-head-patch- > 20140830.txt > > > > NB: Proposed commit message further below (after length "Story" > section). > > > > Proposal is to commit this in 2 weeks and MFC to stable/10 *after* the > > 10.1-RELEASE (likely January MFC). > > > > Patched FreeBSD-9.3-STABLE-i386-20140820-r270206-disc1.iso: > > http://locheil.shxd.cx/FreeBSD-9.3-i386+dpv-1.1.iso > > > > I'd like to ask for community help in testing the improved distextract > > (especially over serial). > > > > NOTE: The only thing that I've changed in this patch and the above > > patched image was the distextract code. So the unpacking of the OS > > to the target installation media will look different than it does > > currently, but other than that no changes. > > > > Story: > > > > I really liked the direction that bsdinstall took in utilizing dialog(3)'s > > dialog_mixedgauge() widget -- allowing us to, unlike sysinstall, show > > overall progress for multiple items. However, I wanted to bring back > > some things from sysinstall which were nice -- such as the status info > > displayed along the bottom of the terminal (showing data through- > > put). > > > > The problem I had was that dialog_mixedgauge() is not very flexible. > > That being said, there are quite a few places where dialog_mixedgauge() > > is used: > > > > + bsdinstall distextract > > + bsdinstall distfetch > > > > And I would really like to use it in bsdconfig for package installation. > > However, due to known short-comings I have not yet utilized that > > widget in bsdconfig. > > > > Knowing that I would potentially have to duplicate the work I perform > > on distextract two or three times over, I chose to develop a replacement > > for dialog_mixedgauge() in the form of separate library (in its own > > directory). > > > > The result is the "dpv" library -- styled after "pv" from ports (in the > > sysutils category but does more): http://freshports.org/sysutils/pv > > > > It also comes with a "dpv" utility. A mixture of bsdconfig, bsdinstall, > > and other utilities should consume both the library and utility: > > > > + bsdinstall distextract will use dpv(3) in place of dialog_mixedgauge() > > NB: See above-mentioned patch "dpv-1.1-freebsd-head-patch-*.txt" > > + bsdinstall distfetch will use the same > > + bsdconfig packages will use dpv(1) in place of dialog(1) --infobox > > + A new tool "dpkg" will use dpv(3) to visualize pkg(1) EVENT_PIPE data > > + bsdconfig packages will use new "dpkg" tool to visualize pkg mgmt > > versus simply using dialog --infobox as it currently does > > > > How the dpv(3) library function works is by not using dialog_mixedgauge() > > (which was found to be very inflexible) but rather using dialog(3)'s more > > flexible dialog_gauge() widget. The secret behind getting a better widget > > is that dialog_gauge() allows you to dynamically update the prompt text > > after it has been called to life. The dpv(3) library renders prompt text > > similar to what you get with dialog_mixedgauge() but requires less work, > > is more flexible, and works around the shortcomings of the latter. > > > > For even more backstory, see my blog: > > http://devinteske.com/freebsd-installer-enhancements/ > > > > Proposed commit message: > > > > In bsdinstall's distextract, replace mixed_gauge() of dialog(3) with > > new dpv(3) wrapper to dialog(3) dialog_gauge(). The dpv(3) library > provides > > a more flexible and refined interface similar to dialog_mixedgauge() > > however > > is implemented atop the more generalized dialog_gauge() for portability. > > This commit also introduces dpv(1) as a full test program for dpv(3). > > Noticeable improvements in bsdinstall's distextract will be a status line > > showing data rate information (with support for localeconv(3) to format > > numbers according to $LANG or $LC_ALL conversion information), i18n > > support, > > improved auto-sizing of gauge widget, a ``wheel barrow'' to keep the user > > informed that things are moving (even if status/progress has not changed), > > improved color support (mini-progress bars use the same color, if enabled, > > as the main gauge bar), and several other improvements (some not > visible). > > dpv stands for "dialog progress view". > > > > Discussed on: -current > > Reviewed by: <your name(s) here> > > Tested by: jelischer, <your name(s) here> > > Relnotes: yes > > MFC after: 4 months > > X-MFC-to: stable/10, stable/9 > > --This line, and those below, will be ignored-- > > M usr.sbin/bsdinstall/distextract/Makefile > > M usr.sbin/bsdinstall/distextract/distextract.c > > M share/mk/bsd.libnames.mk > > M lib/Makefile > > A lib/libdpv > > AM lib/libdpv/Makefile > > AM lib/libdpv/dialog_util.c > > AM lib/libdpv/dialog_util.h > > AM lib/libdpv/dialogrc.c > > AM lib/libdpv/dialogrc.h > > AM lib/libdpv/dprompt.c > > AM lib/libdpv/dprompt.h > > AM lib/libdpv/dpv.3 > > AM lib/libdpv/dpv.c > > AM lib/libdpv/dpv.h > > AM lib/libdpv/dpv_private.h > > AM lib/libdpv/status.c > > AM lib/libdpv/status.h > > AM lib/libdpv/util.c > > AM lib/libdpv/util.h > > A lib/libfigpar > > AM lib/libfigpar/Makefile > > AM lib/libfigpar/figpar.3 > > AM lib/libfigpar/figpar.c > > AM lib/libfigpar/figpar.h > > AM lib/libfigpar/string_m.c > > AM lib/libfigpar/string_m.h > > M usr.bin/Makefile > > A usr.bin/dpv > > AM usr.bin/dpv/Makefile > > AM usr.bin/dpv/dpv.1 > > AM usr.bin/dpv/dpv.c > > AM usr.bin/dpv/dpv_util.h > > > > -- > > Cheers, > > DevinReceived on Wed Nov 26 2014 - 20:14:15 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:54 UTC