All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] util/grub.d/linux: Improve initramfs detection
@ 2022-03-28  3:41 Oskari Pirhonen
  2022-04-07 15:44 ` Daniel Kiper
  0 siblings, 1 reply; 4+ messages in thread
From: Oskari Pirhonen @ 2022-03-28  3:41 UTC (permalink / raw)
  To: grub-devel

Add detection for initramfs of the form *.img.old. For example, Gentoo's
sys-kernel/genkernel installs it as initramfs-*.img and moves any
existing one to initramfs-*.img.old.

Signed-off-by: Oskari Pirhonen <xxc3ncoredxx@gmail.com>
---
v1 -> v2:
- don't reorder the checks
- include 20_linux_xen.in

 util/grub.d/10_linux.in     | 17 +++++++++--------
 util/grub.d/20_linux_xen.in | 29 +++++++++++++++--------------
 2 files changed, 24 insertions(+), 22 deletions(-)

diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in
index ca068038e..cb049e943 100644
--- a/util/grub.d/10_linux.in
+++ b/util/grub.d/10_linux.in
@@ -215,14 +215,15 @@ while [ "x$list" != "x" ] ; do
   done
 
   initrd_real=
-  for i in "initrd.img-${version}" "initrd-${version}.img" "initrd-${version}.gz" \
-	   "initrd-${version}" "initramfs-${version}.img" \
-	   "initrd.img-${alt_version}" "initrd-${alt_version}.img" \
-	   "initrd-${alt_version}" "initramfs-${alt_version}.img" \
-	   "initramfs-genkernel-${version}" \
-	   "initramfs-genkernel-${alt_version}" \
-	   "initramfs-genkernel-${GENKERNEL_ARCH}-${version}" \
-	   "initramfs-genkernel-${GENKERNEL_ARCH}-${alt_version}"; do
+  for i in "initrd.img-${version}" "initrd-${version}.img" \
+        "initrd-${alt_version}.img.old" "initrd-${version}.gz" \
+        "initrd-${alt_version}.gz.old" "initrd-${version}" \
+        "initramfs-${version}.img" "initramfs-${alt_version}.img.old" \
+        "initrd.img-${alt_version}" "initrd-${alt_version}.img" \
+        "initrd-${alt_version}" "initramfs-${alt_version}.img" \
+        "initramfs-genkernel-${version}" "initramfs-genkernel-${alt_version}" \
+        "initramfs-genkernel-${GENKERNEL_ARCH}-${version}" \
+        "initramfs-genkernel-${GENKERNEL_ARCH}-${alt_version}"; do
     if test -e "${dirname}/${i}" ; then
       initrd_real="${i}"
       break
diff --git a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in
index f45559ff8..5a1b7b7d4 100644
--- a/util/grub.d/20_linux_xen.in
+++ b/util/grub.d/20_linux_xen.in
@@ -283,20 +283,21 @@ while [ "x${xen_list}" != "x" ] ; do
 	alt_version=`echo $version | sed -e "s,\.old$,,g"`
 	linux_root_device_thisversion="${LINUX_ROOT_DEVICE}"
 
-	initrd_real=
-	for i in "initrd.img-${version}" "initrd-${version}.img" "initrd-${version}.gz" \
-	   "initrd-${version}" "initramfs-${version}.img" \
-	   "initrd.img-${alt_version}" "initrd-${alt_version}.img" \
-	   "initrd-${alt_version}" "initramfs-${alt_version}.img" \
-	   "initramfs-genkernel-${version}" \
-	   "initramfs-genkernel-${alt_version}" \
-	   "initramfs-genkernel-${GENKERNEL_ARCH}-${version}" \
-	   "initramfs-genkernel-${GENKERNEL_ARCH}-${alt_version}" ; do
-	    if test -e "${dirname}/${i}" ; then
-		initrd_real="$i"
-		break
-	    fi
-	done
+    initrd_real=
+    for i in "initrd.img-${version}" "initrd-${version}.img" \
+        "initrd-${alt_version}.img.old" "initrd-${version}.gz" \
+        "initrd-${alt_version}.gz.old" "initrd-${version}" \
+        "initramfs-${version}.img" "initramfs-${alt_version}.img.old" \
+        "initrd.img-${alt_version}" "initrd-${alt_version}.img" \
+        "initrd-${alt_version}" "initramfs-${alt_version}.img" \
+        "initramfs-genkernel-${version}" "initramfs-genkernel-${alt_version}" \
+        "initramfs-genkernel-${GENKERNEL_ARCH}-${version}" \
+        "initramfs-genkernel-${GENKERNEL_ARCH}-${alt_version}"; do
+        if test -e "${dirname}/${i}" ; then
+            initrd_real="${i}"
+            break
+        fi
+    done
 
 	initrd=
 	if test -n "${initrd_early}" || test -n "${initrd_real}"; then
-- 
2.34.1



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

* Re: [PATCH v2] util/grub.d/linux: Improve initramfs detection
  2022-03-28  3:41 [PATCH v2] util/grub.d/linux: Improve initramfs detection Oskari Pirhonen
@ 2022-04-07 15:44 ` Daniel Kiper
  2022-04-08  2:35   ` Oskari Pirhonen
  0 siblings, 1 reply; 4+ messages in thread
From: Daniel Kiper @ 2022-04-07 15:44 UTC (permalink / raw)
  To: grub-devel

On Sun, Mar 27, 2022 at 10:41:31PM -0500, Oskari Pirhonen wrote:
> Add detection for initramfs of the form *.img.old. For example, Gentoo's
> sys-kernel/genkernel installs it as initramfs-*.img and moves any
> existing one to initramfs-*.img.old.

You are mentioning initramfs* files but the patch adds also initrd*
files. Could you explain that in the commit message?

> Signed-off-by: Oskari Pirhonen <xxc3ncoredxx@gmail.com>

You are breaking indention in the patch.

> ---
> v1 -> v2:
> - don't reorder the checks
> - include 20_linux_xen.in
>
>  util/grub.d/10_linux.in     | 17 +++++++++--------
>  util/grub.d/20_linux_xen.in | 29 +++++++++++++++--------------
>  2 files changed, 24 insertions(+), 22 deletions(-)
>
> diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in
> index ca068038e..cb049e943 100644
> --- a/util/grub.d/10_linux.in
> +++ b/util/grub.d/10_linux.in
> @@ -215,14 +215,15 @@ while [ "x$list" != "x" ] ; do
>    done
>
>    initrd_real=
> -  for i in "initrd.img-${version}" "initrd-${version}.img" "initrd-${version}.gz" \
> -	   "initrd-${version}" "initramfs-${version}.img" \
> -	   "initrd.img-${alt_version}" "initrd-${alt_version}.img" \
> -	   "initrd-${alt_version}" "initramfs-${alt_version}.img" \
> -	   "initramfs-genkernel-${version}" \
> -	   "initramfs-genkernel-${alt_version}" \
> -	   "initramfs-genkernel-${GENKERNEL_ARCH}-${version}" \
> -	   "initramfs-genkernel-${GENKERNEL_ARCH}-${alt_version}"; do
> +  for i in "initrd.img-${version}" "initrd-${version}.img" \
> +        "initrd-${alt_version}.img.old" "initrd-${version}.gz" \
> +        "initrd-${alt_version}.gz.old" "initrd-${version}" \
> +        "initramfs-${version}.img" "initramfs-${alt_version}.img.old" \
> +        "initrd.img-${alt_version}" "initrd-${alt_version}.img" \
> +        "initrd-${alt_version}" "initramfs-${alt_version}.img" \
> +        "initramfs-genkernel-${version}" "initramfs-genkernel-${alt_version}" \
> +        "initramfs-genkernel-${GENKERNEL_ARCH}-${version}" \

Here...

> +        "initramfs-genkernel-${GENKERNEL_ARCH}-${alt_version}"; do

Ditto...

>      if test -e "${dirname}/${i}" ; then
>        initrd_real="${i}"
>        break
> diff --git a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in
> index f45559ff8..5a1b7b7d4 100644
> --- a/util/grub.d/20_linux_xen.in
> +++ b/util/grub.d/20_linux_xen.in
> @@ -283,20 +283,21 @@ while [ "x${xen_list}" != "x" ] ; do
>  	alt_version=`echo $version | sed -e "s,\.old$,,g"`
>  	linux_root_device_thisversion="${LINUX_ROOT_DEVICE}"
>
> -	initrd_real=
> -	for i in "initrd.img-${version}" "initrd-${version}.img" "initrd-${version}.gz" \
> -	   "initrd-${version}" "initramfs-${version}.img" \
> -	   "initrd.img-${alt_version}" "initrd-${alt_version}.img" \
> -	   "initrd-${alt_version}" "initramfs-${alt_version}.img" \
> -	   "initramfs-genkernel-${version}" \
> -	   "initramfs-genkernel-${alt_version}" \
> -	   "initramfs-genkernel-${GENKERNEL_ARCH}-${version}" \
> -	   "initramfs-genkernel-${GENKERNEL_ARCH}-${alt_version}" ; do
> -	    if test -e "${dirname}/${i}" ; then
> -		initrd_real="$i"
> -		break
> -	    fi
> -	done
> +    initrd_real=

And here...

> +    for i in "initrd.img-${version}" "initrd-${version}.img" \
> +        "initrd-${alt_version}.img.old" "initrd-${version}.gz" \
> +        "initrd-${alt_version}.gz.old" "initrd-${version}" \
> +        "initramfs-${version}.img" "initramfs-${alt_version}.img.old" \
> +        "initrd.img-${alt_version}" "initrd-${alt_version}.img" \
> +        "initrd-${alt_version}" "initramfs-${alt_version}.img" \
> +        "initramfs-genkernel-${version}" "initramfs-genkernel-${alt_version}" \

I would leave these two file names in separate lines. Same above...

> +        "initramfs-genkernel-${GENKERNEL_ARCH}-${version}" \
> +        "initramfs-genkernel-${GENKERNEL_ARCH}-${alt_version}"; do
> +        if test -e "${dirname}/${i}" ; then
> +            initrd_real="${i}"
> +            break
> +        fi
> +    done

Again, broken indention... It is almost in every line of this patch.

Daniel


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

* Re: [PATCH v2] util/grub.d/linux: Improve initramfs detection
  2022-04-07 15:44 ` Daniel Kiper
@ 2022-04-08  2:35   ` Oskari Pirhonen
  2022-04-27 14:45     ` Daniel Kiper
  0 siblings, 1 reply; 4+ messages in thread
From: Oskari Pirhonen @ 2022-04-08  2:35 UTC (permalink / raw)
  To: grub-devel

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

On Thu, Apr 07, 2022 at 05:44:18PM +0200, Daniel Kiper wrote:
> On Sun, Mar 27, 2022 at 10:41:31PM -0500, Oskari Pirhonen wrote:
> > Add detection for initramfs of the form *.img.old. For example, Gentoo's
> > sys-kernel/genkernel installs it as initramfs-*.img and moves any
> > existing one to initramfs-*.img.old.
> 
> You are mentioning initramfs* files but the patch adds also initrd*
> files. Could you explain that in the commit message?

Yeah, I can do that.

> 
> > Signed-off-by: Oskari Pirhonen <xxc3ncoredxx@gmail.com>
> 
> You are breaking indention in the patch.
> 
> > ---
> > v1 -> v2:
> > - don't reorder the checks
> > - include 20_linux_xen.in
> >
> >  util/grub.d/10_linux.in     | 17 +++++++++--------
> >  util/grub.d/20_linux_xen.in | 29 +++++++++++++++--------------
> >  2 files changed, 24 insertions(+), 22 deletions(-)
> >
> > diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in
> > index ca068038e..cb049e943 100644
> > --- a/util/grub.d/10_linux.in
> > +++ b/util/grub.d/10_linux.in
> > @@ -215,14 +215,15 @@ while [ "x$list" != "x" ] ; do
> >    done
> >
> >    initrd_real=
> > -  for i in "initrd.img-${version}" "initrd-${version}.img" "initrd-${version}.gz" \
> > -	   "initrd-${version}" "initramfs-${version}.img" \
> > -	   "initrd.img-${alt_version}" "initrd-${alt_version}.img" \
> > -	   "initrd-${alt_version}" "initramfs-${alt_version}.img" \
> > -	   "initramfs-genkernel-${version}" \
> > -	   "initramfs-genkernel-${alt_version}" \
> > -	   "initramfs-genkernel-${GENKERNEL_ARCH}-${version}" \
> > -	   "initramfs-genkernel-${GENKERNEL_ARCH}-${alt_version}"; do
> > +  for i in "initrd.img-${version}" "initrd-${version}.img" \
> > +        "initrd-${alt_version}.img.old" "initrd-${version}.gz" \
> > +        "initrd-${alt_version}.gz.old" "initrd-${version}" \
> > +        "initramfs-${version}.img" "initramfs-${alt_version}.img.old" \
> > +        "initrd.img-${alt_version}" "initrd-${alt_version}.img" \
> > +        "initrd-${alt_version}" "initramfs-${alt_version}.img" \
> > +        "initramfs-genkernel-${version}" "initramfs-genkernel-${alt_version}" \
> > +        "initramfs-genkernel-${GENKERNEL_ARCH}-${version}" \
> 
> Here...
> 
> > +        "initramfs-genkernel-${GENKERNEL_ARCH}-${alt_version}"; do
> 
> Ditto...
> 
> >      if test -e "${dirname}/${i}" ; then
> >        initrd_real="${i}"
> >        break
> > diff --git a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in
> > index f45559ff8..5a1b7b7d4 100644
> > --- a/util/grub.d/20_linux_xen.in
> > +++ b/util/grub.d/20_linux_xen.in
> > @@ -283,20 +283,21 @@ while [ "x${xen_list}" != "x" ] ; do
> >  	alt_version=`echo $version | sed -e "s,\.old$,,g"`
> >  	linux_root_device_thisversion="${LINUX_ROOT_DEVICE}"
> >
> > -	initrd_real=
> > -	for i in "initrd.img-${version}" "initrd-${version}.img" "initrd-${version}.gz" \
> > -	   "initrd-${version}" "initramfs-${version}.img" \
> > -	   "initrd.img-${alt_version}" "initrd-${alt_version}.img" \
> > -	   "initrd-${alt_version}" "initramfs-${alt_version}.img" \
> > -	   "initramfs-genkernel-${version}" \
> > -	   "initramfs-genkernel-${alt_version}" \
> > -	   "initramfs-genkernel-${GENKERNEL_ARCH}-${version}" \
> > -	   "initramfs-genkernel-${GENKERNEL_ARCH}-${alt_version}" ; do
> > -	    if test -e "${dirname}/${i}" ; then
> > -		initrd_real="$i"
> > -		break
> > -	    fi
> > -	done
> > +    initrd_real=
> 
> And here...
> 
> > +    for i in "initrd.img-${version}" "initrd-${version}.img" \
> > +        "initrd-${alt_version}.img.old" "initrd-${version}.gz" \
> > +        "initrd-${alt_version}.gz.old" "initrd-${version}" \
> > +        "initramfs-${version}.img" "initramfs-${alt_version}.img.old" \
> > +        "initrd.img-${alt_version}" "initrd-${alt_version}.img" \
> > +        "initrd-${alt_version}" "initramfs-${alt_version}.img" \
> > +        "initramfs-genkernel-${version}" "initramfs-genkernel-${alt_version}" \
> 
> I would leave these two file names in separate lines. Same above...

OK.

> 
> > +        "initramfs-genkernel-${GENKERNEL_ARCH}-${version}" \
> > +        "initramfs-genkernel-${GENKERNEL_ARCH}-${alt_version}"; do
> > +        if test -e "${dirname}/${i}" ; then
> > +            initrd_real="${i}"
> > +            break
> > +        fi
> > +    done
> 
> Again, broken indention... It is almost in every line of this patch.

That is actually something I wanted to address in a separate thread. The
indentation/style feels kind of all over the place in the few files in
grub.d/ that I glanced at. Some lines are indented with spaces, others
with tabs. Sometimes variables are substituted with $var, other times
with ${var}. Sometimes if [ ... ] is used, other times if test ... is.

If there isn't already an existing style guide that I can reference, I
would like to establish one and then re-style these scripts to be
consistent with that. But it'd have to be a separate endeavor in that
case.

In the meantime, how would you like me to indent the lines in this
patch?

- Oskari

> 
> Daniel
> 
> _______________________________________________
> Grub-devel mailing list
> Grub-devel@gnu.org
> https://lists.gnu.org/mailman/listinfo/grub-devel

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

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

* Re: [PATCH v2] util/grub.d/linux: Improve initramfs detection
  2022-04-08  2:35   ` Oskari Pirhonen
@ 2022-04-27 14:45     ` Daniel Kiper
  0 siblings, 0 replies; 4+ messages in thread
From: Daniel Kiper @ 2022-04-27 14:45 UTC (permalink / raw)
  To: xxc3ncoredxx; +Cc: grub-devel

Sorry, somehow I missed your reply...

On Thu, Apr 07, 2022 at 09:35:19PM -0500, Oskari Pirhonen wrote:
> On Thu, Apr 07, 2022 at 05:44:18PM +0200, Daniel Kiper wrote:
> > On Sun, Mar 27, 2022 at 10:41:31PM -0500, Oskari Pirhonen wrote:
> > > Add detection for initramfs of the form *.img.old. For example, Gentoo's
> > > sys-kernel/genkernel installs it as initramfs-*.img and moves any
> > > existing one to initramfs-*.img.old.
> >
> > You are mentioning initramfs* files but the patch adds also initrd*
> > files. Could you explain that in the commit message?
>
> Yeah, I can do that.

Cool! Thanks!

> > > Signed-off-by: Oskari Pirhonen <xxc3ncoredxx@gmail.com>
> >
> > You are breaking indention in the patch.
> >
> > > ---
> > > v1 -> v2:
> > > - don't reorder the checks
> > > - include 20_linux_xen.in
> > >
> > >  util/grub.d/10_linux.in     | 17 +++++++++--------
> > >  util/grub.d/20_linux_xen.in | 29 +++++++++++++++--------------
> > >  2 files changed, 24 insertions(+), 22 deletions(-)
> > >
> > > diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in
> > > index ca068038e..cb049e943 100644
> > > --- a/util/grub.d/10_linux.in
> > > +++ b/util/grub.d/10_linux.in
> > > @@ -215,14 +215,15 @@ while [ "x$list" != "x" ] ; do
> > >    done
> > >
> > >    initrd_real=
> > > -  for i in "initrd.img-${version}" "initrd-${version}.img" "initrd-${version}.gz" \
> > > -	   "initrd-${version}" "initramfs-${version}.img" \
> > > -	   "initrd.img-${alt_version}" "initrd-${alt_version}.img" \
> > > -	   "initrd-${alt_version}" "initramfs-${alt_version}.img" \
> > > -	   "initramfs-genkernel-${version}" \
> > > -	   "initramfs-genkernel-${alt_version}" \
> > > -	   "initramfs-genkernel-${GENKERNEL_ARCH}-${version}" \
> > > -	   "initramfs-genkernel-${GENKERNEL_ARCH}-${alt_version}"; do
> > > +  for i in "initrd.img-${version}" "initrd-${version}.img" \
> > > +        "initrd-${alt_version}.img.old" "initrd-${version}.gz" \
> > > +        "initrd-${alt_version}.gz.old" "initrd-${version}" \
> > > +        "initramfs-${version}.img" "initramfs-${alt_version}.img.old" \
> > > +        "initrd.img-${alt_version}" "initrd-${alt_version}.img" \
> > > +        "initrd-${alt_version}" "initramfs-${alt_version}.img" \
> > > +        "initramfs-genkernel-${version}" "initramfs-genkernel-${alt_version}" \
> > > +        "initramfs-genkernel-${GENKERNEL_ARCH}-${version}" \
> >
> > Here...
> >
> > > +        "initramfs-genkernel-${GENKERNEL_ARCH}-${alt_version}"; do
> >
> > Ditto...
> >
> > >      if test -e "${dirname}/${i}" ; then
> > >        initrd_real="${i}"
> > >        break
> > > diff --git a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in
> > > index f45559ff8..5a1b7b7d4 100644
> > > --- a/util/grub.d/20_linux_xen.in
> > > +++ b/util/grub.d/20_linux_xen.in
> > > @@ -283,20 +283,21 @@ while [ "x${xen_list}" != "x" ] ; do
> > >  	alt_version=`echo $version | sed -e "s,\.old$,,g"`
> > >  	linux_root_device_thisversion="${LINUX_ROOT_DEVICE}"
> > >
> > > -	initrd_real=
> > > -	for i in "initrd.img-${version}" "initrd-${version}.img" "initrd-${version}.gz" \
> > > -	   "initrd-${version}" "initramfs-${version}.img" \
> > > -	   "initrd.img-${alt_version}" "initrd-${alt_version}.img" \
> > > -	   "initrd-${alt_version}" "initramfs-${alt_version}.img" \
> > > -	   "initramfs-genkernel-${version}" \
> > > -	   "initramfs-genkernel-${alt_version}" \
> > > -	   "initramfs-genkernel-${GENKERNEL_ARCH}-${version}" \
> > > -	   "initramfs-genkernel-${GENKERNEL_ARCH}-${alt_version}" ; do
> > > -	    if test -e "${dirname}/${i}" ; then
> > > -		initrd_real="$i"
> > > -		break
> > > -	    fi
> > > -	done
> > > +    initrd_real=
> >
> > And here...
> >
> > > +    for i in "initrd.img-${version}" "initrd-${version}.img" \
> > > +        "initrd-${alt_version}.img.old" "initrd-${version}.gz" \
> > > +        "initrd-${alt_version}.gz.old" "initrd-${version}" \
> > > +        "initramfs-${version}.img" "initramfs-${alt_version}.img.old" \
> > > +        "initrd.img-${alt_version}" "initrd-${alt_version}.img" \
> > > +        "initrd-${alt_version}" "initramfs-${alt_version}.img" \
> > > +        "initramfs-genkernel-${version}" "initramfs-genkernel-${alt_version}" \
> >
> > I would leave these two file names in separate lines. Same above...
>
> OK.
>
> >
> > > +        "initramfs-genkernel-${GENKERNEL_ARCH}-${version}" \
> > > +        "initramfs-genkernel-${GENKERNEL_ARCH}-${alt_version}"; do
> > > +        if test -e "${dirname}/${i}" ; then
> > > +            initrd_real="${i}"
> > > +            break
> > > +        fi
> > > +    done
> >
> > Again, broken indention... It is almost in every line of this patch.
>
> That is actually something I wanted to address in a separate thread. The
> indentation/style feels kind of all over the place in the few files in
> grub.d/ that I glanced at. Some lines are indented with spaces, others
> with tabs. Sometimes variables are substituted with $var, other times
> with ${var}. Sometimes if [ ... ] is used, other times if test ... is.

Try to keep with a style in a given file in util/grub.d.

> If there isn't already an existing style guide that I can reference, I
> would like to establish one and then re-style these scripts to be
> consistent with that. But it'd have to be a separate endeavor in that
> case.

Yeah, I think it would be nice to fix that mess at some point.

> In the meantime, how would you like me to indent the lines in this
> patch?

If you need more than 7 spaces then use tabs first and spaces after that
as needed.

Daniel


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

end of thread, other threads:[~2022-04-27 15:25 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-03-28  3:41 [PATCH v2] util/grub.d/linux: Improve initramfs detection Oskari Pirhonen
2022-04-07 15:44 ` Daniel Kiper
2022-04-08  2:35   ` Oskari Pirhonen
2022-04-27 14:45     ` Daniel Kiper

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.