I found the issue. It was already described here: https://bugs.gentoo.org/811351

The "SoObjects/SOGo/GNUmakefile" is missing the additional LDFLAG

This is what needs to be changed


-ADDITIONAL_LDFLAGS += -lmemcached -lzip
+ADDITIONAL_LDFLAGS += -lmemcached -lzip -lytnef


now ldd shows the link!


I would say this is a SOGo bug and should be changed in the source code.

Am Freitag, dem 02.02.2024 um 12:37 +0000 schrieb burkha...@konsultaner.de:
I just realized one more thing

ldd /usr/local/lib64/GNUstep/SOGo/Mailer.SOGo/Mailer | grep ytnef
ldd /usr/local/lib64/GNUstep/SOGo/MailerUI.SOGo/MailerUI | grep ytnef
 ldd /usr/local/lib64/GNUstep/SOGo/MailPartViewers.SOGo/MailPartViewers | grep 
ytnef

returns nothing. it seems like ytnef didn't get linked eventhough it didn't end 
in a compiletime error. So compilation worked well, but execution doesn't work.

Am Donnerstag, dem 01.02.2024 um 22:03 +0000 schrieb burkha...@konsultaner.de:
To answer you other questions:

cat /usr/local/include/ytnef.h | grep TNEFParseMemory
int TNEFParseMemory(BYTE *memory, long size, TNEFStruct *TNEF);

gcc -lytnef
/usr/bin/ld: /usr/lib/gcc/x86_64-redhat-linux/11/../../../../lib64/crt1.o: in 
function `_start':
(.text+0x1b): undefined reference to `main'
collect2: error: ld returned 1 exit status

I finally got ld to find the libytnef.so and libytnef.a

ldconfig -p | grep libyt
libytnef.so.0 (libc6,x86-64) => /usr/local/lib/libytnef.so.0
libytnef.so (libc6,x86-64) => /usr/local/lib/libytnef.so

I needed to add /usr/local/lib to the ld path. Seems like Alma puts everything 
into /usr/local/lib64

I could compile the test.c without a problem. I also added the BUNDLE_LIBS += 
-lytnef but still

Nothing works. The linker can see ytnef and sogo should find it too, because it 
is available in /usr/local/lib64 via a symlink.

Is there any other possible condition why the mail component doesn't find my 
libytnef.so?

The version of ytnef also contains the symbol:

nm -D /usr/local/lib/libytnef.so | grep TNEFParseMemory 00000000000054e0 T 
TNEFParseMemory

Am Mittwoch, dem 31.01.2024 um 18:25 +0000 schrieb burkha...@konsultaner.de:
Sorry, this is the output of the daemon. So when running it not building. 
Compiling works well.

Am 31.01.2024 17:29 schrieb qhivert <users@sogo.nu>:
It’s not clear to me if you get the errors when building or after when running 
sogo ?

From: users-requ...@sogo.nu <users-requ...@sogo.nu>On Behalf 
Of"burkha...@konsultaner.de"
Sent: mercredi 31 janvier 2024 16:14
To: users@sogo.nu
Subject: Re: [SOGo] SOGo 5.9.0 could not load product

Thank you, compiling the test.c worked. my I added the ytnef.h to ld but still 
the same error. If it helps here is my part of the ansible script that compiles 
sogo on alma 9.3 minimal


- name: set data path
  set_fact:
    sogo_gnustep_path: "/usr/local/lib64/GNUstep/SOGo"

- name: Enable additional repo
  dnf:
    name:
      - epel-release
      - almalinux-release-devel

- name: Enable CRB repository
  command: dnf config-manager --set-enabled crb

- name: Enable devel repository
  command: dnf config-manager --set-enabled devel

- name: Install required packages
  dnf:
    enablerepo: epel
    name:
      - gnustep-base
      - gnustep-make
      - gnustep-base-devel
      - gcc-objc
      - libsodium
      - libsodium-devel
      - libmemcached-awesome
      - libmemcached-awesome-devel
      - libzip
      - libzip-devel

- name: Install required packages
  dnf:
    name:
      - redhat-rpm-config
      - libxml2-devel
      - libxml2
      - openssl-devel
      - openssl
      - openldap-devel
      - openldap
      - postgresql-devel
      - postgresql
      - libcurl-devel
      - libcurl
      - python3-psycopg2
      - autoconf
      - automake
      - libtool
      - git
    state: present

- name: Clone ytnef from GitHub
  git:
    repo: 'https://github.com/Yeraze/ytnef.git'
    dest: '/tmp/ytnef'
    version: "{{ ytnef_git_tag }}"
    clone: yes
    update: yes

- name: Compile and Install SOPE
  shell: |
    cd /tmp/ytnef
    autoreconf -i
    ./configure
    make
    make install
    echo "/usr/local/include" | sudo tee -a /etc/ld.so.confD
    ldconfig
  args:
    executable: /bin/bash

- name: Clone SOPE from GitHub
  git:
    repo: 'https://github.com/Alinto/sope.git'
    dest: '/tmp/SOPE'
    version: "{{ sope_git_tag }}"
    clone: yes
    update: yes

- name: Clone SOGo from GitHub
  git:
    repo: 'https://github.com/Alinto/sogo.git'
    dest: '/tmp/SOGo'
    version: "{{ sogo_git_tag }}"
    clone: yes
    update: yes

- name: Compile and Install SOPE
  shell: |
    cd /tmp/SOPE
    ./configure --with-gnustep --enable-debug --disable-strip
    make
    make install
  args:
    executable: /bin/bash

- name: Compile and Install SOGo
  shell: |
    cd /tmp/SOGo
    ./configure --enable-debug --disable-strip
    make
    make install
  args:
    executable: /bin/bash

you just need to set the vars in you playbook, this is only my sogo role.

Am Mittwoch, dem 31.01.2024 um 15:16 +0100 schrieb qhivert:
Ok,
It seems related to https://bugs.sogo.nu/view.php?id=5907
but it it’s not the same symbol. Could you try the steps of my first comment 
there (qhivert)?

From: users-requ...@sogo.nu<mailto:users-requ...@sogo.nu> 
<users-requ...@sogo.nu<mailto:users-requ...@sogo.nu>>On Behalf 
Of"burkha...@konsultaner.de<mailto:burkha...@konsultaner.de>"
Sent: mercredi 31 janvier 2024 15:06
To: users@sogo.nu<mailto:users@sogo.nu>
Subject: Re: [SOGo] SOGo 5.9.0 could not load product

Hey Queintin,

no I tried installing from yum, from the nightly repo and finally tried to 
install by compiling from source. Nothing worked. I always get the same error. 
Even going down on a 5.8 didn't work.

Richard

Am Mittwoch, dem 31.01.2024 um 14:32 +0100 schrieb qhivert:
Hello,

Are you saying that when installing ytnef via yum it don’t work but when you’re 
building ytnef yourself it works fine?

Queintin




From: users-requ...@sogo.nu<mailto:users-requ...@sogo.nu> 
<users-requ...@sogo.nu<mailto:users-requ...@sogo.nu>>On Behalf 
Of"burkha...@konsultaner.de<mailto:burkha...@konsultaner.de>"
Sent: mercredi 31 janvier 2024 11:23
To: users@sogo.nu<mailto:users@sogo.nu>
Subject: Re: [SOGo] SOGo 5.9.0 could not load product

I compiled SOGo 5.9.1 from source on AlmaLinux9 which worked fine. I also 
compiled ytnef from source, because I keep getting the errors:

Error (objc-load):/usr/local/lib64/GNUstep/SOGo/Mailer.SOGo/Mailer: undefined 
symbol: TNEFParseMemory
Error 
(objc-load):/usr/local/lib64/GNUstep/SOGo/MailPartViewers.SOGo/MailPartViewers: 
undefined symbol: __objc_class_name_SOGoMailBodyPart
Error 
(objc-load):/usr/local/lib64/GNUstep/SOGo/PreferencesUI.SOGo/PreferencesUI: 
undefined symbol: __objc_class_name_SOGoMailLabel

So somehow ytnef is not getting bundled. I tried to add it to BUNDLE_LIBS 
"-lytnef" in SoObjects/Mailer/GNUmakefile.preamble but it didn't work.

Reply via email to