OwSink.combine in common/scala/src/main/scala/org/apache/openwhisk/core/containerpool/logging/DockerToActivationFileLogStore.scala says it was copied from Akka:
object OwSink {
/**
* Combines two sinks into one sink using the given strategy. The materialized value is a Tuple2 of the materialized
* values of either sink. Code basically copied from {@code Sink.combine}
*/
def combine[T, U, M1, M2](first: Sink[U, M1], second: Sink[U, M2])(
It was added in d69f8db (#2974, 2017), when OpenWhisk built against Akka 2.5.6. It is derived from Sink.combine in Akka 2.5.6's Sink.scala, which is Apache-2.0 and carries:
Copyright (C) 2014-2017 Lightbend Inc. <http://www.lightbend.com>
There is no licence conflict, but the derived code is not attributed. The file only has the ASF header, and neither LICENSE.txt nor NOTICE.txt mentions Akka or Lightbend. Apache-2.0 §4(c) requires keeping the copyright notices of the source.
Suggested fix, following what ConcurrentMapBackedCache.scala already does for its Spray-derived code:
-
Keep the ASF header and add the upstream notice below it:
/*
* OwSink.combine is derived from Sink.combine in Akka 2.5.6:
* Copyright (C) 2014-2017 Lightbend Inc. <http://www.lightbend.com>
*/
-
Add an entry to LICENSE.txt next to the Spray one, naming the file, Akka 2.5.6, Apache-2.0 and the Lightbend copyright line.
Akka 2.5.6 ships no NOTICE file, so NOTICE.txt does not need to change. Re-deriving the code from Apache Pekko instead would not avoid this: Pekko's Sink.scala still carries the Lightbend copyright header.
Apache OpenServerless vendors this file and is fixing it in apache/openserverless-build#22 and apache/openserverless#270 (tracked in apache/openserverless#265).
OwSink.combineincommon/scala/src/main/scala/org/apache/openwhisk/core/containerpool/logging/DockerToActivationFileLogStore.scalasays it was copied from Akka:It was added in d69f8db (#2974, 2017), when OpenWhisk built against Akka 2.5.6. It is derived from
Sink.combinein Akka 2.5.6'sSink.scala, which is Apache-2.0 and carries:There is no licence conflict, but the derived code is not attributed. The file only has the ASF header, and neither
LICENSE.txtnorNOTICE.txtmentions Akka or Lightbend. Apache-2.0 §4(c) requires keeping the copyright notices of the source.Suggested fix, following what
ConcurrentMapBackedCache.scalaalready does for its Spray-derived code:Keep the ASF header and add the upstream notice below it:
Add an entry to
LICENSE.txtnext to the Spray one, naming the file, Akka 2.5.6, Apache-2.0 and the Lightbend copyright line.Akka 2.5.6 ships no
NOTICEfile, soNOTICE.txtdoes not need to change. Re-deriving the code from Apache Pekko instead would not avoid this: Pekko'sSink.scalastill carries the Lightbend copyright header.Apache OpenServerless vendors this file and is fixing it in apache/openserverless-build#22 and apache/openserverless#270 (tracked in apache/openserverless#265).