Você pode modificar apenas as duas linhas:
->where('(library.available_until >=', date("Y-m-d H:i:s"), FALSE)
->or_where("library.available_until = '00-00-00 00:00:00')", NULL, FALSE)
EDITAR:
Omitindo o
FALSE
O parâmetro teria colocado os acentos graves antes dos colchetes e os tornaria parte do nome/valor da tabela, tornando a consulta inutilizável. O
NULL
O parâmetro está lá apenas porque a função requer que o segundo parâmetro seja um valor e, como não temos um, enviamos NULL.