postfix-current flavors compiled without DB support?

Hi everyone,

I recently noticed that the postfix-current-mysql and postfix-current-pgsql packages from the FreeBSD package repository seem to be missing MySQL and PostgreSQL support, despite their names suggesting otherwise.
I usually build mail/postfix-current from ports with MySQL enabled, and when I check the installed package info, I see the expected options:

sh:
# pkg info postfix-current
postfix-current-3.10.20241027,6
Options        :
        BDB            : on
        BLACKLISTD     : off
        CDB            : off
        DOCS           : on
        EAI            : on
        INST_BASE      : off
        LDAP           : off
        LMDB           : off
        MONGO          : off
        MYSQL          : on  ← (Expected, since I enabled it)
        NIS            : off
        PCRE2          : on
        PGSQL          : off
        SASL           : off
        SASLKMIT       : off
        SASLKRB5       : off
        SQLITE         : off
        TEST           : off
        TLS            : on

However, when I install the prebuilt postfix-current-mysql package using pkg, I notice that MYSQL is off:
sh:
# pkg info postfix-current-mysql
postfix-current-mysql-3.10.20241027,6
Options        :
        BDB            : off
        BLACKLISTD     : on
        CDB            : off
        DOCS           : on
        EAI            : on
        INST_BASE      : off
        LDAP           : off
        LMDB           : off
        MONGO          : off
        MYSQL          : off  ← (Shouldn’t this be ON?)
        NIS            : off
        PCRE2          : on
        PGSQL          : off
        SASL           : off
        SASLKMIT       : off
        SASLKRB5       : off
        SQLITE         : off
        TEST           : off
        TLS            : on

Similarly, the postfix-current-pgsql package has PGSQL off:
sh:
# pkg info postfix-current-pgsql
postfix-current-pgsql-3.10.20241027,6
Options        :
        BDB            : off
        BLACKLISTD     : on
        CDB            : off
        DOCS           : on
        EAI            : on
        INST_BASE      : off
        LDAP           : off
        LMDB           : off
        MONGO          : off
        MYSQL          : off
        NIS            : off
        PCRE2          : on
        PGSQL          : off  ← (Shouldn’t this be ON?)
        SASL           : off
        SASLKMIT       : off
        SASLKRB5       : off
        SQLITE         : off
        TEST           : off
        TLS            : on

Questions:

  1. Is this an oversight in the package build process, or is there a reason why the -mysql and -pgsql flavors are built without the corresponding database support?
  2. What is the intended purpose of these flavored packages if they do not actually include the respective database support?
  3. Should this be reported as a bug?
Note: I have not checked if other flavors (e.g., postfix-current-mongo, postfix-current-sqlite, etc.) have the same issue, but it might be worth investigating.

It would be great to clarify whether this is intentional or an issue with the package builds.

Thanks!
 
Code:
pkg info postfix-current
postfix-current-3.11.20250304,6
Options        :
    BDB            : on
    BLACKLISTD     : on
    CDB            : off
    DOCS           : on
    EAI            : on
    INST_BASE      : off
    LDAP           : off
    LMDB           : off
    MONGO          : off
    MYSQL          : on
    NIS            : off
    PCRE2          : on
    PGSQL          : off
    SASL           : off
    SASLKMIT       : off
    SASLKRB5       : off
    SQLITE         : off
    TEST           : off
    TLS            : on
I roll my own in poudriere straight off Wietses site, no big deal, I get it the way I use it, blacklistd, mysql etc.

I just got bored raising PR's asking for a version bump all the time as current can change quite frequently.
 
I just got bored raising PR's asking for a version bump all the time as current can change quite frequently.
You typically don't run production on experimental versions. Why don't you use the release versions?
 
Looks like there's something wrong with the port itself, the postfix-current-mysql package does look like it was built without the MYSQL option turned on. Not sure why, it's quite a complex port.
 
I'm wondering what it's trying to do here:
Code:
.if !empty(FLAVOR) && ${FLAVOR:U} != default
OPTIONS_FILE=	${PORT_DBDIR}/${OPTIONS_NAME}/${FLAVOR}-options
.endif

PORT_DBDIR is, by default, /var/db/ports/ and is a place where saved options are stored. And is typically empty with poudriere, unless you ran poudriere-options(8). The FreeBSD package build servers never do this.
 
Ah, I think I figured it out. mail/postfix works correctly, mail/postfix-current does not. The difference seems to be this bit in the Makefile:
Code:
.if ${FLAVOR:U} == ldap
OPTIONS_SLAVE=		LDAP
.elif ${FLAVOR:U} == mysql
OPTIONS_SLAVE=		MYSQL
.elif ${FLAVOR:U} == pgsql
OPTIONS_SLAVE=		PGSQL
.elif ${FLAVOR:U} == sasl
OPTIONS_SLAVE=		SASL
.elif ${FLAVOR:U} == sqlite
OPTIONS_SLAVE=		SQLITE
.endif
postfix-current has this:
Code:
.if ${FLAVOR:U} == ldap
OPTIONS_SLAVE=		LDAP
.elif ${FLAVOR:U} == sasl
OPTIONS_SLAVE=		SASL
.endif
Notice the MYSQL, PGSQL and SQLITE FLAVOR are missing here?
 
Back
Top