es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo copiar la licencia desde el paquete del host.

Cuando se compila software que utiliza una biblioteca de solo encabezado, el licenciamiento puede requerir que se distribuya una copia de la licencia de la biblioteca junto con el software compilado. Además, Conda Forge es explícito (ver plantilla de PR) que los paquetes deben incluir las licencias originales de las dependencias enlazadas estáticamente, lo cual es ipso facto el caso de las bibliotecas de solo encabezado. Sin embargo, no puedo encontrar documentación sobre cómo resolver el archivo de licencia para los paquetes de nivel “host”.

¿Cómo se especifica en una receta “meta.yaml” para copiar la(s) licencia(s) de un paquete en particular?

Ejemplo mínimo:

Aquí hay un ejemplo mínimo que utiliza la biblioteca de solo encabezado “tsl_robin_map”. Sé que el paquete “tsl_robin_map” tiene la licencia en “info/licenses/LICENSE”. Sin embargo, no sé cómo especificar esa ruta en la receta.

meta.yaml:

package:
  name: hello-robin
  version: 0.1

source:
  path: .

build:
  number: 0

requirements:
  build:
    - {{ compiler('cxx') }}
  host:
    - tsl_robin_map

test:
  commands:
    - hello-robin

about:

license_file:

- <path_a_tsl_robin_map>/info/licenses/LICENSE  # <- ¿cómo se debe especificar esto?

hello.cpp:

#include <iostream>
#include <tsl robin_map.h="">

int main()
{
  std::cout << "Hello, Robin!";
}

build.sh:

“` lang-bash
#!/bin/bash

${CXX} ${CPPFLAGS} -o hello-robin hello.cpp
mkdir -p ${PREFIX}/bin
mv hello-robin ${PREFIX}/bin/hello-robin
“`

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para especificar la ruta del archivo de licencia para un paquete en meta.yaml, se puede utilizar el campo about/license_file. En este caso, se debería especificar la ruta del archivo de licencia de tsl_robin_map de la siguiente manera:

    about:
      license_file:
        - $PREFIX/info/licenses/LICENSE
    

    Ten en cuenta que $PREFIX es un marcador de posición para el prefijo de instalación real, que es establecido por Conda durante la instalación del paquete. Esto permite que el archivo de licencia sea copiado a la ubicación correcta en el entorno de Conda, sin importar dónde se haya construido la fuente del paquete.

Comments are closed.