[-- Attachment #1: Type: text/plain, Size: 1627 bytes --] There is a new pull request by sgn against master on the void-packages repository https://github.com/sgn/void-packages pre-install-libdir https://github.com/void-linux/void-packages/pull/28582 common/00-libdir: only create lib{32,64} symlink if not exists <!-- Mark items with [x] where applicable --> #### General - [ ] This is a new package and it conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements) #### Have the results of the proposed changes been tested? - [ ] I use the packages affected by the proposed changes on a regular basis and confirm this PR works for me - [ ] I generally don't use the affected packages but briefly tested this PR <!-- If GitHub CI cannot be used to validate the build result (for example, if the build is likely to take several hours), make sure to [skip CI](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration). When skipping CI, uncomment and fill out the following section. Note: for builds that are likely to complete in less than 2 hours, it is not acceptable to skip CI. --> <!-- #### Does it build and run successfully? (Please choose at least one native build and, if supported, at least one cross build. More are better.) - [ ] 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/28582.patch is attached [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: github-pr-pre-install-libdir-28582.patch --] [-- Type: text/x-diff, Size: 933 bytes --] From c8fa6860168b46d1b54451bd876eb21573abd3f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?= <congdanhqx@gmail.com> Date: Mon, 8 Feb 2021 06:47:45 +0700 Subject: [PATCH] common/00-libdir: only create lib{32,64} symlink if not exists --- common/hooks/pre-install/00-libdir.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/common/hooks/pre-install/00-libdir.sh b/common/hooks/pre-install/00-libdir.sh index f19f68088ff..4c57fbcb1e0 100644 --- a/common/hooks/pre-install/00-libdir.sh +++ b/common/hooks/pre-install/00-libdir.sh @@ -1,7 +1,9 @@ # This hook creates the wordsize specific libdir symlink. hook() { - if [ "${pkgname}" != "base-files" ]; then + if [ -L ${PKGDESTDIR}/usr/lib${XBPS_TARGET_WORDSIZE} ]; then + return 0 + elif [ "${pkgname}" != "base-files" ]; then vmkdir usr/lib ln -sf lib ${PKGDESTDIR}/usr/lib${XBPS_TARGET_WORDSIZE} fi
[-- Attachment #1: Type: text/plain, Size: 290 bytes --] New review comment by ericonr on void-packages repository https://github.com/void-linux/void-packages/pull/28582#discussion_r572037158 Comment: This should only happen if you're rebuilding in a dirty destdir... Maybe it should have a dotfile that tracks the hook already having been run?
[-- Attachment #1: Type: text/plain, Size: 359 bytes --] New review comment by sgn on void-packages repository https://github.com/void-linux/void-packages/pull/28582#discussion_r572047190 Comment: Yes, but my use case is: ```sh $ ./xbps-src pkg foo $ do-some-test-and-hate-the-result $ fix-some-stuff $ ./xbps-src install foo $ inspect $DESTDIR $ ./xbps-src -f pkg foo # this steps will run into error :-[p
[-- Attachment #1: Type: text/plain, Size: 185 bytes --] New review comment by sgn on void-packages repository https://github.com/void-linux/void-packages/pull/28582#discussion_r572047607 Comment: This is a hack, not a proper fix, I think.
[-- Attachment #1: Type: text/plain, Size: 470 bytes --] New review comment by ericonr on void-packages repository https://github.com/void-linux/void-packages/pull/28582#discussion_r572125238 Comment: Maybe leave a comment about it being a hack? The issue with these hooks is that some of them we'd like to run only once, and others we'd like to run despite it having been run already, so a general `.pre-pkg-hook-*` mechanism isn't enough :/ Still, I thought `ln -sf` avoid issues with creating symlinks inside symlinks.
[-- Attachment #1: Type: text/plain, Size: 173 bytes --] New review comment by sgn on void-packages repository https://github.com/void-linux/void-packages/pull/28582#discussion_r572504594 Comment: Yay, the keyword is _thought_
[-- Attachment #1: Type: text/plain, Size: 244 bytes --] New comment by q66 on void-packages repository https://github.com/void-linux/void-packages/pull/28582#issuecomment-775807155 Comment: what's the point of doing this? it should make no semantical difference (the symlink is made with `ln -sf`)
[-- Attachment #1: Type: text/plain, Size: 429 bytes --] New comment by sgn on void-packages repository https://github.com/void-linux/void-packages/pull/28582#issuecomment-776508482 Comment: On 2021-02-09 01:47:58-0800, Daniel Kolesa <notifications@github.com> wrote: > what's the point of doing this? it should make no semantical difference (the symlink is made with `ln -sf`) To prevent the existance of `/usr/lib{32,64}/lib` with ./xbps-src install foo && ./xbps-src -f pkg foo
[-- Attachment #1: Type: text/plain, Size: 216 bytes --] New comment by q66 on void-packages repository https://github.com/void-linux/void-packages/pull/28582#issuecomment-776638541 Comment: i see no way the script can cause that, it never creates `lib`, only `lib32/64`
[-- Attachment #1: Type: text/plain, Size: 242 bytes --] New comment by ericonr on void-packages repository https://github.com/void-linux/void-packages/pull/28582#issuecomment-776678551 Comment: @q66 you can see it happening by exiting with an error from a `do_install` and then running it again.
[-- Attachment #1: Type: text/plain, Size: 365 bytes --] New comment by sgn on void-packages repository https://github.com/void-linux/void-packages/pull/28582#issuecomment-776680068 Comment: On 2021-02-10 03:19:24-0800, Daniel Kolesa <notifications@github.com> wrote: > i see no way the script can cause that, it never creates `lib`, only `lib32/64` $ mkdir -p /tmp/lib $ ln -sf lib /tmp/lib64 $ ln -sf lib /tmp/lib64
[-- Attachment #1: Type: text/plain, Size: 502 bytes --] New comment by sgn on void-packages repository https://github.com/void-linux/void-packages/pull/28582#issuecomment-776680068 Comment: On 2021-02-10 03:19:24-0800, Daniel Kolesa <notifications@github.com> wrote: > i see no way the script can cause that, it never creates `lib`, only `lib32/64` $ mkdir -p /tmp/lib # make sure target link exists $ ln -sf lib /tmp/lib64 # create a symlink to lib with name lib64 $ ln -sf lib /tmp/lib64 # create a symlink to lib with name lib inside /tmp/lib64
[-- Attachment #1: Type: text/plain, Size: 152 bytes --] New comment by q66 on void-packages repository https://github.com/void-linux/void-packages/pull/28582#issuecomment-776711167 Comment: ah, i see, yeah
[-- Attachment #1: Type: text/plain, Size: 1473 bytes --] There's a merged pull request on the void-packages repository common/00-libdir: only create lib{32,64} symlink if not exists https://github.com/void-linux/void-packages/pull/28582 Description: <!-- Mark items with [x] where applicable --> #### General - [ ] This is a new package and it conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements) #### Have the results of the proposed changes been tested? - [ ] I use the packages affected by the proposed changes on a regular basis and confirm this PR works for me - [ ] I generally don't use the affected packages but briefly tested this PR <!-- If GitHub CI cannot be used to validate the build result (for example, if the build is likely to take several hours), make sure to [skip CI](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration). When skipping CI, uncomment and fill out the following section. Note: for builds that are likely to complete in less than 2 hours, it is not acceptable to skip CI. --> <!-- #### Does it build and run successfully? (Please choose at least one native build and, if supported, at least one cross build. More are better.) - [ ] 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 -->