Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - Dariusz Piatkowski

Pages: [1] 2 3 ... 12
1
Utilities / LinearMemoryMap.cmd => new version produces an error...why?
« on: December 23, 2023, 05:06:46 pm »
So Steven Levine published an updated version of this awesome util, but I'm now seeing an error, which I can't quite decipher:

Code: [Select]
[G:\util\theseus]linearmemorymap
Writing results to G:\util\theseus\linearmemorymap-20231223-1059.lst

[G:\util\theseus]G:\OS2\CMD.EXE /c G:\UTIL\MISC\LinearMemoryMap.cmd -  1>G:\util\theseus\linearmemorymap-20231223-1059.lst
Running from G:\util\theseus
NOVALUE signaled at G:\UTIL\MISC\LinearMemoryMap.cmd line 190.
REXX reason = DIR.
Source ="if dir \== '' then".
   545 *-*         Call lineout 'STDERR', 'Exiting.';
Exiting.
       +++   Interactive trace. "Trace Off" to end debug, ENTER to Continue.

   546 *-*         Nop;

   547 *-*         If symbol('RC') \== 'VAR';

   547 *-*         Then;
   548 *-*           rc = 255;

   549 *-*         Exit rc;

ERROR signaled at G:\UTIL\MISC\LinearMemoryMap.cmd line 114.
REXX reason = G:\OS2\CMD.EXE /c G:\UTIL\MISC\LinearMemoryMap.cmd - >G:\util\theseus\linearmemorymap-20231223-1059.lst.
RC = 255.
Source ="cmd".
   545 *-*         Call lineout 'STDERR', 'Exiting.';
Exiting.
       +++   Interactive trace. "Trace Off" to end debug, ENTER to Continue.

   546 *-*         Nop;

   547 *-*         If symbol('RC') \== 'VAR';

   549 *-*         Exit rc;


I'm running this from the Theseus directory, the linearmemorymap-20231223-1059.lst is created, and appears to be fine.

Any ideas?

2
Programming / EXE header 'Module' field change - how?
« on: December 10, 2023, 09:09:05 pm »
This is more of a nuisance driven inquiry, but the UPSMONS util (UPS Monitor) has the following EXEHDR defintion:

Code: [Select]
...
Module:                         TEMPLATE
Description:                    VisPro/REXX Runtime Version 2.01, COPYRIGHT (c)
HockWare Inc. 1994
Executable format level:        0
CPU type:                       Intel 80386 or upwardly compatible
Operating system:               Operating System/2

Module type:                    Program
                                NO internal fixups in executable image
Application type:               Uses PM Windowing API
...

Subsequently, TEMPLATE is what shows up in Theseus instead of 'UPSMONS'.

Looking at this I thought: "hmm, so I'm guessing this may be coming from the EXE HDR", and indeed it is, "so how can I change that?"

Is there a quick way to to do so? I'm thinking one of the OS/2 Toolkit utils may do this...but nothing obvious jumps out at me looking at the "Tools" INF.

Any ideas?

3
Setup & Installation / sigh....Python3 upgrade - curl problem?
« on: December 10, 2023, 06:06:09 pm »
So this whole 'upgrade to python3' is by now a well traversed path, I did my reading, took to the CLI approach of executing: 'yum install python3 python2.7', which gave me the following results:

Code: [Select]
[G:\]yum install python3 python2.7
Loaded plugins: changelog, downloadonly, ps, replace, verify
Setting up Install Process
Resolving Dependencies
There are unfinished transactions remaining. You might consider running yum-comp
lete-transaction first to finish them.
--> Running transaction check
---> Package python2.7.pentium4 0:2.7.18-3.oc00 will be installed
--> Processing Dependency: python-rpm-macros for package: python2.7-2.7.18-3.oc00.pentium4
--> Processing Dependency: python-srpm-macros for package: python2.7-2.7.18-3.oc00.pentium4
---> Package python3.pentium4 0:3.9.17-1.oc00 will be installed
--> Processing Dependency: python3-libs = 3.9.17-1.oc00 for package: python3-3.9.17-1.oc00.pentium4
--> Processing Dependency: python39.dll for package: python3-3.9.17-1.oc00.pentium4
--> Running transaction check
---> Package python-libs.pentium4 0:2.7.6-25.oc00 will be obsoleted
--> Processing Dependency: python-libs = 2.7.6-25.oc00 for package: python-2.7.6-25.oc00.pentium4
---> Package python-rpm-macros.noarch 0:3.9-3.oc00 will be installed
---> Package python-srpm-macros.noarch 0:3.9-3.oc00 will be installed
---> Package python3-libs.pentium4 0:3.9.17-1.oc00 will be obsoleting
--> Running transaction check
---> Package python.pentium4 0:2.7.6-25.oc00 will be obsoleted
---> Package python-unversioned-command.pentium4 0:3.9.17-1.oc00 will be obsoleting
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================

 Package                      Arch       Version            Repository     Size
================================================================================

Installing:
 python-unversioned-command   pentium4   3.9.17-1.oc00      netlabs-rel   8.6 k
     replacing  python.pentium4 2.7.6-25.oc00
 python2.7                    pentium4   2.7.18-3.oc00      netlabs-rel    18 M
 python3                      pentium4   3.9.17-1.oc00      netlabs-rel    22 k
 python3-libs                 pentium4   3.9.17-1.oc00      netlabs-rel    13 M
     replacing  python-libs.pentium4 2.7.6-25.oc00
Installing for dependencies:
 python-rpm-macros            noarch     3.9-3.oc00         netlabs-rel   9.1 k
 python-srpm-macros           noarch     3.9-3.oc00         netlabs-rel    15 k

Transaction Summary
================================================================================

Install       6 Packages

Total download size: 30 M
Is this ok [y/N]:

INPUT => Y

Downloading Packages:
(1/6): python-rpm-ma | 9.1 kB  00:00
(2/6): python-srpm-m |  15 kB  00:00
(3/6): python-unvers | 8.6 kB  00:00
(4/6): python2.7-2.7 |  18 MB  00:07     ====-] 2.1 MB/s |  17 MB  00:00 ETA
(5/6): python3-3.9.1 |  22 kB  00:00
(6/6): python3-libs- |  13 MB  00:05     ==== ] 1.9 MB/s |  12 MB  00:00 ETA
--------------------------------------------------------------------------------

Total                                           2.2 MB/s |  30 MB     00:13

Running Transaction Check
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Warning: RPMDB altered outside of yum.
  Installing : python-srpm-macros-3.9-3.oc00.noarch                         1/8
  Installing : python3-libs-3.9.17-1.oc00.pentium4                          2/8
  Installing : python3-3.9.17-1.oc00.pentium4                               3/8
  Installing : python-rpm-macros-3.9-3.oc00.noarch                          4/8
  Installing : python2.7-2.7.18-3.oc00.pentium4                             5/8
  Installing : python-unversioned-command-3.9.17-1.oc00.pentium4            6/8
  Erasing    : python-2.7.6-25.oc00.pentium4                                7/8
  Erasing    : python-libs-2.7.6-25.oc00.pentium4                           8/8

Rpmdb checksum is invalid: dCDPT(pkg checksums): python3-libs.pentium4 0:3.9.17-1.oc00 - u

Following this upgrade my inventory of python RPM packages installed is as follows:

Code: [Select]
Installed Packages
python-dateutil.noarch                        2.6.0-1.oc00           installed
python-pycurl.pentium4                        7.19.5.1-2.oc00        installed
python-rpm-macros.noarch                      3.9-3.oc00             installed
python-srpm-macros.noarch                     3.9-3.oc00             installed
python-unversioned-command.pentium4           3.9.17-1.oc00          installed
python2-deltarpm.pentium4                     3.6-1.oc00             installed
python2-libxml2.pentium4                      2.9.10-3.oc00          installed
python2-rpm.pentium4                          4.13.0-20.oc00         installed
python2.7.pentium4                            2.7.18-3.oc00          installed
python3.pentium4                              3.9.17-1.oc00          installed
python3-libs.pentium4                         3.9.17-1.oc00          installed

Therefore, my next logical (and maybe this was a mistake???) step was to upgrade all the pythonx stuff to python3, which I went to ANPM for:

1) python3-dateutil - this seems to have gone fine
Code: [Select]
----------[ 10 Dec 2023 10:26:12 ]----------
Executing: @python2.7 G:\UTIL\ANPM\scripts\yum_install_dep.py python3-dateutil
Enabling temporary repository arcanoae-sub
Enabling temporary repository arcanoae-exp
Enabling temporary repository arcanoae-stage
Enabling temporary repository arcanoae-arcaos
No argument pipe.
Return code: 0
----------[ 10 Dec 2023 10:26:25 ]----------
Executing: @python2.7 G:\UTIL\ANPM\scripts\yum_install.py python3-dateutil
No argument pipe.
Enabling temporary repository arcanoae-sub
Enabling temporary repository arcanoae-exp
Enabling temporary repository arcanoae-stage
Enabling temporary repository arcanoae-arcaos
Running Transaction Check
Warning: RPMDB altered outside of yum.
PackageSackError(): Rpmdb checksum is invalid: dCDPT(pkg checksums): python3-six.noarch 0:1.10.0-2.oc00 - u
Error: Rpmdb checksum is invalid: dCDPT(pkg checksums): python3-six.noarch 0:1.10.0-2.oc00 - u
PackageSackError()
Return code: 0
----------[ 10 Dec 2023 10:26:41 ]----------
Executing: @python2.7 G:\UTIL\ANPM\scripts\yum_list.py
Setting up yum
No argument pipe.
Adding temporary repositories
Enabling temporary repository arcanoae-sub
Enabling temporary repository arcanoae-exp
Enabling temporary repository arcanoae-stage
Enabling temporary repository arcanoae-arcaos
Initializing cache
Requesting package list
Return code: 0
----------[ 10 Dec 2023 10:27:05 ]----------
Executing: @python2.7 G:\UTIL\ANPM\scripts\yum_info.py python3-six
Warning: progress pipe not available.
Enabling temporary repository arcanoae-sub
Enabling temporary repository arcanoae-exp
Enabling temporary repository arcanoae-stage
Enabling temporary repository arcanoae-arcaos
No argument pipe.
Return code: 0
----------[ 10 Dec 2023 10:27:17 ]----------
Executing: @python2.7 G:\UTIL\ANPM\scripts\yum_files.py installed python3-six
Enabling temporary repository arcanoae-sub
Enabling temporary repository arcanoae-exp
Enabling temporary repository arcanoae-stage
Enabling temporary repository arcanoae-arcaos
No argument pipe.
Return code: 0
----------[ 10 Dec 2023 10:27:51 ]----------
Executing: @python2.7 G:\UTIL\ANPM\scripts\yum_files.py installed python-unversioned-command
Enabling temporary repository arcanoae-sub
Enabling temporary repository arcanoae-exp
Enabling temporary repository arcanoae-stage
Enabling temporary repository arcanoae-arcaos
No argument pipe.
Return code: 0
----------[ 10 Dec 2023 10:28:02 ]----------
Executing: @python2.7 G:\UTIL\ANPM\scripts\yum_info.py python-unversioned-command
Warning: progress pipe not available.
Enabling temporary repository arcanoae-sub
Enabling temporary repository arcanoae-exp
Enabling temporary repository arcanoae-stage
Enabling temporary repository arcanoae-arcaos
No argument pipe.
Return code: 0

2) python3-curl - this seems to have NOT gone fine
Code: [Select]
----------[ 10 Dec 2023 10:29:24 ]----------
Executing: @python2.7 G:\UTIL\ANPM\scripts\yum_install_dep.py python3-pycurl
Enabling temporary repository arcanoae-sub
Enabling temporary repository arcanoae-exp
Enabling temporary repository arcanoae-stage
Enabling temporary repository arcanoae-arcaos
No argument pipe.
Return code: 0
----------[ 10 Dec 2023 10:29:32 ]----------
Executing: @python2.7 G:\UTIL\ANPM\scripts\yum_install.py python3-pycurl
No argument pipe.
Enabling temporary repository arcanoae-sub
Enabling temporary repository arcanoae-exp
Enabling temporary repository arcanoae-stage
Enabling temporary repository arcanoae-arcaos
Running Transaction Check
Warning: RPMDB altered outside of yum.
PackageSackError(): Rpmdb checksum is invalid: dCDPT(pkg checksums): python3-pycurl.pentium4 0:7.44.1-3.oc00 - u
Error: Rpmdb checksum is invalid: dCDPT(pkg checksums): python3-pycurl.pentium4 0:7.44.1-3.oc00 - u
PackageSackError()
Return code: 0
----------[ 10 Dec 2023 10:29:58 ]----------
Executing: @python2.7 G:\UTIL\ANPM\scripts\yum_list.py
Traceback (most recent call last):
  File "G:\UTIL\ANPM\scripts\yum_list.py", line 6, in <module>
    import yum
  File "G:/usr/lib/python2.7/site-packages/yum/__init__.py", line 52, in <module>
    import config
  File "G:/usr/lib/python2.7/site-packages/yum/config.py", line 30, in <module>
    from parser import ConfigPreProcessor, varReplace
  File "G:/usr/lib/python2.7/site-packages/yum/parser.py", line 4, in <module>
    import urlgrabber
  File "G:/usr/lib/python2.7/site-packages/urlgrabber/__init__.py", line 55, in <module>
    from grabber import urlgrab, urlopen, urlread
  File "G:/usr/lib/python2.7/site-packages/urlgrabber/grabber.py", line 512, in <module>
    import pycurl
ImportError: No module named pycurl
Return code: 0
----------[ 10 Dec 2023 10:30:00 ]----------
Executing: @python2.7 G:\UTIL\ANPM\scripts\yum_list.py available
Traceback (most recent call last):
  File "G:\UTIL\ANPM\scripts\yum_list.py", line 6, in <module>
    import yum
  File "G:/usr/lib/python2.7/site-packages/yum/__init__.py", line 52, in <module>
    import config
  File "G:/usr/lib/python2.7/site-packages/yum/config.py", line 30, in <module>
    from parser import ConfigPreProcessor, varReplace
  File "G:/usr/lib/python2.7/site-packages/yum/parser.py", line 4, in <module>
    import urlgrabber
  File "G:/usr/lib/python2.7/site-packages/urlgrabber/__init__.py", line 55, in <module>
    from grabber import urlgrab, urlopen, urlread
  File "G:/usr/lib/python2.7/site-packages/urlgrabber/grabber.py", line 512, in <module>
    import pycurl
ImportError: No module named pycurl
Return code: 0
----------[ 10 Dec 2023 10:39:59 ]----------
Executing: @python2.7 G:\UTIL\ANPM\scripts\yum_populate.py
Traceback (most recent call last):
  File "G:\UTIL\ANPM\scripts\yum_populate.py", line 6, in <module>
    import yum
  File "G:/usr/lib/python2.7/site-packages/yum/__init__.py", line 52, in <module>
    import config
  File "G:/usr/lib/python2.7/site-packages/yum/config.py", line 30, in <module>
    from parser import ConfigPreProcessor, varReplace
  File "G:/usr/lib/python2.7/site-packages/yum/parser.py", line 4, in <module>
    import urlgrabber
  File "G:/usr/lib/python2.7/site-packages/urlgrabber/__init__.py", line 55, in <module>
    from grabber import urlgrab, urlopen, urlread
  File "G:/usr/lib/python2.7/site-packages/urlgrabber/grabber.py", line 512, in <module>
    import pycurl
ImportError: No module named pycurl
Return code: 0
----------[ 10 Dec 2023 10:40:01 ]----------
Executing: @python2.7 G:\UTIL\ANPM\scripts\yum_list.py
Traceback (most recent call last):
  File "G:\UTIL\ANPM\scripts\yum_list.py", line 6, in <module>
    import yum
  File "G:/usr/lib/python2.7/site-packages/yum/__init__.py", line 52, in <module>
    import config
  File "G:/usr/lib/python2.7/site-packages/yum/config.py", line 30, in <module>
    from parser import ConfigPreProcessor, varReplace
  File "G:/usr/lib/python2.7/site-packages/yum/parser.py", line 4, in <module>
    import urlgrabber
  File "G:/usr/lib/python2.7/site-packages/urlgrabber/__init__.py", line 55, in <module>
    from grabber import urlgrab, urlopen, urlread
  File "G:/usr/lib/python2.7/site-packages/urlgrabber/grabber.py", line 512, in <module>
    import pycurl
ImportError: No module named pycurl
Return code: 0

Sure enough, ANPM is no longer able to pull anything up, reports a pipe error, although from CLI I get the following:

Code: [Select]
[G:\]yum list python* |less
There was a problem importing one of the Python modules
required to run yum. The error leading to this problem was:

   No module named pycurl

Please install a package which provides this module, or
verify that the module is installed correctly.

It's possible that the above module doesn't match the
current version of Python, which is:
2.7.18 (default, Dec 27 2021, 15:11:56)
[GCC 9.2.0 20190812 (OS/2 RPM build 9.2.0-5.oc00)]

If you cannot solve this problem yourself, please go to
the yum faq at:
  http://yum.baseurl.org/wiki/Faq

So it would appear that installing python3-pycurl obsoleted python-pycurl (which I would have expected is the correct thing to do), but for some reason ANPM continues to see python 2.7.18 as the version it is executing.

From any CLI when checking for the installed Python3 version I get the following:

Code: [Select]
[G:\]python --version
Python 3.9.17

...so clearly I'm running Python3, but ANPM is still using 2.7.18, is that by design?

Either way, any ideas how I can get back to a working YUM/RPM/ANPM config?...and what (if anything) do I do about the remaining pythonx RPM packages (do I upgrade, or leave alone)?

OH, BTW: a system reboot was executed to rule out any other impacts, results are the same

4
Programming / Resources, dialogs, etc - what tools for what jobs?
« on: November 18, 2023, 04:41:34 pm »
PUMonitor enhancement project follow-up...

The original author provided a text RC file that defines all the resources the utility uses. No problem there, the Resource Compiler get that into a RES file, which is then ultimately attached to the EXE itself. My makefile handles that. Keep in mind that he developed this in Borland C++, so I am assuming he used the Borland Resource Workshop.

Alright...so now I need to change the Settings dialogs and as best as I know (which granted is very little on this topic ;)) I was expecting to use the Dialog Editor to actually visually modify/add the right layouts, etc. The Dialog Editor however (which is the Toolkit one) only wants to open a RES file, which while managable (b/c I have that as an output of the Resource Compiler run) will not afterwards reflect the changes in the source RC file. In other words: it looks like I can make changes to the RES itself, but once I do how do I get these into the underlying RC itself?

I understand why the ability to just change the RES is desirable: after all, if I want to adjust just a resource it is awfully nice to do so w/o having to recompile all the sources, etc.

OK, so back to my task, my thinking here is: if my makefile is looking to always compile the RC, clearly when I modify just the RES I will always overwrite those changes with the output of compiled RC, no?

Further on I understand that the Dialog Editor should allow me to create the DLG file, with the option to create the compiled version, that being the RES extension. OK, but trying to do this with my Dialog Editor only allows me to open a RES file, and attempting to save it simply points back to the same RES and optional H files.

Alright...so digging through my OS/2 DEV library I see the mention of Dialog Editor ONLY creating DLG text files when one starts with a NEW dialog...hmm??? So is the expectation really that all further changes are to be done by hand (if I want to reflect the actual changes in the underlying DLG source), or through a direct GUI manipulation of the previously generated RES file (using Dialog Editor)?

That just seems weird...I should be able to visually modify a dialog and upon saving it update the source definition file itself, be it RC or DLG (depending of course on what particular resource I am modifying).

So what am I missing here?

FYI - attempting to open the RC file itself in Borland Resource Workshop produces an error:

"Compiling MENU: ID_MENU"

Code: [Select]
Error
G:\code\source\os2\pumonitor\src\source\pumon2.rc 20:Expecting END

The Help feedback states:

Quote
Resource Workshop encountered an unexpected token when searching for the END keyword. This error is frequently caused by a typo in an identifier name.

Which I think is strange given that this RC file compiles successfully into RES, which itself is attached into the EXE and by all accounts that's working quite fine.

Here is the matching part of the RC itself:

Code: [Select]
...
MENU ID_MENU
{
    MENUITEM "~About"    , ID_MENU_ABOUT, MIS_TEXT
    MENUITEM "~Settings" , ID_MENU_SET  , MIS_TEXT | MIS_SUBMENU
    {
        MENUITEM "~General"       , ID_MENU_SET_0, MIS_TEXT
        MENUITEM "~CPU Meter"     , ID_MENU_SET_1, MIS_TEXT
        MENUITEM "~Memory Meter"  , ID_MENU_SET_2, MIS_TEXT
        MENUITEM "~TCP/IP Traffic", ID_MENU_SET_3, MIS_TEXT
        MENUITEM "M~ail Checker 1", ID_MENU_SET_4, MIS_TEXT
        MENUITEM "M~ail Checker 2", ID_MENU_SET_5, MIS_TEXT
        MENUITEM "M~ail Checker 3", ID_MENU_SET_6, MIS_TEXT
        MENUITEM "M~ail Checker 4", ID_MENU_SET_7, MIS_TEXT
        MENUITEM "M~ail Checker 5", ID_MENU_SET_8, MIS_TEXT
        MENUITEM "C~onnectivity"  , ID_MENU_SET_9, MIS_TEXT
    }
    MENUITEM ""            ,            -1, MIS_SEPARATOR
    MENUITEM "Read ~Mail  ", ID_MENU_MAIL , MIS_TEXT
    MENUITEM ""            ,            -1, MIS_SEPARATOR
    MENUITEM "~Close"      , ID_MENU_CLOSE, MIS_TEXT
}
...

5
Applications / NewView - control over NEW window placement?
« on: October 15, 2023, 01:47:53 am »
Is there any sort of parameter/setting that defines where each NEW NewView window is to be placed on screen?

I ask b/c in my setup (dual-monitor & 12 virtual desktops) every time I invoke NewView it pops up right next to the previous instantiation, which most of the time puts it in another window and normally in a different virtual desktop altogether. So I then chase it down and re-position, etc, etc.

OK, so having said that, I did see the following in the app help:

Quote
/pos:<left>,<bottom>,<width>,<height>

Set the main program window to the given position and size

...and while that allows me to position & size a NEW window in specific ways, as soon as I open a NEW window (w/o first closing the already opened one) that NEW window gets created right over the previous one, although safely offset by a few pixels.

Needless to say, that control doesn't help as I'm back to "square one".

6
Programming / makefile interpretation - help needed
« on: October 15, 2023, 01:20:08 am »
LOL...so this is part of my on-going attempt to add shared memory monitor to the PUMonitor utility.

Alright...PUMon relies on Borland's BMAKE for makefile handling, so I figured I would take a stab at converting that to NMAKE32 instead so I can use my VAC++ 3.6.5. Heck, I started this a looonnnnggg time ago (see https://www.os2world.com/forum/index.php/topic,2646.msg29061.html#msg29061) and now that I've made the memory watch code changes I really needed to commit and get that previous attempt to produce results!!!

Ha...but OK, I am basing this work on the original makefile and in the TARGET section:

Code: [Select]
...
# Targets
all :  pumon2.exe

COMMON.LIB : $(OBJS)
@cd .\obj
-@del COMMON.LIB >nul 2>nul
@$(LIBRARIAN) COMMON.LIB @..\library.rsp;
@cd ..

pumon2.exe : COMMON.LIB pumon2.obj pumon2.res
@cd .\obj
$(CC) @&&|
pumon2.obj COMMON.LIB   ..\source\si2.lib ..\source\win32k.lib so32dll.lib tcp32dll.lib pumon2.def
|
@$(RC) pumon2.res pumon2.exe
@cd ..
...

there I find the following snippet which I'm thrown off by:

Code: [Select]
$(CC) @&&|
pumon2.obj COMMON.LIB   ..\source\si2.lib ..\source\win32k.lib so32dll.lib tcp32dll.lib pumon2.def
|

I need help understanding this.

'CC' macro expands to => CC=icc -O+ -Oc+ -Ss+ -G5 -Q+ -Gm+ -I..\include -B"/ST:327680 /NOE /E:2" -B"/PMTYPE:PM"

Seems simple at first: the compiler is called, and given the placement of that command (PUMON2.EXE target) it appears that this is the FINAL call to link everything together.

OK, but that "@&&" string right after it implies a CLI conditional execute call that will only execute the stuff following "|" if the CC call is successful, but the "|" (pipe)??? what is that about (what sort of CC output am I expecting to pipe into the next section???)...and if CC will execute as-is, what the heck is it processing anyways given that I do not see anything telling it to pick up a dependent, nor to create a target.

Clearly I am missing something here and having spent a couple of hours on this tonight I'm stuck...

7
Programming / shared memory value - Odin win32k or DosQuerySysInfo???
« on: September 26, 2023, 10:08:32 pm »
I'm making some adjustments to the PUMonitor utility to show the largest available shared memory area (low shared memory I believe) alongside the current 'available memory' estimate.

Specifically, the PUMonitor utility relies on win32k.h definitions and library calls:

Code: [Select]
/* $Id: win32k.h,v 1.11 2001/03/15 20:03:10 bird Exp $
 *
 * Top level make file for the Win32k library.
 * Contains library and 32-bit IOCtl definition.
 *
 * Copyright (c) 2000 knut st. osmundsen (knut.stange.osmundsen@pmsc.no)
...

That library has a K32SYSTEMMEMINFO record which appears to already collect the shared memory information:

Code: [Select]
...
    /* Virtual Memory manager info. */
    ULONG       ulAddressLimit;         /* VM: Current user virtual address limit - use this for high arena check. (VirtualAddressLimit / 0x20000000) */
    ULONG       ulVMArenaPrivMax;       /* VM: Current highest address in the private arena. (vmRecalcShrBound()) */
    ULONG       ulVMArenaSharedMin;     /* VM: Current lowest address in the shared arena. (ahvmShr) */
    ULONG       ulVMArenaSharedMax;     /* VM: Current highest address in the shared arena. (ahvmShr) */
    ULONG       ulVMArenaSystemMin;     /* VM: Current lowest address in the system arena. (ahvmhSys) */
    ULONG       ulVMArenaSystemMax;     /* VM: Current highest address in the system arena. (ahvmhSys) */
    ULONG       ulVMArenaHighPrivMax;   /* VM: Current highest address in the high private arena - aurora/smp only. (vmRecalcShrBound) */
    ULONG       ulVMArenaHighSharedMin; /* VM: Current lowest address in the high shared arena - aurora/smp only. (ahvmhShr) */
    ULONG       ulVMArenaHighSharedMax; /* VM: Current highest address in the high shared arena - aurora/smp only. (ahvmhShr) */
...

Just looking at that single header file I see the following functions being called out:

Code: [Select]
/*******************************************************************************
*   External Functions                                                         *
*******************************************************************************/
/* Win32k APIs */
APIRET APIENTRY  libWin32kInit(void);
APIRET APIENTRY  libWin32kTerm(void);
BOOL   APIENTRY  libWin32kInstalled(void);
APIRET APIENTRY  libWin32kQueryOptionsStatus(PK32OPTIONS pOptions, PK32STATUS pStatus);
APIRET APIENTRY  libWin32kSetOptions(PK32OPTIONS pOptions);

/* "Extra OS2 APIs" */
APIRET APIENTRY  DosAllocMemEx(PPVOID ppv, ULONG cb, ULONG flag);
APIRET APIENTRY  W32kQueryOTEs(HMODULE hMTE, PQOTEBUFFER pQOte, ULONG cbQOte);
APIRET APIENTRY  W32kQuerySystemMemInfo(PK32SYSTEMMEMINFO pMemInfo);
APIRET APIENTRY  W32kProcessReadWrite(PID pid, ULONG cb, PVOID pvSource, PVOID pvTarget, BOOL fRead);
APIRET APIENTRY  W32kHandleSystemEvent(ULONG ulEvent, HEV hev, BOOL fHandle);

/* Helper function */
USHORT APIENTRY  libHelperGetCS(void);
...

In particular PUMonitor uses the W32kQuerySystemMemInfo function to retrieve the existing physical available memory information (cbPhysAvail), and it would seem the following would provide what I'm looking for:

ULONG       ulVMArenaSharedMin;     /* VM: Current lowest address in the shared arena. (ahvmShr) */
ULONG       ulVMArenaSharedMax;     /* VM: Current highest address in the shared arena. (ahvmShr) */

However...I haven't been able to find any references and DEV explanations for these, so I'm curious if anyone has used these?

The DosQuerySysInfo is a known way to get this, but obviously I'd rather not re-invent the wheel if I can use the existing approach.

As always, appreciate the feedback!

8
Applications / ANPM - libc upgrade error...?
« on: May 06, 2023, 04:08:29 pm »
Just spotted that libc has been updated, so I figured I'd give this a go.

Firing up ANPM went just fine, but attempting to update that RPM consistently results in the following error (see attachment).

Went as far as to re-boot, still the same result...curious if anyone is seeing this as well?

Running ANPM in DEBUG mode produces the following:

Code: [Select]
...
[RunYum] Starting execution thread for command: yum_update_dep.py libc
[RunYum]   -> Thread 10 started successfully.
[PyDone] Thread for "yum_update_dep.py libc" completed with status 0.
[PyDone] Processing exit logic for "YUM_UPDATE_DEP.PY".
[GetScalingFactor] Using font size 10 (scaling factor 1)
[DLLCheck] Checking 9 DLLs for conflicts
[CheckDllConflict] - LIBCN0.DLL
[CheckDllConflict]   --> G:\USR\LIB\LIBCN0.DLL
[CheckDllConflict] - LIBC06.DLL
[CheckDllConflict]   --> G:\USR\LIB\LIBC06.DLL
[CheckDllConflict] - LIBC061.DLL
[CheckDllConflict]   --> G:\USR\LIB\LIBC061.DLL
[CheckDllConflict] - LIBC062.DLL
[CheckDllConflict]   --> G:\USR\LIB\LIBC062.DLL
[CheckDllConflict] - LIBC063.DLL
[CheckDllConflict]   --> G:\USR\LIB\LIBC063.DLL
[CheckDllConflict] - LIBC064.DLL
[CheckDllConflict]   --> G:\USR\LIB\LIBC064.DLL
[CheckDllConflict] - LIBC065.DLL
[CheckDllConflict]   --> G:\USR\LIB\LIBC065.DLL
[CheckDllConflict] - LIBC066.DLL
[CheckDllConflict]   --> G:\USR\LIB\LIBC066.DLL
[CheckDllConflict] - LIBCN0.DLL
[CheckDllConflict]   --> G:\USR\LIB\LIBCN0.DLL
[GetScalingFactor] Using font size 10 (scaling factor 1)
...

...so perhaps there is some sort of a scaling logic issue here? I do recall this is one of the changes that Alex rolled out in the last ANPM release.

BTW: nothing in POPUPLOG.OS2 and no TRP files.

9
Off Topic discussions / Car rides etc, was Re: Qt6 Development
« on: May 06, 2023, 03:41:59 pm »
I know I've been a bit quiet the last couple of weeks, I've needed some time away from Qt6 as it was starting to frustrate me...
I'm sorry Paul...but priorities are priorities, and I'm expecting a new build every two, at worst three days!!! :o ......NOT 

Look, everyone needs some "soul time", so don't short-change yourself on yours.

Alright...so how about that NEW ride of yours? If I may ask, what did you end up getting?

I'm a car guy, meaning, hobby wise I build V8 motors, occasionally drag race, but the intended use is mostly for the street. My current engine build started way back in 2021 and it's been dragging on for a little too long now, although I can see the light at the end of the tunnel now!

10
Programming / DLL names, and re-direction?
« on: April 22, 2023, 09:38:22 pm »
As Paul has been building the QT stuff he noted the OS/2 DLL name limitations.

This morning I was reading a security paper on Google One VPN and DLL redirection was highlighted as one of the findings (LOW impact).

Anyways, this remark was applicable to the Win binaries, but it did have a link to a MSDN article (https://learn.microsoft.com/en-us/windows/win32/dlls/dynamic-link-library-redirection), so off I went reading wondering how Gates&Co solved this issue.

So while the redirection issue and the Win functionality to implement such a thing does not solve our problem, that made me think: so why not construct our very own re-direct DLL to help us deal with the existing limitations?

Basically a wrapper DLL.

Would it not be feasible to maintain a system-wide manifest that lists all installed DLLs, and for those that need to be longer than the 8 chars limitation we simply provide a virtual DLL name that the wrapper maps to and passes that onto the standard OS/2 DLL loader?

...or am I misunderstanding the nature of the OS/2 limitiation?

11
Applications / XWP - Create New => popup sort?
« on: April 15, 2023, 11:45:09 pm »
Hi Everyone!

Can anyone tell me how XWP sorts the objects in the 'Create new => folder' pop-up menu selection?

This functionality allows you to define what types of objects you'd like to have easy access to creating. Simply RMB click anywhere and select from that pop-up menu.

I recently sorted through my Lotus 1-2-3 and AOO entries and added the AOO spreadsheet option (see attached image for 'Spreadsheet - Excel'.

However, for the life of me (and I'm guessing this may be ridiculously simple) I cannot figure out how to arrange the folder objects so that my pop-up menu is better organized.

My goal is to list the two 'Spreadsheet' options at the bottom of that menu.

Thanks!

12
Hardware / Dell KB900 keyboard - workable?
« on: March 23, 2023, 02:51:49 am »
Hi Everyone,

Dell sent me an email with a discount code...and well, all my keyboards are still wired, so this one seems like a real nice upgrade.

It is a full keyboard and the comms are done through a Wireless RF2.4GHz & Bluetooth 5.1 setups. The RF link is accomplished through 'Secure Link USB Type-A Receive', which is a little plug that connects to your USB port.

My hope is that this literally just becomes a standard USB keyboard...but...that may be wishful thinking only...LOL, so I'm curious of anyone has tried either this specific keyboard, or keyboards like this with a similar connectivity setup?

Here is the link to the Product Support Page => https://www.dell.com/support/kbdoc/en-ca/000208146/dell-premier-collaboration-keyboard-kb900-usage-and-troubleshooting-guide

Thanks!

BTW: This keyboard will support pairing up with 2 Bluetooth devices as well, which means this is also a nice way to get comfy typing away in front of a larger tablet, or even a laptop.

13
Programming / WebSite / HTML editor - what do we have?
« on: February 02, 2023, 04:46:28 am »
...as the title asks: what exactly do we have on our platform?

Dave Yeo ported Kompozer sometime back in 2018 I think...but tonight I just tried it and while it starts up it then completely dies. It is Mozilla based, the full set of DLLs comes with it, and well it looks like it's not quite compatible with our FF 45.9x release because I had apparently tried this before and ended up setting up a CMD that uses "SET LIBPATHSTRICT=T".

Is there anything else I can look at?

I have my VSE here, but that's all HTML code and I'd rather be lazy and do some WYSIWYG instead (I've got a couple of very simple index.html pages to build).

14
Storage / JFS - chkdsk LOG - where?
« on: January 14, 2023, 06:58:33 pm »
Hi Everyone,

Umm...something strange happened to me this morning: I was editting my RSYNC LOG file so I could archive the 2022 stuff and start new for 2023. Needless to say, the file is about 25M in size...so plain vanilla editor just takes a little extra time.

I had done this with the good ol' trusty E.exe before, but I figured I would give AE a try (v1.9.x). Editing went fine, no faster than E.exe, however once edited EA hung trying to save it back to the disk. I waited, and waited, following which I tried to kil EA, no go though. Rolled out the full gamut of kill options, still no go.

Ultimately I selected the Reboot option from CAD-Popup as EA was literally blocking WPS (nothing else worked), but even than hung. So as a final attempt to recover I did CTL-ALT-NUMLCK x2, which put me in the dump screen, and then I reset.

Now, in the past, that desparate attempt to recover has always worked. It also has NEVER caused me a JFS issue, however this time...man...upon reboot the JFS CHKDSK went to work full-time...pile of stuff scrolled by (too fast of course to see any of it) and machine came back up. INIs were corrupted, no problem, I have regular backups, so a couple of reboots later I was back up and running.

However, not liking that longish list of CHKDSK results I went fishing to learn more about it.

As it happens I have the following in my STARTUP.CMD:

Code: [Select]
...
chklgjfs g: >> g:\tmp\log\chklgjfs-g.log
...

which is done for ALL the drives.

In my case, this produced the following:

Code: [Select]
____________________________________________________________________
chkdsk service log selected:  MOST RECENT

XCHKLOG P superblock is valid.


**********************************************************


CHKDSK  processing started: 1/14/2310.56.1

CHKDSK parameter detected:  AutoCheck mode

CHKDSK parameter detected:  IfDirty

CHKDSK  The current hard disk drive is:  g:

CHKDSK  DosOpen(...OPEN_SHARE_DENYREADWRITE|OPEN_ACCESS_READWRITE...) returned rc = 0

CHKDSK  DosDevIOCtl(...DSK_GETDEVICEPARAMS...) returned rc = 0

CHKDSK  Primary superblock is valid.

CHKDSK  The type of file system for the disk is JFS.

CHKDSK  The boot sector has been refreshed.

CHKDSK  Filesystem is clean.

CHKDSK  All observed inconsistencies have been repaired.

CHKDSK  Filesystem has been marked clean.

CHKDSK **** Filesystem was modified. ****

CHKDSK   LVM GetBadBlockInformation returned rc = 22

CHKDSK  processing terminated:  1/14/2310.56.1   with return code: 0.

____________________________________________________________________

The problem here is that this doesn't tell me anything about WHAT actually was detected and what JFS did to attempt to correct it.

Sure enough...as I attempted to fire up a few of my regular apps like PMMail for example, I came to discover that those directories have missing files, etc.

So clearly there is a JFS problem here, and as opposed to HPFS where the HPFS CHKDSK log viewer would at least clearly show the objects that were impacted, it would appear that JFS has no such functionality.

How can that be though? I must be missing something...

So how are you guys getting visibility into what JFS CHKDSK log has found and/or corrected?

BTW: Nothing in \lost+found directory, so no actual directories or files were recovered...

15
Web applications / Google Photos - cookie problems anyone?
« on: January 10, 2023, 02:59:57 am »
I don't frequently hit the Google Photos here, but occasionally - usually when I just took some photos of car work I'm doing and need to file-away, or share in a forum - I do. It's always been pretty easy, typically I select what I want, clinck 'Download' and off it arrives here as a ZIP file.

Well, not sure if this is another "nail" in the coffin or purely my client only problem, but as of the other day (could have happened earlier if this is a Google change that's impacting us) I am getting the following error when attempting to hit my photo collection:

Code: [Select]
We've detected a problem with your cookie settings.
Enable cookies

Make sure your cookies are enabled. To enable cookies, follow these browser-specific instructions.
Clear cache and cookies

If you have cookies enabled but are still having trouble, clear your browser's cache and cookies.
Adjust your privacy settings

If clearing your cache and cookies doesn't resolve the problem, try adjusting your browser's privacy settings.
If your settings are on high, manually add www.google.com to your list of allowed sites. Learn more

I've of course gone through the whole cache/cookies purge...strangely enough following such a purge the site becomes accessible again. However, the minute FF is re-stated I'm back to square-one.

It almost feels like the cookies Google Photos may be using either aren't being saved, or something during FF re-start is wiping them out?

I am using using uBlock and NoScript, but neither one has caused me this problem before. I'm going to test with a clean profile next...

Has anyone encountered this?

Pages: [1] 2 3 ... 12