Patch Detail
Show a patch.
GET /api/patches/23578/?format=api
{ "id": 23578, "url": "https://patchwork.libcamera.org/api/patches/23578/?format=api", "web_url": "https://patchwork.libcamera.org/patch/23578/", "project": { "id": 1, "url": "https://patchwork.libcamera.org/api/projects/1/?format=api", "name": "libcamera", "link_name": "libcamera", "list_id": "libcamera_core", "list_email": "libcamera-devel@lists.libcamera.org", "web_url": "", "scm_url": "", "webscm_url": "" }, "msgid": "<20250616142455.3424226-1-julien.vuillaumier@nxp.com>", "date": "2025-06-16T14:24:55", "name": "[v1] utils: gen-version: Fix dirty tree detection with out-of-source build", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "2d61a5d2a10e11916b631c2090f07db76992ea1e", "submitter": { "id": 190, "url": "https://patchwork.libcamera.org/api/people/190/?format=api", "name": "Julien Vuillaumier", "email": "julien.vuillaumier@nxp.com" }, "delegate": null, "mbox": "https://patchwork.libcamera.org/patch/23578/mbox/", "series": [ { "id": 5222, "url": "https://patchwork.libcamera.org/api/series/5222/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=5222", "date": "2025-06-16T14:24:55", "name": "[v1] utils: gen-version: Fix dirty tree detection with out-of-source build", "version": 1, "mbox": "https://patchwork.libcamera.org/series/5222/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/patches/23578/comments/", "check": "pending", "checks": "https://patchwork.libcamera.org/api/patches/23578/checks/", "tags": {}, "headers": { "Return-Path": "<libcamera-devel-bounces@lists.libcamera.org>", "X-Original-To": "parsemail@patchwork.libcamera.org", "Delivered-To": "parsemail@patchwork.libcamera.org", "Received": [ "from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id C3972C3237\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 16 Jun 2025 14:26:01 +0000 (UTC)", "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id B633D68DCB;\n\tMon, 16 Jun 2025 16:26:00 +0200 (CEST)", "from AS8PR04CU009.outbound.protection.outlook.com\n\t(mail-westeuropeazlp170110003.outbound.protection.outlook.com\n\t[IPv6:2a01:111:f403:c201::3])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 2ED3C68DC0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 16 Jun 2025 16:25:59 +0200 (CEST)", "from AM9PR04MB8147.eurprd04.prod.outlook.com\n\t(2603:10a6:20b:3e0::22)\n\tby AS8PR04MB8609.eurprd04.prod.outlook.com (2603:10a6:20b:424::9)\n\twith Microsoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.28;\n\tMon, 16 Jun 2025 14:25:57 +0000", "from AM9PR04MB8147.eurprd04.prod.outlook.com\n\t([fe80::eace:e980:28a4:ef8a]) by\n\tAM9PR04MB8147.eurprd04.prod.outlook.com\n\t([fe80::eace:e980:28a4:ef8a%5]) with mapi id 15.20.8835.027;\n\tMon, 16 Jun 2025 14:25:57 +0000" ], "Authentication-Results": [ "lancelot.ideasonboard.com; dkim=pass (2048-bit key;\n\tunprotected) header.d=nxp.com header.i=@nxp.com header.b=\"iEn9q0iP\";\n\tdkim-atps=neutral", "dkim=none (message not signed)\n\theader.d=none;dmarc=none action=none header.from=nxp.com;" ], "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n\tb=stRX7egt5aPv/O+3kFgCECapFk6jKw2oHwipOU2SKafoRamxOKvSbzSHlEpG8+5ELvo6cpflDPrBL2ATlRGmtfE3FBD8lFINWgorUdQOkNRZMX8dWd6bCSmycIcuSYnpoJVFHPrB7Y2pxY8UUf8HuFzcvoXiCU0Wn9WyEtWNPvx9WjRJO3vDnC2Vk5p0xK42EzrPBHHUF0DZogmV8SRqgDk8zASD4OLX5FRreHebEGKFYfKKVEjY7P9xak/T+YDP779it6k9cZb9djqaNWnMi7yv5uZZ2mcLrshs5dSuExvlwXnrus2hosHI5RZuHVRI3UwFFh+qsBybK2k5NPNbuQ==", "ARC-Message-Signature": "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n\ts=arcselector10001;\n\th=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;\n\tbh=o5xogzhlvYbS58XsTgdC/Iiv2c1CfpWFR8wwZ848BPg=;\n\tb=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\n\tsmtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com;\n\tdkim=pass header.d=nxp.com; arc=none", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1;\n\th=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n\tbh=o5xogzhlvYbS58XsTgdC/Iiv2c1CfpWFR8wwZ848BPg=;\n\tb=iEn9q0iPjuU2ObHTt6yXOUqwbIC36rb4PQtBX//W3dzJMYWUsJG6JEpLZsaNoTqpbFTKMeZpw04gTAETmrHG4qMl83smAOgrxx3anwgaMSkczybyRZVFRxXCxXqxoJyvSNyYnwdGZSNXbbhlY4VSxLzOFl0gVl7viKYUz5Q13Xl13XLIISJyP3ZM0dYKh+qgKSrTyZfBDyJcwAdWCe5br+b1Jt/2Jkxk9rQ6M3cSQEqEXuVjS7TKWMVeqFtk2LXOj97Pz/gTrSq3OKya+LE87FYUOrSR8WG1mJpvnZxhX6vZz91uaKgFDgBVuylNiD3bEOKWlurLJKRQBq0Mxe+uaQ==", "From": "Julien Vuillaumier <julien.vuillaumier@nxp.com>", "To": "libcamera-devel@lists.libcamera.org", "Cc": "Julien Vuillaumier <julien.vuillaumier@nxp.com>", "Subject": "[PATCH v1] utils: gen-version: Fix dirty tree detection with\n\tout-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", "Content-Transfer-Encoding": "8bit", "Content-Type": "text/plain", "X-ClientProxiedBy": "AM0PR10CA0036.EURPRD10.PROD.OUTLOOK.COM\n\t(2603:10a6:20b:150::16) To AM9PR04MB8147.eurprd04.prod.outlook.com\n\t(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;\n\tARA: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:;\n\tIPV:NLI; SFV:NSPM; H:AM9PR04MB8147.eurprd04.prod.outlook.com; PTR:;\n\tCAT:NONE; \n\tSFS:(13230040)(1800799024)(366016)(376014)(52116014)(38350700014);\n\tDIR: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\n\t(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": "<libcamera-devel.lists.libcamera.org>", "List-Unsubscribe": "<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>", "List-Archive": "<https://lists.libcamera.org/pipermail/libcamera-devel/>", "List-Post": "<mailto:libcamera-devel@lists.libcamera.org>", "List-Help": "<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>", "List-Subscribe": "<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>", "Errors-To": "libcamera-devel-bounces@lists.libcamera.org", "Sender": "\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>" }, "content": "Libcamera, when built for the Yocto distribution, has a spurious\n`-dirty` suffix in the git version associated to the library.\n\nGit version and dirty tree detection are generated at compilation time\nby the script gen-version.h, that eventually appends the `-dirty`\nsuffix. Dirty detection is done using the `git diff-index` command\nthat requires a prior `git update-index --refresh` to avoid false\npositive. However the index refresh is currently done only for\nin-source build.\n\nYocto builder (bitbake) uses out-of-source build. In that context, the\nfalse positives come from file timestamp change and hard link creation\nin the source tree, done by some of the builder tasks.\n\nThis changes is to have `git update-index --refresh` command executed\nalso in case of out-of-source build, to fix the false dirty\ndetections.\n\nIssue can be reproduced with commands:\ngit clone https://git.libcamera.org/libcamera/libcamera.git -b v0.5.1\ncd libcamera\nbuild_dir=$(realpath ../build)\nsrc_dir=$(realpath .)\n./utils/gen-version.sh \"$build_dir\" \"src_dir\"\n(0.5.1)\ntouch README.rst\n./utils/gen-version.sh \"$build_dir\" \"src_dir\"\n(0.5.1+dirty (2025-06-06T15:38:15CEST))\n\nSigned-off-by: Julien Vuillaumier <julien.vuillaumier@nxp.com>\n---\n utils/gen-version.sh | 5 +----\n 1 file changed, 1 insertion(+), 4 deletions(-)", "diff": "diff --git a/utils/gen-version.sh b/utils/gen-version.sh\nindex 1b818e9e..3f917ee8 100755\n--- a/utils/gen-version.sh\n+++ b/utils/gen-version.sh\n@@ -38,10 +38,7 @@ fi\n \n # Append a '-dirty' suffix if the working tree is dirty. Prevent false\n # positives due to changed timestamps by running git update-index.\n-if [ -z \"$build_dir\" ] || (echo \"$build_dir\" | grep -q \"$src_dir\")\n-then\n-\tgit update-index --refresh > /dev/null 2>&1\n-fi\n+git update-index --refresh > /dev/null 2>&1\n git diff-index --quiet HEAD || version=\"$version-dirty ($(date +%Y-%m-%dT%H:%M:%S%Z))\"\n \n # If a project version is provided, use it to replace the version number.\n", "prefixes": [ "v1" ] }