Package: release.debian.org Severity: normal User: release.debian....@packages.debian.org Usertags: unblock X-Debbugs-Cc: osgi-c...@packages.debian.org Control: affects -1 + src:osgi-core
Please unblock package osgi-core [ Reason ] The LoggerFactory and LogEntry interface definitions where added to osgi-core in version 8.0.0 duplication those in osgi-compendium. osgi-compendium carries a Debian patch to adopt the APIs to be backward compatible that was missing from osgi-core resulting in src:bnd FTBFS (#1026606). 8.0.0-2 copies this patch so both packages provide the same API. [ Impact ] src:bnd can not be build without this patch. [ Tests ] I did a test rebuild of src:bnd to make sure it compiles again: https://tests.reproducible-builds.org/debian/rb-pkg/bnd.html [ Risks ] Given that the patch is already in osgi-compendium since 2020 and it only provides default implementations for the added API methods I don't see a risk. Alternative solutions I looked into: - Adopting src:bnd to implement the new API. I tried this but the diff was rather large with no added value. Also I assume there are other packages depending on the old API. - removing LoggerFactory and LogEntry from osgi-core again which would result in a diff to the upstream source and probably other packages failing. [ Checklist ] [X] all changes are documented in the d/changelog [X] I reviewed all changes and I approve them [X] attach debdiff against the package in testing unblock osgi-core/8.0.0-2
diff --git a/debian/changelog b/debian/changelog index 0f8c8cf..ee0ef4a 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,12 @@ +osgi-core (8.0.0-2) unstable; urgency=medium + + * Team upload. + * Preserve backward compatibility in logging interface. + Turned the new interface methods into default methods to preserve the + backward compatibility. Taken from osgi-compendium. (Closes: #1026606) + + -- Jochen Sprickerhof <jspri...@debian.org> Mon, 03 Apr 2023 14:57:28 +0200 + osgi-core (8.0.0-1) unstable; urgency=medium * Team upload. diff --git a/debian/patches/01-backward-compatibility.patch b/debian/patches/01-backward-compatibility.patch new file mode 100644 index 0000000..a45e721 --- /dev/null +++ b/debian/patches/01-backward-compatibility.patch @@ -0,0 +1,95 @@ +Description: Preserves the source compatibility with older versions of the API +Author: Emmanuel Bourg <ebo...@apache.org> +Forwarded: not-needed +--- a/org/osgi/service/log/LoggerFactory.java ++++ b/org/osgi/service/log/LoggerFactory.java +@@ -61,7 +61,7 @@ + * parameter is equal to {@link Logger#ROOT_LOGGER_NAME}, then the + * root logger is returned. + */ +- Logger getLogger(String name); ++ default Logger getLogger(String name) { throw new UnsupportedOperationException(); } + + /** + * Return the {@link Logger} named with the specified class. +@@ -70,7 +70,7 @@ + * {@code null}. + * @return The {@link Logger} named with the name of the specified class. + */ +- Logger getLogger(Class< ? > clazz); ++ default Logger getLogger(Class< ? > clazz) { throw new UnsupportedOperationException(); } + + /** + * Return the {@link Logger} of the specified type named with the specified +@@ -88,7 +88,7 @@ + * @throws IllegalArgumentException If the specified type is not a supported + * Logger type. + */ +- <L extends Logger> L getLogger(String name, Class<L> loggerType); ++ default <L extends Logger> L getLogger(String name, Class<L> loggerType) { throw new UnsupportedOperationException(); } + + /** + * Return the {@link Logger} of the specified type named with the specified +@@ -104,7 +104,7 @@ + * @throws IllegalArgumentException If the specified type is not a supported + * Logger type. + */ +- <L extends Logger> L getLogger(Class< ? > clazz, Class<L> loggerType); ++ default <L extends Logger> L getLogger(Class< ? > clazz, Class<L> loggerType) {throw new UnsupportedOperationException(); } + + /** + * Return the {@link Logger} of the specified type named with the specified +@@ -130,6 +130,6 @@ + * @throws IllegalArgumentException If the specified type is not a supported + * Logger type or the specified Bundle is not a resolved bundle. + */ +- <L extends Logger> L getLogger(Bundle bundle, String name, +- Class<L> loggerType); ++ default <L extends Logger> L getLogger(Bundle bundle, String name, ++ Class<L> loggerType) { throw new UnsupportedOperationException(); } + } +--- a/org/osgi/service/log/LogEntry.java ++++ b/org/osgi/service/log/LogEntry.java +@@ -111,7 +111,7 @@ + * @return The level of this {@code LogEntry} object. + * @since 1.4 + */ +- LogLevel getLogLevel(); ++ default LogLevel getLogLevel() { throw new UnsupportedOperationException(); } + + /** + * Returns the name of the {@link Logger} object used to create this +@@ -121,7 +121,7 @@ + * {@code LogEntry} object. + * @since 1.4 + */ +- String getLoggerName(); ++ default String getLoggerName() { throw new UnsupportedOperationException(); } + + /** + * Returns the sequence number for this {@code LogEntry} object. +@@ -133,7 +133,7 @@ + * @return The sequence number for this {@code LogEntry} object. + * @since 1.4 + */ +- long getSequence(); ++ default long getSequence() { throw new UnsupportedOperationException(); } + + /** + * Returns a string representing the thread which created this +@@ -146,7 +146,7 @@ + * {@code LogEntry} object. + * @since 1.4 + */ +- String getThreadInfo(); ++ default String getThreadInfo() { throw new UnsupportedOperationException(); } + + /** + * Returns the location information of the creation of this {@code LogEntry} +@@ -156,5 +156,5 @@ + * object. + * @since 1.4 + */ +- StackTraceElement getLocation(); ++ default StackTraceElement getLocation() { throw new UnsupportedOperationException(); } + } diff --git a/debian/patches/series b/debian/patches/series new file mode 100644 index 0000000..4e58ea8 --- /dev/null +++ b/debian/patches/series @@ -0,0 +1 @@ +01-backward-compatibility.patch