Demo Discussion
Forum Config Examples Contributions Vulnerabilities
  Discussion forum about ELOG, Page 391 of 808  Not logged in ELOG logo
ID Date Icon Author Author Email Category OS ELOG Version Subjectdown
  68256   Mon Feb 8 17:40:27 2016 Reply Tapasi Ghoshtapasi03@gmail.comQuestionMac OSXelog-3.1.0Re: New entry cannot be written to directory "/usr/local/elog/logbooks/demo/"

Sorry, it was my mistake while copying  from terminal to the email .  There is no "demo" directory under /usr/local/lib.

Tapasis-MacBook-Pro:elog tapasi$ cd  /usr/local/elog/logbooks/demo

Tapasis-MacBook-Pro:demo tapasi$ ls -ltr

total 0

drwxr-xr-x   3 tapasi  admin   102 Sep 22 11:00 2001

drwxr-xr-x  55 503     admin  1870 Dec 17 13:21 2015

drwxr-xr-x   2 tapasi  admin    68 Jan  7 14:54 2016

 

So, how can I change the user from "nobody" to my name, so that elogd runs in my user name ?

Thanks

Andreas Luedeke wrote:

The process elogd runs as the user "nobody". This user obviously cannot write to /usr/local/elog/logbooks/demo.

But apparently you've created the wrong directory anyway: you've listed /usr/local/elog/demo, but ELOG looks for /usr/local/elog/logbooks/demo.

Cheers, Andreas

Tapasi Ghosh wrote:

Thanks for your reply.

I am the user and  it also has the write access 

cd /usr/local/elog/

ls -ltr

drwxrwxrwx  6 tapasi  admin  204 Jan  7 18:26 demo

Andreas Luedeke wrote:

You should check if the directory /usr/local/elog/logbooks/demo belongs to the right user and has the right write permissions.

Since the elogd process belongs to the user "nobody", the directory should best belong to "nobody" as well (or - not recommended - allows write access for "others")

Cheers, Andreas

Tapasi Ghosh wrote:

Dear All,

I could not submit a new enetry to my logbook whenever restarting my laptop.  I am a new user to elog.

Attached is the screenshot of the error message and also there is "nobody" while I grep elog.

----------------------

>>

Tapasis-MacBook-Pro-2:elog-3.1.0 tapasi$  ps aux | grep elog

tapasi            560   0.4  0.0  2432772    644 s002  S+    9:50AM   0:00.01 grep elog

nobody             76   0.0  0.4  2481308  18440   ??  Ss    9:48AM   0:00.08 /usr/local/sbin/elogd -c /usr/local/elog/elogd.cfg

--------------------------

Any suggesstion will be very much appreciated.

Thanks in advance,

Tapasi

 

 

 

 

 

 

  68257   Mon Feb 8 19:29:47 2016 Reply Stefan Rittstefan.ritt@psi.chQuestionMac OSXelog-3.1.0Re: New entry cannot be written to directory "/usr/local/elog/logbooks/demo/"

Use

usr = <user anme>

in elogd.cfg as written in the documentation.

Stefan

Tapasi Ghosh wrote:

So, how can I change the user from "nobody" to my name, so that elogd runs in my user name ?

  67691   Tue Jul 29 16:53:18 2014 Reply Stefan Rittstefan.ritt@psi.chQuestionLinux2.9.2Re: New entries remotely?

Daniel Roldan wrote:

 Hi all,

I would like to create a new entry remotely.

I would like that when the macro run, the macro automatically create a new entry in my Elog.

I was searching, but i don't saw any thing about this.

Is possible to do a new entry remotely?

 

Thanks for all.

Use the "elog" command line utility as described here under tips & tricks: http://midas.psi.ch/elog/userguide.html

  66995   Thu Jan 20 08:52:43 2011 Reply Stefan Rittstefan.ritt@psi.chBug reportAll2.8.0Re: New entries are not visible from other logbooks based on the same logbook dir through Subdir

JacekK wrote:

Hi,

I have two logbooks based on the same data directory through "Subdir" option and when I add new entry in one logbook, then that entry is not visible in other logbook.

I suppose it is a bug in el_submit function, where I think the new message should be added to message index of every logbook based on the same data directory as the one, where the message was physically created. 

There is a piece of code, which I think should do this automatically

/* if other logbook has same index, update pointers */

but it seems the other logbooks does not have the same index. 

I'm new to elog and the sources are also new to me, so my guess to the ground of the problem may be wrong.

Let me know is this bug possible to fix in near future.

 

Best regards,

Jacek

Well, having two logbooks in the same subdirectory was initially a planned feature but really never worked. I re-visited this issue and made it working in the current SVN version. So the next release will contain the fix. 

  69645   Fri Feb 3 20:26:46 2023 Reply Antonio BulgheroniLooking antonio.bulgheroni@gmail.comInfoLinux | Mac OSX3.1.5Re: New elog version 3.1.5

Looking forward to the windows installer. 

Thanks a lot and keep up the good work!

 

cheers,

toto

Stefan Ritt wrote:

A new version 3.1.5 of elog has been released with all accumulated fixes over the past actually few years. I made a tar file, a RPM, but I could not compile yet a windows version.

https://elog.psi.ch/elog/download.html

Best,
Stefan

 

  69663   Tue Apr 11 12:51:12 2023 Reply Finn JunkerHi fj@tvis.netInfoLinux | Mac OSX3.1.5Re: New elog version 3.1.5

Hi Stefan

Is there anything the community or forum can help you with or supply for creating a windows version?

Kind Regards Finn

Stefan Ritt wrote:

A new version 3.1.5 of elog has been released with all accumulated fixes over the past actually few years. I made a tar file, a RPM, but I could not compile yet a windows version.

https://elog.psi.ch/elog/download.html

Best,
Stefan

 

  69664   Wed Apr 12 00:09:08 2023 Reply Laurent Jean-Rigaudlollspam@free.frInfoLinux | Mac OSX3.1.5Re: New elog version 3.1.5

Hi,

It's possible to build elogd under windows with cygwin, but not sure that is the best as it requires a lot of dependencies that should be included to dist package to be runnable everywhere.

After

  • installation of dependencies (gcc-g++, make, libssl1.1, libssl-devel, opendlap-devel, libopenldap2, libkrb5-devel, libkrb5_3) using CygWin setup program,
  • instalkation of git tool and clone the git repo (git clone https://bitbucket.org/ritt/elog --recursive),
  • modification of Makefile to build with Kerberos/ldap/ssl support,

from cygwin bash under Windows 11, you can build elog :

/cygdrive/d/Devel/elog $ make
c++ -O3 -funroll-loops -fomit-frame-pointer -W -Wall -Wno-deprecated-declarations -Wno-unused-result -Imxml -DHAVE_SSL -DHAVE_KRB5 -DHAVE_LDAP -o elog src/elog.cxx mxml.o crypt.o strlcpy.o -lssl -lkrb5 -lldap -llber
c++ -O3 -funroll-loops -fomit-frame-pointer -W -Wall -Wno-deprecated-declarations -Wno-unused-result -Imxml -DHAVE_SSL -DHAVE_KRB5 -DHAVE_LDAP -w -c -o auth.o src/auth.cxx
c++ -O3 -funroll-loops -fomit-frame-pointer -W -Wall -Wno-deprecated-declarations -Wno-unused-result -Imxml -DHAVE_SSL -DHAVE_KRB5 -DHAVE_LDAP -o elogd src/elogd.cxx auth.o mxml.o crypt.o strlcpy.o -lssl -lkrb5 -lldap -llber
src/elogd.cxx:217:6: warning: ‘_timezone’ redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]
  217 | long _timezone;
      |      ^~~~~~~~~
src/elogd.cxx: In function ‘int el_submit(LOGBOOK*, int, BOOL, const char*, char (*)[1500], char (*)[1500], int, const char*, const char*, const char*, const char*, const char (*)[256], BOOL, const char*, const char*)’:
src/elogd.cxx:4963:47: warning: ‘%s’ directive writing up to 149999 bytes into a region of size between 100103 and 250102 [-Wformat-overflow=]
 4963 |       sprintf(message + strlen(message), "%s: %s\n", attr_name[i], attrib[i]);
      |                                               ^~
src/elogd.cxx:4963:14: note: ‘sprintf’ output between 4 and 300002 bytes into a destination of size 250104
 4963 |       sprintf(message + strlen(message), "%s: %s\n", attr_name[i], attrib[i]);
      |       ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.cxx: In function ‘void show_edit_form(LOGBOOK*, int, BOOL, BOOL, BOOL, BOOL, BOOL, BOOL)’:
src/elogd.cxx:9655:28: warning: ‘%s’ directive writing up to 149999 bytes into a region of size 3993 [-Wformat-overflow=]
 9655 |       sprintf(str, "Preset %s", attr_list[index]);
      |                            ^~
src/elogd.cxx:9655:14: note: ‘sprintf’ output between 8 and 150007 bytes into a destination of size 4000
 9655 |       sprintf(str, "Preset %s", attr_list[index]);
      |       ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.cxx:9676:43: warning: ‘%s’ directive writing up to 149999 bytes into a region of size 3978 [-Wformat-overflow=]
 9676 |       sprintf(str, "Preset on first reply %s", attr_list[index]);
      |                                           ^~
src/elogd.cxx:9676:14: note: ‘sprintf’ output between 23 and 150022 bytes into a destination of size 4000
 9676 |       sprintf(str, "Preset on first reply %s", attr_list[index]);
      |       ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.cxx:9697:37: warning: ‘%s’ directive writing up to 149999 bytes into a region of size 3984 [-Wformat-overflow=]
 9697 |       sprintf(str, "Preset on reply %s", attr_list[index]);
      |                                     ^~
src/elogd.cxx:9697:14: note: ‘sprintf’ output between 17 and 150016 bytes into a destination of size 4000
 9697 |       sprintf(str, "Preset on reply %s", attr_list[index]);
      |       ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.cxx:9697:37: warning: ‘%s’ directive writing up to 149999 bytes into a region of size 3984 [-Wformat-overflow=]
 9697 |       sprintf(str, "Preset on reply %s", attr_list[index]);
      |                                     ^~
src/elogd.cxx:9697:14: note: ‘sprintf’ output between 17 and 150016 bytes into a destination of size 4000
 9697 |       sprintf(str, "Preset on reply %s", attr_list[index]);
      |       ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.cxx:9697:37: warning: ‘%s’ directive writing up to 149999 bytes into a region of size 3984 [-Wformat-overflow=]
 9697 |       sprintf(str, "Preset on reply %s", attr_list[index]);
      |                                     ^~
src/elogd.cxx:9697:14: note: ‘sprintf’ output between 17 and 150016 bytes into a destination of size 4000
 9697 |       sprintf(str, "Preset on reply %s", attr_list[index]);
      |       ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.cxx:9697:37: warning: ‘%s’ directive writing up to 149999 bytes into a region of size 3984 [-Wformat-overflow=]
 9697 |       sprintf(str, "Preset on reply %s", attr_list[index]);
      |                                     ^~
src/elogd.cxx:9697:14: note: ‘sprintf’ output between 17 and 150016 bytes into a destination of size 4000
 9697 |       sprintf(str, "Preset on reply %s", attr_list[index]);
      |       ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.cxx:9717:36: warning: ‘%s’ directive writing up to 149999 bytes into a region of size 3985 [-Wformat-overflow=]
 9717 |       sprintf(str, "Preset on edit %s", attr_list[index]);
      |                                    ^~
src/elogd.cxx:9717:14: note: ‘sprintf’ output between 16 and 150015 bytes into a destination of size 4000
 9717 |       sprintf(str, "Preset on edit %s", attr_list[index]);
      |       ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.cxx:9737:41: warning: ‘%s’ directive writing up to 149999 bytes into a region of size 3980 [-Wformat-overflow=]
 9737 |       sprintf(str, "Preset on duplicate %s", attr_list[index]);
      |                                         ^~
src/elogd.cxx:9737:14: note: ‘sprintf’ output between 21 and 150020 bytes into a destination of size 4000
 9737 |       sprintf(str, "Preset on duplicate %s", attr_list[index]);
      |       ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.cxx:9758:22: warning: ‘%s’ directive writing up to 149999 bytes into a region of size 3999 [-Wformat-overflow=]
 9758 |       sprintf(str, "p%s", attr_list[index]);
      |                      ^~
src/elogd.cxx:9758:14: note: ‘sprintf’ output between 2 and 150001 bytes into a destination of size 4000
 9758 |       sprintf(str, "p%s", attr_list[index]);
      |       ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.cxx:9776:31: warning: ‘%s’ directive writing up to 149999 bytes into a region of size 3993 [-Wformat-overflow=]
 9776 |          sprintf(str, "Preset %s", attr_list[index]);
      |                               ^~
src/elogd.cxx:9776:17: note: ‘sprintf’ output between 8 and 150007 bytes into a destination of size 4000
 9776 |          sprintf(str, "Preset %s", attr_list[index]);
      |          ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.cxx:9797:40: warning: ‘%s’ directive writing up to 149999 bytes into a region of size 3984 [-Wformat-overflow=]
 9797 |          sprintf(str, "Preset on reply %s", attr_list[index]);
      |                                        ^~
src/elogd.cxx:9797:17: note: ‘sprintf’ output between 17 and 150016 bytes into a destination of size 4000
 9797 |          sprintf(str, "Preset on reply %s", attr_list[index]);
      |          ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.cxx:9817:44: warning: ‘%s’ directive writing up to 149999 bytes into a region of size 3980 [-Wformat-overflow=]
 9817 |          sprintf(str, "Preset on duplicate %s", attr_list[index]);
      |                                            ^~
src/elogd.cxx:9817:17: note: ‘sprintf’ output between 21 and 150020 bytes into a destination of size 4000
 9817 |          sprintf(str, "Preset on duplicate %s", attr_list[index]);
      |          ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.cxx: In function ‘void show_elog_list(LOGBOOK*, int, int, int, BOOL, char*)’:
src/elogd.cxx:20459:43: warning: ‘%s’ directive writing up to 149999 bytes into a region of size 1587 [-Wformat-overflow=]
20459 |                sprintf(str, "Icon comment %s", attrib[i]);
      |                                           ^~
src/elogd.cxx:20459:23: note: ‘sprintf’ output between 14 and 150013 bytes into a destination of size 1600
20459 |                sprintf(str, "Icon comment %s", attrib[i]);
      |                ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.cxx:20506:33: warning: ‘%s’ directive writing up to 149999 bytes into a region of size 1600 [-Wformat-overflow=]
20506 |                   sprintf(str, "%s_%d", attr_list[i], j);
      |                                 ^~
src/elogd.cxx:20506:32: note: directive argument in the range [0, 99]
20506 |                   sprintf(str, "%s_%d", attr_list[i], j);
      |                                ^~~~~~~
src/elogd.cxx:20506:26: note: ‘sprintf’ output between 3 and 150003 bytes into a destination of size 1600
20506 |                   sprintf(str, "%s_%d", attr_list[i], j);
      |                   ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.cxx:20470:33: warning: ‘%s’ directive writing up to 149999 bytes into a region of size 1600 [-Wformat-overflow=]
20470 |                   sprintf(str, "%s_%d", attr_list[i], j);
      |                                 ^~
src/elogd.cxx:20470:32: note: directive argument in the range [0, 99]
20470 |                   sprintf(str, "%s_%d", attr_list[i], j);
      |                                ^~~~~~~
src/elogd.cxx:20470:26: note: ‘sprintf’ output between 3 and 150003 bytes into a destination of size 1600
20470 |                   sprintf(str, "%s_%d", attr_list[i], j);
      |                   ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.cxx:21052:30: warning: ‘%s’ directive writing up to 149999 bytes into a region of size 1600 [-Wformat-overflow=]
21052 |                sprintf(str, "%s_%d", attr_list[i], j);
      |                              ^~
src/elogd.cxx:21052:29: note: directive argument in the range [0, 99]
21052 |                sprintf(str, "%s_%d", attr_list[i], j);
      |                             ^~~~~~~
src/elogd.cxx:21052:23: note: ‘sprintf’ output between 3 and 150003 bytes into a destination of size 1600
21052 |                sprintf(str, "%s_%d", attr_list[i], j);
      |                ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.cxx:21538:45: warning: ‘%s’ directive writing up to 149999 bytes into a region of size 1588 [-Wformat-overflow=]
21538 |                   sprintf(str, "Time format %s", attr_list[i]);
      |                                             ^~
src/elogd.cxx:21538:26: note: ‘sprintf’ output between 13 and 150012 bytes into a destination of size 1600
21538 |                   sprintf(str, "Time format %s", attr_list[i]);
      |                   ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.cxx:21523:45: warning: ‘%s’ directive writing up to 149999 bytes into a region of size 1588 [-Wformat-overflow=]
21523 |                   sprintf(str, "Date format %s", attr_list[i]);
      |                                             ^~
src/elogd.cxx:21523:26: note: ‘sprintf’ output between 13 and 150012 bytes into a destination of size 1600
21523 |                   sprintf(str, "Date format %s", attr_list[i]);
      |                   ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.cxx: In function ‘void submit_elog(LOGBOOK*)’:
src/elogd.cxx:23293:38: warning: ‘%s’ directive writing up to 149999 bytes into a region of size 2034 [-Wformat-overflow=]
23293 |          sprintf(str, "Subst on edit %s", attr_list[index]);
      |                                      ^~
src/elogd.cxx:23293:17: note: ‘sprintf’ output between 15 and 150014 bytes into a destination of size 2048
23293 |          sprintf(str, "Subst on edit %s", attr_list[index]);
      |          ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.cxx:23323:39: warning: ‘%s’ directive writing up to 149999 bytes into a region of size 2033 [-Wformat-overflow=]
23323 |          sprintf(str, "Subst on reply %s", attr_list[index]);
      |                                       ^~
src/elogd.cxx:23323:17: note: ‘sprintf’ output between 16 and 150015 bytes into a destination of size 2048
23323 |          sprintf(str, "Subst on reply %s", attr_list[index]);
      |          ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
c++ -O3 -funroll-loops -fomit-frame-pointer -W -Wall -Wno-deprecated-declarations -Wno-unused-result -Imxml -DHAVE_SSL -DHAVE_KRB5 -DHAVE_LDAP -o elconv src/elconv.cxx -lssl -lkrb5 -lldap -llber

Copy to new dir :

  • the 3 binaries(elogd.exe, elog.exe & elconv.exe)
  • logbooks, scripts, ssl and themes folders from git clone.
  • elogd.cfg.example as elogd.cfg.

 

/cygdrive/d/Devel/elog/elog-win64 $ ldd elogd.exe
        ntdll.dll => /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll (0x7ff9796b0000)
        KERNEL32.DLL => /cygdrive/c/WINDOWS/System32/KERNEL32.DLL (0x7ff978050000)
        KERNELBASE.dll => /cygdrive/c/WINDOWS/System32/KERNELBASE.dll (0x7ff976af0000)
        cygwin1.dll => /usr/bin/cygwin1.dll (0x7ff925010000)
        cygkrb5-3.dll => /usr/bin/cygkrb5-3.dll (0x3fe4b0000)
        cygldap-2.dll => /usr/bin/cygldap-2.dll (0x3fdf70000)
        cyglber-2.dll => /usr/bin/cyglber-2.dll (0x3fe030000)
        cygssl-1.1.dll => /usr/bin/cygssl-1.1.dll (0x3ff4d0000)
        cygstdc++-6.dll => /usr/bin/cygstdc++-6.dll (0x3ff2f0000)
        cyggcc_s-seh-1.dll => /usr/bin/cyggcc_s-seh-1.dll (0x3ffc30000)
        cygk5crypto-3.dll => /usr/bin/cygk5crypto-3.dll (0x3fe600000)
        cygkrb5support-0.dll => /usr/bin/cygkrb5support-0.dll (0x3fe490000)
        cygintl-8.dll => /usr/bin/cygintl-8.dll (0x3ffa10000)
        cygcom_err-2.dll => /usr/bin/cygcom_err-2.dll (0x3fe9b0000)
        cygcrypto-1.1.dll => /usr/bin/cygcrypto-1.1.dll (0x3ffce0000)
        cygsasl2-3.dll => /usr/bin/cygsasl2-3.dll (0x3fdee0000)
        cygiconv-2.dll => /usr/bin/cygiconv-2.dll (0x3ffa30000)
        cygz.dll => /usr/bin/cygz.dll (0x3ff280000)

/cygdrive/d/Devel/elog/elog-win64 $ ls
elconv.exe  elog.exe  elogd.cfg  elogd.exe  logbooks  scripts  ssl  themes
 

/cygdrive/d/Devel/elog/elog-win64 $ ./elogd.exe
elogd 3.1.5 built Apr 12 2023, 00:01:15 revision 33884104
CKeditor detected
ImageMagick NOT detected. Image scaling will not work.
Indexing logbooks ... done
Server listening on port 8080 ...

With that, elogd starts and the site is usable.

NB: after installing imageMagick, elogd starts with activation of image manipulation features.

/cygdrive/d/Devel/elog/elog-win64 $ ./elogd.exe
elogd 3.1.5 built Apr 12 2023, 00:01:15 revision 33884104
CKeditor detected
ImageMagick detected
Indexing logbooks ... done
Server listening on port 8080 ...

For who as interested, I enclosed 2 zips, with (elog-win64_wDLL.zip) or without (elog-win64.zip) Cygwin DLL (licence: https://cygwin.com/COPYING). The build uses the current git version.

 

Regards,

Laurent

 

Finn Junker wrote:

Hi Stefan

Is there anything the community or forum can help you with or supply for creating a windows version?

Kind Regards Finn

Stefan Ritt wrote:

A new version 3.1.5 of elog has been released with all accumulated fixes over the past actually few years. I made a tar file, a RPM, but I could not compile yet a windows version.

https://elog.psi.ch/elog/download.html

Best,
Stefan

 

 

Attachment 1: elog-win64.zip
Attachment 2: elog-win64_wDLL.zip
  69665   Wed Apr 12 15:08:15 2023 Reply Finn Junkerfj@tvis.netInfoLinux | Mac OSX3.1.5Re: New elog version 3.1.5

Hi Laurent

It is possible to use the attached but the elogd will not start as a service anymore - is there a fix to that aswell?

Kind Regards Finn

Laurent Jean-Rigaud wrote:

Hi,

It's possible to build elogd under windows with cygwin, but not sure that is the best as it requires a lot of dependencies that should be included to dist package to be runnable everywhere.

After

  • installation of dependencies (gcc-g++, make, libssl1.1, libssl-devel, opendlap-devel, libopenldap2, libkrb5-devel, libkrb5_3) using CygWin setup program,
  • instalkation of git tool and clone the git repo (git clone https://bitbucket.org/ritt/elog --recursive),
  • modification of Makefile to build with Kerberos/ldap/ssl support,

from cygwin bash under Windows 11, you can build elog :

/cygdrive/d/Devel/elog $ make
c++ -O3 -funroll-loops -fomit-frame-pointer -W -Wall -Wno-deprecated-declarations -Wno-unused-result -Imxml -DHAVE_SSL -DHAVE_KRB5 -DHAVE_LDAP -o elog src/elog.cxx mxml.o crypt.o strlcpy.o -lssl -lkrb5 -lldap -llber
c++ -O3 -funroll-loops -fomit-frame-pointer -W -Wall -Wno-deprecated-declarations -Wno-unused-result -Imxml -DHAVE_SSL -DHAVE_KRB5 -DHAVE_LDAP -w -c -o auth.o src/auth.cxx
c++ -O3 -funroll-loops -fomit-frame-pointer -W -Wall -Wno-deprecated-declarations -Wno-unused-result -Imxml -DHAVE_SSL -DHAVE_KRB5 -DHAVE_LDAP -o elogd src/elogd.cxx auth.o mxml.o crypt.o strlcpy.o -lssl -lkrb5 -lldap -llber
src/elogd.cxx:217:6: warning: ‘_timezone’ redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]
  217 | long _timezone;
      |      ^~~~~~~~~
src/elogd.cxx: In function ‘int el_submit(LOGBOOK*, int, BOOL, const char*, char (*)[1500], char (*)[1500], int, const char*, const char*, const char*, const char*, const char (*)[256], BOOL, const char*, const char*)’:
src/elogd.cxx:4963:47: warning: ‘%s’ directive writing up to 149999 bytes into a region of size between 100103 and 250102 [-Wformat-overflow=]
 4963 |       sprintf(message + strlen(message), "%s: %s\n", attr_name[i], attrib[i]);
      |                                               ^~
src/elogd.cxx:4963:14: note: ‘sprintf’ output between 4 and 300002 bytes into a destination of size 250104
 4963 |       sprintf(message + strlen(message), "%s: %s\n", attr_name[i], attrib[i]);
      |       ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.cxx: In function ‘void show_edit_form(LOGBOOK*, int, BOOL, BOOL, BOOL, BOOL, BOOL, BOOL)’:
src/elogd.cxx:9655:28: warning: ‘%s’ directive writing up to 149999 bytes into a region of size 3993 [-Wformat-overflow=]
 9655 |       sprintf(str, "Preset %s", attr_list[index]);
      |                            ^~
src/elogd.cxx:9655:14: note: ‘sprintf’ output between 8 and 150007 bytes into a destination of size 4000
 9655 |       sprintf(str, "Preset %s", attr_list[index]);
      |       ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.cxx:9676:43: warning: ‘%s’ directive writing up to 149999 bytes into a region of size 3978 [-Wformat-overflow=]
 9676 |       sprintf(str, "Preset on first reply %s", attr_list[index]);
      |                                           ^~
src/elogd.cxx:9676:14: note: ‘sprintf’ output between 23 and 150022 bytes into a destination of size 4000
 9676 |       sprintf(str, "Preset on first reply %s", attr_list[index]);
      |       ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.cxx:9697:37: warning: ‘%s’ directive writing up to 149999 bytes into a region of size 3984 [-Wformat-overflow=]
 9697 |       sprintf(str, "Preset on reply %s", attr_list[index]);
      |                                     ^~
src/elogd.cxx:9697:14: note: ‘sprintf’ output between 17 and 150016 bytes into a destination of size 4000
 9697 |       sprintf(str, "Preset on reply %s", attr_list[index]);
      |       ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.cxx:9697:37: warning: ‘%s’ directive writing up to 149999 bytes into a region of size 3984 [-Wformat-overflow=]
 9697 |       sprintf(str, "Preset on reply %s", attr_list[index]);
      |                                     ^~
src/elogd.cxx:9697:14: note: ‘sprintf’ output between 17 and 150016 bytes into a destination of size 4000
 9697 |       sprintf(str, "Preset on reply %s", attr_list[index]);
      |       ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.cxx:9697:37: warning: ‘%s’ directive writing up to 149999 bytes into a region of size 3984 [-Wformat-overflow=]
 9697 |       sprintf(str, "Preset on reply %s", attr_list[index]);
      |                                     ^~
src/elogd.cxx:9697:14: note: ‘sprintf’ output between 17 and 150016 bytes into a destination of size 4000
 9697 |       sprintf(str, "Preset on reply %s", attr_list[index]);
      |       ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.cxx:9697:37: warning: ‘%s’ directive writing up to 149999 bytes into a region of size 3984 [-Wformat-overflow=]
 9697 |       sprintf(str, "Preset on reply %s", attr_list[index]);
      |                                     ^~
src/elogd.cxx:9697:14: note: ‘sprintf’ output between 17 and 150016 bytes into a destination of size 4000
 9697 |       sprintf(str, "Preset on reply %s", attr_list[index]);
      |       ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.cxx:9717:36: warning: ‘%s’ directive writing up to 149999 bytes into a region of size 3985 [-Wformat-overflow=]
 9717 |       sprintf(str, "Preset on edit %s", attr_list[index]);
      |                                    ^~
src/elogd.cxx:9717:14: note: ‘sprintf’ output between 16 and 150015 bytes into a destination of size 4000
 9717 |       sprintf(str, "Preset on edit %s", attr_list[index]);
      |       ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.cxx:9737:41: warning: ‘%s’ directive writing up to 149999 bytes into a region of size 3980 [-Wformat-overflow=]
 9737 |       sprintf(str, "Preset on duplicate %s", attr_list[index]);
      |                                         ^~
src/elogd.cxx:9737:14: note: ‘sprintf’ output between 21 and 150020 bytes into a destination of size 4000
 9737 |       sprintf(str, "Preset on duplicate %s", attr_list[index]);
      |       ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.cxx:9758:22: warning: ‘%s’ directive writing up to 149999 bytes into a region of size 3999 [-Wformat-overflow=]
 9758 |       sprintf(str, "p%s", attr_list[index]);
      |                      ^~
src/elogd.cxx:9758:14: note: ‘sprintf’ output between 2 and 150001 bytes into a destination of size 4000
 9758 |       sprintf(str, "p%s", attr_list[index]);
      |       ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.cxx:9776:31: warning: ‘%s’ directive writing up to 149999 bytes into a region of size 3993 [-Wformat-overflow=]
 9776 |          sprintf(str, "Preset %s", attr_list[index]);
      |                               ^~
src/elogd.cxx:9776:17: note: ‘sprintf’ output between 8 and 150007 bytes into a destination of size 4000
 9776 |          sprintf(str, "Preset %s", attr_list[index]);
      |          ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.cxx:9797:40: warning: ‘%s’ directive writing up to 149999 bytes into a region of size 3984 [-Wformat-overflow=]
 9797 |          sprintf(str, "Preset on reply %s", attr_list[index]);
      |                                        ^~
src/elogd.cxx:9797:17: note: ‘sprintf’ output between 17 and 150016 bytes into a destination of size 4000
 9797 |          sprintf(str, "Preset on reply %s", attr_list[index]);
      |          ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.cxx:9817:44: warning: ‘%s’ directive writing up to 149999 bytes into a region of size 3980 [-Wformat-overflow=]
 9817 |          sprintf(str, "Preset on duplicate %s", attr_list[index]);
      |                                            ^~
src/elogd.cxx:9817:17: note: ‘sprintf’ output between 21 and 150020 bytes into a destination of size 4000
 9817 |          sprintf(str, "Preset on duplicate %s", attr_list[index]);
      |          ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.cxx: In function ‘void show_elog_list(LOGBOOK*, int, int, int, BOOL, char*)’:
src/elogd.cxx:20459:43: warning: ‘%s’ directive writing up to 149999 bytes into a region of size 1587 [-Wformat-overflow=]
20459 |                sprintf(str, "Icon comment %s", attrib[i]);
      |                                           ^~
src/elogd.cxx:20459:23: note: ‘sprintf’ output between 14 and 150013 bytes into a destination of size 1600
20459 |                sprintf(str, "Icon comment %s", attrib[i]);
      |                ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.cxx:20506:33: warning: ‘%s’ directive writing up to 149999 bytes into a region of size 1600 [-Wformat-overflow=]
20506 |                   sprintf(str, "%s_%d", attr_list[i], j);
      |                                 ^~
src/elogd.cxx:20506:32: note: directive argument in the range [0, 99]
20506 |                   sprintf(str, "%s_%d", attr_list[i], j);
      |                                ^~~~~~~
src/elogd.cxx:20506:26: note: ‘sprintf’ output between 3 and 150003 bytes into a destination of size 1600
20506 |                   sprintf(str, "%s_%d", attr_list[i], j);
      |                   ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.cxx:20470:33: warning: ‘%s’ directive writing up to 149999 bytes into a region of size 1600 [-Wformat-overflow=]
20470 |                   sprintf(str, "%s_%d", attr_list[i], j);
      |                                 ^~
src/elogd.cxx:20470:32: note: directive argument in the range [0, 99]
20470 |                   sprintf(str, "%s_%d", attr_list[i], j);
      |                                ^~~~~~~
src/elogd.cxx:20470:26: note: ‘sprintf’ output between 3 and 150003 bytes into a destination of size 1600
20470 |                   sprintf(str, "%s_%d", attr_list[i], j);
      |                   ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.cxx:21052:30: warning: ‘%s’ directive writing up to 149999 bytes into a region of size 1600 [-Wformat-overflow=]
21052 |                sprintf(str, "%s_%d", attr_list[i], j);
      |                              ^~
src/elogd.cxx:21052:29: note: directive argument in the range [0, 99]
21052 |                sprintf(str, "%s_%d", attr_list[i], j);
      |                             ^~~~~~~
src/elogd.cxx:21052:23: note: ‘sprintf’ output between 3 and 150003 bytes into a destination of size 1600
21052 |                sprintf(str, "%s_%d", attr_list[i], j);
      |                ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.cxx:21538:45: warning: ‘%s’ directive writing up to 149999 bytes into a region of size 1588 [-Wformat-overflow=]
21538 |                   sprintf(str, "Time format %s", attr_list[i]);
      |                                             ^~
src/elogd.cxx:21538:26: note: ‘sprintf’ output between 13 and 150012 bytes into a destination of size 1600
21538 |                   sprintf(str, "Time format %s", attr_list[i]);
      |                   ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.cxx:21523:45: warning: ‘%s’ directive writing up to 149999 bytes into a region of size 1588 [-Wformat-overflow=]
21523 |                   sprintf(str, "Date format %s", attr_list[i]);
      |                                             ^~
src/elogd.cxx:21523:26: note: ‘sprintf’ output between 13 and 150012 bytes into a destination of size 1600
21523 |                   sprintf(str, "Date format %s", attr_list[i]);
      |                   ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.cxx: In function ‘void submit_elog(LOGBOOK*)’:
src/elogd.cxx:23293:38: warning: ‘%s’ directive writing up to 149999 bytes into a region of size 2034 [-Wformat-overflow=]
23293 |          sprintf(str, "Subst on edit %s", attr_list[index]);
      |                                      ^~
src/elogd.cxx:23293:17: note: ‘sprintf’ output between 15 and 150014 bytes into a destination of size 2048
23293 |          sprintf(str, "Subst on edit %s", attr_list[index]);
      |          ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.cxx:23323:39: warning: ‘%s’ directive writing up to 149999 bytes into a region of size 2033 [-Wformat-overflow=]
23323 |          sprintf(str, "Subst on reply %s", attr_list[index]);
      |                                       ^~
src/elogd.cxx:23323:17: note: ‘sprintf’ output between 16 and 150015 bytes into a destination of size 2048
23323 |          sprintf(str, "Subst on reply %s", attr_list[index]);
      |          ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
c++ -O3 -funroll-loops -fomit-frame-pointer -W -Wall -Wno-deprecated-declarations -Wno-unused-result -Imxml -DHAVE_SSL -DHAVE_KRB5 -DHAVE_LDAP -o elconv src/elconv.cxx -lssl -lkrb5 -lldap -llber

Copy to new dir :

  • the 3 binaries(elogd.exe, elog.exe & elconv.exe)
  • logbooks, scripts, ssl and themes folders from git clone.
  • elogd.cfg.example as elogd.cfg.

 

/cygdrive/d/Devel/elog/elog-win64 $ ldd elogd.exe
        ntdll.dll => /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll (0x7ff9796b0000)
        KERNEL32.DLL => /cygdrive/c/WINDOWS/System32/KERNEL32.DLL (0x7ff978050000)
        KERNELBASE.dll => /cygdrive/c/WINDOWS/System32/KERNELBASE.dll (0x7ff976af0000)
        cygwin1.dll => /usr/bin/cygwin1.dll (0x7ff925010000)
        cygkrb5-3.dll => /usr/bin/cygkrb5-3.dll (0x3fe4b0000)
        cygldap-2.dll => /usr/bin/cygldap-2.dll (0x3fdf70000)
        cyglber-2.dll => /usr/bin/cyglber-2.dll (0x3fe030000)
        cygssl-1.1.dll => /usr/bin/cygssl-1.1.dll (0x3ff4d0000)
        cygstdc++-6.dll => /usr/bin/cygstdc++-6.dll (0x3ff2f0000)
        cyggcc_s-seh-1.dll => /usr/bin/cyggcc_s-seh-1.dll (0x3ffc30000)
        cygk5crypto-3.dll => /usr/bin/cygk5crypto-3.dll (0x3fe600000)
        cygkrb5support-0.dll => /usr/bin/cygkrb5support-0.dll (0x3fe490000)
        cygintl-8.dll => /usr/bin/cygintl-8.dll (0x3ffa10000)
        cygcom_err-2.dll => /usr/bin/cygcom_err-2.dll (0x3fe9b0000)
        cygcrypto-1.1.dll => /usr/bin/cygcrypto-1.1.dll (0x3ffce0000)
        cygsasl2-3.dll => /usr/bin/cygsasl2-3.dll (0x3fdee0000)
        cygiconv-2.dll => /usr/bin/cygiconv-2.dll (0x3ffa30000)
        cygz.dll => /usr/bin/cygz.dll (0x3ff280000)

/cygdrive/d/Devel/elog/elog-win64 $ ls
elconv.exe  elog.exe  elogd.cfg  elogd.exe  logbooks  scripts  ssl  themes
 

/cygdrive/d/Devel/elog/elog-win64 $ ./elogd.exe
elogd 3.1.5 built Apr 12 2023, 00:01:15 revision 33884104
CKeditor detected
ImageMagick NOT detected. Image scaling will not work.
Indexing logbooks ... done
Server listening on port 8080 ...

With that, elogd starts and the site is usable.

NB: after installing imageMagick, elogd starts with activation of image manipulation features.

/cygdrive/d/Devel/elog/elog-win64 $ ./elogd.exe
elogd 3.1.5 built Apr 12 2023, 00:01:15 revision 33884104
CKeditor detected
ImageMagick detected
Indexing logbooks ... done
Server listening on port 8080 ...

For who as interested, I enclosed 2 zips, with (elog-win64_wDLL.zip) or without (elog-win64.zip) Cygwin DLL (licence: https://cygwin.com/COPYING). The build uses the current git version.

 

Regards,

Laurent

 

Finn Junker wrote:

Hi Stefan

Is there anything the community or forum can help you with or supply for creating a windows version?

Kind Regards Finn

Stefan Ritt wrote:

A new version 3.1.5 of elog has been released with all accumulated fixes over the past actually few years. I made a tar file, a RPM, but I could not compile yet a windows version.

https://elog.psi.ch/elog/download.html

Best,
Stefan

 

 

 

ELOG V3.1.5-3fb85fa6