Should I Be Able To Customise FerenOS?

Asked by Distro Maker

I downloaded FerenOS to customise
https://ferenos.weebly.com/get-feren-os.html

However, cubic failed on Copy important files from the original disk image.
Does cubic only support official Ubuntu images?

Copy important files from the original
disk image
• The source path is..................... /home/mhzayt/Projects/feren-
mini/source-disk/
• The target path is..................... /home/mhzayt/Projects/feren-
mini/custom-disk/
• The progress tracker................... Started
• The progress tracker id is............. 140173787494144
• The process started at................. 14:55:54.127387
• Completed.............................. 0%
• Execute asynchronously................. rsync --info=progress2
"/home/mhzayt/Projects/feren-
mini/source-disk/"
"/home/mhzayt/Projects/feren-
mini/custom-disk/" --delete
--recursive --links --chmod=u+rwX
--exclude="md5sum.txt"
--exclude="MD5SUMS"
--exclude=".disk/release_notes_url"
--exclude="/casper/filesystem.manife
st"
--exclude="/casper/filesystem.size"
--exclude="/casper/filesystem.squash
fs" --exclude="/casper/filesystem.sq
uashfs.gpg"
• The process id is...................... 11560
• Completed.............................. 10%
• Completed.............................. 20%
• Completed.............................. 30%
• Completed.............................. 40%
• Completed.............................. 50%
• Stop the progress tracker with id...... 140173787494144
• Error.................................. An exception occurred.
• The process stopped at................. 14:55:54.802517
• The exit status, signal status is...... 23, None
• The exception is....................... End Of File (EOF). Exception style
• Interrupted the progress tracker....... Interrupt Exception
platform. <pexpect.pty_spawn.spawn
• The progress tracker................... Stopped
object at 0x7f7cc15526a0> command:
/usr/bin/rsync args:
[b'/usr/bin/rsync', b'--
info=progress2',
b'/home/mhzayt/Projects/feren-
mini/source-disk/',
b'/home/mhzayt/Projects/feren-
mini/custom-disk/', b'--delete', b'
--recursive', b'--links', b'--
chmod=u+rwX', b'--
exclude=md5sum.txt', b'--
exclude=MD5SUMS', b'--
exclude=.disk/release_notes_url', b'
--exclude=/casper/filesystem.manifes
t', b'--
exclude=/casper/filesystem.size', b'
--exclude=/casper/filesystem.squashf
s', b'--exclude=/casper/filesystem.s
quashfs.gpg'] buffer (last 100
chars): '' before (last 100 chars):
'me files/attrs were not transferred
(see previous errors) (code 23) at
main.c(1207) [sender=3.1.3]\r\n'
after: <class
'pexpect.exceptions.EOF'> match:
None match_index: None exitstatus:
23 flag_eof: True pid: 11560
child_fd: 21 closed: False timeout:
300 delimiter: <class
'pexpect.exceptions.EOF'> logfile:
None logfile_read: None
logfile_send: None maxread: 2000
ignorecase: False searchwindowsize:
None delaybeforesend: 0.05
delayafterclose: 0.1
delayafterterminate: 0.1 searcher:
searcher_re: 0: re.compile('[0-9
]{1,3}(\\.[0-9]{2}){0,1}%')
• The tracek back is..................... Traceback (most recent call last):
File "/usr/lib/python3/dist-
packages/pexpect/spawnbase.py", line
166, in read_nonblocking s =
os.read(self.child_fd, size)
OSError: [Errno 5] Input/output
error During handling of the above
exception, another exception
occurred: Traceback (most recent
call last): File
"/usr/lib/python3/dist-
packages/pexpect/expect.py", line
111, in expect_loop incoming = s
pawn.read_nonblocking(spawn.maxread,
timeout) File
"/usr/lib/python3/dist-
packages/pexpect/pty_spawn.py", line
485, in read_nonblocking return
super(spawn,
self).read_nonblocking(size) File
"/usr/lib/python3/dist-
packages/pexpect/spawnbase.py", line
171, in read_nonblocking raise
EOF('End Of File (EOF). Exception
style platform.')
pexpect.exceptions.EOF: End Of File
(EOF). Exception style platform.
During handling of the above
exception, another exception
occurred: Traceback (most recent
call last): File "/usr/share/cubic
/utilities/progressor.py", line 249,
in process_command if not done:
raise exception File "/usr/share/c
ubic/utilities/progressor.py", line
244, in process_command
process.expect(PERCENT_PATTERN)
File "/usr/lib/python3/dist-
packages/pexpect/spawnbase.py", line
340, in expect return self.expec
t_list(compiled_pattern_list, File
"/usr/lib/python3/dist-
packages/pexpect/spawnbase.py", line
369, in expect_list return
exp.expect_loop(timeout) File
"/usr/lib/python3/dist-
packages/pexpect/expect.py", line
117, in expect_loop return
self.eof(e) File
"/usr/lib/python3/dist-
packages/pexpect/expect.py", line
63, in eof raise EOF(msg)
pexpect.exceptions.EOF: End Of File
(EOF). Exception style platform.
<pexpect.pty_spawn.spawn object at
0x7f7cc15526a0> command:
/usr/bin/rsync args:
[b'/usr/bin/rsync', b'--
info=progress2',
b'/home/mhzayt/Projects/feren-
mini/source-disk/',
b'/home/mhzayt/Projects/feren-
mini/custom-disk/', b'--delete', b'
--recursive', b'--links', b'--
chmod=u+rwX', b'--
exclude=md5sum.txt', b'--
exclude=MD5SUMS', b'--
exclude=.disk/release_notes_url', b'
--exclude=/casper/filesystem.manifes
t', b'--
exclude=/casper/filesystem.size', b'
--exclude=/casper/filesystem.squashf
s', b'--exclude=/casper/filesystem.s
quashfs.gpg'] buffer (last 100
chars): '' before (last 100 chars):
'me files/attrs were not transferred
(see previous errors) (code 23) at
main.c(1207) [sender=3.1.3]\r\n'
after: <class
'pexpect.exceptions.EOF'> match:
None match_index: None exitstatus:
23 flag_eof: True pid: 11560
child_fd: 21 closed: False timeout:
300 delimiter: <class
'pexpect.exceptions.EOF'> logfile:
None logfile_read: None
logfile_send: None maxread: 2000
ignorecase: False searchwindowsize:
None delaybeforesend: 0.05
delayafterclose: 0.1
delayafterterminate: 0.1 searcher:
searcher_re: 0: re.compile('[0-9
]{1,3}(\\.[0-9]{2}){0,1}%')
• The message is......................... 249.92MB/s 0:00:00 (xfr#582, to-
chk=0/661) rsync error: some
files/attrs were not transferred
(see previous errors) (code 23) at
main.c(1207) [sender=3.1.3]

Question information

Language:
English Edit question
Status:
Solved
For:
Cubic Edit question
Assignee:
No assignee Edit question
Solved by:
Cubic PPA
Solved:
Last query:
Last reply:
Revision history for this message
Cubic PPA (cubic-wizard) said (last edit ):
#1

Cubic can be used to customize Ubuntu "based" distros.
They do not have to be official Ubuntu "flavors", but they *must* follow Canonical's ISO packaging structure / format.

For example, Pop_OS!, Linux Mint, Elementary, Linux Mint, and Neon are not "official" flavors of Ubuntu, but you can use Cubic to customize them.

Even though Ubuntu is based on Debian, you can not customize Debian in Cubic, because the file structure of the Debian ISO is very different compared to the format of an Ubuntu ISO.

At initial glance, FerenOS looks like it should be customizable in Cubic.

However, I ~do~ see the error you encountered.
Let me investigate this, and I'll get back to you.

Revision history for this message
Cubic PPA (cubic-wizard) said :
#2

I see what the problem is...

Two of the files on the FerenOS ISO do not have the correct permissions.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    $ cd <cubic_project>/source-disk

    $ find -perm 600
    ./boot/grub/unicode.pf2
    ./casper/vmlinuz

    $ ls -la ./boot/grub/unicode.pf2 ./casper/vmlinuz
    -rw------- 1 root root 2394610 Sep 11 2019 ./boot/grub/unicode.pf2
    -rw------- 1 root root 9716640 Jan 10 13:44 ./casper/vmlinuz
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Both of these files are only readable by root; they should be readable by "all", since this is an ISO.

Compare this to the Ubuntu 20.04.1 ISO. (Note that the ISO doesn't have unicode.pf2)

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    $ find -perm 600

    $ ls -la ./casper/vmlinuz
    -r--r--r-- 1 a_user a_user 11662080 Jul 31 12:43 ./casper/vmlinuz
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

I think you should open a Bug report with FerenOS and ask them to correct this.
The developers probably just copied these files without considering what the ownership should be.
This works fine from an installer perspective, but is not correct for files on a CD/ISO.

When you open the bug, you don't need to mention that you are customizing their Distro.

Jut point out that the permissions should be...

    444 = -r--r--r--

not...

    600 = -rw-------

...so they match all other files on the CD/ISO.

As a matter of fact, they can compare permissions with other files within the FereOS ISO itself:
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    $ ls -la casper/
    total 2256799
    dr-xr-xr-x 1 root root 2048 Jan 10 13:44 .
    dr-xr-xr-x 1 root root 2048 Jan 10 13:44 ..
    -r--r--r-- 1 root root 44548 Jul 24 2018 filesystem.manifest
    -r--r--r-- 1 root root 185 Jul 24 2018 filesystem.manifest-minimal-remove
    -r--r--r-- 1 root root 1968 Jul 24 2018 filesystem.manifest-remove
    -r--r--r-- 1 root root 10 Jan 10 13:44 filesystem.size
    -rw-r--r-- 1 root root 2215682048 Jan 10 13:44 filesystem.squashfs
    -r--r--r-- 1 root root 916 Jul 24 2018 filesystem.squashfs.gpg
    -rw-r--r-- 1 root root 85509871 Jan 10 13:44 initrd.lz
    -rw------- 1 root root 9716640 Jan 10 13:44 vmlinuz
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Revision history for this message
Cubic PPA (cubic-wizard) said :
#3

(They should at least fix the permissions for ./boot/grub/unicode.pf2; that's very easy for them to do. Cubic may still be able to customize the ISO even if the vmlinuz file does not having the right permissions).

Revision history for this message
Cubic PPA (cubic-wizard) said :
#4

I looked into this further, and both files need 444 (readable by all) permissions:

    1. /boot/grub/unicode.pf2
    2. /casper/vmlinuz

So FerenOS will need to fix both of these.

Revision history for this message
Cubic PPA (cubic-wizard) said :
#5

I think we can make Cubic be flexible about the file permissions.

I've created Bug #1913636 "Make Cubic work with Feren OS" to address this.

Nevertheless, in order to be conistent with how other Ubuntu based distros are packaged, Feren OS should correct the permissions on the files included in the ISO

Revision history for this message
Best Cubic PPA (cubic-wizard) said :
#6

Fix released in Cubic version 2021.01.42.

(Remember to file a bug report with Feren OS to help them improve their distro).

Revision history for this message
Distro Maker (mhzayt) said :
#7

You are the boss!

That is an amazing response and turnaround time!

Revision history for this message
Distro Maker (mhzayt) said :
#8

Thanks Cubic PPA, that solved my question.