On Fri, Jan 30, 2026 at 09:41:09PM +0100, Hans Ulli Kroll wrote:
> Hi Osama
> 
> On Thu, 2026-01-29 at 22:35 +0100, Osama Abdelkader via busybox wrote:
> > 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.
> > 
> 
> This is my version of the from my (endless) didn't send list
> Only the main code
> 
> int uuidgen_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
> int uuidgen_main(int argc UNUSED_PARAM, char **argv UNUSED_PARAM)
> {
>       struct volume_id id;
>       char uuid[37];
> 
>       generate_uuid(uuid);
>       volume_id_set_uuid(&id, uuid, UUID_DCE);
>       printf("%s\n", id.uuid);
> 
>       return 0;
> }
> 
> I didn't check the size.
> You can take this
> 
> Ulli

Hi Ulli,

Thank you, I just sent a v2, please feel free to change the commit
message.

Thanks,
Osama
_______________________________________________
busybox mailing list
[email protected]
https://lists.busybox.net/mailman/listinfo/busybox

Reply via email to