[OE-core] Prelink problem

Mark Hatle mark.hatle at windriver.com
Tue Jan 8 20:14:44 UTC 2019


On 1/8/19 6:27 AM, Burton, Ross wrote:
> That patch removed the dependency on the QA, but your failure is at rootfs time.
> 
> No idea why the opkg rootfs code is doing prelink operations when RPM
> or dpkg don't.   CCing Mark who may have an idea here.  I thought the
> autobuilder exerised multilib-on-opkg, but maybe not.

They all should be doing prelink operations.  The operation SHOULD be
generically implemented as part of the image-prelink class, which is where I
would have expected that copy to exist.

If any of the package types of specifically doing something, that sounds
broken...  but the generic ones (last I looked) said to copy in the config file
[if it didn't exist], run prelink, remove the file [if it wasn't there to start
with].

--Mark

> Ross
> 
> On Tue, 8 Jan 2019 at 07:14, Andrej Valek <andrej.valek at siemens.com> wrote:
>>
>> Hi Ross,
>>
>> I would like to ask You a question about your commit, which removed
>> prelink dependency
>> (http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/meta/classes/insane.bbclass?h=thud&id=659c8b5267dc2220f67bfcb4ae2df91ae5052cdc).
>> Is it really necessary to remove the QADEPENDS = "prelink-native"?
>>
>> I was trying to build extensible SDK with multilib support, but without
>> success. Here is the crash log:
>>
>>      0709:        if not os.path.exists(prelink_cfg):
>>
>>      0710:
>> shutil.copy(self.d.expand('${STAGING_DIR_NATIVE}${sysconfdir_native}/prelink.conf'),
>>
>>  *** 0711:                        prelink_cfg)
>>
>>      0712:
>>
>>      0713:        cmd_prelink =
>> self.d.expand('${STAGING_DIR_NATIVE}${sbindir_native}/prelink')
>>
>>      0714:        self._exec_shell_cmd([cmd_prelink,
>>
>>      0715:                              '--root',
>>
>> File: '/usr/lib/python3.5/shutil.py', lineno: 241, function: copy
>>
>>      0237:
>>
>>      0238:    """
>>
>>      0239:    if os.path.isdir(dst):
>>
>>      0240:        dst = os.path.join(dst, os.path.basename(src))
>>
>>  *** 0241:    copyfile(src, dst, follow_symlinks=follow_symlinks)
>>
>>      0242:    copymode(src, dst, follow_symlinks=follow_symlinks)
>>
>>      0243:    return dst
>>
>>      0244:
>>
>>      0245:def copy2(src, dst, *, follow_symlinks=True):
>>
>> File: '/usr/lib/python3.5/shutil.py', lineno: 120, function: copyfile
>>
>>      0116:
>>
>>      0117:    if not follow_symlinks and os.path.islink(src):
>>
>>      0118:        os.symlink(os.readlink(src), dst)
>>
>>      0119:    else:
>>
>>  *** 0120:        with open(src, 'rb') as fsrc:
>>
>>      0121:            with open(dst, 'wb') as fdst:
>>
>>      0122:                copyfileobj(fsrc, fdst)
>>
>>      0123:    return dst
>>
>>      0124:
>>
>> Exception: FileNotFoundError: [Errno 2] No such file or directory:
>> '/home/.../1.0-r0/recipe-sysroot-native/etc/prelink.conf'
>>
>>
>> It points into meta/lib/oe/rootfs.py:705
>>
>> if not os.path.exists(prelink_cfg):
>>
>> shutil.copy(self.d.expand('${STAGING_DIR_NATIVE}${sysconfdir_native}/prelink.conf'),prelink_cfg)
>>
>>
>> How it's possible to copy non-existing file, because of removed
>> prelink-native dependency.
>>
>> Do I need to explicitly inherit some class, let say image-prelink?
>> What am I doing wrong?
>>
>> Regards,
>> Andrej



More information about the Openembedded-core mailing list