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

Bug#504668: marked as done (firmware-nonfree: Add License handler in gencontrol.py)



Your message dated Wed, 03 Dec 2008 22:42:22 +0000
with message-id <E1L80QI-0002Mj-W9@ries.debian.org>
and subject line Bug#504668: fixed in firmware-nonfree 0.14
has caused the Debian Bug report #504668,
regarding firmware-nonfree: Add License handler in gencontrol.py
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.)


-- 
504668: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=504668
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: firmware-nonfree
Severity: normal
Tags: patch

The two patches attaches allow gencontrol.py to handle licenses
in a way that complies with ipw2100 and ipw2200 firmware license.

The patch links.diff implements a "links" entry in the firmware's
define file. That entry is a list of source:target that is used
by gencontrol.py to generate ./debian/firmware-foobar.links

The patch license.diff implements license=[required|no-preseed]
and license_name entry in the firmware's define file.
When used, those fields are used to generate a preinst script 
that present the license to the user.
If license=no-preseed, then the license acceptation can't be
accepted by using Debconf preseeding (!).

Franklin

-- System Information:
Debian Release: lenny/sid
  APT prefers testing
  APT policy: (990, 'testing'), (200, 'unstable')
Architecture: i386 (i686)

Kernel: Linux 2.6.26-1-686 (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
diff --git a/debian/bin/gencontrol.py b/debian/bin/gencontrol.py
index 92f0017..f5d5cc9 100755
--- a/debian/bin/gencontrol.py
+++ b/debian/bin/gencontrol.py
@@ -134,6 +134,11 @@ class GenControl(object):
             postinst = self.templates['postinst.initramfs-tools']
             file("debian/firmware-%s.postinst" % package, 'w').write(self.substitute(postinst, vars))
 
+	if 'links' in config_entry:
+            for l in config_entry['links']:
+                src,trg = l.split(':')
+                file("debian/firmware-%s.links" % package, 'w').write("%s %s\n" % (src, trg))
+
         packages.extend(packages_binary)
 
         makefile.add('binary-indep', cmds = ["$(MAKE) -f debian/rules.real binary-indep %s" % makeflags])
@@ -209,6 +214,7 @@ class Config(dict):
     schemas = {
         'base': {
             'files': SchemaItemList(),
+            'links': SchemaItemList(),
             'packages': SchemaItemList(),
             'support': SchemaItemList(),
         }
diff --git a/debian/changelog b/debian/changelog
index bbbe478..e871f01 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+firmware-nonfree (0.14) unstable; urgency=low
+
+  * gencontrol can generate links file.
+
+ -- Frank Lin PIAT <fpiat@klabs.be>  Mon, 27 Oct 2008 00:05:03 +0100
+
 firmware-nonfree (0.13) unstable; urgency=low
 
   * Make firmware-bnx2 trigger update-initramfs (closes: #494936)
diff --git a/debian/rules b/debian/rules
index 648d517..9a6f3fb 100755
--- a/debian/rules
+++ b/debian/rules
@@ -12,4 +12,5 @@ maintainerclean:
 	-rm debian/control debian/control.md5sum debian/rules.gen
 	-rm debian/*.copyright
 	-rm debian/*.hook.*
+	-rm debian/*.links
 	-rm debian/*.postinst
diff --git a/debian/rules.real b/debian/rules.real
index 7626ef5..83646f4 100644
--- a/debian/rules.real
+++ b/debian/rules.real
@@ -30,6 +30,7 @@ install:
 	fi
 	dh_installchangelogs
 	dh_installdocs
+	dh_link
 	dh_compress
 	dh_fixperms
 	dh_installdeb
diff --git a/debian/bin/gencontrol.py b/debian/bin/gencontrol.py
index f5d5cc9..b23cd51 100755
--- a/debian/bin/gencontrol.py
+++ b/debian/bin/gencontrol.py
@@ -83,6 +83,8 @@ class GenControl(object):
         config_entry = self.config['base', package]
         vars.update(config_entry)
         vars['package'] = package
+        vars['debconfpkg'] = "firmware-%s" % package
+        vars['license_name'] = package
 
         makeflags['PACKAGE'] = package
 
@@ -91,6 +93,11 @@ class GenControl(object):
 
         vars['license'] = file("%s/LICENSE" % package).read()
 
+        regex=re.compile('^\s*$', re.MULTILINE)
+        vars['license_indented'] = re.sub(regex, '.', vars['license'])
+        regex=re.compile('^', re.MULTILINE)
+        vars['license_indented'] = re.sub(regex, ' ', vars['license_indented'])
+
         file("debian/firmware-%s.copyright" % package, 'w').write(self.substitute(copyright, vars))
 
         files_orig = config_entry['files']
@@ -139,6 +146,15 @@ class GenControl(object):
                 src,trg = l.split(':')
                 file("debian/firmware-%s.links" % package, 'w').write("%s %s\n" % (src, trg))
 
+        if 'license_accept' in config_entry:
+            preinst = self.templates['preinst.license']
+            preinst_filename = "debian/firmware-%s.preinst" % package
+            file(preinst_filename, 'w').write(self.substitute(preinst, vars))
+
+            templates = self.templates['license.templates']
+            templates_filename = "debian/firmware-%s.templates" % package
+            file(templates_filename, 'w').write(self.substitute(templates, vars))
+
         packages.extend(packages_binary)
 
         makefile.add('binary-indep', cmds = ["$(MAKE) -f debian/rules.real binary-indep %s" % makeflags])
diff --git a/debian/changelog b/debian/changelog
index e871f01..756f9a8 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,8 @@
 firmware-nonfree (0.14) unstable; urgency=low
 
   * gencontrol can generate links file.
+  * gencontrol can generate license acceptation prompt, based on
+    sun-java5 preinst script and template.
 
  -- Frank Lin PIAT <fpiat@klabs.be>  Mon, 27 Oct 2008 00:05:03 +0100
 
diff --git a/debian/rules b/debian/rules
index 9a6f3fb..38f8b0f 100755
--- a/debian/rules
+++ b/debian/rules
@@ -12,5 +12,7 @@ maintainerclean:
 	-rm debian/control debian/control.md5sum debian/rules.gen
 	-rm debian/*.copyright
 	-rm debian/*.hook.*
 	-rm debian/*.links
+	-rm debian/*.templates
+	-rm debian/*.preinst
 	-rm debian/*.postinst
diff --git a/debian/rules.real b/debian/rules.real
index 83646f4..afcf1cc 100644
--- a/debian/rules.real
+++ b/debian/rules.real
@@ -30,6 +30,7 @@ install:
 	fi
 	dh_installchangelogs
 	dh_installdocs
+	dh_installdebconf
 	dh_link
 	dh_compress
 	dh_fixperms
diff --git a/debian/templates/license.templates.in b/debian/templates/license.templates.in
new file mode 100644
index 0000000..629547b
--- /dev/null
+++ b/debian/templates/license.templates.in
@@ -0,0 +1,21 @@
+Template: @debconfpkg@/present-@license_name@
+Type: note
+Description: @license_title@
+@license_indented@
+
+Template: @debconfpkg@/accepted-@license_name@
+Type: boolean
+Default: false
+Description: Do you agree with the @license_title@ license terms?
+ In order to install this package, you must agree to its license terms, the
+ "@license_title@".
+ Not accepting will cancel the installation.
+
+Template: @debconfpkg@/error-@license_name@
+Type: error
+Description: Declined @license_title@
+ If you do not agree to the "@license_title@" 
+ license terms you cannot install this software.
+ .
+ The installation of this package will be canceled.
+
diff --git a/debian/templates/preinst.license.in b/debian/templates/preinst.license.in
new file mode 100644
index 0000000..ec750e9
--- /dev/null
+++ b/debian/templates/preinst.license.in
@@ -0,0 +1,77 @@
+#!/bin/sh -e
+
+. /usr/share/debconf/confmodule
+db_version 2.0
+db_capb backup
+
+#Valid values are "required" and "no-preseed"
+license_accept=@license_accept@
+
+errmsg()
+{
+    echo >&2 ''
+    echo >&2 "$@"
+    echo >&2 "try 'dpkg-reconfigure debconf' to select a frontend other than noninteractive"
+    echo >&2 ''
+}
+
+db_get @debconfpkg@/accepted-@license_name@
+if [ "$RET" = "true" ]; then
+    echo "@license_name@ license has already been accepted" >&2
+    exit 0
+fi
+
+# facilitate backup capability per debconf-devel(7)
+STATE=1
+while true; do
+    case "$STATE" in
+    0)  # ensure going back from license presentment is harmless
+        STATE=1 
+        continue
+        ;;   
+    1)  # present license
+        db_get @debconfpkg@/accepted-@license_name@
+       	if [ "$RET" != true -o "${license_accept}" = "no-preseed" ]; then
+		db_fset @debconfpkg@/present-@license_name@ seen false
+        	if ! db_input critical @debconfpkg@/present-@license_name@ ; then
+        	    errmsg "@license_name@ license could not be presented"
+		    exit 2
+        	fi
+
+        	db_fset @debconfpkg@/accepted-@license_name@ seen false
+        	if ! db_input critical @debconfpkg@/accepted-@license_name@ ; then
+        	    errmsg "@license_name@ agree question could not be asked"
+		    exit 2
+        	fi
+	fi
+        ;;      
+    2)  # determine users' choice
+        db_get @debconfpkg@/accepted-@license_name@
+        if [ "$RET" = "true" ]; then
+	    # license accepted
+            exit 0
+        fi
+        # error on decline license (give user chance to back up)
+        db_input critical @debconfpkg@/error-@license_name@
+        ;;      
+    3)  # user has confirmed declining license
+        echo "user did not accept the @license_name@ license" >&2
+        exit 1
+        ;;   
+    *)  # unknown state
+        echo "@license_name@ license state unknown: $STATE" >&2
+        exit 2
+        ;;   
+    esac
+    if db_go; then
+        STATE=$(($STATE + 1))
+    else
+        STATE=$(($STATE - 1))
+    fi
+done
+ 
+#DEBHELPER#
+
+# proper exit (0 or 1) above
+errmsg "@license_name@ license could not be presented / was not accepted"
+exit 2

--- End Message ---
--- Begin Message ---
Source: firmware-nonfree
Source-Version: 0.14

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

firmware-bnx2_0.14_all.deb
  to pool/non-free/f/firmware-nonfree/firmware-bnx2_0.14_all.deb
firmware-ipw2x00_0.14_all.deb
  to pool/non-free/f/firmware-nonfree/firmware-ipw2x00_0.14_all.deb
firmware-iwlwifi_0.14_all.deb
  to pool/non-free/f/firmware-nonfree/firmware-iwlwifi_0.14_all.deb
firmware-nonfree_0.14.dsc
  to pool/non-free/f/firmware-nonfree/firmware-nonfree_0.14.dsc
firmware-nonfree_0.14.tar.gz
  to pool/non-free/f/firmware-nonfree/firmware-nonfree_0.14.tar.gz
firmware-qlogic_0.14_all.deb
  to pool/non-free/f/firmware-nonfree/firmware-qlogic_0.14_all.deb
firmware-ralink_0.14_all.deb
  to pool/non-free/f/firmware-nonfree/firmware-ralink_0.14_all.deb



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 504668@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Bastian Blank <waldi@debian.org> (supplier of updated firmware-nonfree 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, 02 Dec 2008 18:07:12 +0100
Source: firmware-nonfree
Binary: firmware-bnx2 firmware-ipw2x00 firmware-iwlwifi firmware-qlogic firmware-ralink
Architecture: source all
Version: 0.14
Distribution: unstable
Urgency: low
Maintainer: Debian Kernel Team <debian-kernel@lists.debian.org>
Changed-By: Bastian Blank <waldi@debian.org>
Description: 
 firmware-bnx2 - Binary firmware for Broadcom NetXtremeII
 firmware-ipw2x00 - Binary firmware for Intel Pro Wireless 2100, 2200 and 2915
 firmware-iwlwifi - Binary firmware for Intel Wireless 3945 and 4965
 firmware-qlogic - Binary firmware for QLogic QLA2XXX
 firmware-ralink - Binary firmware for Ralink RT2561, RT2571, RT2661 and RT2671 wire
Closes: 449235 504668 504671
Changes: 
 firmware-nonfree (0.14) unstable; urgency=low
 .
   * Generate license acceptation prompt, based on sun-java5. (closes: #504668)
   * Add Intel Pro 2100 firwmare, version 1.3. (closes: #504671)
   * Add Intel Pro 2200/2915 firwmare, version 3.0. (closes: #449235)
Checksums-Sha1: 
 7029717853f68a8e4d4a91288cd7320e536766cf 1107 firmware-nonfree_0.14.dsc
 91aae6ef3dfe2be676fbe708b336b7c834b431b9 1281829 firmware-nonfree_0.14.tar.gz
 183887c86acae946a05786029c3b7e941c6c1fed 105312 firmware-bnx2_0.14_all.deb
 e6387d347d10cac9647acd1d4c7317fb52766d01 519622 firmware-ipw2x00_0.14_all.deb
 adf99db78a2ae1fd96e8006d58bd1656ee704775 223788 firmware-iwlwifi_0.14_all.deb
 58c89e3314853c28940fb0d807e2de6d5ee1e5c7 415896 firmware-qlogic_0.14_all.deb
 326032ce8a450bd6afef1cd2727c0348e52239fc 11698 firmware-ralink_0.14_all.deb
Checksums-Sha256: 
 7a43f7dd4c3c66b7dbcb23d9c1cb37d7f9aec36ae740b7049dedf91d054ed8d9 1107 firmware-nonfree_0.14.dsc
 21eb0cdb70c9703facec99702acc528d402ee60d9df00cba7ba1f6782002a88b 1281829 firmware-nonfree_0.14.tar.gz
 aa9532addaf376902dc880a71a3632d9f877c27cf62c95841ea077acb897349b 105312 firmware-bnx2_0.14_all.deb
 160e9e14074d269e963baa8432be4df5e10a62735fddfb32f045a103f970f375 519622 firmware-ipw2x00_0.14_all.deb
 56ccec13accc373a994f44a5e3ecbe9f4f3b58371a505db71174b3fab6d8b77c 223788 firmware-iwlwifi_0.14_all.deb
 13e5ce82984d7df3c202d48c70c5c1e541d53afead1365353c856501e3290552 415896 firmware-qlogic_0.14_all.deb
 eb93d9da29217af2a4ac9db723bd56b8f281157891effc785470d4cfa1970de4 11698 firmware-ralink_0.14_all.deb
Files: 
 693f9c8d093429ecd2e978935fa190a8 1107 non-free/admin optional firmware-nonfree_0.14.dsc
 faf59942e8da6821ff9b1b800f5ed1c9 1281829 non-free/admin optional firmware-nonfree_0.14.tar.gz
 e913bc936a8ca754d72aa91291f229dd 105312 non-free/admin optional firmware-bnx2_0.14_all.deb
 91737f5f83dbc71d1c93c17d7f155b73 519622 non-free/admin optional firmware-ipw2x00_0.14_all.deb
 b5ddd638c4cd04267cb88fa0a001caa5 223788 non-free/admin optional firmware-iwlwifi_0.14_all.deb
 4fdb341a9d7375d9b373b782cf8dc74c 415896 non-free/admin optional firmware-qlogic_0.14_all.deb
 89c8a7381fca91b4bca7c9b0812f3f68 11698 non-free/admin optional firmware-ralink_0.14_all.deb

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

iEYEARECAAYFAkk1bDAACgkQLkAIIn9ODhHPjwCcDKZnqz0ZPzqjI7s4Pj+Zpo+1
HUcAoMUj1nBCLZtvOuCjhdMLk9lAqsWX
=/BzE
-----END PGP SIGNATURE-----



--- End Message ---

Reply to: