Source: apktool
Version: 2.7.0+dfsg-7
Severity: important
Tags: ftbfs patch
User: [email protected]
Usertags: ftbfs-snakeyaml2

Dear Maintainer,

apktool 2.7.0+dfsg-7 FTBFS against snakeyaml/2.5+ds-1 currently in
experimental. I solved this with the enclosed patch.

I am planning to upload snakeyaml/2.5+ds-2 to unstable on the 27th of October or a bit later.

Best regards,

--
Pierre
diff -Nru apktool-2.7.0+dfsg/debian/changelog apktool-2.7.0+dfsg/debian/changelog
--- apktool-2.7.0+dfsg/debian/changelog	2024-01-10 20:08:30.000000000 +0100
+++ apktool-2.7.0+dfsg/debian/changelog	2025-10-11 23:26:06.000000000 +0200
@@ -1,3 +1,9 @@
+apktool (2.7.0+dfsg-8) UNRELEASED; urgency=medium
+
+  * Building against snakeyaml 2.x
+
+ -- Pierre Gruet <[email protected]>  Sat, 11 Oct 2025 23:26:06 +0200
+
 apktool (2.7.0+dfsg-7) unstable; urgency=medium
 
   * Team upload.
diff -Nru apktool-2.7.0+dfsg/debian/control apktool-2.7.0+dfsg/debian/control
--- apktool-2.7.0+dfsg/debian/control	2024-01-10 17:41:24.000000000 +0100
+++ apktool-2.7.0+dfsg/debian/control	2025-10-11 23:26:06.000000000 +0200
@@ -21,7 +21,7 @@
  libstringtemplate-java,
  libxmlunit-java,
  libxpp3-java,
- libyaml-snake-java,
+ libyaml-snake-java (>= 2.5+ds),
  proguard-cli
 Standards-Version: 4.5.1
 Rules-Requires-Root: no
@@ -45,7 +45,7 @@
  libstringtemplate-java,
  libxmlunit-java,
  libxpp3-java,
- libyaml-snake-java,
+ libyaml-snake-java (>= 2.5+ds),
  ${misc:Depends}
 Recommends: ${apktool:Recommends}
 Description: tool for reverse engineering Android apk files
diff -Nru apktool-2.7.0+dfsg/debian/maven.rules apktool-2.7.0+dfsg/debian/maven.rules
--- apktool-2.7.0+dfsg/debian/maven.rules	2024-01-10 17:41:24.000000000 +0100
+++ apktool-2.7.0+dfsg/debian/maven.rules	2025-10-11 23:26:04.000000000 +0200
@@ -1,6 +1,6 @@
 
 junit junit * s/.*/4.x/ * *
-org.yaml snakeyaml * s/.*/1.x/ * *
+org.yaml snakeyaml * s/.*/2.x/ * *
 org.apache.commons commons-lang3 * s/.*/debian/ * *
 org.antlr antlr * s/.*/3.x/ * *
 org.antlr antlr-runtime * s/.*/3.x/ * *
diff -Nru apktool-2.7.0+dfsg/debian/patches/build.patch apktool-2.7.0+dfsg/debian/patches/build.patch
--- apktool-2.7.0+dfsg/debian/patches/build.patch	2024-01-10 17:41:24.000000000 +0100
+++ apktool-2.7.0+dfsg/debian/patches/build.patch	2025-10-11 23:26:06.000000000 +0200
@@ -58,7 +58,7 @@
 -                smali          : 'com.github.iBotPeaches.smali:smali:403e90375e',
 +                smali          : 'org.smali:smali:debian',
 +                proguard_gradle: 'net.sf.proguard:proguard-gradle:debian',
-+                snakeyaml      : 'org.yaml:snakeyaml:1.x',
++                snakeyaml      : 'org.yaml:snakeyaml:2.x',
                  xmlpull        : 'xpp3:xpp3:1.1.4c',
                  xmlunit        : 'xmlunit:xmlunit:1.6',
          ]
diff -Nru apktool-2.7.0+dfsg/debian/patches/series apktool-2.7.0+dfsg/debian/patches/series
--- apktool-2.7.0+dfsg/debian/patches/series	2024-01-10 20:08:30.000000000 +0100
+++ apktool-2.7.0+dfsg/debian/patches/series	2025-10-11 23:26:06.000000000 +0200
@@ -3,3 +3,4 @@
 use_system_aapt.patch
 build.patch
 CVE-2024-21633-Prevent-arbitrary-file-writes-with-malicious-resourc.patch
+snakeyaml2.patch
diff -Nru apktool-2.7.0+dfsg/debian/patches/snakeyaml2.patch apktool-2.7.0+dfsg/debian/patches/snakeyaml2.patch
--- apktool-2.7.0+dfsg/debian/patches/snakeyaml2.patch	1970-01-01 01:00:00.000000000 +0100
+++ apktool-2.7.0+dfsg/debian/patches/snakeyaml2.patch	2025-10-11 23:26:06.000000000 +0200
@@ -0,0 +1,40 @@
+Description: constructing Constructor and Representer derivatives with default
+ LoaderOptions and DumperOptions to comply with the interface of snakeyaml 2.x
+Author: Pierre Gruet <[email protected]>
+Forwarded: no
+Last-Update: 2025-10-12
+
+--- a/brut.apktool/apktool-lib/src/main/java/brut/androlib/meta/ClassSafeConstructor.java
++++ b/brut.apktool/apktool-lib/src/main/java/brut/androlib/meta/ClassSafeConstructor.java
+@@ -16,6 +16,7 @@
+  */
+ package brut.androlib.meta;
+ 
++import org.yaml.snakeyaml.LoaderOptions;
+ import org.yaml.snakeyaml.constructor.AbstractConstruct;
+ import org.yaml.snakeyaml.constructor.Constructor;
+ import org.yaml.snakeyaml.error.YAMLException;
+@@ -29,6 +30,7 @@
+     protected final List<Class<?>> allowableClasses = new ArrayList<>();
+ 
+     public ClassSafeConstructor() {
++        super(new LoaderOptions());
+         this.yamlConstructors.put(Tag.STR, new ConstructStringEx());
+ 
+         this.allowableClasses.add(MetaInfo.class);
+--- a/brut.apktool/apktool-lib/src/main/java/brut/androlib/meta/EscapedStringRepresenter.java
++++ b/brut.apktool/apktool-lib/src/main/java/brut/androlib/meta/EscapedStringRepresenter.java
+@@ -16,11 +16,13 @@
+  */
+ package brut.androlib.meta;
+ 
++import org.yaml.snakeyaml.DumperOptions;
+ import org.yaml.snakeyaml.nodes.Node;
+ import org.yaml.snakeyaml.representer.Representer;
+ 
+ public class EscapedStringRepresenter extends Representer {
+     public EscapedStringRepresenter() {
++        super(new DumperOptions());
+         RepresentStringEx representStringEx = new RepresentStringEx();
+         multiRepresenters.put(String.class, representStringEx);
+         representers.put(String.class, representStringEx);

Attachment: OpenPGP_signature.asc
Description: OpenPGP digital signature

Reply via email to