Blog: Decorating the shell tree

Here you can discuss ReactOS related topics.

Moderator: Moderator Team

Post Reply
gigaherz
Posts: 92
Joined: Sat Jan 21, 2006 9:26 pm

Blog: Decorating the shell tree

Post by gigaherz » Wed Dec 24, 2014 8:37 pm


Konata
Posts: 391
Joined: Sun Apr 20, 2014 8:54 pm

Re: Blog: Decorating the shell tree

Post by Konata » Thu Dec 25, 2014 5:11 am

Working on the shell sounds so complex, I'd love to see how you guys sort all that out (some kind of visual flowchart?).

An update makes a great christmas present, even if we get one every week, haha.

PurpleGurl
Posts: 1774
Joined: Fri Aug 07, 2009 5:11 am
Location: USA

Re: Blog: Decorating the shell tree

Post by PurpleGurl » Thu Dec 25, 2014 8:55 am

There already is a flowchart around somewhere. Things are progressing as I expected. The initial explorer commits to trunk were just the beginning. It will continue to take time to get all the bugs, kinks, and oversights out, as the recent changes in trunk demonstrate. Some of it is accidental, like Wine-Syncing over improved code, and other is related to older code that indirectly ties in or expects to do things the old way. That is to be expected since the old shell was in place for so long. But at least there are less bugs to have to find.

A side thought is that if someone wants to make a more responsive, lighter-weight, shell in the future for an experimental fork, here is a way to do some of it. The alternate functions could share variables with the wrappers or whatever that give more Windows compatibility if applications need them, and made in such a way to where the make-up DLLs would not be necessary, for those who want to run it in a customized environment. And for such an idea, it could be a part of a 3rd-party distro that includes a lot of non-standard ways of doing things that would improve performance at the expense of compatibility, and include an installer that would allow adding back compatible ways of doing things in any combination. However, such an idea could turn out to be a mess. I am sure a lot of corners could be taken, but it is hard to know where until you first do it all the "correct" way. Yet, all my pipe dreams of this nature are just that, and as I keep saying, right now, we just want to get it to work and as Windows-compatible as we know how.

It is a matter of knowing why whatever rules are in place and what the consequences of deviating are. But things are incomplete right now, and full compatibility is good for testing since that means placing files in Windows for testing, or alternately testing Windows files in ROS to get more compatibility elsewhere. Obviously, if placing a Windows file in ROS breaks things, then the problem is a bit deeper, and if the ROS code for what is exchanged caused things to work, then at least 2 things need fixed.

hbelusca
Developer
Posts: 1128
Joined: Sat Dec 26, 2009 10:36 pm
Location: Zagreb, Croatia

Re: Blog: Decorating the shell tree

Post by hbelusca » Thu Dec 25, 2014 2:17 pm

Hi! Flowchart is here for remembrance:
http://community.reactos.org/images/art ... sses_2.png
A big mess^^

erkinalp
Posts: 833
Joined: Sat Dec 20, 2008 5:55 pm

Re: Blog: Decorating the shell tree

Post by erkinalp » Fri Dec 26, 2014 8:52 am

It is illegal to put ReactOS executables on a Windows kernel, because it means partial omission, i.e. modification on Windows even if you own a Windows licence. The vice versa is on a grey area.
-uses Ubuntu+GNOME 3 GNU/Linux
-likes Free (as in freedom) and Open Source Detergents
-favors open source of Windows 10 under GPL2

Ohnemichel
Posts: 9
Joined: Wed Sep 21, 2011 5:04 pm

Re: Blog: Decorating the shell tree

Post by Ohnemichel » Fri Dec 26, 2014 12:09 pm

@erkinalp
Depends!
If you would run the ReactOS MSPaint.exe in Microsoft Windows XP, that is clearly NOT illegal, as it is allowed to run any freeware, as gimp, on Windows XP.
What happens if you replace the original MSPaint.exe from it's system/windows folder? As long as you don't violate the non-modification clause by DELETING genuine MSPaint,
you are on the safe side if you place something of your stuff in it's place as well.
Same for explorer. It is nothing different than an application, since you are allowed to do the operations it does from your applications as well.
And for dll's? They are LIBRARIES. They are asked BY the programs to do functions which THE PROGRAMS ARE NOT RESPONSIBLE FOR.
It is like replacing a program.
The fact that the calling application may behave differently then is just due to the fact that it is just receiving other data.
From another point of view, the program ITSELF is not behaving differently, but the dll's it called.
Total question: Do you modify a program if you DELETE some files of it?
Not, as long as these files identify themselves as separate things, e.g. as libraries towards third-party programs, which call them by name.

Listen, guys! I don't want to encourage you to do violations, but I do not like walls in the minds.
On the OTHER hand, Placing WINDOWS files in REACTOS is an act of COPYING, and I guess this act is forbidden unless you are allowed to copy these files there (onto the RosFat32 Partition/Virtual Partition). If you copy the files from the installation disk, however, this is INSTALLING the files, and is legal unless the software license forbids "partial installing".
But if a System is based on a legal Windows (on a fat32 partition, of course) installation, and you replace the kernel and several other stuff by your own gear, leaving just some dll files intact, the act of overwriting is even more obviously legal then, because you do not cause any superordinate Application to behave differently. - All proprietary items would then just BE called.
Last edited by Ohnemichel on Fri Dec 26, 2014 12:19 pm, edited 1 time in total.

PurpleGurl
Posts: 1774
Joined: Fri Aug 07, 2009 5:11 am
Location: USA

Re: Blog: Decorating the shell tree

Post by PurpleGurl » Fri Dec 26, 2014 12:10 pm

erkinalp wrote:It is illegal to put ReactOS executables on a Windows kernel, because it means partial omission, i.e. modification on Windows even if you own a Windows licence. The vice versa is on a grey area.
No, it is not modifying the existing code. Adding new code into Windows is not modifying the executables that are there. That clause is related to disassembly. To modify the existing files means examining the machine code that is there in some way, up to converting it into a programming language. So to know how to patch it, you'd have to see inside it. As for omitting stuff, that concern would relate only to distribution. If you want to take the logic you are presenting to the extreme, then having a virus on your computer would be a crime (not just for the malware writer), and so would installing 3rd party theme packs that modify Windows components. Testing is not installing, since you'd copy the originals back when done.

Putting Windows files inside ROS would be more of a concern. However, this would be temporary compatibility testing, and nobody is shipping ROS with Windows files nor vice-versa.

Aeneas
Posts: 465
Joined: Sat Oct 10, 2009 10:09 pm

Re: Blog: Decorating the shell tree

Post by Aeneas » Fri Jan 02, 2015 2:28 pm

erkinalp, the European Software Directive explicitly allows fumbling around with Windows components, see Article 5 para 3:

"3. The person having a right to use a copy of a computer
program shall be entitled, without the authorisation of the right
holder, to observe, study or test the functioning of the program
in order to determine the ideas and principles which underlie
any element of the program if he does so while performing any
of the acts of loading, displaying, running, transmitting or
storing the program which he is entitled to do."

They could even disassemble Windows in order to determine interoperability, fully legally, if observing the limitation of Article 6.

So what Microsoft writes in its license restrictions is a lovely wish, but in reality, I hardly believe their clauses to be valid. It is very nice how strictly the ReactOS team already separates their own creations and how it does it all extremely cleanly on their own... but they would not even have to.

If you have further interest in the matter, here's the EU directive:

http://eur-lex.europa.eu/LexUriServ/Lex ... 022:EN:PDF

PurpleGurl
Posts: 1774
Joined: Fri Aug 07, 2009 5:11 am
Location: USA

Re: Blog: Decorating the shell tree

Post by PurpleGurl » Sat Jan 03, 2015 6:43 am

However, we try to go by the stricter US interpretation. I know how Microsoft went after a European company that used open source GPS code because they used FAT as their file system, and they got the court to give them the rights to their code.

From what the devs have said here before, the best way to do the disassembly would be to have a 3rd party do it. Those who have even seen the code are not allowed to be devs. According to the Wikipedia article, if a 3rd party does disassembly and gives their findings, it would be wise to pass the findings through an attorney, who can further study things and make redactions if necessary. Then the attorney would pass it on to the developers.

At any rate, I am sure the Foundation has all their bases covered and knows what they are doing.

Ohnemichel
Posts: 9
Joined: Wed Sep 21, 2011 5:04 pm

Re: Blog: Decorating the shell tree

Post by Ohnemichel » Sat Jan 03, 2015 4:11 pm

TomTom, you mean?
They were not forced to give them their rights, but to stop distributing their software, or, alternatively, pay for the patent, which in turn would prohibit them from using the linux kernel.

PurpleGurl
Posts: 1774
Joined: Fri Aug 07, 2009 5:11 am
Location: USA

Re: Blog: Decorating the shell tree

Post by PurpleGurl » Sun Jan 04, 2015 11:30 am

Ohnemichel wrote:TomTom, you mean?
They were not forced to give them their rights, but to stop distributing their software, or, alternatively, pay for the patent, which in turn would prohibit them from using the linux kernel.
Thank you for clarifying.

Post Reply

Who is online

Users browsing this forum: No registered users and 3 guests