Patchwork cracklib: Generate compiled dict using default dictionary

login
register
mail settings
Submitter Colin Walters
Date March 8, 2013, 1:10 p.m.
Message ID <1362748245.6076.748.camel@localhost>
Download mbox | patch
Permalink /patch/45697/
State New
Headers show

Comments

Colin Walters - March 8, 2013, 1:10 p.m.
While cracklib compiles, the generated library's FascistCheck() API
will look for the default compiled dictionary, fail to find it, and
invoke exit(1), which then in turn breaks gnome-initial-setup that
uses cracklib via libpwquality.  (Quality here obviously referring to
the password, and not the libraries...)

What we do here is basically the same as what happens in the current
Fedora spec file, except the latter uses a far larger dictionary.

To make this work, we need to build cracklib-native because the
dictionary compiler is written in native code.

Signed-off-by: Colin Walters <walters@verbum.org>
---
 meta/recipes-extended/cracklib/cracklib_2.8.22.bb | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)
Richard Purdie - March 9, 2013, 6:34 a.m.
On Fri, 2013-03-08 at 08:10 -0500, Colin Walters wrote:
> While cracklib compiles, the generated library's FascistCheck() API
> will look for the default compiled dictionary, fail to find it, and
> invoke exit(1), which then in turn breaks gnome-initial-setup that
> uses cracklib via libpwquality.  (Quality here obviously referring to
> the password, and not the libraries...)
> 
> What we do here is basically the same as what happens in the current
> Fedora spec file, except the latter uses a far larger dictionary.
> 
> To make this work, we need to build cracklib-native because the
> dictionary compiler is written in native code.
> 
> Signed-off-by: Colin Walters <walters@verbum.org>
> ---
>  meta/recipes-extended/cracklib/cracklib_2.8.22.bb | 12 +++++++++++-
>  1 file changed, 11 insertions(+), 1 deletion(-)

The patch doesn't quite do what you think it does. The _appends() stack,
not override and hence the native append is empty. You probably want to
do a:

do_install_append_class-target () {
....
}

(class not virtclass, virtclass is deprecated)

Cheers,

Richard

Patch

From 6d47136d108d4063e3faa9c91de33710a5a66855 Mon Sep 17 00:00:00 2001
From: Colin Walters <walters@verbum.org>
Date: Thu, 7 Mar 2013 18:45:22 -0500
Subject: [PATCH] cracklib: Generate compiled dict using default dictionary

While cracklib compiles, the generated library's FascistCheck() API
will look for the default compiled dictionary, fail to find it, and
invoke exit(1), which then in turn breaks gnome-initial-setup that
uses cracklib via libpwquality.  (Quality here obviously referring to
the password, and not the libraries...)

What we do here is basically the same as what happens in the current
Fedora spec file, except the latter uses a far larger dictionary.

To make this work, we need to build cracklib-native because the
dictionary compiler is written in native code.

Signed-off-by: Colin Walters <walters@verbum.org>
---
 meta/recipes-extended/cracklib/cracklib_2.8.22.bb | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/meta/recipes-extended/cracklib/cracklib_2.8.22.bb b/meta/recipes-extended/cracklib/cracklib_2.8.22.bb
index 1ae1aca..63d4c24 100644
--- a/meta/recipes-extended/cracklib/cracklib_2.8.22.bb
+++ b/meta/recipes-extended/cracklib/cracklib_2.8.22.bb
@@ -4,7 +4,8 @@  HOMEPAGE = "http://sourceforge.net/projects/cracklib"
 LICENSE = "LGPLv2.1+"
 LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=e3eda01d9815f8d24aae2dbd89b68b06"
 
-DEPENDS = "zlib"
+DEPENDS = "cracklib-native zlib"
+DEPENDS_class-native = "zlib"
 PR ="r0"
 
 EXTRA_OECONF = "--without-python"
@@ -15,3 +16,12 @@  SRC_URI[md5sum] = "463177b5c29c7a598c991e12a4898e06"
 SRC_URI[sha256sum] = "feaff49bfb513ec10b2618c00d2f7f60776ba93fcc5fa22dd3479dd9cad9f770"
 
 inherit autotools gettext
+
+BBCLASSEXTEND = "native"
+
+do_install_append() {
+	create-cracklib-dict -o ${D}${datadir}/cracklib/pw_dict ${D}${datadir}/cracklib/cracklib-small
+}
+
+do_install_append_virtclass-native() {
+}
-- 
1.8.1.2