Author Topic: LarsenCommander - new test version  (Read 35874 times)

Martin Iturbide

  • OS2World NewsMaster
  • Global Moderator
  • Hero Member
  • *****
  • Posts: 5189
  • Karma: +44/-1
  • Your Friend Wil Declares...
    • View Profile
    • Martin's Personal Blog
Re: LarsenCommander - new test version
« Reply #45 on: February 26, 2025, 01:20:11 pm »
Ouch, I don't have access to the source code at netlabs :-(.
It this one? https://trac.netlabs.org/openjfs/browser#branches
I can watch it without being logged on. Maybe it was the upppercase on the URL.

Regards
Martin Iturbide
OS2World NewsMaster
... just share the dream.

Andi B.

  • Hero Member
  • *****
  • Posts: 898
  • Karma: +16/-2
    • View Profile
Re: LarsenCommander - new test version
« Reply #46 on: February 26, 2025, 01:54:30 pm »
Ouch, I don't have access to the source code at netlabs :-(.
It this one? https://trac.netlabs.org/openjfs/browser#branches
I can watch it without being logged on. Maybe it was the upppercase on the URL.

Regards

I was at the main trac page and even logged in and did not found the usual 'source code' button. Just found out netlabs has 2 jfs projects. One jfs another openjfs. I was here - https://trac.netlabs.org/jfs while correct link should be - https://trac.netlabs.org/openjfs/.

Last check in seems to were 21 years ago. Not sure how much of this old code is still in use. Thanks anyway.

Martin Iturbide

  • OS2World NewsMaster
  • Global Moderator
  • Hero Member
  • *****
  • Posts: 5189
  • Karma: +44/-1
  • Your Friend Wil Declares...
    • View Profile
    • Martin's Personal Blog
Re: LarsenCommander - new test version
« Reply #47 on: February 26, 2025, 05:23:14 pm »
Hi
I was at the main trac page and even logged in and did not found the usual 'source code' button. Just found out netlabs has 2 jfs projects. One jfs another openjfs. I was here - https://trac.netlabs.org/jfs while correct link should be - https://trac.netlabs.org/openjfs/.

Last check in seems to were 21 years ago. Not sure how much of this old code is still in use. Thanks anyway.

I get it now.
- OpenJFS is based in GPL code released by IBM. IBM released JFS under the GPL license to be merge with Linux.
- JFS. Is the IBM driver for OS/2 and it is evolution that is under... I have no idea.. possible under the IBM DDK license that is incompatible with open source. IBM DDK license allows you to create a freeware driver binary, but does not allow you to publicly share the source code. What can be done with this license (as an alternative) it to have a collaborative close source project with one organization (like Netlabs) taking the ownership of the changes, and every contributor should agree to the IBM DDK.

Sorry of the long license story.

Regards
Martin Iturbide
OS2World NewsMaster
... just share the dream.

Dave Yeo

  • Hero Member
  • *****
  • Posts: 5272
  • Karma: +122/-1
    • View Profile
Re: LarsenCommander - new test version
« Reply #48 on: February 26, 2025, 05:40:15 pm »
There's also https://github.com/OS2World/DRV-JFS-GPL which is the 1st IBM release of the GPL code and contains the OS/2 branch. Likely OpenJFS is based on this.

Lars

  • Hero Member
  • *****
  • Posts: 1400
  • Karma: +70/-0
    • View Profile
Re: LarsenCommander - new test version
« Reply #49 on: February 26, 2025, 07:58:10 pm »
Here is code to prove it works at least with JFS (I have all my files on JFS partitions):

Code: [Select]
#define INCL_BASE
#include <os2.h>
#include <stdio.h>

#define FIL_QUERYALLEAS 4

#define BUFSIZE 1024UL * 128


int main(int argc,char *argv[])
{
   EAOP2 eaop={0};
   PFEA2 pFEA = NULL;
   ULONG oNextEntryOffset;
   APIRET rc = NO_ERROR;
   ULONG i=0;
   PUCHAR pHexValueByte = NULL;

   if (argc != 2) {
      return 1;
   } /* endif */

  rc = DosAllocMem((PPVOID)&eaop.fpFEA2List,BUFSIZE,PAG_COMMIT | PAG_READ | PAG_WRITE);

  if (NO_ERROR == rc) {
     eaop.fpFEA2List->cbList = BUFSIZE;
     rc = DosQueryPathInfo(argv[1],FIL_QUERYALLEAS,&eaop,sizeof(eaop));
     if (NO_ERROR == rc && eaop.fpFEA2List->cbList > sizeof(eaop.fpFEA2List->cbList)) {
        pFEA = eaop.fpFEA2List->list;
        do {
           oNextEntryOffset = pFEA->oNextEntryOffset;
           printf("Name:%s,Value:",pFEA->szName);
           pHexValueByte = pFEA->szName+sizeof(UCHAR)+pFEA->cbName;
           for (i=0;i<pFEA->cbValue;i++,pHexValueByte++ ) {
              printf("%.2x ",*pHexValueByte);
           } /* endfor */
           printf("\n");
           pFEA = (PFEA2)((PCHAR)pFEA + oNextEntryOffset);
        } while (oNextEntryOffset  ); /* enddo */
     } /* endif */
     rc = DosFreeMem(eaop.fpFEA2List);
  } /* endif */

  return 0;
}

Pass it a filename and it will print out the EA info as hex bytes (not awfully helpful, obviously but you can crosscheck with what the WPS displays).
« Last Edit: February 26, 2025, 08:02:00 pm by Lars »