* [PR PATCH] booster: update to 0.10.
@ 2023-04-10 13:35 travankor
2023-04-23 22:26 ` [PR PATCH] [Merged]: " Duncaen
0 siblings, 1 reply; 2+ messages in thread
From: travankor @ 2023-04-10 13:35 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 1216 bytes --]
There is a new pull request by travankor against master on the void-packages repository
https://github.com/travankor/void-packages booster
https://github.com/void-linux/void-packages/pull/43373
booster: update to 0.10.
<!-- Uncomment relevant sections and delete options which are not applicable -->
#### Testing the changes
- I tested the changes in this PR: **YES**
<!--
#### New package
- This new package conforms to the [package requirements](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#package-requirements): **YES**|**NO**
-->
<!-- Note: If the build is likely to take more than 2 hours, please add ci skip tag as described in
https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
<!--
#### Local build testing
- I built this PR locally for my native architecture, (ARCH-LIBC)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
- aarch64-musl
- armv7l
- armv6l-musl
-->
A patch file from https://github.com/void-linux/void-packages/pull/43373.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-booster-43373.patch --]
[-- Type: text/x-diff, Size: 5941 bytes --]
From 4719b8a32280695a18ecbdadfb0e71297e032462 Mon Sep 17 00:00:00 2001
From: travankor <travankor@tuta.io>
Date: Mon, 10 Apr 2023 06:33:28 -0700
Subject: [PATCH] booster: update to 0.10.
---
srcpkgs/booster/patches/fix-target-dir.patch | 40 +++++++++
srcpkgs/booster/patches/symlink.patch | 85 ++++++++++++++++++++
srcpkgs/booster/template | 6 +-
3 files changed, 128 insertions(+), 3 deletions(-)
create mode 100644 srcpkgs/booster/patches/fix-target-dir.patch
create mode 100644 srcpkgs/booster/patches/symlink.patch
diff --git a/srcpkgs/booster/patches/fix-target-dir.patch b/srcpkgs/booster/patches/fix-target-dir.patch
new file mode 100644
index 000000000000..7d17c62899ca
--- /dev/null
+++ b/srcpkgs/booster/patches/fix-target-dir.patch
@@ -0,0 +1,40 @@
+From bc988b0c48d337d7b3447ad8a634551ca5080178 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
+Date: Thu, 9 Mar 2023 14:15:21 +0100
+Subject: [PATCH] generator: Fix creation of target directory
+
+This attempts to fix a regression introduced in commit
+e13aa77e49aef93cc1370a269785b471758cb546 since this commit
+the `usr/lib` target directroy is not created if the host system
+does not ship any files in `usr/lib` (e.g. Alpine). This causes
+initramfs images generated on such systems to not be bootable
+as `lib` is a symlink to the non-existend `usr/lib` then.
+
+The problem is the current implementation:
+
+ filepath.Dir(filepath.Join(filepath.Dir(l.src), l.target))
+
+Would return `/usr` for `{"/lib", "usr/lib"}` and hence `/usr/lib`
+was never created. I believe this was intended to be:
+
+ filepath.Join(filepath.Dir(l.src), l.target)
+
+This commit changes this accordingly and fixes booting Booster
+images on Alpine.
+---
+ generator/generator.go | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/generator/generator.go b/generator/generator.go
+index 4a030e5..0ab135c 100644
+--- a/generator/generator.go
++++ b/generator/generator.go
+@@ -263,7 +263,7 @@ func appendCompatibilitySymlinks(img *Image) error {
+ for _, l := range symlinks {
+ // Ensure that target always exist which may not be the
+ // case if we only install files from /lib or /bin.
+- targetDir := filepath.Dir(filepath.Join(filepath.Dir(l.src), l.target))
++ targetDir := filepath.Join(filepath.Dir(l.src), l.target)
+ if err := img.AppendDirEntry(targetDir); err != nil {
+ return err
+ }
diff --git a/srcpkgs/booster/patches/symlink.patch b/srcpkgs/booster/patches/symlink.patch
new file mode 100644
index 000000000000..be61fcd98d29
--- /dev/null
+++ b/srcpkgs/booster/patches/symlink.patch
@@ -0,0 +1,85 @@
+From 7766b079c8fd004fee9d5eba19cb98cac568773b Mon Sep 17 00:00:00 2001
+From: Anatol Pomozov <anatol.pomozov@gmail.com>
+Date: Thu, 23 Mar 2023 18:49:14 -0700
+Subject: [PATCH] generator: Do not rely on user's lookup order for binaries
+
+Until now we used `exec.LookPath` golang function to lookup binaries.
+This function depends on user's $PATH envvar and the order directories
+specified there. This could mess with our image symlink tree.
+
+What we want is to make sure that we lookup/add files at non-symlinked
+directories first (i.e. /usr/bin).
+
+Closes #213
+---
+ generator/generator.go | 28 ++++++++++++++++++++++++++--
+ generator/generator_test.go | 6 ++++++
+ 2 files changed, 32 insertions(+), 2 deletions(-)
+
+diff --git a/generator/generator.go b/generator/generator.go
+index 0ab135c..8f0a72f 100644
+--- a/generator/generator.go
++++ b/generator/generator.go
+@@ -5,7 +5,6 @@ import (
+ "fmt"
+ "net"
+ "os"
+- "os/exec"
+ "path/filepath"
+ "time"
+
+@@ -290,7 +289,7 @@ func (img *Image) appendExtraFiles(binaries ...string) error {
+ // If the given name is not an absolute path, assume that it refers
+ // to an executable and lookup the path to the executable using $PATH.
+ var err error
+- f, err = exec.LookPath(f)
++ f, err = lookupPath(f)
+ if err != nil {
+ return err
+ }
+@@ -303,6 +302,31 @@ func (img *Image) appendExtraFiles(binaries ...string) error {
+ return nil
+ }
+
++func lookupPath(binary string) (string, error) {
++ paths := []string{
++ "/usr/bin",
++ "/usr/sbin",
++ "/bin",
++ "/sbin",
++ "/usr/local/bin",
++ "/usr/local/sbin",
++ }
++
++ for _, p := range paths {
++ f := filepath.Join(p, binary)
++ _, err := os.Stat(f)
++ if os.IsNotExist(err) {
++ continue
++ }
++ if err != nil {
++ return "", err
++ }
++ return f, nil
++ }
++
++ return "", os.ErrNotExist
++}
++
+ func findFwFile(fw string) (string, error) {
+ supportedFwExt := []string{
+ "",
+diff --git a/generator/generator_test.go b/generator/generator_test.go
+index 57b7cce..5938cbc 100644
+--- a/generator/generator_test.go
++++ b/generator/generator_test.go
+@@ -550,3 +550,9 @@ func TestModprobeOptions(t *testing.T) {
+ }
+ require.Equal(t, expect, cfg.ModprobeOptions)
+ }
++
++func TestLookupFile(t *testing.T) {
++ path, err := lookupPath("echo")
++ require.NoError(t, err)
++ require.Equal(t, "/usr/bin/echo", path)
++}
diff --git a/srcpkgs/booster/template b/srcpkgs/booster/template
index 1e97b59ee480..9d407ebfdd3d 100644
--- a/srcpkgs/booster/template
+++ b/srcpkgs/booster/template
@@ -1,7 +1,7 @@
# Template file for 'booster'
pkgname=booster
-version=0.9
-revision=2
+version=0.10
+revision=1
build_style=go
go_import_path=github.com/anatol/booster
hostmakedepends="git ruby-ronn"
@@ -11,7 +11,7 @@ maintainer="travankor <travankor@tuta.io>"
license="MIT"
homepage="https://github.com/anatol/booster"
distfiles="https://github.com/anatol/booster/archive/${version}.tar.gz"
-checksum=786b89ac5f5b6fb063ff58b490525c9fda9c6f2ae53ab06416b25993bdb72ca4
+checksum=27a7e40135ceb5504438ce0a45108ef955f5ece197932acc7686fd6c0254565c
conf_files="/etc/booster.yaml"
alternatives="
initramfs:/etc/kernel.d/post-install/20-initramfs:/usr/libexec/booster/kernel-hook-postinst
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2023-04-23 22:26 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-04-10 13:35 [PR PATCH] booster: update to 0.10 travankor
2023-04-23 22:26 ` [PR PATCH] [Merged]: " Duncaen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).