[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#492861: marked as done (Progress bar rewinds when running pre-pkgsel.d/10popcon)



Your message dated Tue, 26 Aug 2008 09:32:33 +0000
with message-id <E1KXuuf-0008Vz-QU@ries.debian.org>
and subject line Bug#492861: fixed in pkgsel 0.22
has caused the Debian Bug report #492861,
regarding Progress bar rewinds when running pre-pkgsel.d/10popcon
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
492861: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=492861
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: pkgsel
Version: 0.21
Severity: minor

Before pkgsel 0.21, the progress bar had progress points between 0 and
100, with the following steps:
       0    initialization
       1    after retrieving debconf-apt-progress configuration
       1-5  installation of popcon
       5-90 tasksel
   or  5-95 (empty pkgsel-include)
      90-95 installation of packages in pkgsel/include
      95    cleanup
      97    scrollkeeper and fontconfig update
     100    end

pkgsel 0.21 added a system upgrade step.  It is actually run before the
execution of pre-pkgsel.d hooks, but progresses between 5 and 10.

As pre-pkgsel.d/10popcon is ran after this, the progress bar currently
goes back to 1, progress to 5, and jumps to 10 when tasksel starts.

One solution to solve this would be to change the API of pre-pkgsel.d
scripts.  They could have the current progress step as their
command-line argument and echo the standard output the new progress
step.

Attached is a patch set implementing this solution.  The last patch adds
a default stepping by 1 for each pre-pkgsel.d script.  I thought it was
a nice addition and it can easily be removed.

What do you think?

PS : I have been playing a little more with this idea, and we could
     probably manage to convert all pkgsel steps to individual scripts
     in a pkgsel.d directory by extending this idea a little bit
     further.  But that's beyond Lenny.

Cheers,
-- 
Jérémy Bobbio                        .''`. 
lunar@debian.org                    : :Ⓐ  :  # apt-get install anarchism
                                    `. `'` 
                                      `-   
commit 79c6f7b7eca7ad0ad3805950da87ea9a3f011221
Author: Jérémy Bobbio <lunar@debian.org>
Date:   Tue Jul 29 14:44:27 2008 +0200

    Handle progress bar moves in pre-pkgsel.d scripts
    
    pre-pkgsel.d scripts are now given the current progress bar
    position as their first argument.  They can optionally return the new
    progress bar position as the last line of their standard output.
    
    This will allow other pre-pkgsel.d scripts and the rest of pkgsel to
    know the current progress bar position.

diff --git a/installer/doc/devel/available-hooks.txt b/installer/doc/devel/available-hooks.txt
index e7a3f81..8ceca50 100644
--- a/installer/doc/devel/available-hooks.txt
+++ b/installer/doc/devel/available-hooks.txt
@@ -36,6 +36,9 @@ This list is probably incomplete.
     tasks (tasksel-data) from source added during apt-setup.
     Using the installation CD and thus installing udebs is not possible
     in these scripts (but should also not be needed).
+    Those scripts are called with the current progress bar position as
+    their first argument.  If the progress bar is moved forward, the new
+    position should be printed as the last line of the standard output.
 
 /usr/lib/finish-install.d/* [finish-install]
     The files in this directory are executed in sequence at the end of
diff --git a/packages/pkgsel/debian/changelog b/packages/pkgsel/debian/changelog
index 6ac9335..f705c3c 100644
--- a/packages/pkgsel/debian/changelog
+++ b/packages/pkgsel/debian/changelog
@@ -1,8 +1,14 @@
 pkgsel (0.22) UNRELEASED; urgency=low
 
+  [ Frans Pop ]
   * Disable system upgrades for Etch installs as upgrade options used are
     incompatible with the Etch version of aptitude. Closes: #492593.
 
+  [ Jérémy Bobbio ]
+  * pre-pkgsel.d scripts are now given the current progress bar position as
+    their first argument.  They can optionally return the new progress bar
+    position as the last line of their standard output.
+
  -- Frans Pop <fjp@debian.org>  Sun, 27 Jul 2008 18:24:15 +0200
 
 pkgsel (0.21) unstable; urgency=low
diff --git a/packages/pkgsel/debian/postinst b/packages/pkgsel/debian/postinst
index b959f98..74b8bb4 100755
--- a/packages/pkgsel/debian/postinst
+++ b/packages/pkgsel/debian/postinst
@@ -90,6 +90,7 @@ else
 	tasksel_start=10
 fi
 
+progress_from=$tasksel_start
 partsdir="/usr/lib/pre-pkgsel.d"
 if [ -d "$partsdir" ]; then
 	for script in `ls "$partsdir"/* 2>/dev/null`; do
@@ -100,16 +101,21 @@ if [ -d "$partsdir" ]; then
 		fi
 		if [ -x "$script" ] ; then
 			# be careful to preserve exit code
-			if log-output -t pkgsel "$script"; then
+			if progress_to=$(log-output -t pkgsel --pass-stdout \
+					"$script" $progress_from | tail -n 1); then
 				:
 			else
 				warning "$script returned error code $?"
 			fi
+			if [ "$progress_to" -gt $progress_from ]; then
+				progress_from=$progress_to
+			fi
 		else
 			error "Unable to execute $script"
 		fi
 	done
 fi
+tasksel_start=$progress_from
 
 db_get pkgsel/include
 if [ "$RET" ]; then

commit 479f7fff673ec3109fc2d0fc67b7a16b15661489
Author: Jérémy Bobbio <lunar@debian.org>
Date:   Tue Jul 29 14:53:28 2008 +0200

    Fix progress moving backward on pre-pkgsel.d/10popcon
    
    Since pkgsel 0.21 and the addition of the upgrade step, the progress bar
    was moving backward when pre-pkgsel.d/10popcon was run.
    
    Use the new pre-pkgsel.d API to dynamically compute the progress bar
    position in pre-pkgsel.d/10popcon and adjust the progress bar position
    for the upgrade step.

diff --git a/packages/pkgsel/debian/changelog b/packages/pkgsel/debian/changelog
index f705c3c..d69e6dd 100644
--- a/packages/pkgsel/debian/changelog
+++ b/packages/pkgsel/debian/changelog
@@ -8,6 +8,8 @@ pkgsel (0.22) UNRELEASED; urgency=low
   * pre-pkgsel.d scripts are now given the current progress bar position as
     their first argument.  They can optionally return the new progress bar
     position as the last line of their standard output.
+  * Use the new pre-pkgsel.d API to fix the progress bar moving backward on
+    pre-pkgsel.d/10popcon script since 0.21.
 
  -- Frans Pop <fjp@debian.org>  Sun, 27 Jul 2008 18:24:15 +0200
 
diff --git a/packages/pkgsel/debian/postinst b/packages/pkgsel/debian/postinst
index 74b8bb4..bcadc19 100755
--- a/packages/pkgsel/debian/postinst
+++ b/packages/pkgsel/debian/postinst
@@ -80,14 +80,14 @@ suite=$RET
 
 db_get pkgsel/upgrade
 if [ "$RET" = none ] || [ "$suite" = etch ]; then
-	tasksel_start=5
+	tasksel_start=1
 else
 	upgrade_type="$RET"
 	db_progress INFO pkgsel/progress/upgrade
 	sleep 2 # allow the message to be seen
 
-	in-target sh -c "$config debconf-apt-progress --from 5 --to 10 --logstderr -- aptitude -q --without-recommends -y -o DPkg::options=--force-confnew '$upgrade_type'" || aptfailed
-	tasksel_start=10
+	in-target sh -c "$config debconf-apt-progress --from 1 --to 6 --logstderr -- aptitude -q --without-recommends -y -o DPkg::options=--force-confnew '$upgrade_type'" || aptfailed
+	tasksel_start=6
 fi
 
 progress_from=$tasksel_start
diff --git a/packages/pkgsel/pre-pkgsel.d/10popcon b/packages/pkgsel/pre-pkgsel.d/10popcon
index c17d1e4..2b53f77 100755
--- a/packages/pkgsel/pre-pkgsel.d/10popcon
+++ b/packages/pkgsel/pre-pkgsel.d/10popcon
@@ -2,13 +2,17 @@
 
 set -e
 
+progress_from="$1"
+progress_to=$(($progress_from + 4))
+
 # get debconf-apt-progress config, which will make it run properly later
 config=$(chroot /target debconf-apt-progress --config| sed "s/$/;/")
 
 # Install popularity-contest but remove it if the user decides not to
 # participate.
-if in-target sh -c "$config debconf-apt-progress --from 1 --to 5 --logstderr -- apt-get -o APT::Install-Recommends=false -q -y -f install popularity-contest"; then
+if in-target sh -c "$config debconf-apt-progress --from $progress_from --to $progress_to --logstderr -- apt-get -o APT::Install-Recommends=false -q -y -f install popularity-contest"; then
 	if ! grep -q '^PARTICIPATE=\"*yes\"*' /target/etc/popularity-contest.conf; then
 		in-target dpkg --purge popularity-contest
 	fi
 fi
+echo $progress_to

commit c4ba955019b129452129007b75304e3b520bb331
Author: Jérémy Bobbio <lunar@debian.org>
Date:   Tue Jul 29 14:48:53 2008 +0200

    Step progress by 1 as default for pre-pkgsel.d scripts
    
    When a pre-pkgsel.d script does not return a new progress bar position,
    the progress bar will be moved one step forward for an extra visual
    feedback.

diff --git a/packages/pkgsel/debian/changelog b/packages/pkgsel/debian/changelog
index d69e6dd..673c607 100644
--- a/packages/pkgsel/debian/changelog
+++ b/packages/pkgsel/debian/changelog
@@ -10,6 +10,8 @@ pkgsel (0.22) UNRELEASED; urgency=low
     position as the last line of their standard output.
   * Use the new pre-pkgsel.d API to fix the progress bar moving backward on
     pre-pkgsel.d/10popcon script since 0.21.
+  * When a pre-pkgsel.d script does not return a new progress bar position,
+    move the progress bar one step forward.
 
  -- Frans Pop <fjp@debian.org>  Sun, 27 Jul 2008 18:24:15 +0200
 
diff --git a/packages/pkgsel/debian/postinst b/packages/pkgsel/debian/postinst
index bcadc19..9c0c989 100755
--- a/packages/pkgsel/debian/postinst
+++ b/packages/pkgsel/debian/postinst
@@ -109,6 +109,10 @@ if [ -d "$partsdir" ]; then
 			fi
 			if [ "$progress_to" -gt $progress_from ]; then
 				progress_from=$progress_to
+			else
+				# Move one step forward by default
+				db_progress STEP 1
+				progress_from=$(($progress_from + 1))
 			fi
 		else
 			error "Unable to execute $script"

Attachment: signature.asc
Description: Digital signature


--- End Message ---
--- Begin Message ---
Source: pkgsel
Source-Version: 0.22

We believe that the bug you reported is fixed in the latest version of
pkgsel, which is due to be installed in the Debian FTP archive:

pkgsel_0.22.dsc
  to pool/main/p/pkgsel/pkgsel_0.22.dsc
pkgsel_0.22.tar.gz
  to pool/main/p/pkgsel/pkgsel_0.22.tar.gz
pkgsel_0.22_all.udeb
  to pool/main/p/pkgsel/pkgsel_0.22_all.udeb



A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 492861@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Jérémy Bobbio <lunar@debian.org> (supplier of updated pkgsel package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@debian.org)


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Format: 1.8
Date: Tue, 26 Aug 2008 10:58:05 +0200
Source: pkgsel
Binary: pkgsel
Architecture: source all
Version: 0.22
Distribution: unstable
Urgency: low
Maintainer: Debian Install System Team <debian-boot@lists.debian.org>
Changed-By: Jérémy Bobbio <lunar@debian.org>
Description: 
 pkgsel     - Select and install packages (udeb)
Closes: 492593 492861
Changes: 
 pkgsel (0.22) unstable; urgency=low
 .
   [ Frans Pop ]
   * Disable system upgrades for Etch installs as upgrade options used are
     incompatible with the Etch version of aptitude. Closes: #492593.
   * There is no need to run debconf-apt-progress --config as in-target already
     sets the correct environment.
   * Multiply progress steps by 10 in postinst script.
   * Advance progress bar when running pre-pkgsel.d scripts.
   * Drop the advancement of the progress bar in pre-pkgsel.d/10popcon.
     (Closes: #492861)
 .
   [ Jérémy Bobbio ]
   * Add missing warning() definition in postinst script.
 .
   [ Updated translations ]
   * Arabic (ar.po) by Ossama M. Khayat
   * Belarusian (be.po) by Pavel Piatruk
   * German (de.po) by Jens Seidel
   * Dzongkha (dz.po) by Jurmey Rabgay(Bongop) (DIT,BHUTAN)
   * Greek, Modern (el.po) by Emmanuel Galatoulas
   * Esperanto (eo.po) by Felipe Castro
   * French (fr.po) by Christian Perrier
   * Croatian (hr.po) by Josip Rodin
   * Italian (it.po) by Milo Casagrande
   * Malayalam (ml.po) by Praveen|പ്രവീണ്‍ A|എ
   * Norwegian Bokmål (nb.po) by Hans Fredrik Nordhaug
   * Portuguese (Brazil) (pt_BR.po) by Felipe Augusto van de Wiel (faw)
   * Russian (ru.po) by Yuri Kozlov
   * Traditional Chinese (zh_TW.po) by Tetralet
Checksums-Sha1: 
 50d706ebd06e0f039f59bbfc20e3129fb85a14dd 805 pkgsel_0.22.dsc
 a2161ca4f32c3ea103f0059a64593150ed8d7c62 28116 pkgsel_0.22.tar.gz
 e93dfc6217e26cd8dcec0efc9ec38cde8de5a2b0 8716 pkgsel_0.22_all.udeb
Checksums-Sha256: 
 5cbac02ab7fd69f1b8edf38a1d17220748abd346a9672fc30a207ee05d766d6d 805 pkgsel_0.22.dsc
 4768b92d6587b8563779f5d6e67bd62af7f9ad16fac77124704a24a3b17ac340 28116 pkgsel_0.22.tar.gz
 b195d61970cb05e6f9e70e3f4a5af853cb1fae5a610506a14a47100e71019f75 8716 pkgsel_0.22_all.udeb
Files: 
 945580546eb674fad3a4a6298dbc6458 805 debian-installer standard pkgsel_0.22.dsc
 f749ec75043a8c34e490eb4c767d69ab 28116 debian-installer standard pkgsel_0.22.tar.gz
 be073b46ef6abf26e2ff8fdcc3ca41dc 8716 debian-installer standard pkgsel_0.22_all.udeb
Package-Type: udeb

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)

iD8DBQFIs8o42PUjs9fQ72URAh3xAJ9qmYlukpbUgnwWd9L6IX3xsHH01gCgwQPu
h8M/uhIF8eH/PuiX1vBnJ+g=
=NPNf
-----END PGP SIGNATURE-----



--- End Message ---

Reply to: