Re: [PATCH] util-linux: add minimal uuidgen implementation

Osama Abdelkader via busybox <[email protected]>
Newsgroups gmane.linux.busybox
Message-ID <aXvSn1tOo3a8z34M@osama>
On Sun, Nov 23, 2025 at 03:19:58AM +0200, Osama Abdelkader wrote:
> Add a simple uuidgen utility that generates RFC 4122 compliant
> UUIDs (version 4, random). Uses the existing generate_uuid()
> function from libbb.
> 
> Features:
> - Generates standard format UUIDs: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
> - RFC 4122 version 4 compliant
> - Minimal implementation (~1.1 kb)
> - NOFORK applet for efficiency
> 
> Signed-off-by: Osama Abdelkader <[email protected]>
> ---
>  util-linux/uuidgen.c | 47 ++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 47 insertions(+)
>  create mode 100644 util-linux/uuidgen.c
> 
> diff --git a/util-linux/uuidgen.c b/util-linux/uuidgen.c
> new file mode 100644
> index 000000000..6c5fb6903
> --- /dev/null
> +++ b/util-linux/uuidgen.c
> @@ -0,0 +1,47 @@
> +/* vi: set sw=4 ts=4: */
> +/*
> + * Mini uuidgen implementation for busybox
> + *
> + * Licensed under GPLv2 or later, see file LICENSE in this source tree.
> + */
> +//config:config UUIDGEN
> +//config:	bool "uuidgen (1.1 kb)"
> +//config:	default y
> +//config:	help
> +//config:	Generate a UUID (Universally Unique Identifier) in RFC 4122 format.
> +
> +//applet:IF_UUIDGEN(APPLET_NOFORK(uuidgen, uuidgen, BB_DIR_USR_BIN, BB_SUID_DROP, uuidgen))
> +
> +//kbuild:lib-$(CONFIG_UUIDGEN) += uuidgen.o
> +
> +//usage:#define uuidgen_trivial_usage
> +//usage:       ""
> +//usage:#define uuidgen_full_usage "\n\n"
> +//usage:       "Generate a UUID (Universally Unique Identifier)"
> +
> +#include "libbb.h"
> +
> +/* This is a NOFORK applet. Be very careful! */
> +
> +int uuidgen_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
> +int uuidgen_main(int argc UNUSED_PARAM, char **argv UNUSED_PARAM)
> +{
> +	uint8_t uuid[16];
> +	
> +	if (argv[1]) {
> +		bb_show_usage();
> +	}
> +
> +	generate_uuid(uuid);
> +	
> +	/* Format: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx */
> +	printf("%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x\n",
> +		uuid[0], uuid[1], uuid[2], uuid[3],
> +		uuid[4], uuid[5],
> +		uuid[6], uuid[7],
> +		uuid[8], uuid[9],
> +		uuid[10], uuid[11], uuid[12], uuid[13], uuid[14], uuid[15]);
> +
> +	return fflush_all();
> +}
> +
> -- 
> 2.43.0
> 
ping.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.