Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 720134 - net-im/slack-4.4.2: incorrect QA_PREBUILT and fperms usage
Summary: net-im/slack-4.4.2: incorrect QA_PREBUILT and fperms usage
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: Vladimir Pavljuchenkov (SpiderX)
URL:
Whiteboard:
Keywords: PullRequest
Depends on:
Blocks:
 
Reported: 2020-04-30 14:01 UTC by Khaled Moussa
Modified: 2020-06-15 15:48 UTC (History)
9 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
Fix the fperms calls so they work with new installations (slack-fperms.patch,709 bytes, patch)
2020-05-07 04:11 UTC, Patrick McLean
Details | Diff
slack-4.4.2-keep-perms.patch (slack-4.4.2-keep-perms.patch,811 bytes, patch)
2020-05-21 04:27 UTC, William Hubbs
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Khaled Moussa 2020-04-30 14:01:43 UTC
Slack 4.4.2 failed to merge, portage spit the this message.

>>> Install net-im/slack-4.4.2 into /var/tmp/portage/net-im/slack-4.4.2/image
 * Relative path passed to 'fperms': opt/slack/chrome-sandbox
 * This is unsupported. Please use 'chmod' when you need to work on files
 * outside the installation image (${ED}).
chmod: cannot access 'opt/slack/chrome-sandbox': No such file or directory
 * ERROR: net-im/slack-4.4.2::gentoo failed (install phase):
 *   fperms failed
 * 
 * If you need support, post the output of `emerge --info '=net-im/slack-4.4.2::gentoo'`,
 * the complete build log and the output of `emerge -pqv '=net-im/slack-4.4.2::gentoo'`.
 * The complete build log is located at '/var/tmp/portage/net-im/slack-4.4.2/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/net-im/slack-4.4.2/temp/environment'.
 * Working directory: '/var/tmp/portage/net-im/slack-4.4.2/work'
 * S: '/var/tmp/portage/net-im/slack-4.4.2/work'

-------------

Checking the ebuild file /usr/portage/net-im/slack/slack-4.4.2.ebuild  line# 51
 
 51 QA_PREBUILT="opt/slack/chrome-sandbox
 52     opt/slack/libEGL.so
 53     opt/slack/libffmpeg.so
 54     opt/slack/libGLESv2.so
 55     opt/slack/resources/app.asar.unpacked/node_modules/*/*/build/Release/*.node
 56     opt/slack/resources/app.asar.unpacked/node_modules/*/build/Release/*.node
 57     opt/slack/slack
 58     opt/slack/swiftshader/libEGL.so
 59     opt/slack/swiftshader/libGLESv2.so
 60     opt/slack/swiftshader/libvk_swiftshader.so"


I think there is a missing slash in the path assigned to QA_PREBUILT
Comment 1 Joshua Baergen 2020-04-30 17:10:18 UTC
Confirmed that adding '/' in front of the paths fixed the issue.
Comment 2 Tom Samstag 2020-04-30 18:24:24 UTC
just came across this as well. looks to be related to the code added for bug 713094 by spiderx@spiderx.dp.ua
Comment 3 Larry the Git Cow gentoo-dev 2020-04-30 21:12:07 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f376d2f829f7ba93d33a0ef50aeb80b1236a7951

commit f376d2f829f7ba93d33a0ef50aeb80b1236a7951
Author:     Georgy Yakovlev <gyakovlev@gentoo.org>
AuthorDate: 2020-04-30 21:10:13 +0000
Commit:     Georgy Yakovlev <gyakovlev@gentoo.org>
CommitDate: 2020-04-30 21:10:26 +0000

    net-im/slack: fix installation
    
    Bug: https://bugs.gentoo.org/720134
    Package-Manager: Portage-2.3.89, Repoman-2.3.20
    Signed-off-by: Georgy Yakovlev <gyakovlev@gentoo.org>

 net-im/slack/slack-4.4.2.ebuild | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)
Comment 4 Georgy Yakovlev archtester gentoo-dev 2020-04-30 21:18:48 UTC
I've committed a temporary fix.

To spiderx@spiderx.dp.ua , please don't use variables like QA_PREBUILT as a list of files to process.
QA_PREBUILT is not a file list by nature, it's a regular expression, that looks like file list.

Also it's strange how the ebuild was tested and committed, it clearly fails if you try installation.
Comment 5 Vladimir Pavljuchenkov (SpiderX) 2020-05-01 18:22:10 UTC
gyakovlev@gentoo.org

Thank you.

> Also it's strange how the ebuild was tested and committed, it clearly fails if you try installation.

There was a gap between testing and committing.
Change that consists of exactly what you fixed didn't appear in commit.
Will be more watchful next time.
Sorry for this.

> QA_PREBUILT is not a file list by nature, it's a regular expression, that looks like file list.

Is it fine reassign QA_PREBUILT to local variable and work with it?

Like, MY_LIST="$(echo ${QA_PREBUILT} | sed 's/^/\//')"

Or maintaining separate file list is the only preferred way?
Comment 6 Andy Dalton 2020-05-02 17:38:20 UTC
This seems at least related to this bug, but I cannot install net-im/slcak-4.4.2; I get an `fperms failed` error associated with a `chmod`:

# emerge net-im/slack
Calculating dependencies... done!                                                                                                                                                      
>>> Verifying ebuild manifests                                                                                                                                                         
>>> Emerging (1 of 1) net-im/slack-4.4.2::gentoo                                                                                                                                       
>>> Failed to emerge net-im/slack-4.4.2, Log file:                                                                                                                                     
>>>  '/var/tmp/portage/net-im/slack-4.4.2/temp/build.log'                                                                                                                              
>>> Jobs: 0 of 1 complete, 1 failed                 Load avg: 0.72, 0.43, 0.69                                                                                                         
 * Package:    net-im/slack-4.4.2                                                                                                                                                      
 * Repository: gentoo                                                                                                                                                                  
 * Maintainer: spiderx@spiderx.dp.ua proxy-maint@gentoo.org                                                                                                                            
 * USE:        abi_x86_64 amd64 appindicator elibc_glibc kernel_linux userland_GNU
 * FEATURES:   network-sandbox preserve-libs sandbox userpriv usersandbox
>>> Unpacking source...
>>> Unpacking slack-desktop-4.4.2-amd64.deb to /var/tmp/portage/net-im/slack-4.4.2/work
>>> Unpacking data.tar.xz to /var/tmp/portage/net-im/slack-4.4.2/work
>>> Source unpacked in /var/tmp/portage/net-im/slack-4.4.2/work
>>> Preparing source in /var/tmp/portage/net-im/slack-4.4.2/work ...
>>> Source prepared.
>>> Configuring source in /var/tmp/portage/net-im/slack-4.4.2/work ...
>>> Source configured.
>>> Compiling source in /var/tmp/portage/net-im/slack-4.4.2/work ...
>>> Source compiled.
>>> Test phase [not enabled]: net-im/slack-4.4.2

>>> Install net-im/slack-4.4.2 into /var/tmp/portage/net-im/slack-4.4.2/image
chmod: cannot access '/var/tmp/portage/net-im/slack-4.4.2/image/opt/slack/resources/app.asar.unpacked/node_modules/*/*/build/Release/*.node': No such file or directory
 * ERROR: net-im/slack-4.4.2::gentoo failed (install phase):
 *   fperms failed
 * 
 * If you need support, post the output of `emerge --info '=net-im/slack-4.4.2::gentoo'`,
 * the complete build log and the output of `emerge -pqv '=net-im/slack-4.4.2::gentoo'`.
 * The complete build log is located at '/var/tmp/portage/net-im/slack-4.4.2/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/net-im/slack-4.4.2/temp/environment'.
 * Working directory: '/var/tmp/portage/net-im/slack-4.4.2/work'
 * S: '/var/tmp/portage/net-im/slack-4.4.2/work'


I do, however, see the files it seems to be trying to chmod:

# ls /var/tmp/portage/net-im/slack-4.4.2/image/opt/slack/resources/app.asar.unpacked/node_modules/*/*/build/Release/*.node
/var/tmp/portage/net-im/slack-4.4.2/image/opt/slack/resources/app.asar.unpacked/node_modules/@nodert-win10-au/windows.applicationmodel/build/Release/binding.node
/var/tmp/portage/net-im/slack-4.4.2/image/opt/slack/resources/app.asar.unpacked/node_modules/@nodert-win10-au/windows.data.xml.dom/build/Release/binding.node
/var/tmp/portage/net-im/slack-4.4.2/image/opt/slack/resources/app.asar.unpacked/node_modules/@nodert-win10-au/windows.foundation/build/Release/binding.node
/var/tmp/portage/net-im/slack-4.4.2/image/opt/slack/resources/app.asar.unpacked/node_modules/@nodert-win10-au/windows.ui.notifications/build/Release/binding.node
/var/tmp/portage/net-im/slack-4.4.2/image/opt/slack/resources/app.asar.unpacked/node_modules/@nodert-win10-au/windows.ui.startscreen/build/Release/binding.node
Comment 7 Georgy Yakovlev archtester gentoo-dev 2020-05-07 04:09:24 UTC
new installations can't install it now.

because echo part tries to expand paths on real system.
but if the paths are not present, * is not expanded and wildcards fed to fperms.

>>> Install net-im/slack-4.4.2 into /var/tmp/portage/net-im/slack-4.4.2/image
chmod: cannot access '/var/tmp/portage/net-im/slack-4.4.2/image/opt/slack/resources/app.asar.unpacked/node_modules/*/*/build/Release/*.node': No such file or directory
 * ERROR: net-im/slack-4.4.2::gentoo failed (install phase):
 *   fperms failed



another point of not using it.

if you need to keep permissions it's acceptable to just use cp. (I do it in java bin ebuilds). it's not very welcome but acceptable if the file list you need to chmod/chown/whatever is quite large.
Comment 8 Patrick McLean gentoo-dev 2020-05-07 04:11:40 UTC
Created attachment 636582 [details, diff]
Fix the fperms calls so they work with new installations
Comment 9 Larry the Git Cow gentoo-dev 2020-05-07 04:21:03 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f11fab16f7061f4537677e90f2148a596bfb8006

commit f11fab16f7061f4537677e90f2148a596bfb8006
Author:     Patrick McLean <chutzpah@gentoo.org>
AuthorDate: 2020-05-07 04:18:27 +0000
Commit:     Georgy Yakovlev <gyakovlev@gentoo.org>
CommitDate: 2020-05-07 04:19:45 +0000

    net-im/slack: fix installation on new systems
    
    this is just a hack, should be done properly
    
    Bug: https://bugs.gentoo.org/720134
    Package-Manager: Portage-2.3.89, Repoman-2.3.20
    Signed-off-by: Patrick McLean <chutzpah@gentoo.org>
    Signed-off-by: Georgy Yakovlev <gyakovlev@gentoo.org>

 net-im/slack/slack-4.4.2.ebuild | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)
Comment 10 Georgy Yakovlev archtester gentoo-dev 2020-05-07 04:34:10 UTC
just clarifications:
don't use QA_PREBUILT at all.
It's consumed by QA checks, leave it be. It's tempting to re-use, I agree, but as you can see it caused quite a downfall =)

If you ok to maintain the duplicate list that's easily consumed by fperms - feel free to.

or just use cp -pPR
look at openjdk-bin for examples.
Comment 11 William Hubbs gentoo-dev 2020-05-21 04:27:03 UTC
Created attachment 640608 [details, diff]
slack-4.4.2-keep-perms.patch

Here is a possible fix for this issue.
It is completely legal if you need to keep permissions to use cp.

Please apply this patch and test.

Thanks,

William
Comment 12 Larry the Git Cow gentoo-dev 2020-06-15 10:57:34 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4c30d7118c7bc5c0040e3f60d5b04cfc7f215ee2

commit 4c30d7118c7bc5c0040e3f60d5b04cfc7f215ee2
Author:     Vladimir Pavljuchenkov (SpiderX) <spiderx@spiderx.dp.ua>
AuthorDate: 2020-05-24 12:32:52 +0000
Commit:     Joonas Niilola <juippis@gentoo.org>
CommitDate: 2020-06-15 10:57:15 +0000

    net-im/slack: version bump to 4.4.3, wrt 720134
    
    Closes: https://bugs.gentoo.org/720134
    Package-Manager: Portage-2.3.99, Repoman-2.3.22
    Signed-off-by: Vladimir Pavljuchenkov <spiderx@spiderx.dp.ua>
    Closes: https://github.com/gentoo/gentoo/pull/15948
    Signed-off-by: Joonas Niilola <juippis@gentoo.org>

 net-im/slack/Manifest           |   1 +
 net-im/slack/slack-4.4.3.ebuild | 109 ++++++++++++++++++++++++++++++++++++++++
 2 files changed, 110 insertions(+)
Comment 13 Vladimir Pavljuchenkov (SpiderX) 2020-06-15 15:48:27 UTC
Thanks everyone for explanations, patches and time.