Bug#806630: libnative-platform-java: FTBFS when built with dpkg-buildpackage -A (mh_installjar fails)
Santiago Vila
sanvila at debian.org
Sun Nov 29 16:22:53 UTC 2015
Package: src:libnative-platform-java
Version: 0.10+dfsg-1
User: sanvila at debian.org
Usertags: binary-indep
Severity: important
Dear maintainer:
I tried to build this package with "dpkg-buildpackage -A"
(i.e. only architecture-independent packages), and it failed:
--------------------------------------------------------------------------------
[...]
debian/rules build-indep
dh build-indep --with maven_repo_helper
dh_testdir -i
dh_auto_configure -i
debian/rules override_dh_auto_build
make[1]: Entering directory '/<<BUILDDIR>>/libnative-platform-java-0.10+dfsg'
make -f debian/Makefile
make[2]: Entering directory '/<<BUILDDIR>>/libnative-platform-java-0.10+dfsg'
mkdir -p build/classes
javac -source 1.5 -target 1.5 -d build/classes -classpath /usr/share/java/joptsimple.jar src/main/java/net/rubygrapefruit/platform/Terminals.java src/main/java/net/rubygrapefruit/platform/FileSystems.java src/main/java/net/rubygrapefruit/platform/ProcessLauncher.java src/main/java/net/rubygrapefruit/platform/NativeIntegration.java src/main/java/net/rubygrapefruit/platform/Terminal.java src/main/java/net/rubygrapefruit/platform/SystemInfo.java src/main/java/net/rubygrapefruit/platform/MissingRegistryEntryException.java src/main/java/net/rubygrapefruit/platform/ThreadSafe.java src/main/java/net/rubygrapefruit/platform/Native.java src/main/java/net/rubygrapefruit/platform/TerminalSize.java src/main/java/net/rubygrapefruit/platform/PosixFile.java src/main/java/net/rubygrapefruit/platform/NativeException.java src/main/java/net/rubygrapefruit/platform/FileSystem.java src/main/java/net/rubygrapefruit/platform/package-info.java src/main/java/net/rubygrapefruit/platform/NativeIntegrationUnavailableException.java src/main/java/net/rubygrapefruit/platform/WindowsRegistry.java src/main/java/net/rubygrapefruit/platform/Process.java src/main/java/net/rubygrapefruit/platform/PosixFiles.java src/main/java/net/rubygrapefruit/platform/internal/WrapperProcessLauncher.java src/main/java/net/rubygrapefruit/platform/internal/NativeLibraryLocator.java src/main/java/net/rubygrapefruit/platform/internal/WindowsTerminals.java src/main/java/net/rubygrapefruit/platform/internal/DefaultFileSystem.java src/main/java/net/rubygrapefruit/platform/internal/Platform.java src/main/java/net/rubygrapefruit/platform/internal/WrapperProcess.java src/main/java/net/rubygrapefruit/platform/internal/PosixFileSystems.java src/main/java/net/rubygrapefruit/platform/internal/WrapperTerminal.java src/main/java/net/rubygrapefruit/platform/internal/DefaultPosixFiles.java src/main/java/net/rubygrapefruit/platform/internal/DefaultProcessLauncher.java src/main/java/net/rubygrapefruit/platform/internal/AbstractTerminals.java src/main/java/net/rubygrapefruit/platform/internal/AbstractTerminal.java src/main/java/net/rubygrapefruit/platform/internal/MutableTerminalSize.java src/main/java/net/rubygrapefruit/platform/internal/FileSystemList.java src/main/java/net/rubygrapefruit/platform/internal/DefaultWindowsRegistry.java src/main/java/net/rubygrapefruit/platform/internal/DefaultSystemInfo.java src/main/java/net/rubygrapefruit/platform/internal/TerminalCapabilities.java src/main/java/net/rubygrapefruit/platform/internal/MutableSystemInfo.java src/main/java/net/rubygrapefruit/platform/internal/TerminfoTerminals.java src/main/java/net/rubygrapefruit/platform/internal/NativeLibraryLoader.java src/main/java/net/rubygrapefruit/platform/internal/WindowsProcessLauncher.java src/main/java/net/rubygrapefruit/platform/internal/DefaultProcess.java src/main/java/net/rubygrapefruit/platform/internal/LibraryDef.java src/main/java/net/rubygrapefruit/platform/internal/TerminfoTerminal.java src/main/java/net/rubygrapefruit/platform/internal/FileStat.java src/main/java/net/rubygrapefruit/platform/internal/WindowsTerminal.java src/main/java/net/rubygrapefruit/platform/internal/jni/WindowsConsoleFunctions.java src/main/java/net/rubygrapefruit/platform/internal/jni/NativeLibraryFunctions.java src/main/java/net/rubygrapefruit/platform/internal/jni/TerminfoFunctions.java src/main/java/net/rubygrapefruit/platform/internal/jni/WindowsHandleFunctions.java src/main/java/net/rubygrapefruit/platform/internal/jni/PosixFileSystemFunctions.java src/main/java/net/rubygrapefruit/platform/internal/jni/PosixFileFunctions.java src/main/java/net/rubygrapefruit/platform/internal/jni/PosixProcessFunctions.java src/main/java/net/rubygrapefruit/platform/internal/jni/WindowsRegistryFunctions.java src/main/java/net/rubygrapefruit/platform/internal/jni/PosixTerminalFunctions.java src/main/java/net/rubygrapefruit/platform/internal/AnsiTerminal.java src/main/java/net/rubygrapefruit/platform/internal/FunctionResult.java
warning: [options] bootstrap class path not set in conjunction with -source 1.5
Note: src/main/java/net/rubygrapefruit/platform/internal/WrapperProcess.java uses unchecked or unsafe operations.
[... snipped ...]
-V --version: show the version
-p<package> --package=<package>: name of the Debian package which
will contain this jar file
-e<version>, --set-version=<version>: set the version for the jar,
do not use the version declared in the POM file.
-r<rules> --rules=<rules>: path to the file containing the
rules to apply when cleaning the POM.
Optional, the default location is debian/maven.rules
Maven rules are used here to extract the groupId, artifactId
and version from the POM file.
-l --java-lib: Optional, if given it will install the jar into
/usr/share/java to comply with the Debian Java specification.
The jar will be installed as /usr/share/java/$name-$version.jar and
a versionless link /usr/share/java/$name.jar will point to it, as
well as the links installed in /usr/share/maven-repo
-n<name> --usj-name=<name>: Optional, the name to use when installing the
library in /usr/share/java when --java-lib is used.
Defaults to the artifact id found in the POM.
-j<version> --usj-version=<version>: Optional, the version to use when
installing the library in /usr/share/java when --java-lib is used.
Defaults to the version found in the POM.
-s --no-usj-versionless: Optional, don't install the versionless link
in /usr/share/java.
This flag is used only when the -l or --java-lib option is given.
-d<path> --dest-jar=<path>: Optional, the destination for the real jar.
The other places where the jar appears, in the repository or in the
list of links, will be symlinks to this jar.
Defaults to /usr/share/java/$name-$version.jar if --java-lib is used,
otherwise the jar is installed in the versioned path in the Maven repository.
-c<classifier> --classifier=<classifier>: Optional, the classifier for
the jar. Empty by default.
-v --verbose: show more information while running
-n --no-act: don't actually do anything, just print the results
--skip-clean-pom: don't clean the pom, assume that a previous action ran
mh_cleanpom with the correct options. mh_cleanpom is run only to extract
the groupId, artifactId and version of the jar
See also: mh_installpom(1), mh_installsite(1)
debian/rules:11: recipe for target 'binary-indep' failed
make: *** [binary-indep] Error 1
dpkg-buildpackage: error: fakeroot debian/rules binary-indep gave error exit status 2
--------------------------------------------------------------------------------
Sorry not to have a fix, as I am reporting many bugs similar to
this one. The common hints are:
* If the only architecture-independent packages are dummy transitional
ones and they were released with jessie, the easy fix is to drop them
now.
* When using "dh", it is allowed to use (independently)
optional targets override_dh_foo-arch and override_dh_foo-indep
(for several values of "foo").
Once that both "dpkg-buildpackage -A" and "dpkg-buildpackage -B" work
properly, the package would be suitable to be uploaded in source-only
form if you wish.
Thanks.
More information about the pkg-java-maintainers
mailing list