diff mbox

[v3,1/2] librtas: new package

Message ID 671713efe39467f10b56db5074d472dc45ceeec9.1432015191.git.sam.bobroff@au1.ibm.com
State Accepted
Headers show

Commit Message

Sam Bobroff May 19, 2015, 5:59 a.m. UTC
Signed-off-by: Sam Bobroff <sam.bobroff@au1.ibm.com>
---
v2:

Remove redundant INSTALL_TARGET=yes.
Add patch description and patch signed-off-by.
Rename patch with correct prefix (0001-).

 package/Config.in                                  |    1 +
 ...0001-librtas-install-librtas.so.1-symlink.patch |   31 ++++++++++++++++++++
 package/librtas/Config.in                          |    9 ++++++
 package/librtas/librtas.mk                         |   26 ++++++++++++++++
 4 files changed, 67 insertions(+)
 create mode 100644 package/librtas/0001-librtas-install-librtas.so.1-symlink.patch
 create mode 100644 package/librtas/Config.in
 create mode 100644 package/librtas/librtas.mk

Comments

Romain Naour July 13, 2015, 3:32 p.m. UTC | #1
Hi Sam,

Le 19/05/2015 07:59, Sam Bobroff a écrit :
> Signed-off-by: Sam Bobroff <sam.bobroff@au1.ibm.com>
> ---
> v2:
> 
> Remove redundant INSTALL_TARGET=yes.
> Add patch description and patch signed-off-by.
> Rename patch with correct prefix (0001-).
> 
>  package/Config.in                                  |    1 +
>  ...0001-librtas-install-librtas.so.1-symlink.patch |   31 ++++++++++++++++++++
>  package/librtas/Config.in                          |    9 ++++++
>  package/librtas/librtas.mk                         |   26 ++++++++++++++++
>  4 files changed, 67 insertions(+)
>  create mode 100644 package/librtas/0001-librtas-install-librtas.so.1-symlink.patch
>  create mode 100644 package/librtas/Config.in
>  create mode 100644 package/librtas/librtas.mk
> 

[snip]

> diff --git a/package/librtas/Config.in b/package/librtas/Config.in
> new file mode 100644
> index 0000000..bf0a705
> --- /dev/null
> +++ b/package/librtas/Config.in
> @@ -0,0 +1,9 @@
> +config BR2_PACKAGE_LIBRTAS
> +	bool "librtas"
> +	depends on BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le

Have you tested this package with uClibc-ng or musl ?

I tried to build with an experimental musl 1.1.6 based toolchain but it won't
build (lot of build errors).

Then I tried to build with a uClibc-ng powerpc toolchain used in autobuilder [1]
and powerpc-utils fail to build when librtas support is enabled.

src/drmgr/common.c:17:22: fatal error: execinfo.h No such file or directory.

But it build fine with a glibc based toolchain (build tested with the CS powerpc
2011.03 toolchain). For now, it's ok if librtas can be available on glibc
toolchains.

Also, the package should depends on !BR2_STATIC_LIBS since librtas build
unconditionally a shared library.

Otherwise, you patch looks ok.

Best regards,
Romain Naour

[1] http://autobuild.buildroot.net/toolchains/configs/br-powerpc-e500mc-full.config

> +	help
> +	  The librtas package provides an interface for Run-Time Abstraction
> +	  Services (RTAS) calls on PAPR platforms. The libraries allow users to
> +	  examine and manipulate hardware, and parse RTAS events.
> +
> +	  http://librtas.sourceforge.net/
> diff --git a/package/librtas/librtas.mk b/package/librtas/librtas.mk
> new file mode 100644
> index 0000000..b081a91
> --- /dev/null
> +++ b/package/librtas/librtas.mk
> @@ -0,0 +1,26 @@
> +################################################################################
> +#
> +# librtas
> +#
> +################################################################################
> +
> +LIBRTAS_VERSION = 1.3.13
> +LIBRTAS_SITE = http://downloads.sourceforge.net/project/librtas
> +LIBRTAS_LICENSE = Common Public License Version 1.0
> +LIBRTAS_LICENSE_FILES = COPYRIGHT
> +LIBRTAS_INSTALL_STAGING = YES
> +
> +define LIBRTAS_BUILD_CMDS
> +	$(MAKE) -C $(@D) CC="$(TARGET_CC)" LD="$(TARGET_LD)"
> +endef
> +
> +define LIBRTAS_INSTALL_STAGING_CMDS
> +	$(MAKE) -C $(@D) DESTDIR=$(STAGING_DIR) install
> +endef
> +
> +define LIBRTAS_INSTALL_TARGET_CMDS
> +	$(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) install
> +endef
> +
> +
> +$(eval $(generic-package))
>
Romain Naour July 13, 2015, 3:38 p.m. UTC | #2
Hi Sam,

Le 13/07/2015 17:32, Romain Naour a écrit :
> Hi Sam,
> 
> Le 19/05/2015 07:59, Sam Bobroff a écrit :
>> Signed-off-by: Sam Bobroff <sam.bobroff@au1.ibm.com>
>> ---
>> v2:
>>
>> Remove redundant INSTALL_TARGET=yes.
>> Add patch description and patch signed-off-by.
>> Rename patch with correct prefix (0001-).
>>
>>  package/Config.in                                  |    1 +
>>  ...0001-librtas-install-librtas.so.1-symlink.patch |   31 ++++++++++++++++++++
>>  package/librtas/Config.in                          |    9 ++++++
>>  package/librtas/librtas.mk                         |   26 ++++++++++++++++
>>  4 files changed, 67 insertions(+)
>>  create mode 100644 package/librtas/0001-librtas-install-librtas.so.1-symlink.patch
>>  create mode 100644 package/librtas/Config.in
>>  create mode 100644 package/librtas/librtas.mk
>>
> 
> [snip]
> 
>> diff --git a/package/librtas/Config.in b/package/librtas/Config.in
>> new file mode 100644
>> index 0000000..bf0a705
>> --- /dev/null
>> +++ b/package/librtas/Config.in
>> @@ -0,0 +1,9 @@
>> +config BR2_PACKAGE_LIBRTAS
>> +	bool "librtas"
>> +	depends on BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le
> 
> Have you tested this package with uClibc-ng or musl ?
> 
> I tried to build with an experimental musl 1.1.6 based toolchain but it won't
> build (lot of build errors).
> 
> Then I tried to build with a uClibc-ng powerpc toolchain used in autobuilder [1]
> and powerpc-utils fail to build when librtas support is enabled.
> 
> src/drmgr/common.c:17:22: fatal error: execinfo.h No such file or directory.
> 
> But it build fine with a glibc based toolchain (build tested with the CS powerpc
> 2011.03 toolchain). For now, it's ok if librtas can be available on glibc
> toolchains.
> 
> Also, the package should depends on !BR2_STATIC_LIBS since librtas build
> unconditionally a shared library.
> 
> Otherwise, you patch looks ok.
> 
> Best regards,
> Romain Naour
> 
> [1] http://autobuild.buildroot.net/toolchains/configs/br-powerpc-e500mc-full.config
> 
>> +	help
>> +	  The librtas package provides an interface for Run-Time Abstraction
>> +	  Services (RTAS) calls on PAPR platforms. The libraries allow users to
>> +	  examine and manipulate hardware, and parse RTAS events.
>> +
>> +	  http://librtas.sourceforge.net/
>> diff --git a/package/librtas/librtas.mk b/package/librtas/librtas.mk
>> new file mode 100644
>> index 0000000..b081a91
>> --- /dev/null
>> +++ b/package/librtas/librtas.mk
>> @@ -0,0 +1,26 @@
>> +################################################################################
>> +#
>> +# librtas
>> +#
>> +################################################################################
>> +
>> +LIBRTAS_VERSION = 1.3.13
>> +LIBRTAS_SITE = http://downloads.sourceforge.net/project/librtas
>> +LIBRTAS_LICENSE = Common Public License Version 1.0
>> +LIBRTAS_LICENSE_FILES = COPYRIGHT
>> +LIBRTAS_INSTALL_STAGING = YES
>> +
>> +define LIBRTAS_BUILD_CMDS
>> +	$(MAKE) -C $(@D) CC="$(TARGET_CC)" LD="$(TARGET_LD)"
>> +endef
>> +
>> +define LIBRTAS_INSTALL_STAGING_CMDS
>> +	$(MAKE) -C $(@D) DESTDIR=$(STAGING_DIR) install
>> +endef
>> +
>> +define LIBRTAS_INSTALL_TARGET_CMDS
>> +	$(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) install
>> +endef
>> +
>> +

Extra new line.

Otherwise, with my previous comment taken into account:

Reviewed-by: Romain Naour <romain.naour@openwide.fr>

Best regards,
Romain Naour


>> +$(eval $(generic-package))
>>
> 
> _______________________________________________
> buildroot mailing list
> buildroot@busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
>
Thomas Petazzoni July 13, 2015, 4:37 p.m. UTC | #3
Dear Sam Bobroff,

On Tue, 19 May 2015 15:59:55 +1000, Sam Bobroff wrote:
> Signed-off-by: Sam Bobroff <sam.bobroff@au1.ibm.com>
> ---
> v2:

Applied after the following changes:

    [Thomas:
      - make the package depend on glibc, since it needs execinfo.h
      - use TARGET_CONFIGURE_OPTS instead of defining manually CC and LD
      - add hash file
      - remove useless empty newline.
      Thanks to Romain Naour for the review!]

Thanks for the contribution!

Thomas
diff mbox

Patch

diff --git a/package/Config.in b/package/Config.in
index af4d2b7..51de1c0 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -832,6 +832,7 @@  menu "Hardware handling"
 	source "package/libphidget/Config.in"
 	source "package/libqmi/Config.in"
 	source "package/libraw1394/Config.in"
+	source "package/librtas/Config.in"
 	source "package/librtlsdr/Config.in"
 	source "package/libserial/Config.in"
 	source "package/libserialport/Config.in"
diff --git a/package/librtas/0001-librtas-install-librtas.so.1-symlink.patch b/package/librtas/0001-librtas-install-librtas.so.1-symlink.patch
new file mode 100644
index 0000000..2150c3f
--- /dev/null
+++ b/package/librtas/0001-librtas-install-librtas.so.1-symlink.patch
@@ -0,0 +1,31 @@ 
+Add a line to the librtas Makefile to create librtas.so.1 when
+performing "make install".
+
+Without this patch programs linked with librtas will fail at run time:
+
+error while loading shared libraries: librtas.so.1: cannot open shared
+object file: No such file or directory
+
+A patch has been submitted upstream so it is likely that this patch
+can be dropped after the next release of librtas.
+
+Signed-off-by: Sam Bobroff <sam.bobroff@au1.ibm.com>
+---
+ librtas_src/Makefile |    1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/librtas_src/Makefile b/librtas_src/Makefile
+index 3a10222..deba29d 100644
+--- a/librtas_src/Makefile
++++ b/librtas_src/Makefile
+@@ -33,6 +33,7 @@ install:
+ 	@$(call install_lib,$(LIBRTAS),$(DESTDIR))
+ 	@$(call install_inc,$(HEADERS),$(DESTDIR))
+ 	@ln -sf $(LIBRTAS) $(DESTDIR)/$(LIB_DIR)$(call is_lib64,$(LIBRTAS))/$(LIBRTAS_SONAME)
++	@ln -sf $(LIBRTAS) $(DESTDIR)/$(LIB_DIR)$(call is_lib64,$(LIBRTAS))/$(LIBRTAS_SONAME).1
+ 
+ uninstall:
+ 	@$(call uninstall_lib,$(LIBRTAS),$(DESTDIR))
+-- 
+1.7.10.4
+
diff --git a/package/librtas/Config.in b/package/librtas/Config.in
new file mode 100644
index 0000000..bf0a705
--- /dev/null
+++ b/package/librtas/Config.in
@@ -0,0 +1,9 @@ 
+config BR2_PACKAGE_LIBRTAS
+	bool "librtas"
+	depends on BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le
+	help
+	  The librtas package provides an interface for Run-Time Abstraction
+	  Services (RTAS) calls on PAPR platforms. The libraries allow users to
+	  examine and manipulate hardware, and parse RTAS events.
+
+	  http://librtas.sourceforge.net/
diff --git a/package/librtas/librtas.mk b/package/librtas/librtas.mk
new file mode 100644
index 0000000..b081a91
--- /dev/null
+++ b/package/librtas/librtas.mk
@@ -0,0 +1,26 @@ 
+################################################################################
+#
+# librtas
+#
+################################################################################
+
+LIBRTAS_VERSION = 1.3.13
+LIBRTAS_SITE = http://downloads.sourceforge.net/project/librtas
+LIBRTAS_LICENSE = Common Public License Version 1.0
+LIBRTAS_LICENSE_FILES = COPYRIGHT
+LIBRTAS_INSTALL_STAGING = YES
+
+define LIBRTAS_BUILD_CMDS
+	$(MAKE) -C $(@D) CC="$(TARGET_CC)" LD="$(TARGET_LD)"
+endef
+
+define LIBRTAS_INSTALL_STAGING_CMDS
+	$(MAKE) -C $(@D) DESTDIR=$(STAGING_DIR) install
+endef
+
+define LIBRTAS_INSTALL_TARGET_CMDS
+	$(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) install
+endef
+
+
+$(eval $(generic-package))