Hi This probably got lost in the noise. It would be nice to get some feedback about the proposed patch below. I would still be really interested to work on this as this is a real painpoint for us. But if there is no chance of getting this upstream, I'm not very keen on working on this.
Gaudenz Gaudenz Steinlin <gaud...@debian.org> writes: > Hi > > Attached is a prototype patch to implement custom persistence for > live-config components. Only one component is converted to this to show > how it's intended to work. The patch is not yet tested. I'd like to have > some feeback before going on and converting all the components and > testing. > > Gaudenz > From fe609f3c78afe898c6c9c4690a87de2543f0563c Mon Sep 17 00:00:00 2001 > From: Gaudenz Steinlin <gaud...@debian.org> > Date: Sat, 28 Mar 2015 14:47:40 +0100 > Subject: [PATCH] Custom persistence for components > > Persistence can be enabled/disabled with the parameters > persistent-components and nonpersistent-components. These parameters > take a comma separated list of components. Each components can define > it's default setting in case it's not listed in one of these parameters. > --- > components/0010-debconf | 8 +++++--- > components/functions.sh | 38 ++++++++++++++++++++++++++++++++++++++ > frontend/live-config | 12 ++++++++---- > 3 files changed, 51 insertions(+), 7 deletions(-) > create mode 100644 components/functions.sh > > diff --git a/components/0010-debconf b/components/0010-debconf > index cc70e46..8b02254 100755 > --- a/components/0010-debconf > +++ b/components/0010-debconf > @@ -10,6 +10,8 @@ > > #set -e > > +. /lib/live/config/functions.sh > + > Cmdline () > { > # Reading kernel command line > @@ -27,7 +29,7 @@ Init () > { > # Checking if package is installed or already configured > if [ ! -e /var/lib/dpkg/info/debconf.list ] || \ > - [ -e /var/lib/live/config/debconf ] > + check_statefile > then > exit 0 > fi > @@ -84,8 +86,8 @@ Config () > rm -f "${_TMPFILE}" > done > > - # Creating state file > - touch /var/lib/live/config/debconf > + # Creating state file if requested > + create_statefile "false" > } > > Cmdline > diff --git a/components/functions.sh b/components/functions.sh > new file mode 100644 > index 0000000..f8141f5 > --- /dev/null > +++ b/components/functions.sh > @@ -0,0 +1,38 @@ > + > +_SCRIPT="$(readlink -f ${0})" > +_COMPONENT_NAME="${_SCRIPT#/lib/live/config/????-}" > + > +create_statefile() { > + > + # set default value > + _CREATE="$1" > + > + if echo "${LIVE_CONFIG_PERSISTENT_COMPONENTS}" | grep -q > "${_COMPONENT_NAME}" > + then > + _CREATE="true" > + elif echo "${LIVE_CONFIG_NONPERSISTENT_COMPONENTS}" | grep -q > "${_COMPONENT_NAME}" > + then > + _CREATE="false" > + fi > + > + # create statefile if requested > + if [ ${_CREATE} = "true" ] > + then > + touch /var/lib/live/config/${_COMPONENT_NAME} > + fi > +} > + > +check_statefile() { > + > + # if the component is listed in LIVE_CONFIG_NONPERSISTENT_COMPONENTS the > statefile > + # is ignored > + if echo "${LIVE_CONFIG_NONPERSISTENT_COMPONENTS}" | grep -q > "${_COMPONENT_NAME}" > + then > + return 1 > + elif [ -e /var/lib/live/config/${_COMPONENT_NAME} ] > + then > + return 0 > + else > + return 1 > + fi > +} > diff --git a/frontend/live-config b/frontend/live-config > index ee9dfd1..6d01615 100755 > --- a/frontend/live-config > +++ b/frontend/live-config > @@ -38,8 +38,6 @@ _IP_SEPARATOR="-" > _PROC_OPTIONS="onodev,noexec,nosuid" > export _IP_SEPARATOR _PROC_OPTIONS > > -_COMPONENTS="$(ls /lib/live/config/*)" > - > # Reading configuration files from filesystem and live-media > for _FILE in /etc/live/config.conf /etc/live/config/* \ > /lib/live/mount/medium/live/config.conf > /lib/live/mount/medium/live/config/* > @@ -67,14 +65,14 @@ Cmdline () > # Run all components > LIVE_CONFIG_COMPONENTS="" > LIVE_CONFIG_NOCOMPONENTS="" > - _COMPONENTS="$(ls /lib/live/config/*)" > + _COMPONENTS="$(ls /lib/live/config/????-*)" > ;; > > live-config.nocomponents=*|nocomponents=*) > # Don't run requested components > LIVE_CONFIG_COMPONENTS="" > > LIVE_CONFIG_NOCOMPONENTS="${_PARAMETER#*nocomponents=}" > - _COMPONENTS="$(ls /lib/live/config/*)" > + _COMPONENTS="$(ls /lib/live/config/????-*)" > ;; > > live-config.nocomponents|nocomponents) > @@ -83,6 +81,12 @@ Cmdline () > LIVE_CONFIG_NOCOMPONENTS="" > _COMPONENTS="" > ;; > + > live-config.persistent-components=*|persistent-components=*) > + export > LIVE_CONFIG_PERSISTENT_COMPONENTS="${_PARAMETER#*persistent-components=*}" > + ;; > + > live-config.nonpersistent-components=*|nonpersistent-components=*) > + export > LIVE_CONFIG_NONPERSISTENT_COMPONENTS="${_PARAMETER#*nonpersistent-components=}" > + ;; > > # Shortcuts > live-config.noroot|noroot) > -- > 2.1.4 -- To UNSUBSCRIBE, email to debian-live-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: https://lists.debian.org/87vbebc254....@meteor.durcheinandertal.bofh