Solved Poudriere options for libreoffice

I have this in /usr/local/etc/poudriere.d/PORTS-12-2-options/editors_libreoffice/options:
Code:
# This file is auto-generated by 'make config'.
# Options for libreoffice-7.1.1.2_3
_OPTIONS_READ=libreoffice-7.1.1.2_3
_FILE_COMPLETE_OPTIONS_LIST=COINMP CUPS DOCS GNOME GTK3 JAVA KF5 LTO MMEDIA PGSQL QT5 SDK TEST WEBDAV
OPTIONS_FILE_UNSET+=COINMP
OPTIONS_FILE_SET+=CUPS
OPTIONS_FILE_SET+=DOCS
OPTIONS_FILE_SET+=GNOME
OPTIONS_FILE_UNSET+=GTK3
OPTIONS_FILE_SET+=JAVA
OPTIONS_FILE_UNSET+=KF5
OPTIONS_FILE_UNSET+=LTO
OPTIONS_FILE_SET+=MMEDIA
OPTIONS_FILE_SET+=PGSQL
OPTIONS_FILE_SET+=QT5
OPTIONS_FILE_UNSET+=SDK
OPTIONS_FILE_UNSET+=TEST
OPTIONS_FILE_SET+=WEBDAV

I invoked poudriere with this command:

Code:
export RELEASE=12-2 && poudriere ports -u -p PORTS-12-2 && poudriere bulk -C  -j freebsd_12-2x64  -p PORTS-12-2  -f  /root/Poudriere/poudr_libreoffice.txt # find in /usr/local/poudriere/ports/

When I installed this version of libreoffice pkg info says this:

Code:
pkg info libreoffice
libreoffice-7.1.1.2_4
Name           : libreoffice
Version        : 7.1.1.2_4
Installed on   : Fri May 28 12:10:42 2021 EDT
Origin         : editors/libreoffice
Architecture   : FreeBSD:12:amd64
Prefix         : /usr/local
Categories     : editors
Licenses       : LGPL3+, MPL20
Maintainer     : office@FreeBSD.org
WWW            : https://www.libreoffice.org/
Comment        : Full integrated office productivity suite
Options        :
    COINMP         : off
    CUPS           : on
    DOCS           : on
    GNOME          : off
    GTK3           : off
    JAVA           : off
    KF5            : off
    LTO            : off
    MMEDIA         : on
    PGSQL          : off
    QT5            : on
    SDK            : off
    TEST           : off
    WEBDAV         : off

Why do the JAVA and PGSQL options in the package not match the JAVA and PGSQL options given to the build? Or am I misreading what the option list is saying?

The reason I am building libreoffice locally is to obtain the database constructor in BASE. That option is greyed out and cannot be selected in the opting dialogue box. When I open an existing libreoffice base I get this error:

Code:
SQL Status: HY000

The connection to the external data source could not be established. No SDBC driver was found for the URL 'sdbc:embedded:hsqldb'.


Using pkg search sdbc returns only dnsdbck-1.01 Verify consistency of DNS information in an SQL database.

As for hsqldb, that is already installed.
 
Look in your build logs. At the top you can find the settings that were used when building a port.
 
Look in your build logs. At the top you can find the settings that were used when building a port.
I looked at the logs and found this:
Code:
---Begin OPTIONS List---
===> The following configuration options are available for libreoffice-7.1.1.2_4:
     COINMP=off: Enable CoinMP (deprecated) math solver
     CUPS=on: CUPS printing system support
     DOCS=on: Build and/or install documentation
     GNOME=off: GNOME desktop environment support
     GTK3=off: GTK+ 3 GUI toolkit support (incomplete visual style)
     JAVA=off: Add Java support (XML filters, macros, DB connections)
     KF5=off: KF5/Qt5 GUI toolkit support (implies QT5)
     LTO=off: Use Link-Time Optimization
     MMEDIA=on: Enable multimedia backend for Impress
     PGSQL=off: Build with PostgreSQL-SDBC driver
     QT5=on: Qt5 GUI toolkit support (default visual style)
     SDK=off: Build with SDK
     TEST=off: Run all regression tests
     WEBDAV=off: Enable WebDAV protocol
===> Use 'make config' to modify these settings
---End OPTIONS List---

I have since run make config in the the port directory and presently LO is rebuilding.

The question I now have is what purpose does setting the options through poudriere have if these do not take effect?
 
Don't use dashes (-) in your ports and/or jail name. The dashes are used as a divisor, I suspect your ports name (PORTS-12-2) and jail name (freebsd_12-2x64) messes up the selection.

Code:
   Custom build options
     Before building a package, poudriere can mount a directory containing
     option files if available.  poudriere will check for any of these
     directories in this order:

           /usr/local/etc/poudriere.d/<jailname>-<tree>-<setname>-options
           /usr/local/etc/poudriere.d/<jailname>-<setname>-options
           /usr/local/etc/poudriere.d/<jailname>-<tree>-options
           /usr/local/etc/poudriere.d/<tree>-<setname>-options
           /usr/local/etc/poudriere.d/<setname>-options
           /usr/local/etc/poudriere.d/<tree>-options
           /usr/local/etc/poudriere.d/<jailname>-options
           /usr/local/etc/poudriere.d/options
 
Well, apparently running make config did not work either:

Code:
---Begin OPTIONS List---
===> The following configuration options are available for libreoffice-7.1.1.2_4:
     COINMP=off: Enable CoinMP (deprecated) math solver
     CUPS=on: CUPS printing system support
     DOCS=on: Build and/or install documentation
     GNOME=off: GNOME desktop environment support
     GTK3=off: GTK+ 3 GUI toolkit support (incomplete visual style)
     JAVA=off: Add Java support (XML filters, macros, DB connections)
     KF5=off: KF5/Qt5 GUI toolkit support (implies QT5)
     LTO=off: Use Link-Time Optimization
     MMEDIA=on: Enable multimedia backend for Impress
     PGSQL=off: Build with PostgreSQL-SDBC driver
     QT5=on: Qt5 GUI toolkit support (default visual style)
     SDK=off: Build with SDK
     TEST=off: Run all regression tests
     WEBDAV=off: Enable WebDAV protocol
===> Use 'make config' to modify these settings
---End OPTIONS List---

If I check the LO make options with make config then I see that the options I have set are not the ones being used. Why not?

Where does one change the options so they they have effect?
 

Attachments

  • libreoffice_options.png
    libreoffice_options.png
    69.5 KB · Views: 126
Don't use dashes (-) in your ports and/or jail name. The dashes are used as a divisor, I suspect your ports name (PORTS-12-2) and jail name (freebsd_12-2x64) messes up the selection.
If true then this is the first port that has triggered this issue. I have been using that nomenclature, which is taken from FreeBSDs own practice (RELEASE-XX), since I began using poudrier a couple of years ago. I have built hundreds of packages, some with custom options set through poudriere, and have never encountered this. Is there an example where this actually happened?
 
You can go to
/usr/local/etc/poudriere.d/yourjail_yourport_youroptions/
And have a look at the specific options file.
Code:
ll /usr/local/etc/poudriere.d/PORTS-12-2-options/editors_libreoffice/options
-rw-r--r--  1 root  wheel  558 May 28 14:06 /usr/local/etc/poudriere.d/PORTS-12-2-options/editors_libreoffice/options
[root@vhost01 ~ (master)]# cat /usr/local/etc/poudriere.d/PORTS-12-2-options/editors_libreoffice/options
# This file is auto-generated by 'make config'.
# Options for libreoffice-7.1.1.2_4
_OPTIONS_READ=libreoffice-7.1.1.2_4
_FILE_COMPLETE_OPTIONS_LIST=COINMP CUPS DOCS GNOME GTK3 JAVA KF5 LTO MMEDIA PGSQL QT5 SDK TEST WEBDAV
OPTIONS_FILE_UNSET+=COINMP
OPTIONS_FILE_SET+=CUPS
OPTIONS_FILE_SET+=DOCS
OPTIONS_FILE_SET+=GNOME
OPTIONS_FILE_SET+=GTK3
OPTIONS_FILE_SET+=JAVA
OPTIONS_FILE_UNSET+=KF5
OPTIONS_FILE_UNSET+=LTO
OPTIONS_FILE_SET+=MMEDIA
OPTIONS_FILE_SET+=PGSQL
OPTIONS_FILE_SET+=QT5
OPTIONS_FILE_UNSET+=SDK
OPTIONS_FILE_UNSET+=TEST
OPTIONS_FILE_SET+=WEBDAV
 
I am afraid that I do not understand this remark. The steps I took to create the poudriere environment are:
Code:
poudriere ports -c -p PORTS_12_2
poudriere jail -c -j freebsd_12_2x64 -v 12.2-RELEASE

The command line given to start the build was:
Code:
export RELEASE=12_2 && \
  poudriere ports -u -p PORTS_"$RELEASE" && \
  poudriere bulk -C  -j freebsd_"$RELEASE"x64  -p PORTS_12_2  -f  /root/Poudriere/poudr_libreoffice.txt

It is my understanding from what I have read and what I observe that poudriere handles the pkg management itself and places all the packages it builds into /usr/local/poudriere/data/packages/<jailname-porttree>/All. I am not aware of any way to override this.

The whole purpose of poudriere is to isolate the build environment from that of the host computer. Consequently I do not see how any setting on the host with respect to any of the packages built by poudriere could influence the build process.
 
You must have a file like:
Code:
/usr/local/etc/pkg/repos/Local.conf
With contents e.g.,
Code:
Poudriere: {
  url: "file:///poudriere/data/packages/poujail-pouports"
}
FreeBSD: {
  enabled: no
}
In order for pkg to use to poudriere builds and not the freebsd ones.
 
The problem is not installing the libreoffice package after it is built, which is what pkg/repos/x.conf handles. I install the result using pkg add -f and pick the specific package directly from the poudriere package directory. There is no need of a poudriere repo, although I do have exactly that. And your example has never worked for me. I have to have the additional command mirror_type: "none" for pkg to work using the install or upgrade command with poudriere packages.

The is issue is that poudriere is not using the options set for the package it is building, libreoffice.
 
Try to build it with or without DOCS. Would be interesting to see if the outcome is different.
I.e. all options are affected or not ? Or you stumbled on a bug.
 
How are you setting the options? Are you using poudriere options, because it creates its own options directory per jail?
 
Don't use dashes (-) in your ports and/or jail name. The dashes are used as a divisor, I suspect your ports name (PORTS-12-2) and jail name (freebsd_12-2x64) messes up the selection.
As suggested, I renamed the ports tree and jail and rebuilt LO. And this time the options were set as desired. Thank you for your help. I would never have thought that possible but the evidence seems unequivocal that it is so.
 
As suggested, I renamed the ports tree and jail and rebuilt LO. And this time the options were set as desired. Thank you for your help. I would never have thought that possible but the evidence seems unequivocal that it is so.
I suddenly remembered running into the same weirdness when I started with poudriere, like you I had created jails and ports trees with dashes in them and was stumped why settings didn't apply properly.
 
Back
Top