Próximo: Nível 3: Configurando a integração contínua, Anterior: Nível 2: O Repositório como Canal, Acima: Desenvolvimento de software X [Conteúdo][Índice]
Agora temos um canal real, mas ele contém apenas um pacote (veja Nível 2: O Repositório como Canal). Enquanto estamos nisso, podemos definir variantes de pacote (veja Definindo variantes de pacote em Manual de Referência do GNU Guix) em nosso arquivo guile-package.scm, variantes que queremos poder testar como desenvolvedores Guile—semelhante ao que fizemos acima com opções de transformação. Podemos adicioná-las assim:
;; Este é o arquivo ‘.guix/modules/guile-package.scm’. (define-module (guile-package) …) (define-public guile …) (define (package-with-configure-flags p flags) "Retorna P com FLAGS como sinalizadores 'configure' adicionais." (package/inherit p (arguments (substitute-keyword-arguments (package-arguments p) ((#:configure-flags original-flags #~(list)) #~(append #$original-flags #$flags)))))) (define-public guile-without-threads (package (inherit (package-with-configure-flags guile #~(list "--without-threads"))) (name "guile-without-threads"))) (define-public guile-without-networking (package (inherit (package-with-configure-flags guile #~(list "--disable-networking"))) (name "guile-without-networking"))) ;; Retorna o objeto do pacote definido acima no final do módulo. guile
Podemos construir essas variantes como pacotes regulares assim que tivermos puxado o canal. Alternativamente, a partir de um checkout do Guile, podemos executar um comando como este do nível superior:
guix build -L $PWD/.guix/modules guile-without-threads