PlexyDesk Extended Support Release For Mac

Introduction

The extended support release aims to bring PlexyDesk for older Apple computers. Installing a new Gnu/Linux or FreeBSD distribution on vintage Apple computers isn't easy, it requires the user to know many things, from installing to configuring and tweaking the system until it works. Even so the modern graphics and distribution design seems to be moving further away from the legacy computer's, Eventually they might stop working on them. Our goal here is to make sure PlexyDesk supports and runs on legacy operating systems so that users have access to modern services and tools even inside an outdated operating system but within a familiar environment. And we are committed to continue this project until the last mac is dead.

Porting PlexyDesk to run on legacy Macs posses many challenges, specially due to outdated Toolchain's and insecure system components. As part of this project we will create the required Toolchain's for PowerPC and Intel platforms which can support modern language features required by our project. This is essential to maintain a common feature set across new and old platforms.

Technical Feasibility.

At the time of writing, PlexyDesk must meet the following minimum requirements build on  Mac OS X Lion (10.7) or Higher.

(A). Compiler that supports Modern C++11 standards.(Clang / Apple or GNU GCC 4.7 or higher)

(B). Qt 5 Toolkit or Greater

(C). CFNetwork (API 10.5 or Higher)

(D). XCode 5 or Greater

(E). x86 64bit CPU (i386 targets are not supported)

(G). Objective-C/C++ 2.0

(H). Cocoa UI framework and OpenGL 2.0

We are targeting  Apple Mac OS X 10.4 as the minimum OS level for this project, and comes with the following system configuration by default.

(A). Apple GCC 4.0 with no support for C++11.

(B). Qt 4.2 Toolkit binary installer

(C). Xcode 2.5

(D). PowerPC, i386 Targets are supported

(E). CMake 3.3 Universal.

Following is a summary of the test results of the experiment we did, to check the feasibility of getting PlexyDesk on Older Macs. With the available resources we targeted Mac OS X 10.4 PowerPC as the minimum system to carry out our testing.

Toolchain Upgrade

It was possible to upgrade the compiler by recompiling gcc 4.7 with C++11 support. Compiling the latest GCC should also be possible. We experimented with compilers from mac ports and brew project on Snow Leopard (mac os x 10.6), but the resulting libraries are not portable to lower targets like Tiger, This is due to the unsupported load command added to the libstdc++.6.dylib.

Qt Toolkit

We managed to recompile Qt 4.8 as a minimum to support certain graphics improvements but it does require patching the upstream source code to fix text layout issues and API compatibility. The binary targets were built for both Intel and PowerPC architectures. We also enabled Carbon build and disabled Cocoa for this experiment.

Xcode Support

PlexyDesk Build system can be patched to support Xcode 2.5 or later resulting in binaries that doesn't need to support RPATH

Target Architecture

With the correct changes we can build PlexyDesk binaries (executable binaries, Frameworks and dylibs) for PowerPC 32bit and Intel x86 (i386 and x86_64).

Target OS emulation

We downloaded the legal installers for Leopard (10.5) from Apple developer download portal and Mac OS X Tiger came preinstalled on one of our test machines. We had no legitimate source to obtain Mac OS X versions preceding Tiger. So we decided to emulate some operating systems on Linux using Qemu/KVM on a modern Apple Computer. Since PearPC  and such are not stable enough for this kind of work. Unfortunately we can only get Snow Leopard (10.6) to boot and function normally on Qemu/KVM. So binaries were built on Snow Leopard (10.6) targeting Mac OS X 10.4 or latter using Apple SDK/10.4. Tests were carried out on Leopard and Tiger on real Apple Computers.

Target user survey

We ran a quick survey on an active Facebook group "PowerPC For Ever", asking its members if they want to have PlexyDesk on their PowerPC Mac's. 120 people saw the post, and 20 people responded to the survey. Out of the 20 18 wanted PlexyDesk on their PowerPC Mac's and two members voted against it.

Target Resource Requirements

To make the project sustainable We need a continuous supply of hardware resources and developer time, to fix and improve the performance, add platform specific features and for continuous integration and quality assurance. Following resources were identified as the lacking requirements.

(A). Apple Hardware - Computers targeting each Apple supported architecture, Namely PowerPC G3, G4, G5 and Intel Core Solo, Core 2 Duo

(B). Developer time - 15 Hours Per week of development time.

(C). Code and Binary Hosting - Git repository and binary release download page.

(D). Original Operating System Disks - Mac OS X Panther (10.3), Mac OS X Tiger 10.4 (Retail)

(E). Power - 5KWh Per day for running the build and development infrastructure continuously.

(C). Bandwidth - 3GB's per week.

Project Features.

As part of this project we aim to create a well-defined release process for creating PlexyDesk binaries for Mac OS X legacy operating systems. This will include various  binary releases produced on a daily basis as new changes are added and Main releases when major milestones are reached. We will also include a well-defined process for requesting user feedback, bug reports and test reports. We will also create a source code repository hosted on github.com where anyone can contribute freely or fork the project to create something even more amazing. Apart from the main product we also want to maintain the tool-chains, build scripts and user and developer documentation so they can easily create their own builds if they prefer.

Release Schedule

We plan to make two major releases every six months. This cycle can improve if we get more resources and funding to speed up development. Major release should be considered stable, Q/A testing will be performed on all major supported operating systems, and devices before the release is announced. Minor release will be made every two weeks, and should be considered unstable, as it may contain unstable changes, memory leaks, non finalized API and build system and compile time issues. Daily releases will be done by our continuous automation bot every day, based on the changes made the binary might not be available for all platforms if the build bot encounters errors, instead a bug will be filed and a developer will attend to fixing the build errors so daily releases can continue.

Supported Features.

PlexyDesk is currently under active development, releasing and adding new features every week. Here we list some of the stable and finalized features available in the current binary builds, released to the public.

Changing and Switching Default System Wallpapers.

When Plexydesk starts it will index and load the default wallpapers in your system, these wallpapers are mostly likely bundled with your operating system. It will also cache the wallpapers you drag and drop from the internet, wallpapers you downloaded from the Pixabay Dialog, or from your system file manager. To change the wallpaper open the wallpaper dialog and simply click on the wallpaper you want to change. 

Following features are planned for the future releases of PlexyDesk.

- Desktop Preview

- Animations and Transitions. 

- Background Blur (with GPU when available or cached with CPU when hardware support is not available).

- Desktop wallpaper auto change 

- Time based wallpaper switching.

Desktop Calendar.

A simple Desktop calendar to record and keep track of important tasks. The current calendar is very simple and does not integrate with any of the services like Google or Outlook. We have many plans for it and we are actively working on the required back end components to make it work. At the current state don't expect too much from this calendar App.

We are working on the following features for the calendar.

- Online Sync support, including Microsoft OutLook, Mobile Me (only on Apple).

- Contact Management

- System Alerts.

- Auto sync with system calendar.

Desktop Notes.

PlexyDesk comes with a basic Notes app, which lets you write quick notes and keep it on your desktop, it supports bidirectional text rendering on all platforms that supports it. It also supports basic features like Apple Clipboard support. We also support color coding your notes so that it's easier to organize your notes on your desktop.

Notes rendering is very basic and we want to improve it and use or own custom layout engine, CoreText on mac and Pango + harfbuzz on Linux. This will let you write very nice looking notes that are aesthetically pleasing. 

Search Wallpapers on PixaBay

PlexyDesk supports searching and using stunning peer reviewed Hi-definition wallpapers from Pixbay.com. To activate this feature you need to login using the Plexydesk account you registered at the time of downloading the binary, when the account dialog asks for a user name and a password, simply give the user name and password from Plexydesk.org. This will let you download high quality wallpapers from Pixabay.

Desktop Timer.

PlexyDesk supports a basic desktop timer to quickly add a timer for your needs. This only the start, we have tons of features planned for it, like the ability to time log, and keep track of your work.

The Timer and clock needs many improvements, especially the look and feel, timezone support, and adding clocks based on country.

We have a good start, and big plans, If we are to reach it we need your support, so join us in creating the ultimate desktop shell for old and new Mac's for years to come. 

Build Instructions

Compiling PlexyDesk should be very easy due to the changes we made over the past few weeks, please follow the instructions listed in our developer wiki page linked below. If run into any issues during compiling PlexyDesk, please feel free to contact us for help, (it's free), we are still fixing some issues and setting up the build bot for stable daily builds and also looking at ways to publicly distribute the binaries to everyone for free, until our deployment system is ready and functional, you can compile Plexydesk your self, or get the binary release by donating to Plexydesk. plexydesk build instructions for legacy Macs

Project Funding and Contributions

Currently We as a team do not have the funding needed to maintain the project for long. But W are committed to creating the initial efforts needed to bootstrap the project and complete the port so users can start using it. We really hope that interested Mac communities will help us fund the project to its completion. In the meantime We will continue with all our resources to complete what we have started.

Hardware and Software Donations

( A.) We need legacy Apple computers that can run Panther.

( B.) Original Install disks for Panther

( C.) Original Retail install disk for Tiger

Urgent Hardware Requirements.

Following table outlines the funding goals and the funding status of the project. You many contribute and donate any amount you wish to fund this project. Such funding can help us keep this project free for life. There are many ways you can help our campaign.

1.) Support us on patreon plexydesk on patreon

2.) Download a binary for 0.99

3.) or Buy the extended release subscription for 4.99.

4.) donate your old hardware. (if you wish to donate a hardware just click the "contact us" button on the footer, and send a message and we will email you back with the shipping instructions, based on the developer location) 

plexydesk
Funding Goal Funding Estimation Current Donations Funding Status Comments

Mac Mini G4

200USD 0 USD
1.6%
Doners
We need a Mac Mini Computer with a PowerPC processor for the continuous integration build server. This costs about 100 to 200 USD with shipping

iBook G3

100 USD 0 USD
0%
0 Doners
We need an iBook capable of running Panther or older to help with porting PlexyDesk to operating systems before Tiger. Currently it's impossible since we don't have access to such a machine.

Get PlexyDesk ESR for 0.99$ and Support Our Mission

You may use PayPal or your credit card to make your contribution with Paddle.com Payment Service.