Compileren van HAProxy met Cygwin


Gebruikte Tools

HAProxy - The Reliable, High-Performance TCP/HTTP Load Balancer

Cygwin - A Large collection of GNU and Open Source tools which provide functionality similar to a Linux distribution on Windows.

Resource Hacker - A Freeware resource compiler & decompiler for Windows® applications

GoRC (Go Resouce Compiler) - The Go tools for Windows + Assembler

Cygwin Installatie

Bij de installatie van Cygwin, zorg ervoor dat volgende modules zijn geselecteerd:

  • gcc-core
  • gcc-g++
  • gcc-objc++
  • glib2.0-openssl
  • glib2.0-openssl-debuginfo
  • libcrypt-devel
  • libxmlsec1-openssl1
  • libxmlsec1-openssl-devel
  • make
  • mingw64-x86_64-gcc-g++
  • mingw64-x86_64-openssl
  • openssl-debuginfo
  • wget

Zorg ervoor dat Cygwin volledig up-to-date is alvorens HAProxy te compileren..

Compileren van HAProxy

Stap 1

In Cygwin, download HAProxy en pak de bestanden uit met de volgende commando's (De versie nrs zijn uiteraard slechts een voorbeeld):

Voor de laatste versie en download URL, consulteer de HAProxy website.

Stap 2

Voer de volgende commando's uit in een Cygwin prompt om de HAProxy executable te bouwen/compileren (versie nummers enkel als voorbeeld):

  • cd haproxy-2.6.6
  • make clean
  • make TARGET=cygwin CPU=native USE_LIBCRYPT=1 USE_OPENSSL=1 USE_LIBPCRE=1
  • exit

Binnenin de HAProxy folder, vind je nu een file met de naam haproxy.exe

Alhoewel deze file reeds bruikbaar is, vervolledig ik deze meestal nog met een deftig file icoon en versie informatie.

Stap 3 (Optioneel)

Eerst creëren we een resource file die gebruikt wordt om met Resource Hacker versie informatie in de exe file toe te voegen.  Daarvoor creëer je een tekstfile met de naam haproxy.rc

Hieronder een voorbeeld van de inhoud van deze file:

1 VERSIONINFO
FILEVERSION 1,0,0,0
PRODUCTVERSION 2,6,6,0
FILEOS 0x0
FILETYPE 0x0
{
    BLOCK "StringFileInfo"
    {
        BLOCK "040904E4"
        {
            VALUE "FileDescription", "HAProxy - The Reliable, High Performance TCP/HTTP Load Balancer."
            VALUE "FileVersion", "2.6.6"
            VALUE "ProductName", "HAProxy"
            VALUE "ProductVersion", "2.6.6"
            VALUE "LegalCopyright", "\xA9 2022 haproxy.org - Built with Cygwin by w8ff.be"
        }
    }

    BLOCK "VarFileInfo"
    {
        VALUE "Translation", 0x0409 0x04E4
    }
}

Pas de inhoud aan naar eigen goeddunken en met de correcte versie informatie.  Zorg wel dat de referentie naar haproxy.org erin blijft omdat zij wel degelijk de credits verdienen voor hun schitterende werk!

In een command prompt venster, ga naar de folder waar je haproxy.rc file zich bevindt en run het volgende commando:

GoRC.exe /r haproxy.rc

Dit maakt de eigenlijke resource file (haproxy.res) aan die gebruikt wordt door Resource Hacker.

HAProxy Icon(Klik om te downloaden)

Run Resource Hacker en open de nieuw gebouwde haproxy.exe.

  • klik "Action" => "Add from a Resource file".
  • Open de haproxy.res file die je eerder hebt aangemaakt.
  • Select All
  • klik "Action" => "Add using Script Template".
  • Selecteer "ICON" en klik "Add".
  • Zet filename naar de HAProxy icoon file (volledig pad).
  • Klik op het icoon met de groene pijl (Compile script).
  • klik Save

Je zou nu een werkende haproxy.exe moeten hebben met een HAProxy icoon en de correcte versie informatie als je de eigenschappen van de file opvraagt.

Finaal ...

Om haproxy.exe te kunnen gebruiken, heb je een aantal van de Cygwin DLL's nodig.  Deze DLL's moeten ofwel in dezelfde folder zitten als de haproxy.exe of in een folder die gekend is door het OS.

In totaal heb je volgende files nodig:

  • cygcrypt-2.dll
  • cygcrypto-3.dll
  • cygssl-3.dll
  • cygwin1.dll
  • cygz.dll
  • haproxy.exe

 

(Laatst gewijzigd op 08 december 2023)

Kies taal:

English (United States)
[en-US]
Dutch (Belgium)
[nl-BE]

Random Quote

"A gossip is one who talks to you about others, a bore is one who talks to you about himself; and a brilliant conversationalist is one who talks to you about yourself."

Door: Lisa Kirk.