diff -ruN aubit4glsrc/compilers/4glc/4glc.c aubit4gl-1.6.1.p1/compilers/4glc/4glc.c --- aubit4glsrc/compilers/4glc/4glc.c 2018-02-07 03:07:58.000000000 -0500 +++ aubit4gl-1.6.1.p1/compilers/4glc/4glc.c 2023-01-20 08:23:01.000000000 -0500 @@ -121,7 +121,7 @@ //a4gl_yydebug = 1; /* load settings from config file(s): */ - user_resource = A4GL_build_user_resources (); + user_resource = A4GL_build_user_resources (argc,argv); //if (A4GL_isno (acl_getenv ("A4GL_NOCLOBBER"))) { set_clobber (outputfilename); } //A4GL_initlex(); diff -ruN aubit4glsrc/compilers/4glc/calltree.c aubit4gl-1.6.1.p1/compilers/4glc/calltree.c --- aubit4glsrc/compilers/4glc/calltree.c 2022-12-31 06:34:09.000000000 -0500 +++ aubit4gl-1.6.1.p1/compilers/4glc/calltree.c 2023-01-20 08:23:01.000000000 -0500 @@ -3688,7 +3688,7 @@ exit (2); } - A4GL_build_user_resources (); + A4GL_build_user_resources (argc,argv); if (A4GL_isyes(acl_getenv("LOGJOINS"))) { A4GL_setenv("ALWAYS_CONVERT","Y",1); A4GL_setenv("SETTABLEFORCOL","Y",1); diff -ruN aubit4glsrc/compilers/4glc/compile.c aubit4gl-1.6.1.p1/compilers/4glc/compile.c --- aubit4glsrc/compilers/4glc/compile.c 2022-12-31 06:34:09.000000000 -0500 +++ aubit4gl-1.6.1.p1/compilers/4glc/compile.c 2023-02-15 16:05:13.000000000 -0500 @@ -201,6 +201,7 @@ char c[128] = ""; char ext[128] = ""; char incl_path[1028] = ""; + char sys_incl_path[30] = ""; /* 2023-02-15 CDL */ char l_path[1028] = ""; char l_libs[1028] = ""; char buff[BIG_STRING] = ""; @@ -638,6 +639,15 @@ } #endif + /* add RPM include path (only if exists) 2023-02-15 CDL */ + strcpy(sys_incl_path, "/usr/include/aubit4gl"); + A4GL_trim(sys_incl_path); + if(A4GL_directory_exists(sys_incl_path)) { + SPRINTF1(sys_incl_path, "-I\"%s\"", sys_incl_path); + strcat(incl_path, sys_incl_path); + strcat(incl_path, " "); + } + SPRINTF1 (l_path, "-L\"%s/lib\" ",acl_getenv ("AUBITDIR")); strcpy (l_libs, acl_getenv ("A4GL_LINK_LIBS")); diff -ruN aubit4glsrc/compilers/4glc/func.c aubit4gl-1.6.1.p1/compilers/4glc/func.c --- aubit4glsrc/compilers/4glc/func.c 2018-02-07 03:07:58.000000000 -0500 +++ aubit4gl-1.6.1.p1/compilers/4glc/func.c 2023-01-20 08:23:01.000000000 -0500 @@ -126,7 +126,7 @@ int a; int ok=0; char *funcname=0; - A4GL_build_user_resources (); + A4GL_build_user_resources (argc,argv); nmods=0; m = malloc (sizeof (struct module_definition) * (argc - 1)); diff -ruN aubit4glsrc/compilers/4glc/lint_main.c aubit4gl-1.6.1.p1/compilers/4glc/lint_main.c --- aubit4glsrc/compilers/4glc/lint_main.c 2018-02-07 03:07:58.000000000 -0500 +++ aubit4gl-1.6.1.p1/compilers/4glc/lint_main.c 2023-01-20 08:23:01.000000000 -0500 @@ -40,7 +40,7 @@ printf ("Usage : %s infile infile...\n", argv[0]); exit (2); } - A4GL_build_user_resources (); + A4GL_build_user_resources (argc,argv); open_lintfile (0); diff -ruN aubit4glsrc/compilers/4glc/mklib.c aubit4gl-1.6.1.p1/compilers/4glc/mklib.c --- aubit4glsrc/compilers/4glc/mklib.c 2018-02-07 03:07:58.000000000 -0500 +++ aubit4gl-1.6.1.p1/compilers/4glc/mklib.c 2023-01-20 08:23:01.000000000 -0500 @@ -442,7 +442,7 @@ int a=0; int b; - A4GL_build_user_resources (); + A4GL_build_user_resources (argc,argv); //ignore_user_function(NULL); m = malloc (sizeof (struct module_definition) * (argc )); diff -ruN aubit4glsrc/compilers/4glc/prototypes.c aubit4gl-1.6.1.p1/compilers/4glc/prototypes.c --- aubit4glsrc/compilers/4glc/prototypes.c 2021-04-21 14:58:30.000000000 -0400 +++ aubit4gl-1.6.1.p1/compilers/4glc/prototypes.c 2023-01-20 08:23:01.000000000 -0500 @@ -1458,7 +1458,7 @@ exit (2); } - A4GL_build_user_resources (); + A4GL_build_user_resources (argc,argv); m = malloc (sizeof (struct module_definition) * (argc - 1)); diff -ruN aubit4glsrc/compilers/ace/dump_4gl.c aubit4gl-1.6.1.p1/compilers/ace/dump_4gl.c --- aubit4glsrc/compilers/ace/dump_4gl.c 2018-02-07 03:07:59.000000000 -0500 +++ aubit4gl-1.6.1.p1/compilers/ace/dump_4gl.c 2023-01-20 08:23:01.000000000 -0500 @@ -87,7 +87,7 @@ static void print_aggs(void) ; static int need_print_aggs(void) ; -void *A4GL_build_user_resources (void); +void *A4GL_build_user_resources (int argc, char*argv[]); static char * downshift (char *s) @@ -194,7 +194,7 @@ if (used[a]==0) name_param=argv[a]; } - A4GL_build_user_resources (); + A4GL_build_user_resources (argc,argv); memset (&this_report, 0, sizeof (struct report)); a = A4GL_read_data_from_file ("report", &this_report, name_param); diff -ruN aubit4glsrc/compilers/ace/dump.c aubit4gl-1.6.1.p1/compilers/ace/dump.c --- aubit4glsrc/compilers/ace/dump.c 2018-02-07 03:07:59.000000000 -0500 +++ aubit4gl-1.6.1.p1/compilers/ace/dump.c 2023-01-20 08:23:01.000000000 -0500 @@ -121,7 +121,7 @@ exit (0); } - A4GL_build_user_resources (); + A4GL_build_user_resources (argc,argv); f = fopen (argv[1], "rb"); diff -ruN aubit4glsrc/compilers/ace/dump_perl.c aubit4gl-1.6.1.p1/compilers/ace/dump_perl.c --- aubit4glsrc/compilers/ace/dump_perl.c 2018-02-07 03:07:59.000000000 -0500 +++ aubit4gl-1.6.1.p1/compilers/ace/dump_perl.c 2023-01-20 08:23:01.000000000 -0500 @@ -24,7 +24,7 @@ exit(1); } - A4GL_build_user_resources (); + A4GL_build_user_resources (argc,argv); A4GL_setenv ("A4GL_PACKER","PERL",1); rval = compile_ace_report (argv[1]); diff -ruN aubit4glsrc/compilers/ace/fileio.c aubit4gl-1.6.1.p1/compilers/ace/fileio.c --- aubit4glsrc/compilers/ace/fileio.c 2018-02-07 03:07:59.000000000 -0500 +++ aubit4gl-1.6.1.p1/compilers/ace/fileio.c 2023-01-20 08:23:01.000000000 -0500 @@ -148,7 +148,7 @@ int rval; /* load settings from config file(s): */ - A4GL_build_user_resources (); + A4GL_build_user_resources (0,NULL); a4gl_ace_yydebug = 0; strcpy (d, ""); diff -ruN aubit4glsrc/compilers/helpcompile/mkmess.c aubit4gl-1.6.1.p1/compilers/helpcompile/mkmess.c --- aubit4glsrc/compilers/helpcompile/mkmess.c 2018-02-07 03:07:59.000000000 -0500 +++ aubit4gl-1.6.1.p1/compilers/helpcompile/mkmess.c 2023-01-20 08:23:01.000000000 -0500 @@ -87,7 +87,7 @@ #endif /* load settings from config file(s): */ - A4GL_build_user_resources (); + A4GL_build_user_resources (argc,argv); if (argc == 1 || (strcmp (argv[1], "--help") == 0)) diff -ruN aubit4glsrc/compilers/menus/decompile.c aubit4gl-1.6.1.p1/compilers/menus/decompile.c --- aubit4glsrc/compilers/menus/decompile.c 2018-02-07 03:07:59.000000000 -0500 +++ aubit4gl-1.6.1.p1/compilers/menus/decompile.c 2023-01-20 08:23:01.000000000 -0500 @@ -87,7 +87,7 @@ */ memset (&the_menus, 0, sizeof (menu_list)); - A4GL_build_user_resources (); + A4GL_build_user_resources (argc,argv); /* int isolated_xdr_decompile (void* the_menus,void* xdrp,void* f); diff -ruN aubit4glsrc/compilers/menus/mcompile.c aubit4gl-1.6.1.p1/compilers/menus/mcompile.c --- aubit4glsrc/compilers/menus/mcompile.c 2018-02-07 03:07:59.000000000 -0500 +++ aubit4gl-1.6.1.p1/compilers/menus/mcompile.c 2023-01-20 08:23:01.000000000 -0500 @@ -126,7 +126,7 @@ A4GL_debug ("Initializing mcompile\n"); /* load settings from config file(s): */ - A4GL_build_user_resources (); + A4GL_build_user_resources (argc,argv); if (argc > 1) { diff -ruN aubit4glsrc/etc/aubit4gl.spec aubit4gl-1.6.1.p1/etc/aubit4gl.spec --- aubit4glsrc/etc/aubit4gl.spec 2022-12-31 06:34:10.000000000 -0500 +++ aubit4gl-1.6.1.p1/etc/aubit4gl.spec 2023-02-17 16:35:30.000000000 -0500 @@ -1,37 +1,57 @@ +# private libraries that do not have an soname should not be in provides +%global _privatelibs ^(%{_libdir}/%{name}/plugins.*/.*\\.so.*)$ +%global _priv_debuginfo ^(.*lib.*[.]so-.*)$ +%global __provides_exclude_from ^(%{_privatelibs}|%{_priv_debuginfo})$ +%global __requires_exclude_from ^(%{_privatelibs}|%{_priv_debuginfo})$ + +%global latestversion 1.6.1 +%global commit r12811 +%global commitdate 20230217 + Name: aubit4gl -Version: r12787 +Version: %{latestversion}^%{commitdate}.%{commit} Release: 1%{?dist} -Summary: Informix-4GL compatible compiler +Summary: IBM Informix 4GL compatible compiler -# The entire source code is GPLv2+ except +# The entire source code is GPL-2.0-or-later except # tools/cgi_4gl which is MIT -# lib/bin/svn2cl.xsl which is BSD -# lib/libaubit4gl/curl.c which is BSD -# lib/extra_libs/mantisconnect/pregen which is GPL+ -# tools/adbload2/adbload2_parse_pregen.tab.c which is GPLv3+ -# tools/no_yacc/cygwin/compilers which is GPLv3+ -# lib/libui/ui_json/libjson.c which is LGPLv2+ -# lib/libui/ui_xml which is LGPLv2+ +# lib/bin/svn2cl.xsl which is BSD-3-Clause +# lib/libaubit4gl/curl.c which is BSD-3-Clause +# lib/extra_libs/mantisconnect/pregen which is GPL-1.0-or-later +# tools/adbload2/adbload2_parse_pregen.tab.c which is GPL-3.0-or-later +# tools/no_yacc/cygwin/compilers which is GPL-3.0-or-later +# lib/libui/ui_json/libjson.c which is LGPL-2.0-or-later +# lib/libui/ui_xml which is LGPL-2.0-or-later # incl/json.h which is MIT # lib/libaubit4gl/json.c which is MIT # lib/extra_libs/memcached/memcache.h which is MIT # lib/libaubit4gl/mapm which is NTP -License: GPLv2+ and GPLv3+ and GPL+ and LGPLv2+ and MIT and BSD -URL: http://www.aubit.com -Provides: lib%{name}.so()(64bit) -Source0: https://stansoft.fedorapeople.org/dl/%{name}-%{version}.tar.bz2 -Source1: https://downloads.sourceforge.net/project/stansoft/src/aubitmanpages.tar.bz2 - -BuildRequires: gcc -BuildRequires: ncurses-devel -BuildRequires: postgresql-server -BuildRequires: libpq-devel -BuildRequires: bison flex procps-ng +License: GPL-2.0-or-later and GPL-3.0-or-later and GPL-1.0-or-later and LGPL-2.0-or-later and MIT and BSD-3-Clause +URL: https://www.aubit.com +Source0: https://downloads.sourceforge.net/project/aubit4gl/Snapshots/%{name}-%{commit}.tar.bz2 +Source1: https://downloads.sourceforge.net/project/aubit4gl/Aubit4gl-manual/aubitmanpages.tar.bz2 +#Source2: https://aubit.com/aubit4gl/manuals/aubman.pdf +#Source3: https://aubit.com/aubit4gl/manuals/aubitqref.pdf +# patch to fix libaubit4gl.so -> libaubit4gl.so.n soft links +Patch0: https://downloads.sourceforge.net/project/aubit4gl/Snapshots/%{name}-%{commit}-libaubit4gl-makefile.patch +Patch1: https://downloads.sourceforge.net/project/aubit4gl/Snapshots/%{name}-%{commit}-makefile-common.in.patch +Patch2: https://downloads.sourceforge.net/project/aubit4gl/Snapshots/%{name}-%{commit}-makefile-install.mki.patch +Patch3: https://downloads.sourceforge.net/project/aubit4gl/Snapshots/%{name}-%{commit}-resource.c.patch +Patch4: https://downloads.sourceforge.net/project/aubit4gl/Snapshots/%{name}-%{commit}-fglwrap.c.patch +Patch5: https://downloads.sourceforge.net/project/aubit4gl/Snapshots/%{name}-%{commit}-4glpc.4gl.patch +Patch6: https://downloads.sourceforge.net/project/aubit4gl/Snapshots/%{name}-%{commit}-compile.c.patch + + +Requires: gcc +BuildRequires: gcc +BuildRequires: ncurses-devel +BuildRequires: libpq-devel +BuildRequires: bison flex procps-ng %description -Aubit 4GL compiler is software that translates Informix 4GL programming -language into executable programs. +Aubit 4GL compiler is software that translates IBM Informix 4GL source code +into C code, and compiles into executable programs. %package devel @@ -42,12 +62,23 @@ %prep -%setup +%setup -q -n %{name}-%{commit} +%patch0 -p0 +%patch1 -p0 +%patch2 -p0 +%patch3 -p0 +%patch4 -p0 +%patch5 -p0 +%patch6 -p0 %build -./configure --disable-prefix-check \ - --prefix=%{buildroot}%{_libdir}/%{name} +# setting LDFLAGS=-pie prevents rpmlint warning +# position-independent-executable-suggested on the binaries. +%configure LDFLAGS=-pie \ + --disable-prefix-check \ + --with-smtp=no \ + --without-zlib # It does not compile with multiple threads %make_build -j1 @@ -55,78 +86,115 @@ %install rm -rf %{buildroot}%{_libdir}/%{name} mkdir -p %{buildroot}%{_libdir}/%{name} -mkdir -p %{buildroot}/etc/ld.so.conf.d +mkdir -p %{buildroot}/%{_sysconfdir}/ld.so.conf.d mkdir -p %{buildroot}%{_includedir}/%{name} mkdir -p %{buildroot}%{_mandir}/man1 tar xvf %{SOURCE1} -C %{buildroot}%{_mandir}/man1 +#cp %%{SOURCE2} %%{SOURCE3} %%{_builddir}/%%{name}-%%{version} +# Remove the execute bit on the example files so rpmlint does not complain +chmod -x %{_builddir}/%{name}-%{commit}/tools/examples/*/*.4gl + +%make_install PREFIX=%{buildroot}%{_libdir}/%{name} \ + LIB_INSTALL_LINK=%{_builddir}/%{name}-%{commit} \ + BIN_INSTALL_LINK=%{_builddir}/%{name}-%{commit} \ + aubitrc=new -%make_install aubitrc=new - -# Remove files which will not be packaged, to cleanup licensing +# Remove files which will not be packaged, to cleanup licensing. +# compilers/ace/dump_4gl.c contains: "This code is not covered by the GPL" rm %{buildroot}%{_libdir}/%{name}/bin/aace_4gl -# Move files that do not belong in the base package -mv %{buildroot}%{_libdir}/%{name}/incl/*.h %{buildroot}%{_includedir}/%{name} - -# Move the Aubit4GL library into the system library directory -mv %{buildroot}%{_libdir}/%{name}/lib/lib%{name}*.so %{buildroot}%{_libdir} - -# Remove files which will not be packaged -rm -rf $(find %{buildroot}%{_libdir}/%{name} \ - ! -path '%{buildroot}%{_libdir}/%{name}/bin*' \ - ! -path '%{buildroot}%{_libdir}/%{name}/plugins-*' \ - ! -path '%{buildroot}%{_libdir}/%{name}/etc' \ - ! -path '%{buildroot}%{_libdir}/%{name}/etc/aubitrc' \ - ! -path '%{buildroot}%{_libdir}/%{name}/etc/convertsql*' \ - ! -path '%{buildroot}%{_libdir}/%{name}') - -# Create file in /etc/ld.so.conf.d for the Aubit4GL shared object plugins -echo -e "%{_libdir}/%{name}/plugins-*" > %{buildroot}/etc/ld.so.conf.d/%{name}-%{_arch}.conf - -# Put the Aubit4GL aubitrc config file into place -cp etc/aubitrc %{buildroot}%{_libdir}/%{name}/etc +# Install header files +cp -p %{buildroot}%{_libdir}/%{name}/incl/*.h %{buildroot}%{_includedir}/%{name} +mkdir -p %{buildroot}/%{_includedir}/%{name}/dataio +cp -p %{buildroot}%{_libdir}/%{name}/incl/dataio/*.h %{buildroot}%{_includedir}/%{name}/dataio +rm -rf %{buildroot}%{_libdir}/%{name}/incl + +# Install the Aubit4GL library into the system library directory +cp -d %{buildroot}%{_libdir}/%{name}/lib/lib%{name}.so* %{buildroot}%{_libdir} +rm -rf %{buildroot}%{_libdir}/%{name}/lib/* + +# Put the Aubit4GL aubitrc config file into place. +mkdir -p %{buildroot}%{_sysconfdir} +install %{_builddir}/%{name}-%{commit}/etc/aubitrc %{buildroot}%{_sysconfdir} # Fixup paths in aubitrc sed -i -e "s|%{buildroot}||g" \ - -e "s|$HOME/.%{name}|%{_libdir}/%{name}/etc|g" \ - %{buildroot}%{_libdir}/%{name}/etc/aubitrc + -e "s|%{_builddir}/%{name}-%{commit}|%{_libdir}/%{name}|g" \ + -e "s|^\(AUBITETC=\).*|\1%{_sysconfdir}|g" \ + %{buildroot}%{_sysconfdir}/aubitrc + +# Fix shebang on scripts +sed -i -e '1d' %{buildroot}%{_libdir}/%{name}/bin/report.pm +sed -i -e '1d' %{buildroot}%{_libdir}/%{name}/bin/using.pm +sed -i -e '1d;2i#!/usr/bin/bash' %{buildroot}%{_libdir}/%{name}/bin/aubit + +# Remove zero-length files shown as error by rpmlint +rm -f %{buildroot}%{_libdir}/%{name}/etc/import/default +rm -f %{buildroot}%{_libdir}/%{name}/tools/4glpc/settings/C +rm -f %{buildroot}%{_libdir}/%{name}/tools/4glpc/settings/C_INFORMIX +rm -f %{buildroot}%{_libdir}/%{name}/tools/4glpc/settings/EC -# Create relative soft links to the binaries +# Install the binaries mkdir -p %{buildroot}%{_bindir} -cd %{buildroot}%{_bindir} -ln -s ../..%{_libdir}/%{name}/bin/4glpc . -ln -s ../..%{_libdir}/%{name}/bin/4glc . -ln -s ../..%{_libdir}/%{name}/bin/fcompile . -ln -s ../..%{_libdir}/%{name}/bin/amkmessage . -cd %{buildroot}%{_libdir}/%{name}/plugins-* +install %{buildroot}%{_libdir}/%{name}/bin/4glpc %{buildroot}%{_bindir} +install %{buildroot}%{_libdir}/%{name}/bin/4glc %{buildroot}%{_bindir} +install %{buildroot}%{_libdir}/%{name}/bin/fcompile %{buildroot}%{_bindir} +install %{buildroot}%{_libdir}/%{name}/bin/amkmessage %{buildroot}%{_bindir} +# The above binaries are required, a ticket can be filed if others are needed +rm -rf %{buildroot}%{_libdir}/%{name}/bin + # To avoid duplicate build-ids with libLEX_C and libLEX_CS, create a link -ln -sf libLEX_C.so libLEX_CS.so +ln -sf libLEX_C.so %{buildroot}%{_libdir}/%{name}/plugins-%{latestversion}/libLEX_CS.so -cd %{buildroot}%{_libdir}/%{name} +# docs are installed in the system location +rm -rf %{buildroot}%{_libdir}/%{name}/docs +rm -f %{buildroot}%{_libdir}/%{name}/README.txt +# These should not be included in a binary install +rm -f %{buildroot}%{_libdir}/%{name}/Makefile +rm -f %{buildroot}%{_libdir}/%{name}/configure +rm -f %{buildroot}%{_libdir}/%{name}/install.sh %check make test +make -C tools/test %files -%license docs/COPYING +%license docs/COPYING +%doc docs/CREDITS %doc README.txt -%{_libdir}/%{name} -%{_libdir}/lib%{name}-*.so -/etc/ld.so.conf.d/%{name}-%{_arch}.conf -%{_bindir}/4glpc +%doc tools/examples +%dir %{_libdir}/%{name} +%dir %{_libdir}/%{name}/plugins-%{latestversion} +%dir %{_libdir}/%{name}/etc +%dir %{_libdir}/%{name}/tools +%{_libdir}/%{name}/etc/* +%{_libdir}/%{name}/tools/* +%{_libdir}/%{name}/plugins-%{latestversion}/*.so +%{_libdir}/lib%{name}.so.* +%config(noreplace) %{_sysconfdir}/aubitrc %{_bindir}/4glc -%{_bindir}/fcompile +%{_bindir}/4glpc %{_bindir}/amkmessage +%{_bindir}/fcompile %{_mandir}/man1/* %files devel -%{_includedir}/%{name}/ +%dir %{_includedir}/%{name} +%dir %{_includedir}/%{name}/dataio +%{_includedir}/%{name}/*.h +%{_includedir}/%{name}/dataio/*.h %{_libdir}/lib%{name}.so %changelog -* Tue Oct 25 2022 Chad Lemmen - r12787-1 +* Fri Feb 17 2023 Chad Lemmen - 1.6.1^20230217.r12811-1 +- updated to snapshot r12811 + +* Mon Feb 13 2023 Chad Lemmen - 1.6.1^20230208.r12807-1 +- updated to snapshot r12807 + +* Thu Dec 29 2022 Chad Lemmen - 1.5.3^20221229.r12801-1 - initial Fedora RPM packaging diff -ruN aubit4glsrc/incl/a4gl_libaubit4gl.h aubit4gl-1.6.1.p1/incl/a4gl_libaubit4gl.h --- aubit4glsrc/incl/a4gl_libaubit4gl.h 2022-12-31 06:34:09.000000000 -0500 +++ aubit4gl-1.6.1.p1/incl/a4gl_libaubit4gl.h 2023-01-20 08:23:01.000000000 -0500 @@ -1553,7 +1553,7 @@ }; char *A4GL_find_str_resource_int (char *search, int a); - struct str_resource *A4GL_build_user_resources (void); + struct str_resource *A4GL_build_user_resources (int argc, char *argv[]); int A4GL_env_option_set (char *s); diff -ruN aubit4glsrc/incl/Makefile-common.in aubit4gl-1.6.1.p1/incl/Makefile-common.in --- aubit4glsrc/incl/Makefile-common.in 2022-12-31 06:34:10.000000000 -0500 +++ aubit4gl-1.6.1.p1/incl/Makefile-common.in 2023-02-13 17:56:44.000000000 -0500 @@ -233,6 +233,7 @@ endif A4GL_VERSION_STRING=@AUBIT_VERSION@.@AUBIT_BUILD@ +MAJOR_VERSION=$(shell cut -d. -f1 <<<${A4GL_VERSION_STRING}) ifneq "${ROOT}" "" PLUGINDIR=${ROOT}/plugins-${A4GL_VERSION_STRING} diff -ruN aubit4glsrc/incl/Makefile-install.mki aubit4gl-1.6.1.p1/incl/Makefile-install.mki --- aubit4glsrc/incl/Makefile-install.mki 2022-12-31 06:34:09.000000000 -0500 +++ aubit4gl-1.6.1.p1/incl/Makefile-install.mki 2023-02-13 17:56:44.000000000 -0500 @@ -154,7 +154,10 @@ ####################################### install.libs.links: deinstall.libs.links #Link libaubit4gl with version string to plain libaubit4gl: - ${LN_S_LIB} lib${AUBITLIBFULL}${SO_EXT_LINKABLE}.${A4GL_VERSION_STRING} $(INSTALL_DIR)/lib/libaubit4gl${SO_EXT} +# 2023-02-13 CDL - libaubit4gl.so -> libaubit4gl.so.x +# libaubit4gl.so.x -> libaubit4gl.so.x.x.x + ${LN_S} lib${AUBITLIBFULL}${SO_EXT}.${A4GL_VERSION_STRING} $(INSTALL_DIR)/lib/lib${AUBITLIBFULL}${SO_EXT}.${MAJOR_VERSION} + ${LN_S} lib${AUBITLIBFULL}${SO_EXT}.${MAJOR_VERSION} $(INSTALL_DIR)/lib/libaubit4gl${SO_EXT} @if ! test -d ${LIB_INSTALL_LINK}; then ${MKPATH} ${LIB_INSTALL_LINK}; fi @if test -w ${LIB_INSTALL_LINK} ; then \ ${LN_S_LIB} $(INSTALL_DIR)/lib/libaubit4gl${SO_EXT} ${LIB_INSTALL_LINK}/libaubit4gl${SO_EXT}; \ diff -ruN aubit4glsrc/lib/libaubit4gl/fglwrap.c aubit4gl-1.6.1.p1/lib/libaubit4gl/fglwrap.c --- aubit4glsrc/lib/libaubit4gl/fglwrap.c 2020-05-21 16:18:24.000000000 -0400 +++ aubit4gl-1.6.1.p1/lib/libaubit4gl/fglwrap.c 2023-02-15 16:05:13.000000000 -0500 @@ -220,7 +220,7 @@ A4GL_init_default_formats (); - A4GL_build_user_resources (); + A4GL_build_user_resources (nargs,argv); /* This does nothing - but we NEED IT! @@ -1609,14 +1609,14 @@ if (strcmp (arg1, "-v") == 0) { - PRINTF ("(c) 1997-2014 Aubit project\n%s\n\n", program); + PRINTF ("(c) 1997-2023 Aubit project\n%s\n\n", program); PRINTF ("Version %s\nBuild Level %d\n", A4GL_internal_version (), A4GL_internal_build ()); A4GL_fgl_die (0); } if (strcmp (arg1, "-vfull") == 0) { - PRINTF ("(c) 1997-2014 Aubit project\n%s\n\n", program); + PRINTF ("(c) 1997-2023 Aubit project\n%s\n\n", program); PRINTF ("Version %s\nBuild Level %d\n", A4GL_internal_version (), A4GL_internal_build ()); for (a = 0;; a++) { @@ -1632,8 +1632,8 @@ if (strcmp (arg1, "") == 0) { - PRINTF ("%s (c) 1997-2014 Aubit project - ", program); - PRINTF ("Version %s-%d\n", A4GL_internal_version (), A4GL_internal_build ()); + PRINTF ("%s (c) 1997-2023 Aubit project - ", program); + PRINTF ("Version %s.%d\n", A4GL_internal_version (), A4GL_internal_build ()); } diff -ruN aubit4glsrc/lib/libaubit4gl/Makefile aubit4gl-1.6.1.p1/lib/libaubit4gl/Makefile --- aubit4glsrc/lib/libaubit4gl/Makefile 2022-12-31 06:34:09.000000000 -0500 +++ aubit4gl-1.6.1.p1/lib/libaubit4gl/Makefile 2023-02-13 17:56:44.000000000 -0500 @@ -33,7 +33,6 @@ #All stuff common to more then one Aubit compiler make file is there: include ${ROOT}/incl/Makefile-common -MAJOR_VERSION =$(shell cut -d. -f1 <<<${A4GL_VERSION_STRING}) ## ================================================================== ## Source files @@ -228,9 +227,8 @@ ${LIBROOT}/libaubit4gl${SO_EXT_LINKABLE}: ${LIBROOT}/lib${AUBITLIBFULL}${SO_EXT_LINKABLE}.${A4GL_VERSION_STRING} ifeq "${COMSPEC}" "" #Please dont use hard links! - rm -f "$@" - ln -s $^ $@ - ln -sf $^ $@.${MAJOR_VERSION} #2022-12-22 CDL + ${LN_S} $^ $@.${MAJOR_VERSION} #2023-02-13 CDL + ${LN_S} $@.${MAJOR_VERSION} $@ #2023-02-13 CDL else #Note - no linking on Windows cp $^ $@ diff -ruN aubit4glsrc/lib/libaubit4gl/ops.c aubit4gl-1.6.1.p1/lib/libaubit4gl/ops.c --- aubit4glsrc/lib/libaubit4gl/ops.c 2020-05-21 16:18:24.000000000 -0400 +++ aubit4gl-1.6.1.p1/lib/libaubit4gl/ops.c 2023-02-08 10:12:38.000000000 -0500 @@ -5867,12 +5867,39 @@ A4GL_decode_datetime (&dt1, &dtime_data1[0]); A4GL_decode_datetime (&dt2, &dtime_data2[0]); + if (op==(OP_SUB)) { + int unset=1; + if (dtime_data1[0]==0 && unset) dtime_data1[0]=dtime_data2[0]; else unset=0; + if (dtime_data1[1]==0 && unset) dtime_data1[1]=dtime_data2[1]; else unset=0; + if (dtime_data1[2]==0 && unset) dtime_data1[2]=dtime_data2[2]; else unset=0; + if (dtime_data1[3]==0 && unset) dtime_data1[3]=dtime_data2[3]; else unset=0; + if (dtime_data1[4]==0 && unset) dtime_data1[4]=dtime_data2[4]; else unset=0; + if (dtime_data1[5]==0 && unset) dtime_data1[5]=dtime_data2[5]; else unset=0; + int d2=A4GL_gen_dateno (dtime_data2[2], dtime_data2[1], dtime_data2[0]); + int d1=A4GL_gen_dateno (dtime_data1[2], dtime_data1[1], dtime_data1[0]); + if (dtime_data2[2] || dtime_data2[3] || dtime_data2[4] || dtime_data2[5] || dtime_data2[6] ||dtime_data1[3] || dtime_data1[4] || dtime_data1[5] || dtime_data1[6] || dtime_data1[2]) { + // Do we have any houss, minutes, seconds + double secondsd1=((double)dtime_data1[6]/(double)100000) + dtime_data1[5]+ dtime_data1[4]*60+ dtime_data1[3]*60*60; + double secondsd2=((double)dtime_data2[6]/(double)100000) + dtime_data2[5]+ dtime_data2[4]*60+ dtime_data2[3]*60*60; + double seconds=((d2-d1)*24*60*60); + seconds+=(secondsd2-secondsd1); + int days = (int) (seconds / (24 * 3600)); + int hours = (int) (seconds / 3600) % 24; + int minutes = (int) (seconds / 60) % 60; + double secs = seconds-days*60*60*24-hours*60*60-minutes*60; + char buff[200]; + sprintf(buff,"%d %02d:%02d:%02.5lf", days, hours, minutes, secs); + acli_interval(buff,0x23b); + return; + } else { + // Its just years and months + } + } + #ifdef DEBUG - A4GL_debug ("Dtime1=%d %d %d %d %d %d %d", - dtime_data1[0], dtime_data1[1], dtime_data1[2], dtime_data1[3], dtime_data1[4], dtime_data1[5], dtime_data1[6]); + A4GL_debug ("Dtime1=%d %d %d %d %d %d %d", dtime_data1[0], dtime_data1[1], dtime_data1[2], dtime_data1[3], dtime_data1[4], dtime_data1[5], dtime_data1[6]); - A4GL_debug ("Dtime2=%d %d %d %d %d %d %d", - dtime_data2[0], dtime_data2[1], dtime_data2[2], dtime_data2[3], dtime_data2[4], dtime_data2[5], dtime_data2[6]); + A4GL_debug ("Dtime2=%d %d %d %d %d %d %d", dtime_data2[0], dtime_data2[1], dtime_data2[2], dtime_data2[3], dtime_data2[4], dtime_data2[5], dtime_data2[6]); #endif @@ -6035,7 +6062,7 @@ } #ifdef DEBUG - A4GL_debug ("Op LT : %d (-%d <%d >%d", op, OP_SUB, OP_LESS_THAN, OP_GREATER_THAN); + A4GL_debug ("Op %d (-%d <%d >%d", op, OP_SUB, OP_LESS_THAN, OP_GREATER_THAN); A4GL_debug ("%d %d %d %d %d %d %d", dtime_data1[0], dtime_data1[1], dtime_data1[2], dtime_data1[3], dtime_data1[4], dtime_data1[5], dtime_data1[6]); @@ -6138,6 +6165,7 @@ if (op == (OP_SUB)) { + if ((dtime_data2[0] || dtime_data2[1]) || (minSpec<=1 && !dtime_data2[2] && !dtime_data2[3] && !dtime_data2[4] && !dtime_data2[5] && !dtime_data2[6])) { diff -ruN aubit4glsrc/lib/libsql/indx_schema_in_file/index_fileschema.c aubit4gl-1.6.1.p1/lib/libsql/indx_schema_in_file/index_fileschema.c --- aubit4glsrc/lib/libsql/indx_schema_in_file/index_fileschema.c 2018-02-07 03:08:13.000000000 -0500 +++ aubit4gl-1.6.1.p1/lib/libsql/indx_schema_in_file/index_fileschema.c 2023-01-20 08:23:01.000000000 -0500 @@ -64,7 +64,7 @@ tables.tables.tables_len=0; tables.tables.tables_val=NULL; -A4GL_build_user_resources(); +A4GL_build_user_resources(argc,argv); ext=acl_getenv_not_set_as_0("A4GL_SCHEMA_EXT"); diff -ruN aubit4glsrc/lib/libsql/indx_schema_in_file2/index_fileschema.c aubit4gl-1.6.1.p1/lib/libsql/indx_schema_in_file2/index_fileschema.c --- aubit4glsrc/lib/libsql/indx_schema_in_file2/index_fileschema.c 2018-02-07 03:08:13.000000000 -0500 +++ aubit4gl-1.6.1.p1/lib/libsql/indx_schema_in_file2/index_fileschema.c 2023-01-20 08:23:01.000000000 -0500 @@ -66,7 +66,7 @@ tables.tables.tables_len=0; tables.tables.tables_val=NULL; -A4GL_build_user_resources(); +A4GL_build_user_resources(argc,argv); ext=acl_getenv_not_set_as_0("A4GL_SCHEMA_EXT"); diff -ruN aubit4glsrc/lib/libui/ui_xml/uilib/xml/pregenerated/triggers_act.c aubit4gl-1.6.1.p1/lib/libui/ui_xml/uilib/xml/pregenerated/triggers_act.c --- aubit4glsrc/lib/libui/ui_xml/uilib/xml/pregenerated/triggers_act.c 2022-12-31 06:34:10.000000000 -0500 +++ aubit4gl-1.6.1.p1/lib/libui/ui_xml/uilib/xml/pregenerated/triggers_act.c 2023-01-20 08:23:01.000000000 -0500 @@ -1,6 +1,6 @@ /* XML application for triggers.dtd. * Includes actions from triggers_act.act. - * Generated 2022/12/31 10:03:00. + * Generated 2023/01/20 13:15:10. * * This program was generated with the FleXML XML processor generator. * FleXML is Copyright (C) 1999-2005 Kristoffer Rose. All rights reserved. diff -ruN aubit4glsrc/lib/libui/ui_xml/uilib/xml/pregenerated/triggers.c aubit4gl-1.6.1.p1/lib/libui/ui_xml/uilib/xml/pregenerated/triggers.c --- aubit4glsrc/lib/libui/ui_xml/uilib/xml/pregenerated/triggers.c 2022-12-31 06:34:10.000000000 -0500 +++ aubit4gl-1.6.1.p1/lib/libui/ui_xml/uilib/xml/pregenerated/triggers.c 2023-01-20 08:23:01.000000000 -0500 @@ -9532,7 +9532,7 @@ char *xml_yytext; #line 1 "triggers.l" /* Validating XML processor for triggers.dtd. - * Generated 2022/12/31 10:03:00. + * Generated 2023/01/20 13:15:11. * * This program was generated with the FleXML XML processor generator. * FleXML is Copyright (C) 1999-2005 Kristoffer Rose. All rights reserved. diff -ruN aubit4glsrc/lib/libui/ui_xml/uilib/xml/pregenerated/triggers.h aubit4gl-1.6.1.p1/lib/libui/ui_xml/uilib/xml/pregenerated/triggers.h --- aubit4glsrc/lib/libui/ui_xml/uilib/xml/pregenerated/triggers.h 2022-12-31 06:34:10.000000000 -0500 +++ aubit4gl-1.6.1.p1/lib/libui/ui_xml/uilib/xml/pregenerated/triggers.h 2023-01-20 08:23:01.000000000 -0500 @@ -1,5 +1,5 @@ /* XML processor/application API for triggers.dtd. - * Generated 2022/12/31 10:03:00. + * Generated 2023/01/20 13:15:11. * * This program was generated with the FleXML XML processor generator. * FleXML is Copyright (C) 1999-2005 Kristoffer Rose. All rights reserved. diff -ruN aubit4glsrc/lib/resource/aubit-config.c aubit4gl-1.6.1.p1/lib/resource/aubit-config.c --- aubit4glsrc/lib/resource/aubit-config.c 2018-02-07 03:08:15.000000000 -0500 +++ aubit4gl-1.6.1.p1/lib/resource/aubit-config.c 2023-01-20 08:23:01.000000000 -0500 @@ -68,7 +68,7 @@ -extern void A4GL_build_user_resources (void); +extern void A4GL_build_user_resources (int argc, char *argv[]); extern void A4GL_exitwith (void); extern void A4GL_dump_all_resource_vars (int export); extern char *acl_getenv (char *s); @@ -114,7 +114,7 @@ // DEBUG_CFG = acl_getenv ("DEBUG_CFG"); /* load settings from config file(s): */ - A4GL_build_user_resources (); + A4GL_build_user_resources (argc,argv); if (argc>1) { if (strcmp(argv[1],"-verbose") ==0 || strcmp(argv[1],"-v") ==0 || strcmp(argv[1],"-V") ==0) { c++; diff -ruN aubit4glsrc/lib/resource/resource.c aubit4gl-1.6.1.p1/lib/resource/resource.c --- aubit4glsrc/lib/resource/resource.c 2022-12-31 06:34:10.000000000 -0500 +++ aubit4gl-1.6.1.p1/lib/resource/resource.c 2023-02-15 16:05:13.000000000 -0500 @@ -1142,7 +1142,7 @@ * and invokes parser/loader */ struct str_resource * -A4GL_build_user_resources (void) +A4GL_build_user_resources (int argc, char*argv[]) { char buff[1024]; FILE *resourcefile = 0; @@ -1280,7 +1280,7 @@ } } - /* ----------------- from ./.aubtirc (CURENT DIRECTORY) */ + /* ----------------- from ./.aubitrc (CURENT DIRECTORY) */ sprintf (buff, "./%s", ".aubitrc"); resourcefile = fopen (buff, "r"); @@ -1322,6 +1322,24 @@ #endif } + /* ----------------- from /etc/aubitrc (used by RPM install) 2023-02-14 CDL */ + + sprintf (buff, "%s", "/etc/aubitrc"); + resourcefile = fopen (buff, "r"); + strcpy(tried_to_read_from[tried_to_read_from_cnt++],buff); + if (resourcefile != 0) { + strcpy(read_from[read_from_cnt++], buff); + #ifdef DEBUG + A4GL_debug ("6:From %s", buff); + #endif + add_resources_in (resourcefile, read_from[read_from_cnt-1]); + fclose (resourcefile); + } else { + #ifdef DEBUG + A4GL_debug ("6:cannot read %s", buff); + #endif + } + #ifdef DEBUG //dump user resources to debug log if (build_resource_cnt) { @@ -1369,7 +1387,11 @@ if (read_from_cnt==0 ) { int a; fprintf(stderr," *********** ERROR IN CONFIGURATION ***********\n"); +if (argv) { + fprintf(stderr,"No aubitrc file has been found on your system executing %s\n", argv[0]); +} else { fprintf(stderr,"No aubitrc file has been found on your system\n"); +} if (strlen(acl_getenv("AUBITDIR"))==0) { fprintf(stderr,"\nAUBITDIR is not set. This may mean that we can't find the default\n"); fprintf(stderr,"aubitrc file. Try setting AUBITDIR to point to your aubit4gl installation\n"); diff -ruN aubit4glsrc/tools/4glpc/4glpc.4gl aubit4gl-1.6.1.p1/tools/4glpc/4glpc.4gl --- aubit4glsrc/tools/4glpc/4glpc.4gl 2018-02-07 03:08:16.000000000 -0500 +++ aubit4gl-1.6.1.p1/tools/4glpc/4glpc.4gl 2023-02-15 16:05:13.000000000 -0500 @@ -85,6 +85,8 @@ FUNCTION init () DEFINE lv_pack CHAR(256) DEFINE use_indicators INTEGER +define lv_have_path smallint +define lv_sys_incl_path char(30) LET mv_versioned=1 @@ -156,6 +158,19 @@ LET mv_include="-I\"",fgl_getenv("AUBITDIR"),"/incl\" " + # 2023-02-15 CDL - An RPM install puts the headers in the standard location + let lv_sys_incl_path="/usr/include/aubit4gl" +code +{ +A4GL_trim(lv_sys_incl_path); +lv_have_path=A4GL_directory_exists(lv_sys_incl_path); +} +endcode + if lv_have_path then + let mv_include=mv_include clipped, " -I\"",lv_sys_incl_path clipped,"\" " + end if + # 2023-02-15 CDL + #IF fgl_getenv("GTK_INC_PATH")!= "" THEN #let mv_include=mv_include clipped, " -I\"",fgl_getenv("GTK_INC_PATH"),"\"" #END IF Binary files aubit4glsrc/tools/cygwin/Aubit 4gl app with GUI widget in console.lnk.hide and aubit4gl-1.6.1.p1/tools/cygwin/Aubit 4gl app with GUI widget in console.lnk.hide differ Binary files aubit4glsrc/tools/cygwin/Aubit 4gl app with GUI widget.lnk.hide and aubit4gl-1.6.1.p1/tools/cygwin/Aubit 4gl app with GUI widget.lnk.hide differ Binary files aubit4glsrc/tools/cygwin/Aubit 4gl GUI app mouse test.lnk.hide and aubit4gl-1.6.1.p1/tools/cygwin/Aubit 4gl GUI app mouse test.lnk.hide differ Binary files aubit4glsrc/tools/cygwin/Aubit 4gl multithread test.lnk.hide and aubit4gl-1.6.1.p1/tools/cygwin/Aubit 4gl multithread test.lnk.hide differ Binary files aubit4glsrc/tools/cygwin/Aubit4gl ODBC access test.lnk.hide and aubit4gl-1.6.1.p1/tools/cygwin/Aubit4gl ODBC access test.lnk.hide differ Binary files aubit4glsrc/tools/cygwin/Aubit 4gl simple app.lnk.hide and aubit4gl-1.6.1.p1/tools/cygwin/Aubit 4gl simple app.lnk.hide differ diff -ruN aubit4glsrc/tools/cygwin/readme-runtime.html aubit4gl-1.6.1.p1/tools/cygwin/readme-runtime.html --- aubit4glsrc/tools/cygwin/readme-runtime.html 2018-02-07 03:08:19.000000000 -0500 +++ aubit4gl-1.6.1.p1/tools/cygwin/readme-runtime.html 2023-01-25 16:05:21.000000000 -0500 @@ -26,7 +26,6 @@

in "apps":

  • Demo programs compiled with Aubit 4gl compiler and supporting files
  • -
  • "run.exe" supporting program for running GUI programs without console

in "runtimelib":

    @@ -51,7 +50,8 @@ "set A4GL_UI=gui". 
    You can add the same line to your autoexec.bat, if you have one. On Windows NT based systems, you will need to set this via systems options.
  • Step into "apps" folder and double-click on "hello.exe". You should first see console window, and then GUI window of "Hello" program.
  • -
  • To demonstrate how to run GUI programs without console window appearing, there are several shortcuts on top level of this archive, one for each demo program in "apps" directory. They all use utility program "run.exe", also provided. Since Microsoft program shortcuts do not support relative paths, before you can use them, you will need to edit them to reflect your files location +
  • To demonstrate how to run GUI programs without console window appearing, there are several shortcuts on top level of this archive, one for each demo program in "apps" directory. +Since Microsoft program shortcuts do not support relative paths, before you can use them, you will need to edit them to reflect your files location chosen in step 1)
  • Q & A

    Binary files aubit4glsrc/tools/cygwin/run.exe and aubit4gl-1.6.1.p1/tools/cygwin/run.exe differ diff -ruN aubit4glsrc/tools/cygwin/unhide.bat aubit4gl-1.6.1.p1/tools/cygwin/unhide.bat --- aubit4glsrc/tools/cygwin/unhide.bat 2018-02-07 03:08:19.000000000 -0500 +++ aubit4gl-1.6.1.p1/tools/cygwin/unhide.bat 1969-12-31 19:00:00.000000000 -0500 @@ -1,12 +0,0 @@ -@echo off -rem Manupulating shortcut files (.lnk) on Windows is close to impossible. -rem Windows is not treating them as files, so we are forced to rename them before -rem we pack them in zip file, and when they are in place, rename them back. - -copy "Aubit 4gl GUI app mouse test.lnk.hide" "Aubit 4gl GUI app mouse test.lnk" -copy "Aubit 4gl app with GUI widget in console.lnk.hide" "Aubit 4gl app with GUI widget in console.lnk" -copy "Aubit 4gl app with GUI widget.lnk.hide" "Aubit 4gl app with GUI widget.lnk" -copy "Aubit 4gl multithread test.lnk.hide" "Aubit 4gl multithread test.lnk" -copy "Aubit 4gl simple app.lnk.hide" "Aubit 4gl simple app.lnk" -copy "Aubit4gl ODBC access test.lnk.hide" "Aubit4gl ODBC access test.lnk" -echo Done. \ No newline at end of file