Demo Discussion
Forum Config Examples Contributions Vulnerabilities
  Discussion forum about ELOG, Page 715 of 796  Not logged in ELOG logo
ID Date Icon Author Author Email Categoryup OS ELOG Version Subject
  69734   Wed Feb 21 10:39:21 2024 Question scottshiva.ps@stfc.ac.ukQuestionLinux | OtherLatest versionno availability of el8 and el9 rpm

Hi,

I checked the RPM download page and found that there is no RPM available to install ELOG on el8 and el9 based OS.

Can someone upload the RPM for el8 and el9 on the download page of ELOG?

 

  69735   Wed Feb 21 11:15:38 2024 Reply Laurent Jean-Rigaudlollspam@free.frQuestionLinux | OtherLatest versionRe: no availability of el8 and el9 rpm

Hi,

EPEL retired the ELOG package for security reason.

You can build from GIT source as described in elog:Forum/69732 .

As SPECfile don't manage el8/9, you have to activate manually service thru "systemctl enable elogd" then "systemctl start elogd".

 

scott wrote:

Hi,

I checked the RPM download page and found that there is no RPM available to install ELOG on el8 and el9 based OS.

Can someone upload the RPM for el8 and el9 on the download page of ELOG?

 

 

  69736   Wed Feb 21 21:20:56 2024 Reply Konstantin Olchanskiolchansk@triumf.caQuestionLinux | OtherLatest versionRe: no availability of el8 and el9 rpm
> EPEL retired the ELOG package for security reason

no, this is not what happened, we (I) requested removal of elog packages from epel, debian and ubuntu because they had obsolete pre-cve (insecure) 
versions that should not be used. they were very pleasant, quick and efficient dealing with this. (but obviously they could not retroactively 
remove elog from old versions of ubuntu and debian).

we opted to not reclaim ownership of these packages (original person who created these packages had drifted away) because
none of us know how to create debian packages and all of us (speaking for myself) know how much PITA is building RPM packages.
plus I do not know if Stefan has access to el8 and el9 machines (I do not, we are moving to ubuntu/debian wholesale).

I recommend building elog from git sources. it is simple, two commands (git clone + make) vs one command (rpm install),
it ensures you always have the latest version available, it is easy to update (git pull + make) and you do not
get any surprise updates (from nightly apt update/upgrade).

K.O.
  69737   Thu Feb 22 00:53:26 2024 Reply Laurent Jean-Rigaudlollspam@free.frQuestionLinux | OtherLatest versionRe: no availability of el8 and el9 rpm
> > EPEL retired the ELOG package for security reason
> 
> no, this is not what happened, we (I) requested removal of elog packages from epel, debian and ubuntu because they had obsolete pre-cve (insecure) 
> versions that should not be used. they were very pleasant, quick and efficient dealing with this. (but obviously they could not retroactively 
> remove elog from old versions of ubuntu and debian).

Yep i remind now. Finally the result was the same :-(
if CVEs had been fixed in repo, you should make a new official ELOG version and update download site with tarball, .exe and RPMS. Almost End-users do not use git repo...

> we opted to not reclaim ownership of these packages (original person who created these packages had drifted away) because
> none of us know how to create debian packages and all of us (speaking for myself) know how much PITA is building RPM packages.
> plus I do not know if Stefan has access to el8 and el9 machines (I do not, we are moving to ubuntu/debian wholesale).
 
I spent one hour yesterday to install almalinux in VM on my laptop, clone repo, rebuild ELOG RPM, install the new rpm and start elogd. 
You should have several VM on a shield for that :-P 

> I recommend building elog from git sources. it is simple, two commands (git clone + make) vs one command (rpm install),
> it ensures you always have the latest version available, it is easy to update (git pull + make) and you do not
> get any surprise updates (from nightly apt update/upgrade).

The problem of building ELOG is that it needs a development machine with C++ and dependencies installed. This is not present (or forbidden) in production machine/VM...
End users need simple package (rpm/pkg/*) to install it as all other products, with the confidence that this package has been testing...
Also, "git clone and make" should be surprising, as the devs use a particular environment that should be different from user's one. 

The future is maybe something more universal as Flatpak/SNAP/... 

Btw thanks for ELOG program and support.

Bye
Laurent
  69738   Thu Feb 22 08:12:28 2024 Reply Stefan Rittstefan.ritt@psi.chQuestionLinux | OtherLatest versionRe: no availability of el8 and el9 rpm
> I spent one hour yesterday to install almalinux in VM on my laptop, clone repo, rebuild ELOG RPM, install the new rpm and start elogd. 
> You should have several VM on a shield for that :-P 

Right. One hour to install linux X, another hour for linux Y. Building RPMs is a constant challenge taking lots of time. If we 
find someone who volunteers to build the RPMs and EXEs from the sources and takes over the responsibility for the next years, 
I would be more than happy to upload the resulting files. I simply don't have time for that given all my other responsibilities.

Best,
Stefan
  69739   Thu Feb 22 11:59:03 2024 Reply Laurent Jean-Rigaudlollspam@free.frQuestionLinux | OtherLatest versionRe: no availability of el8 and el9 rpm
> > I spent one hour yesterday to install almalinux in VM on my laptop, clone repo, rebuild ELOG RPM, install the new rpm and start elogd. 
> > You should have several VM on a shield for that :-P 
> 
> Right. One hour to install linux X, another hour for linux Y. Building RPMs is a constant challenge taking lots of time. If we 
> find someone who volunteers to build the RPMs and EXEs from the sources and takes over the responsibility for the next years, 
> I would be more than happy to upload the resulting files. I simply don't have time for that given all my other responsibilities.
> 
> Best,
> Stefan

Hi Stephan,

I understand your time problem. In fact, the "One hour" is the kickstart. Update is poweron VM, dnf update, git clone & rpmbuild x.y.z, then scp *.rpm to website. 10 mins. It could be scripted on your dev server if any VM manager is available from it.

You can also use automatic build plaform as COPR (https://copr.fedorainfracloud.org/) for RPM, and Bitbucket for Debian/Ubuntu (native). Bitbucket accepts OSS projects for Free.

With BitBucket, it's possible to configure personal runners for CI/CD (systems with pipeline client installed, as RHEL, Fedora, Windows, etc...). The pipeline scripts can build, test and generate the packages automatically, depend on system runners. 
As CI/CD, the process is automatically done after commits in git repo... A lot of work to make it in place, but when it's running, the delivery process is done
This is also possible with GitLab and other big platorms.

Maybe you should try. 

For my curiosity, I've just clone ELOG repo on Bitbucket to try the process. That's pity : pipelines are currently broken (incident traced in status page https://status.atlassian.com/). 
The goal is to build elog and pkg file for Ubuntu (docker images list : https://status.atlassian.com/). Next steps should to create a AlmaLinux VM to try RPM builds. 

Have nice day,
Laurent
  69740   Fri Feb 23 08:40:26 2024 Reply Stefan Rittstefan.ritt@psi.chQuestionLinux | OtherLatest versionRe: no availability of el8 and el9 rpm
> For my curiosity, I've just clone ELOG repo on Bitbucket to try the process. That's pity : pipelines are currently broken (incident traced in status page https://status.atlassian.com/). 
> The goal is to build elog and pkg file for Ubuntu (docker images list : https://status.atlassian.com/). Next steps should to create a AlmaLinux VM to try RPM builds. 

I fixed the bitbucket pipeline. I compiled it for an (old) GCC 6.3, and even if I installed cmake there, it was not running (maybe I needed cmake3?). Anyhow, I switched GCC 10.2 and now it's fine.

> With BitBucket, it's possible to configure personal runners for CI/CD (systems with pipeline client installed, as RHEL, Fedora, Windows, etc...). The pipeline scripts can build, test and generate the packages automatically, depend on system runners. 
> As CI/CD, the process is automatically done after commits in git repo... A lot of work to make it in place, but when it's running, the delivery process is done
> This is also possible with GitLab and other big platorms.

As you saw I use the bitbucket pipeline for CI/CD. The current bitbucket-pipelines.yml is pretty simple (see attachment). If you make me one which does the rpmbuild automatically, I'm more than happy to upload and use it. The downside there is that it only works for so long. As you saw at the 
error above, the pipeline worked a few years ago when I installed it. But in meantime things changed apparently and need to be fixed. ELOG is around since last century (literally!), and I'm kind of tired to fix things every once in a while. If somebody else could take over the responsibility to 
deliver the RPMs I would be more than delighted.

Stefan
Attachment 1: bitbucket-pipelines.yml
# Build ELOG with GCC 10.2 and latest
image: gcc:10.2

pipelines:
  default:
    - step:
        name: Build on GCC 10.2
        image: gcc:10.2
        script:
          - apt-get update && apt-get install -y imagemagick cmake
          - git submodule update --init
          - mkdir build; cd build
          - cmake ..
          - make

    - step:
        name: Build on GCC latest
        image: gcc:latest
        script:
          - gcc --version
          - apt-get -qq update && apt-get -y --force-yes -qq install cmake
          - git submodule update --init
          - mkdir build; cd build
          - cmake ..
          - make
  69743   Fri Feb 23 18:00:41 2024 Reply Laurent Jean-Rigaudlollspam@free.frQuestionLinux | OtherLatest versionRe: no availability of el8 and el9 rpm

Hi Stefan,

> As you saw I use the bitbucket pipeline for CI/CD. The current bitbucket-pipelines.yml is pretty simple (see attachment). If you make me one which does the rpmbuild automatically, I'm more than happy to upload and use it. The downside there is that it only works for so long. As you saw at the
> error above, the pipeline worked a few years ago when I installed it. But in meantime things changed apparently and need to be fixed. ELOG is around since last century (literally!), and I'm kind of tired to fix things every once in a while. If somebody else could take over the responsibility to
> deliver the RPMs I would be more than delighted.

Good news ! I thought the bitbucket-pipelines.yml was automatically added when importing the repo :-P

Btw, i try to update it as enclosed :

  • first step : build, install, start and test Web connection
  • build on ELx in // with artifacts
    • on centos7
    • on centos8
    • on centos-stream-9
  • automatic deployment on ... where you want. You can push to your website the files by sftp/scp using dedicated account/key using secrets in bitbuckket...

 

Manually, the artifacts (rpm files) are also available from website in pipeline's steps, Artifacts tab and download button.

 

NB : The ELOG version is statically set in pipeline script (3.1.5) so this script need to be updated with git one by bitbuecket vars or script command to retrieve it from src.

 

One more thing : the elog.spec.template must be patched to build last ELOG source on EL7. Without, an error occurs on nullptr usage and C++ must be set to C11 rules... See enclosed elog-EL7_c11_patch.diff .

Now, the Debian/Ubuntu PKGs generation have to be added. Need google as I do not do that for 20 years :-P

Bye

Laurent

 

Attachment 1: elog-EL7_c11_patch.diff
From 57fb0be0c1b6e7e77df57499effc22784edeb898 Mon Sep 17 00:00:00 2001
From: Laurent Jean-Rigaud
Date: Fri, 23 Feb 2024 16:50:21 +0100
Subject: [PATCH] fix C11 error on EL7

---
 elog.spec.template | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/elog.spec.template b/elog.spec.template
index 0e7f8abf..a30dd67a 100644
--- a/elog.spec.template
+++ b/elog.spec.template
@@ -110,7 +110,11 @@ each weblog can be totally different from the rest.
    -g elog -M -r elog 2>/dev/null || :
 
 %build
-make %{?_with_ssl} %{?_with_pam} %{?_with_ldap} %{?_with_krb5} CFLAGS="$RPM_OPT_FLAGS -O3 -funroll-loops -fomit-frame-pointer -W -Wall -Wno-deprecated-declarations -Wno-unused-result -Imxml"
+%if 0%{?rhel} == 7
+  make %{?_with_ssl} %{?_with_pam} %{?_with_ldap} %{?_with_krb5} CFLAGS="$RPM_OPT_FLAGS -O3 -funroll-loops -fomit-frame-pointer -W -Wall -Wno-deprecated-declarations -Wno-unused-result -Imxml -std=c++11"
+%else
+  make %{?_with_ssl} %{?_with_pam} %{?_with_ldap} %{?_with_krb5} CFLAGS="$RPM_OPT_FLAGS -O3 -funroll-loops -fomit-frame-pointer -W -Wall -Wno-deprecated-declarations -Wno-unused-result -Imxml"
+%endif
 sed "s#\@PREFIX\@#%{prefix}#g" elogd.init_template > elogd.init
 
 %install
-- 
2.41.0

Attachment 4: bitbucket-pipelines.yml
# ELOG Application

# This template allows you to validate your C++ application.
# The workflow allows running tests and code linting on the default branch.


image: gcc:latest


pipelines:
  default:
      - step:
          name: Build run and test
          image: gcc:latest
          deployment: test
          script:
            # Execute your C++ application after compilation to check success
            - apt-get -qq update && apt-get -y --force-yes -qq install cmake wget lsof
            - git submodule update --init
            # Add elog user
            - groupadd -r elog
            - useradd -d / -s /bin/false -g elog -M -r elog
            # Build elog
            - mkdir build; cd build
            - cmake ..
            - make
            # Install in default /usr/local/elog
            - echo "install in test environment"
            - make install
            # Start elogd
            - echo "Start ELOG"
            - /usr/local/sbin/elogd -v 3 -c /usr/local/elog/elogd.cfg 2>&1 &
            - sleep 5
            - if [ -f /var/run/elogd.pid ]; then cat /var/run/elogd.pid ; fi
            # Check open files
            - lsof -p $(cat /var/run/elogd.pid)
            # Test Web page
            - echo "test web"
            - sleep 3
            - wget http://localhost:8080 && true || false
      - parallel:
          steps:
            - step:
                name: Build on EL7
                image: dokken/centos-7
                # trigger: manual  # Uncomment to make this a manual deployment.
                script:
                  - echo "Deploying to test environment"
                  - yum -y update && yum -y install rpm-build gcc gcc-c++ git openssl-devel krb5-devel pam-devel openldap-devel csh
                  - git submodule update --init
                  # git clone https://bitbucket.org/ritt/elog --recursive
                  - ./buildrpm 3.1.5 $(date +%Y%m%d) -krb5 -ldap -pam -ssl
                  - mkdir RPMS
                  - find ~/rpmbuild/RPMS/ -name "*.rpm" -exec mv {} RPMS \;
                  - ls -l RPMS
                artifacts: # defining the artifacts to be passed to each future step.
                  download: false # do not download artifacts in this step
                  paths:
                    - RPMS/*.rpm
            - step:
                name: Build on EL8
                image: dokken/centos-8
                # trigger: manual  # Uncomment to make this a manual deployment.
                script:
                  - echo "Deploying to test environment"
                  - yum -y update && yum -y install rpm-build gcc gcc-c++ git openssl-devel krb5-devel pam-devel openldap-devel csh
                  - git submodule update --init
                  # git clone https://bitbucket.org/ritt/elog --recursive
                  - ./buildrpm 3.1.5 $(date +%Y%m%d) -krb5 -ldap -pam -ssl
                  - mkdir RPMS
                  - find ~/rpmbuild/RPMS/ -name "*.rpm" -exec mv {} RPMS \;
                  - ls -l RPMS
                artifacts: # defining the artifacts to be passed to each future step.
                  download: false # do not download artifacts in this step
                  paths:
                    - RPMS/*.rpm
            - step:
                name: Build on EL9
                image: dokken/centos-stream-9
                # trigger: manual  # Uncomment to make this a manual deployment.
                script:
                  - echo "Deploying to test environment"
                  - yum -y update && yum -y install rpm-build gcc gcc-c++ git openssl-devel krb5-devel pam-devel openldap-devel csh
                  - git submodule update --init
                  # git clone https://bitbucket.org/ritt/elog --recursive
                  - ./buildrpm 3.1.5 $(date +%Y%m%d) -krb5 -ldap -pam -ssl
                  - mkdir RPMS
                  - find ~/rpmbuild/RPMS/ -name "*.rpm" -exec mv {} RPMS \;
                  - ls -l RPMS
                artifacts: # defining the artifacts to be passed to each future step.
                  download: false # do not download artifacts in this step
                  paths:
                    - RPMS/*.rpm
      - step: # non-parallel step
          name: Deployement
          deployment: staging
          script:
            - echo "Deliver results"
            - ls -l RPMS

ELOG V3.1.5-2eba886