Index: ossp-pkg/uuid/ChangeLog RCS File: /v/ossp/cvs/ossp-pkg/uuid/Attic/ChangeLog,v co -q -kk -p'1.31' '/v/ossp/cvs/ossp-pkg/uuid/Attic/ChangeLog,v' | diff -u /dev/null - -L'ossp-pkg/uuid/ChangeLog' 2>/dev/null --- ossp-pkg/uuid/ChangeLog +++ - 2024-05-11 20:47:35.415903107 +0200 @@ -0,0 +1,156 @@ + _ ___ ____ ____ ____ _ _ + |_|_ _ / _ \/ ___/ ___|| _ \ _ _ _ _(_) __| | + _|_||_| | | | \___ \___ \| |_) | | | | | | | | |/ _` | + |_||_|_| | |_| |___) |__) | __/ | |_| | |_| | | (_| | + |_|_|_| \___/|____/____/|_| \__,_|\__,_|_|\__,_| + + OSSP uuid - Universally Unique Identifier + + CHANGELOG + + This is a list of all changes to OSSP uuid. + For a more brief summary please have a look at the NEWS file. + + Changes between 0.9.3 and 0.9.4 (16-Jan-2004 to xx-Jan-2004) + + o Include in uuid.h because of size_t usage. + [Ralf S. Engelschall] + + o INCOMPATIBILITY: Refactor the API and rename uuid_generate() + to uuid_make() and use a "uuid_t" pointer for the namespace + on UUID_VERSION3 generation. To allow access to the internal + pre-defined namespace UUIDs, provide a new uuid_load() function. + Because uuid_load() now also allows the loading of the "nil" UUID, + remove uuid_nil() from the API. After this second refactoring the + API is now the one we originally wished for the forthcoming version + 1.0 of OSSP uuid. + [Ralf S. Engelschall] + + o INCOMPATIBILITY: rename UUID_VERSIONx to UUID_MAKE_Vx and + UUID_MCASTRND to UUID_MAKE_MC to be more consistent throughout API. + [Ralf S. Engelschall] + + o Add version support to API via UUID_VERSION (compile-time) + and uuid_version() (link-time). + [Ralf S. Engelschall] + + o INCOMPATIBILITY: Refactor the API by merging + uuid_{unpack,pack,parse,format,dump}() functions into unified + uuid_{import,export}() functions. This allows us to easily add + support for other formats (e.g. XML) in the future without having + the change the API in principle. + [Ralf S. Engelschall] + + o Document what DCE 1.1 UUID versions exist and what they are + intended for. + [Ralf S. Engelschall] + + o Cleanup the C code to also pass warning-free a C++ compiler. + [Ralf S. Engelschall] + + o Support C++ by enclosing the C API declarations in + 'extern "C" {...}' within uuid.h. + [Guerry Semones ] + + o Improvide decoding in uuid_dump() by at least hex-dumping the + binary representation in case of v3, v4 and Nil UUIDs. Also, + annotate with better hints. + [Ralf S. Engelschall] + + o Recognize special "Nil UUID" on decoding in uuid_dump(). + [Ralf S. Engelschall] + + Changes between 0.9.2 and 0.9.3 (15-Jan-2004 to 16-Jan-2004) + + o Tested OSSP uuid on 16 particular Unix platforms and list + those in the new PORTING file. + [Ralf S. Engelschall] + + o Fixed minor formatting bug in call to str_rsprintf(). + [Ralf S. Engelschall] + + o Fix syntax error in uuid.ac. + [Ralf S. Engelschall] + + Changes between 0.9.1 and 0.9.2 (13-Jan-2004 to 15-Jan-2004) + + o Provide both incorrect RFC2518-based and correct IEEE 802 + multicast address generation. The default now is the correct + IEEE 802 multicast address generation but compile-time option + --with-rfc2518 selects the broken variant. + [Ralf S. Engelschall] + + o Decode also the IEEE 802 MAC address local/global bit. + [Ralf S. Engelschall] + + o Added missing documentation for uuid_dump(). + [Ralf S. Engelschall] + + o Fixed BM_POW2() macro implementation. + [Ralf S. Engelschall] + + o Use BM_XXX() and str_xxx() APIs throughout internal implementation. + [Ralf S. Engelschall] + + o Added missing manual page uuid-config(1). + [Ralf S. Engelschall] + + o Fixed output of "uuid-config --version" + [Ralf S. Engelschall] + + o Fixed typos in uuid.pod + [Ralf S. Engelschall] + + o Cleanup uuid.ac for unused elements. + [Ralf S. Engelschall] + + o Moved uuid_[u]int{8,16,32}_t auto-configuration into + own internal header uuid_ac.h. + [Ralf S. Engelschall] + + o Fixed portability by replacing accidentally introduced + uint{8,16,32}_t with the portable uuid_uint{8,16,32}_t. + [Guerry Semones ] + + o Prefix all variable symbols in uuid.h with underscores + to avoid namespace conflicts. + [Ralf S. Engelschall] + + o Add decoding examples to uuid(1) manual page. + [Ralf S. Engelschall] + + Changes between 0.9.0 and 0.9.1 (11-Jan-2004 to 13-Jan-2004) + + o Make "md5_init" and "mac_address" symbols namespace clean + by adding correct embedding support via "uuid_" prefix. + [Ralf S. Engelschall] + + o Implement uuid_dump() and corresponding uuid CLI "-d" + option for dumping a given UUID into clear text. For convinience + reasons add uuid_bm.h (bit mask API) and uuid_str (string + formatting API) sub-modules. + [Ralf S. Engelschall] + + o Add "-m" option to CLI for allowing to generate v1 UUIDs + with random multi-cast addresses (API UUID_MCASTRND option). + [Ralf S. Engelschall] + + o Disable the C++ and F77 checks in GNU libtool. + [Ralf S. Engelschall] + + o Print involved option character (instead of '?') on invalid + option for uuid(1) CLI. + [Matthias Andree ] + + o Fixed "make install" and "make uninstall": the uuid(1) CLI + has to be [un]installed through GNU libtool, too. + [Matthias Andree ] + + o Document in uuid(1) [uuid_cli.pod] that for version 3 + UUIDs additional arguments are required and what pre-defined + namespace ids are known. + [Ralf S. Engelschall, M.Daniel ] + + o cleaned up source tree documentation files. + [Ralf S. Engelschall] + Index: ossp-pkg/uuid/Makefile.in RCS File: /v/ossp/cvs/ossp-pkg/uuid/Attic/Makefile.in,v rcsdiff -q -kk '-r1.16' '-r1.17' -u '/v/ossp/cvs/ossp-pkg/uuid/Attic/Makefile.in,v' 2>/dev/null --- Makefile.in 2004/01/18 18:53:10 1.16 +++ Makefile.in 2004/01/19 14:11:49 1.17 @@ -118,7 +118,7 @@ @echo "==== UUID version 1 (time and node based): 4 subsequent iterations"; \ $(LIBTOOL) --mode=execute ./$(PRG_NAME) -v1 -n 4 @echo "==== UUID version 3 (name based): 2 times repeated"; \ - $(LIBTOOL) --mode=execute ./$(PRG_NAME) -v3 -n 2 URL http://www.ossp.org/ + $(LIBTOOL) --mode=execute ./$(PRG_NAME) -v3 -n 2 ns:URL http://www.ossp.org/ @echo "==== UUID version 4 (random data based): 4 single iterations"; \ $(LIBTOOL) --mode=execute ./$(PRG_NAME) -v4 -n 4 -1 @echo "==== UUID version 4 (random data based): 4 subsequent iterations"; \ @@ -127,7 +127,7 @@ $(LIBTOOL) --mode=execute ./$(PRG_NAME) -d `$(LIBTOOL) --mode=execute ./$(PRG_NAME) -v1`; \ $(LIBTOOL) --mode=execute ./$(PRG_NAME) -d `$(LIBTOOL) --mode=execute ./$(PRG_NAME) -v1 -m` @echo "==== UUID version 3 generation and decoding"; \ - $(LIBTOOL) --mode=execute ./$(PRG_NAME) -d `$(LIBTOOL) --mode=execute ./$(PRG_NAME) -v3 URL http://www.ossp.org/` + $(LIBTOOL) --mode=execute ./$(PRG_NAME) -d `$(LIBTOOL) --mode=execute ./$(PRG_NAME) -v3 ns:URL http://www.ossp.org/` @echo "==== UUID version 3 generation and decoding"; \ $(LIBTOOL) --mode=execute ./$(PRG_NAME) -d `$(LIBTOOL) --mode=execute ./$(PRG_NAME) -v4` Index: ossp-pkg/uuid/uuid.c RCS File: /v/ossp/cvs/ossp-pkg/uuid/Attic/uuid.c,v rcsdiff -q -kk '-r1.42' '-r1.43' -u '/v/ossp/cvs/ossp-pkg/uuid/Attic/uuid.c,v' 2>/dev/null --- uuid.c 2004/01/19 13:55:18 1.42 +++ uuid.c 2004/01/19 14:11:49 1.43 @@ -838,7 +838,7 @@ * GENERATE NODE */ - if ((mode & UUID_MCASTRND) || (uuid->mac[0] & BM_OCTET(1,0,0,0,0,0,0,0))) { + if ((mode & UUID_MAKE_MC) || (uuid->mac[0] & BM_OCTET(1,0,0,0,0,0,0,0))) { /* generate random IEEE 802 local multicast MAC address */ prng_data(uuid->prng, (void *)&(uuid->obj.node), sizeof(uuid->obj.node)); uuid->obj.node[0] |= IEEE_MAC_MCBIT_ENC; @@ -979,11 +979,11 @@ /* dispatch into version dependent generation functions */ va_start(ap, mode); - if (mode & UUID_VERSION1) + if (mode & UUID_MAKE_V1) rc = uuid_make_v1(uuid, mode, ap); - else if (mode & UUID_VERSION3) + else if (mode & UUID_MAKE_V3) rc = uuid_make_v3(uuid, mode, ap); - else if (mode & UUID_VERSION4) + else if (mode & UUID_MAKE_V4) rc = uuid_make_v4(uuid, mode, ap); else rc = UUID_RC_ARG; @@ -1002,6 +1002,8 @@ case UUID_RC_ARG: str = "invalid argument"; break; case UUID_RC_MEM: str = "out of memory"; break; case UUID_RC_SYS: str = "system error"; break; + case UUID_RC_INT: str = "internal error"; break; + case UUID_RC_IMP: str = "not implemented"; break; default: str = NULL; break; } return str; Index: ossp-pkg/uuid/uuid.h RCS File: /v/ossp/cvs/ossp-pkg/uuid/Attic/uuid.h,v rcsdiff -q -kk '-r1.16' '-r1.17' -u '/v/ossp/cvs/ossp-pkg/uuid/Attic/uuid.h,v' 2>/dev/null --- uuid.h 2004/01/19 12:19:25 1.16 +++ uuid.h 2004/01/19 14:11:50 1.17 @@ -30,72 +30,75 @@ #ifndef __UUID_H__ #define __UUID_H__ -/* OSSP uuid version (compile-time information) */ -#define UUID_VERSION 0x009204 +/* required system headers */ +#include /* minimum C++ support */ #ifdef __cplusplus #define DECLARATION_BEGIN extern "C" { #define DECLARATION_END } #else -#define DECLARATION_BEGIN /*nop*/ -#define DECLARATION_END /*nop*/ +#define DECLARATION_BEGIN +#define DECLARATION_END #endif DECLARATION_BEGIN +/* OSSP uuid version (compile-time information) */ +#define UUID_VERSION 0x009204 + /* encoding octet stream lengths */ -#define UUID_LEN_BIN (128 / 8 /*bytes*/) -#define UUID_LEN_STR (128 / 4 /*nibbles*/ + 4 /*hyphens*/) +#define UUID_LEN_BIN (128 /*bit*/ / 8 /*bytes*/) +#define UUID_LEN_STR (128 /*bit*/ / 4 /*nibbles*/ + 4 /*hyphens*/) -/* return codes */ +/* API return codes */ typedef enum { - UUID_RC_OK = 0, - UUID_RC_ARG = 1, - UUID_RC_MEM = 2, - UUID_RC_SYS = 3, - UUID_RC_INT = 4, - UUID_RC_IMP = 5 + UUID_RC_OK = 0, /* everything ok */ + UUID_RC_ARG = 1, /* invalid argument */ + UUID_RC_MEM = 2, /* out of memory */ + UUID_RC_SYS = 3, /* system error */ + UUID_RC_INT = 4, /* internal error */ + UUID_RC_IMP = 5 /* not implemented */ } uuid_rc_t; -/* generation mode flags */ +/* UUID make modes */ enum { - UUID_VERSION1 = (1 << 0), - UUID_VERSION3 = (1 << 1), - UUID_VERSION4 = (1 << 2), - UUID_MCASTRND = (1 << 3) + UUID_MAKE_V1 = (1 << 0), /* DCE 1.1 v1 UUID */ + UUID_MAKE_V3 = (1 << 1), /* DCE 1.1 v3 UUID */ + UUID_MAKE_V4 = (1 << 2), /* DCE 1.1 v4 UUID */ + UUID_MAKE_MC = (1 << 3) /* enforce multi-cast MAC address */ }; -/* import/export formats */ +/* UUID import/export formats */ typedef enum { - UUID_FMT_BIN = 0, /* import/export */ - UUID_FMT_STR = 1, /* import/export */ - UUID_FMT_TXT = 2 /* export only */ + UUID_FMT_BIN = 0, /* binary representation (import/export) */ + UUID_FMT_STR = 1, /* string representation (import/export) */ + UUID_FMT_TXT = 2 /* textual description (export only) */ } uuid_fmt_t; -/* abstract data type */ +/* UUID abstract data type */ struct uuid_st; typedef struct uuid_st uuid_t; -/* object handling */ -extern uuid_rc_t uuid_create (uuid_t **_uuid); -extern uuid_rc_t uuid_destroy (uuid_t *_uuid); +/* UUID object handling */ +extern uuid_rc_t uuid_create (uuid_t **_uuid); +extern uuid_rc_t uuid_destroy (uuid_t *_uuid); /* UUID generation */ -extern uuid_rc_t uuid_load (uuid_t *_uuid, const char *_name); -extern uuid_rc_t uuid_make (uuid_t *_uuid, unsigned int _mode, ...); +extern uuid_rc_t uuid_load (uuid_t *_uuid, const char *_name); +extern uuid_rc_t uuid_make (uuid_t *_uuid, unsigned int _mode, ...); /* UUID comparison */ -extern uuid_rc_t uuid_isnil (uuid_t *_uuid, int *_result); -extern uuid_rc_t uuid_compare (uuid_t *_uuid, uuid_t *_uuid2, int *_result); +extern uuid_rc_t uuid_isnil (uuid_t *_uuid, int *_result); +extern uuid_rc_t uuid_compare (uuid_t *_uuid, uuid_t *_uuid2, int *_result); /* UUID import/export */ -extern uuid_rc_t uuid_import (uuid_t *_uuid, uuid_fmt_t _fmt, const void *_data_ptr, size_t _data_len); -extern uuid_rc_t uuid_export (uuid_t *_uuid, uuid_fmt_t _fmt, void **_data_ptr, size_t *_data_len); +extern uuid_rc_t uuid_import (uuid_t *_uuid, uuid_fmt_t _fmt, const void *_data_ptr, size_t _data_len); +extern uuid_rc_t uuid_export (uuid_t *_uuid, uuid_fmt_t _fmt, void **_data_ptr, size_t *_data_len); -/* library error handling */ -extern char *uuid_error (uuid_rc_t _rc); -extern unsigned long uuid_version (void); +/* library utilities */ +extern char *uuid_error (uuid_rc_t _rc); +extern unsigned long uuid_version (void); DECLARATION_END Index: ossp-pkg/uuid/uuid.h.in RCS File: /v/ossp/cvs/ossp-pkg/uuid/Attic/uuid.h.in,v rcsdiff -q -kk '-r1.3' '-r1.4' -u '/v/ossp/cvs/ossp-pkg/uuid/Attic/uuid.h.in,v' 2>/dev/null --- uuid.h.in 2004/01/19 13:48:30 1.3 +++ uuid.h.in 2004/01/19 14:11:50 1.4 @@ -33,72 +33,72 @@ /* required system headers */ #include -/* OSSP uuid version (compile-time information) */ -#define UUID_VERSION @UUID_VERSION_HEX@ - /* minimum C++ support */ #ifdef __cplusplus #define DECLARATION_BEGIN extern "C" { #define DECLARATION_END } #else -#define DECLARATION_BEGIN /*nop*/ -#define DECLARATION_END /*nop*/ +#define DECLARATION_BEGIN +#define DECLARATION_END #endif DECLARATION_BEGIN +/* OSSP uuid version (compile-time information) */ +#define UUID_VERSION @UUID_VERSION_HEX@ + /* encoding octet stream lengths */ -#define UUID_LEN_BIN (128 / 8 /*bytes*/) -#define UUID_LEN_STR (128 / 4 /*nibbles*/ + 4 /*hyphens*/) +#define UUID_LEN_BIN (128 /*bit*/ / 8 /*bytes*/) +#define UUID_LEN_STR (128 /*bit*/ / 4 /*nibbles*/ + 4 /*hyphens*/) -/* return codes */ +/* API return codes */ typedef enum { - UUID_RC_OK = 0, - UUID_RC_ARG = 1, - UUID_RC_MEM = 2, - UUID_RC_SYS = 3, - UUID_RC_INT = 4, - UUID_RC_IMP = 5 + UUID_RC_OK = 0, /* everything ok */ + UUID_RC_ARG = 1, /* invalid argument */ + UUID_RC_MEM = 2, /* out of memory */ + UUID_RC_SYS = 3, /* system error */ + UUID_RC_INT = 4, /* internal error */ + UUID_RC_IMP = 5 /* not implemented */ } uuid_rc_t; -/* generation mode flags */ +/* UUID make modes */ enum { - UUID_VERSION1 = (1 << 0), - UUID_VERSION3 = (1 << 1), - UUID_VERSION4 = (1 << 2), - UUID_MCASTRND = (1 << 3) + UUID_MAKE_V1 = (1 << 0), /* DCE 1.1 v1 UUID */ + UUID_MAKE_V3 = (1 << 1), /* DCE 1.1 v3 UUID */ + UUID_MAKE_V4 = (1 << 2), /* DCE 1.1 v4 UUID */ + UUID_MAKE_MC = (1 << 3) /* enforce multi-cast MAC address */ }; -/* import/export formats */ +/* UUID import/export formats */ typedef enum { - UUID_FMT_BIN = 0, /* import/export */ - UUID_FMT_STR = 1, /* import/export */ - UUID_FMT_TXT = 2 /* export only */ + UUID_FMT_BIN = 0, /* binary representation (import/export) */ + UUID_FMT_STR = 1, /* string representation (import/export) */ + UUID_FMT_TXT = 2 /* textual description (export only) */ } uuid_fmt_t; -/* abstract data type */ +/* UUID abstract data type */ struct uuid_st; typedef struct uuid_st uuid_t; -/* object handling */ -extern uuid_rc_t uuid_create (uuid_t **_uuid); -extern uuid_rc_t uuid_destroy (uuid_t *_uuid); +/* UUID object handling */ +extern uuid_rc_t uuid_create (uuid_t **_uuid); +extern uuid_rc_t uuid_destroy (uuid_t *_uuid); /* UUID generation */ -extern uuid_rc_t uuid_load (uuid_t *_uuid, const char *_name); -extern uuid_rc_t uuid_make (uuid_t *_uuid, unsigned int _mode, ...); +extern uuid_rc_t uuid_load (uuid_t *_uuid, const char *_name); +extern uuid_rc_t uuid_make (uuid_t *_uuid, unsigned int _mode, ...); /* UUID comparison */ -extern uuid_rc_t uuid_isnil (uuid_t *_uuid, int *_result); -extern uuid_rc_t uuid_compare (uuid_t *_uuid, uuid_t *_uuid2, int *_result); +extern uuid_rc_t uuid_isnil (uuid_t *_uuid, int *_result); +extern uuid_rc_t uuid_compare (uuid_t *_uuid, uuid_t *_uuid2, int *_result); /* UUID import/export */ -extern uuid_rc_t uuid_import (uuid_t *_uuid, uuid_fmt_t _fmt, const void *_data_ptr, size_t _data_len); -extern uuid_rc_t uuid_export (uuid_t *_uuid, uuid_fmt_t _fmt, void **_data_ptr, size_t *_data_len); +extern uuid_rc_t uuid_import (uuid_t *_uuid, uuid_fmt_t _fmt, const void *_data_ptr, size_t _data_len); +extern uuid_rc_t uuid_export (uuid_t *_uuid, uuid_fmt_t _fmt, void **_data_ptr, size_t *_data_len); -/* library error handling */ -extern char *uuid_error (uuid_rc_t _rc); -extern unsigned long uuid_version (void); +/* library utilities */ +extern char *uuid_error (uuid_rc_t _rc); +extern unsigned long uuid_version (void); DECLARATION_END Index: ossp-pkg/uuid/uuid_cli.c RCS File: /v/ossp/cvs/ossp-pkg/uuid/Attic/uuid_cli.c,v rcsdiff -q -kk '-r1.13' '-r1.14' -u '/v/ossp/cvs/ossp-pkg/uuid/Attic/uuid_cli.c,v' 2>/dev/null --- uuid_cli.c 2004/01/19 12:15:05 1.13 +++ uuid_cli.c 2004/01/19 14:11:50 1.14 @@ -91,7 +91,7 @@ iterate = 0; /* not one at a time */ raw = 0; /* default is ASCII output */ decode = 0; /* default is to encode */ - version = UUID_VERSION1; + version = UUID_MAKE_V1; while ((ch = getopt(argc, argv, "1n:rdmo:v:")) != -1) { switch (ch) { case '1': @@ -117,16 +117,16 @@ error(1, "fopen: %s", strerror(errno)); break; case 'm': - version |= UUID_MCASTRND; + version |= UUID_MAKE_MC; break; case 'v': i = strtol(optarg, &p, 10); if (*p != '\0') usage("invalid argument to option 'v'"); switch (i) { - case 1: version = UUID_VERSION1; break;; - case 3: version = UUID_VERSION3; break;; - case 4: version = UUID_VERSION4; break;; + case 1: version = UUID_MAKE_V1; break;; + case 3: version = UUID_MAKE_V3; break;; + case 4: version = UUID_MAKE_V4; break;; default: usage("invalid version on option 'v'"); break; @@ -161,9 +161,9 @@ } else { /* encoding */ - if ( (version == UUID_VERSION1 && argc != 0) - || (version == UUID_VERSION3 && argc != 2) - || (version == UUID_VERSION4 && argc != 0)) + if ( (version == UUID_MAKE_V1 && argc != 0) + || (version == UUID_MAKE_V3 && argc != 2) + || (version == UUID_MAKE_V4 && argc != 0)) usage("invalid number of arguments"); if ((rc = uuid_create(&uuid)) != UUID_RC_OK) error(1, "uuid_create: %s", uuid_error(rc)); @@ -179,7 +179,7 @@ if ((rc = uuid_load(uuid, "nil")) != UUID_RC_OK) error(1, "uuid_load: %s", uuid_error(rc)); } - if (version == UUID_VERSION3) { + if (version == UUID_MAKE_V3) { if ((rc = uuid_create(&uuid_ns)) != UUID_RC_OK) error(1, "uuid_create: %s", uuid_error(rc)); if ((rc = uuid_load(uuid_ns, argv[0])) != UUID_RC_OK) { Index: ossp-pkg/uuid/uuid_cli.pod RCS File: /v/ossp/cvs/ossp-pkg/uuid/Attic/uuid_cli.pod,v rcsdiff -q -kk '-r1.12' '-r1.13' -u '/v/ossp/cvs/ossp-pkg/uuid/Attic/uuid_cli.pod,v' 2>/dev/null --- uuid_cli.pod 2004/01/19 12:15:57 1.12 +++ uuid_cli.pod 2004/01/19 14:11:50 1.13 @@ -86,8 +86,9 @@ For version 3 UUIDs the additional command line arguments I and I have to be given. The I is either a UUID in string representation or an identifier for internally pre-defined -namespace UUIDs (currently known are "C", "C", "C", and -"C"). The I is a string of arbitrary length. +namespace UUIDs (currently known are "C", "C", +"C", and "C"). The I is a string of arbitrary +length. =item B<-m> @@ -141,7 +142,7 @@ node: 00:90:27:2f:f7:25 (global unicast) # generate DCE 1.1 v3 UUID (name based) - $ uuid -v3 URL http://www.ossp.org/ + $ uuid -v3 ns:URL http://www.ossp.org/ 02d9e6d5-9467-382e-8f9b-9300a64ac3cd # decode and dump DCE 1.1 v3 UUID (name based)