diff mbox

[2/3] rpi-userland: new package

Message ID 0e55a309b9f4a9b8ee175d301d40e7574e9227b0.1357394983.git.maxime.hadjinlian@gmail.com
State Superseded
Headers show

Commit Message

Maxime Hadjinlian Jan. 5, 2013, 2:10 p.m. UTC
Introducing a package to build the userland part of the Raspberry,
needed by anyone who would want to build a rootfs for a RaspberryPi.

Signed-off-by: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
---
 package/Config.in                    |    1 +
 package/rpi-userland/Config.in       |   12 ++++++++++++
 package/rpi-userland/rpi-userland.mk |   25 +++++++++++++++++++++++++
 3 files changed, 38 insertions(+)
 create mode 100644 package/rpi-userland/Config.in
 create mode 100644 package/rpi-userland/rpi-userland.mk

Comments

Samuel Martin Jan. 5, 2013, 3:18 p.m. UTC | #1
Hi Maxime,

2013/1/5 Maxime Hadjinlian <maxime.hadjinlian@gmail.com>:
> Introducing a package to build the userland part of the Raspberry,
> needed by anyone who would want to build a rootfs for a RaspberryPi.
>
> Signed-off-by: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
> ---
>  package/Config.in                    |    1 +
>  package/rpi-userland/Config.in       |   12 ++++++++++++
>  package/rpi-userland/rpi-userland.mk |   25 +++++++++++++++++++++++++
>  3 files changed, 38 insertions(+)
>  create mode 100644 package/rpi-userland/Config.in
>  create mode 100644 package/rpi-userland/rpi-userland.mk
>
> diff --git a/package/Config.in b/package/Config.in
> index a3530d7..604ed1b 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -579,6 +579,7 @@ source "package/collectd/Config.in"
>  source "package/empty/Config.in"
>  source "package/googlefontdirectory/Config.in"
>  source "package/mobile-broadband-provider-info/Config.in"
> +source "package/rpi-userland/Config.in"
>  source "package/shared-mime-info/Config.in"
>  source "package/snowball-init/Config.in"
>  source "package/sound-theme-borealis/Config.in"
> diff --git a/package/rpi-userland/Config.in b/package/rpi-userland/Config.in
> new file mode 100644
> index 0000000..3d4585f
> --- /dev/null
> +++ b/package/rpi-userland/Config.in
> @@ -0,0 +1,12 @@
> +config BR2_PACKAGE_RPI_USERLAND
> +       bool "rpi-userland"
> +       select BR2_PACKAGE_LIBCOFI
> +       help
> +         Raspberry Pi Userland contains the necessary library to use the
> +         VideoCore driver.
> +
> +         Includes source for the ARM side code to interface to:
> +         EGL, mmal, GLESv2, vcos, openmaxil, vchiq_arm, bcm_host, WFC, OpenVG.
> +
> +         https://github.com/raspberrypi/userland/
> +
> diff --git a/package/rpi-userland/rpi-userland.mk b/package/rpi-userland/rpi-userland.mk
> new file mode 100644
> index 0000000..5bae06d
> --- /dev/null
> +++ b/package/rpi-userland/rpi-userland.mk
> @@ -0,0 +1,25 @@
> +#############################################################
> +#
> +# rpi-userland
> +#
> +#############################################################
> +RPI_USERLAND_VERSION = 9852ce28826889e50c4d6786b942f51bccccac54
> +RPI_USERLAND_SITE = http://github.com/raspberrypi/userland/tarball/master
> +RPI_USERLAND_LICENSE = FOSS
> +RPI_USERLAND_LICENSE_FILE = LICENCE
> +RPI_USERLAND_INSTALL_STAGING = YES
> +
> +define RPI_USERLAND_POST_TARGET_CLEANUP
> +    rm -Rf $(TARGET_DIR)/opt/vc/include
> +    rm -Rf $(TARGET_DIR)/opt/vc/share
> +    rm -Rf $(TARGET_DIR)/opt/vc/src
> +    rm -f  $(TARGET_DIR)/etc/init.d/vcfiled
> +    rm -f  $(TARGET_DIR)/opt/vc/lib/*.a
> +    rmdir -p --ignore-fail-on-non-empty $(TARGET_DIR)/etc/init.d || true
Since you use the --ignore-fail-on-non-empty option, i think "|| true"
is useless.

> +    mv $(TARGET_DIR)/opt/vc/lib/* $(TARGET_DIR)/usr/lib/
> +    rm -Rf $(TARGET_DIR)/opt/vc/
> +endef

Also, since you set RPI_USERLAND_INSTALL_STAGING = YES, don't you need
to do some cleanup/fixup hook for the staging area as well?

> +
> +RPI_USERLAND_POST_INSTALL_TARGET_HOOKS += RPI_USERLAND_POST_TARGET_CLEANUP

BTW, it is possible to avoid this cleanup hook  (or at least reduce it
to the example source) with this patch:
http://code.bulix.org/3fo6ye-82780
and by adding "-DVMCS_INSTALL_PREFIX=/usr" to the
RPI_USERLAND_CONF_OPT variable.

> +
> +$(eval $(cmake-package))
> --
> 1.7.10.4

Regards,
Yann E. MORIN Jan. 5, 2013, 3:23 p.m. UTC | #2
Maxime, All,

On Saturday 05 January 2013 Maxime Hadjinlian wrote:
> Introducing a package to build the userland part of the Raspberry,
> needed by anyone who would want to build a rootfs for a RaspberryPi.
> 
> Signed-off-by: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
[--SNIP--]
> diff --git a/package/rpi-userland/Config.in b/package/rpi-userland/Config.in
> new file mode 100644
> index 0000000..3d4585f
> --- /dev/null
> +++ b/package/rpi-userland/Config.in
> @@ -0,0 +1,12 @@
> +config BR2_PACKAGE_RPI_USERLAND
> +	bool "rpi-userland"
> +	select BR2_PACKAGE_LIBCOFI

Do not forget to add this dependency in the .mk (see below)

> +	help
> +	  Raspberry Pi Userland contains the necessary library to use the
> +	  VideoCore driver.

Then, what about calling this package something like 'videocore'.
I guess there areaother boards out there that use this GPU.

[--SNIP--]
> diff --git a/package/rpi-userland/rpi-userland.mk b/package/rpi-userland/rpi-userland.mk
> new file mode 100644
> index 0000000..5bae06d
> --- /dev/null
> +++ b/package/rpi-userland/rpi-userland.mk
> @@ -0,0 +1,25 @@
> +#############################################################
> +#
> +# rpi-userland
> +#
> +#############################################################
> +RPI_USERLAND_VERSION = 9852ce28826889e50c4d6786b942f51bccccac54
> +RPI_USERLAND_SITE = http://github.com/raspberrypi/userland/tarball/master
> +RPI_USERLAND_LICENSE = FOSS
> +RPI_USERLAND_LICENSE_FILE = LICENCE
> +RPI_USERLAND_INSTALL_STAGING = YES

RPI_USERLAND_DPENDENCIES = libcofi

Although, is libcofi really required? I just greped for 'cofi', and found
no occurence, so I'd say it is not.

> +define RPI_USERLAND_POST_TARGET_CLEANUP
> +    rm -Rf $(TARGET_DIR)/opt/vc/include
> +    rm -Rf $(TARGET_DIR)/opt/vc/share
> +    rm -Rf $(TARGET_DIR)/opt/vc/src
> +    rm -f  $(TARGET_DIR)/etc/init.d/vcfiled
> +    rm -f  $(TARGET_DIR)/opt/vc/lib/*.a
> +    rmdir -p --ignore-fail-on-non-empty $(TARGET_DIR)/etc/init.d || true
> +    mv $(TARGET_DIR)/opt/vc/lib/* $(TARGET_DIR)/usr/lib/
> +    rm -Rf $(TARGET_DIR)/opt/vc/
> +endef
> +
> +RPI_USERLAND_POST_INSTALL_TARGET_HOOKS += RPI_USERLAND_POST_TARGET_CLEANUP
> +
> +$(eval $(cmake-package))

Untested so far, will do shortly.

Regards,
Yann E. MORIN.
Alex Bradbury Jan. 5, 2013, 3:41 p.m. UTC | #3
On 5 January 2013 14:10, Maxime Hadjinlian <maxime.hadjinlian@gmail.com> wrote:
> Introducing a package to build the userland part of the Raspberry,
> needed by anyone who would want to build a rootfs for a RaspberryPi.
>
> Signed-off-by: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
> ---
>  package/Config.in                    |    1 +
>  package/rpi-userland/Config.in       |   12 ++++++++++++
>  package/rpi-userland/rpi-userland.mk |   25 +++++++++++++++++++++++++
>  3 files changed, 38 insertions(+)
>  create mode 100644 package/rpi-userland/Config.in
>  create mode 100644 package/rpi-userland/rpi-userland.mk
>
> diff --git a/package/Config.in b/package/Config.in
> index a3530d7..604ed1b 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -579,6 +579,7 @@ source "package/collectd/Config.in"
>  source "package/empty/Config.in"
>  source "package/googlefontdirectory/Config.in"
>  source "package/mobile-broadband-provider-info/Config.in"
> +source "package/rpi-userland/Config.in"
>  source "package/shared-mime-info/Config.in"
>  source "package/snowball-init/Config.in"
>  source "package/sound-theme-borealis/Config.in"
> diff --git a/package/rpi-userland/Config.in b/package/rpi-userland/Config.in
> new file mode 100644
> index 0000000..3d4585f
> --- /dev/null
> +++ b/package/rpi-userland/Config.in
> @@ -0,0 +1,12 @@
> +config BR2_PACKAGE_RPI_USERLAND
> +       bool "rpi-userland"
> +       select BR2_PACKAGE_LIBCOFI

Libcofi is not required, and honestly using it via LD_PRELOAD is too
ugly to pull in to buildroot I would think. It would be better
integrated as a glibc patch, which is how it should eventually be
included in Raspbian.

> +#
> +#############################################################
> +RPI_USERLAND_VERSION = 9852ce28826889e50c4d6786b942f51bccccac54
> +RPI_USERLAND_SITE = http://github.com/raspberrypi/userland/tarball/master
> +RPI_USERLAND_LICENSE = FOSS
> +RPI_USERLAND_LICENSE_FILE = LICENCE

The license is standard 3-clause BSD.

Alex
Maxime Hadjinlian Jan. 5, 2013, 4:23 p.m. UTC | #4
On Sat, Jan 5, 2013 at 4:18 PM, Samuel Martin <s.martin49@gmail.com> wrote:
> Hi Maxime,
Hi Samuel,
>
> 2013/1/5 Maxime Hadjinlian <maxime.hadjinlian@gmail.com>:
>> Introducing a package to build the userland part of the Raspberry,
>> needed by anyone who would want to build a rootfs for a RaspberryPi.
>>
>> Signed-off-by: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
>> ---
>>  package/Config.in                    |    1 +
>>  package/rpi-userland/Config.in       |   12 ++++++++++++
>>  package/rpi-userland/rpi-userland.mk |   25 +++++++++++++++++++++++++
>>  3 files changed, 38 insertions(+)
>>  create mode 100644 package/rpi-userland/Config.in
>>  create mode 100644 package/rpi-userland/rpi-userland.mk
>>
>> diff --git a/package/Config.in b/package/Config.in
>> index a3530d7..604ed1b 100644
>> --- a/package/Config.in
>> +++ b/package/Config.in
>> @@ -579,6 +579,7 @@ source "package/collectd/Config.in"
>>  source "package/empty/Config.in"
>>  source "package/googlefontdirectory/Config.in"
>>  source "package/mobile-broadband-provider-info/Config.in"
>> +source "package/rpi-userland/Config.in"
>>  source "package/shared-mime-info/Config.in"
>>  source "package/snowball-init/Config.in"
>>  source "package/sound-theme-borealis/Config.in"
>> diff --git a/package/rpi-userland/Config.in b/package/rpi-userland/Config.in
>> new file mode 100644
>> index 0000000..3d4585f
>> --- /dev/null
>> +++ b/package/rpi-userland/Config.in
>> @@ -0,0 +1,12 @@
>> +config BR2_PACKAGE_RPI_USERLAND
>> +       bool "rpi-userland"
>> +       select BR2_PACKAGE_LIBCOFI
>> +       help
>> +         Raspberry Pi Userland contains the necessary library to use the
>> +         VideoCore driver.
>> +
>> +         Includes source for the ARM side code to interface to:
>> +         EGL, mmal, GLESv2, vcos, openmaxil, vchiq_arm, bcm_host, WFC, OpenVG.
>> +
>> +         https://github.com/raspberrypi/userland/
>> +
>> diff --git a/package/rpi-userland/rpi-userland.mk b/package/rpi-userland/rpi-userland.mk
>> new file mode 100644
>> index 0000000..5bae06d
>> --- /dev/null
>> +++ b/package/rpi-userland/rpi-userland.mk
>> @@ -0,0 +1,25 @@
>> +#############################################################
>> +#
>> +# rpi-userland
>> +#
>> +#############################################################
>> +RPI_USERLAND_VERSION = 9852ce28826889e50c4d6786b942f51bccccac54
>> +RPI_USERLAND_SITE = http://github.com/raspberrypi/userland/tarball/master
>> +RPI_USERLAND_LICENSE = FOSS
>> +RPI_USERLAND_LICENSE_FILE = LICENCE
>> +RPI_USERLAND_INSTALL_STAGING = YES
>> +
>> +define RPI_USERLAND_POST_TARGET_CLEANUP
>> +    rm -Rf $(TARGET_DIR)/opt/vc/include
>> +    rm -Rf $(TARGET_DIR)/opt/vc/share
>> +    rm -Rf $(TARGET_DIR)/opt/vc/src
>> +    rm -f  $(TARGET_DIR)/etc/init.d/vcfiled
>> +    rm -f  $(TARGET_DIR)/opt/vc/lib/*.a
>> +    rmdir -p --ignore-fail-on-non-empty $(TARGET_DIR)/etc/init.d || true
> Since you use the --ignore-fail-on-non-empty option, i think "|| true"
> is useless.
You're totally right.
>
>> +    mv $(TARGET_DIR)/opt/vc/lib/* $(TARGET_DIR)/usr/lib/
>> +    rm -Rf $(TARGET_DIR)/opt/vc/
>> +endef
>
> Also, since you set RPI_USERLAND_INSTALL_STAGING = YES, don't you need
> to do some cleanup/fixup hook for the staging area as well?
Is it really useful to cleanup the staging area ?
>
>> +
>> +RPI_USERLAND_POST_INSTALL_TARGET_HOOKS += RPI_USERLAND_POST_TARGET_CLEANUP
>
> BTW, it is possible to avoid this cleanup hook  (or at least reduce it
> to the example source) with this patch:
> http://code.bulix.org/3fo6ye-82780
> and by adding "-DVMCS_INSTALL_PREFIX=/usr" to the
> RPI_USERLAND_CONF_OPT variable.
I think part of the cleanup is useful so we don't create a rootfs that
comes with example sources code and useless files for runtime.
In the other part, it's perfectly possible to add this option so it
would install itself in the right place.
>
>> +
>> +$(eval $(cmake-package))
>> --
>> 1.7.10.4
>
> Regards,
>
> --
> Samuel
Maxime Hadjinlian Jan. 5, 2013, 4:27 p.m. UTC | #5
On Sat, Jan 5, 2013 at 4:41 PM, Alex Bradbury <asb@asbradbury.org> wrote:
> On 5 January 2013 14:10, Maxime Hadjinlian <maxime.hadjinlian@gmail.com> wrote:
>> Introducing a package to build the userland part of the Raspberry,
>> needed by anyone who would want to build a rootfs for a RaspberryPi.
>>
>> Signed-off-by: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
>> ---
>>  package/Config.in                    |    1 +
>>  package/rpi-userland/Config.in       |   12 ++++++++++++
>>  package/rpi-userland/rpi-userland.mk |   25 +++++++++++++++++++++++++
>>  3 files changed, 38 insertions(+)
>>  create mode 100644 package/rpi-userland/Config.in
>>  create mode 100644 package/rpi-userland/rpi-userland.mk
>>
>> diff --git a/package/Config.in b/package/Config.in
>> index a3530d7..604ed1b 100644
>> --- a/package/Config.in
>> +++ b/package/Config.in
>> @@ -579,6 +579,7 @@ source "package/collectd/Config.in"
>>  source "package/empty/Config.in"
>>  source "package/googlefontdirectory/Config.in"
>>  source "package/mobile-broadband-provider-info/Config.in"
>> +source "package/rpi-userland/Config.in"
>>  source "package/shared-mime-info/Config.in"
>>  source "package/snowball-init/Config.in"
>>  source "package/sound-theme-borealis/Config.in"
>> diff --git a/package/rpi-userland/Config.in b/package/rpi-userland/Config.in
>> new file mode 100644
>> index 0000000..3d4585f
>> --- /dev/null
>> +++ b/package/rpi-userland/Config.in
>> @@ -0,0 +1,12 @@
>> +config BR2_PACKAGE_RPI_USERLAND
>> +       bool "rpi-userland"
>> +       select BR2_PACKAGE_LIBCOFI
>
> Libcofi is not required, and honestly using it via LD_PRELOAD is too
> ugly to pull in to buildroot I would think. It would be better
> integrated as a glibc patch, which is how it should eventually be
> included in Raspbian.
It's true that libcofi is not required, but I didn't want to add it an
independent package, although maybe that would be the best solution.
Also, as you said, it's really ugly but as far as I can tell, really
useful for a RaspberryPi.
>
>> +#
>> +#############################################################
>> +RPI_USERLAND_VERSION = 9852ce28826889e50c4d6786b942f51bccccac54
>> +RPI_USERLAND_SITE = http://github.com/raspberrypi/userland/tarball/master
>> +RPI_USERLAND_LICENSE = FOSS
>> +RPI_USERLAND_LICENSE_FILE = LICENCE
>
> The license is standard 3-clause BSD.
Thanks, I'll fix it
>
> Alex
Samuel Martin Jan. 5, 2013, 4:33 p.m. UTC | #6
Hi Maxime,

2013/1/5 Maxime Hadjinlian <maxime.hadjinlian@gmail.com>:
> On Sat, Jan 5, 2013 at 4:18 PM, Samuel Martin <s.martin49@gmail.com> wrote:
>> Hi Maxime,
> Hi Samuel,
>>
>> 2013/1/5 Maxime Hadjinlian <maxime.hadjinlian@gmail.com>:
[snip]
>>> +
>>> +define RPI_USERLAND_POST_TARGET_CLEANUP
>>> +    rm -Rf $(TARGET_DIR)/opt/vc/include
>>> +    rm -Rf $(TARGET_DIR)/opt/vc/share
>>> +    rm -Rf $(TARGET_DIR)/opt/vc/src
>>> +    rm -f  $(TARGET_DIR)/etc/init.d/vcfiled
>>> +    rm -f  $(TARGET_DIR)/opt/vc/lib/*.a
>>> +    rmdir -p --ignore-fail-on-non-empty $(TARGET_DIR)/etc/init.d || true
>> Since you use the --ignore-fail-on-non-empty option, i think "|| true"
>> is useless.
> You're totally right.
>>
>>> +    mv $(TARGET_DIR)/opt/vc/lib/* $(TARGET_DIR)/usr/lib/
>>> +    rm -Rf $(TARGET_DIR)/opt/vc/
>>> +endef
>>
>> Also, since you set RPI_USERLAND_INSTALL_STAGING = YES, don't you need
>> to do some cleanup/fixup hook for the staging area as well?
> Is it really useful to cleanup the staging area ?
Cleanup, not necessary...
But at least, fix the headers, libraries (static an dynamic) and
perhaps the data install locations if you keep /opt/vc as install
prefix, otherwise you will/may have some trouble to link against it...

>>
>>> +
>>> +RPI_USERLAND_POST_INSTALL_TARGET_HOOKS += RPI_USERLAND_POST_TARGET_CLEANUP
>>
>> BTW, it is possible to avoid this cleanup hook  (or at least reduce it
>> to the example source) with this patch:
>> http://code.bulix.org/3fo6ye-82780
>> and by adding "-DVMCS_INSTALL_PREFIX=/usr" to the
>> RPI_USERLAND_CONF_OPT variable.
> I think part of the cleanup is useful so we don't create a rootfs that
> comes with example sources code and useless files for runtime.
> In the other part, it's perfectly possible to add this option so it
> would install itself in the right place.
I agree.


Regards,
Thomas Petazzoni Jan. 5, 2013, 5:39 p.m. UTC | #7
Dear Samuel Martin,

On Sat, 5 Jan 2013 16:18:34 +0100, Samuel Martin wrote:
> > +RPI_USERLAND_POST_INSTALL_TARGET_HOOKS += RPI_USERLAND_POST_TARGET_CLEANUP
> 
> BTW, it is possible to avoid this cleanup hook  (or at least reduce it
> to the example source) with this patch:
> http://code.bulix.org/3fo6ye-82780
> and by adding "-DVMCS_INSTALL_PREFIX=/usr" to the
> RPI_USERLAND_CONF_OPT variable.

This looks good. I would really prefer to see those libs and headers
installed in /usr, like all other libs and headers.

Maxime, can you integrate Samuel's patch?

Thomas
Maxime Hadjinlian Jan. 5, 2013, 8:12 p.m. UTC | #8
On Sat, Jan 5, 2013 at 6:39 PM, Thomas Petazzoni
<thomas.petazzoni@free-electrons.com> wrote:
> Dear Samuel Martin,
>
> On Sat, 5 Jan 2013 16:18:34 +0100, Samuel Martin wrote:
>> > +RPI_USERLAND_POST_INSTALL_TARGET_HOOKS += RPI_USERLAND_POST_TARGET_CLEANUP
>>
>> BTW, it is possible to avoid this cleanup hook  (or at least reduce it
>> to the example source) with this patch:
>> http://code.bulix.org/3fo6ye-82780
>> and by adding "-DVMCS_INSTALL_PREFIX=/usr" to the
>> RPI_USERLAND_CONF_OPT variable.
>
> This looks good. I would really prefer to see those libs and headers
> installed in /usr, like all other libs and headers.
>
> Maxime, can you integrate Samuel's patch?
Yep, I haven't had time to test it but I will do and send my v2 when it's done.
>
> Thomas
> --
> Thomas Petazzoni, Free Electrons
> Kernel, drivers, real-time and embedded Linux
> development, consulting, training and support.
> http://free-electrons.com
Samuel Martin Jan. 5, 2013, 8:21 p.m. UTC | #9
Maxime,

2013/1/5 Maxime Hadjinlian <maxime.hadjinlian@gmail.com>:
> On Sat, Jan 5, 2013 at 6:39 PM, Thomas Petazzoni
> <thomas.petazzoni@free-electrons.com> wrote:
>> Dear Samuel Martin,
>>
>> On Sat, 5 Jan 2013 16:18:34 +0100, Samuel Martin wrote:
>>> > +RPI_USERLAND_POST_INSTALL_TARGET_HOOKS += RPI_USERLAND_POST_TARGET_CLEANUP
>>>
>>> BTW, it is possible to avoid this cleanup hook  (or at least reduce it
>>> to the example source) with this patch:
>>> http://code.bulix.org/3fo6ye-82780
>>> and by adding "-DVMCS_INSTALL_PREFIX=/usr" to the
>>> RPI_USERLAND_CONF_OPT variable.
>>
>> This looks good. I would really prefer to see those libs and headers
>> installed in /usr, like all other libs and headers.
>>
>> Maxime, can you integrate Samuel's patch?
> Yep, I haven't had time to test it but I will do and send my v2 when it's done.

BTW, you can also try to just remove the "FORCE" in the relevant
"set(VMCS_INSTALL_PREFIX ...)" line; it should have the same effect.


Regards,
Floris Bos Jan. 6, 2013, 2:26 a.m. UTC | #10
On 01/05/2013 03:10 PM, Maxime Hadjinlian wrote:
> Introducing a package to build the userland part of the Raspberry,
> needed by anyone who would want to build a rootfs for a RaspberryPi.

rpi-userland does not build with the default buildroot uClibc toolchain.

==
[ 25%] 
/hdd/max/dev/tmp/buildroot/output/build/rpi-userland-9852ce28826889e50c4d6786b942f51bccccac54/interface/vcos/glibc/vcos_backtrace.c:30:22: 
fatal error: execinfo.h: No such file or directory
==

Ran into the same issue a while back.
You can borrow my patch: 
https://github.com/maxnet/userland/commit/93ae1bcd8005216baf7361ba860b53a2cf2e0401



Yours sincerely,

Floris Bos
Maxime Hadjinlian Jan. 6, 2013, 10:28 a.m. UTC | #11
On Sun, Jan 6, 2013 at 3:26 AM, Floris Bos <bos@je-eigen-domein.nl> wrote:
> On 01/05/2013 03:10 PM, Maxime Hadjinlian wrote:
>>
>> Introducing a package to build the userland part of the Raspberry,
>> needed by anyone who would want to build a rootfs for a RaspberryPi.
>
>
> rpi-userland does not build with the default buildroot uClibc toolchain.
>
> ==
> [ 25%]
> /hdd/max/dev/tmp/buildroot/output/build/rpi-userland-9852ce28826889e50c4d6786b942f51bccccac54/interface/vcos/glibc/vcos_backtrace.c:30:22:
> fatal error: execinfo.h: No such file or directory
> ==
>
> Ran into the same issue a while back.
> You can borrow my patch:
> https://github.com/maxnet/userland/commit/93ae1bcd8005216baf7361ba860b53a2cf2e0401
>
Thanks, I builded using eglibc at the moment.
Could you push your patch upstream so we won't need to have it ?
>
>
> Yours sincerely,
>
> Floris Bos
>
> _______________________________________________
> buildroot mailing list
> buildroot@busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
Floris Bos Jan. 6, 2013, 1:50 p.m. UTC | #12
On 01/06/2013 11:28 AM, Maxime Hadjinlian wrote:
> >rpi-userland does not build with the default buildroot uClibc toolchain.
> Thanks, I builded using eglibc at the moment.
> Could you push your patch upstream so we won't need to have it ?

Send a pull request to upstream a month ago, but did not receive any 
response.

https://github.com/raspberrypi/userland/pull/7


Yours sincerely,

Floris Bos
diff mbox

Patch

diff --git a/package/Config.in b/package/Config.in
index a3530d7..604ed1b 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -579,6 +579,7 @@  source "package/collectd/Config.in"
 source "package/empty/Config.in"
 source "package/googlefontdirectory/Config.in"
 source "package/mobile-broadband-provider-info/Config.in"
+source "package/rpi-userland/Config.in"
 source "package/shared-mime-info/Config.in"
 source "package/snowball-init/Config.in"
 source "package/sound-theme-borealis/Config.in"
diff --git a/package/rpi-userland/Config.in b/package/rpi-userland/Config.in
new file mode 100644
index 0000000..3d4585f
--- /dev/null
+++ b/package/rpi-userland/Config.in
@@ -0,0 +1,12 @@ 
+config BR2_PACKAGE_RPI_USERLAND
+	bool "rpi-userland"
+	select BR2_PACKAGE_LIBCOFI
+	help
+	  Raspberry Pi Userland contains the necessary library to use the
+	  VideoCore driver.
+
+	  Includes source for the ARM side code to interface to: 
+	  EGL, mmal, GLESv2, vcos, openmaxil, vchiq_arm, bcm_host, WFC, OpenVG.
+
+	  https://github.com/raspberrypi/userland/
+
diff --git a/package/rpi-userland/rpi-userland.mk b/package/rpi-userland/rpi-userland.mk
new file mode 100644
index 0000000..5bae06d
--- /dev/null
+++ b/package/rpi-userland/rpi-userland.mk
@@ -0,0 +1,25 @@ 
+#############################################################
+#
+# rpi-userland
+#
+#############################################################
+RPI_USERLAND_VERSION = 9852ce28826889e50c4d6786b942f51bccccac54
+RPI_USERLAND_SITE = http://github.com/raspberrypi/userland/tarball/master
+RPI_USERLAND_LICENSE = FOSS
+RPI_USERLAND_LICENSE_FILE = LICENCE
+RPI_USERLAND_INSTALL_STAGING = YES
+
+define RPI_USERLAND_POST_TARGET_CLEANUP
+    rm -Rf $(TARGET_DIR)/opt/vc/include
+    rm -Rf $(TARGET_DIR)/opt/vc/share
+    rm -Rf $(TARGET_DIR)/opt/vc/src
+    rm -f  $(TARGET_DIR)/etc/init.d/vcfiled
+    rm -f  $(TARGET_DIR)/opt/vc/lib/*.a
+    rmdir -p --ignore-fail-on-non-empty $(TARGET_DIR)/etc/init.d || true
+    mv $(TARGET_DIR)/opt/vc/lib/* $(TARGET_DIR)/usr/lib/
+    rm -Rf $(TARGET_DIR)/opt/vc/
+endef
+
+RPI_USERLAND_POST_INSTALL_TARGET_HOOKS += RPI_USERLAND_POST_TARGET_CLEANUP
+
+$(eval $(cmake-package))