[Git][java-team/stegosuite][upstream] 2 commits: New upstream version 0.9.3
Tobias Ilte (@menosmalo-guest)
gitlab at salsa.debian.org
Mon Oct 5 20:50:42 BST 2026
Tobias Ilte pushed to branch upstream at Debian Java Maintainers / stegosuite
Commits:
ee93460d by Tobias Ilte at 2026-10-05T12:33:08-04:00
New upstream version 0.9.3
- - - - -
84701b68 by Tobias Ilte at 2026-10-05T15:49:17-04:00
New upstream version 0.9.4
- - - - -
6 changed files:
- CHANGELOG
- Makefile
- README.md
- pom.xml
- − src/main/resources/logback.xml
- + src/test/java/org/stegosuite/MessagesBundleTest.java
Changes:
=====================================
CHANGELOG
=====================================
@@ -1,3 +1,11 @@
+0.9.4
+ - fix broken pom file
+ - add make help command
+
+0.9.3
+ - fix missing resource exception (the i18n bundle was not on the classpath root)
+ - remove obsolete logback.xml
+
0.9.2
- rename the appstream metainfo file to match its component id
=====================================
Makefile
=====================================
@@ -1,9 +1,9 @@
-# Convenience wrappers around the Maven build profiles (see README.md).
+.DEFAULT_GOAL := help
+# Convenience wrappers around the Maven build profiles.
#
# make plain jar (default build, not self-contained)
# make jar same as above
# make standalone self-contained jar + upstream .deb
-# make deb same as standalone (produces the .deb)
# make distro slim jar whose manifest Class-Path points at system jars
# make native-image jar with picocli native-image metadata
# make test run the test suite
@@ -31,16 +31,14 @@ SYSTEM_JAR_DIR ?= /usr/share/java
.PHONY: jar standalone deb distro native-image test clean
-jar:
+jar: ## plain jar (default build, not self-contained)
$(MVN) clean package
-standalone:
+standalone: ## self-contained jar + upstream .deb
$(MVN) -Pstandalone clean package
-deb: standalone
-
-distro:
- $(MVN) -Pdistro -Dstegosuite.distro=true \
+distro: ## slim jar whose manifest Class-Path points at system jars
+ $(MVN) -Dstegosuite.distro=true \
-Dswt.version=$(SWT_VERSION) \
-Dpicocli.version=$(PICOCLI_VERSION) \
-Dstegosuite.systemJarDir=$(SYSTEM_JAR_DIR) \
@@ -48,11 +46,14 @@ distro:
-Dmaven.test.skip=true \
clean package
-native-image:
+native-image: ## jar with picocli native-image metadata
$(MVN) -Pnative-image clean package
-test:
+test: ## run the test suite
$(MVN) test
-clean:
+clean: ## remove target/
$(MVN) clean
+
+help: ## This help.
+ @awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' $(MAKEFILE_LIST)
=====================================
README.md
=====================================
@@ -14,25 +14,18 @@ With Stegosuite you can hide information in image files.
* Easy to use
## Build instructions
-To build the jar-file, Apache Maven and at least Java 21 need to be installed.
+To build a self-contained jar (and deb-package) type:
- mvn package
-
-builds a plain jar (not self-contained). The self-contained jar and the deb-package are built with
-
- mvn -Pstandalone package
-
-and Maven will create a jar-file for you depending on your operating system.
+ make standalone
Distributions that ship SWT and picocli as system jars can build a slim jar instead:
- mvn -Pdistro -Dswt.version=<version> -Dpicocli.version=<version> package
+ mvn -Dstegosuite.distro=true -Dswt.version=<version> -Dpicocli.version=<version> package
-The manifest Class-Path then points at /usr/share/java/<artifactId>.jar; use
+The manifest Class-Path then points at `/usr/share/java/<artifactId>.jar`. Use
`-Dstegosuite.systemJarDir=<dir>` if your distribution installs jars elsewhere.
-
-A `Makefile` wraps all of the above: `make jar`, `make standalone` (or `make deb`),
-`make distro`, `make native-image` and `make test`.
+The `-Dstegosuite.distro=true` switch is what activates the profile — `-Pdistro`
+alone would leave the OS profiles on and add a second, platform-specific SWT.
## How to run
Run the jar file with java -jar.
\ No newline at end of file
=====================================
pom.xml
=====================================
@@ -3,7 +3,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.stegosuite</groupId>
<artifactId>stegosuite</artifactId>
- <version>0.9.2</version>
+ <version>0.9.4</version>
<name>stegosuite</name>
<description>A free steganography tool to hide information in image files.</description>
<url>https://codeberg.org/tob/stegosuite</url>
@@ -28,6 +28,12 @@
<resources>
<resource>
<directory>src/main/resources</directory>
+ <excludes>
+ <exclude>i18n/**</exclude>
+ </excludes>
+ </resource>
+ <resource>
+ <directory>src/main/resources/i18n</directory>
</resource>
</resources>
<plugins>
@@ -126,11 +132,6 @@
</build>
<dependencies>
- <dependency>
- <groupId>${swt.groupId}</groupId>
- <artifactId>${swt.artifactId}</artifactId>
- <version>${swt.version}</version>
- </dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
@@ -145,6 +146,62 @@
</dependencies>
<profiles>
+ <!-- Distro mode is entered with -Dstegosuite.distro=true (see debian/maven.properties
+ and `make distro`), never with -Pdistro alone: profile ids cannot deactivate other
+ profiles, so only the property switches the OS profiles below off and guarantees
+ that exactly one SWT coordinate ends up in the dependency list. -->
+ <profile>
+ <id>distro</id>
+ <activation>
+ <property>
+ <name>stegosuite.distro</name>
+ </property>
+ </activation>
+ <dependencies>
+ <dependency>
+ <groupId>org.eclipse.swt</groupId>
+ <artifactId>org.eclipse.swt</artifactId>
+ <version>${swt.version}</version>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ <!-- Mirror Debian's maven.ignoreRules: the distro's picocli-codegen
+ ships neither ManPageGenerator nor AutoComplete, and the man pages
+ are already committed in misc/man/, so no man page generation. -->
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>exec-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>generateManPages</id>
+ <phase>none</phase>
+ </execution>
+ <execution>
+ <id>generate-autocompletion-script</id>
+ <phase>none</phase>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <artifactId>maven-jar-plugin</artifactId>
+ <configuration>
+ <archive>
+ <manifest>
+ <addClasspath>true</addClasspath>
+ <mainClass>org.stegosuite.Stegosuite</mainClass>
+ <classpathLayoutType>custom</classpathLayoutType>
+ <customClasspathLayout>${stegosuite.systemJarDir}/$${artifact.artifactId}$${dashClassifier?}.jar</customClasspathLayout>
+ </manifest>
+ <manifestEntries>
+ <Enable-Native-Access>ALL-UNNAMED</Enable-Native-Access>
+ </manifestEntries>
+ </archive>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
<profile>
<id>native-image</id>
<build>
@@ -285,10 +342,13 @@
<name>!stegosuite.distro</name>
</property>
</activation>
- <properties>
- <swt.groupId>org.eclipse.platform</swt.groupId>
- <swt.artifactId>org.eclipse.swt.gtk.linux.x86_64</swt.artifactId>
- </properties>
+ <dependencies>
+ <dependency>
+ <groupId>org.eclipse.platform</groupId>
+ <artifactId>org.eclipse.swt.gtk.linux.x86_64</artifactId>
+ <version>${swt.version}</version>
+ </dependency>
+ </dependencies>
</profile>
<profile>
<id>win64</id>
@@ -301,10 +361,13 @@
<name>!stegosuite.distro</name>
</property>
</activation>
- <properties>
- <swt.groupId>org.eclipse.platform</swt.groupId>
- <swt.artifactId>org.eclipse.swt.win32.win32.x86_64</swt.artifactId>
- </properties>
+ <dependencies>
+ <dependency>
+ <groupId>org.eclipse.platform</groupId>
+ <artifactId>org.eclipse.swt.win32.win32.x86_64</artifactId>
+ <version>${swt.version}</version>
+ </dependency>
+ </dependencies>
</profile>
<profile>
<id>mac64</id>
@@ -317,44 +380,13 @@
<name>!stegosuite.distro</name>
</property>
</activation>
- <properties>
- <swt.groupId>org.eclipse.platform</swt.groupId>
- <swt.artifactId>org.eclipse.swt.cocoa.macosx.x86_64</swt.artifactId>
- </properties>
- </profile>
- <!-- Keep this profile last: when it is selected, its swt.* properties must
- override the coordinates contributed by the OS profiles above. -->
- <profile>
- <id>distro</id>
- <activation>
- <property>
- <name>stegosuite.distro</name>
- </property>
- </activation>
- <properties>
- <swt.groupId>org.eclipse.swt</swt.groupId>
- <swt.artifactId>org.eclipse.swt</swt.artifactId>
- </properties>
- <build>
- <plugins>
- <plugin>
- <artifactId>maven-jar-plugin</artifactId>
- <configuration>
- <archive>
- <manifest>
- <addClasspath>true</addClasspath>
- <mainClass>org.stegosuite.Stegosuite</mainClass>
- <classpathLayoutType>custom</classpathLayoutType>
- <customClasspathLayout>${stegosuite.systemJarDir}/$${artifact.artifactId}$${dashClassifier?}.jar</customClasspathLayout>
- </manifest>
- <manifestEntries>
- <Enable-Native-Access>ALL-UNNAMED</Enable-Native-Access>
- </manifestEntries>
- </archive>
- </configuration>
- </plugin>
- </plugins>
- </build>
+ <dependencies>
+ <dependency>
+ <groupId>org.eclipse.platform</groupId>
+ <artifactId>org.eclipse.swt.cocoa.macosx.x86_64</artifactId>
+ <version>${swt.version}</version>
+ </dependency>
+ </dependencies>
</profile>
</profiles>
</project>
=====================================
src/main/resources/logback.xml deleted
=====================================
@@ -1,39 +0,0 @@
-<configuration>
- <appender name="STDERR" class="ch.qos.logback.core.ConsoleAppender">
- <target>System.err</target>
- <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
- <level>WARN</level>
- </filter>
- <encoder>
- <pattern>%boldRed(%message%n)</pattern>
- </encoder>
- </appender>
- <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
- <filter class="ch.qos.logback.classic.filter.LevelFilter">
- <level>DEBUG</level>
- <onMatch>ACCEPT</onMatch>
- <onMismatch>DENY</onMismatch>
- </filter>
- <encoder>
- <pattern>%date{HH:mm:ss.SSS} @ %thread (%replace(%class{0}.java:%line){'\$\w+\.', '\.'}\) %message%n
- </pattern>
- </encoder>
- </appender>
- <appender name="infoLog" class="ch.qos.logback.core.ConsoleAppender">
- <filter class="ch.qos.logback.classic.filter.LevelFilter">
- <level>INFO</level>
- <onMatch>ACCEPT</onMatch>
- <onMismatch>DENY</onMismatch>
- </filter>
- <encoder>
- <pattern>%message%n</pattern>
- </encoder>
- </appender>
- <root level="INFO">
- <appender-ref ref="infoLog" />
- <appender-ref ref="STDERR" />
- </root>
- <root level="DEBUG">
- <appender-ref ref="STDOUT" />
- </root>
-</configuration>
\ No newline at end of file
=====================================
src/test/java/org/stegosuite/MessagesBundleTest.java
=====================================
@@ -0,0 +1,17 @@
+package org.stegosuite;
+
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+import java.util.ResourceBundle;
+import org.junit.jupiter.api.Test;
+
+public class MessagesBundleTest {
+
+ @Test
+ public void testMessagesBundleIsOnTheClasspathRoot() {
+ // The UI resolves the bundle with ResourceBundle.getBundle("Messages"), which only finds
+ // Messages.properties at the classpath root. Guard the resource configuration that puts it there.
+ ResourceBundle bundle = ResourceBundle.getBundle("Messages");
+ assertTrue(bundle.containsKey("browse_files"));
+ }
+}
View it on GitLab: https://salsa.debian.org/java-team/stegosuite/-/compare/4f9ea503e4d7fbbaf01689b33c3cca30be2385db...84701b685845b5e4d68a1f9776733c81f60e7f7b
--
View it on GitLab: https://salsa.debian.org/java-team/stegosuite/-/compare/4f9ea503e4d7fbbaf01689b33c3cca30be2385db...84701b685845b5e4d68a1f9776733c81f60e7f7b
You're receiving this email because of your account on salsa.debian.org. Manage all notifications: https://salsa.debian.org/-/profile/notifications | Help: https://salsa.debian.org/help
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-java-commits/attachments/20261005/6fe7e78f/attachment.htm>
More information about the pkg-java-commits
mailing list