Skip to contentSkip to conversation

package/unscd: new package

PATCH Superseded Doug Kehn 4 participants 12 messages Nov 23, 2015 – Dec 1, 2015

v5 of 7 Superseded Latest is v7 →

lore
Share & tools
lore

Doug Kehn

author
#0 lore raw

v5 cover package/unscd: new package

systemd recipe/support is removed. systemd support is best left to someone versed in systemd who desires to use unscd with systemd.

The BR2_GLIBC_NSCD suggestion is incorporated. However, I'm not sure what the proper next steps are to properly install glibc nscd for both internal/external toolchains. Is it sufficient, for now, to just define BR2_GLIBC_NSCD?

Doug Kehn (2):
package/unscd: new package
toolchain/toolchain-common.in: install nscd

 package/Config.in             |  1 +
 package/unscd/Config.in       | 11 ++++++++++
 package/unscd/S46unscd        | 24 ++++++++++++++++++++++
 package/unscd/unscd.hash      |  3 +++
 package/unscd/unscd.mk        | 47 +++++++++++++++++++++++++++++++++++++++++++
 toolchain/toolchain-common.in |  4 ++++
 6 files changed, 90 insertions(+)
 create mode 100644 package/unscd/Config.in
 create mode 100644 package/unscd/S46unscd
 create mode 100644 package/unscd/unscd.hash
 create mode 100644 package/unscd/unscd.mk

--
Changes v4 -> v5
- Reincorporate $(APPLY_PATCHES) suggestion after update by Arnout.
Changes v3 -> v4
- Incorporate feedback/suggestions by Yann and Maxime.
Changes v2 -> v3
- Remove trailing '/' from UNSCD_SITE.
- Whitespace cleanup.
Changes v1 -> v2
- Incorporate feedback/suggestions by Yann (from nss-pam-ldapd patch).

Signature · 1 line
2.6.2
author
#1 lore raw

PATCH v5 1/2 package/unscd: new package

A daemon which handles passwd, group and host lookups for running programs and caches the results for the next query. You only need this package if you are using slow Name Services like LDAP, NIS or NIS+.

This particular NSCD is a complete rewrite of the GNU glibc nscd which is a single threaded server process which offloads all NSS lookups to worker children; cache hits are handled by the parent, and only cache misses start worker children, making the parent immune to resource leaks, hangs, and crashes in NSS libraries.

It should mostly be a drop-in replacement for existing installs using nscd.

Cc Yann E. MORIN <[email protected]>
CC Arnout Vandecappelle <[email protected]>

--
Changes v4 -> v5
- Reincorporate $(APPLY_PATCHES) suggestion after update by Arnout.
Changes v3 -> v4
- Incorporate feedback/suggestions by Yann and Maxime.
Changes v2 -> v3
- Remove trailing '/' from UNSCD_SITE.
- Whitespace cleanup.
Changes v1 -> v2
- Incorporate feedback/suggestions by Yann (from nss-pam-ldapd patch).

---
 package/Config.in        |  1 +
 package/unscd/Config.in  | 11 +++++++++++
 package/unscd/S46unscd   | 24 ++++++++++++++++++++++++
 package/unscd/unscd.hash |  3 +++
 package/unscd/unscd.mk   | 47 +++++++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 86 insertions(+)
 create mode 100644 package/unscd/Config.in
 create mode 100644 package/unscd/S46unscd
 create mode 100644 package/unscd/unscd.hash
 create mode 100644 package/unscd/unscd.mk
package/Config.in +1 -0
index bdc3063..7fd3f0d 100644
@@ -1534,6 +1534,7 @@ if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
 	source "package/sysvinit/Config.in"
 	source "package/tar/Config.in"
 endif
+	source "package/unscd/Config.in"
 	source "package/util-linux/Config.in"
 endmenu
 
package/unscd/Config.in new file +11 -0
new file mode 100644
index 0000000..1639bca
@@ -0,0 +1,11 @@
+config BR2_PACKAGE_UNSCD
+	bool "unscd"
+	depends on BR2_TOOLCHAIN_USES_GLIBC
+	depends on !BR2_GLIBC_NSCD
+	help
+	  Micro Name Service Caching Daemon
+
+	  https://packages.debian.org/unscd
+
+comment "unscd needs an (e)glibc toolchain"
+	depends on !BR2_TOOLCHAIN_USES_GLIBC
package/unscd/S46unscd new file +24 -0
new file mode 100644
index 0000000..7d18f94
@@ -0,0 +1,24 @@
+#!/bin/sh
+
+NAME="nscd"
+DAEMON="/usr/sbin/${NAME}"
+
+case "$1" in
+start)
+        printf "Starting ${NAME}: "
+        start-stop-daemon -S -x ${DAEMON}
+        [ $? -eq 0 ] && echo "OK" || echo "FAIL"
+        ;;
+stop)
+        printf "Stopping ${NAME}: "
+        start-stop-daemon -K -x ${DAEMON}
+        [ $? -eq 0 ] && echo "OK" || echo "FAIL"
+        ;;
+restart|reload)
+        $0 stop
+        $0 start
+        ;;
+*)
+        echo "Usage: $0 {start|stop|restart|reload}"
+        exit 1
+esac
package/unscd/unscd.hash new file +3 -0
new file mode 100644
index 0000000..f65ebda
@@ -0,0 +1,3 @@
+# From http://snapshot.debian.org/archive/debian/20150519T094547Z/pool/main/u/unscd/unscd_0.51-1.dsc
+sha256	0dbf717726e1c29af8f4ef7d2d2695e5eedb342320a730a56ae0d56fe32891f8	unscd_0.51.orig.tar.gz
+sha256	8ae16a826afd464639f6c6372fabafee5b93aea9645b3fbf23970296d4961f27	unscd_0.51-1.debian.tar.gz
package/unscd/unscd.mk new file +47 -0

47 lines not on this page · raw message

Signature · 1 line
2.6.2
#2 lore raw

PATCH v5 1/2 package/unscd: new package

Dear Doug Kehn,

package/unscd/Config.in line 4

Quoted 10 lines · Doug Kehn
package/unscd/Config.in new file +4 -0
new file mode 100644
index 0000000..1639bca
@@ -0,0 +1,11 @@
+config BR2_PACKAGE_UNSCD
+	bool "unscd"
+	depends on BR2_TOOLCHAIN_USES_GLIBC
+	depends on !BR2_GLIBC_NSCD

I think you should leave this BR2_GLIBC_NSCD thing on the side for now. Just make unscd a normal package, and don't worry about nscd coming from glibc: there is anyway no mechanism in Buildroot today to install the nscd coming from the toolchain.

package/unscd/Config.in line 11

Quoted 7 lines
package/unscd/Config.in new file +7 -0
+UNSCD_POST_EXTRACT_HOOKS += UNSCD_EXTRACT_DEBIAN
+
+define UNSCD_APPLY_DEBIAN_PATCHES
+	$(APPLY_PATCHES) $(@D) $(@D)/debian/patches
+endef
+
+UNSCD_POST_PATCH_HOOKS += UNSCD_APPLY_DEBIAN_PATCHES

This doesn't work because the patches don't end with an extension that is recognized by our apply-patch script. So all what you see is:

Quoted 1 line
Quoted 1 line
Quoted 1 line

unscd 0.51 Patching

support/scripts/apply-patches.sh /home/thomas/projets/buildroot/output/build/unscd-0.51 /home/thomas/projets/buildroot/output/build/unscd-0.51/debian/patches Unsupported file type for /home/thomas/projets/buildroot/output/build/unscd-0.51/debian/patches/change_invalidate_request_info_output, skipping Unsupported file type for /home/thomas/projets/buildroot/output/build/unscd-0.51/debian/patches/support_large_numbers_in_config, skipping

which makes the entire dance around applying the Debian patches useless.

Unfortunately, fixing this requires fixing our apply-patches script. Generally speaking, I am not super happy with all the logic we need to add in various packages to get them to apply the Debian patches. But Debian packages vary quite a bit in the way the patches are organized, so I don't know if it's doable to fix.

BTW any reason to not use the upstream version, at
http://busybox.net/~vda/unscd/nscd-0.52.c, which is higher than 0.51 ?

Can you look into this patching issue (or alternatively use 0.52 with no patches) and send an updated version ?

Thanks !

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#3 lore raw

PATCH v5 1/2 package/unscd: new package

Quoted 31 lines · Thomas Petazzoni

Dear Doug Kehn,

package/unscd/Config.in line 4

Quoted 10 lines · Doug Kehn
package/unscd/Config.in new file +4 -0
new file mode 100644
index 0000000..1639bca
@@ -0,0 +1,11 @@
+config BR2_PACKAGE_UNSCD
+	bool "unscd"
+	depends on BR2_TOOLCHAIN_USES_GLIBC
+	depends on !BR2_GLIBC_NSCD

I think you should leave this BR2_GLIBC_NSCD thing on the side for now. Just make unscd a normal package, and don't worry about nscd coming from glibc: there is anyway no mechanism in Buildroot today to install the nscd coming from the toolchain.

package/unscd/Config.in line 11

Quoted 7 lines
package/unscd/Config.in new file +7 -0
+UNSCD_POST_EXTRACT_HOOKS += UNSCD_EXTRACT_DEBIAN
+
+define UNSCD_APPLY_DEBIAN_PATCHES
+	$(APPLY_PATCHES) $(@D) $(@D)/debian/patches
+endef
+
+UNSCD_POST_PATCH_HOOKS += UNSCD_APPLY_DEBIAN_PATCHES

This doesn't work because the patches don't end with an extension that is recognized by our apply-patch script. So all what you see is:

Quoted 4 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line

unscd 0.51 Patching

support/scripts/apply-patches.sh /home/thomas/projets/buildroot/output/build/unscd-0.51 /home/thomas/projets/buildroot/output/build/unscd-0.51/debian/patches Unsupported file type for /home/thomas/projets/buildroot/output/build/unscd-0.51/debian/patches/change_invalidate_request_info_output, skipping Unsupported file type for /home/thomas/projets/buildroot/output/build/unscd-0.51/debian/patches/support_large_numbers_in_config, skipping

Uh, that shouldn't happen, since 7caf464 everything in the series file should
be applied regardless of name...

Quoted 4 lines

which makes the entire dance around applying the Debian patches useless.

Unfortunately, fixing this requires fixing our apply-patches script.

Which I did :-)

Regards,
Arnout

Quoted 15 lines

Generally speaking, I am not super happy with all the logic we need to add in various packages to get them to apply the Debian patches. But Debian packages vary quite a bit in the way the patches are organized, so I don't know if it's doable to fix.

BTW any reason to not use the upstream version, at
http://busybox.net/~vda/unscd/nscd-0.52.c, which is higher than 0.51 ?

Can you look into this patching issue (or alternatively use 0.52 with no patches) and send an updated version ?

Thanks !

Thomas

Signature · 6 lines
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF
#4 lore raw

PATCH v5 1/2 package/unscd: new package

Arnout,

Quoted 7 lines · Arnout Vandecappelle
Quoted 4 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line

unscd 0.51 Patching

support/scripts/apply-patches.sh /home/thomas/projets/buildroot/output/build/unscd-0.51 /home/thomas/projets/buildroot/output/build/unscd-0.51/debian/patches Unsupported file type for /home/thomas/projets/buildroot/output/build/unscd-0.51/debian/patches/change_invalidate_request_info_output, skipping Unsupported file type for /home/thomas/projets/buildroot/output/build/unscd-0.51/debian/patches/support_large_numbers_in_config, skipping

Uh, that shouldn't happen, since 7caf464 everything in the series file should
be applied regardless of name...

I tested on top of next, so it should have worked... but it did not. I didn't check if the patches were actually applied, but it is clear that this message was displayed, since I copy/pasted from my terminal.

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#5 lore raw

PATCH v5 1/2 package/unscd: new package

Quoted 9 lines · Thomas Petazzoni

Arnout,

Quoted 5 lines · Arnout Vandecappelle
Quoted 4 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line

unscd 0.51 Patching

support/scripts/apply-patches.sh /home/thomas/projets/buildroot/output/build/unscd-0.51 /home/thomas/projets/buildroot/output/build/unscd-0.51/debian/patches Unsupported file type for /home/thomas/projets/buildroot/output/build/unscd-0.51/debian/patches/change_invalidate_request_info_output, skipping Unsupported file type for /home/thomas/projets/buildroot/output/build/unscd-0.51/debian/patches/support_large_numbers_in_config, skipping

Quoted 6 lines
Quoted 2 lines

Uh, that shouldn't happen, since 7caf464 everything in the series file should
be applied regardless of name...

I tested on top of next, so it should have worked... but it did not. I didn't check if the patches were actually applied, but it is clear that this message was displayed, since I copy/pasted from my terminal.

7caf464 was applied to master only, and there has been no merge from master to
next. So that explains it.

next will be gone soon so don't worry ;-)

Regards,
Arnout

Signature · 6 lines
Arnout Vandecappelle      arnout dot vandecappelle at essensium dot com
Senior Embedded Software Architect . . . . . . +32-478-010353 (mobile)
Essensium, Mind division . . . . . . . . . . . . . . http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium . . . . . BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF
#6 lore raw

PATCH v5 1/2 package/unscd: new package

Hello,

Quoted 2 lines · Arnout Vandecappelle

7caf464 was applied to master only, and there has been no merge from master to
next. So that explains it.

Ah damn, ok.

Quoted 1 line

next will be gone soon so don't worry ;-)

Indeed.

Doug: can you resend a new version of the unscd patch, without the attempt to integrate the installation of the glibc provided nscd daemon? This way, we can merge unscd quickly, and then work on installing the one from glibc if you are interested.

Thanks!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#7 lore raw

PATCH v5 1/2 package/unscd: new package

Hi Thomas,

Quoted 9 lines · Thomas Petazzoni

Hello,

Quoted 2 lines · Arnout Vandecappelle

7caf464 was applied to master only, and there has been no merge from master to
next. So that explains it.

Ah damn, ok.

Quoted 8 lines
Quoted 1 line

next will be gone soon so don't worry ;-)

Indeed.

Doug: can you resend a new version of the unscd patch, without the attempt to integrate the installation of the glibc provided nscd daemon? This way, we can merge unscd quickly, and then work on installing the one from glibc if you are interested.

Yes, I will resend, after incorporating/updating to 0.52 as suggested.

Regards,
...doug

author
#8 lore raw

PATCH v5 2/2 toolchain/toolchain-common.in: install nscd

In reply to Doug Kehn

Add BR2_GLIBC_NSCD for installing nscd. BR2_GLIBC_NSCD can be used by other packages (e.g. unscd) to prevent the selection of multiple nscd packages.

Cc Yann E. MORIN <[email protected]>

--
Changes v4 -> v5
- No changes.
Changes v3 -> v4
- Incorporate feedback/suggestions by Yann and Maxime.
Changes v2 -> v3
- Remove trailing '/' from UNSCD_SITE.
- Whitespace cleanup.
Changes v1 -> v2
- Incorporate feedback/suggestions by Yann (from nss-pam-ldapd patch).

---
 toolchain/toolchain-common.in | 4 ++++
 1 file changed, 4 insertions(+)
toolchain/toolchain-common.in +4 -0
index 6871d8b..a119c9c 100644
@@ -136,6 +136,10 @@ config BR2_ECLIPSE_REGISTER
 	  configuration files to make your toolchain appear within
 	  Eclipse, through the Eclipse Buildroot plugin.
 
+config BR2_GLIBC_NSCD
+	bool "Install nscd"
+	depends on BR2_TOOLCHAIN_USES_GLIBC
+
 # Options for packages to depend on, if they require at least a
 # specific version of the kernel headers.
 # Toolchains should choose the adequate option (ie. the highest
Signature · 1 line
2.6.2
#9 lore raw

PATCH v5 2/2 toolchain/toolchain-common.in: install nscd

Dear Doug Kehn,

toolchain/toolchain-common.in config BR2_ECLIPSE_REGISTER · line 141

Quoted 11 lines · Doug Kehn
toolchain/toolchain-common.in +3 -0
index 6871d8b..a119c9c 100644
@@ -136,6 +136,10 @@ config BR2_ECLIPSE_REGISTER
 	  configuration files to make your toolchain appear within
 	  Eclipse, through the Eclipse Buildroot plugin.
 
+config BR2_GLIBC_NSCD
+	bool "Install nscd"
+	depends on BR2_TOOLCHAIN_USES_GLIBC

If this option were to be used by PATCH 1/2, then it should be introduced before.

However, it is very useless to add an option that doesn't do anything at all: if you add this option, it should actually install nscd.

If you want an example on how to do that, look at how the gconv library installation is implemented. It works fine for both internal and external toolchains.

Thanks!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#10 lore raw

v5 cover package/unscd: new package

In reply to Doug Kehn

Dear Doug Kehn, everyone,

just a small question. Perhaps I'm wrong, but..., isn't nscd deprecated in favor of sssd? If so, shouldn't we add the sssd package instead?

Regards,

Vincent.

Quoted 34 lines · Doug Kehn

systemd recipe/support is removed. systemd support is best left to someone versed in systemd who desires to use unscd with systemd.

The BR2_GLIBC_NSCD suggestion is incorporated. However, I'm not sure what the proper next steps are to properly install glibc nscd for both internal/external toolchains. Is it sufficient, for now, to just define BR2_GLIBC_NSCD?

Doug Kehn (2):
package/unscd: new package
toolchain/toolchain-common.in: install nscd

 package/Config.in             |  1 +
 package/unscd/Config.in       | 11 ++++++++++
 package/unscd/S46unscd        | 24 ++++++++++++++++++++++
 package/unscd/unscd.hash      |  3 +++
 package/unscd/unscd.mk        | 47 +++++++++++++++++++++++++++++++++++++++++++
 toolchain/toolchain-common.in |  4 ++++
 6 files changed, 90 insertions(+)
 create mode 100644 package/unscd/Config.in
 create mode 100644 package/unscd/S46unscd
 create mode 100644 package/unscd/unscd.hash
 create mode 100644 package/unscd/unscd.mk

--
Changes v4 -> v5
- Reincorporate $(APPLY_PATCHES) suggestion after update by Arnout.
Changes v3 -> v4
- Incorporate feedback/suggestions by Yann and Maxime.
Changes v2 -> v3
- Remove trailing '/' from UNSCD_SITE.
- Whitespace cleanup.
Changes v1 -> v2
- Incorporate feedback/suggestions by Yann (from nss-pam-ldapd patch).

#11 lore raw

v5 cover package/unscd: new package

Hi Vincent,

Quoted 4 lines · Vicente Olivert Riera

Dear Doug Kehn, everyone,

just a small question. Perhaps I'm wrong, but..., isn't nscd deprecated in favor of sssd? If so, shouldn't we add the sssd package instead?

I believe [u]nscd is deprecated for RHEL/CENTOS. I'm not sure about other distros. My Arch Linux distro installs glibc nscd by default.

I'm by no means an sssd expert; however, from a quick cursory look

http://serverfault.com/questions/534791/what-are-the-dependencies-of-sssd-nscd-to-function

it appears sssd may have dependencies that may not be desirable for some systems. This is of course debatable.

I use unscd in my Buildroot system so I thought I would share what is working for me since unscd was not an available package. I'm okay with this patch not being accepted in favor of sssd.

Regards,
...doug

Quoted 40 lines

Regards,

Vincent.

Quoted 34 lines · Doug Kehn

systemd recipe/support is removed. systemd support is best left to someone versed in systemd who desires to use unscd with systemd.

The BR2_GLIBC_NSCD suggestion is incorporated. However, I'm not sure what the proper next steps are to properly install glibc nscd for both internal/external toolchains. Is it sufficient, for now, to just define BR2_GLIBC_NSCD?

Doug Kehn (2):
package/unscd: new package
toolchain/toolchain-common.in: install nscd

 package/Config.in             |  1 +
 package/unscd/Config.in       | 11 ++++++++++
 package/unscd/S46unscd        | 24 ++++++++++++++++++++++
 package/unscd/unscd.hash      |  3 +++
 package/unscd/unscd.mk        | 47 +++++++++++++++++++++++++++++++++++++++++++
 toolchain/toolchain-common.in |  4 ++++
 6 files changed, 90 insertions(+)
 create mode 100644 package/unscd/Config.in
 create mode 100644 package/unscd/S46unscd
 create mode 100644 package/unscd/unscd.hash
 create mode 100644 package/unscd/unscd.mk

--
Changes v4 -> v5
- Reincorporate $(APPLY_PATCHES) suggestion after update by Arnout.
Changes v3 -> v4
- Incorporate feedback/suggestions by Yann and Maxime.
Changes v2 -> v3
- Remove trailing '/' from UNSCD_SITE.
- Whitespace cleanup.
Changes v1 -> v2
- Incorporate feedback/suggestions by Yann (from nss-pam-ldapd patch).