From patchwork Mon Jun 16 14:24:55 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Julien Vuillaumier X-Patchwork-Id: 23578 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id C3972C3237 for ; Mon, 16 Jun 2025 14:26:01 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id B633D68DCB; Mon, 16 Jun 2025 16:26:00 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (2048-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.b="iEn9q0iP"; dkim-atps=neutral Received: from AS8PR04CU009.outbound.protection.outlook.com (mail-westeuropeazlp170110003.outbound.protection.outlook.com [IPv6:2a01:111:f403:c201::3]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 2ED3C68DC0 for ; Mon, 16 Jun 2025 16:25:59 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=stRX7egt5aPv/O+3kFgCECapFk6jKw2oHwipOU2SKafoRamxOKvSbzSHlEpG8+5ELvo6cpflDPrBL2ATlRGmtfE3FBD8lFINWgorUdQOkNRZMX8dWd6bCSmycIcuSYnpoJVFHPrB7Y2pxY8UUf8HuFzcvoXiCU0Wn9WyEtWNPvx9WjRJO3vDnC2Vk5p0xK42EzrPBHHUF0DZogmV8SRqgDk8zASD4OLX5FRreHebEGKFYfKKVEjY7P9xak/T+YDP779it6k9cZb9djqaNWnMi7yv5uZZ2mcLrshs5dSuExvlwXnrus2hosHI5RZuHVRI3UwFFh+qsBybK2k5NPNbuQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=o5xogzhlvYbS58XsTgdC/Iiv2c1CfpWFR8wwZ848BPg=; b=NKE3H2RIWpIYPKkFXAV9cDH7n08dM6VFQLZll7LlUxpobMAKqfvXRJKBgDS/Z9rtqKjhX5hbj90OQVK44hG31+M8Ozme+i1E98qY7O/3UvtjgYQR6aTkBdCPuG8tThavMZvgXKX+48SyUEooBOUXc/cTnxbj3p3yCUHs/9XP/OBnxV6K3rHu0/X65ulbkNrWuVui3z5kcVfZy9PyzmmWbL+0nfOopj7WNl21QRTy1B8phgptDE+mYnUVj82brSLZOeKbkGbYFqFEkgYksDWtn+oS+FoVIm1AMPXp4e0ECTcyedaiHXSIE86b9nwRnsQCvycSkTVg1oqBFKu15krG+w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=o5xogzhlvYbS58XsTgdC/Iiv2c1CfpWFR8wwZ848BPg=; b=iEn9q0iPjuU2ObHTt6yXOUqwbIC36rb4PQtBX//W3dzJMYWUsJG6JEpLZsaNoTqpbFTKMeZpw04gTAETmrHG4qMl83smAOgrxx3anwgaMSkczybyRZVFRxXCxXqxoJyvSNyYnwdGZSNXbbhlY4VSxLzOFl0gVl7viKYUz5Q13Xl13XLIISJyP3ZM0dYKh+qgKSrTyZfBDyJcwAdWCe5br+b1Jt/2Jkxk9rQ6M3cSQEqEXuVjS7TKWMVeqFtk2LXOj97Pz/gTrSq3OKya+LE87FYUOrSR8WG1mJpvnZxhX6vZz91uaKgFDgBVuylNiD3bEOKWlurLJKRQBq0Mxe+uaQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM9PR04MB8147.eurprd04.prod.outlook.com (2603:10a6:20b:3e0::22) by AS8PR04MB8609.eurprd04.prod.outlook.com (2603:10a6:20b:424::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.28; Mon, 16 Jun 2025 14:25:57 +0000 Received: from AM9PR04MB8147.eurprd04.prod.outlook.com ([fe80::eace:e980:28a4:ef8a]) by AM9PR04MB8147.eurprd04.prod.outlook.com ([fe80::eace:e980:28a4:ef8a%5]) with mapi id 15.20.8835.027; Mon, 16 Jun 2025 14:25:57 +0000 From: Julien Vuillaumier To: libcamera-devel@lists.libcamera.org Cc: Julien Vuillaumier Subject: [PATCH v1] utils: gen-version: Fix dirty tree detection with out-of-source build Date: Mon, 16 Jun 2025 16:24:55 +0200 Message-Id: <20250616142455.3424226-1-julien.vuillaumier@nxp.com> X-Mailer: git-send-email 2.34.1 X-ClientProxiedBy: AM0PR10CA0036.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:150::16) To AM9PR04MB8147.eurprd04.prod.outlook.com (2603:10a6:20b:3e0::22) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM9PR04MB8147:EE_|AS8PR04MB8609:EE_ X-MS-Office365-Filtering-Correlation-Id: 62d95f18-e3dc-4635-03a2-08ddace1b5e2 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|1800799024|366016|376014|52116014|38350700014; X-Microsoft-Antispam-Message-Info: X6IYKJICx4wHsi/fJOjRcmWQcU1qG/MmwYRpfuDl0nktU3rrf70nIKZ4V+iDb7miYiu41JLY6RgI204qixnkYCw7gYrmm7cV6zKmxffz5oDpyTfVF1PTTCpBwkS1B0G/JqKQNN+JeGo0YZ0DdeUM93tKF5XEDlH7Wn5GuKKf175ic6Jga8rgYNF0R6/9oOgN8Bq6sNQiRZbQMCl7PfmzzDbmp2uWpmON55UzxjTLrDrSQndMvsIObujQ6U/r1WFBjGY5qb0P6bViD3GG0LewOu4rlWhMIabeFhS30A9+4Z3sE7cbBfc2p3Dste0d5r1UNvzk9DWfRl/WGooJbAPLZezcJvnzo88p34QPwGbYoiRn7MAWN38YGa2Ap6ULWeKULIJ7ZpeuwzLpFlVoOLtPfbiwbD7WIrJQp1jCMAYy5B4uxovL1zYvpLxVqHR8+/XrRg5HhLGN14YUM7FkqAEV1/HbWgQGQh7y+JEAiAGfOu2/7vypLK2PdiYW1kSmu5sTEYg2gij7NYL1Qcmn6ciASEIXTqYP2WWq5z7rJ/dmN4M3KEORVh5OY8tIPOCxJV/F2Bi3q46tiWWoFwi1Qd8X7Tap57JPsKn4sfYRRAjUMeKzOkb54P8Bc9g7PizZ0k8xbEqwihyUWlk8oD/49qEJipJyMWeox6dA9zzFtHIwKaSr5yk7MWG3KjUdoOmtSKMnVfq5RQCcN3nz1PwqUEgqcasmyvJfC43tFigT5TxIRpScybopizQVYt0jdTibfPn9+eZDGX8biMvfjnYebsX5xxek8mp+MPaA6ei9l5ZGlJiSoI114xLDg9xu5sZeqwsuo2Z1P5FTcveGCUcju9ARabFuLgstBt8y4RHWzLr22wmGxqR9LS2xM3xcxO88fDNB4ZTIwJS7tTsDtprXanVNeM6BVmXqMJyyqKm58CWUMJDbEZCn/crT5h69IsnaUSzqysVeJ9roDrxspfCL/deA2n+hskHF69NikjXy0ogyCaEzq1S01lA67EfdM81EuSBu+m0Vsijen4a+Sr/hld1z5K/IlY+OicLkTf2JTB2jgcxa/273dU5Rjdd5EWg2jF3irOTaI8SjNoehQvuUNw/pRTOd9jhXnu3TYzekz83FVaJcIaPc1yJw1WcXIuFeiYtrdlrAkE4IJ3eHSO6Bkdni1Q8e/ZVENiK2Xk9HdaWjbDTmr43lD18DGndDd57GGSlM8DO979I9G/PTMDHUZMutOLRPt0z9ElkvqHJ4mEeORd+pSRLl3ZmMcZoXZdp2YUK3ElmylJqD28zZ11IJFMmXWUNXHA84ClgtTxv7Xl6kjCW8SQrELPcY3DSr6A+ZVMV3MfBubpzAoRoT3OYowgonEr+28rVV9znLkamLcPQ0R0MXQsFI8q2icN8Ro1MAWPSvIm3WNy7YHpS39sMo+ggSHdZRJbfhI84lqxPtq9BehsU= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM9PR04MB8147.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(366016)(376014)(52116014)(38350700014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: lNfa2rVTqtMJOupn9IGQzGzhoVZgZFO68nxTfrFcZh4qMDHve45F+lZmj+j/yxpQarCLNxJRXGxr6Idz9N8X4yCqKKLk1DO/BxhaQovP7Ta6/viYCUqQ5CPSwBQWqrqgfOek+aql2+eJltu4+A9FfKoeUNVBakuykOwDPurOGaVPskgy0EKS4QfbX70kij057rkjc6oXpCZqkf3bVKaXtiOwk28L3QpPAE487h9oBp5+uVs6LMMwxnsyaa0n352zLxQO+wamIR++SM60modv08BZhdxgJBBKMgSyTBljCk7amBnu3LYTqkktRuq7+w07+qVpDqrJ2hC7zlpq0k7RP46Z1t2pJIBs6N/t6arc+0HLZgmX5WFuXjVltGYS7BpIEtoRmdBDtizo/mLEgYSOXv+b51hJl8Pkh1zmb297652a+WB0lI7iUYm2c+gui1m6s82/dcxLjutBCNkApKlxB8SSjdmZGMjg4FrcoU0dGISPQ9hvHX+RcqHyE+MvV4byvllVRSe6WYCkFufPbGBYSeh41B0D0xRjvFaSM3JN86vC0y+gvwQWv9brbq5GFPYgg+1hMt/RzRk9oSM+OQBVxjJ3MqVxOd7QulmxUC6PYIHWkEcxwhUAq5DwPhhFRSOJB5FZp7B7+6tmTfh3Eq722EovHnvbPE7qPhAhBJrxmWtfUghUWPavx64BR7YCVaqO508SNh3v7i2r9lFJAu+yV/gNY6vHmfIY9KDoNLnb3/69Sq7mIOPg8HpVGfs1gat1qS3CqUoB2KwRby2cRakIbooTeEh/38XdNaTx239Rc0PtScitAhBuJu/2EtQG5l49K6TE3ygkQi3jaEuhxj6JaS61IcKsgLzNJYZrXiSOLFTnsYm2NdOgSeKp0mFE7n4tKnAhuPdIgQC6zBB6ja1XtxBnwKy7rJuWfVF2xTh6HjPEb9vc3057PTQZeWOhMs+QTuE0uzXCzZ1YqkypQBC1hIh4bsabvOWMvxOy0i86qEboak28tBiBQ31UapnaJr6wiOE6thJ+KMykK40BQO+ZCTFjwqsBwIE2fQgX7vvRtjeDCLQCP7AAn526x9rW9rWCRAsuIWqzURQltICRWJZW1owZ+pL4SWlZjyTO24loiN1G1gVbiO+tUj9khTtsqKLP+Cktutt+gncul8bJm0rN50/4m7hhomiOE/eW60Wm8HpbJ+ikbHXbeC50iAa+tJpkHS/pFPtGq+58B4g65jTEDf+hZ1ny13jiKckoTEdeKYHiZry3KIQ/78Zn0TyHpGsGv8Dg1rybiCax/F89XrtAzPXTZ7FVLyikN9gdCcvTAo7DgoVz6yEZryprY/sQ/mPbiu+BMsP3j7G9LeeRu0GrejuItotfqZ9nv5bF3qMXsOsmcJrUmC/TVdJvrmINagxd7a/zh3bQjSnstACQ+gyNk50NjQN0YV0pKFU9dmvPJhU34+O8J25hWV4Aq+VUnxsHBAHQhBfk2DdYr7ezEZ8cZAKZz8lnhCuLa2mChd5R+TwunzZT1RFDJL7Pp67+gxO0wPp+3jrosXaysASIFUrpqP7d3eBmP3q7Ymk0GA5WTdMOkx5TLjqwiaiKvzwGBE9dUd18GLNznNAyqvnKMezbOA== X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 62d95f18-e3dc-4635-03a2-08ddace1b5e2 X-MS-Exchange-CrossTenant-AuthSource: AM9PR04MB8147.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jun 2025 14:25:57.7295 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: GvwVIOAPL6FYM4HLGlW2oU5pd75R1JssEE6tB3EdsKUU56UQBqqNlseu+uZic0Igo/C1Rj8M7fhusAgmao15JEsTsm7oLQDPPwnEFl0dvr4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB8609 X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" Libcamera, when built for the Yocto distribution, has a spurious `-dirty` suffix in the git version associated to the library. Git version and dirty tree detection are generated at compilation time by the script gen-version.h, that eventually appends the `-dirty` suffix. Dirty detection is done using the `git diff-index` command that requires a prior `git update-index --refresh` to avoid false positive. However the index refresh is currently done only for in-source build. Yocto builder (bitbake) uses out-of-source build. In that context, the false positives come from file timestamp change and hard link creation in the source tree, done by some of the builder tasks. This changes is to have `git update-index --refresh` command executed also in case of out-of-source build, to fix the false dirty detections. Issue can be reproduced with commands: git clone https://git.libcamera.org/libcamera/libcamera.git -b v0.5.1 cd libcamera build_dir=$(realpath ../build) src_dir=$(realpath .) ./utils/gen-version.sh "$build_dir" "src_dir" (0.5.1) touch README.rst ./utils/gen-version.sh "$build_dir" "src_dir" (0.5.1+dirty (2025-06-06T15:38:15CEST)) Signed-off-by: Julien Vuillaumier --- utils/gen-version.sh | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/utils/gen-version.sh b/utils/gen-version.sh index 1b818e9e..3f917ee8 100755 --- a/utils/gen-version.sh +++ b/utils/gen-version.sh @@ -38,10 +38,7 @@ fi # Append a '-dirty' suffix if the working tree is dirty. Prevent false # positives due to changed timestamps by running git update-index. -if [ -z "$build_dir" ] || (echo "$build_dir" | grep -q "$src_dir") -then - git update-index --refresh > /dev/null 2>&1 -fi +git update-index --refresh > /dev/null 2>&1 git diff-index --quiet HEAD || version="$version-dirty ($(date +%Y-%m-%dT%H:%M:%S%Z))" # If a project version is provided, use it to replace the version number.