vodik / repose

an archlinux repo poking tool
GNU General Public License v2.0
128 stars 15 forks source link

pacman/makepkg 6.1.0 adds new field to PKGINFO #58

Open Narrat opened 8 months ago

Narrat commented 8 months ago

Hello, After the update to pacman 6.1.0 and packages created with it, repose fails for me with repose: failed to parse PKGINFO on (...). Quick look at the PKGINFO seems to show a new field xdata (xdata = pkgtype=pkg). There may be also changed behaviour of provides fields as pacman gained the feature of autodeps ( Replace libdepends and libprovides with autodeps ) Would it be possible that repose get an update in that regard? Or accept a PR if I or someone else get it working (in the hopes it is only an update like done with https://github.com/vodik/repose/issues/47 )?

Best regards

Narrat commented 8 months ago

Diff is based on latest tag:

diff --git a/src/package.h b/src/package.h
index 0a55975..4a6f732 100644
--- a/src/package.h
+++ b/src/package.h
@@ -32,7 +32,8 @@ enum pkg_entry {
     PKG_CHECKDEPENDS,
     PKG_FILES,
     PKG_BACKUP,
-    PKG_DELTAS
+    PKG_DELTAS,
+    PKG_XDATA
 };

 typedef struct pkg {
diff --git a/src/pkginfo.rl b/src/pkginfo.rl
index 909d8d7..d4daba1 100644
--- a/src/pkginfo.rl
+++ b/src/pkginfo.rl
@@ -43,7 +43,8 @@
            | 'optdepend'   %{ parser->entry = PKG_OPTDEPENDS; }
            | 'makedepend'  %{ parser->entry = PKG_MAKEDEPENDS; }
            | 'checkdepend' %{ parser->entry = PKG_CHECKDEPENDS; }
-           | 'backup'      %{ parser->entry = PKG_BACKUP; };
+           | 'backup'      %{ parser->entry = PKG_BACKUP; }
+           | 'xdata'       %{ parser->entry = PKG_XDATA; };

     entry = header ' = ' [^\n]* @store %emit '\n';
     comment = '#' [^\n]* '\n';

This helps at least to avoid repose aborting. But I'm missing the greater picture