public inbox for ltp@lists.linux.it
 help / color / mirror / Atom feed
* [LTP] [PATCH 16/21] Add sigreturn01 test for sigreturn syscall
  2009-05-18 19:09 [LTP] [PATCH 00/21][1st Bunch] Port Crackerjack Syscall tests(missing) to LTP Manas Kumar Nayak
@ 2009-05-18 19:11 ` Manas Kumar Nayak
  2009-08-31 12:17   ` Cyril Hrubis
  0 siblings, 1 reply; 4+ messages in thread
From: Manas Kumar Nayak @ 2009-05-18 19:11 UTC (permalink / raw)
  To: LTP List; +Cc: Deepakraj B Himavantharaj, Manas Kumar Nayak

Signed-off-by: Manas Kumar Nayak <maknayak@in.ibm.com>,
To: LTP List <ltp-list@lists.sourceforge.net>,
Cc: Deepakraj B Himavantharaj <deepakraj@in.ibm.com>,
Cc: Subrata Modak <subrata@linux.vnet.ibm.com>,
Cc: Masatake YAMATO <yamato@redhat.com>,
---

--- ltp-intermediate-20090518-manas-work-original/testcases/kernel/syscalls/sigreturn/Makefile	1970-01-01 05:30:00.000000000 +0530
+++ ltp-intermediate-20090518-manas-work/testcases/kernel/syscalls/sigreturn/Makefile	2009-05-18 14:23:39.000000000 +0530
@@ -0,0 +1,31 @@
+#
+#  Copyright (c) International Business Machines  Corp., 2009
+#
+#  This program is free software;  you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY;  without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
+#  the GNU General Public License for more details.
+#
+#  You should have received a copy of the GNU General Public License
+#  along with this program;  if not, write to the Free Software
+#  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+
+CFLAGS += -I../../../../include -Wall
+LDLIBS += -L../../../../lib -lltp
+
+SRCS    = $(wildcard *.c)
+TARGETS = $(patsubst %.c,%,$(SRCS))
+
+all: $(TARGETS)
+
+install:
+	@set -e; for i in $(TARGETS); do ln -f $$i ../../../bin/$$i ; done
+
+clean:
+	rm -f $(TARGETS)
--- ltp-intermediate-20090518-manas-work-original/testcases/kernel/syscalls/sigreturn/sigreturn01.c	1970-01-01 05:30:00.000000000 +0530
+++ ltp-intermediate-20090518-manas-work/testcases/kernel/syscalls/sigreturn/sigreturn01.c	2009-05-18 23:13:19.000000000 +0530
@@ -0,0 +1,172 @@
+/******************************************************************************/
+/* Copyright (c) Crackerjack Project., 2007                                   */
+/*                                                                            */
+/* This program is free software;  you can redistribute it and/or modify      */
+/* it under the terms of the GNU General Public License as published by       */
+/* the Free Software Foundation; either version 2 of the License, or          */
+/* (at your option) any later version.                                        */
+/*                                                                            */
+/* This program is distributed in the hope that it will be useful,            */
+/* but WITHOUT ANY WARRANTY;  without even the implied warranty of            */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See                  */
+/* the GNU General Public License for more details.                           */
+/*                                                                            */
+/* You should have received a copy of the GNU General Public License          */
+/* along with this program;  if not, write to the Free Software               */
+/* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA    */
+/*                                                                            */
+/******************************************************************************/
+/******************************************************************************/
+/*                                                                            */
+/* File:        sigreturn01.c                                           */
+/*                                                                            */
+/* Description: This tests the sigreturn() syscall  
+	sigreturn - return from signal handler and cleanup stack frame.	
+	When the Linux kernel creates the stack frame for a signal handler, 
+	a call to sigreturn() is inserted into the stack frame so that the
+	signal handler will call sigreturn() upon return. This inserted call
+	to sigreturn() cleans up the stack so that the process can restart 
+	from where it was interrupted by the signal.  		
+		                    */
+/*                                                                            */
+/* Usage:  <for command-line>                                                 */
+/* sigreturn01 [-c n] [-e][-i n] [-I x] [-p x] [-t]                     */
+/*      where,  -c n : Run n copies concurrently.                             */
+/*              -e   : Turn on errno logging.                                 */
+/*              -i n : Execute test n times.                                  */
+/*              -I x : Execute test for x seconds.                            */
+/*              -P x : Pause for x seconds between iterations.                */
+/*              -t   : Turn on syscall timing.                                */
+/*                                                                            */
+/* Total Tests: 1                                                             */
+/*                                                                            */
+/* Test Name:   sigreturn01                                             */
+/* History:     Porting from Crackerjack to LTP is done by                    */
+/*              Manas Kumar Nayak maknayak@in.ibm.com>                        */
+/******************************************************************************/
+#include <limits.h>
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/syscall.h>
+#include <pwd.h>
+#include <grp.h>
+#include <string.h>
+#include <sys/param.h>
+#include <stdio.h>
+#include <errno.h>
+
+/* Harness Specific Include Files. */
+#include "test.h"
+#include "usctest.h"
+#include "linux_syscall_numbers.h"
+
+/* Extern Global Variables */
+extern int Tst_count;           /* counter for tst_xxx routines.         */
+extern char *TESTDIR;           /* temporary dir created by tst_tmpdir() */
+
+/* Global Variables */
+char *TCID = "sigreturn01";  /* Test program identifier.*/
+int  testno;
+int  TST_TOTAL = 2;                   /* total number of tests in this file.   */
+
+/* Extern Global Functions */
+/******************************************************************************/
+/*                                                                            */
+/* Function:    cleanup                                                       */
+/*                                                                            */
+/* Description: Performs all one time clean up for this test on successful    */
+/*              completion,  premature exit or  failure. Closes all temporary */
+/*              files, removes all temporary directories exits the test with  */
+/*              appropriate return code by calling tst_exit() function.       */
+/*                                                                            */
+/* Input:       None.                                                         */
+/*                                                                            */
+/* Output:      None.                                                         */
+/*                                                                            */
+/* Return:      On failure - Exits calling tst_exit(). Non '0' return code.   */
+/*              On success - Exits calling tst_exit(). With '0' return code.  */
+/*                                                                            */
+/******************************************************************************/
+extern void cleanup() {
+        /* Remove tmp dir and all files in it */
+        TEST_CLEANUP;
+        tst_rmdir();
+
+        /* Exit with appropriate return code. */
+        tst_exit();
+}
+
+/* Local  Functions */
+/******************************************************************************/
+/*                                                                            */
+/* Function:    setup                                                         */
+/*                                                                            */
+/* Description: Performs all one time setup for this test. This function is   */
+/*              typically used to capture signals, create temporary dirs      */
+/*              and temporary files that may be used in the course of this    */
+/*              test.                                                         */
+/*                                                                            */
+/* Input:       None.                                                         */
+/*                                                                            */
+/* Output:      None.                                                         */
+/*                                                                            */
+/* Return:      On failure - Exits by calling cleanup().                      */
+/*              On success - returns 0.                                       */
+/*                                                                            */
+/******************************************************************************/
+void setup() {
+        /* Capture signals if any */
+        /* Create temporary directories */
+        TEST_PAUSE;
+        tst_tmpdir();
+}
+
+
+#define PRINT(X) fprintf(stdout,"%s\n", X)
+
+int ngexit(void);
+
+int main(int ac, char **av) {
+        int retval = 0;
+        unsigned long parm = 0;
+	int lc;                 /* loop counter */
+        char *msg;              /* message returned from parse_opts */
+	
+        /* parse standard options */
+        if ((msg = parse_opts(ac, av, (option_t *)NULL, NULL)) != (char *)NULL){
+             tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg);
+             tst_exit();
+           }
+
+        setup();
+
+        /* Check looping state if -i option given */
+        for (lc = 0; TEST_LOOPING(lc); ++lc) {
+                Tst_count = 0;
+                for (testno = 0; testno < TST_TOTAL; ++testno) {
+                    TEST(retval = sigreturn(parm)); 
+                    if(TEST_RETURN > 0 ) {
+                 	tst_resm(TFAIL, "%s ERROR!! sigreturn never return- errno = %d : %s", TCID, TEST_ERRNO, strerror(TEST_ERRNO));
+			cleanup();
+                        tst_exit();
+                     }
+                     else if (TEST_RETURN <= 0 ){
+        	 	   tst_resm(TPASS, "sigreturn call succeeded: result = %d ",TEST_RETURN);
+                     }
+
+	            parm = 0xffffffff;
+		    TEST(retval = sigreturn(parm)); 
+                    if(TEST_RETURN > 0 ) {
+                 	tst_resm(TFAIL, "%s ERROR!! sigreturn never return- errno = %d : %s", TCID, TEST_ERRNO, strerror(TEST_ERRNO));
+			cleanup();
+			tst_exit();
+                     }
+                     else if (TEST_RETURN <= 0 ){
+        	 	   tst_resm(TPASS, "sigreturn call succeeded: result = %d ",TEST_RETURN);
+                     }
+                }
+        }	
+	cleanup();
+        tst_exit();
+}
+
--- ltp-intermediate-20090518-manas-work-original/runtest/syscalls	2009-05-18 23:07:42.000000000 +0530
+++ ltp-intermediate-20090518-manas-work/runtest/syscalls	2009-05-18 23:16:19.000000000 +0530
@@ -1035,6 +1035,7 @@ sigpending02 sigpending02
 sigprocmask01 sigprocmask01
 
 sigrelse01 sigrelse01
+sigreturn01 sigreturn01
 
 sigsuspend01 sigsuspend01
 

---
Regards--
Manas


------------------------------------------------------------------------------
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables 
unlimited royalty-free distribution of the report engine 
for externally facing server and web deployment. 
http://p.sf.net/sfu/businessobjects
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [LTP] [PATCH 16/21] Add sigreturn01 test for sigreturn syscall
  2009-05-18 19:11 ` [LTP] [PATCH 16/21] Add sigreturn01 test for sigreturn syscall Manas Kumar Nayak
@ 2009-08-31 12:17   ` Cyril Hrubis
  0 siblings, 0 replies; 4+ messages in thread
From: Cyril Hrubis @ 2009-08-31 12:17 UTC (permalink / raw)
  To: Manas Kumar Nayak; +Cc: LTP List, Deepakraj B Himavantharaj, pasky

Hi!
This test doesn't compile cleanly because on all linuxes I've try to do so
sigreturn() is not defined as manual says.

Instead of:

sigreturn(unsigned long __unused);

It's defined as:

extern int sigreturn (struct sigcontext *__scp) __THROW;

And it also seems to be unimplemented on linux.

Anyway after looking into the source and manual, the test seems to be testing
return value of call that does some magic on the stack of the process in order
to return from signal handler. And the "never return" in manual means IMHO that
execution path of the program is changed in a way the return value of sigreturn
can't be checked at all. To me it looks like some old and unused internal
kernel/glibc api that is not worth testing. So I vote for removing this one
from ltp.

-- 
Cyril Hrubis
chrubis@suse.cz

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [LTP] [PATCH 16/21] Add sigreturn01 test for sigreturn syscall
       [not found] ` <1252323746.4922.34.camel@subratamodak.linux.ibm.com>
@ 2009-09-17 13:48   ` Cyril Hrubis
       [not found]     ` <1253298631.15071.10.camel@subratamodak.linux.ibm.com>
  0 siblings, 1 reply; 4+ messages in thread
From: Cyril Hrubis @ 2009-09-17 13:48 UTC (permalink / raw)
  To: Subrata Modak; +Cc: ltp-list, naresh kamboju, Manas Kumar Nayak

Hi!
> Ok. Please send a signed-off patch to remove this from LTP.
>

Hmm, IMHO there is no way how to delete directory in standard patch.

I could create a patch that would remove all sigreturn files but not the
directory itself and that would lead just to another empty directory in cvs
tree.

Are there any other solutions?

-- 
Cyril Hrubis
chrubis@suse.cz

------------------------------------------------------------------------------
Come build with us! The BlackBerry&reg; Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9&#45;12, 2009. Register now&#33;
http://p.sf.net/sfu/devconf
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [LTP] [PATCH 16/21] Add sigreturn01 test for sigreturn syscall
       [not found]     ` <1253298631.15071.10.camel@subratamodak.linux.ibm.com>
@ 2009-10-09 11:56       ` Cyril Hrubis
  0 siblings, 0 replies; 4+ messages in thread
From: Cyril Hrubis @ 2009-10-09 11:56 UTC (permalink / raw)
  To: Subrata Modak; +Cc: ltp-list, naresh kamboju, Manas Kumar Nayak

[-- Attachment #1: Type: text/plain, Size: 97 bytes --]

Hi!

Requested patch attached.

Signed-off-by: chrubis@suse.cz

-- 
Cyril Hrubis
chrubis@suse.cz

[-- Attachment #2: remove_sigreturn.patch --]
[-- Type: text/x-patch, Size: 10710 bytes --]

Index: ltp/testcases/kernel/syscalls/sigreturn/Makefile
===================================================================
--- ltp.orig/testcases/kernel/syscalls/sigreturn/Makefile
+++ /dev/null
@@ -1,31 +0,0 @@
-#
-#  Copyright (c) International Business Machines  Corp., 2009
-#
-#  This program is free software;  you can redistribute it and/or modify
-#  it under the terms of the GNU General Public License as published by
-#  the Free Software Foundation; either version 2 of the License, or
-#  (at your option) any later version.
-#
-#  This program is distributed in the hope that it will be useful,
-#  but WITHOUT ANY WARRANTY;  without even the implied warranty of
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
-#  the GNU General Public License for more details.
-#
-#  You should have received a copy of the GNU General Public License
-#  along with this program;  if not, write to the Free Software
-#  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-#
-
-CFLAGS += -I../../../../include -Wall
-LDLIBS += -L../../../../lib -lltp
-
-SRCS    = $(wildcard *.c)
-TARGETS = $(patsubst %.c,%,$(SRCS))
-
-all: $(TARGETS)
-
-install:
-	@set -e; for i in $(TARGETS); do ln -f $$i ../../../bin/$$i ; done
-
-clean:
-	rm -f $(TARGETS)
Index: ltp/testcases/kernel/syscalls/sigreturn/sigreturn01.c
===================================================================
--- ltp.orig/testcases/kernel/syscalls/sigreturn/sigreturn01.c
+++ /dev/null
@@ -1,172 +0,0 @@
-/******************************************************************************/
-/* Copyright (c) Crackerjack Project., 2007                                   */
-/*                                                                            */
-/* This program is free software;  you can redistribute it and/or modify      */
-/* it under the terms of the GNU General Public License as published by       */
-/* the Free Software Foundation; either version 2 of the License, or          */
-/* (at your option) any later version.                                        */
-/*                                                                            */
-/* This program is distributed in the hope that it will be useful,            */
-/* but WITHOUT ANY WARRANTY;  without even the implied warranty of            */
-/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See                  */
-/* the GNU General Public License for more details.                           */
-/*                                                                            */
-/* You should have received a copy of the GNU General Public License          */
-/* along with this program;  if not, write to the Free Software               */
-/* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA    */
-/*                                                                            */
-/******************************************************************************/
-/******************************************************************************/
-/*                                                                            */
-/* File:        sigreturn01.c                                           */
-/*                                                                            */
-/* Description: This tests the sigreturn() syscall  
-	sigreturn - return from signal handler and cleanup stack frame.	
-	When the Linux kernel creates the stack frame for a signal handler, 
-	a call to sigreturn() is inserted into the stack frame so that the
-	signal handler will call sigreturn() upon return. This inserted call
-	to sigreturn() cleans up the stack so that the process can restart 
-	from where it was interrupted by the signal.  		
-		                    */
-/*                                                                            */
-/* Usage:  <for command-line>                                                 */
-/* sigreturn01 [-c n] [-e][-i n] [-I x] [-p x] [-t]                     */
-/*      where,  -c n : Run n copies concurrently.                             */
-/*              -e   : Turn on errno logging.                                 */
-/*              -i n : Execute test n times.                                  */
-/*              -I x : Execute test for x seconds.                            */
-/*              -P x : Pause for x seconds between iterations.                */
-/*              -t   : Turn on syscall timing.                                */
-/*                                                                            */
-/* Total Tests: 1                                                             */
-/*                                                                            */
-/* Test Name:   sigreturn01                                             */
-/* History:     Porting from Crackerjack to LTP is done by                    */
-/*              Manas Kumar Nayak maknayak@in.ibm.com>                        */
-/******************************************************************************/
-#include <limits.h>
-#include <unistd.h>
-#include <sys/types.h>
-#include <sys/syscall.h>
-#include <pwd.h>
-#include <grp.h>
-#include <string.h>
-#include <sys/param.h>
-#include <stdio.h>
-#include <errno.h>
-
-/* Harness Specific Include Files. */
-#include "test.h"
-#include "usctest.h"
-#include "linux_syscall_numbers.h"
-
-/* Extern Global Variables */
-extern int Tst_count;           /* counter for tst_xxx routines.         */
-extern char *TESTDIR;           /* temporary dir created by tst_tmpdir() */
-
-/* Global Variables */
-char *TCID = "sigreturn01";  /* Test program identifier.*/
-int  testno;
-int  TST_TOTAL = 2;                   /* total number of tests in this file.   */
-
-/* Extern Global Functions */
-/******************************************************************************/
-/*                                                                            */
-/* Function:    cleanup                                                       */
-/*                                                                            */
-/* Description: Performs all one time clean up for this test on successful    */
-/*              completion,  premature exit or  failure. Closes all temporary */
-/*              files, removes all temporary directories exits the test with  */
-/*              appropriate return code by calling tst_exit() function.       */
-/*                                                                            */
-/* Input:       None.                                                         */
-/*                                                                            */
-/* Output:      None.                                                         */
-/*                                                                            */
-/* Return:      On failure - Exits calling tst_exit(). Non '0' return code.   */
-/*              On success - Exits calling tst_exit(). With '0' return code.  */
-/*                                                                            */
-/******************************************************************************/
-extern void cleanup() {
-        /* Remove tmp dir and all files in it */
-        TEST_CLEANUP;
-        tst_rmdir();
-
-        /* Exit with appropriate return code. */
-        tst_exit();
-}
-
-/* Local  Functions */
-/******************************************************************************/
-/*                                                                            */
-/* Function:    setup                                                         */
-/*                                                                            */
-/* Description: Performs all one time setup for this test. This function is   */
-/*              typically used to capture signals, create temporary dirs      */
-/*              and temporary files that may be used in the course of this    */
-/*              test.                                                         */
-/*                                                                            */
-/* Input:       None.                                                         */
-/*                                                                            */
-/* Output:      None.                                                         */
-/*                                                                            */
-/* Return:      On failure - Exits by calling cleanup().                      */
-/*              On success - returns 0.                                       */
-/*                                                                            */
-/******************************************************************************/
-void setup() {
-        /* Capture signals if any */
-        /* Create temporary directories */
-        TEST_PAUSE;
-        tst_tmpdir();
-}
-
-
-#define PRINT(X) fprintf(stdout,"%s\n", X)
-
-int ngexit(void);
-
-int main(int ac, char **av) {
-        int retval = 0;
-        unsigned long parm = 0;
-	int lc;                 /* loop counter */
-        char *msg;              /* message returned from parse_opts */
-	
-        /* parse standard options */
-        if ((msg = parse_opts(ac, av, (option_t *)NULL, NULL)) != (char *)NULL){
-             tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg);
-             tst_exit();
-           }
-
-        setup();
-
-        /* Check looping state if -i option given */
-        for (lc = 0; TEST_LOOPING(lc); ++lc) {
-                Tst_count = 0;
-                for (testno = 0; testno < TST_TOTAL; ++testno) {
-                    TEST(retval = sigreturn(parm)); 
-                    if(TEST_RETURN > 0 ) {
-                 	tst_resm(TFAIL, "%s ERROR!! sigreturn never return- errno = %d : %s", TCID, TEST_ERRNO, strerror(TEST_ERRNO));
-			cleanup();
-                        tst_exit();
-                     }
-                     else if (TEST_RETURN <= 0 ){
-        	 	   tst_resm(TPASS, "sigreturn call succeeded: result = %d ",TEST_RETURN);
-                     }
-
-	            parm = 0xffffffff;
-		    TEST(retval = sigreturn(parm)); 
-                    if(TEST_RETURN > 0 ) {
-                 	tst_resm(TFAIL, "%s ERROR!! sigreturn never return- errno = %d : %s", TCID, TEST_ERRNO, strerror(TEST_ERRNO));
-			cleanup();
-			tst_exit();
-                     }
-                     else if (TEST_RETURN <= 0 ){
-        	 	   tst_resm(TPASS, "sigreturn call succeeded: result = %d ",TEST_RETURN);
-                     }
-                }
-        }	
-	cleanup();
-        tst_exit();
-}
-

[-- Attachment #3: Type: text/plain, Size: 399 bytes --]

------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference

[-- Attachment #4: Type: text/plain, Size: 155 bytes --]

_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2009-10-09 11:57 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <f5a7b3810908310549t6ced24qd9e0faf634d2319f@mail.gmail.com>
     [not found] ` <1252323746.4922.34.camel@subratamodak.linux.ibm.com>
2009-09-17 13:48   ` [LTP] [PATCH 16/21] Add sigreturn01 test for sigreturn syscall Cyril Hrubis
     [not found]     ` <1253298631.15071.10.camel@subratamodak.linux.ibm.com>
2009-10-09 11:56       ` Cyril Hrubis
2009-05-18 19:09 [LTP] [PATCH 00/21][1st Bunch] Port Crackerjack Syscall tests(missing) to LTP Manas Kumar Nayak
2009-05-18 19:11 ` [LTP] [PATCH 16/21] Add sigreturn01 test for sigreturn syscall Manas Kumar Nayak
2009-08-31 12:17   ` Cyril Hrubis

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox