Bug 275802 - math/openblas: PLIST issue when INTERFACE64 is enabled
Summary: math/openblas: PLIST issue when INTERFACE64 is enabled
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: amd64 Any
: --- Affects Only Me
Assignee: Po-Chuan Hsieh
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-12-17 12:52 UTC by Sergey V. Koupreyenko
Modified: 2023-12-25 16:18 UTC (History)
4 users (show)

See Also:
phd_kimberlite: maintainer-feedback+


Attachments
Patch for pkg-plist file of the math/openblas port (541 bytes, patch)
2023-12-21 11:00 UTC, Sergey V. Koupreyenko
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Sergey V. Koupreyenko 2023-12-17 12:52:01 UTC
Poudriere's buildlog:

=>> Building math/openblas
build started at Sun Dec 17 14:33:56 MSK 2023
port directory: /usr/ports/math/openblas
package name: openblas-0.3.25,2
building for: FreeBSD freebsd.fractel.priv 12.4-STABLE FreeBSD 12.4-STABLE 1204500 amd64
maintained by: phd_kimberlite@yahoo.co.jp
Makefile ident: 
Poudriere version: 3.3.7_4
Host OSVERSION: 1204500
Jail OSVERSION: 1204500
Job Id: 01

---Begin Environment---
SHELL=/bin/csh
OSVERSION=1204500
UNAME_v=FreeBSD 12.4-STABLE 1204500
UNAME_r=12.4-STABLE
BLOCKSIZE=K
MAIL=/var/mail/root
STATUS=1
HOME=/root
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/root/bin
LOCALBASE=/usr/local
USER=root
LIBEXECPREFIX=/usr/local/libexec/poudriere
POUDRIERE_VERSION=3.3.7_4
MASTERMNT=/poudriere/data/.m/12-stable-amd64-default-amd64/ref
POUDRIERE_BUILD_TYPE=bulk
PACKAGE_BUILDING=yes
SAVED_TERM=screen
GID=0
UID=0
PWD=/poudriere/data/.m/12-stable-amd64-default-amd64/ref/.p/pool
P_PORTS_FEATURES=FLAVORS SELECTED_OPTIONS
MASTERNAME=12-stable-amd64-default-amd64
SCRIPTPREFIX=/usr/local/share/poudriere
OLDPWD=/poudriere/data/.m/12-stable-amd64-default-amd64/ref/.p
SCRIPTPATH=/usr/local/share/poudriere/bulk.sh
POUDRIEREPATH=/usr/local/bin/poudriere
---End Environment---

---Begin Poudriere Port Flags/Env---
PORT_FLAGS=
PKGENV=
FLAVOR=
DEPENDS_ARGS=
MAKE_ARGS=
---End Poudriere Port Flags/Env---

---Begin OPTIONS List---
===> The following configuration options are available for openblas-0.3.25,2:
     AVX=off: Support Advanced Vector Extensions (AVX)
     AVX2=off: Support Advanced Vector Extensions 2 (AVX2)
     DYNAMIC_ARCH=on: Optimize for multiple CPU types, otherwise for this CPU
     INTERFACE64=on: Use 8 byte integers on 64-bit architectures
     OPENMP=on: Use OpenMP for threading
===> Use 'make config' to modify these settings
---End OPTIONS List---

...

=======================<phase: package        >============================
===>  Building package for openblas-0.3.25,2
pkg-static: Unable to access file /wrkdirs/usr/ports/math/openblas/work/stage/usr/local/libdata/pkgconfig/openblas.pc:No such file or directory
*** Error code 1

Stop.
make: stopped in /usr/ports/math/openblas
=>> Cleaning up wrkdir
===>  Cleaning for openblas-0.3.25,2
build of math/openblas | openblas-0.3.25,2 ended at Sun Dec 17 15:26:13 MSK 2023
build time: 473004:26:14
!!! build failure encountered !!!
Comment 1 Eijiro Shibusawa 2023-12-18 11:22:45 UTC
I'm sorry, I don't have time this year.
Also could you please consider to migrate to a supported FreeBSD release?
Because 12-stable will reach EOL on 31 Dec 2023.
https://www.freebsd.org/security/#sup
Comment 2 Sergey V. Koupreyenko 2023-12-18 12:23:24 UTC
(In reply to Eijiro Shibusawa from comment #1)

By now i can't switch to another branch, i need 12-STABLE.

Suppose this bug will appear not only on 12-STABLE but also on 13th one too.
Probably due to incorrect plist.

Can i try to create a patch for this bug?
Comment 3 Eijiro Shibusawa 2023-12-18 13:36:22 UTC
(In reply to Sergey V. Koupreyenko from comment #2)
I carried out poudriere tests on 13.2R-amd64 and 14.0R-amd64, and they are both passed.

I'm not opposed to creating a patch as it might be useful for 12-stable users and the community. However I will not agree with merge it to main. Because this port is required from more than one hundred ports. I think that exp-run and version bumping for supporting nearly EOL code branch does not make much sense.

According to my poudriere log openblas.pc seems to be generated automatically.
==
PKGFILE="/wrkdirs/usr/ports/math/openblas/work/stage/usr/local/lib/pkgconfig/openblas.pc"
Generating openblas.pc in /wrkdirs/usr/ports/math/openblas/work/stage/usr/local/lib/pkgconfig
==
Comment 4 Sergey V. Koupreyenko 2023-12-18 13:58:59 UTC
(In reply to Eijiro Shibusawa from comment #3)

As you can see i have enabled port option INTERFACE64:

---Begin OPTIONS List---
===> The following configuration options are available for openblas-0.3.25,2:
     AVX=off: Support Advanced Vector Extensions (AVX)
     AVX2=off: Support Advanced Vector Extensions 2 (AVX2)
     DYNAMIC_ARCH=on: Optimize for multiple CPU types, otherwise for this CPU
     INTERFACE64=on: Use 8 byte integers on 64-bit architectures
     OPENMP=on: Use OpenMP for threading
===> Use 'make config' to modify these settings
---End OPTIONS List---


Seems in that case file pkgconfig file openblas.pc was created as openblas64.pc.
The poudriere's log is below:

PKGFILE="/wrkdirs/usr/ports/math/openblas/work/stage/usr/local/lib/pkgconfig/openblas64.pc"
Generating openblas64.pc in /wrkdirs/usr/ports/math/openblas/work/stage/usr/local/lib/pkgconfig

Please check how this option works on 13 and 14 stable branches.
Comment 5 Ivo Karabojkov 2023-12-21 07:23:31 UTC
(In reply to Sergey V. Koupreyenko from comment #4)
I found this bug trying to debug the failed build of math/openblas on FreeBSD 14.0-RELEASE by poudriere:

[00:15:13] =======================<phase: package        >============================
[00:15:13] ===== env: 'PKG_NOTES=build_timestamp ports_top_git_hash ports_top_checkout_unclean port_git_hash port_checkout_unclean built_by' 'PKG_NOTE_build_timestamp=2023-12-21T01:43:59+0000' 'PKG_NOTE_ports_top_git_hash=10a7d51e0' 'PKG_NOTE_ports_top_checkout_unclean=no' 'PKG_NOTE_port_git_hash=84ca7effd' 'PKG_NOTE_port_checkout_unclean=no' 'PKG_NOTE_built_by=poudriere-git-3.4.0' NO_DEPENDS=yes USER=nobody UID=65534 GID=65534
[00:15:13] ===>  Building package for openblas-0.3.25,2
[00:15:13] pkg-static: Unable to access file /wrkdirs/usr/ports/math/openblas/work/stage/usr/local/libdata/pkgconfig/openblas.pc:No such file or directory
[00:15:13] *** Error code 1
[00:15:13] 
[00:15:13] Stop.
[00:15:13] make: stopped in /usr/ports/math/openblas
[00:24:55] =>> Cleaning up wrkdir

The option INTERFACE64 is enabled. Disabling this option leads to successful build. However I'm not sure what impact would it result in package functioning.
Comment 6 Sergey V. Koupreyenko 2023-12-21 11:00:08 UTC
Created attachment 247183 [details]
Patch for pkg-plist file of the math/openblas port
Comment 7 Sergey V. Koupreyenko 2023-12-21 11:03:12 UTC
(In reply to Ivo Karabojkov from comment #5)

Ivo, can you please try to apply patch i've attached recently and build the port again with INTERFACE64 option enabled.

Should be successful.
Comment 8 Sergey V. Koupreyenko 2023-12-21 17:00:05 UTC
Port with proposed patch and enabled option INTERFACE64 was built successful on 12-STABLE branch.
Comment 9 Cory Albrecht 2023-12-24 17:45:51 UTC
I see this bug on 13.1-RELEASE-p9 in a jail. I'm running TrueNAS Core so I cannot upgrade.
Comment 10 Ivo Karabojkov 2023-12-25 15:30:20 UTC
(In reply to Sergey V. Koupreyenko from comment #7)
The patch works perfectly, the port and all dependant ones built successfully!
(FreeBSD 14.0-RELEASE, built by poudriere)
Comment 11 Po-Chuan Hsieh freebsd_committer freebsd_triage 2023-12-25 16:00:18 UTC
It should affect all FreeBSD versions.

from Makefile.install:
165 #Generating openblas.pc
166 ifeq ($(INTERFACE64),1)
167         SUFFIX64=64
168 endif
169         PKGFILE="$(DESTDIR)$(OPENBLAS_PKGCONFIG_DIR)/$(LIBSONAMEBASE)$(SUFFIX64).pc"
...
178         @cat openblas.pc.in >> "$(PKGFILE)"
Comment 12 Po-Chuan Hsieh freebsd_committer freebsd_triage 2023-12-25 16:17:40 UTC
Committed. Thanks!
Comment 13 commit-hook freebsd_committer freebsd_triage 2023-12-25 16:18:10 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=391b9fd144831507cc4b01b063e1ab9972cce0fd

commit 391b9fd144831507cc4b01b063e1ab9972cce0fd
Author:     Po-Chuan Hsieh <sunpoet@FreeBSD.org>
AuthorDate: 2023-12-25 16:04:17 +0000
Commit:     Po-Chuan Hsieh <sunpoet@FreeBSD.org>
CommitDate: 2023-12-25 16:11:03 +0000

    math/openblas: Fix PLIST when INTERFACE64 option is enabled

    from Makefile.install:
    165 #Generating openblas.pc
    166 ifeq ($(INTERFACE64),1)
    167         SUFFIX64=64
    168 endif
    169         PKGFILE="$(DESTDIR)$(OPENBLAS_PKGCONFIG_DIR)/$(LIBSONAMEBASE)$(SUFFIX64).pc"
    ...
    178         @cat openblas.pc.in >> "$(PKGFILE)"

    PR:             275802
    Submitted by:   Sergey V. Koupreyenko <sergey.koupreyenko@gmail.com>
    Approved by:    Eijiro Shibusawa <phd_kimberlite@yahoo.co.jp> (maintainer)

 math/openblas/pkg-plist | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)