[Git][haskell-team/haskell-devscripts][master] dh_haskell_provides_ghc: skip parsing .cabal files

Scott Talbert (@swt2c) gitlab at salsa.debian.org
Fri Nov 21 00:26:11 GMT 2025



Scott Talbert pushed to branch master at Debian Haskell Group / haskell-devscripts


Commits:
db85af99 by Scott Talbert at 2025-11-20T19:23:43-05:00
dh_haskell_provides_ghc: skip parsing .cabal files

This fixes dh_haskell_provides_ghc so it can be called from the ghc
package.  Also, fix the error messages which were broken.

- - - - -


3 changed files:

- debian/changelog
- dh_haskell_provides_ghc
- lib/Debian/Debhelper/Buildsystem/Haskell/Recipes.pm


Changes:

=====================================
debian/changelog
=====================================
@@ -1,3 +1,9 @@
+haskell-devscripts (0.16.43) unstable; urgency=medium
+
+  * dh_haskell_provides_ghc: skip parsing .cabal files
+
+ -- Scott Talbert <swt at techie.net>  Thu, 20 Nov 2025 19:22:56 -0500
+
 haskell-devscripts (0.16.42) unstable; urgency=medium
 
   * dh_haskell_depends_cabal: only operate on -dev and -prof packages


=====================================
dh_haskell_provides_ghc
=====================================
@@ -50,7 +50,9 @@ init(
     options => {
         'config-shipper=s' => \$dh{CONFIG_SHIPPER},
     });
-init_hs_env();
+init_hs_env(
+    parse_cabal => 0
+);
 
 for my $installable (@{ $dh{DOPACKAGES} }) {
 


=====================================
lib/Debian/Debhelper/Buildsystem/Haskell/Recipes.pm
=====================================
@@ -528,34 +528,41 @@ sub config_to_package_id {
 =cut
 
 sub init_hs_env {
+    my %params = (
+        parse_cabal => 1,
+        @_
+    );
+
     $ENV{DEB_DEFAULT_COMPILER} //= 'ghc';
 
     $ENV{DEB_GHC_DATABASE} = 'debian/tmp-db';
 
-    my @cabal_candidates = glob('*.cabal');
+    if ($params{parse_cabal}) {
+        my @cabal_candidates = glob('*.cabal');
 
-    error('No cabal file found')
-      unless @cabal_candidates;
+        die encode_utf8('No cabal file found')
+            unless @cabal_candidates;
 
-    error('More than one cabal file')
-      if @cabal_candidates > 1;
+        die encode_utf8('More than one cabal file')
+            if @cabal_candidates > 1;
 
-    my $cabal_path = $cabal_candidates[0];
-    my $cabal_contents = path($cabal_path)->slurp_utf8;
+        my $cabal_path = $cabal_candidates[0];
+        my $cabal_contents = path($cabal_path)->slurp_utf8;
 
-    error('Cannot get package name from cabal file')
-      unless $cabal_contents =~ /^ name \s* : \s* (\S*) \s* $/imx;
+        die encode_utf8('Cannot get package name from cabal file')
+            unless $cabal_contents =~ /^ name \s* : \s* (\S*) \s* $/imx;
 
-    my $package_name = lc $1;
+        my $package_name = lc $1;
 
-    $ENV{CABAL_PACKAGE} //= $package_name;
+        $ENV{CABAL_PACKAGE} //= $package_name;
 
-    error('Cannot get package version from cabal file')
-      unless $cabal_contents =~ /^ version \s* : \s* (\S*) \s* $/imx;
+        die encode_utf8('Cannot get package version from cabal file')
+            unless $cabal_contents =~ /^ version \s* : \s* (\S*) \s* $/imx;
 
-    my $package_version = $1;
+        my $package_version = $1;
 
-    $ENV{CABAL_VERSION} = $package_version;
+        $ENV{CABAL_VERSION} = $package_version;
+    }
 
     $ENV{DEB_ENABLE_TESTS} //= 'no';
     $ENV{DEB_ENABLE_HOOGLE} //= 'yes';



View it on GitLab: https://salsa.debian.org/haskell-team/haskell-devscripts/-/commit/db85af991e7ea1f71b2b162d2ec59cbdfd474f41

-- 
View it on GitLab: https://salsa.debian.org/haskell-team/haskell-devscripts/-/commit/db85af991e7ea1f71b2b162d2ec59cbdfd474f41
You're receiving this email because of your account on salsa.debian.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-haskell-commits/attachments/20251121/77fae29a/attachment-0001.htm>


More information about the Pkg-haskell-commits mailing list