This is a multi-part message in MIME format.
--------------1.7.10.4
Content-Type: text/plain; charset=UTF-8; format=fixed
Content-Transfer-Encoding: 8bit

---
 debian/changelog |    2 ++
 dh_installdocs   |   35 ++++++++++++++++++++++++++++++-----
 2 files changed, 32 insertions(+), 5 deletions(-)


--------------1.7.10.4
Content-Type: text/x-patch; 
name="0001-support-having-the-same-document-id-in-different-pac.patch"
Content-Transfer-Encoding: 8bit
Content-Disposition: attachment; 
filename="0001-support-having-the-same-document-id-in-different-pac.patch"

diff --git a/debian/changelog b/debian/changelog
index 2ff9bfa..6eed10d 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -14,6 +14,8 @@ debhelper (9.20120609) UNRELEASED; urgency=low
     distutils installed. Closes: #683557
   * dh_icons: Improve documentation. Closes: #684895
   * Improve -X documentation. Closes: #686696
+  * Support installing multiple doc-base files which use the same doc-id.
+    (Closes: #525821)
 
  -- Joey Hess <jo...@debian.org>  Thu, 05 Jul 2012 08:51:07 -0600
 
diff --git a/dh_installdocs b/dh_installdocs
index 104b796..bb09ee3 100755
--- a/dh_installdocs
+++ b/dh_installdocs
@@ -54,12 +54,17 @@ and F<TODO> files will be installed as F<TODO.Debian> in 
non-native packages.
 
 Installed as doc-base control files. Note that the doc-id will be
 determined from the B<Document:> entry in the doc-base control file in
-question.
+question. In the event that multiple doc-base files in a single source
+package share the same doc-id, they will be installed to
+usr/share/doc-base/package instead of usr/share/doc-base/doc-id.
 
 =item debian/I<package>.doc-base.*
 
-If your package needs to register more than one document, you need multiple
-doc-base files, and can name them like this.
+If your package needs to register more than one document, you need
+multiple doc-base files, and can name them like this. In the event
+that multiple doc-base files of this style in a single source package
+share the same doc-id, they will be installed to
+usr/share/doc-base/package-* instead of usr/share/doc-base/doc-id.
 
 =back
 
@@ -298,9 +303,29 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
                        
doit("install","-g",0,"-o",0,"-d","$tmp/usr/share/doc-base/");
                }
        }
+       # check for duplicate document ids
+       my %used_doc_ids;
+       for my $fn (keys %doc_ids) {
+               $used_doc_ids{$doc_ids{$fn}}++;
+       }
        foreach my $fn (keys %doc_ids) {
-               doit("install","-g",0,"-o",0,"-m644","-p","debian/$fn",
-                    "$tmp/usr/share/doc-base/$doc_ids{$fn}");
+               # if this document ID is duplicated, we will install
+               # to usr/share/doc-base/packagename instead of
+               # usr/share/doc-base/doc_id. To allow for multiple
+               # conflicting doc-bases in a single package, we will
+               # install to usr/share/doc-base/packagename-extrabits
+               # if the doc-base file is
+               # packagename.doc-base.extrabits
+               if ($used_doc_ids{$doc_ids{$fn}}>1) {
+                       my $fn_no_docbase = $fn;
+                       $fn_no_docbase =~ s/\.doc-base(?:\.(.*))?/
+                           if (defined $1 and length $1) {"-$1"} else {''}/xe;
+                       doit("install","-g",0,"-o",0,"-m644","-p","debian/$fn",
+                            "$tmp/usr/share/doc-base/$fn_no_docbase");
+               } else {
+                       doit("install","-g",0,"-o",0,"-m644","-p","debian/$fn",
+                            "$tmp/usr/share/doc-base/$doc_ids{$fn}");
+               }
        }
 }
 

--------------1.7.10.4--



Cc: 
Bcc: 
Subject: 
Reply-To: 


Don Armstrong

-- 
Quite the contrary; they *love* collateral damage. If they can make
you miserable enough, maybe you'll stop using email entirely. Once
enough people do that, then there'll be no legitimate reason left for
anyone to run an SMTP server, and the spam problem will be solved.
 -- Craig Dickson in <20020909231134.GA18917@linux700.localnet>

http://www.donarmstrong.com              http://rzlab.ucr.edu


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to