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 - Dave Yeo

Pages: [1] 2 3 4
1
Comments, Suggestions & Questions / Another bad gif
« on: October 30, 2024, 05:43:25 am »
I notice on the Personal Messages Index page, lots of CPU activity. Seems to be this gif, https://www.os2world.com/forum/Themes/default/images/sort_up.gif. Martin, can you rebuild this gif or change it to a png? Thanks

2
Internet / otter-browser, Qt5 build
« on: September 15, 2024, 04:37:47 am »
Ok, up till now when I've built Otter, it crashes on startup. Andy reported success with Dooble and not running acpi-daemon. Testing, the otter browser starts up and runs fairly well without acpi-daemon running. It is crashy, I tried this post in Otter and probably uploading the file crashed the browser.
Anyways, for testing purposes, here is today's build of the Otter browser from the main repository, no OS/2 patches yet, it runs surprisingly well considering. It is using the same webengine as Dooble-Qt5 so some pages will not display correctly.
Edit: fix the markup

3
Internet / Dooble releases-Qt6
« on: August 22, 2024, 07:43:14 am »
Here's a quick build of the latest Dooble release, Qt6 version. Needs Paul's Qt6 environment.
I'll package it better later as well as build a Qt5 RPM.
See the release notes under help.
Curious if people want any translations included in the package, or perhaps a separate package of translations. There's 24 MB's of translations so best to not include all of them. Not totally sure how they work either. Hopefully simply by locale.

4
General Discussion / Article on the MS OS/2 2.0 preview at OS2Museum
« on: March 06, 2024, 05:11:35 am »
Michal got hold of the preview edition of MS OS/2 2.0 plus SDK and wrote an interesting article,
http://www.os2museum.com/wp/the-future-that-never-was/

5
Hardware / OpenWatcom Discussion
« on: February 01, 2024, 08:11:36 am »
....One version of Watcom being incompatible with the next and unfortunately picking the "official" version does not help because it is the one that is buggy.

Where are you getting an official version of OW? Last was 1.9 and there are betas on netlabs that seem as compatible with that as any.
There is Jiri's fork, I doubt that he tests OS/2.

6
General Discussion / Reg article on CUA
« on: January 25, 2024, 03:35:26 am »
Somewhat interesting article on the CUA at the Reg,
https://www.theregister.com/2024/01/24/rise_and_fall_of_cua/

7
Programming / Duplicate symbol error
« on: October 01, 2023, 01:07:51 am »
So I tried to compile the latest smplayer, it went pretty well, a couple of minor fixes, until it got to screensaver.cpp where it tried to take the *nix path of disabling power savings.
Investigation showed that winscreensaver.cpp had the code to disable Doodles screensaver, so fixed screensaver.cpp/h by changing all the #ifdef Q_OS_WIN to #if defined (Q_OS_WIN) || defined (Q_OS_OS2), made sure that winscreensaver.cpp was compiled on OS/2 and screensaver.cpp compiled fine. Linking died with,
Code: [Select]
weakld: K:\work\smplayer\build\screensaver.obj - error: Duplicate symbol '__ZN11ScreenSaverD2Ev' ('__ZN11ScreenSaverD2Ev').
weakld: K:\work\smplayer\build\screensaver.obj - error: Symbol previosly defined in this module.
weakld: info: fFlags new 0x0001  fFlags old 0x0001 (PUBLIC).
emxomfld: weak prelinker failed. (rc=-1)
make.exe: *** [Makefile:794: smplayer.exe] Error 1

K:\work\smplayer\build>c++filt __ZN11ScreenSaverD2Ev
ScreenSaver::~ScreenSaver()

I don't understand where the duplicate symbol is coming from. The code,
Code: [Select]
#include "screensaver.h"

#if defined (Q_OS_WIN) || defined (Q_OS_OS2)
#include "winscreensaver.h"
#endif
#ifdef OS_UNIX_NOT_MAC
#include "powersaving.h"
#endif
#ifdef Q_OS_MACX
#include "powersaving_mac.h"
#endif

ScreenSaver::ScreenSaver(QObject * parent) : QObject(parent) {
#if defined (Q_OS_WIN) || defined (Q_OS_OS2)
win_screensaver = new WinScreenSaver();
#else
power_saving = new PowerSaving(this);
#endif
}

ScreenSaver::~ScreenSaver() {
#if defined (Q_OS_WIN) || defined (Q_OS_OS2)
delete win_screensaver;
#endif
}

void ScreenSaver::enable() {
#if defined (Q_OS_WIN) || defined (Q_OS_OS2)
win_screensaver->enable();
#else
power_saving->uninhibit();
#endif
}

void ScreenSaver::disable() {
#if defined (Q_OS_WIN) || defined (Q_OS_OS2)
win_screensaver->disable();
#else
power_saving->inhibit();
#endif
}

#include "moc_screensaver.cpp"

screensaver.h
Code: [Select]
#ifndef SCREENSAVER_H
#define SCREENSAVER_H

#include <QObject>

class PowerSaving;
class WinScreenSaver;

class ScreenSaver : public QObject
{
        Q_OBJECT

public:
        ScreenSaver(QObject * parent = 0);
        ~ScreenSaver();

public slots:
        void enable();
        void disable();

protected:
#if defined (Q_OS_WIN) || defined (Q_OS_OS2)
        WinScreenSaver * win_screensaver;
#else
        PowerSaving * power_saving;
#endif
};

#endif

Winscreensaver.cpp is at https://github.com/smplayer-dev/smplayer/blob/master/src/winscreensaver.cpp change the .cpp to h for the header.
Ideas?

8
Programming / dart.h
« on: September 26, 2023, 09:53:43 pm »
Seems this has been discussed before. Where to find dart.h as I'm building MPlayer and its configure script tests for it.

9
Programming / Building a Dooble RPM
« on: April 19, 2023, 03:36:52 am »
Hi, so I've revisited building an RPM, which I haven't had luck with, this time with Dooble.
Downloaded the latest Dooble source RPM, dooble-2022.10.15-1.oc00.src.rpm and used unrpm to expand it. Followed the directions at http://trac.netlabs.org/rpm/wiki/RpmHowToPackagers to set up my environment, basically downloaded required packages and created %HOME%\.rpmmacros containing "%_topdir h:/rpmbuild" without the quotes. H: is my ramdisk. Ran rpmbuild as the page recommends, results
Code: [Select]
H:\rpmbuild>rpmbuild -ba dooble.spec
error: line 13: Unknown tag: %scm_source github https://github.com/bitwiseworks/
dooble-os2 2022.10.15-os2
or
Code: [Select]
H:\dooble_rpm>rpmbuild -ba dooble.spec
error: line 13: Unknown tag: %scm_source github https://github.com/bitwiseworks/
dooble-os2 2022.10.15-os2

The RPM page clearly says that %scm_source is a valid tag,
Quote
%scm_source

This macro is intended as a replacement for the standard Source: tag. The format is as follows:

%scm_source SCM URL REV

where SCM is the type of the source code management system (currently supported ones are svn, git and github), URL is the full URL of the source code repository for the given program and REV is the revision to use.

Any ideas where I have gone wrong? I expected a dooble rpm pretty much identical to the Bitwise release, then I could adjust it as needed. I've run into the same issue with trying to build other packages hosted on Github.

10
Web applications / Dooble releases, Qt5 builds
« on: February 20, 2023, 02:17:05 am »
Hi here's the latest release of Dooble compiled for Qt5. See the release notes under Help for what's new.
https://c.gmx.com/@744346040190108571/HQZnnDywT-ejiK1nqp1OYw

11
Hardware / Displayport?
« on: August 05, 2022, 07:34:37 am »
So this computer I'm using has a Sandybridge/Ivybridge graphics controller with a VGA and a Displayport ports, monitor has VGA and DVI ports and supports 1920x1200 as its native resolution.
For quite a while I was simply using the VGA connection, everything worked fine but slightly blurry.
Then I came across a Displayport to DVI passive connector so I tried that.
While the graphics were sharper, especially text mode, I came across these limitations. The screensaver would put the monitor to sleep but it would not wake up, forcing a reboot to awaken it. Same with SNAP and Panorama. Nothing I tried helped here, worked fine under Linux, which reported a HDMI connection. The other thing was I tried using Xfree86 using the VESA (VBE) driver, it simply did not find a graphics card at all, which was weird. Works fine with the VGA connector and an older Panorama/SNAP, newer ones seem to have done something to support UEFI where switching back to the WPS fails, a bit of drawing and then a full hang.
Just wondering about others experience with Displayport and OS/2. Perhaps a monitor that supports Displayport would be better, it seems that Displayport falls back to a DVI compatible protocol when used with a passive converter.

12
Programming / getting a single keypress?
« on: May 16, 2022, 06:00:21 am »
Trying to fix the terminal control in mpg123 so things like pause work.
Example program which works on other systems but not on OS/2, at that sometimes hangs the system.
Ideas to get this to work?
Code: [Select]

#include <stdlib.h>
#include <stdio.h>
#include <fcntl.h>
#include <sys/select.h>
#include <unistd.h>
#include <termios.h>

int term_fd = -1;

int get_key(int do_delay, char *val)
{
fd_set r;
struct timeval t;
t.tv_sec=0;
t.tv_usec=(do_delay) ? 1000 : 0;
FD_ZERO(&r);
FD_SET(term_fd,&r);
int n = select(term_fd+1,&r,NULL,NULL,&t);
if(n > 0 && FD_ISSET(term_fd,&r) && read(term_fd,val,1) == 1)
return 1;
return 0;
}


int main(int argc, char **argv)
{
if(argc >= 2)
term_fd = open("/dev/tty", O_RDONLY);
else
term_fd = STDIN_FILENO;
if(term_fd < 0)
{
perror("failure opening terminal input");
return 1;
}
fprintf(stderr, "terminal fd: %d\n", term_fd);

struct termios old_tio;
int termsetup = 0;
if(!tcgetattr(term_fd, &old_tio))
{
fprintf(stderr, "proper terminal setup\n");
struct termios tio = old_tio;
tio.c_lflag &= ~(ICANON|ECHO);
tio.c_cc[VMIN] = 1;
tio.c_cc[VTIME] = 0;
tcsetattr(term_fd,TCSANOW,&tio);
termsetup = 1;
}

char val = 0;
while(val != 'q')
{
if(get_key(1, &val))
fprintf(stderr, "got key: %c\n", val);
}

if(termsetup)
tcsetattr(term_fd,TCSAFLUSH,&old_tio);
if(term_fd > 0)
close(term_fd);
return 0;
}


13
Programming / i686 vs Pentium 4
« on: March 06, 2022, 07:56:47 am »
I know this has been discussed before, but I think we should revisit as Bitwise has decided to force us to the Netburst (Pentium 4) architecture and it is easier to make an argument here rather then at Github which no longer works well on out old browsers. ideally would be to make arguments here and then reference this thread on Github.
The main difference between the various i386 architectures is how things are optimized and whether simd (MMX, SSE, SSE2) intrinsic's are used. 

14
Programming / Building SDL2 (and later linking against it)
« on: February 06, 2022, 06:55:08 am »
OK, I almost have SDL2 building. Using this configure command,
Code: [Select]
sh ../SDL2-os2/configure 'LDFLAGS=-Zomf -Zhigh-mem -Zmap -Zbin-files' LIBS=-lcx 'CPPFLAGS=-idirafter=k:/usr/include/os2tk45'
Configure outputs,
Code: [Select]
SDL2 Configure Summary:
Building Shared Libraries
Building Static Libraries
Enabled modules : atomic audio video render events joystick haptic hidapi sensor power filesystem threads timers file loadso cpuinfo assembly
Assembly Math   : mmx 3dnow sse
Audio drivers   : OS/2
Video drivers   : OS/2
Input drivers   :
Enable virtual joystick APIs : YES
Using libsamplerate : NO
Using libudev       : NO
Using dbus          : NO
Using ime           : NO
Using ibus          : NO
Using fcitx         : NO

So it looks like it is pulling hidapi for joystick use. Possibly the OS/2 joystick support needs disabling.
Unluckily the build dies here,
Code: [Select]
libtool: compile:  gcc.exe -g -O3 -idirafter=k:/usr/include/os2tk45 -DUSING_GENERATED_CONFIG_H -Iinclude -IK:/work/SDL2-os2/include -idirafter K:/work/SDL2-os2/src/video/khronos -mmmx -m3dnow -msse -Wall -fno-strict-aliasing -DOS2EMX_PLAIN_CHAR -Wdeclaration-after-statement -Werror=declaration-after-statement -D_REENTRANT -I/@unixroot/usr/include/libusb-1.0 -MMD -MT build/SDL_os2dive.lo -c K:/work/SDL2-os2/src/video/os2/SDL_os2dive.c  -DDLL_EXPORT -DPIC -o build/.lib/SDL_os2dive.o
K:/work/SDL2-os2/src/video/os2/SDL_os2dive.c:27:10: fatal error: mmioos2.h: No such file or directory
   27 | #include <mmioos2.h>
      |          ^~~~~~~~~~~
compilation terminated.
make: *** [build/SDL_os2dive.lo] Error 1

The CPPFLAGS=-idirafter=k:/usr/include/os2tk45 should put the toolkit last in the include path, yet mmioos2.h isn't found.

15
Internet / Simple Browser revisited.
« on: December 29, 2021, 04:30:20 am »
Starting a new thread about the latest simple browser as the last one got long and wandering.
I just realized that if you install qt5-qtwebengine-examples 5.15.2-1 (netlabs-rel) along with its dependencies (I'd suggest the corresponding debuginfo files as well), we get,
@unixroot\usr\lib\qt5\examples\webenginewidgets\simplebrowser\widgets\simplebrowser\simplebrowser.exe.
This is a newer one then the one that escaped and at least supports copy and paste for passwords and such. Still a simple browser with no bookmarks, url completion and so on but it displays a lot of sites that our other browsers puke on.
You will have to mark as much to load high as possible. I started with (in @unixroot\usr\lib)
Code: [Select]
highmem -c qt5*dll
Then discovered trying to play a youtube video consistently crashed with a sigtrap from code protecting allocating too much memory or such, so I did,
Code: [Select]
highmem -c av*dll
to mark all the FFmpeg DLL's to load high, this includes the ones used by Mozilla, probably a good idea on its own. There's likely a few more I haven't got around to as they're small.
The browser is still unstable, and it is slow, too slow on this 3.1Ghz I5 to play Youtube videos. Still for looking at the occasional page, it seems to work.
I'd also advise setting the VIRTUALADDRESSLIMIT as high as possible, 3072 here. The first simplebrowser came with a script that set a couple of environment variables, "KAI_AUTOMODE=DART" which is likely already set in ArcaOS and "QTWEBENGINE_CHROMIUM_FLAGS=--single-process" which could be set in the program object. I've tried with and without the "--single-process" and didn't notice much difference in my limited testing.
As said, it is crashy and has crashed silently a few times as well as locking up the computer. Also depressing when sites still complain that it is old and unsupported, while rendering the page fine.
 

Pages: [1] 2 3 4