On 10/07/2020 15:44, paul.elder@xxxxxxxxxxxxxxxx wrote: > On Fri, Jul 10, 2020 at 03:33:25PM +0200, Hans Verkuil wrote: >> On 10/07/2020 15:25, Laurent Pinchart wrote: >>> Hi Paul, >>> >>> Thank you for the patch. >>> >>> On Fri, Jul 10, 2020 at 10:18:12PM +0900, Paul Elder wrote: >>>> Add a --version option to v4l2-compliance to retrieve the version of >>>> v4l2-compliance. >>>> >>>> Signed-off-by: Paul Elder <paul.elder@xxxxxxxxxxxxxxxx> >>>> --- >>>> utils/v4l2-compliance/v4l2-compliance.cpp | 11 +++++++++++ >>>> 1 file changed, 11 insertions(+) >>>> >>>> diff --git a/utils/v4l2-compliance/v4l2-compliance.cpp b/utils/v4l2-compliance/v4l2-compliance.cpp >>>> index 4b45f110..72b9768f 100644 >>>> --- a/utils/v4l2-compliance/v4l2-compliance.cpp >>>> +++ b/utils/v4l2-compliance/v4l2-compliance.cpp >>>> @@ -79,6 +79,7 @@ enum Option { >>>> OptMediaBusInfo = 'z', >>>> OptStreamFrom = 128, >>>> OptStreamFromHdr, >>>> + OptVersion, >>>> OptLast = 256 >>>> }; >>>> >>>> @@ -153,9 +154,15 @@ static struct option long_options[] = { >>>> {"stream-all-formats", optional_argument, 0, OptStreamAllFormats}, >>>> {"stream-all-io", no_argument, 0, OptStreamAllIO}, >>>> {"stream-all-color", required_argument, 0, OptStreamAllColorTest}, >>>> + {"version", no_argument, 0, OptVersion}, >>>> {0, 0, 0, 0} >>>> }; >>>> >>>> +static void version() >>>> +{ >>>> + printf("v4l2-compliance " PACKAGE_VERSION "\n"); >>> >>> Is it enough to rely on the v4l-utils package version, or should we add >>> a git commit count as well ? The traditional version number will make it >>> difficult to test for features added between two released versions. > > Yeah, it might be useful. > >> If you add a version option, then v4l2-compliance should also show the SHA. >> It's already available (grep for SHA), so easy enough to add here. > > Oh yeah we could use that. > >> Also, if you add --version here, then it really should be added to most >> other utils as well (certainly media-ctl and cec-follower/ctl/compliance). > > Okay, I can add that. > > For v4l2-ctl and the other tools, would it be better like: > > v4l2-ctl 1.21.0-deadbeef > > Or like what v4l2-compliance has: > > v4l2-compliance SHA: 3b22ab02b960e4d1e90618e9fce9b7c8a80d814a, 64 bits, 64-bit time_t > > v4l2-compliance 1.21.0 The SHA is only necessary for the compliance tests (v4l2/cec-compliance). It's not needed for the others. The PACKAGE_VERSION is fine for non-compliance utilities. For v4l2/cec-compliance I would like to see this output: v4l2-compliance 1.21.0 v4l2-compliance SHA: 3b22ab02b960e4d1e90618e9fce9b7c8a80d814a, 64 bits, 64-bit time_t cec-compliance 1.21.0 cec-compliance SHA: 3b22ab02b960e4d1e90618e9fce9b7c8a80d814a The SHA may not be available, in that case show "not available". Regards, Hans > > > > > > Thanks, > > Paul > >>>> +} >>>> + >>>> static void usage() >>>> { >>>> printf("Usage:\n"); >>>> @@ -244,6 +251,7 @@ static void usage() >>>> printf(" -P, --no-progress Turn off progress messages.\n"); >>>> printf(" -T, --trace Trace all called ioctls.\n"); >>>> printf(" -v, --verbose Turn on verbose reporting.\n"); >>>> + printf(" --version Show version information.\n"); >>>> #ifndef NO_LIBV4L2 >>>> printf(" -w, --wrapper Use the libv4l2 wrapper library.\n"); >>>> #endif >>>> @@ -1664,6 +1672,9 @@ int main(int argc, char **argv) >>>> case OptNoProgress: >>>> no_progress = true; >>>> break; >>>> + case OptVersion: >>>> + version(); >>>> + std::exit(EXIT_SUCCESS); >>>> case ':': >>>> fprintf(stderr, "Option `%s' requires a value\n", >>>> argv[optind]); >>> >>