Message ID | 20220808064237.3975347-8-alex@linutronix.de |
---|---|
State | Accepted, archived |
Commit | 0b2f8da3ff9cbbb6fc2ab75fbe09ad1fe745c53b |
Headers | show |
Series | [v2,01/44] rpm: update 4.17.0 -> 4.17.1 | expand |
On 8/7/22 11:42 PM, Alexander Kanavin wrote: > Drop handle-read-only-files.patch: read only files should > be handled by making them writeable explicitly. See > the upstream discussion: > https://github.com/NixOS/patchelf/pull/89 I agree with this. However, we have been carrying this for a while and there is a usecase which is addressed, maybe that is no longer a problem any more but needs to be checked see https://git.openembedded.org/openembedded-core/commit/?id=18efcbcb896239c64fedd009ce57f3f0c668cbc0 * Add patch handle-read-only-files.patch to fix error when building eSKD, the following error appears on task do_testsdkext > > Signed-off-by: Alexander Kanavin <alex@linutronix.de> > --- > .../patchelf/handle-read-only-files.patch | 65 ------------------- > ...{patchelf_0.14.5.bb => patchelf_0.15.0.bb} | 6 +- > 2 files changed, 2 insertions(+), 69 deletions(-) > delete mode 100644 meta/recipes-devtools/patchelf/patchelf/handle-read-only-files.patch > rename meta/recipes-devtools/patchelf/{patchelf_0.14.5.bb => patchelf_0.15.0.bb} (79%) > > diff --git a/meta/recipes-devtools/patchelf/patchelf/handle-read-only-files.patch b/meta/recipes-devtools/patchelf/patchelf/handle-read-only-files.patch > deleted file mode 100644 > index b755a263a4..0000000000 > --- a/meta/recipes-devtools/patchelf/patchelf/handle-read-only-files.patch > +++ /dev/null > @@ -1,65 +0,0 @@ > -From 682fb48c137b687477008b68863c2a0b73ed47d1 Mon Sep 17 00:00:00 2001 > -From: Fabio Berton <fabio.berton@ossystems.com.br> > -Date: Fri, 9 Sep 2016 16:00:42 -0300 > -Subject: [PATCH] handle read-only files > - > -Patch from: > -https://github.com/darealshinji/patchelf/commit/40e66392bc4b96e9b4eda496827d26348a503509 > - > -Upstream-Status: Denied [https://github.com/NixOS/patchelf/pull/89] > - > -Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br> > - > ---- > - src/patchelf.cc | 16 +++++++++++++++- > - 1 file changed, 15 insertions(+), 1 deletion(-) > - > -Index: git/src/patchelf.cc > -=================================================================== > ---- git.orig/src/patchelf.cc > -+++ git/src/patchelf.cc > -@@ -534,9 +534,19 @@ void ElfFile<ElfFileParamNames>::sortShd > - > - static void writeFile(const std::string & fileName, const FileContents & contents) > - { > -+ struct stat st; > -+ int fd; > -+ > - debug("writing %s\n", fileName.c_str()); > - > -- int fd = open(fileName.c_str(), O_CREAT | O_TRUNC | O_WRONLY, 0777); > -+ if (stat(fileName.c_str(), &st) != 0) > -+ error("stat"); > -+ > -+ if (chmod(fileName.c_str(), 0600) != 0) > -+ error("chmod"); > -+ > -+ fd = open(fileName.c_str(), O_CREAT | O_TRUNC | O_WRONLY, 0777); > -+ > - if (fd == -1) > - error("open"); > - > -@@ -551,8 +561,6 @@ static void writeFile(const std::string > - bytesWritten += portion; > - } > - > -- if (close(fd) >= 0) > -- return; > - /* > - * Just ignore EINTR; a retry loop is the wrong thing to do. > - * > -@@ -561,9 +569,11 @@ static void writeFile(const std::string > - * http://utcc.utoronto.ca/~cks/space/blog/unix/CloseEINTR > - * https://sites.google.com/site/michaelsafyan/software-engineering/checkforeintrwheninvokingclosethinkagain > - */ > -- if (errno == EINTR) > -- return; > -- error("close"); > -+ if ((close(fd) < 0) && errno != EINTR) > -+ error("close"); > -+ > -+ if (chmod(fileName.c_str(), st.st_mode) != 0) > -+ error("chmod"); > - } > - > - > diff --git a/meta/recipes-devtools/patchelf/patchelf_0.14.5.bb b/meta/recipes-devtools/patchelf/patchelf_0.15.0.bb > similarity index 79% > rename from meta/recipes-devtools/patchelf/patchelf_0.14.5.bb > rename to meta/recipes-devtools/patchelf/patchelf_0.15.0.bb > index 0fa2c00f1d..26abde2ed5 100644 > --- a/meta/recipes-devtools/patchelf/patchelf_0.14.5.bb > +++ b/meta/recipes-devtools/patchelf/patchelf_0.15.0.bb > @@ -4,10 +4,8 @@ HOMEPAGE = "https://github.com/NixOS/patchelf" > > LICENSE = "GPL-3.0-only" > > -SRC_URI = "git://github.com/NixOS/patchelf;protocol=https;branch=master \ > - file://handle-read-only-files.patch \ > - " > -SRCREV = "a35054504293f9ff64539850d1ed0bfd2f5399f2" > +SRC_URI = "git://github.com/NixOS/patchelf;protocol=https;branch=master" > +SRCREV = "49008002562355b0e35075cbc1c42c645ff04e28" > > S = "${WORKDIR}/git" > > > > > -=-=-=-=-=-=-=-=-=-=-=- > Links: You receive all messages sent to this group. > View/Reply Online (#169032): https://lists.openembedded.org/g/openembedded-core/message/169032 > Mute This Topic: https://lists.openembedded.org/mt/92887003/1997914 > Group Owner: openembedded-core+owner@lists.openembedded.org > Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [raj.khem@gmail.com] > -=-=-=-=-=-=-=-=-=-=-=- >
On Mon, 8 Aug 2022 at 19:07, Khem Raj <raj.khem@gmail.com> wrote: > > Drop handle-read-only-files.patch: read only files should > > be handled by making them writeable explicitly. See > > the upstream discussion: > > https://github.com/NixOS/patchelf/pull/89 > > I agree with this. However, we have been carrying this for a while and > there is a usecase which is addressed, maybe that is no longer a problem > any more but needs to be checked > > see > https://git.openembedded.org/openembedded-core/commit/?id=18efcbcb896239c64fedd009ce57f3f0c668cbc0 > > * Add patch handle-read-only-files.patch to fix error when > building eSKD, the following error appears on task do_testsdkext Thanks, I did not see this. I suppose we can change the patch into a tweak to uninative.bbclass where patchelf is invoked, as there's no indication there is any other use case. The complication is in having to produce new uninative to test any such changes, as RP mentioned. Alex
diff --git a/meta/recipes-devtools/patchelf/patchelf/handle-read-only-files.patch b/meta/recipes-devtools/patchelf/patchelf/handle-read-only-files.patch deleted file mode 100644 index b755a263a4..0000000000 --- a/meta/recipes-devtools/patchelf/patchelf/handle-read-only-files.patch +++ /dev/null @@ -1,65 +0,0 @@ -From 682fb48c137b687477008b68863c2a0b73ed47d1 Mon Sep 17 00:00:00 2001 -From: Fabio Berton <fabio.berton@ossystems.com.br> -Date: Fri, 9 Sep 2016 16:00:42 -0300 -Subject: [PATCH] handle read-only files - -Patch from: -https://github.com/darealshinji/patchelf/commit/40e66392bc4b96e9b4eda496827d26348a503509 - -Upstream-Status: Denied [https://github.com/NixOS/patchelf/pull/89] - -Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br> - ---- - src/patchelf.cc | 16 +++++++++++++++- - 1 file changed, 15 insertions(+), 1 deletion(-) - -Index: git/src/patchelf.cc -=================================================================== ---- git.orig/src/patchelf.cc -+++ git/src/patchelf.cc -@@ -534,9 +534,19 @@ void ElfFile<ElfFileParamNames>::sortShd - - static void writeFile(const std::string & fileName, const FileContents & contents) - { -+ struct stat st; -+ int fd; -+ - debug("writing %s\n", fileName.c_str()); - -- int fd = open(fileName.c_str(), O_CREAT | O_TRUNC | O_WRONLY, 0777); -+ if (stat(fileName.c_str(), &st) != 0) -+ error("stat"); -+ -+ if (chmod(fileName.c_str(), 0600) != 0) -+ error("chmod"); -+ -+ fd = open(fileName.c_str(), O_CREAT | O_TRUNC | O_WRONLY, 0777); -+ - if (fd == -1) - error("open"); - -@@ -551,8 +561,6 @@ static void writeFile(const std::string - bytesWritten += portion; - } - -- if (close(fd) >= 0) -- return; - /* - * Just ignore EINTR; a retry loop is the wrong thing to do. - * -@@ -561,9 +569,11 @@ static void writeFile(const std::string - * http://utcc.utoronto.ca/~cks/space/blog/unix/CloseEINTR - * https://sites.google.com/site/michaelsafyan/software-engineering/checkforeintrwheninvokingclosethinkagain - */ -- if (errno == EINTR) -- return; -- error("close"); -+ if ((close(fd) < 0) && errno != EINTR) -+ error("close"); -+ -+ if (chmod(fileName.c_str(), st.st_mode) != 0) -+ error("chmod"); - } - - diff --git a/meta/recipes-devtools/patchelf/patchelf_0.14.5.bb b/meta/recipes-devtools/patchelf/patchelf_0.15.0.bb similarity index 79% rename from meta/recipes-devtools/patchelf/patchelf_0.14.5.bb rename to meta/recipes-devtools/patchelf/patchelf_0.15.0.bb index 0fa2c00f1d..26abde2ed5 100644 --- a/meta/recipes-devtools/patchelf/patchelf_0.14.5.bb +++ b/meta/recipes-devtools/patchelf/patchelf_0.15.0.bb @@ -4,10 +4,8 @@ HOMEPAGE = "https://github.com/NixOS/patchelf" LICENSE = "GPL-3.0-only" -SRC_URI = "git://github.com/NixOS/patchelf;protocol=https;branch=master \ - file://handle-read-only-files.patch \ - " -SRCREV = "a35054504293f9ff64539850d1ed0bfd2f5399f2" +SRC_URI = "git://github.com/NixOS/patchelf;protocol=https;branch=master" +SRCREV = "49008002562355b0e35075cbc1c42c645ff04e28" S = "${WORKDIR}/git"
Drop handle-read-only-files.patch: read only files should be handled by making them writeable explicitly. See the upstream discussion: https://github.com/NixOS/patchelf/pull/89 Signed-off-by: Alexander Kanavin <alex@linutronix.de> --- .../patchelf/handle-read-only-files.patch | 65 ------------------- ...{patchelf_0.14.5.bb => patchelf_0.15.0.bb} | 6 +- 2 files changed, 2 insertions(+), 69 deletions(-) delete mode 100644 meta/recipes-devtools/patchelf/patchelf/handle-read-only-files.patch rename meta/recipes-devtools/patchelf/{patchelf_0.14.5.bb => patchelf_0.15.0.bb} (79%)