RE: [CFT] Installer Enhancement -- dpv

From: <dteske_at_FreeBSD.org>
Date: Wed, 26 Nov 2014 13:14:08 -0800
> -----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,
> > Devin
Received 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