FOSDEM

FOSDEM

  • Parâmetros de compilação pra Go!

    Estou assistindo agora algumas apresentações que não pude ver ao vivo durante o FOSDEM 2025. E uma dessas foi sobre como compilar Go! corretamente feita pelo Dimitri John Ledkov.

    O palestrante não é programador Go! mas enpacotador pra várias distros. E conhece bem sobre quais parâmetros usar.

    Eu alterei meu Makefile do programa negofetch, uma re-escrita em Go! do neofetch que estou fazendo, pra usar as dicas dele.

      
    BINARY = negofetch
    
    BUILD_OPTIONS = -modcacherw
    #BUILD_OPTIONS += -race
    BUILD_OPTIONS += -ldflags="-w -X 'main.Version=$$(git tag -l --sort taggerdate | tail -1)'"
    BUILD_OPTIONS += -buildmode=pie
    BUILD_OPTIONS += -tags netgo,osusergo
    BUILD_OPTIONS += -trimpath
    
    all: $(SOURCES) dependencies $(BINARY)
    
    dependencies:
            go mod tidy
    
    $(BINARY): $(SOURCES)
            env GOAMD64=v2 \
                    CGO_ENABLED=1 \
            go build $(BUILD_OPTIONS) .    
     
    

    Olhando pelo govulncheck, que ele também recomenda usar, parece bom.

      
    ❯ govulncheck -mode=binary negofetch
    Scanning your binary for known vulnerabilities...
    
    No vulnerabilities found.
    
    Share feedback at https://go.dev/s/govulncheck-feedback.    
     
    

    Pra quem estiver interessado, esse é o vídeo:



    https://fosdem.org/2025/schedule/event/fosdem-2025-4406-build-better-go-release-binaries/