[v6,1/2] libkrb5: New package

Message ID 1517937729-12832-1-git-send-email-nerv@dawncrow.de
State Changes Requested
Headers show
Series
  • [v6,1/2] libkrb5: New package
Related show

Commit Message

André Hentschel Feb. 6, 2018, 5:22 p.m.
Signed-off-by: André Hentschel <nerv@dawncrow.de>
---
 DEVELOPERS                   |  1 +
 package/Config.in            |  1 +
 package/libkrb5/Config.in    | 15 +++++++++++++++
 package/libkrb5/libkrb5.hash |  2 ++
 package/libkrb5/libkrb5.mk   | 28 ++++++++++++++++++++++++++++
 5 files changed, 47 insertions(+)
 create mode 100644 package/libkrb5/Config.in
 create mode 100644 package/libkrb5/libkrb5.hash
 create mode 100644 package/libkrb5/libkrb5.mk

Comments

Thomas Petazzoni Feb. 14, 2018, 9:16 p.m. | #1
Hello,

On Tue,  6 Feb 2018 18:22:08 +0100, André Hentschel wrote:

> diff --git a/package/libkrb5/Config.in b/package/libkrb5/Config.in
> new file mode 100644
> index 0000000..bdddd2e
> --- /dev/null
> +++ b/package/libkrb5/Config.in
> @@ -0,0 +1,15 @@
> +config BR2_PACKAGE_LIBKRB5
> +	bool "libkrb5"
> +	# needs fork()
> +	depends on BR2_USE_MMU
> +	# static libs are not supported on all platforms
> +	depends on !(BR2_STATIC_LIBS && (BR2_ARM_CPU_ARMV7M || BR2_m68k))

Could you give more details about this ? It feels like these exclusions
have been added just for the sake of making test-pkg happy. What are
the problems you have encountered ?

I'm particularly wondering about the BR2_ARM_CPU_ARMV7M case, which
always has BR2_USE_MMU disabled, so I'm not sure how you can have
reached a problem on ARMv7-M.

Also, the following defconfigs fails to build libkrb5:

BR2_arm=y
BR2_TOOLCHAIN_EXTERNAL=y
BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y
BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y
BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/br-arm-full-2017.11-rc1.tar.bz2"
BR2_TOOLCHAIN_EXTERNAL_GCC_4_9=y
BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_10=y
BR2_TOOLCHAIN_EXTERNAL_LOCALE=y
# BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_DEBUG is not set
BR2_TOOLCHAIN_EXTERNAL_CXX=y
BR2_INIT_NONE=y
BR2_SYSTEM_BIN_SH_NONE=y
# BR2_PACKAGE_BUSYBOX is not set
BR2_PACKAGE_LIBKRB5=y
# BR2_TARGET_ROOTFS_TAR is not set

Failure is:

In file included from net-server.c:61:0:
../../include/net-server.h:32:19: fatal error: verto.h: No such file or directory
 #include <verto.h>
                   ^
compilation terminated.
make[4]: *** [Makefile:487: net-server.o] Error 1
make[4]: *** Waiting for unfinished jobs....
make[3]: *** [Makefile:984: all-recurse] Error 1
make[2]: *** [Makefile:1524: all-recurse] Error 1
make[1]: *** [package/pkg-generic.mk:250: /home/thomas/projets/buildroot/output/build/libkrb5-1.16/.stamp_built] Error 2

Could you have a look and submit an updated version ?

Thanks!

Thomas
André Hentschel Feb. 20, 2018, 10:51 a.m. | #2
Am 14.02.2018 um 22:16 schrieb Thomas Petazzoni:
> Hello,
> 
> On Tue,  6 Feb 2018 18:22:08 +0100, André Hentschel wrote:
> 
>> diff --git a/package/libkrb5/Config.in b/package/libkrb5/Config.in
>> new file mode 100644
>> index 0000000..bdddd2e
>> --- /dev/null
>> +++ b/package/libkrb5/Config.in
>> @@ -0,0 +1,15 @@
>> +config BR2_PACKAGE_LIBKRB5
>> +	bool "libkrb5"
>> +	# needs fork()
>> +	depends on BR2_USE_MMU
>> +	# static libs are not supported on all platforms
>> +	depends on !(BR2_STATIC_LIBS && (BR2_ARM_CPU_ARMV7M || BR2_m68k))
> 
> Could you give more details about this ? It feels like these exclusions
> have been added just for the sake of making test-pkg happy. What are
> the problems you have encountered ?
> 
> I'm particularly wondering about the BR2_ARM_CPU_ARMV7M case, which
> always has BR2_USE_MMU disabled, so I'm not sure how you can have
> reached a problem on ARMv7-M.


It seems I indeed overfixed it, sorry. Removed the static check in v7


> Also, the following defconfigs fails to build libkrb5:
> 
> BR2_arm=y
> BR2_TOOLCHAIN_EXTERNAL=y
> BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y
> BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y
> BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/br-arm-full-2017.11-rc1.tar.bz2"
> BR2_TOOLCHAIN_EXTERNAL_GCC_4_9=y
> BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_10=y
> BR2_TOOLCHAIN_EXTERNAL_LOCALE=y
> # BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_DEBUG is not set
> BR2_TOOLCHAIN_EXTERNAL_CXX=y
> BR2_INIT_NONE=y
> BR2_SYSTEM_BIN_SH_NONE=y
> # BR2_PACKAGE_BUSYBOX is not set
> BR2_PACKAGE_LIBKRB5=y
> # BR2_TARGET_ROOTFS_TAR is not set
> 
> Failure is:
> 
> In file included from net-server.c:61:0:
> ../../include/net-server.h:32:19: fatal error: verto.h: No such file or directory
>  #include <verto.h>
>                    ^
> compilation terminated.
> make[4]: *** [Makefile:487: net-server.o] Error 1
> make[4]: *** Waiting for unfinished jobs....
> make[3]: *** [Makefile:984: all-recurse] Error 1
> make[2]: *** [Makefile:1524: all-recurse] Error 1
> make[1]: *** [package/pkg-generic.mk:250: /home/thomas/projets/buildroot/output/build/libkrb5-1.16/.stamp_built] Error 2
> 
> Could you have a look and submit an updated version ?


I can't reproduce that here with that defconfig. So I checked if I can find verto.h somewhere else on my computer where it might interfer, but no hit.
verto.h is part of the libkrb5 source, so no idea why it can't be found in your case... Could you please check again with patch next v7?
Thomas Petazzoni Feb. 20, 2018, 11:30 a.m. | #3
Hello,

On Tue, 20 Feb 2018 11:51:40 +0100, André Hentschel wrote:

> >> diff --git a/package/libkrb5/Config.in b/package/libkrb5/Config.in
> >> new file mode 100644
> >> index 0000000..bdddd2e
> >> --- /dev/null
> >> +++ b/package/libkrb5/Config.in
> >> @@ -0,0 +1,15 @@
> >> +config BR2_PACKAGE_LIBKRB5
> >> +	bool "libkrb5"
> >> +	# needs fork()
> >> +	depends on BR2_USE_MMU
> >> +	# static libs are not supported on all platforms
> >> +	depends on !(BR2_STATIC_LIBS && (BR2_ARM_CPU_ARMV7M || BR2_m68k))  
> > 
> > Could you give more details about this ? It feels like these exclusions
> > have been added just for the sake of making test-pkg happy. What are
> > the problems you have encountered ?
> > 
> > I'm particularly wondering about the BR2_ARM_CPU_ARMV7M case, which
> > always has BR2_USE_MMU disabled, so I'm not sure how you can have
> > reached a problem on ARMv7-M.  
> 
> It seems I indeed overfixed it, sorry. Removed the static check in v7

Still, could you give more details ? Why just m68k is excluded ? What
is the problem you have encountered ?

> > In file included from net-server.c:61:0:
> > ../../include/net-server.h:32:19: fatal error: verto.h: No such file or directory
> >  #include <verto.h>
> >                    ^
> > compilation terminated.
> > make[4]: *** [Makefile:487: net-server.o] Error 1
> > make[4]: *** Waiting for unfinished jobs....
> > make[3]: *** [Makefile:984: all-recurse] Error 1
> > make[2]: *** [Makefile:1524: all-recurse] Error 1
> > make[1]: *** [package/pkg-generic.mk:250: /home/thomas/projets/buildroot/output/build/libkrb5-1.16/.stamp_built] Error 2
> > 
> > Could you have a look and submit an updated version ?  
> 
> 
> I can't reproduce that here with that defconfig. So I checked if I can find verto.h somewhere else on my computer where it might interfer, but no hit.
> verto.h is part of the libkrb5 source, so no idea why it can't be found in your case... Could you please check again with patch next v7?

I'll check with v7, and investigate a bit more.

Thanks!

Thomas

Patch

diff --git a/DEVELOPERS b/DEVELOPERS
index 9048d45..a8fa9ae 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -111,6 +111,7 @@  F:	package/ktap/
 
 N:	André Hentschel <nerv@dawncrow.de>
 F:	package/azure-iot-sdk-c/
+F:	package/libkrb5/
 F:	package/openal/
 F:	package/p7zip/
 F:	package/wine/
diff --git a/package/Config.in b/package/Config.in
index 9a6b199..86042f4 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1374,6 +1374,7 @@  menu "Networking"
 	source "package/libhttpparser/Config.in"
 	source "package/libidn/Config.in"
 	source "package/libiscsi/Config.in"
+	source "package/libkrb5/Config.in"
 	source "package/libldns/Config.in"
 	source "package/libmaxminddb/Config.in"
 	source "package/libmbus/Config.in"
diff --git a/package/libkrb5/Config.in b/package/libkrb5/Config.in
new file mode 100644
index 0000000..bdddd2e
--- /dev/null
+++ b/package/libkrb5/Config.in
@@ -0,0 +1,15 @@ 
+config BR2_PACKAGE_LIBKRB5
+	bool "libkrb5"
+	# needs fork()
+	depends on BR2_USE_MMU
+	# static libs are not supported on all platforms
+	depends on !(BR2_STATIC_LIBS && (BR2_ARM_CPU_ARMV7M || BR2_m68k))
+	help
+	  Kerberos is a system for authenticating users and services
+	  on a network. Kerberos is a trusted third-party service.
+	  That means that there is a third party (the Kerberos server)
+	  that is trusted by all the entities on the network
+	  (users and services, usually called "principals").
+	  This is the MIT reference implementation of Kerberos V5.
+
+	  https://web.mit.edu/kerberos/
diff --git a/package/libkrb5/libkrb5.hash b/package/libkrb5/libkrb5.hash
new file mode 100644
index 0000000..59552d7
--- /dev/null
+++ b/package/libkrb5/libkrb5.hash
@@ -0,0 +1,2 @@ 
+# Locally calculated after checking pgp signature
+sha256	faeb125f83b0fb4cdb2f99f088140631bb47d975982de0956d18c85842969e08	krb5-1.16.tar.gz
diff --git a/package/libkrb5/libkrb5.mk b/package/libkrb5/libkrb5.mk
new file mode 100644
index 0000000..0289998
--- /dev/null
+++ b/package/libkrb5/libkrb5.mk
@@ -0,0 +1,28 @@ 
+################################################################################
+#
+# libkrb5
+#
+################################################################################
+
+LIBKRB5_VERSION_MAJOR = 1.16
+LIBKRB5_VERSION = $(LIBKRB5_VERSION_MAJOR)
+LIBKRB5_SITE = https://web.mit.edu/kerberos/dist/krb5/$(LIBKRB5_VERSION_MAJOR)
+LIBKRB5_SOURCE = krb5-$(LIBKRB5_VERSION).tar.gz
+LIBKRB5_SUBDIR = src
+LIBKRB5_LICENSE = MIT
+LIBKRB5_LICENSE_FILES = NOTICE
+LIBKRB5_INSTALL_STAGING = YES
+
+# The configure script uses AC_TRY_RUN tests to check for those values,
+# which doesn't work in a cross-compilation scenario. Therefore,
+# we feed the configure script with the correct answer for those tests
+LIBKRB5_CONF_ENV = \
+	ac_cv_printf_positional=yes \
+	ac_cv_func_regcomp=yes \
+	krb5_cv_attr_constructor_destructor=yes,yes
+
+ifneq ($(BR2_TOOLCHAIN_HAS_THREADS),y)
+LIBKRB5_CONF_OPTS += --disable-thread-support
+endif
+
+$(eval $(autotools-package))