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.


Messages - Dave Yeo

Pages: [1] 2 3 ... 222
1
Applications / Re: SeaMonkey downloads and Unix permissions
« on: Today at 03:00:04 am »
Yes, I set it with NO_ERROR. At first I was worried about the scope of rc as it is used throughout the file.  Though thinking about it, I'm not sure what happens if there is an error, whether in the memory allocation or what DosQueryPathInfo() returns, perhaps it should have been passed somehow to the class, nsLocalFile::SetPermissions(uint32_t aPermissions).
https://github.com/bitwiseworks/mozilla-os2/blob/master/xpcom/io/nsLocalFileOS2.cpp about line 1931

2
Applications / Re: SeaMonkey downloads and Unix permissions
« on: January 18, 2022, 06:47:02 pm »
Thanks, that worked, except the EA's are still there. Probably need to strip them later when the tmp file gets moved to the permanent name in download.cpp

3
Applications / Re: SeaMonkey downloads and Unix permissions
« on: January 18, 2022, 08:01:05 am »
In my QE editor and a few other programs, I simply make sure that new files are created without EAs. 

More precisely, because libc creates these file permission EAs on a new file automatically, my save routines all have some logic to immediately delete them if the file was new. (I don't do that when updating an existing file because the user might actually have set them on purpose.)

e.g.
Code: [Select]
    if ( !fileExists ) {
#ifdef __OS2__
        // If this is a new file, get rid of the useless default EAs added by klibc
        deleteEA( pszFileName, (PCSZ) "UID");
        deleteEA( pszFileName, (PCSZ) "GID");
        deleteEA( pszFileName, (PCSZ) "MODE");
        deleteEA( pszFileName, (PCSZ) "INO");
        deleteEA( pszFileName, (PCSZ) "RDEV");
        deleteEA( pszFileName, (PCSZ) "GEN");
        deleteEA( pszFileName, (PCSZ) "FLAGS");
#endif
    }

Code: [Select]
unsigned long deleteEA( char *pszPathName, const char *pszEAName )
{
    PFEA2LIST pFEA2List = NULL;
    PFEA2     pFEA2 = NULL;
    EAOP2     eaop2 = {0};
    size_t    cb = 0;
    APIRET    rc = ERROR_NOT_ENOUGH_MEMORY;

    cb = sizeof( FEA2LIST ) + strlen( pszEAName );
    pFEA2List = (PFEA2LIST) calloc( cb, 1 );
    if ( pFEA2List ) {
        pFEA2List->cbList = cb;
        pFEA2 = pFEA2List->list;
        pFEA2->cbName = (BYTE) strlen( pszEAName );
        strcpy( pFEA2->szName, pszEAName );
        pFEA2->cbValue = 0;

        eaop2.fpFEA2List = pFEA2List;
        rc = DosSetPathInfo( (PCSZ) pszPathName, FIL_QUERYEASIZE,
                             (PBYTE) &eaop2, sizeof( eaop2 ), DSPI_WRTTHRU );
        free( pFEA2List );
    }
    return (unsigned long) rc;
}

Well, so far I've come up with this,
Code: [Select]
diff --git a/xpcom/io/nsLocalFileOS2.cpp b/xpcom/io/nsLocalFileOS2.cpp
index 32715473bd..bb772a8053 100644
--- a/xpcom/io/nsLocalFileOS2.cpp
+++ b/xpcom/io/nsLocalFileOS2.cpp
@@ -16,6 +16,7 @@
 #include "nsIDirectoryEnumerator.h"
 #include "nsIComponentManager.h"
 #include "prlink.h"
+#include "prmem.h"
 
 #include "nsTraceRefcnt.h"
 #include "nsReadableUtils.h"
@@ -233,6 +234,32 @@ static int isleadbyte(int c)
     return retval;
 }
 
+static nsresult deleteEA( char *pszPathName, char *pszEAName )
+  {
+      PFEA2LIST pFEA2List = NULL;
+      PFEA2     pFEA2 = NULL;
+      EAOP2     eaop2 = {0};
+      size_t    cb = 0;
+      APIRET    rc;
+
+      cb = sizeof( FEA2LIST ) + strlen( pszEAName );
+      pFEA2List = (PFEA2LIST) PR_Calloc( cb, 1 );
+      if ( pFEA2List ) {
+          pFEA2List->cbList = cb;
+          pFEA2 = pFEA2List->list;
+          pFEA2->cbName = (BYTE) strlen( pszEAName );
+          strcpy( pFEA2->szName, pszEAName );
+          pFEA2->cbValue = 0;
+
+          eaop2.fpFEA2List = pFEA2List;
+          rc = DosSetPathInfo( (PCSZ) pszPathName, FIL_QUERYEASIZE,
+                               (PBYTE) &eaop2, sizeof( eaop2 ), DSPI_WRTTHRU );
+          PR_Free( pFEA2List );
+      }
+      if (rc != NO_ERROR)
+        return ConvertOS2Error(rc);
+  }
+
 //-----------------------------------------------------------------------------
 // nsDirEnumerator
 //-----------------------------------------------------------------------------
@@ -1956,6 +1983,15 @@ nsLocalFile::SetPermissions(uint32_t aPermissions)
 
     pathInfo.attrFile ^= FILE_READONLY;
 
+//  Get rid of the useless default EAs added by klibc
+    deleteEA( mWorkingPath.get(), (PCSZ) "UID");
+    deleteEA( mWorkingPath.get(), (PCSZ) "GID");
+    deleteEA( mWorkingPath.get(), (PCSZ) "MODE");
+    deleteEA( mWorkingPath.get(), (PCSZ) "INO");
+    deleteEA( mWorkingPath.get(), (PCSZ) "RDEV");
+    deleteEA( mWorkingPath.get(), (PCSZ) "GEN");
+    deleteEA( mWorkingPath.get(), (PCSZ) "FLAGS");
+
     rc = DosSetPathInfo(mWorkingPath.get(), FIL_STANDARD,
                         &pathInfo, sizeof(pathInfo), 0UL);

But the compiler isn't happy with converting the strings, (also the return type)
...
Code: [Select]
Y:/work/cc45-git/mozilla/xpcom/io/nsLocalFileOS2.cpp:1993:31: error: invalid conversion from 'const char_type*' {aka 'const char*'} to 'char*' [-fpermissive]
 1993 |     deleteEA( mWorkingPath.get(), (PCSZ) "FLAGS");
      |               ~~~~~~~~~~~~~~~~^~
      |                               |
      |                               const char_type* {aka const char*}
Y:/work/cc45-git/mozilla/xpcom/io/nsLocalFileOS2.cpp:237:33: note:   initializing argument 1 of 'nsresult deleteEA(char*, char*)'
  237 | static nsresult deleteEA( char *pszPathName, char *pszEAName )
      |                           ~~~~~~^~~~~~~~~~~
Y:/work/cc45-git/mozilla/xpcom/io/nsLocalFileOS2.cpp:1993:35: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
 1993 |     deleteEA( mWorkingPath.get(), (PCSZ) "FLAGS");
      |                                   ^~~~~~~~~~~~~~
Y:/work/cc45-git/mozilla/xpcom/io/nsLocalFileOS2.cpp: In function 'nsresult deleteEA(char*, char*)':
Y:/work/cc45-git/mozilla/xpcom/io/nsLocalFileOS2.cpp:261:3: warning: control reaches end of non-void function [-Wreturn-type]
  261 |   }

Ideas?


4
104b should be on the ArcaOS install ISO,
Code: [Select]
I:\OS2IMAGE\DEBUG\SMP>bldlevel os2krnl
Build Level Display Facility Version 6.12.675 Sep 25 2001
(C) Copyright IBM Corporation 1993-2001
Signature:       @#IBM:14.104b#@_SMP  IBM OS/2 Kernel
Vendor:          IBM
Revision:        14.104
File Version:    14.104
Description:     _SMP  IBM OS/2 Kernel

5
...
The system detected an internal processing error at
location ##0168:a41c - 0010:a41c.
60004, 6009
128606c3 - 00/00 00:00:00.00
Internal revision 14.104b_SMP
The system is stopped.  Record all of the above information and
contact your service representative.
...

That 14.104b_SMP is a very old kernel, in fact the quasi-official latest IBM build was 106. AOS has gone to never kernels since, and that might help.

Isn't that the newest debug kernel? Ok, I see there may be a 14.104c SMP floating around.

6
Programming / Re: Netlabs.org on Github
« on: January 16, 2022, 08:11:54 am »
On the one hand, Github sorta works with our old browsers. On the other hand, it is now owned by Microsoft and a lot of developers don't like it and it seems gitlab is popular.
I started using Bitbucket because I needed something that supported Mercurial, and Bitbucket was one of the very few choices and it worked fine, though slow. Then Atlassian bought it. Things were mostly fine, then I couldn't upload builds of Mozilla anymore, even with Linux or falling back to their API and Curl. Then the worst was, with lots of notice, they not only dropped Mercurial support, but deleted everything. All my Mozilla repositories gone. I moved much of it and converted my Mercurial repositories to Git but it really left a bad taste in my mouth, they could have set everything to read only instead of deleting who knows how many repositories.
I also tried Sourceforge again with a test repository. They insisted on 2 factor login, which was fine, had an app on my phone and just had to copy a 4 digit number. Then I changed phones, didn't think of exporting the stuff from the 2 factor app and lost access to my account. Their response was nothing they could do, no way to reset things and the only way forward was to start over with a new account, which I never got around to.
My takeaway is that hosting services can't be trusted, especially using the free tier and the best thing is to have multiple repositories. One wonderful thing with Git (and Mercurial) is you have a copy of the whole repository locally. Hear of SVN servers going down and all the meta-data is gone. With Git, it is easy to clone everything and have backups.
With that in mind, Github works. Hopefully Martin has copies of all those repositories he has created.

7
Hi S.P., welcome.
I'd guess your ACPI tables are broken and advise opening an issue at Arca Noae. With luck, ACPI might be fixed/worked around for your hardware.
You can also review https://www.arcanoae.com/wiki/acpi/requirements/ in particular the section "Internal Processing Errors reported by the kernel" but there might be other workarounds that help for you.

8
Games / Re: DOS VDM - USB and Game port Gamepad support
« on: January 15, 2022, 05:57:12 pm »
The HID descriptor parser has changed. Don't know where it is implemented. For usbresmg, a typo fix. Other changes probably wouldn't affect things.

9
Games / Re: DOS VDM - USB and Game port Gamepad support
« on: January 15, 2022, 12:03:32 am »
Just that the usbcalls update doesn't break anything

10
Setup & Installation / Re: OS2DASD hangs after 1st stage installation
« on: January 14, 2022, 08:51:33 pm »
Also, I just noticed your DVD is set as slave with no master on the interface, I'd suggest first trying to set the DVD to master and if that doesn't work, cable select. Could even temporarily remove it if you are installing with a USB stick

11
Setup & Installation / Re: OS2DASD hangs after 1st stage installation
« on: January 14, 2022, 08:48:41 pm »
Hi Stefano, looking at your system, I see
Code: [Select]
R1.08.15     /!BIOS
            Daniela's Bus Master IDE Driver for OS/2 Version 1.08.15
Controller:0  Port:F0707080 IRQ:16  Status:OK BusMaster Scatter/Gather
  ATI IXP SATA host (1002:4379 rev:80) on PCI 0:18.0#0
 Unit:0 Status:OK SMS:16 LBA BusMaster 1.5GBit/s BPB
  Model:Lexar 256GB SSD                         H190117D
   OS2:log   phys   BPB/BIOS   IDE:log   phys     Total Sectors
  C  31130  65535                65535  16383   Avail  500118192
  H    255     16        255        16     16   OS2    500103450
  S     63     63         63        63     63   % Used     99.99
Controller:1  Port:01F0 IRQ:0E  Status:OK BusMaster Scatter/Gather
  ATI IXP PATA host (1002:4376 rev:80) on PCI 0:20.1#0
 Unit:0 Status:No Master Device
 Unit:1 Status:OK ATAPI BusMaster UltraDMA2/PIO4
  Model:TOSHIBA DVDW/HD TS-L802A                TF37

Looking at the Danis506 chiplist, I see
Code: [Select]
0x1002 ATI
   0x436E IXP300 SATA                x   x   x    x   ?     x   -       ?   (x)
   0x4379 IXP400 SATA                x   x   x    x   ?     x   -       ?   (x)
   0x437A IXP400 SATA                x   x   x    x   ?     x   -       ?   (x)
   0x4380 IXP600 SATA                x   x   x    x   ?     x   x       ?   (x)
   0x4381 IXP600 SATA                x   x   x    x   ?     x   x       ?   (x)
   0x4390 IXP700/800 SATA            x   x   x    x   ?     x   x       ?   (x)
   0x4391 IXP700/800 SATA            x   x   x    x   ?     x   x       ?   (x)
   0x4392 IXP700/800 SATA            x   x   x    x   ?     x   x       ?   (x)
   0x4393 IXP700/800 SATA            x   x   x    x   ?     x   x       ?   (x)
   0x4394 IXP700/800 SATA            x   x   x    x   ?     x   x       ?   (x)
   0x4395 IXP700/800 SATA            x   x   x    x   ?     x   x       ?   (x)

 IXP300/400 are licenced SiI3112 cores. The same features and bugs apply!
and
Code: [Select]
0x1095 Silicon Image
   0x3112 SiI 3112                   x   x   x    x   -     x   -       x    x
   0x3114 SiI 3114                   x   x   x    x   ?     x   -       ?    x
   0x3512 SiI 3512                   x   x   x    x   ?     x   -       ?   (x)
   0x0240 Adaptec AAR-1210SA         x   x   x    x   ?     x   -       x   (x)

 known bugs:
   - SiI3x12: incompatibilities with some disks:
      * ST320012AS,ST330013AS,ST340017AS,ST360015AS,ST380023AS,ST3120023AS ,ST340014ASL,ST360014ASL,ST380011ASL,ST3120022ASL,ST3160021ASL (no fix)

So it appears that Danis506 sorta supports your disk controller, but with bugs, certain disks?

Suggestions include, trying different disks, IIRC, you did. Try a PATA disk. reopen your ticket, go through the motions that Arca Noae goes through and eventually David will notice this problem and might be able to code a fix for you.
Remember, Arca Noae is a small organization, your problem is often geometry related, Arca Noae will go through the obvious fixes first due to time and often that's all that is needed. And David A. is the only developer working on this stuff and has limited time.
In my experience, trouble shooting starts with David thinking the hardware support is fine, after a bit he realizes it isn't, he then tries to create a fix. Sometimes fixes aren't possible but a bit of searching shows Linux had problems with these controllers and the problems were fixed, so it is likely Arca Noae can come up with a fix.
Don't be impatient and remember Arca Noae has limited resources but do do pretty good at fixing these kinds of things and since your hardware isn't that old, with luck they will come up with a fix but time is always a problem and expecting a fix in 2 days is asking a lot.

12
Games / Re: DOS VDM - USB and Game port Gamepad support
« on: January 14, 2022, 04:50:01 pm »
Configure likely found the new function in pthreads, which I don't want to update on the one install as if distributing software, it is a good idea if it works with netlabs-rel.
As for testing the new usbcalls, it is good to try it to see if there are issues to report.
It is interesting that it changed the failure on the netlabs-rel install.

13
Games / Re: DOS VDM - USB and Game port Gamepad support
« on: January 14, 2022, 06:06:23 am »
Should have looked in popuplog.os2. Problem is the pthread library being newer in netlabs-exp.
Code: [Select]
01-13-2022  20:34:18  SYS2070  PID 0065  TID 0001  Slot 0081
K:\WORK\HIDAPITESTER\HIDAPITESTER.EXE
USB100->PTHR01._pthread_condattr_init
127
Threw me off as I expected something like,
Code: [Select]
[K:\work\hidapitester]hidapitester  --list
A non-recoverable error occurred.  The process ended.
Which is the result after I upgraded USBCALLS.DLL to 12.11. No trp, no entry in popuplog.

Edit: Above was with netlabs-rel. Upgrading usbcalls.dll on a netlabs-exp install things do work. The only USBCALLS.DLL installed here is in \os2\dll.

14
Games / Re: DOS VDM - USB and Game port Gamepad support
« on: January 13, 2022, 07:20:54 pm »
Rebooted to my netlabs.exp install, after upgrading and installing hidapi, things work as expected. Now to figure out what is different.

15
Games / Re: DOS VDM - USB and Game port Gamepad support
« on: January 13, 2022, 06:39:59 pm »
https://github.com/josch1710/hidapi
I'll try booting to my netlabs-exp partition later and test there. Maybe a reboot is needed as I can't think of why things would be different here then there.
What architecture are you using? Here, libusb1 is Pentium4 and the Yum installed usbcalls-dev is i686. It shouldn't matter but you never know.

Pages: [1] 2 3 ... 222