Condres OS project ends

Condres OS announced their end, it is always a hard decision to make, but to our Italian friends we wish them the best in their lives.

To read more on this:
https://condresos.codelinsoft.it/index.php/blog/announce-closing-of-the-condres-os-project

Thanks to @Simon to bring it to our attention.

1 Like

Sorry to hear that.
For sure that I am not the only one thinking that, but can we / devs contact the Condres OS devs to join our team?

1 Like

We can, but if you read the reason it is the same reason why Antergos ended its run. They want to spend more time with their families.

I was waiting for such an announcement. There are too many Archlinux based projects. Too much for every single one to live. Which one will be the next to close its doors?

Arcolinux? RebornOS? Namib? Another one?

EndeavourOS… :scream:… I’m just kidding, or is it too soon, after Antergos’ death? …

1 Like

Really too soon. But as you’re providing only one ISO, it is simpler to manage than the nine Condres provided.

And just try to think about closing the project… Just try… :angry:

3 Likes

I’m afraid now to do it for at least 10 years, who wants Bugman’s wrath?!?:scream::smile:

4 Likes

:joy: :stuck_out_tongue_winking_eye::rofl:

1 Like

I think it was admirable that they recommended to those who are wishing to continue with Arch to come over to Endeavour.

5 Likes

Good evening to all, I am one of the developers of the now-defunct Condres OS. As you saw from the announcement we decided to stop developing it to dedicate ourselves full time to our families.

We decided that for those who want to use pure arch, there is no better way than Endeavor OS.

I don’t want those from Manjaro, but however stable it may be, it can never be a pure arch.

You are doing a great job and I would like to give you some advice for those who would like to use the system on virtualbox to use the dkms modules inside the ISO. I can send you the code you would like to use for calamares if you want.

10 Likes

Here is the code you need to use the virtualbox modules and remove them if you find the system while if installed on virtualbox it does not remove them.

create the mrpacman folder in src/modules ( calamares installer )

Add main.py and add code:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

#
# === This file is part of Calamares - <http://github.com/calamares> ===
#
#   Copyright 2014, Pier Luigi Fiorini <pierluigi.fiorini@gmail.com> [packages]
#   Copyright 2016, Mike KrĂĽger <mikekrueger81@gmail.com> [mrpacman]
#
#   Calamares is free software: you can redistribute it and/or modify
#   it under the terms of the GNU General Public License as published by
#   the Free Software Foundation, either version 3 of the License, or
#   (at your option) any later version.
#
#   Calamares is distributed in the hope that it will be useful,
#   but WITHOUT ANY WARRANTY; without even the implied warranty of
#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#   GNU General Public License for more details.
#
#   You should have received a copy of the GNU General Public License
#   along with Calamares. If not, see <http://www.gnu.org/licenses/>.

import libcalamares
import subprocess
from libcalamares.utils import check_target_env_call, target_env_call


class PackageManager:

    """ Package manager class.

    :param backend:
    """

    def __init__(self, backend):
        self.backend = backend

    def install(self, pkgs, from_local=False):
        """ Installs packages.

        :param pkgs:
        :param from_local:
        """

        if self.backend == "pacman":
            if from_local:
                pacman_flags = "-U"
            else:
                pacman_flags = "-Sy"

            check_target_env_call(["pacman", pacman_flags, "--noconfirm"
                                  ] + pkgs)

    def remove(self, pkgs):
        """ Removes packages.

        :param pkgs:
        """

        if self.backend == "pacman":
            check_target_env_call(["pacman", "-Rs", "--noconfirm"]
                                  + pkgs)

    def upgrade(self):
        """ upgrades all packages.

        """

        if self.backend == "pacman":
            try:
                check_target_env_call(["pacman", "-Syyu", "--noconfirm"])
            except:
                print("unresolvable package conflicts detected")


def get_language():
    output = libcalamares.globalstorage.value("localeConf")
    lang = output["LANG"]
    
    parts = lang.split(".")
    if len(parts) < 1:
        return ""

    lang = parts[0].lower()
    lang = lang.replace("_", "-")
    return lang


virtualbox = False #global var for virtualbox_check

def virtualbox_check():
    command = "dmidecode -s system-product-name"
    output = subprocess.check_output(['sh','-c', command]).decode('ascii')
    substring = output[0:10].lower()

    global virtualbox
    if substring == "virtualbox":
        virtualbox = True
    else:
        virtualbox = False

    return virtualbox

def packagelist_filter(pkgs, pkg_remove_filter, first_index, last_index):
    new_package_list = []
    for pkg in pkgs:
        part = pkg[first_index:last_index].lower()
        if part != pkg_remove_filter:
            new_package_list.append(pkg)

    return new_package_list


def run_operations(pkgman, entry):
    """ Call package manager with given parameters.

    :param pkgman:
    :param entry:
    """

    for key in entry.keys():
        if key == "install":
            pkgman.install(entry[key])
        elif key == "remove":
            if virtualbox:
                pkgman.remove(packagelist_filter(entry[key], "virtualbox", 0, 10))
            else:
                pkgman.remove(entry[key])
        elif key == "localInstall":
            pkgman.install(entry[key], from_local=True)


def run():
    """ Calls routine with detected package manager to install locale packages
    or remove drivers not needed on the installed system.

    :return:
    """

    virtualbox_check()

    backend = libcalamares.job.configuration.get("backend")

    if backend not in ("pacman"):
        return "Bad backend", "backend=\"{}\"".format(backend)

    pkgman = PackageManager(backend)
    operations = libcalamares.job.configuration.get("operations", [])

    for entry in operations:
        run_operations(pkgman, entry)

    if libcalamares.globalstorage.contains("packageOperations"):
        run_operations(pkgman,
                       libcalamares.globalstorage.value("packageOperations"
                       ))

    return None

Create module.desc

---
type:       "job"
name:       "mrpacman"
interface:  "python"
script:     "main.py"

Create mrpacman.conf

---
# Pacman is the man! ;)
# Which package manager to use, options are:
#  - pacman      - Pacman
#

backend: pacman

#
# List of maps with package operations such as install or remove.
# Distro developers can provide a list of packages to remove
# from the installed system (for instance packages meant only
# for the live system).
#
# A job implementing a distro specific logic to determine other
# packages that need to be installed or removed can run before
# this one. Distro developers may want to install locale packages
# or remove drivers not needed on the installed system.
# This job will populate a list of dictionaries in the global
# storage called "packageOperations" and it is processed
# after the static list in the job configuration.
#
#operations:
#  - install:
#      - pkg1
#      - pkg2
#  - remove:
#      - pkg3
#      - pkg4
#  - install:
#      - pkg5
#  - remove:
#      - pkg2
#      - pkg1
#    install:
#      - pkgs6
#      - pkg7
#  - localInstall:
#      - /path/to/pkg8
operations:
  - remove:
      - calamares
      - virtualbox-guest-utils
      - virtualbox-host-dkms
      - virtualbox-guest-dkms

Now enable the module from the calamares setting:


- exec:
  - mrpacman

You can try and if there are problems I can help you solve them. The module was used on Condres without problems.

To be sure that you need to remove the packages you need to insert the virtualbox dkms into the iso image packages.

Without that, the script fails to find the required packages and fails to install.

I hope I have been helpful.

6 Likes

What a shame to hear that, another Arch-Distro dies! Coincidence, or an evil ohm?!

1 Like

We stopped developing to dedicate ourselves full time to our families. I will give developers a helping hand by passing the Condres code to them too. The effort made cannot die and leave it in oblivion.

11 Likes

Thank you for your reference and the code you gave to us.
I wish you all the best in your life with your families, that’s the most important reason in your life and you’re always welcome to drop by over here.

6 Likes

Thanks to share the code!
And much more to provide help for questions.
I would like to share findings hints and tricks between devs maintaining arch-dists.

4 Likes

Another one bites the dust. (Queen)

I found Condres just as Antergos was shutting down and just before learning of some unnamed distro that finally came out as EndeavourOS.

It is most likely I will never install Arch the “arch way”. Luckily there are alternate ways to install a base Arch system.

One under the radar Arch derivative, Bluestar Linux seems to have come into existence in 2013. Seemed to me some credit is due as one of the arch-based distros.

(noticed that EndeavourOS is missing from the list on https://wiki.archlinux.org/index.php/Arch-based_distributions)

EndeavourOS is my number 1, “daily driver”. Cheers

They only mention distro’s that have been active for more than a year.

Which is normal after all. A lot of projects are dying during their first year, so why indexing them?

I found another arch-based, well artix linux based distribution called OpenStage Linux. I won’t bet a lot of money on them. You can make the same thing in five minutes starting with an official ArtixLinux from scratch! :sweat:

It is Artix Linux (Archlinux + OpenRC) with two third party repositories above official ones, Plasma, Opera and Octopi to sum up everything it.

See https://www.openstagelinux.org/ for more infos.

Anyway, thanks to Condres developer for sharing python code!

We have already removed everything related to Condres OS and the ad you find here is available:

https://condresos.codelinsoft.it/

The project is completely removed.

1 Like