From nobody Tue Feb 10 09:54:26 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1745944374; cv=none; d=zohomail.com; s=zohoarc; b=dpClUXTLi9w5CSjmFML7DWr3Y8oDlWkFnL4EEbJmFeyJkd5mf7ApggqrpnpHTwApPgiN/C/sG+To8fnQCSbWHLTT2uXhwPak4zzYFhdZJHkE17Kd6J/KMWy0iCHc1YbsjZEbMJ9PSe6Qhn0/Jc0uqE60zz40uuCImiuxjhmyQxQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1745944374; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=S0W4rjS2ztSb/BLdpUMpJKYaRm/fmkPTpxWrZeMfG94=; b=JI3GQs5MJoifz76xSPjFsHmjX62Kra3GmrYFKBmx+ssY+61Jzz7reXzqYmlzgavS3ABwbFZ3zNLFh1CBdn7g8oMEbRwzORYL2vOmCM6R6gjr9tfSUsjTpWT3aZFQ+BEDmd8b/29OjrSo/XY5QRvL/8Q58MDqkNGPHnZnhlX7ZSk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1745944374887585.1518184654528; Tue, 29 Apr 2025 09:32:54 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1u9nsf-0004IN-DD; Tue, 29 Apr 2025 12:32:26 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1u9nsZ-0004CJ-Mn for qemu-devel@nongnu.org; Tue, 29 Apr 2025 12:32:19 -0400 Received: from mail-wr1-x435.google.com ([2a00:1450:4864:20::435]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1u9nsX-0004f0-3u for qemu-devel@nongnu.org; Tue, 29 Apr 2025 12:32:18 -0400 Received: by mail-wr1-x435.google.com with SMTP id ffacd0b85a97d-39c1ef4acf2so4725042f8f.0 for ; Tue, 29 Apr 2025 09:32:16 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [2001:8b0:1d0::2]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a073ca4cbcsm14176326f8f.25.2025.04.29.09.32.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 29 Apr 2025 09:32:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1745944335; x=1746549135; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=S0W4rjS2ztSb/BLdpUMpJKYaRm/fmkPTpxWrZeMfG94=; b=YDApYYNng/YnsKWN7AwXVS0AQIvpldONnjPRRljxtn7Ge83Ghj7klSqfV6mKANbFD7 OHDzd0OhKFh1h0VxhECYKLsizHto+0RfekO3+pYYCU7EfK+7NIsqOrnu15LWeMgRiyHq TKXbigEF13i4oWt1zTnRt2OOVOasz3IdnAhIUpue7Y1+lQ6Avhgw4MmOi0bYiCVBAbTz GGBqLM+IqSgImnBCpJJLc7AkS1N5sr9QfJ3cf/nqrmmnvF/9/g9SnwiExsnyLqz4p2bj 3esTMZ7kwQQzqewTOfwqxV3B40uMlQYJiRvpWhI0L+1DAqUCIHBJS1xMkwrRx1pr3dci /nLg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745944335; x=1746549135; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=S0W4rjS2ztSb/BLdpUMpJKYaRm/fmkPTpxWrZeMfG94=; b=FiTbFMmGNfZHtIl0jPzQuZbn61utbQOHuUQZHtdpyWElCebaU1s9WTbPYZNbQ0lKlJ nsZWL17dNMKbvmYx5N8UIQkEZ6aYjbKYMyTMAQ1y1DAf4rnsFr7KS9lNDhEmAcol2v3v jqEyLVigKQgIc/UN6UKco1Zm4JI1AJ2IHYAK34kPjbu1es+OPb0Bws2UAoQAWv+AOIEO GSqEJeB3HcwlDALcfXcdqdqaEc405XzB9pZfJxZF536WdexmN6M+qo2zv4/zO99Kd1Dw avlR/MzrR0Tz40pVBlWztDU/iVLFASVEMcFLenwvXAAoowxD60+1Yni1EuZiG1hn50Z1 oZEw== X-Gm-Message-State: AOJu0YycevTT8EOCffXW1ngUmkXsTyOKj43dYDZc9U1XsIDFaLBz+MAi BJoieS54RLuaP89tC6Nu2MJKgoPAIW//pVrSGXy1MHAaTaRnLRuX85FAPqYipKTuoiJgZq84xYZ U X-Gm-Gg: ASbGncs8/BAABNaHj3uEPw/yLRFb+7YrHoyKbl2qBb5vTpjh+9cWVf0C4yxxdGIhzyQ lhd/QYU/X/iSLDPRALH5RF9wSbMC2Th+9+wRnz2CAgdwcvDRFcf/n8DmhOzQvnBw0K2LzvECfI7 Zy6IH0vSCWrwjckPaG5qJQlVXxYfZSHottVRxafOyW1+kkR6CnV/jQbq55yFatuRugPPTwlA/m7 MoblE3GoFmM+V+fKMze/ojgkBTgy8G8fJr1YWrvbwAudMlSoJHGhVplr+ySyECSx0anc5pUdFw6 D/UnAdMUffZtfhCsBdembU3KVlNOeULRomQHrEzpSy/DE9s= X-Google-Smtp-Source: AGHT+IGHzrDKjo4Jwq74ZfCA2MdpBeNFsw+T51/o7ZYv6C6fi8FyXxBW6wu5dGXBh5hEI69OvZHHkg== X-Received: by 2002:a05:6000:4382:b0:3a0:7a8f:fc73 with SMTP id ffacd0b85a97d-3a08f79dc65mr23172f8f.14.1745944335481; Tue, 29 Apr 2025 09:32:15 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Cc: John Snow , =?UTF-8?q?Alex=20Benn=C3=A9e?= Subject: [PATCH 1/2] docs: Create a uniquelabel Sphinx extension Date: Tue, 29 Apr 2025 17:32:11 +0100 Message-ID: <20250429163212.618953-2-peter.maydell@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250429163212.618953-1-peter.maydell@linaro.org> References: <20250429163212.618953-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::435; envelope-from=peter.maydell@linaro.org; helo=mail-wr1-x435.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1745944377011019000 Content-Type: text/plain; charset="utf-8" Sphinx requires that labels within documents are unique across the whole manual. This is because the "create a hyperlink" directive specifies only the name of the label, not a filename+label. Some Sphinx versions will warn about duplicate labels, but even if there is no warning there is still an ambiguity and no guarantee that the hyperlink will be created to the right target. For QEMU this is awkward, because we have various .rst.inc fragments which we include into multiple .rst files. If you define a label in the .rst.inc file then it will be a duplicate label. We have mostly worked around this by not putting labels into those .rst.inc files, or by adding "insert a label" functionality into the hxtool extension (see commit 1eeb432a953b0 "doc/sphinx/hxtool.py: add optional label argument to SRST directive"). This Sphinx extension adds a "uniquelabel" directive, which creates a label which is made unique by adding the name of the document to the label. The name of the generated label is "dir/file-labelname"; this is patterned on the generated label names that the hxtool SRST(label) directive creates. Signed-off-by: Peter Maydell --- docs/conf.py | 1 + docs/sphinx/uniquelabel.py | 74 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 75 insertions(+) create mode 100644 docs/sphinx/uniquelabel.py diff --git a/docs/conf.py b/docs/conf.py index 7b5712e122f..562db95bbf8 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -67,6 +67,7 @@ 'qapi_domain', 'qapidoc', 'qmp_lexer', + 'uniquelabel', ] =20 if sphinx.version_info[:3] > (4, 0, 0): diff --git a/docs/sphinx/uniquelabel.py b/docs/sphinx/uniquelabel.py new file mode 100644 index 00000000000..cc4ab7f31c0 --- /dev/null +++ b/docs/sphinx/uniquelabel.py @@ -0,0 +1,74 @@ +# coding=3Dutf-8 +# +# Copyright (c) 2025 Linaro +# +# SPDX-License-Identifier: GPL-2.0-or-later +# +# Sphinx extension to create a unique label by concatenating +# the name of the origin document with the label text. +# +# Sphinx requires that labels within documents are unique across +# the whole manual. This is because the "create a hyperlink" directive +# specifies only the name of the label, not a filename+label. +# Some Sphinx versions will warn about duplicate labels, but +# even if there is no warning there is still an ambiguity and no +# guarantee that the hyperlink will be created to the right target. +# +# For QEMU this is awkward, because we have various .rst.inc fragments +# which we include into multiple .rst files. If you define a label in +# the .rst.inc file then it will be a duplicate label. +# +# The uniquelabel directive is our fix for this: it creates a label +# whose name includes the name of the top level .rst file. This is then +# unique even if the .rst.inc file is included in multiple places, and +# when we create a hyperlink we can explicitly specify which label we +# are targeting. +# +# Concretely, if you have a foo/bar.rst and a foo/baz.rst that +# both include wat.rst.inc, then in wat.rst.inc you can write +# .. uniquelabel:: mylabel +# and it will be as if you had written a reference label: +# .. _foo/bar-mylabel +# or +# .. _foo/baz-mylabel +# depending on which file included wat.rst.inc, and you can link to +# whichever one you intend via any of the usual markup, e.g. +# `documentation of the thing in bar `. + +"""uniquelabel is a Sphinx extension that implements the uniquelabel direc= tive""" + +from docutils import nodes +from docutils.statemachine import ViewList +from docutils.parsers.rst import directives, Directive +import sphinx + +__version__ =3D '1.0' + +class UniqueLabelDocDirective(Directive): + """Create a unique label by including the docname""" + required_arguments =3D 1 + optional_arguments =3D 0 + has_content =3D False + + def run(self): + env =3D self.state.document.settings.env + label =3D self.arguments[0] + + refline =3D ".. _" + env.docname + "-" + label + ":" + + rstlist =3D ViewList() + rstlist.append(refline, "generated text", 0) + + node =3D nodes.paragraph() + self.state.nested_parse(rstlist, 0, node) + return node.children + +def setup(app): + """ Register uniquelabel directive with Sphinx""" + app.add_directive('uniquelabel', UniqueLabelDocDirective) + + return dict( + version =3D __version__, + parallel_read_safe =3D True, + parallel_write_safe =3D True + ) --=20 2.43.0 From nobody Tue Feb 10 09:54:26 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1745944426; cv=none; d=zohomail.com; s=zohoarc; b=BKmMFlcV29TXw+4nklsHiUEL0H9VI9en1ypODb2/Jt+JzlfJiW46amvKfNvXJD1ZzTYMcYppbMe8UOSE2MDJFJOK5vXeN+vK1RPCeyLTlOtQQ8bgYm+NBWAXTNIGegCeFZ7LUTR+ZEPwhvCfyxEIqLpd8NjVamFL4IerNrx6iEs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1745944426; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=R9X12hAVFdbebjHYEQDRzia04epp7Dk4I6xOhWrWV8E=; b=KiBb8laFMyrfQVPY/6luRMm8uPqHO1S/ausqdqbCgId+ogO2sXuDzfHRbBvTXWQsqEjMrugvu8FUM0iyPH9m9qHMVLm3ZKNXq05SX9+7CoJ1TajVPAlFcTh4JGKyBSbDfJcElCwLQ5aJ3Zdzungtr9ShkYN2f6sm1Av+yWPtBRw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1745944426227534.1955642931973; Tue, 29 Apr 2025 09:33:46 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1u9nsx-0004XO-Ct; Tue, 29 Apr 2025 12:32:43 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1u9nsb-0004G4-A4 for qemu-devel@nongnu.org; Tue, 29 Apr 2025 12:32:23 -0400 Received: from mail-wr1-x431.google.com ([2a00:1450:4864:20::431]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1u9nsY-0004fM-Jp for qemu-devel@nongnu.org; Tue, 29 Apr 2025 12:32:20 -0400 Received: by mail-wr1-x431.google.com with SMTP id ffacd0b85a97d-39ac9aea656so7204212f8f.3 for ; Tue, 29 Apr 2025 09:32:17 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [2001:8b0:1d0::2]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a073ca4cbcsm14176326f8f.25.2025.04.29.09.32.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 29 Apr 2025 09:32:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1745944336; x=1746549136; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=R9X12hAVFdbebjHYEQDRzia04epp7Dk4I6xOhWrWV8E=; b=QEjWfLW1b1uDEffAAvlEF6Lo8mCYXOInkxjKAq5NTYCTxXd4paXAuDjSV1oXOZkIDf fn9jA2txfZrRJYGdqoXPYiDVSwh0EV/1TJFDzIdWLWVpERXL15ZngmcPRdzD4OUa9Vmr xXlT3GjP/TPfvNPo67cep4PXW5xta7V5p3Dea3A9CsoWgzTaxdnbc/XPae0f5xGNZzbO /jt+Wt30/cJMChcr/Z2gYI2Wx4baDrmnfPbbcgndVPao0AFshaslbxuTnaXnbewb8AzI YPvVDDzNNaJFn7ceYX8HLxY+8/nq048k5wUpZrkZzpRcIFcHYdN5cMNnpY4nzSipTZQj w9tw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745944336; x=1746549136; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=R9X12hAVFdbebjHYEQDRzia04epp7Dk4I6xOhWrWV8E=; b=Z7KrzehU45UU61PN/okMOKtytTXvb79z+cQNLrCDuK0KzsGMChnAzA2v0ltpGUg9Mk AILDKNkMRi8RijHxno83vTNo3hj3r4KrnClZgXfJoW9vuUhcqCX+qtPl3p++gSATOAbT 4o6wrK+OMNK6XX0sxrJM3SmzHp5kR04JmbDWqh7aUKh5kUNbmB6Wf4bP/QfMbU8zwGSq lA0RKikhvbA8UXmeq7GtXht3Ouc1zz9M++Ldfih2tiONtgb/clSSR0k2XkqZSH9DkzbN yp3LWCsLLdKvQbhBQmmUcv5aX0WQAkZMYlcHo0io85Webicr03X7XDjm+NFvPrsqXg1a /9rg== X-Gm-Message-State: AOJu0YzqsxHgt5LK5kkkGsby4BcpySyjBVfjqag9Wxtd+P1SFY0c2zfq WJUoF+KJVHFWsXWOC1q7CAhjjMNIdPnA4tHJh9A08lnXNQ4bNXdftmyRZ87xRmNTv5W5ROafDbg Q X-Gm-Gg: ASbGnct6fgGZDI4Tch10XOkq5WCW4O9oXf3r24AG7nfiS3zvPLJneysRzHCLutvsixu bonYZqrW2kCJrq3aZJFGult32Xu137eq3nHJEj5O8rqRcm8KaTIwtacZzU59kNMt6uqAsBEVS9s jJqoHmIW2Ixz3ohSju0SPkYnCBDU1cbKK++3WhRE02v+m2UP8ZfRYMruVFJqDVm5aDgG/maeir7 G6WTO33whth6TQ/6EPyFLYnP9k3XQcQgyx8sf6gBZ9CszZTRzm7EmVO+AiQHnD7wJBOqf3qlN+z Zchkmbf1+uC+47u3ExO0TRpw9IRTpcwQjtjWsYlcybYbACo= X-Google-Smtp-Source: AGHT+IHmd6wr0LEUIg/GUJzVo23tmjG34a5HjAQD10PRGaFf+B5aNUmPV+ImnL1Fsm1q0Z+u9t1Rgw== X-Received: by 2002:a05:6000:4304:b0:39c:141a:6c67 with SMTP id ffacd0b85a97d-3a08f7a3ff1mr16922f8f.45.1745944336468; Tue, 29 Apr 2025 09:32:16 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Cc: John Snow , =?UTF-8?q?Alex=20Benn=C3=A9e?= Subject: [PATCH 2/2] docs: Use uniquelabel in qemu-block-drivers.rst.inc Date: Tue, 29 Apr 2025 17:32:12 +0100 Message-ID: <20250429163212.618953-3-peter.maydell@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250429163212.618953-1-peter.maydell@linaro.org> References: <20250429163212.618953-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::431; envelope-from=peter.maydell@linaro.org; helo=mail-wr1-x431.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1745944427506019100 Content-Type: text/plain; charset="utf-8" Use the uniquelabel directive for the 'nbd' label in qemu-block-drivers.rst.inc. This avoids a complaint from some Sphinx versions about it being a duplicate label, and means that we can reliably ensure that the link in codebase.rst goes to the document file that we intend (i.e. the section of the HTML manual on disk images, not the HTML copy of the qemu-block-drivers manpage). Signed-off-by: Peter Maydell --- docs/devel/codebase.rst | 2 +- docs/system/qemu-block-drivers.rst.inc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/devel/codebase.rst b/docs/devel/codebase.rst index 40273e7d31e..f3f133e9adb 100644 --- a/docs/devel/codebase.rst +++ b/docs/devel/codebase.rst @@ -116,7 +116,7 @@ yet, so sometimes the source code is all you have. * `monitor `_: `Monitor ` implementation (HMP & QMP). * `nbd `_: - QEMU `NBD (Network Block Device) ` server. + QEMU `NBD (Network Block Device) ` server. * `net `_: Network (host) support. * `pc-bios `_: diff --git a/docs/system/qemu-block-drivers.rst.inc b/docs/system/qemu-bloc= k-drivers.rst.inc index cfe1acb78ae..1a405e47823 100644 --- a/docs/system/qemu-block-drivers.rst.inc +++ b/docs/system/qemu-block-drivers.rst.inc @@ -500,7 +500,7 @@ What you should *never* do: - expect it to work when loadvm'ing - write to the FAT directory on the host system while accessing it with th= e guest system =20 -.. _nbd: +.. uniquelabel:: nbd =20 NBD access ~~~~~~~~~~ --=20 2.43.0