Skip to content

Production-ready replacement for OpenLDAP with robust multi-master replication (MegaFon).

License

Unknown, Unknown licenses found

Licenses found

Unknown
LICENSE
Unknown
COPYING
Notifications You must be signed in to change notification settings

erthink/ReOpenLDAP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Основной Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ Π½Π° GitFlic

ВСсной 2022, Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ пояснСний, администрация Github ΡƒΠ΄Π°Π»ΠΈΠ»Π° ΠΌΠΎΠΉ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚ ΠΈ всС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹. Π§Π΅Ρ€Π΅Π· нСсколько мСсяцСв, Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΠΌΠΎΠ΅Π³ΠΎ участия ΠΈΠ»ΠΈ увСдомлСния, ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ Π±Ρ‹Π»ΠΈ восстановлСны/ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ Π² статусС "public read-only archive" ΠΈΠ· ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Π½Π΅ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠΉ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ. Π­Ρ‚ΠΈ дСйствия Github я Ρ€Π°ΡΡ†Π΅Π½ΠΈΠ²Π°ΡŽ ΠΊΠ°ΠΊ Π·Π»ΠΎΠ½Π°ΠΌΠ΅Ρ€Π΅Π½Π½Ρ‹ΠΉ саботаТ, Π° сам сСрвис Github ΡΡ‡ΠΈΡ‚Π°ΡŽ навсСгда ΡƒΡ‚Ρ€Π°Ρ‚ΠΈΠ²ΡˆΠΈΠΌ ΠΊΠ°ΠΊΠΎΠ΅-Π»ΠΈΠ±ΠΎ Π΄ΠΎΠ²Π΅Ρ€ΠΈΠ΅.

ВслСдствиС ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ΅Π΄ΡˆΠ΅Π³ΠΎ, Π½ΠΈΠΊΠΎΠ³Π΄Π° ΠΈ Π½ΠΈ ΠΏΡ€ΠΈ ΠΊΠ°ΠΊΠΈΡ… условиях, я Π½Π΅ Π±ΡƒΠ΄Ρƒ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ Π½Π° Github пСрвоисточники (aka origins) ΠΌΠΎΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², Π»ΠΈΠ±ΠΎ ΠΊΠ°ΠΊ-Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π½Π° инфраструктуру Github.

Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, понимая Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΌΠΎΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΊ Π½ΠΈΠΌ доступ ΠΈΠΌΠ΅Π½Π½ΠΎ Π½Π° Github, я Π½Π΅ Ρ…ΠΎΡ‡Ρƒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΡ… свободу ΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ нСудобство, ΠΈ поэтому Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°ΡŽ Π½Π° Github Π·Π΅Ρ€ΠΊΠ°Π»Π° (aka mirrors) Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π² ΠΌΠΎΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ². ΠŸΡ€ΠΈ этом Π΅Ρ‰Ρ‘ Ρ€Π°Π· Π°ΠΊΡ†Π΅Π½Ρ‚ΠΈΡ€ΡƒΡŽ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ это Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π΅Ρ€ΠΊΠ°Π»Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΌΠΎΡ€ΠΎΠΆΠ΅Π½Ρ‹, Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹ Π² любой ΠΌΠΎΠΌΠ΅Π½Ρ‚, ΠΊΠ°ΠΊ это ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΎ Π² 2022.

The origin has been migrated to GitFlic

In the spring of 2022, without any warnings or explanations, the Github administration deleted my account and all projects. A few months later, without any involvement or notification from me, the projects were restored/opened in the "public read-only archive" status from some kind of incomplete backup. I regard these actions of Github as malicious sabotage, and I consider the Github service itself to have lost any trust forever.

As a result of what has happened, I will never, under any circumstances, post the primary sources (aka origins) of my projects on Github, or rely in any way on the Github infrastructure.

Nevertheless, realizing that it is more convenient for users of my projects to access them on Github, I do not want to restrict their freedom or create inconvenience, and therefore I place mirrors of my project repositories on Github. At the same time, I would like to emphasize once again that these are only mirrors that can be frozen, blocked or deleted at any time, as was the case in 2022.


ReOpenLDAP

Production-ready replacement for OpenLDAP on Linux:

  • A lot of bug fixing and code quality improvement.
  • A number of new features, most of which deal with highload and multi-master clustering.
  • Bundled with all known contributed extensions.
  • Clean build without warnings from modern compilers.
  • But only Linux supported, e.g no Windows, Mac OS, FreeBSD, Solaris or HP-UX.
ReOpenLDAP is currently running in telcos across Russia:
  • Several clusters in full mesh multi-master replication topology, mostly with four nodes as a two geographically distributed pairs.
  • Up to 100 million records and up to 100 GB of data on each node.
  • Up to 10K updates and up to 25K searches per second.

No other LDAP server can provide such level of performance nowadays due to replication troubles, inadequate performance or high risk of a crash. Therefore ReopenLDAP also known as "TelcoLDAP" - the telco-oriented fork of OpenLDAP.

ΠšΡ€Π°Ρ‚ΠΊΠ°Ρ история

ReOpenLDAP Π±Ρ‹Π» создан Π² 2015 Π³ΠΎΠ΄Ρƒ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, Π²ΠΎΠ·Π½ΠΈΠΊΡˆΠΈΡ… ΠΏΡ€ΠΈ использовании ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ OpenLDAP Π² инфраструктурС ПАО «МСгаЀон», Π³Π΄Π΅ LDAP-сСрвСр Π±Ρ‹Π» задСйствован Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· подсистСм инфраструктуры.

NGDR прСдставляСт собой UDR (User Data Repository), согласно стандарту 3GPP 23.335, ΠΈ являСтся Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΡƒΠ·Π»ΠΎΠΌ для хранСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠ±ΠΎ всСх Π²ΠΈΠ΄Π°Ρ… услуг Π°Π±ΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π² ИВ-инфраструктурС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° связи.

ПодобноС ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π»ΠΎ ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΡƒΡŽ ΡΠΊΡΠΏΠ»ΡƒΠ°Ρ‚Π°Ρ†ΠΈΡŽ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ 24Γ—7 спСцифичСского LDAP-ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°, Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 10-100 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² записСй, Π² высоконагруТСнном сцСнарии (Π΄ΠΎ 10К ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ ΠΈ Π΄ΠΎ 50К Ρ‡Ρ‚Π΅Π½ΠΈΠΉ Π² сСкунду), ΠΈ Π² Ρ‚ΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΌΡƒΠ»ΡŒΡ‚ΠΈ-мастСр.

МоТно ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ReOpenLDAP появился Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½Π½ΠΎ, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΊΠ°ΠΊ нСкачСствСнности Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ OpenLDAP, Ρ‚Π°ΠΊ ΠΈ ΠΎΡ‚ΠΊΠ°Π·Π° ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ исправлСния. Symas Corp, ΠΊΠ°ΠΊ основныС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ, ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅Ρ€Ρ‹ ΠΈ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Ρ‹ ΠΊΠΎΠ΄Π° OpenLDAP, Π½Π΅ смогли Ρ€Π΅ΡˆΠΈΡ‚ΡŒ возникшиС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, поэтому Π±Ρ‹Π»ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΎ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ.

Как впослСдствии Π²Ρ‹ΡΡΠ½ΠΈΠ»ΠΎΡΡŒ, ошибок Π² ΠΊΠΎΠ΄Π΅ Π±Ρ‹Π»ΠΎ ΠΊΡ€Π°Ρ‚Π½ΠΎ большС, Ρ‡Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π±Ρ‹Π»ΠΎ Π·Π°Ρ‚Ρ€Π°Ρ‡Π΅Π½ΠΎ большС усилий Ρ‡Π΅ΠΌ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π»ΠΎΡΡŒ, Π° ReOpenLDAP ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ прСдставляСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΡƒΡŽ Ρ†Π΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΈ (ΠΏΠΎ ΠΈΠΌΠ΅ΡŽΡ‰Π΅ΠΉΡΡ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ) являСтся СдинствСнным LDAP-сСрвСром, ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎ ΠΈ Π½Π°Π΄Ρ‘ΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌ ΠΌΡƒΠ»ΡŒΡ‚ΠΈ-мастСр Ρ‚ΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΡŽ для RFC-4533, Π² Ρ‚ΠΎΠΌ числС Π² высоконагруТСнных сцСнариях.

Features and Change List

Below is a list of main new features of ReOpenLDAP, for a description ones please see the corresponding man pages after installation, i.e. man --manpath=CONFIGURED_PREFIX/share/man slapd.conf.

For latest news and changes please refer to the NEWS.md and ChangeLog.

List of changes emerged from OpenLDAP project could be seen in the CHANGES.OpenLDAP.

Added features:

  • multi-master replication is working properly and robustly (it seems no other LDAP server can do this)
  • reopenldap [iddqd] [idkfa]
  • quorum { [vote-sids ...] [vote-rids ...] [auto-sids] [auto-rids] [require-sids ...] [require-rids ...] [all-links] }
  • quorum limit-concurrent-refresh
  • biglock { none | local | common }
  • storage (mdb backend): dreamcatcher & oom-handler (ITS#7974), lifo & coalesce (ITS#7958)
  • syncprov-showstatus { none | running | all }
  • syncrepl's requirecheckpresent option
  • keepalive <idle>:<probes>:<interval> for incoming connections
  • built-in memory checker called 'Hipagut', including ls-malloc
  • support for OpenSSL 1.1.x, Mozilla NSS, GnuTLS and LibreSSL 2.5.x
  • ready for LTO (Link-Time Optimization) by GCC and clang.

Support

ReOpenLDAP is intended for use in scenarios of heavy industrial operation using synchronization/replication in multi-master mode and full-mesh topology. This assumes that the installation and operation will be handled by in-house system administrators or qualified specialists with relevant experience.

Thus, you should rely on your own strength, and seek my support only to fix a bugs you have discovered. With this you can count on free support under the generally accepted terms of use of open source code. If you need more then I think it's wise considering paid support.

Nonetheless, please note and understand that I do not have the ability to provide a full-fledged support for documentation, including assembly and/or installation manuals, etc.

Installation

Traditional triade ./configure --prefix=YOUR_INSTALLATION_PREFIX YOUR_OPTIONS && make && make install. However the configure will absent, in case you use development or a snapshot versions, so you need run the ./bootstrap to build them.

For more information please see the local INSTALL file after the ./bootstrap was done.

configure's options

Below is a main configure's options, to see full list please run ./configure --help, for instance both --libexecdir=DIR and --sysconfdir=DIR are provided.

Fine tuning of the installation directories:
    ...
  --libexecdir=DIR        program executables [EPREFIX/libexec]
  --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
  --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
  --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
  --runstatedir=DIR       modifiable per-process data [LOCALSTATEDIR/run]
  --libdir=DIR            object code libraries [EPREFIX/lib]
  --includedir=DIR        C header files [PREFIX/include]
  --oldincludedir=DIR     C header files for non-gcc [/usr/include]
  --datarootdir=DIR       read-only arch.-independent data root [PREFIX/share]
  --datadir=DIR           read-only architecture-independent data [DATAROOTDIR]
  --infodir=DIR           info documentation [DATAROOTDIR/info]
    ...

Optional Features:
    ...
  --enable-debug          enable debug logging no|yes|extra [yes]
  --enable-ci             enable Continuous Integration stuff no|yes [no]
  --enable-syslog         enable syslog support [auto]
  --enable-contrib        enable extra plugins and overlays no|yes|broken [no]
  --enable-experimental   enable experimental and developing features no|yes [no]
  --enable-check          enable internal checking and assertions no|yes|always|default [no]
  --enable-hipagut        enable internal memory allocation debugger no|yes|always|extra [no]
  --enable-proctitle      enable proctitle support [yes]
  --enable-referrals      enable LDAPv2+ Referrals (experimental) [no]
  --enable-ipv6           enable IPv6 support [auto]
  --enable-local          enable AF_LOCAL (AF_UNIX) socket support [auto]
  --enable-deprecated     enable deprecated interfaces of libreldap no|yes [no]
  --enable-valgrind       Whether to enable Valgrind on the unit tests
    ...

SLAPD (Standalone LDAP Daemon) Options:
  --enable-slapd	  enable building slapd [yes]
    --enable-dynacl	  enable run-time loadable ACL support (experimental) [no]
    --enable-aci	  enable per-object ACIs (experimental) no|yes|mod [no]
    --enable-cleartext	  enable cleartext passwords [yes]
    --enable-crypt	  enable crypt(3) passwords [no]
    --enable-lmpasswd	  enable LAN Manager passwords [no]
    --enable-spasswd	  enable (Cyrus) SASL password verification [no]
    --enable-modules	  enable dynamic module support [yes]
    --enable-rewrite	  enable DN rewriting in back-ldap and rwm overlay [auto]
    --enable-rlookups	  enable reverse lookups of client hostnames [no]
    --enable-slapi        enable SLAPI support (experimental) [no]
    --enable-slp          enable SLPv2 support [no]
    --enable-wrappers	  enable tcp wrapper support [no]

SLAPD Backend Options:
    --enable-backends	  enable all stable/non-experimental backends no|yes|mod
    --enable-mdb	  enable MDBX database backend no|yes|mod [yes]
    --enable-hdb	  enable Hierarchical Berkeley DB backend (obsolete) no|yes|mod [no]
    --enable-bdb	  enable Berkeley DB backend (obsolete) no|yes|mod [no]
    --enable-dnssrv	  enable dnssrv backend (experimental) no|yes|mod [no]
    --enable-ldap	  enable ldap backend no|yes|mod [no]
    --enable-meta	  enable metadirectory backend no|yes|mod [no]
    --enable-asyncmeta	  enable asynchronous metadirectory backend (experimental) no|yes|mod [no]
    --enable-monitor	  enable monitor backend no|yes|mod [yes]
    --enable-ndb	  enable MySQL NDB Cluster backend (experimental) no|yes|mod [no]
    --enable-null	  enable null backend no|yes|mod [no]
    --enable-passwd	  enable passwd backend no|yes|mod [no]
    --enable-perl	  enable perl backend no|yes|mod [no]
    --enable-relay  	  enable relay backend (experimental) no|yes|mod [yes]
    --enable-shell	  enable shell backend no|yes|mod [no]
    --enable-sock	  enable sock backend no|yes|mod [no]
    --enable-sql	  enable SQL backend (experimental and buggy) no|yes|mod [no]
    --enable-wt		  enable WiredTiger backend no|yes|mod [no]

SLAPD Overlay Options:
    --enable-overlays	  enable all available overlays no|yes|mod
    --enable-accesslog	  In-Directory Access Logging overlay no|yes|mod [no]
    --enable-auditlog	  Audit Logging overlay no|yes|mod [no]
    --enable-autoca	  Automatic Certificate Authority overlay no|yes|mod [no]
    --enable-collect	  Collect overlay no|yes|mod [no]
    --enable-constraint	  Attribute Constraint overlay no|yes|mod [no]
    --enable-dds  	  Dynamic Directory Services overlay no|yes|mod [no]
    --enable-deref	  Dereference overlay no|yes|mod [no]
    --enable-dyngroup	  Dynamic Group overlay no|yes|mod [no]
    --enable-dynlist	  Dynamic List overlay no|yes|mod [no]
    --enable-memberof	  Reverse Group Membership overlay no|yes|mod [no]
    --enable-ppolicy	  Password Policy overlay no|yes|mod [no]
    --enable-pcache	  Proxy Cache overlay no|yes|mod [no]
    --enable-refint	  Referential Integrity overlay no|yes|mod [no]
    --enable-retcode	  Return Code testing overlay no|yes|mod [no]
    --enable-rwm       	  Rewrite/Remap overlay no|yes|mod [no]
    --enable-seqmod	  Sequential Modify overlay no|yes|mod [no]
    --enable-sssvlv	  ServerSideSort/VLV overlay no|yes|mod [no]
    --enable-syncprov	  Syncrepl Provider overlay no|yes|mod [yes]
    --enable-translucent  Translucent Proxy overlay no|yes|mod [no]
    --enable-unique       Attribute Uniqueness overlay no|yes|mod [no]
    --enable-valsort      Value Sorting overlay no|yes|mod [no]

Optional Packages:
    ...
  --with-cyrus-sasl	  with Cyrus SASL support [auto]
  --with-gssapi		  with GSSAPI support [auto]
  --with-fetch		  with fetch(3) URL support [auto]
  --with-tls		  with TLS/SSL support auto|openssl|gnutls|moznss [auto]
  --with-yielding-select  with implicitly yielding select [auto]
  --with-mp               with multiple precision statistics auto|longlong|long|bignum|gmp [auto]
  --with-odbc             with specific ODBC support iodbc|unixodbc|auto [auto]

Some influential environment variables:
  ...
  EXTRA_CFLAGS
              Extra build-time CFLAGS, e.g. -Wall -Werror. Alternatively, ones
              can be specified or overridden by invocation 'make
              EXTRA_CFLAGS="a b c"'
  ...
  KRB5_CFLAGS C compiler flags for KRB5, overriding pkg-config
  KRB5_LIBS   linker flags for KRB5, overriding pkg-config
  HEIMDAL_CFLAGS
              C compiler flags for HEIMDAL, overriding pkg-config
  HEIMDAL_LIBS
              linker flags for HEIMDAL, overriding pkg-config
  LIBSODIUM_CFLAGS
              C compiler flags for LIBSODIUM, overriding pkg-config
  LIBSODIUM_LIBS
              linker flags for LIBSODIUM, overriding pkg-config
  UUID_CFLAGS C compiler flags for UUID, overriding pkg-config
  UUID_LIBS   linker flags for UUID, overriding pkg-config
  OPENSSL_CFLAGS
              C compiler flags for OPENSSL, overriding pkg-config
  OPENSSL_LIBS
              linker flags for OPENSSL, overriding pkg-config
  GNUTLS_CFLAGS
              C compiler flags for GNUTLS, overriding pkg-config
  GNUTLS_LIBS linker flags for GNUTLS, overriding pkg-config
  MOZNSS_CFLAGS
              C compiler flags for MOZNSS, overriding pkg-config
  MOZNSS_LIBS linker flags for MOZNSS, overriding pkg-config