[OE-core] [PATCH 1/1] btrfs-tools: fix installed-vs-shipped

Robert Yang liezhi.yang at windriver.com
Thu Jul 21 06:54:49 UTC 2016


On 07/21/2016 09:47 AM, Robert Yang wrote:
>
>
> On 07/20/2016 07:59 PM, Burton, Ross wrote:
>>
>> On 20 July 2016 at 06:54, Robert Yang <liezhi.yang at windriver.com
>> <mailto:liezhi.yang at windriver.com>> wrote:
>>
>>        /lib64/udev/rules.d/64-btrfs-dm.rules
>>
>>
>> This says that the btrfstools recipe is broken, not the packaging.  udev looks
>> in /lib no matter what $libdir is.
>>
>> udev reads UDEVLIBEXECDIR/rules.d, where udevlibexecdir=$(rootprefix)/lib/udev
>> and we pass rootprefix=$baseprefix (which defaults to /).
>
> Thanks, I was misleaded by eudev, whose udevlibexecdir is ${rootlibexecdir}
> which is ${libdir}/udev, so it is /lib64/udev. It supports /lib/udev and
> /lib64/udev as the code in eudev-3.2/src/udev/udev-rules.c shows:
>
> static const char* const rules_dirs[] = {
>          UDEV_CONF_DIR "/rules.d",
>          UDEV_RULES_DIR,
>          UDEV_ROOT_RUN "/udev/rules.d",
>          UDEV_LIBEXEC_DIR "/rules.d",
> #ifdef HAVE_SPLIT_USR
>          "/lib/udev/rules.d",
>          "/usr/lib/udev/rules.d",
> #endif
>          NULL};
>
>
> But for systemd, it hardcoded to $(rootprefix)/lib/udev.
>
> I looked into tmp/deploy/rpms, the following packages doesn't install
> to /lib/udev, but /lib64/udev or /usr/lib64/udev:
>
> tmp/deploy/rpm/core2_64/pcmciautils-018-r1.0.core2_64.rpm
> tmp/deploy/rpm/core2_64/pulseaudio-server-8.0-r0.0.core2_64.rpm
> tmp/deploy/rpm/core2_64/alsa-utils-alsactl-1.1.1-r0.0.core2_64.rpm
> tmp/deploy/rpm/core2_64/mdadm-3.4-r0.0.core2_64.rpm
> tmp/deploy/rpm/core2_64/libinput-1.3.0-r0.0.core2_64.rpm
> tmp/deploy/rpm/core2_64/bluez5-5.40-r0.0.core2_64.rpm

Hi Ross,

I just found that when build with eudev, the files will be installed
to /lib64/udev, and when build with systemd, they will be inistalled
to /lib/udev, so I think that they are OK. They use
"pkg-config --variable=udevdir udev" to find udev dir, while systemd
is /lib/udev and eudev is /lib64/eudev.

The one which has problem is libinput which installs /usr/lib/udev or
/usr/lib64/udev, this in incorrect. Another problem is that systemd
doesn't install udev.pc.

I think that the fix for btrfs-tools is correct. I will send a V2 with
another 2 fixes.

// Robert


>
> I will fix all of them.
>
> // Robert
>
>>
>> Ross



More information about the Openembedded-core mailing list