xencore... corepuppified xenial

A home for all kinds of Puppy related projects
Message
Author
musher0
Posts: 14629
Joined: Mon 05 Jan 2009, 00:54
Location: Gatineau (Qc), Canada

#21 Post by musher0 »

rockedge wrote:@musher0
I will accept that. I could have been kinder in my response as well.

I understand your position. I know the rich history and the importance of the role France and the French in North America played in the formation of the United States.
I remember the Vietnam war well.
I am first generation American, 95% of my family live in Germany and a small contingent is spread across the US,some on the Pacific, and some on the Atlantic. English is not my first language.

I did not expect you to know American references ...I have lived half my life in Europe and I know how it is.....that's why I supplied a link to the scene...then you would understand better the humor.

Vermont is nice.
boarding school in 3rd grade in a foreign country not so nice.

the icecat browser is really not that good.
Hi rockedge.

Thank you for your understanding.
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)

User avatar
nosystemdthanks
Posts: 703
Joined: Thu 03 May 2018, 16:13
Contact:

#22 Post by nosystemdthanks »

here are comparisons of files in xenpup and files in the tinycore repo.

note this list is far from perfect, but it is carefully made.

the purpose of this list is to find files that can be removed and also packages that can replace them.

it also helps find files from xenpup to put into packages-- all xenpup stuff currently goes into one large tcz.

Code: Select all

16772 aa3a686afa3be2c649496f584c72517aa48ce597e4d0b5e68fe2468ce4f2725a 2013-07-08 14:48:11	./libsigc++.tcz.dir/squashfs-root/usr/local/lib/libsigc-2.0.so.0.0.0
21920 b68f954d31d5ae2e2a4b0c98de523fb20991fe71827b12e269df096ef78f2bff 2017-11-27 16:15:07	--XENPUP--/usr/lib/libsigc-2.0.so.0.0.0

123760 74f01f76cebb018fdda7067fc4f6621de1cfbda2b91a614c9ebf09186151e247 2014-12-12 12:37:55	./at-spi2-atk.tcz.dir/squashfs-root/usr/local/lib/libatk-bridge-2.0.so.0.0.0
205700 2f3f36bda44372943abba2497d284cb9bb4c8b74d173f275aa6dec67a8eef340 2017-11-27 16:15:04	--XENPUP--/usr/lib/libatk-bridge-2.0.so.0.0.0

28780 345cfda0ca52f2f4ffd2f975ba3fd959054dc9a84b4be76aeac507d571a8ea17 2014-12-12 13:15:38	./libstartup-notification.tcz.dir/squashfs-root/usr/local/lib/libstartup-notification-1.so.0.0.0
38412 afb4eb27a8c7f32b31056e7334bb5f5e82ecf32b2dd8bfb7419f4721d8de28af 2017-11-27 16:15:06	--XENPUP--/usr/lib/libstartup-notification-1.so.0.0.0

31468 b15ccee00914d01f91aa1d9c367bdf389061138327630e0fe2e3f17d33cd7231 2013-08-06 18:07:47	./dconf.tcz.dir/squashfs-root/usr/local/lib/libdconf-dbus-1.so.0.0.0
51192 46d4af1f529173b0395d9dd5663a3ca7cf9ef8ff8ba374cedf826f4b1b1c6d03 2017-11-27 16:15:11	--XENPUP--/usr/lib/libdconf-dbus-1.so.0.0.0

19958 2bdac5dafdfc5957ba6c81e465214bbf18206fbaa2bac77e4b8755e0497a6d32 2014-01-18 14:02:27	./libv4l.tcz.dir/squashfs-root/usr/local/lib/libv4l1.so.0.0.0
23340 426b99bfec9e1925f686026b21ed283fc59534921c5f7fb9be6b2a2aa2fd0d93 2017-11-27 16:15:08	--XENPUP--/usr/lib/libv4l1.so.0.0.0

10736 9ea7e074205e2a53bfd4ffb51c659dd19b2a8f5bc35cd734bac461143037e221 2015-09-10 17:33:05	./libxcb.tcz.dir/squashfs-root/usr/local/lib/libxcb-dri2.so.0.0.0
17840 2c184689a8ea70eafc10e33f8b4a17a37954071cbaf6f25271199b7f93c50bde 2017-11-27 16:15:08	--XENPUP--/usr/lib/libxcb-dri2.so.0.0.0

43286 1e4b46305adf599ce4025516a53d0ddfcd2ce05f7a882601997675c94beebbaf 2014-01-18 14:02:27	./libv4l.tcz.dir/squashfs-root/usr/local/lib/libv4l2.so.0.0.0
51668 385f0786a787b9f15b23fc3060b3c50640a3a0d908499529de61b12036ad059c 2017-11-27 16:15:06	--XENPUP--/usr/lib/libv4l2.so.0.0.0

363308 227581415b9d7cc87e3d20aecb967be8c64d7ca3817ba1741561604288483485 2011-12-02 09:46:35	./raptor.tcz.dir/squashfs-root/usr/local/lib/libraptor2.so.0.0.0
382992 5e93a62973b9764fd5530c0376db2934d4d878e680ec9014a67e6ba676297299 2017-11-27 16:15:09	--XENPUP--/usr/lib/libraptor2.so.0.0.0

279204 eae4182e3d66e78f6cd9ee72a874fb3be7fe6a1f8dda0c4c480226ca2b7f769a 2015-01-27 09:48:25	./hunspell.tcz.dir/squashfs-root/usr/local/lib/libhunspell-1.3.so.0.0.0
371860 b3a58389902707bb657471d442dd8804152d37148aae7459a492c919ffd886bc 2017-11-27 16:15:04	--XENPUP--/usr/lib/libhunspell-1.3.so.0.0.0

5840 b74832782acaca1bce781af57d2306a285f8c0edeb960787fb9936b301f9bf30 2015-09-10 17:33:05	./libxcb.tcz.dir/squashfs-root/usr/local/lib/libxcb-dri3.so.0.0.0
9656 e467634b8b363410acb45195ddeefd4248cfcacc237f7a9bab6bc6110b46d4b7 2017-11-27 16:15:06	--XENPUP--/usr/lib/libxcb-dri3.so.0.0.0

143336 2021330c5b326367205438745ce4b977a86daac664fb7b871152a3b460ec9e3e 2009-11-06 21:50:32	./libdca.tcz.dir/squashfs-root/usr/local/lib/libdca.so.0.0.0
161184 49a9a595d91273752f1e31596418123f086ad25096b491ead86ef6fc010f27b9 2017-11-27 16:15:07	--XENPUP--/usr/lib/libdca.so.0.0.0

61965 57793d09f8608704ab7f7e9f4019049bbc33a0b9a2367e8ad79dd2778916f5ef 2009-10-25 23:28:54	./faac.tcz.dir/squashfs-root/usr/local/lib/libfaac.so.0.0.0
68688 1f911c322817879a1144761733c74b3f73714d50e81918726b339cfeca0751b2 2017-11-27 16:15:05	--XENPUP--/usr/lib/libfaac.so.0.0.0

59912 204bc0db3fe4c5be6fdc28567c517d28022b4092f2a471463e06013b726b7c77 2011-07-09 20:28:05	./jbig2dec.tcz.dir/squashfs-root/usr/local/lib/libjbig2dec.so.0.0.0
112132 f8e5798745aba4a558d37cbeac631183e9bf064f5050d9db6caa6b234b8d3e09 2017-11-27 16:15:08	--XENPUP--/usr/lib/libjbig2dec.so.0.0.0

3525 a6c6f54e7f3f9c77cc8b4c43a9b08b28f57e38f81bd9a3ade1cc19f9ccc89aea 2013-04-27 09:21:12	./iptables.tcz.dir/squashfs-root/usr/local/lib/libiptc.so.0.0.0
5220 0275638328dd8f9f2dfe72236be68327774bb6535e28b811e124671434876392 2017-11-23 11:43:19	--XENPUP--/lib/libiptc.so.0.0.0

290484 b6cec42e2cf8d69482d7f36cdf38447e137cc95bf05001dd851019c59cdbd43c 2011-10-26 19:21:03	./lame.tcz.dir/squashfs-root/usr/local/lib/libmp3lame.so.0.0.0
295924 b4983450eb8c10317b20285758e0d45eec60d1a17ca54cc2db876423eca7cdbb 2017-11-27 16:15:09	--XENPUP--/usr/lib/libmp3lame.so.0.0.0

116848 0720882171a223242f5a6daa9aa4ef21e3959862972c298078a7219eeb083384 2010-12-13 17:41:35	./twolame.tcz.dir/squashfs-root/usr/local/lib/libtwolame.so.0.0.0
124348 eb33329f1ac28f42ecaa6621e73fae62b3f4d81d7c0a2fe685ab1820fb20e874 2017-11-27 16:15:06	--XENPUP--/usr/lib/libtwolame.so.0.0.0
[color=green]The freedom to NOT run the software, to be free to avoid vendor lock-in through appropriate modularization/encapsulation and minimized dependencies; meaning any free software can be replaced with a user’s preferred alternatives.[/color]

Sailor Enceladus
Posts: 1543
Joined: Mon 22 Feb 2016, 19:43

#23 Post by Sailor Enceladus »

nosystemdthanks wrote:
rockedge wrote:the icecat browser is really not that good.
every browser sucks. the developer of pale moon also sucks, and lies to his users. id be willing to use a one-man web browser derivative (indeed, i tried to get more people to use pale moon when i used it) if that one man wasnt also kind of a scumbag, but after the noscript thing i can tell him exactly where he can put his web browser.

every firefox derivative (including pale moon, and probably icecat too) tries to push the user around when it comes to what plugins they have installed. the behaviour they have coded in now is completely unacceptable.

i wont ever use pale moon again, i dont want to use firefox and i hate it, icecat is interesting (and yes, it absolutely sucks) and has slight potential (after removing some of the suck) but theyre all absolute garbage.

even the web sucks. it is bloated, designed pretty exclusively by corporations at this point-- theres a reason that the biggest threat to your security is the browser. the most resource intense application on average is the browser. the application that does the most phoning home-- the browser.

its PRACTICALLY malware.

the whole stupid thing (in more ways than one) is like an "open source" version of an adobe plugin at this point. and i used mozilla when it was still in beta.

i actually have what i consider a pretty good design for a browser-- but im busy with other things i consider equally important.

ive tried a lot of distros, a lot of browsers, a lot of basic programming dialects too. just looking for the right one.

with distros and basic programming dialects-- i finally just made my own. i will probably never make a web browser, but thats what i said about distros too.

yes, icecat sucks a lot. im actually using firefox right now, but i hate it and a lot of the people who work for mozilla are a bunch of rotten sellouts.

they dont stand for anything, theyre only better than microsoft or google in the same way that id still prefer to have all my phone calls recorded as an american citizen, rather than a chinese one.

nothing against the chinese, honestly-- just their total crap-fest of a government.

personally i think everything mozilla does about "privacy" or "freedom" at this point is about as meaningful as if facebook does it. they will continue to chase gimmicks and p.r., but mozilla will never be good again. neither will any browser made from theirs.
Most interesting post I've read in quite a while. Glad to have found this gem. :)

User avatar
nosystemdthanks
Posts: 703
Joined: Thu 03 May 2018, 16:13
Contact:

#24 Post by nosystemdthanks »

Sailor Enceladus wrote:Most interesting post I've read in quite a while.
this month ive worked on three distro remixes, put together a short book, and started a small not-for-profit organisation.

every part of this is to fight against the not-entirely-concerted but very commonly-themed effort to (or effect of) make/ing users and developers scramble around trying to fix everything.

i call the effect a free software diaspora, and i call the cause "redix."

redix is both software (of which systemd is one example) and a general way of doing things-- the purpose of which is gut and replace posix.

if redix were an alternative to posix, that would be fine. but as a replacement, it has already set back free software development for 3 or 4 years.

despite all of this, i am more optimistic about the general state of the gnu/linux distro than the general state of web browsing.

if it means enough to people, we can fix all of it. but the goal of redix is to ultimately give us more to fix than we can fix, so that we lose maintainability and it gets handled instead by billion-dollar companies, completely against the entire free software ethos.

which i fully realise a lot of people dont care about. how does this filter down to puppy?

puppy is relatively redix-free, but whenever you find youre fixing slightly different variations of the same problem over and over, and its not because of stuff that got shifted around within your own community, and its in stuff that (until recently) worked just fine for years-- thats a symptom of redix.

for people who dont quite get it yet, its easier to just say "systemd" instead. but systemd is only the best-documented example of redix. freedesktop and gnome are fond of it, mozilla is taking it up--

redix shifts autonomy away from the user and towards companies. the cure is to shift those things back to users.

give users all the power they can handle, give them automation so many can agree to have their power working for them, without having to make it a full-time job (developer-level power without developer-level dedication.)

if people move in that direction, they will turn redix into a battle cry instead of a problem.

the solution to "but i dont care about that" is defaults-- within a system that any person can take control of when they change their mind and care about something.

for example, i automate replacing pale moon. who am i to tell you? i put all the lines that replace it in a row, you select them and delete them and voila-- pale moon isnt replaced. it sucks, right, but its your call.

this is the sort of stuff the book is about, too. and the organisation, and the website, plus all of the code i work on, plus my involvement with corepup.

but its ultimately about moving power from organisations and distros and developers to users. to people who may not know what theyre doing, but want the option of decisions when good defaults dont suffice.

pelo likes to say "im a passenger, dont ask me to fix the plane."

so lets say pelo is in a plane, and for some reason the wing gets loose just as the crew passes out.

some dork on board was reading the safety manual, which tells him to press and hold down the top left corner of the display behind the seat.

a box says "reattach wing? (y/n)"

he clicks yes. for lack of a better metaphor, emergency solenoids pull the wing back into place.

planes can already land themselves, more or less. but they require pilots because sometimes the automated systems dont work.

pelo still hasnt done anything, which is fine-- but at least now (due to good design decisions) its not his last day as a passenger.

there will always be passengers like pelo-- its the dork reading the safety manual getting neglected lately, being told "we disabled the solenoids and the inflight displays. dont like it? youre free to fly with someone else."

real choices have to go beyond forcing people to simply stay or leave.

that problem isnt about this community-- on a broader scale entirely. theres a difference between the freedom you get with a gnu/linux system and the freedom you get with windows. you can develop for either platform, but its very different (i coded for many years before switching, and i am very familiar with dos as well.)

redix ultimately makes our stuff more like their stuff. thats not a good, except for them and their fans. their stuff ultimately neglects more of our needs, and leaves us without as much option to fix it.
[color=green]The freedom to NOT run the software, to be free to avoid vendor lock-in through appropriate modularization/encapsulation and minimized dependencies; meaning any free software can be replaced with a user’s preferred alternatives.[/color]

User avatar
rockedge
Posts: 1864
Joined: Wed 11 Apr 2012, 13:32
Location: Connecticut, United States
Contact:

#25 Post by rockedge »

I've completed a successful run of mxencore01.fig. I used as a profile "rockedge figosdev libre" just to see what would happen.

It built xencore-7.iso at 140 megs. I will boot it up and see how it goes and post some screenshots in a little while.

need some coffee first.

User avatar
nosystemdthanks
Posts: 703
Joined: Thu 03 May 2018, 16:13
Contact:

#26 Post by nosystemdthanks »

im working on 0.2 right now. in fact, it boots and its better than 0.1, although now it has too much from xenpup to work properly.

0.2 is still closer to xenpup than 0.1 is, and that several pages of data i posted is for improving it further.

but i will go ahead and post 0.2 for you. then i will try to apply some of that data.
Attachments
mxencore02.fig.gz
(82.12 KiB) Downloaded 111 times
[color=green]The freedom to NOT run the software, to be free to avoid vendor lock-in through appropriate modularization/encapsulation and minimized dependencies; meaning any free software can be replaced with a user’s preferred alternatives.[/color]

User avatar
rockedge
Posts: 1864
Joined: Wed 11 Apr 2012, 13:32
Location: Connecticut, United States
Contact:

#27 Post by rockedge »

okay ! I ran mxencore02.fig with stock settings...so as it comes.
created an ISO 343 megs and it boots to a jwm desktop but do anything and the jwm taskbar disappears and then nothing functions except the shutdown manager. Also can not write to /tce

using ctrl-alt-enter to drop to command line I became root and chown the tce directory then tried to restart the graphic server

Code: Select all

startx
which crashed and failed to start but with an impressive array of errors but did appear as the complete desktop for an instant.
then tried

Code: Select all

xwin
which flashed the desktop and then crashed.
one error is /etc/X11/xorg.conf is missing as is /etc/X11/xkb/symbols

my feeling is that if the /etc/X11/xorg.conf was in place it might start with

Code: Select all

xwin jvm
considering for a brief moment the desktop with the correct background and taskbars comes up and then drops out to the command line.

User avatar
nosystemdthanks
Posts: 703
Joined: Thu 03 May 2018, 16:13
Contact:

#28 Post by nosystemdthanks »

yes, the only way xencore is going to work properly is if the right files are kept and the right ones are discarded.

which is something i was going to work on for xencore 0.2, but i will just work on it for xencore 0.3 instead.

another thing that might help is to rename xenpup.tcz to something earlier in the alphabet, like alphapup.tcz. i havent tried that yet, because it might mitigate the present level of sloppiness, but so would major tidying which is the plan.
[color=green]The freedom to NOT run the software, to be free to avoid vendor lock-in through appropriate modularization/encapsulation and minimized dependencies; meaning any free software can be replaced with a user’s preferred alternatives.[/color]

User avatar
rockedge
Posts: 1864
Joined: Wed 11 Apr 2012, 13:32
Location: Connecticut, United States
Contact:

#29 Post by rockedge »

I just ran both mxencore2.fig and mcorepup06.fig on 2 different machines.
mxencore02 in Tahr 606 nopae
mcorepup06 in Bionic 18.05+8

both the Corepup-7 and the mxencore-7 built and booted and work with the jvm desktop. changed permissions and ownership for tce and that works also

User avatar
nosystemdthanks
Posts: 703
Joined: Thu 03 May 2018, 16:13
Contact:

#30 Post by nosystemdthanks »

interesting results.

i should note that when i ran xencore from qemu it stayed in jwm, but there was no taskbar. (i deliberately left xenpups /etc out for 0.2, but i intend to put it back when it is cleaned up a bit.)

to automate the search for duplicates, run find on both paths, text-replace the difference in the first part of the paths so they match, put the listing of each in its own array, and then:

for each item in the first array, remove if it not found in the other array.

for each item in the second array, remove if not found in the first array.

this is something that fig does a very good job of. it can probably be done with bash, and often bash is faster, but for this sort of processing fig may well outperform it.

note that this would be used to add to mxencore, but i wouldnt put that routine in mxencore as it would slow it down too much.

the point is-- we can go to great lengths to tidy the two filesystems and make the two compatible. this isnt the first time ive mixed puppy with another distro-- that was the original purpose of the script that mxencore is based on, circa 2016.

i havent done it yet, xenpup.tcz is automatically created but it is still a mess prior to being made into tcz. that long list i put up is a guide to what i will be doing with it.
[color=green]The freedom to NOT run the software, to be free to avoid vendor lock-in through appropriate modularization/encapsulation and minimized dependencies; meaning any free software can be replaced with a user’s preferred alternatives.[/color]

User avatar
rockedge
Posts: 1864
Joined: Wed 11 Apr 2012, 13:32
Location: Connecticut, United States
Contact:

#31 Post by rockedge »

this is a build of mxencore-7 built using Puppy Linux Tahr 6.0.6 nopae and mxencore02.fig
run with stock settings.....Time was set using SetTime and is showing UTC

the build became a 342 meg ISO but with icewm as a desktop is using about 52 megs of RAM
Attachments
screenshot_0731011155-500px.png
(64.01 KiB) Downloaded 257 times
Last edited by rockedge on Tue 31 Jul 2018, 01:27, edited 5 times in total.

User avatar
nosystemdthanks
Posts: 703
Joined: Thu 03 May 2018, 16:13
Contact:

#32 Post by nosystemdthanks »

posted to xencore thread-- which i have no problem with, however for those who are confused, mcorepup 0.6 produces corepup with tc9 instead of tc6 (newer packages, newer kernel, etc) not xencore.

i was just going to say "nice screencap" which it is, but i thought id clarify this.

and as usual, thanks. i can post screencaps, but when you do it it doesnt just show what it looks like-- it also shows that a second person has run it. thats useful to me, to other people who might take interest, and to wanderer, so thanks again.
[color=green]The freedom to NOT run the software, to be free to avoid vendor lock-in through appropriate modularization/encapsulation and minimized dependencies; meaning any free software can be replaced with a user’s preferred alternatives.[/color]

User avatar
nosystemdthanks
Posts: 703
Joined: Thu 03 May 2018, 16:13
Contact:

#33 Post by nosystemdthanks »

here is mxencore 0.3, which begins to replace packages from xenpup with tc equivalents, as well as reduce the amount of space taken by xenpup.tcz.

sorting a giant sfs into packages (whether those packages already exist or not) is tedious work, a lot of which i automate partially, then work on manually, then automate further.

this would be better as a community effort, though it can be done by a single person with the right tools. either way, as xenpup.tcz gets smaller in both size and filecount, we get closer to a usable, organised tc+xenpup hybrid.

this is still at the curiosity stage, where files (binaries perhaps, but definitely rc and similar files) that shouldnt be kept in xenpup can interfere with files that work fine in tc.

theres a lot that can be done to debug that sort of conflict. i was determined to make progress that i could post here, while im working on several other things besides mxencore--

this (the latest version, rather than the thing itself) is the least fun ive had lately, though pulling off another hybrid distro would make it fun, if it gets closer to what wanderer and i are mostly on the same page about.
Attachments
mxencore03.fig.gz
(111.84 KiB) Downloaded 96 times
[color=green]The freedom to NOT run the software, to be free to avoid vendor lock-in through appropriate modularization/encapsulation and minimized dependencies; meaning any free software can be replaced with a user’s preferred alternatives.[/color]

User avatar
rockedge
Posts: 1864
Joined: Wed 11 Apr 2012, 13:32
Location: Connecticut, United States
Contact:

#34 Post by rockedge »

I have successfully run mxencore03. With the current default config the resulting ISO is around 385 megs. It will boot but so far unable to get a GUI desktop going. The GUI flashes for a brief instant and disappears. Both

Code: Select all

xwin
startx 
will work but the X server crashes.

Almost there.

User avatar
nosystemdthanks
Posts: 703
Joined: Thu 03 May 2018, 16:13
Contact:

#35 Post by nosystemdthanks »

weird. this is the first version of mxencore that ive run on actual hardware from an actual cd, and it went to the gui (with the taskbar) and stayed there.

i could only get the keyboard to work on the vt, but if i got it to restart x with something other than jwm, it might work. i tried ctrl-esc, alt-enter, im not sure what should be working but its possible the xorg config is to blame.

im low on cds, and usually try these things by copying to the hdd and running from grub.

but i like to try them from qemu (to be sure it gets to the gui) and i do that too, and this one i booted from a real cd.

either way, 0.3 doesnt mean mxencore is ready. thats why its good that its separate from mcorepup right now-- i dont want people to think mcorepup doesnt work while i fit xenpup with a tc collar. i also wanted to try moving from onboot to copy2fs for this. i think copy2fs is closer to how puppy works and is expected to work. with onboot, you cant boot toram.
[color=green]The freedom to NOT run the software, to be free to avoid vendor lock-in through appropriate modularization/encapsulation and minimized dependencies; meaning any free software can be replaced with a user’s preferred alternatives.[/color]

User avatar
rockedge
Posts: 1864
Joined: Wed 11 Apr 2012, 13:32
Location: Connecticut, United States
Contact:

#36 Post by rockedge »

I will burn a CD and see how it goes. I have not got the GUI to start yet with a frugal install on a 16 gig USB stick and Grub4Dos. So I will see how the grub2 goes and a closer look at the boot parameters...

User avatar
nosystemdthanks
Posts: 703
Joined: Thu 03 May 2018, 16:13
Contact:

#37 Post by nosystemdthanks »

everything is still corepup, the differences are all in xenpup.tcz.

the goal is to separate stuff from xenpup.tcz into more tczs, but first the goal is to replace xenpup stuff with tc stuff as much as possible.

so everything with boot parameters and stuff is corepup, just like wanderer designed it. if it works in corepup, it should work in xencore too-- unless there is a file from xenpup that interferes. ive already taken care of some of that, and the more it gets organised the more i will check it with tools to be sure there are no conflicts (at least in terms of files with matching names.)

i can make tools to find dupes across tcz files, tools to check that certain files load properly, and respond to parts that dont.

but, i cant do everything at once. it takes time, and its fun sometimes, but its not always very interesting. this part of it is mostly just tedious, but mostly worth it.
[color=green]The freedom to NOT run the software, to be free to avoid vendor lock-in through appropriate modularization/encapsulation and minimized dependencies; meaning any free software can be replaced with a user’s preferred alternatives.[/color]

Post Reply