lumina-desktop / lumina

Lumina Desktop Environment
http://lumina-desktop.org
BSD 3-Clause "New" or "Revised" License
531 stars 116 forks source link

Porting to XStreamOS/illumos #723

Open gbulfon opened 4 years ago

gbulfon commented 4 years ago

Hi, I'm working to port and build Lumina to our XStreamOS/illumos based distribution. Other than updating our Qt5 package to latest, required by Lumina, I'm now stuck to the errors generated by specific OS implementations in libLumina/LuminaOS which obviously does not contain a specific implementation for illumos/SunOS. Would you suggest a best place to start with? One of the BSD or Linux?

Thanks! Gabriele

q5sys commented 4 years ago

I'd say start with the FreeBSD one and see how that goes. If you're running into errors, let us know what they are. Also, does XStreamOS have an ID that we could use in an IFDEF if that's the only possibility to work around any errors?

gbulfon commented 4 years ago

Thanks, that's what I thought. Sure XStreamOS have an ID, that is usually something like SunOS or Solaris. Can you tell me where in the sources I can see how the correct implementation is selected for FreeBSD?

beanpole135 commented 4 years ago

The primary OS-detection file is here: https://github.com/lumina-desktop/lumina/blob/master/src-qt5/OS-detect.pri

When you run "qmake" on any of the project files, it will print out your OS "tag" and architecture definitions so that you/we can add those into the section system as needed.

Once that file determines your OS (or you hard-code a particular OS to build for), then all the OS-specific interactions are in the LuminaOS-[OSname].cpp files in this directory here: https://github.com/lumina-desktop/lumina/tree/master/src-qt5/core/libLumina

There is even a template OS file in there that you can use as the basis for a new OS definition file as needed.

gbulfon commented 4 years ago

Is this what you mean?

Project MESSAGE: Build OS Info: SunOS, i86pc, XStreamOS

To make it acceptable by other illumos distros, I may use SunOS

beanpole135 commented 4 years ago

That is exactly what I mean. Those correspond to the following values in our detection system: OS: SunOS Architecture: i86pc Version String: XStreamOS

For best results, I would copy the OS template file and name it LuminaOS-SunOS.cpp and then fill out the options needed for your OS support. You can obviously use the FreeBSD file as your template instead, since I think a lot of the FreeBSD support is identical on SunOS, but you will want to check it to make sure.

gbulfon commented 4 years ago

Thanks a lot, I will work on it and get back to you ;)

Gabriele

beanpole135 commented 4 years ago

Also, If you look in https://github.com/lumina-desktop/lumina/blob/master/src-qt5/OS-detect.pri you can see a quick switch based around that OS detection to change the default paths/dirs for installation and such. If you are having to manually set any of those L_* variables it is probably a good idea to just define them right there for you by default.

gbulfon commented 4 years ago

Yes I've seen that ;) Thanks!

gbulfon commented 4 years ago

First problem: how should I change OS-detect.pri for my system? The switch starts with equals(QMAKE_HOST.os, "DragonFly") then goes on like else : freebsd-*

Tried both else : SunOS and else : sunos-* and adding :

    L_SESSDIR=/usr/share/xsessions
    OS=SunOS
    LIBS += -L/usr/lib -L/lib

but messages always detects as "OS Unknown", though intial lines says: Project MESSAGE: Build OS Info: SunOS, i86pc, XStreamOS Project MESSAGE: - Detected Qt Version: 5.14.1 Project MESSAGE: Build Settings Loaded: Unknown;

I don't get how to make the else part, I mean, equals(QMAKE_HOST.os, "DragonFly") check the QMAKE_HOST.os exactly, then else parts looks for lower case names like freebsd-*

Any help?

gbulfon commented 4 years ago

BTW, I'm going on by using the "else unknown" as my SunOS default. I got the build make install into my proto area. I'm trying to replace all the "usr/local" stuff into "usr". Not clear what to do in my "else unknown" of the pri file: changing PREFIX or DESTDIR does not work. Directions? :)

beanpole135 commented 4 years ago

The lowercase declarations are the compiler definitions within Qt (sometimes easier to use, but harder to figure out). In your case, use this: else equals(QMAKE_HOST.os, "SunOS")

beanpole135 commented 4 years ago

Don't recall exactly - but you might need the colon between "else" and "equals" - like on the other lines.

q5sys commented 2 years ago

@gbulfon did you ever figure this out? Or did you move on to another desktop? I dont want to close this if you're still running into this problem.

gbulfon commented 2 years ago

Hi, at the moment the desktop project is freezed beacuse we're more concentrated on our storage distribution and other products. It is my wish to continue the desktop project in the near future, so please keep it open if you can.   Thanks for contactint me,   Gabriele

 

Gabriele Bulfon - Sonicle S.r.l.

Tel +39 028246016 - Fax +39 028243880 via Fermi, 20 - 20057 - Assago / Milano / ITALY http://www.sonicle.com

 

Da: q5sys (JT) @.> A: lumina-desktop/lumina @.> Cc: Gabriele Bulfon @.>Mention @.> Data: 4 ottobre 2021 2.43.18 CEST Oggetto: Re: [lumina-desktop/lumina] Porting to XStreamOS/illumos (#723)

@gbulfon did you ever figure this out? Or did you move on to another desktop? I dont want to close this if you're still running into this problem. — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe. Triage notifications on the go with GitHub Mobile for iOS or Android.