Re: Tainting kernels for non-GPL or forced modules

From: Keith Owens (kaos@ocs.com.au)
Date: Sat Sep 22 2001 - 20:56:29 EST


On Sat, 22 Sep 2001 17:05:52 +0100 (BST),
Alan Cox <alan@lxorguk.ukuu.org.uk> wrote:
>I still have many to do. What would help me no end would be a version of
>depmod or similar which warned about modules with
>
>o No description
>o No author
>o No license tag

/sbin/modinfo $(find /lib/modules/`uname -r` -name '*.o')
lists filename, description, author, license and parms, in that order.
Extracting entries marked <none> is left as an exercise for the reader.
License is printed by modutils >= 2.4.9 (not released yet) or the patch
below against 2.4.8.

Index: 9.1/insmod/modinfo.c
--- 9.1/insmod/modinfo.c Wed, 28 Mar 2001 20:49:06 +1000 kaos (modutils-2.4/b/9_modinfo.c 1.6 644)
+++ 9.8(w)/insmod/modinfo.c Sat, 22 Sep 2001 23:17:01 +1000 kaos (modutils-2.4/b/9_modinfo.c 1.6 644)
@@ -31,6 +31,8 @@
  * Keith Owens <kaos@ocs.com.au> December 1999.
  * Print " persistent" for persistent parameters.
  * Keith Owens <kaos@ocs.com.au> November 2000.
+ * License support.
+ * Keith Owens <kaos@ocs.com.au> September 2001.
  */
 
 #ident "$Id$"
@@ -249,6 +251,11 @@ static char *format_query_string(struct
                                 &out_str, last_char - out_str, 0);
                         break;
 
+ case 'l':
+ (void) append_modinfo_tag(f, "license", "<none>",
+ &out_str, last_char - out_str, 1);
+ break;
+
                 case '{':{
                                 char tag[128], *end = strchr(in_str, '}');
                                 int multi_line;
@@ -267,7 +274,8 @@ static char *format_query_string(struct
                                 strncpy(tag, in_str, end - in_str);
                                 tag[end - in_str] = '\0';
                                 multi_line = strcmp(tag, "author") == 0 ||
- strcmp(tag, "description") == 0;
+ strcmp(tag, "description") == 0 ||
+ strcmp(tag, "license") == 0;
 
                                 /* Append the tag's value if it exists. */
                                 append_modinfo_tag(f, tag, "<none>", &out_str, last_char - out_str, multi_line);
@@ -479,6 +487,7 @@ void modinfo_usage(void)
         printf("usage: modinfo <options> <module>\n");
         printf(" -a, --author display module author\n");
         printf(" -d, --description display module description\n");
+ printf(" -l, --license display module license\n");
         printf(" -n, --filename display module filename\n");
         printf(" -f <str>\n");
         printf(" --format <str> print the <query-string>\n");
@@ -499,6 +508,7 @@ int main(int argc, char *argv[])
         {
                 {"author", 0, 0, 'a'},
                 {"description", 0, 0, 'd'},
+ {"license", 0, 0, 'l'},
                 {"filename", 0, 0, 'n'},
                 {"format", required_argument, 0, 'f'},
                 {"parameters", 0, 0, 'p'},
@@ -507,9 +517,9 @@ int main(int argc, char *argv[])
                 {0, 0, 0, 0}
         };
         int do_parameters = 1, opt;
- char *fmtstr = "filename: %n\ndescription: %d\nauthor: %a\n";
+ char *fmtstr = "filename: %n\ndescription: %d\nauthor: %a\nlicense: %l\n";
 
- while ((opt = getopt_long(argc, argv, "adnq:pf:Vh", long_opts, NULL)) != EOF)
+ while ((opt = getopt_long(argc, argv, "adlnq:pf:Vh", long_opts, NULL)) != EOF)
                 switch (opt) {
                 case 'a':
                         fmtstr = "%a\n";
@@ -517,6 +527,10 @@ int main(int argc, char *argv[])
                         break;
                 case 'd':
                         fmtstr = "%d\n";
+ do_parameters = 0;
+ break;
+ case 'l':
+ fmtstr = "%l\n";
                         do_parameters = 0;
                         break;
                 case 'n':

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sun Sep 23 2001 - 21:00:51 EST