corepup

A home for all kinds of Puppy related projects
Message
Author
User avatar
nosystemdthanks
Posts: 703
Joined: Thu 03 May 2018, 16:13
Contact:

#701 Post by nosystemdthanks »

mcorepup 0.4 builds corepup-7 (it should also build 8 if you prefer) and creates tcz files in the same run.

http://murga-linux.com/puppy/viewtopic. ... &id=117839

so for example, you could do:


change = changeforwhom addchanges "rockedge"
iftrue change



now = tczpreps "newlibnss" "/usr/local/lib"

now = "cp /mnt/mcorepup/libnss-whatever-version.so /mnt/mcorepup/tcz/newlibnss/usr/local/lib" ; shell

now = tczbuild "newlibnss"



fig



and it will create newlibnss.tcz for you and put it in the iso with the other ones.

its very easy to create a tcz even with the standard method, its basically like creating a tar.gz except with squashfs instead.

when i tried it the first time i used xz compression with the squashfs like i do for remastering live isos, but the tcz loader didnt like that. thats not standard tcz anyway, tczs use the default compression.

now that mcorepup can make tczs and add them to the iso automatically, we can have some real remastering fun.
[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]

Isma
Posts: 2
Joined: Fri 20 Jul 2018, 01:47

Some ideas.

#702 Post by Isma »

English it's not my mother language. Expect errors.

I think it's a wonderful idea, being able to say something about a new distro, instead of only reporting bugs or ask for any help when things went down like in many other distros. You have to accept what it's write in stone by the main developers of a system (This is not bad).

Okay, if you give the opportunity to say something about it, i'll take it.

Summary

- Use Gujin Bootloader and take a look into the patch the developer make for the initrd (it's in gujin-2.8.7.tgz). So it's load the system root files almost flawless.

- Please, take in consideration the ultra low-RAM systems those under 512Mb of ram (My main laptop only has this amount of ram). This means, compile/everything resource expensive using the SWAP file/partition as much as possible, using a option to load into RAM the extensions like TCZ in TinyCore, and load them entirely from a filesystem like SCE (mostly in dCore, but it can be find in TinyCore as well).

- Please follow standards! Yes, don't make anything so different and special. Remember the KISS philosophy. Name the 'initrd*.gz' as 'initrd' not 'core.gz', 'pupcore.gz', 'somethingelse.gz'. Follow the standards is a nice way to keep a project future-proof.

/Summary

Use Gujin bootloader or Patch the distro with Casper (a patch for init from Gujin Bootloader).

Gujin is a bootloader. It aims to be a very lightweight solution and somewhat "universal" bootloader. It has an installer and the main developer has proposed a new method to chainload the OS (GNU-like Systems, BSD, WINnt, DOS, etc) by a patch to init (initrd, initrfs i'm not sure). This allows the distro to boot from almost any media (Usb, CD, partitions, filesystems (ext2,3,4;fat16,32,etc). Check the discussions on the sourceforge page.

This bootloader is also flexible when it's time to installing. You can install it to any media device (Floppy Disk, CD, USB, HDD, PICS?), GPT or DOS partition table, a small partition, MBR, BEER device (the end of a disk).

In a perfect world you can have a DVD with multiple distros, a partition full of iso files. A distro would know a smart way to find it rootfs, like knowing where sector in a disc it start and finish they rootfs, from which iso file the distro start in a filesystem, or at least what partition belong to the distro.

With Gujin you can have a usb with multiple distros. Have many kernels without touching any config files, just reboot and choose from a graphic menu what kernel you want.

It has his drawbacks too, obviusly, like no EFI support. But it will be awesome see it implement in the project, having this portability in the Corepup project.

Why this is important?

At least for me, i don't have a 2.5" IDE drive, i can't buy one, they are ridiculous expensive in my country a 80Gb 2.5" IDE can cost as much as a 250GB ATA even a 1Tb Ata. So having the option to boot from anywhere it really will make my computing a lot better.

I have a 3.5 IDE, Sata to USB adapter. I can have cheap HDD atached to my computer and with many distros in the HDD and boot in any of them. And yet still booting into my persistent-data distro.


Low-Ram Friendly

Yes i was saying, make the distro ultra-low-ram pc friendly.

By using most apps as mountable extensions (or give a option to do it).

When i use dCore, even if a use tce-setdrive to point to a usb flash device, despite the warnings and the knowledge of the many writes in the flash device you get the pc frooze when using the sce-import command to import a bis extension like OpenJDK8.

I'm using a T42 IBM, no hard disk drive and 512Mb RAM as my main computer.


Thank you for your time.

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

#703 Post by rockedge »

I am doing almost all the testing on just about the same machine this is an 2003 IBM T-42 with 754 megs of RAM, Pentium M and also no hard drive. I use 8 or 4 gig USB sticks.

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

Re: Some ideas.

#704 Post by nosystemdthanks »

Isma wrote:English it's not my mother language. Expect errors.
no problem.
- Use Gujin Bootloader and take a look into the patch the developer make for the initrd (it's in gujin-2.8.7.tgz). So it's load the system root files almost flawless.


right now the only bootloaders in corepup are the ones that come with coreplus. im not sure i get what youre saying about gujin, except that its worth trying.

which is fine, the recommendation is appreciated, thank you.


- Please, take in consideration the ultra low-RAM systems those under 512Mb of ram (My main laptop only has this amount of ram).
corepup is the lightest distro that i work with, im certain someone will try to find a way to run it on the most modest hardware they can find.


- Please follow standards! Yes, don't make anything so different and special. Remember the KISS philosophy. Name the 'initrd*.gz' as 'initrd' not 'core.gz', 'pupcore.gz', 'somethingelse.gz'. Follow the standards is a nice way to keep a project future-proof.
we can try finding out what happens if we rename the initrd. maybe it will work, or maybe the init wont like it.

the initrd wanderer has adapted is actually called tinycore.gz, so wanderer renamed it to core.gz

im reluctant to rename it in mcorepup, as it will then differ in existing documentation.

i dont know of the initrd name being a posix standard, but if it is id like to know about that.


This bootloader is also flexible when it's time to installing. You can install it to any media device
im sure someone will try gujin at some point, it sounds cool. its not in the tinycore repo, incidentally. it would have to be hosted on wanderers download site.


In a perfect world you can have a DVD with multiple distros, a partition full of iso files. A distro would know a smart way to find it rootfs,
ive actually done this for refractahrpup, with isolinux,
which is the bootloader corepup uses too.

so you can fairly easily mix two live distros together and have a menu for all of them in a single iso.
With Gujin you can have a usb with multiple distros.
with isolinux (and isohybrid from syslinux) you can have that on dvd too. but you said gujin can do dvd.



how did you find gujin, by the way? how long have you used it?

https://directory.fsf.org/wiki/Gujin


It has his drawbacks too, obviusly, like no EFI support. But it will be awesome see it implement in the project, having this portability in the Corepup project.

i don't have a 2.5" IDE drive, i can't buy one, they are ridiculous expensive in my country a 80Gb 2.5" IDE can cost as much as a 250GB ATA even a 1Tb Ata. So having the option to boot from anywhere it really will make my computing a lot better.
if you take the corepup iso (even the official one) and run isohybrid on it, you can dd the iso to a usb.


Yes i was saying, make the distro ultra-low-ram pc friendly.
out of curiosity, what distro (other than deli linux) runs well on less ram than corepup uses?


When i use dCore, even if a use tce-setdrive to point to a usb flash device, despite the warnings and the knowledge of the many writes in the flash device you get the pc frooze when using the sce-import command to import a bis extension like OpenJDK8.
i havent used tce-setdrive, its probably not the way i would put corepup on a usb.

id sooner use grub or grub4dos than tce-setdrive.

you mention to go with standards-- grub is pretty close to a standard.


I'm using a T42 IBM, no hard disk drive and 512Mb RAM as my main computer.
other than what youve already told us, definitely let us know what parts of corepup you find slowing down your ibm.
[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]

wanderer
Posts: 1098
Joined: Sat 20 Oct 2007, 23:17

#705 Post by wanderer »

hi guys

thanks for all the work you have put in

in both tinycore and corepup

the initrd is named core.gz

there is a cde directory for tcz which is read only on the live cd
that will be automatically loaded at boot
of course if you use a writable usb
you can delete and add to the cde directory

there is a tce directory for the tcz
that you have downloaded from the tinycore repositories
and that can be loaded on demand

you can make a home and an opt directory
on a hard drive for persistence

so these are the basic components of both tinycore and corepup

i have added others

like if you make an uncompressed 2fs image
and put it on the usb
you can symlink to it after corepup is booted
and save and retrieve your settings and other stuff to it
so you can save everything to usb like in puppy

also if you symlink a directory from home
you can use this as an uncompressed or compressed extension

and if you make multiple core.gz cde tce home and opt directories
you can rename them and have mutiple concurrent versions
of corepup on your usb or hard drive

anyway i just wanted to review some basic stuff
so people can keep things straight

next post follows

wanderer

wanderer
Posts: 1098
Joined: Sat 20 Oct 2007, 23:17

#706 Post by wanderer »

hi systemdthanks

i would like to use your script to make an iso from corepup 6

what tcz would i need to load for your script to work

could i copy another corepup 6 iso to the home directory
and use that as the iso to modify

once again thanks for doing all this work
as i said the script idea is awesome

and rockedge

thanks for all the help and experimentation
it is greatly appreciated

wanderer

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

#707 Post by nosystemdthanks »

wanderer wrote: i would like to use your script to make an iso from corepup 6
the script can actually make corepup-6, so if you want to modify corepup-6, the easy way would be to

1. set it up to create corepup-6
2. make whatever changes you want

now this uses coreplus as the iso. thats standard tinycore, so if you do it this way then people can find the source iso very easily--

even if smokey decides for some bizarre reason to chuck his ftp server into the ocean, you can still make corepup-6 from coreplus.

mcorepup is the corepup version of mkfigos. mkfigos is designed to be simple and flexible, ive used it to remix puppy tahr, librepup, antix, partition wizard, refracta, void linux and coreplus.

so im pretty sure it can make changes to corepup 6, too. my question is, are you sure thats how you prefer to do it? it will be more work for you that way, i believe.


what tcz would i need to load for your script to work
because i wanted it to be as easy as possible, and i knew he had several distros set up, i actually recommended rockedge use puppy tahr for remixing it.

i am also, funnily enough, working on mcorepup 0.5, which (now that it can create tczs at the same time as corepup) may include a remaster profile, which would create mcorepup.tcz and try to include everything needed for mcorepup to run from corepup.

that said! i have yet to actually try running mcorepup from corepup. it should be doable-- mcorepup is designed to run as many places as possible, within reason.

i know people are going to want to run mcorepup from corepup, but there were other features that i considered higher-priority.

(mcorepup is about 2 weeks old.)

youll need at the very least, python.tcz. if you want to be able to dd corepup to to usb without a helper application, youll also want syslinux.tcz (its optional. i dont think the official isos are hybrid.)

mcorepup 0.4 creates fig46.tcz, which i will attach here as fig46.tcz.gz (the forum only allows certain extensions. just rename it.)

you probably already have squashfs tools included-- those are in coreplus and probably in corepup-6 as well. and youll need tar.tcz but thats also in coreplus and corepup-6.

in 2 weeks ive really become very familiar with your system.


could i copy another corepup 6 iso to the home directory
and use that as the iso to modify
i really believe so, but id very much recommend starting with mcorepup 0.4 instead.

to set it up to create coreplus-6, remove "wanderer-minimal" and "wanderer-core" from addchanges. i havent tried it yet, but between these addchanges:

wanderer <- coreplus-6

wanderer wanderer-minimal <- coreplus 7

wnaderer wanderer-minimal wanderer-core

^ coreplus 8



you should be able to create all 3 isos from the latest mcorepup.

if its your first time, id actually recommend making coreplus-7 first as practice.

its small and its got a gui, and its the version i focus on by default for new versions of mcorepup.


once again thanks for doing all this work
in all seriousness wanderer, i am honoured to be assisting you at all with this. youre very welcome and a joy to work with. you make it easy.
Attachments
fig46.tcz.gz
md5 588ea27d30b238ad1c577e2b1d8409e1
(12 KiB) Downloaded 68 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:

#708 Post by rockedge »

I was able to run fig46.py mcorepup04.fig in corepup-7, which was made using the same running
under Tahr 6.0.5nopae

a look at stage one after running

Code: Select all

 fig46.py mcorepup04.fig
Attachments
run_mcorepup04_in_corepup7.png
(139.11 KiB) Downloaded 259 times

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

#709 Post by nosystemdthanks »

rockedge wrote:I was able to run fig46.py mcorepup04.fig in corepup-7
oh yeah-- that should really run anywhere that python 2 runs. i mean there are some old macs with python 2 that are hard to update because theyre powerpc chipsets. those versions of python are so old that fig46 is more likely to work than earlier versions.

but assuming your version of python is newer than os/x tiger, you should be able to do that first part on any platform. probably even android. even windows.

running the second part is the part where you need to have other stuff installed.

im not sure all of it is available for coreplus, but it most likely is. if it isnt, we can make it work either way. let me know if you get a corepup out of running it on corepup.
[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]

wanderer
Posts: 1098
Joined: Sat 20 Oct 2007, 23:17

#710 Post by wanderer »

hi nosystemdthanks and rockedge and all

if you can make a corepup in corepup
post some simple directions on how to set everything up
so i (and other people) can try the build system

i am trying to follow along as best i can
but you guys are way above me
so the instructions need to be pretty simple

i am doing my stuff manually
which is complementary to your work
and i have a whole list of tasks to play with
i will post if there is anything i think might be of interest

thanks for all your work
its all pretty amazing

wanderer

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

#711 Post by rockedge »

here is a completed corepup-7 created completely in corepup-7. In the screenshot you can see the directory structures. In /tc/Corepup all the scripts and the CorePlus 6.4.1.iso

loaded is the
fig46.tcz
python.tcz
python-dev.tcz

open the terminal in /tc/Corepup and use

Code: Select all

python fig46.py mcorepup04.fig 
when that finishes type

Code: Select all

./mcorepup04.fig.py
let it finish and in /mnt/mcorepup there should be a corepup-7.iso
Attachments
run_mcorepup04.fig.py_in_corepup7.png
(113.77 KiB) Downloaded 218 times

wiak
Posts: 2040
Joined: Tue 11 Dec 2007, 05:12
Location: not Bulgaria

#712 Post by wiak »

Hi guys,

This stuff is becoming interesting. Unfortunately I don't have time to study your build scripts/details at all, and couldn't anyway since I hardly know Python unfortunately, which I gather fig is written in.

What does fig do by the way (in terms of simplifying such system-build scripting compared to just using straight Python)?

I have no time to brush up on Python just now since, instead, owing to its small additional footprint, I'll be learning Lua in a short while (mainly becauses I'm very taken with IUP gui/widget builder as an alternative to gtkdialog/gtkwialog style coding; I'm also hoping my recent gtkwialog work might prove useful in adding some extra functionality to IUP.

However, since Python comes on most systems nowadays (or is soon pulled in since so much depends on it), it is certainly a nice general-purpose scripting solution - if IUP was ported to work with Python too that would be a nice simple gui/widget creation system for Python, rather than the somewhat complicated wxWidgets, PyGTK. PyQt or whatever (but I don't think IUP is ported to Python thus far). Anyway, that's a bit off-topic unless you are building a gui for your system-builder (nothing to stop you using gtkdialog/gtkwialog/IUPLua for that of course: driving the underlying fig code etc).

wiak

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

#713 Post by nosystemdthanks »

wiak wrote: This stuff is becoming interesting. Unfortunately I don't have time to study your build scripts/details at all, and couldn't anyway since I hardly know Python unfortunately, which I gather fig is written in.
hi wiak.

most programming languages have an implementation language-- gcc is implemented in a standard c++ version, so for example if you are compiling pascal with gcc, you only need to learn pascal-- you dont need to know c++ to use a pascal program, even if the compiler is implemented in c++.

fig is a small (less than 100 commands) programming language designed for educational use, but it is also useful for creating utilities.

it is implemented in python, though you dont need to know (or code in) python to use it.

this build script is implemented in fig. to compare it to lua-- which was not inspiration for fig, but watch this:

Code: Select all

-- this is lua code
for i = 10,1,-1 
do 
   print(i) 
end

Code: Select all

# this is fig code
for i = 10,1,-1 
   now = i ; print 
next
note that with the lua code, this syntax is mandatory = , , ( )

while you can remove all of the syntax from the fig version, because it is inspired by logo syntax:

Code: Select all

# this is fig code
for i 10 1 -1 
   now i print 
next
only # hashes for comments

and "quotes for strings" are mandatory.

note also that python has mandatory whitespace, and fig does not.

python and lua are both case-sensitive; fig is not.

lua is a more complete language, to be sure-- fig is a language designed to be easier to explain to people who have never coded (or even written a bash script, which i personally consider coding even though one person who codes in it insisted that they were "a NON-CODER". but i dont think that bash scripts are "non-code.")

i created fig in 2015, ive used it to remaster puppy and other distros since 2016.

i cant say fig is the easiest language in the world. it tries to be. sometimes whats easy is subjective.

python, lua and logo are all good educational languages.

bash is a language that people often learn along the way, while using it in puppy for example.

a lot of the gnu/linux tricks i know i learned in puppy first, 10 years before remixing puppy with fig.

note that i am a fan of gtkwialog, though mcorepup is designed to run from puppy (rockedge ran it from tahr before he ran it from corepup) and also refracta, and also void linux, and other places that gtkwialog may or may not be present.

a gui version of mcorepup would be very welcome, though i would actually recommend forking mcorepup and creating a different gui-based corepup builder.

not a requirement, its more like an opinion.

although mcorepup is turning into something relatively flexible, the usual way i do these things is one-mcorepup-version-per-corepup version.

the corepup philosophy differs there, so mcorepup is slightly different than the script i based it on (and thus gains features.)


rockedge wrote:let it finish and in /mnt/mcorepup there should be a corepup-7.iso
i believe youre the first person to run mcorepup in corepup. thats very cool, thanks very much, its something im working on (first, you make tczs automatically, then-- rockedge does it first because he just does it.) <- intended as compliment

this is cool, im still making tczs for this.

i would ask why is your corepup-7 more corepup-6 sized? what was your addchanges when you ran that?
Last edited by nosystemdthanks on Sat 21 Jul 2018, 04:59, edited 1 time in total.
[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:

#714 Post by rockedge »

a look at the corepup-7 built from mcorepup04.fig

notice the missing icons/buttons in the icewm desktop. the Wallpaper changer seems to work and after fixing the permissions of /tce I am able to load tcz packages.

I will post later my configuration and some more detail on how it runs, and why it is 83 megs
I am going to say good night now...see everyone later.
Attachments
corepup-7_mcorepup04.png
(75.53 KiB) Downloaded 210 times

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

#715 Post by nosystemdthanks »

rockedge wrote:notice the missing icons/buttons in the icewm desktop. the Wallpaper changer seems to work and after fixing the permissions of /tce I am able to load tcz packages.
rockedge and i have talked about stuff like this already, but for others reading this, i do not think this is mcorepup-related. if we can find a problem that causes this, its possible mcorepup can fix it.

the /tce permissions are setup by the user.
I will post later my configuration and some more detail on how it runs, and why it is 83 megs
cool. as wanderer says, thank you for all the work youve done.

mcorepup lets you add packages to the iso (and create tcz packages in the same run, and add those too) so im sure its very possible to create a corepup-7-based iso that size.

its not the default (for corepup or mcorepup) and thats why i asked rockedge how it got there.



please note: although i prefer not to make changes like this lightly, from mcorepup 0.5 "addchanges" will be known as "profiles" instead. this makes documentation easier and hopefully makes mcorepup a little easier to understand.
# to create corepup-7 instead of 8, remove wanderer-core profile and set isov to "7"
[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]

wanderer
Posts: 1098
Joined: Sat 20 Oct 2007, 23:17

#716 Post by wanderer »

hi all

just an update

nosystemdthanks appears to be continuing to work on his mcorepup
which i feel will be the future of corepup

i intend to use it
and am trying to learn it now

in addition studying the components of corepup
so that they can be put together
in further interesting and useful ways is a focus

core.gz is very small and eminently functional
but it will be informative to take it apart
with the goal of producing interesting variants
possibly even a smaller core

as well as many others tasks along the way

so that is what i am up to

once again much thanks to nosystemdthanks and rockedge
and everyone else who has contributed and commented

i will continue to sit back and watch with awe

wanderer

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

#717 Post by nosystemdthanks »

wanderer wrote: core.gz is very small and eminently functional
but it will be informative to take it apart
with the goal of producing interesting variants
possibly even a smaller core
what i would really like for that is for you to version the core.gz like core.gz.01 for example, and then upload it to the site where you offer the iso downloads.

then ally can archive them in the corepup archive too.

mcorepup can probably remaster that too at some point-- when i start using it from corepup like rockedge does, i will get a better idea about that.

but being able to download your core.gz separately (even if its not bootable without the iso) would be beneficial.

keep up the great work
[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]

wanderer
Posts: 1098
Joined: Sat 20 Oct 2007, 23:17

#718 Post by wanderer »

hi nosystemdthanks and all

i have posted mkcore-1.tar.gz
to the smokey01 site

this is build directory of core.gz

it contains the uncompressed corepup core.gz
and instructions for for zipping and unzipping it

as of now i do not intend to modify it further
but in the future i will

keep the faith

wanderer

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

#719 Post by nosystemdthanks »

wanderer wrote:hi nosystemdthanks and all

i have posted mkcore-1.tar.gz
to the smokey01 site

this is build directory of core.gz
actually i meant the core.gz binary. i have tried more than once to redo that outside of corepup, i think its the permissions with cpio, or something. so it would be very useful to have the binary there too.
[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]

wanderer
Posts: 1098
Joined: Sat 20 Oct 2007, 23:17

#720 Post by wanderer »

hi nosystemdthanks

i just posted the corepup core.gz binary
to the smokey01 site
this is the 1st one
the next will be named core.gz-2
when it comes along

hope this is useful

thanks again

wanderer

Post Reply