Package: mozilla-devscripts

While building enigmail for raspbian one of our autobuilders ran into the following error.

make[1]: Leaving directory `/«PKGBUILDDIR»'
  dh_xul-ext -a
dh_xul-ext: Unknown vendor "Raspbian" specified.

Some investigation revealed that the code uses "dpkg-vendor --query Vendor" to determine the vendor name. It then looks for a file called /usr/share/mozilla-devscripts/xul-app-data.csv.<Vendor>, if it doesn't find it it fails.

It appears the intent of this is to use different options on Debian and Ubuntu. However it leads to failure on other derivatives which is obviously undesirable.

You could try and add entries for all derivatives explicitly but I don't think that is a good soloution (in particular I belive we should strive to make life as easy as possible for new derivatives). IMO what you should be doing is distinguishing Ubuntu and it's derivatives from Debian and it's non-ubuntu based derivatives by using "dpkg-vendor --derives-from Ubuntu". I went ahead and implemented this.

Debdiff attatched, no intent to NMU.
diff -Nru mozilla-devscripts-0.34/debian/changelog 
mozilla-devscripts-0.34+rpi1/debian/changelog
--- mozilla-devscripts-0.34/debian/changelog    2013-04-15 10:55:22.000000000 
+0000
+++ mozilla-devscripts-0.34+rpi1/debian/changelog       2013-12-16 
01:25:26.000000000 +0000
@@ -1,3 +1,11 @@
+mozilla-devscripts (0.34+rpi1) jessie-staging; urgency=medium
+
+  * Use dpkg-vendor --derives-from Ubuntu instead of dpkg-vendor --query vendor
+    in dh_xul-ext so Ubuntu derivatives get treated like Ubuntu and non-ubuntu
+    based debian derivatives get treated like debian.
+
+ -- Peter Michael Green <plugw...@raspbian.org>  Mon, 16 Dec 2013 01:24:15 
+0000
+
 mozilla-devscripts (0.34) unstable; urgency=low
 
   * Add Iceowl to xpi:Depends auto-detection. Thanks to Matthias Schmitz for
diff -Nru mozilla-devscripts-0.34/dh_xul-ext 
mozilla-devscripts-0.34+rpi1/dh_xul-ext
--- mozilla-devscripts-0.34/dh_xul-ext  2012-12-07 00:57:57.000000000 +0000
+++ mozilla-devscripts-0.34+rpi1/dh_xul-ext     2013-12-16 01:08:33.000000000 
+0000
@@ -125,9 +125,18 @@
     if _VENDOR_ENV in os.environ:
         vendor = os.environ[_VENDOR_ENV]
     else:
-        cmd = ["dpkg-vendor", "--query", "Vendor"]
-        process = subprocess.Popen(cmd, stdout=subprocess.PIPE)
-        vendor = process.communicate()[0].strip()
+        #cmd = ["dpkg-vendor", "--query", "Vendor"]
+        #process = subprocess.Popen(cmd, stdout=subprocess.PIPE)
+        #vendor = process.communicate()[0].strip()
+        #Use dpkg-vendor --derives-from Ubuntu rathe than dpkg-vendor --query
+        #So Ubuntu derivatives get treated like ubuntu and non-ubuntu based
+        #Debian derivatives get treated like Debian.
+        cmd = ["dpkg-vendor", "--derives-from", "Ubuntu"]
+        retval = subprocess.call(cmd);
+        if (retval == 0):
+             vendor = "Ubuntu"
+        else: 
+             vendor = "Debian"
     return vendor
 
 def get_xul_apps(script_name, all_distros):

Reply via email to