Coder Social home page Coder Social logo

chroot-distro's Issues

Release process

I'm thinking, that now that we have a development version which seems to fix several problems, that maybe we should make a new release. There is currently only main branch and one tag with name 'module'. The first version has been dubbed as v1.0.0.

Moving forward, I think we should define release process. First we should define the versioning scheme. For versioning there is basically two choices:

  • Semantic versioning
  • Calendar versioning

Calendar versioning takes the date of release and is formatted in specific way, for example 20240718, or 24.07. If versioning is done this way then there is significance added to version identifiers other than being unique. This is simple but may not convey the range of changes thus requiring the user to peruse change logs to determine if they can/want to update the version.

Semantic versioning on the other hand uses version format of major.minor.patch with a quite a few variations on format, most notably having -rc scheme (rc = release candidate), or some other development phase indicator. The interpretation of major and minor may vary depending on the organisation (major version change may mean that there was backward incompatible changes or it may mean that there was major user visible change, or combination of both). Minor versions may not be sequential as developers may decide to skip minor versions to denote big changes which will not warrant major version change.

My opinion is to use semantic versioning with major version change meaning there was backward incompatible change. Minor version would be denoting that there was a new feature, or some other significant change but which does not break backward compatibility. Patch version would be used for small bug fix only releases (or really small other changes, note: no breaking changes). If any of the numbers change then following numbers reset to zero. And for simplicity there is no need for rc stuff, and instead just increment the version as needed. If the version is not what we want it is easy to discard the version, and just create a new one.

After deciding version scheme we should define how we handle different versions in version control. If we use calendar versioning there is no need for complicated process, just tag each published version with correct version label. On the other hand, for semantic versioning there is more choices.

Available choices:

  • main branch only
    • + simple to maintain
    • - only newest version is supported
    • - if new version is in process then merging from development branches needs to wait until release is out
  • main branch from where release branch is branched
    • + multiple versions can be supported
    • + development can continue on main branch
    • + easy to make fixes to release branch to fix regressions
    • - needs more maintenance (changes to release branch needs to be merged to main branch if the change is not release specific)
  • main stable branch from where release branch is branched and separate development branch where new features are developed
    • + main branch is always stable
    • + development is separated from release process
    • + multiple versions can be supported
    • - maintenance of different branches can be daunting to a small team

Personally I would use the second one with combined major.minor formatted release branch but given the state of the project the first one is okay too (it is easy to change to second one).

There is actually at least one more branching choice where the release branch is separated to major and minor branches and it makes it possible to develop multiple incompatible versions but given our situation this does not add anything compared to second choices.

Also, even if calendar versioning is used then it is possible to use separate release branches or even separate development branch.

Code license

I just realized that code does not have any license mentioned. What is the license? MIT? GPL? Something else?

Restore restores distro to wrong directory

Steps to reproduce:

  1. Backup a distro
  2. Uninstall the distro
  3. Restore the distro

Expected outcome:
Distro is restored properly

Actual outcome:
Distro is restored to /data/local/chroot-distro/<distroname>/data/local/chroot-distro/<distroname>

No distro.tar.xz

Screenshot_20240331-102359_Termux.png

How to fix this? How to download this file? Or is there any steps i missed?

Alpine Linux download link no longer valid

Steps to reproduce:

  1. Previous Alpine Linux downloads removed if downloaded
  2. chroot-distro download alpine
  3. Choose for example minirootfs

Expected outcome:
Alpine rootfs is downloaded

Actual outcome:
Download errors out with 404.

So, the issue is that the link points to latest-stable but the referenced 3.19 is no longer there is 3.20 has been published in May.

So, either the link needs to be updated to latest 3.20 version or directly reference the v3.19 instead of latest-stable. Or, better yet, process the latest-releases.yaml to provide always up to date information.

Login Command not working

Input:- chroot-distro login ubuntu
Output:- chroot-distro - unknonwn parameters
try 'chroot-distro help' for more information

Can't download anything

Rooted. Installed busybox module

Installed your magisk modual.

I run this and get this error for every distro.
Screenshot_20240312-113950_Termux

I have newbie doubts

Screenshot_20240331-024519_Termux.jpg

to be able to use the chroot-distro commands. I have to do it from your. and when I do it. It won't let me download the distribution.

CentOS fails to install

Please check report #9 for instructions on how to create a package zip. Please note, that you will have to reboot the device before the new version can be used.

I'll try to add instructions to documentation later but for now this will have to suffice. Also, I think it is time to create a new release shortly as there hasn't been any findings with the new code and it fixes several problems with original code.

If the issue still persist with latest code then please provide information about the exact rootfs you have downloaded so that I can try replicating the issue.

I installed the new module. At this point I was able to install and login in kali without errors. When I try to log into CentOS I get the error /bin/su. Personally, I don’t need it, but I think it’s worth informing.

Originally posted by @Dlazder in #6 (comment)

distribution download error

Connecting to github.com (20.201.28.151:443)
wget: note: TLS certificate validation not implemented
wget: TLS error from peer (alert code 80): 80
wget: error getting response: Connection reset by peer
Failed to download the Debian Rootfs.
rm: /data/local/chroot-distro/.rootfs/debian.tar.xz: No such file or directory

Inaccessible userdata after using chroot-distro

I can't be the only one, so it should be pretty self explanatory.
Happened on two my different phones - common features: Xiaomi, rooted, Android 14.
After exiting shell from distro's chroot and then exiting Termux, phone apps don't have access to phone storage.

Examples:

  • Gallery not able to display photos
  • Files (app) not able to display internal memory files
  • Material Files, here I got more informative error message:
    "java8.nio.file.FileSystemException: /storage/emulated/0: opendir: Transport endpoint is not connected"

Edit:
Important to add - a simple reboot fixes this, but it's cumbersome.

Adb shell: Installing a distro fails

Based on report #17 I was able to reproduce the issue. And the issue seems to be that when using Adb shell, tar command is not as advanced as when using termux. This leads to problems with installing distros especially so with those compressed with xz (Adb shell tar does not support xz compression directly).

Document how to create a development version of chroot-distro

Add information about how to create a development build of chroot-distro for the cases where there is a need for using the latest code available to check if the reported bug has already been corrected. There could be also other reasons for using the latest code.

Automatic updates

chroot-distro should support updateJson property for module.prop file and the associated update JSON file. This makes updating to a new version easier as there is no need for the user to download the updated version separately.

Adb shell: uninstalling breaks at least termux

I have installed fedora Linux on my moto g stylus 2021 with chroot-distro, however at the end of installing, it spat out an error "chroot: exec /bin/su no such file or directory". This same error message shows when I run the login command, when I attempted to uninstall fedora, I got endless numbers of permission denied errors speeding across my screen, after a while I ctrl + c'ed it to only find that after a restart my termux I was shown a file not found error and my only choice was to exit termux. I needed to re install termux, busybox, and chroot-distro to get it back up and running.

Sudo not working in chroot on P7P

When attempting to use sudo inside chrooted system (notably archlinux), sudo command is broken, complaining about

effective uid is not 0, is /usr/bin/sudo on a file system with the 'nosuid' option set or an NFS file system without root privileges?

I guess this has to do something with the way Android mounts /data? The device is Pixel 7 Pro.

can't install ubuntu

1|:/ # chroot-distro download ubuntu
[1] ubuntu bionic 18.04.5
[2] ubuntu focal 20.04.5
[3] ubuntu jammy 22.04.4
[4] ubuntu mantic 23.10
[5] ubuntu noble 24.04
[6] ubuntu trusty 14.04.6
[7] ubuntu xenial 16.04.6
Enter a number : 2
Connecting to cdimage.ubuntu.com (91.189.91.124:443)
wget: note: TLS certificate validation not implemented
saving to '/data/local/chroot-distro/.rootfs/ubuntu.tar.xz'
ubuntu.tar.xz 100% |********| 25.0M 0:00:00 ETA
'/data/local/chroot-distro/.rootfs/ubuntu.tar.xz' saved
:/ # chroot-distro install ubuntu
tar: Not tar
Error: Unpacking the archive failed
5|:/ #

--as-is doesn't work

When i run "chroot-distro command ubuntu --as-is ls", it shows "chroot: exec /bin/--as-is: No such file or directory"

Unable to download most distros

alpine, cent os, parrot os, fedora, all Debian versions, and most likely more as i have not tested them all are some of the ones affected. Below is the output of trying to download fedora but all of them give basically the same error

:/ # chroot-distro download fedora
Connecting to github.com (140.82.112.4:443)
wget: note: TLS certificate validation not implemented
wget: TLS error from peer (alert code 80): 80
wget: error getting response: Connection reset by peer
Failed to download the Fedora Rootfs.
rm: /data/local/chroot-distro/.rootfs/fedora.tar.xz: No such file or directory
1|:/ #

EDIT1: after some further testing, the only operating systems that will work on my device are ubuntu, kali, and arch, i have only seen one other person on the issues page with this same problem and neither of us know how to fix it

getopt: inaccessible or not found

:/ # chroot-distro
/system/bin/chroot-distro[21]: getopt: inaccessible or not found
I'm sorry, getopt --test failed in this environment.
1|:/ #

Error installing distribution

When installing the distribution I received these errors:

.../files/home # chroot-distro install kali
grep: warning: stray \ before /
mount: /data/local/chroot-distro/kali/dev: mount point does not exist.
       dmesg(1) may have more information after failed mount system call.
mount: /data/local/chroot-distro/kali/sys: mount point does not exist.
       dmesg(1) may have more information after failed mount system call.
mount: /data/local/chroot-distro/kali/proc: mount point does not exist.
       dmesg(1) may have more information after failed mount system call.
mount: /data/local/chroot-distro/kali/dev/pts: mount point does not exist.
       dmesg(1) may have more information after failed mount system call.
/system/bin/chroot-distro[844]: can't create /data/local/chroot-distro/kali/etc/resolv.conf: No such file or directory
/system/bin/chroot-distro[844]: can't create /data/local/chroot-distro/kali/etc/hosts: No such file or directory
chroot: failed to run command ‘/bin/su’: No such file or directory
.../files/home #

I mounted the system partition with write permissions, but this did not change nothing.

Unable to use sudo

Distro: archlinux
Android: 14
Root by: KernelSU
So I installed module, rebooted, added alias to chroot-distro bin in Termux, downloaded Arch, installed Arch, logged in Arch (got a bunch of issues with PGP keys and resolv.conf, but that's unrelated), installed sudo, added a user with useradd -m -G wheel -s /bin/bash damglador. Logging in the user and trying to run sudo throws an error - sudo: effective uid is not 0, is /usr/bin/sudo on a file system with the 'nosuid' option set or an NFS file system without root privileges?. User is in sudoers group, otherwise it would throw a different error.

If it's a known issue that's not on the chroot-distro end, I would like to know how to fix it?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.