pgBackRest 2.08 and macOS Mojave

Reading time ~1 minute

UPDATE: My reasoning was incorrect below. It wasn’t the moving of some of the lock code to C that caused the issue. It was moving -D_POSIX_C_SOURCE up to the Makefile that caused the problem. The solution below is still the same though.

The team has released pgBackRest 2.08 today. As part of a continuing effort, more bits have been moved from Perl to C. Sadly, this adds a new wrinkle for those of us on OSX, as when compiling, you now get:

gcc -I. -I../libc -std=c99 -D_POSIX_C_SOURCE=200112L -O2 -Wfatal-errors -Wall -Wextra -Wwrite-strings -Wswitch-enum -Wconversion -Wformat=2 -Wformat-nonliteral -Wno-clobbered -Wno-missing-field-initializers -Wstrict-prototypes -Wpointer-arith -Wvla `xml2-config --cflags` `perl -MExtUtils::Embed -e ccopts` -DWITH_PERL -DNDEBUG  -c common/lock.c -o common/lock.o
warning: unknown warning option '-Wno-clobbered'; did you mean '-Wno-consumed'?
      [-Wunknown-warning-option]
common/lock.c:76:21: warning: implicit declaration of function 'flock' is invalid in C99
      [-Wimplicit-function-declaration]
                if (flock(result, LOCK_EX | LOCK_NB) == -1)
                    ^
common/lock.c:76:21: warning: this function declaration is not a prototype [-Wstrict-prototypes]
common/lock.c:76:35: fatal error: use of undeclared identifier 'LOCK_EX'
                if (flock(result, LOCK_EX | LOCK_NB) == -1)
                                  ^
3 warnings and 1 error generated.
make: *** [common/lock.o] Error 1

To fix this, you will need to edit src/Makefile and change line 12 from:

CSTD = -std=c99 -D_POSIX_C_SOURCE=200112L

to:

CSTD = -std=c99 -D_DARWIN_C_SOURCE

Then, you can follow the other steps on my previous post and everything should compile and function properly.

Enjoy!

pgBackRest 2.07 and macOS Mojave

pgBackRest 2.07 was announced today. As usual, I immediately downloaded it and tried to get it up and running on my MacBook (currently ru...… Continue reading

Monitoring pgBackRest with tail_n_mail

Published on September 24, 2018

pgBouncer and auth pass-thru

Published on August 07, 2018