public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: "Martin Schlemmer [c]" <azarah@nosferatu.za.org>
To: Martin Waitz <tali@admingilde.org>
Cc: Andrew Morton <akpm@osdl.org>, linux-kernel@vger.kernel.org
Subject: Re: 2.6.9-rc4-mm1: initramfs build fix [u]
Date: Sun, 17 Oct 2004 19:29:07 +0200	[thread overview]
Message-ID: <1098034147.879.21.camel@nosferatu.lan> (raw)
In-Reply-To: <20041017161554.GD10532@admingilde.org>


[-- Attachment #1.1: Type: text/plain, Size: 7804 bytes --]

On Sun, 2004-10-17 at 18:15 +0200, Martin Waitz wrote:
> hi :)
> 
> CONFIG_INITRAMFS_SOURCE may be empty which confuses 'test'.
> So we have to quote it properly.
> 
> Signed-off-by: Martin Waitz <tali@admingilde.org>
> 
> Index: linux-2.6/usr/Makefile
> ===================================================================
> --- linux-2.6.orig/usr/Makefile	2004-10-17 16:06:58.430886734 +0200
> +++ linux-2.6/usr/Makefile	2004-10-17 16:07:56.185444167 +0200
> @@ -25,14 +25,14 @@
>  
>  quiet_cmd_gen_list = GEN_INITRAMFS_LIST $@
>        cmd_gen_list = $(shell \
> -        if test -f $(CONFIG_INITRAMFS_SOURCE); then \
> -	  if [ $(CONFIG_INITRAMFS_SOURCE) != $@ ]; then \
> -	    echo 'cp -f $(CONFIG_INITRAMFS_SOURCE) $@'; \
> +        if test -f "$(CONFIG_INITRAMFS_SOURCE)"; then \
> +	  if [ "$(CONFIG_INITRAMFS_SOURCE)" != $@ ]; then \
> +	    echo 'cp -f "$(CONFIG_INITRAMFS_SOURCE)" $@'; \
>  	  else \
>  	    echo 'echo Using shipped $@'; \
>  	  fi; \
> -	elif test -d $(CONFIG_INITRAMFS_SOURCE); then \
> -	  echo 'scripts/gen_initramfs_list.sh $(CONFIG_INITRAMFS_SOURCE) > $@'; \
> +	elif test -d "$(CONFIG_INITRAMFS_SOURCE)"; then \
> +	  echo 'scripts/gen_initramfs_list.sh "$(CONFIG_INITRAMFS_SOURCE)" > $@'; \
>  	else \
>  	  echo 'echo Using shipped $@'; \
>  	fi)
> 

kbuild will always (exceptions?) set any string value to "" if empty, or
ask again for a value if just 'CONFIG_FOO=' is in .config, and as
'test -f ""' returns 1, this should not be an issue.

I can however see that it might be an good idea to do quoting there, so
here is an updated
select-cpio_list-or-source-directory-for-initramfs-image.patch (the
third one - and hopefully last - today, Andrew).


Signed-off-by: Martin Schlemmer <azarah@nosferatu.za.org>

diff -urpN linux-2.6.9-rc4-mm1.orig/drivers/block/Kconfig linux-2.6.9-rc4-mm1/drivers/block/Kconfig
--- linux-2.6.9-rc4-mm1.orig/drivers/block/Kconfig	2004-10-17 17:00:13.424934520 +0200
+++ linux-2.6.9-rc4-mm1/drivers/block/Kconfig	2004-10-17 16:58:35.451828696 +0200
@@ -348,6 +348,32 @@ config BLK_DEV_INITRD
 	  "real" root file system, etc. See <file:Documentation/initrd.txt>
 	  for details.
 
+config INITRAMFS_SOURCE
+	string "Source directory of cpio_list"
+	default ""
+	help
+	  This can be set to either a directory containing files, etc to be
+	  included in the initramfs archive, or a file containing newline
+	  separated entries.
+
+	  If it is a file, it should be in the following format:
+	    # a comment
+	    file <name> <location> <mode> <uid> <gid>
+	    dir <name> <mode> <uid> <gid>
+	    nod <name> <mode> <uid> <gid> <dev_type> <maj> <min>
+
+	  Where:
+	    <name>      name of the file/dir/nod in the archive
+	    <location>  location of the file in the current filesystem
+	    <mode>      mode/permissions of the file
+	    <uid>       user id (0=root)
+	    <gid>       group id (0=root)
+	    <dev_type>  device type (b=block, c=character)
+	    <maj>       major number of nod
+	    <min>       minor number of nod
+
+	  If you are not sure, leave it blank.
+
 config LBD
 	bool "Support for Large Block Devices"
 	depends on X86 || MIPS32 || PPC32 || ARCH_S390_31 || SUPERH
diff -urpN linux-2.6.9-rc4-mm1.orig/scripts/gen_initramfs_list.sh linux-2.6.9-rc4-mm1/scripts/gen_initramfs_list.sh
--- linux-2.6.9-rc4-mm1.orig/scripts/gen_initramfs_list.sh	1970-01-01 02:00:00.000000000 +0200
+++ linux-2.6.9-rc4-mm1/scripts/gen_initramfs_list.sh	2004-10-17 16:58:28.939818672 +0200
@@ -0,0 +1,84 @@
+#!/bin/bash
+# Copyright (C) Martin Schlemmer <azarah@nosferatu.za.org>
+# Released under the terms of the GNU GPL
+#
+# A script to generate newline separated entries (to stdout) from a directory's
+# contents suitable for use as a cpio_list for gen_init_cpio.
+#
+# Arguements: $1 -- the source directory
+#
+# TODO:  Add support for symlinks, sockets and pipes when gen_init_cpio
+#        supports them.
+
+usage() {
+	echo "Usage: $0 initramfs-source-dir"
+	exit 1
+}
+
+srcdir=$(echo "$1" | sed -e 's://*:/:g')
+
+if [ "$#" -gt 1 -o ! -d "${srcdir}" ]; then
+	usage
+fi
+
+filetype() {
+	local argv1="$1"
+
+	if [ -f "${argv1}" ]; then
+		echo "file"
+	elif [ -d "${argv1}" ]; then
+		echo "dir"
+	elif [ -b "${argv1}" -o -c "${argv1}" ]; then
+		echo "nod"
+	else
+		echo "invalid"
+	fi
+	return 0
+}
+
+parse() {
+	local location="$1"
+	local name="${location/${srcdir}//}"
+	local mode="$2"
+	local uid="$3"
+	local gid="$4"
+	local ftype=$(filetype "${location}")
+	local str="${mode} ${uid} ${gid}"
+
+	[ "${ftype}" == "invalid" ] && return 0
+	[ "${location}" == "${srcdir}" ] && return 0
+
+	case "${ftype}" in
+		"file")
+			str="${ftype} ${name} ${location} ${str}"
+			;;
+		"nod")
+			local dev_type=
+			local maj=$(LC_ALL=C ls -l "${location}" | \
+					gawk '{sub(/,/, "", $5); print $5}')
+			local min=$(LC_ALL=C ls -l "${location}" | \
+					gawk '{print $6}')
+
+			if [ -b "${location}" ]; then
+				dev_type="b"
+			else
+				dev_type="c"
+			fi
+			str="${ftype} ${name} ${str} ${dev_type} ${maj} ${min}"
+			;;
+		*)
+			str="${ftype} ${name} ${str}"
+			;;
+	esac
+
+	echo "${str}"
+
+	return 0
+}
+
+find "${srcdir}" -printf "%p %m %U %G\n" | \
+while read x; do
+	parse ${x}
+done
+
+exit 0
diff -urpN linux-2.6.9-rc4-mm1.orig/usr/Makefile linux-2.6.9-rc4-mm1/usr/Makefile
--- linux-2.6.9-rc4-mm1.orig/usr/Makefile	2004-10-17 17:00:13.433933152 +0200
+++ linux-2.6.9-rc4-mm1/usr/Makefile	2004-10-17 16:59:56.040577344 +0200
@@ -8,7 +8,7 @@ clean-files := initramfs_data.cpio.gz
 # If you want a different list of files in the initramfs_data.cpio
 # then you can either overwrite the cpio_list in this directory
 # or set INITRAMFS_LIST to another filename.
-INITRAMFS_LIST ?= $(obj)/initramfs_list
+INITRAMFS_LIST := $(obj)/initramfs_list
 
 # initramfs_data.o contains the initramfs_data.cpio.gz image.
 # The image is included using .incbin, a dependency which is not
@@ -23,6 +23,23 @@ $(obj)/initramfs_data.o: $(obj)/initramf
 # Commented out for now
 # initramfs-y := $(obj)/root/hello
 
+quiet_cmd_gen_list = GEN_INITRAMFS_LIST $@
+      cmd_gen_list = $(shell \
+        if test -f "$(CONFIG_INITRAMFS_SOURCE)"; then \
+	  if [ "$(CONFIG_INITRAMFS_SOURCE)" != $@ ]; then \
+	    echo 'cp -f "$(CONFIG_INITRAMFS_SOURCE)" $@'; \
+	  else \
+	    echo 'cp -f "$(srctree)/$(INITRAMFS_LIST).shipped" $@'; \
+	  fi; \
+	elif test -d "$(CONFIG_INITRAMFS_SOURCE)"; then \
+	  echo 'scripts/gen_initramfs_list.sh "$(CONFIG_INITRAMFS_SOURCE)" > $@'; \
+	else \
+	  echo 'cp -f "$(srctree)/$(INITRAMFS_LIST).shipped" $@'; \
+	fi)
+
+$(INITRAMFS_LIST): FORCE
+	$(call cmd,gen_list)
+
 quiet_cmd_cpio = CPIO    $@
       cmd_cpio = ./$< $(INITRAMFS_LIST) > $@
 
diff -urpN linux-2.6.9-rc4-mm1.orig/usr/initramfs_list linux-2.6.9-rc4-mm1/usr/initramfs_list
--- linux-2.6.9-rc4-mm1.orig/usr/initramfs_list	2004-10-17 16:48:14.262263864 +0200
+++ linux-2.6.9-rc4-mm1/usr/initramfs_list	1970-01-01 02:00:00.000000000 +0200
@@ -1,5 +0,0 @@
-# This is a very simple initramfs - mostly preliminary for future expansion
-
-dir /dev 0755 0 0
-nod /dev/console 0600 0 0 c 5 1
-dir /root 0700 0 0
diff -urpN linux-2.6.9-rc4-mm1.orig/usr/initramfs_list.shipped linux-2.6.9-rc4-mm1/usr/initramfs_list.shipped
--- linux-2.6.9-rc4-mm1.orig/usr/initramfs_list.shipped	1970-01-01 02:00:00.000000000 +0200
+++ linux-2.6.9-rc4-mm1/usr/initramfs_list.shipped	2004-10-17 16:28:57.667093056 +0200
@@ -0,0 +1,5 @@
+# This is a very simple initramfs - mostly preliminary for future expansion
+
+dir /dev 0755 0 0
+nod /dev/console 0600 0 0 c 5 1
+dir /root 0700 0 0


-- 
Martin Schlemmer


[-- Attachment #1.2: select-cpio_list-or-source-directory-for-initramfs-image-v3.patch --]
[-- Type: text/x-patch, Size: 5977 bytes --]

diff -urpN linux-2.6.9-rc4-mm1.orig/drivers/block/Kconfig linux-2.6.9-rc4-mm1/drivers/block/Kconfig
--- linux-2.6.9-rc4-mm1.orig/drivers/block/Kconfig	2004-10-17 17:00:13.424934520 +0200
+++ linux-2.6.9-rc4-mm1/drivers/block/Kconfig	2004-10-17 16:58:35.451828696 +0200
@@ -348,6 +348,32 @@ config BLK_DEV_INITRD
 	  "real" root file system, etc. See <file:Documentation/initrd.txt>
 	  for details.
 
+config INITRAMFS_SOURCE
+	string "Source directory of cpio_list"
+	default ""
+	help
+	  This can be set to either a directory containing files, etc to be
+	  included in the initramfs archive, or a file containing newline
+	  separated entries.
+
+	  If it is a file, it should be in the following format:
+	    # a comment
+	    file <name> <location> <mode> <uid> <gid>
+	    dir <name> <mode> <uid> <gid>
+	    nod <name> <mode> <uid> <gid> <dev_type> <maj> <min>
+
+	  Where:
+	    <name>      name of the file/dir/nod in the archive
+	    <location>  location of the file in the current filesystem
+	    <mode>      mode/permissions of the file
+	    <uid>       user id (0=root)
+	    <gid>       group id (0=root)
+	    <dev_type>  device type (b=block, c=character)
+	    <maj>       major number of nod
+	    <min>       minor number of nod
+
+	  If you are not sure, leave it blank.
+
 config LBD
 	bool "Support for Large Block Devices"
 	depends on X86 || MIPS32 || PPC32 || ARCH_S390_31 || SUPERH
diff -urpN linux-2.6.9-rc4-mm1.orig/scripts/gen_initramfs_list.sh linux-2.6.9-rc4-mm1/scripts/gen_initramfs_list.sh
--- linux-2.6.9-rc4-mm1.orig/scripts/gen_initramfs_list.sh	1970-01-01 02:00:00.000000000 +0200
+++ linux-2.6.9-rc4-mm1/scripts/gen_initramfs_list.sh	2004-10-17 16:58:28.939818672 +0200
@@ -0,0 +1,84 @@
+#!/bin/bash
+# Copyright (C) Martin Schlemmer <azarah@nosferatu.za.org>
+# Released under the terms of the GNU GPL
+#
+# A script to generate newline separated entries (to stdout) from a directory's
+# contents suitable for use as a cpio_list for gen_init_cpio.
+#
+# Arguements: $1 -- the source directory
+#
+# TODO:  Add support for symlinks, sockets and pipes when gen_init_cpio
+#        supports them.
+
+usage() {
+	echo "Usage: $0 initramfs-source-dir"
+	exit 1
+}
+
+srcdir=$(echo "$1" | sed -e 's://*:/:g')
+
+if [ "$#" -gt 1 -o ! -d "${srcdir}" ]; then
+	usage
+fi
+
+filetype() {
+	local argv1="$1"
+
+	if [ -f "${argv1}" ]; then
+		echo "file"
+	elif [ -d "${argv1}" ]; then
+		echo "dir"
+	elif [ -b "${argv1}" -o -c "${argv1}" ]; then
+		echo "nod"
+	else
+		echo "invalid"
+	fi
+	return 0
+}
+
+parse() {
+	local location="$1"
+	local name="${location/${srcdir}//}"
+	local mode="$2"
+	local uid="$3"
+	local gid="$4"
+	local ftype=$(filetype "${location}")
+	local str="${mode} ${uid} ${gid}"
+
+	[ "${ftype}" == "invalid" ] && return 0
+	[ "${location}" == "${srcdir}" ] && return 0
+
+	case "${ftype}" in
+		"file")
+			str="${ftype} ${name} ${location} ${str}"
+			;;
+		"nod")
+			local dev_type=
+			local maj=$(LC_ALL=C ls -l "${location}" | \
+					gawk '{sub(/,/, "", $5); print $5}')
+			local min=$(LC_ALL=C ls -l "${location}" | \
+					gawk '{print $6}')
+
+			if [ -b "${location}" ]; then
+				dev_type="b"
+			else
+				dev_type="c"
+			fi
+			str="${ftype} ${name} ${str} ${dev_type} ${maj} ${min}"
+			;;
+		*)
+			str="${ftype} ${name} ${str}"
+			;;
+	esac
+
+	echo "${str}"
+
+	return 0
+}
+
+find "${srcdir}" -printf "%p %m %U %G\n" | \
+while read x; do
+	parse ${x}
+done
+
+exit 0
diff -urpN linux-2.6.9-rc4-mm1.orig/usr/Makefile linux-2.6.9-rc4-mm1/usr/Makefile
--- linux-2.6.9-rc4-mm1.orig/usr/Makefile	2004-10-17 17:00:13.433933152 +0200
+++ linux-2.6.9-rc4-mm1/usr/Makefile	2004-10-17 16:59:56.040577344 +0200
@@ -8,7 +8,7 @@ clean-files := initramfs_data.cpio.gz
 # If you want a different list of files in the initramfs_data.cpio
 # then you can either overwrite the cpio_list in this directory
 # or set INITRAMFS_LIST to another filename.
-INITRAMFS_LIST ?= $(obj)/initramfs_list
+INITRAMFS_LIST := $(obj)/initramfs_list
 
 # initramfs_data.o contains the initramfs_data.cpio.gz image.
 # The image is included using .incbin, a dependency which is not
@@ -23,6 +23,23 @@ $(obj)/initramfs_data.o: $(obj)/initramf
 # Commented out for now
 # initramfs-y := $(obj)/root/hello
 
+quiet_cmd_gen_list = GEN_INITRAMFS_LIST $@
+      cmd_gen_list = $(shell \
+        if test -f "$(CONFIG_INITRAMFS_SOURCE)"; then \
+	  if [ "$(CONFIG_INITRAMFS_SOURCE)" != $@ ]; then \
+	    echo 'cp -f "$(CONFIG_INITRAMFS_SOURCE)" $@'; \
+	  else \
+	    echo 'cp -f "$(srctree)/$(INITRAMFS_LIST).shipped" $@'; \
+	  fi; \
+	elif test -d "$(CONFIG_INITRAMFS_SOURCE)"; then \
+	  echo 'scripts/gen_initramfs_list.sh "$(CONFIG_INITRAMFS_SOURCE)" > $@'; \
+	else \
+	  echo 'cp -f "$(srctree)/$(INITRAMFS_LIST).shipped" $@'; \
+	fi)
+
+$(INITRAMFS_LIST): FORCE
+	$(call cmd,gen_list)
+
 quiet_cmd_cpio = CPIO    $@
       cmd_cpio = ./$< $(INITRAMFS_LIST) > $@
 
diff -urpN linux-2.6.9-rc4-mm1.orig/usr/initramfs_list linux-2.6.9-rc4-mm1/usr/initramfs_list
--- linux-2.6.9-rc4-mm1.orig/usr/initramfs_list	2004-10-17 16:48:14.262263864 +0200
+++ linux-2.6.9-rc4-mm1/usr/initramfs_list	1970-01-01 02:00:00.000000000 +0200
@@ -1,5 +0,0 @@
-# This is a very simple initramfs - mostly preliminary for future expansion
-
-dir /dev 0755 0 0
-nod /dev/console 0600 0 0 c 5 1
-dir /root 0700 0 0
diff -urpN linux-2.6.9-rc4-mm1.orig/usr/initramfs_list.shipped linux-2.6.9-rc4-mm1/usr/initramfs_list.shipped
--- linux-2.6.9-rc4-mm1.orig/usr/initramfs_list.shipped	1970-01-01 02:00:00.000000000 +0200
+++ linux-2.6.9-rc4-mm1/usr/initramfs_list.shipped	2004-10-17 16:28:57.667093056 +0200
@@ -0,0 +1,5 @@
+# This is a very simple initramfs - mostly preliminary for future expansion
+
+dir /dev 0755 0 0
+nod /dev/console 0600 0 0 c 5 1
+dir /root 0700 0 0

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

  reply	other threads:[~2004-10-17 17:32 UTC|newest]

Thread overview: 59+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-10-11 10:25 2.6.9-rc4-mm1 Andrew Morton
2004-10-11 11:29 ` 2.6.9-rc4-mm1 Eyal Lebedinsky
2004-10-11 11:37 ` 2.6.9-rc4-mm1 Tim Cambrant
2004-10-11 11:38 ` 2.6.9-rc4-mm1 Nick Piggin
2004-10-11 19:13   ` 2.6.9-rc4-mm1 Andrew Morton
2004-10-11 22:57     ` 2.6.9-rc4-mm1 Nick Piggin
2004-10-11 11:43 ` 2.6.9-rc4-mm1 Brice Goglin
2004-10-11 12:30 ` 2.6.9-rc4-mm1 Con Kolivas
2004-10-11 13:17   ` 2.6.9-rc4-mm1 Alan Cox
2004-10-11 14:23     ` 2.6.9-rc4-mm1 Con Kolivas
2004-10-11 14:30     ` 2.6.9-rc4-mm1 J.A. Magallon
2004-10-11 12:44 ` Unable to handle kernel paging request at virtual address 0000ed9c [was Re: 2.6.9-rc4-mm1] Ramón Rey Vicente
2004-10-11 13:19   ` Tim Cambrant
2004-10-11 13:34     ` Ramón Rey Vicente
2004-10-11 13:43 ` 2.6.9-rc4-mm1 Jack Byer
2004-10-11 21:58   ` 2.6.9-rc4-mm1 Andrew Morton
2004-10-11 22:10     ` 2.6.9-rc4-mm1 Tom Rini
2004-10-11 23:14     ` 2.6.9-rc4-mm1 Thayne Harbaugh
2004-10-12  0:32     ` 2.6.9-rc4-mm1 Jack Byer
2004-10-11 14:22 ` 2.6.9-rc4-mm1 J.A. Magallon
2004-10-11 14:23 ` 2.6.9-rc4-mm1 Eyal Lebedinsky
2004-10-11 15:33 ` 2.6.9-rc4-mm1 [missing i2o patch in the main patch] syrius.ml
2004-10-11 15:47 ` 2.6.9-rc4-mm1 Zwane Mwaikambo
2004-10-11 15:49   ` 2.6.9-rc4-mm1 Andi Kleen
2004-10-11 15:58     ` 2.6.9-rc4-mm1 Zwane Mwaikambo
2004-10-11 16:01       ` 2.6.9-rc4-mm1 Andi Kleen
2004-10-11 19:55   ` 2.6.9-rc4-mm1 Andrew Morton
2004-10-11 21:52     ` 2.6.9-rc4-mm1 Andi Kleen
2004-10-12 14:24     ` 2.6.9-rc4-mm1 Zwane Mwaikambo
2004-10-11 16:08 ` 2.6.9-rc4-mm1 Jeff Garzik
2004-10-11 22:38   ` 2.6.9-rc4-mm1 Lee Revell
2004-10-11 17:57 ` 2.6.9-rc4-mm1 (compile stats) John Cherry
2004-10-11 18:51 ` 2.6.9-rc4-mm1 Brice Goglin
2004-10-11 20:18   ` 2.6.9-rc4-mm1 Adrian Bunk
2004-10-11 20:15 ` [patch] 2.6.9-rc4-mm1: ALSA compile error with KMOD=n Adrian Bunk
2004-10-12 14:25 ` [patch] 2.6.9-rc4-mm1: USB compile error with PROC_FS=n Adrian Bunk
2004-10-12 16:34   ` Greg KH
2004-10-12 16:36     ` Greg KH
2004-10-12 18:49 ` 2.6.9-rc4-mm1: CRASH_DUMP " Adrian Bunk
2004-10-13 14:30   ` Hariprasad Nellitheertha
2004-10-13  7:42 ` 2.6.9-rc4-mm1 Wen-chien Jesse Sung
2004-10-13  8:16   ` 2.6.9-rc4-mm1 Hideo AOKI
2004-10-13 13:07 ` 2.6.9-rc4-mm1 Jesse Stockall
2004-10-13 13:19   ` 2.6.9-rc4-mm1 Mathieu Segaud
2004-10-13 13:34     ` 2.6.9-rc4-mm1 Jesse Stockall
2004-10-13 17:27     ` 2.6.9-rc4-mm1 Peter Adebahr
2004-10-14  4:42 ` 2.6.9-rc4-mm1 Hiroyuki KAMEZAWA
2004-10-14  4:50   ` 2.6.9-rc4-mm1 Andrew Morton
2004-10-14  5:23     ` 2.6.9-rc4-mm1 Hiroyuki KAMEZAWA
2004-10-14 17:50     ` 2.6.9-rc4-mm1 Christian Borntraeger
2004-10-15  7:08       ` 2.6.9-rc4-mm1 J.A. Magallon
2004-10-15 16:47         ` 2.6.9-rc4-mm1 Lee Revell
2004-10-17 16:15 ` 2.6.9-rc4-mm1: initramfs build fix Martin Waitz
2004-10-17 17:29   ` Martin Schlemmer [c] [this message]
2004-10-17 21:33     ` 2.6.9-rc4-mm1: initramfs build fix [u] Sam Ravnborg
2004-10-17 20:12       ` Martin Schlemmer [c]
2004-10-18 19:26         ` Martin Schlemmer [c]
2004-10-20 12:09 ` [patch] 2.6.9-rc4-mm1: compile error with BLK_DEV_IDEDMA=n Adrian Bunk
2004-10-20 14:08   ` Bartlomiej Zolnierkiewicz

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1098034147.879.21.camel@nosferatu.lan \
    --to=azarah@nosferatu.za.org \
    --cc=akpm@osdl.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=tali@admingilde.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox