< prev index next >
src/jdk.jpackage/linux/classes/jdk/jpackage/internal/LinuxDebBundler.java
Print this page
@@ -26,16 +26,19 @@
package jdk.jpackage.internal;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.*;
+import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
+import java.nio.file.Path;
import java.nio.file.attribute.PosixFilePermission;
import java.nio.file.attribute.PosixFilePermissions;
import java.text.MessageFormat;
import java.util.*;
import java.util.regex.Pattern;
+import java.util.stream.Stream;
import static jdk.jpackage.internal.StandardBundlerParam.*;
import static jdk.jpackage.internal.LinuxAppBundler.ICON_PNG;
import static jdk.jpackage.internal.LinuxAppBundler.LINUX_INSTALL_DIR;
import static jdk.jpackage.internal.LinuxAppBundler.LINUX_PACKAGE_DEPENDENCIES;
@@ -153,19 +156,32 @@
String.class,
params -> {
try {
String licenseFile = LICENSE_FILE.fetchFrom(params);
if (licenseFile != null) {
- return Files.readString(new File(licenseFile).toPath());
+ StringBuilder contentBuilder = new StringBuilder();
+ try (Stream<String> stream = Files.lines(Path.of(
+ licenseFile), StandardCharsets.UTF_8)) {
+ stream.forEach(s -> contentBuilder.append(s).append(
+ "\n"));
+ }
+ return contentBuilder.toString();
}
} catch (Exception e) {
Log.verbose(e);
}
return "Unknown";
},
(s, p) -> s);
+ public static final BundlerParamInfo<String> COPYRIGHT_FILE =
+ new StandardBundlerParam<>(
+ Arguments.CLIOptions.LINUX_DEB_COPYRIGHT_FILE.getId(),
+ String.class,
+ params -> null,
+ (s, p) -> s);
+
public static final BundlerParamInfo<String> XDG_FILE_PREFIX =
new StandardBundlerParam<> (
"linux.xdg-prefix",
String.class,
params -> {
@@ -713,21 +729,28 @@
RESOURCE_DIR.fetchFrom(params));
w.write(content);
}
setPermissions(getConfig_PostrmFile(params), "rwxr-xr-x");
+ getConfig_CopyrightFile(params).getParentFile().mkdirs();
+ String customCopyrightFile = COPYRIGHT_FILE.fetchFrom(params);
+ if (customCopyrightFile != null) {
+ IOUtils.copyFile(new File(customCopyrightFile),
+ getConfig_CopyrightFile(params));
+ } else {
try (Writer w = Files.newBufferedWriter(
getConfig_CopyrightFile(params).toPath())) {
String content = preprocessTextResource(
getConfig_CopyrightFile(params).getName(),
- I18N.getString("resource.deb-copyright-file"),
+ I18N.getString("resource.copyright-file"),
DEFAULT_COPYRIGHT_TEMPLATE,
data,
VERBOSE.fetchFrom(params),
RESOURCE_DIR.fetchFrom(params));
w.write(content);
}
+ }
return true;
}
private Map<String, String> createReplacementData(
@@ -791,11 +814,12 @@
private File getConfig_PostrmFile(Map<String, ? super Object> params) {
return new File(CONFIG_DIR.fetchFrom(params), "postrm");
}
private File getConfig_CopyrightFile(Map<String, ? super Object> params) {
- return new File(CONFIG_DIR.fetchFrom(params), "copyright");
+ return Path.of(DEB_IMAGE_DIR.fetchFrom(params).getAbsolutePath(), "usr",
+ "share", "doc", BUNDLE_NAME.fetchFrom(params), "copyright").toFile();
}
private File buildDeb(Map<String, ? super Object> params,
File outdir) throws IOException {
File outFile = new File(outdir,
< prev index next >