Releases: equetzal/huronOS-build-tools
huronOS Queue 0.4
It's that time again — an update is here! huronOS Queue 0.4 introduces a range of new improvements and features that are set to enhance the system significantly. After months of careful development, we are thrilled to unveil this new version. But before we dive into the details, we have a major announcement to make.
huronOS: The Official OS for OMI
We're excited to reveal that huronOS is now the official OS for the Mexican Olympiad of Informatics. The OS will debut as the official image during the National Finals, scheduled to take place at ESCOM-IPN from October 6th to October 10th. This collaboration is a significant milestone, and we will be providing direct support to the OMI team to ensure a seamless experience. The 0.4 version of huronOS will be the designated OS for this prestigious event! 🥳🥳🥳
Changelog
Documentation
- We've made substantial enhancements to the system documentation. Check out the docs to explore the improvements.
- We're now introducing versioning for our documentation. This allows you to switch between documentation versions based on the release you're using. We will support the current release and the two previous releases. Any versions older than that will be considered unsupported.
Major Changes
Introducing Bookmarks-Bridge
We've revamped the way we manage bookmarks for web browsers. The system now features the pre-installed bookmarks-bridge, an extension designed to synchronize bookmarks with the directives server. This extension offers the same functionality as the previous initial bookmarks approach but allows you to add bookmarks to the system later. We'll be actively working on bookmark edition and deletion as features for future releases.
Introducing ipman: A Static IP Manager
We're excited to introduce an experimental feature: the ability to set up a static IP for the system. While setting up a static IP address using connman was possible, it was non-persistent and required significant manual configuration. With ipman, we've automated the process. The tool attempts to configure a static IP on the first available Ethernet interface with a working link. If no suitable configuration is found, huronOS falls back to the traditional DHCP approach. Learn more about this feature in the Static IP documentation.
Replacing Facebook's OOMD with EarlyOOM
Recognizing the limitations of Facebook's OOMD in huronOS, we've made a shift to EarlyOOM. Unlike OOMD, which waits for RAM to fill up before acting, EarlyOOM proactively scans RAM status and maintains at least 10% free. If a process consumes excessive RAM, it is terminated, ensuring the UI remains responsive and preventing system crashes due to memory-intensive algorithms, while informing the user why their process was terminated by sending a notification to the GUI.
Enhanced .hsm Extension Support for VSCode
We've introduced support for these extensions as they have become standard for the IOI, allowing you to load the following VSCode extensions:
- C/C++ Compile Run extension
- Microsoft C/C++ for Visual Studio Code (C++ Tools)
- clangd extension
- VSCodeVim extension
- IntelliJ IDEA Key Bindings for Visual Studio Code
New Software Additions
- NeoVim: A trending editor among Vim enthusiasts.
- GDB: The GNU debugger for C and C++.
- Valgrind: A tool for detecting memory leaks in user-space software.
- VisualVM: A debugger for JVM, usable with Java and Kotlin.
Minor Changes
-
Swap Disabled
With the introduction of EarlyOOM, compressed RAM is no longer necessary, so we've removed it. -
IPv6 Firewall Fix
The firewall now effectively blocks and allows all connections via the IPv6 stack, resolving firewall leaks over IPv6 + IPv4 network setups. We do not yet support native IPv6 automated firewall setups. -
Updated Software Versions
We've updated most of the huronOS software to their latest available versions.
Bugfixes
- Codeblocks Defaulted to Gnome Terminal
We've updated the Codeblocks defaults to use Gnome Terminal instead of XTerm by default, enhancing the Codeblocks experience for contestants. - ISO Checksums Fixed on make-iso.sh
We've rectified the checksums generated by make-iso on the final ISO images. - Multiple Script Fixes
We've refined various build scripts to streamline the build process, making it faster, easier, and less reliant on human interaction and local files.
Known Issues
- We still having issues with the nouveau driver for NVIDIA cards, so several graphic cards might be impacted by this issue. This is properly resolved in Debian 12, which is a current milestone to rebase the system on top for that Debian version. We hope to bring the good news sooner than later.
Download
Please, feel free to download on https://huronos.org/download
huronOS Queue 0.3.1
Queue 0.3.1 (alpha-v0.3.1)
This version introduces a small improvement to the system installer. We have enhanced the installation speed on Linux systems by utilizing our customized version of SYSLINUX. This modified version enables parallel installation of huronOS on multiple USB devices by individually flushing the device buffers. As a result, you can leverage high-speed USB hubs (e.g., https://a.co/d/eoTDQ8F) to install the system more efficiently.
Additionally, the installer now supports the use of configuration flags to bypass prompts for data entry. In the previous installation process, you would be prompted to provide the following parameters:
foo@bar:~$ ./install.sh
Starting huronOS installation
[1/13] Locating huronOS image -> /Volumes/huronOS
[2/13] Customizing Installation
Set the root user password:example
URL (http/s) of directives file to configure:https://example.org/example.hdf
IP of the sync server:1.1.1.1
[3/13] Selecting removable device to install huronOS on
Now, you have the flexibility to use flags during the installation process to specify the root password, the directives file URL, and the directives server IP. You can provide these flags in the following manner:
foo@bar:~$ ./install.sh --root-password example --directives-url https://example.org/example.hdf --directives-server-ip 1.1.1.1
Starting huronOS installation
[1/13] Locating huronOS image -> /Volumes/huronOS
[2/13] Customizing Installation
[3/13] Selecting removable device to install huronOS on
Please note that you can only specify certain flags, and you will be prompted to manually provide any missing ones. This simple enhancement enables you to reuse the command or create a helper bash script, eliminating the need to rewrite this data and reducing the risk of errors. For example:
#!/bin/bash
cd /media/iso/
./install.sh --root-password example --directives-url https://example.org/example.hdf --directives-server-ip 1.1.1.1
Should I Update?
Although the version remains the same (0.3), if you intend to use huronOS on a large scale, it is highly recommended to download this updated version.
Download
huronOS Queue 0.3
The Mexican ICPC Qualificatory Round 'Gran Premio de México' is about to start next week, and we're ready to rock it!!
First of all, good news!
-
The huronOS team is growing!
Please greetings to Daniel Cerna @DT3264 from the ITSUR university who is officially part of the team!! 🎉🎉🎉🎉
Daniel has been an impressive contributor and definitely his impact for the alpha-v0.3 is huge, I'm sure you'll will really feel the improvements that he have added to the project. Cheers to Daniel!! 🎉🎉🎉🎉🎉 -
We're rocking a new and fresh website
Please, go to https://huronos.org and check out the new website, we've finally refreshed our old looking website! We've used Docusaurus to build it and the experience it's being amazing. This website is having a huge focus on documentation and even if it's not as vast as we would like, we're on the way to reach that!
Please feel free to contribute on documentation, this is very time consuming task and it's one of the easier ways to contribute, either by typos, improving the paraphrasing, grammar or even writing docs you feel are needed; all is welcome here. -
New Github org!
So, from now on, all the new huronOS git repositories will be created on the new huronOS Github organization. For now this repo will remain here in my personal profile because of some features of Github Pro that I'm able to get as an student, but when donations are enough to cover some paid features on the org, we'll be moving this repo too. -
New Mirrors Site
Now, https://mirrors.huronos.org will be holding all of our blob store, so all the upstream releases well be available here. You can create a mirror if you want to provide better speeds to people near your location. Please contact us to add you to the mirrors list.
The release
Let's go ahead, we've been working on this new version for over 3 months, we're really proud of what we've build and we hope all this features improve the usage and reliability of the system.
Changelog
Breaking Changes
-
New WallpaperSha256 directive
Now, all the wallpapers needs to have aWallpaperSha256
value on the directives file corresponding to the image utilized, this is to minimize Wallpaper download load to the servers on the modality change. As expected this value is calculated by thesha256sum
utility. -
Software additions and deletions
We've made some movements to the availability of software on the default installation:- Removed JetBrains CLion
Basically, we don't have a working license to attach to it, so we had to remove it. - Added JetBrains Rider
Huge thanks to Daniel who is packing an student license for using Rider, please use this carefully, we all benefit from this. - Added C# support with
mono
anddotnet
compilers - Replaced vscode with vscodium
Because VScode is bloated with telemetry and extension suggestions and huge dependency on internet connectivity, regular VScode pops-up several error messages related to no connectivity. We've replaced VScode with Codium which is the unbloated version of vscode and to not present this behavior. - Removed Chrome
We will be removing Chrome from the available software as we're already supporting chromium which have the exact same compatibility and have better support in the open software. Please move to Chromium if you're using Chrome as your default.
- Removed JetBrains CLion
Huge Changes
-
New network system tray
This was a known issue on the previous release, and now it's solved!. We've replaced the nm-applet with an applet compatible with connman, making the new icon on the system tray accurate to the current connectivity. This applet also enables to easily change the network configuration for wifi or wired. -
Now the config URLs support direct IP addressed
So, previous versions only supported having domain names in configuration URLs such as the directives URL or the wallpapers URL. With this new support, now is possible to have URLs with the direct IP on them (e.g.http://192.168.1.61:80/directives.hdf
). This feature is highly important because hosting your directives and wallpapers is just as easy as setting a webserver, dropping the files to it and setup the URL on the installer and your directives. -
Installer Improvements
This version is having a huge focus into improving the installer of the system, so here we have some of the best features added to it.- Verification of installed files
Now the huronOS installer will verify the checksum of all the installed files, this will ensure that all the installations have the complete data and are not providing with damaged software to the contestants. - Partition cleaning on format
With the previous installer when re-installing huronOS on a USB that already had installed the system, it could be possible that the installation wasn't accurate. This fix now zeroes the partition sectors on the disks to ensure the filesystem is newly-created always. - Custom root password
Now the installer will allow you to setup a different root password for the system! This was a very asked feature and will allow to everyone add a better layer of security among contestants. Please check the docs on how to install huronOSfor guidance on how to setup the root password. - Fixed device selection
When selecting a target device to install huronOS on, devices that were named with spaces caused and wrong labeling of the device during the listing. Now all devices should be displayed correctly, avoiding error selections. - Forced firewall exception for Sync Server IP
Now you can setup an IPv4 address during the installation process to ensure that the firewall is always open to this server no mattering the modality that is running. You can also leave this field in blank to backup to the previous behavior of resolving via DNS to the current IP. If you setup the exception IP the system will still resolve the IP of the domain setup in the directives URL, but will keep the exception of the configured IP. Please, check the docs on the firewall to get more information about this.
- Verification of installed files
Medium Changes
-
Wallpaper consistency
In alpha-v0.2 wallpaper was being applied in relation to the current time and not with the real applied mode (such as contest or event), leading to a confusing behavior were a computed did not changed mode but the wallpaper was actually changed. Now this is fixed and the wallpaper always represent the applied mode, so that it's a quick visual identified of when something is not going ok (e.g. a computer that lost internet connectivity and did not change mode). -
Fixed plank dock bad positioning
When a computer changes the resolution of the screen either manually or by a side effect of connecting an external monitor, plank used to stay floating at the middle of the screen or outside the screen bounds. This fixed this behavior and now plank is repositioned each time the resolution changes.
Small changes
- Now the installer system partition will be of 6 GiB.
- Now the directives download deactivates cache, so that the directives are always accurate to the server state.
- Crow Translate released new versions and now display it's icons accurately to improve the UX confusions.
- Updated the bootloader options to
Start contest system
,Start no-sync mode
andDebug huronOS
Build tools improvements
- Fixed
kernel-builder.sh
AUFS patch order. - Created the new
make-iso.sh
tool to improve ISO packing and checksum calculation. - Added
kernel-build.sh --restore-kernel
to untar, install and change the current kernel with the one packed before with this tool. - Now
savechanges
utils, always skip connman network configs, so that any personal password is not leaked. - Now the
huronOS-build-tools/docs
triggers a push tohuronOS-website/docs
which triggers a deploy of the website.
Known Issues
Sadly, we've find out some issues that we've not been able to solve in time and will be impacting this release.
-
System hangs with certain Nvidia graphic cards
In certain scenarios (which we've not been able to reproduce), the system hangs and freeze, leading to a forced reboot. This issue only happens with certain Nvidia Graphic cards and is a wide bug on the Nvidia generic drivers. We're tracking this issue here: #59, we will try to find a workaround for this, but this problem is external to the distro.
Please, avoid using the system on official competitions if you're affected by this problem. We well close the issue when we're certain this does not happens anymore. -
System OOMD not working as expected
In the previous build we added the Facebook's OOMD to kill processes that utilize a massive amount of memory, such as a bad programmed DP. Even if this software helps in most cases, in other ones it is not being able to kill them leading to a system memory overflow and freezing the UI. Track the issue on: #79 #61
If this happens to you, please reboot the machine -
Bookmarks do not update after first browsers launch
Bookmarks cannot be updated during a running contest mode or event mode, they can only be changed on a fresh start mode time date. We will work to improve this behavior, but for now please make sure to setup this data with enough time to avoid unsync issues.
Download!
Please go to https://huronos.org/download to check the newer versions and the mirrors.
huronOS Queue v0.2
Yay! We've reached a second alpha version!
I'm really happy with this version because it was used during the TCMX 2023 (ICPC Training Camp Mexico 2023) and it proved to be very stable!
This version was used during 2 weeks for the training camp simultaneously by more than 60 teams. Another demonstration that the sync save tons for time! All this testing allowed to find important bugs which are now fixed.
So, what can you expect from this public release?
Changelog
Breaking changes
The following changes needs to be taken carefully to consider them when updating to this version:
-
NetworkManager has been replaced with Connman
Why? NetworkManager have deep integrations with the desktop environment and every time the modality is changed and GUI is restarted, the NetworkManager conflicts, resulting on interruptions while synchronizing the system. Connman is designed mostly for embedded devices which tend to work in unknown (and changing) network conditions. This same happen with huronOS!, it is booted in unknown network conditions, each time can be a different network on different hardware. -
Mode change with success ratio of 96%
The/tmp
directory is now mounted on a tmpfs instead of theusrchanges/
system layer. This small change prevented AUFS to reach the unremovable branch state that resulted in a 96% success ratio on the mode change!. This is amazing! -
Added facebook's oomd killer
During contests, it's common to ask the system with more memory than the needed/available leading to a system crash by running out of memory (Like a bad programmed DP). OOMD detects this cases and kill the processes before a system crash occurs. -
Fixing fatal crash when unmouting devices on mode change
When developing the first mode changes on huronOS, it was determined that when changing from a USB-allowed mode to an USB-denied mode it was necessary to unmount all the devices previously mounted on the system. But this process had a big assumption. It assumed that the booting device was always/dev/sdb
which is not true. This could lead in certain cases to unmount the system USB, leading to a system crash.
This is now fixed by using the UUID of the booting USB, making it an exception to avoid unmounting the system.
Medium changes
-
X11-utils have been added to allow overriding display settings.
During the TCMX cheap VGA cables didn't had the last pin signals which work for communication between the OS and the display to select automatically the right resolution and frequency. With this tool overriding the settings is now possible. -
NTP to sync only when unsync
NTP sync was being performed always on the directives sync. Now the sync is being performed only once and now it doesn't update the hardware clock. -
Automount now skips the system USB by using UUID
Related to the previous problem, the automounter was not detecting the system drive to avoid remounting itself. -
Suspend on laptop lid down is now disabled by default
When a laptop is closed and using an external monitor, this configuration prevents the laptop from suspending. -
Fixed persistence restoration when clock unsync
Sometimes when the hardware clock was unsync, the system could determine that the time was different than the real one, leading to unexpected behavior like reboot during a contest and not restoring the contest persistence. This is now fixed by assuming that the previous mode should still applied and this behavior does not change until the clock is sync again.
Small changes
- Now NTFS automount is supported!
- Build number is now printed on the boot
ifconfig
replace withip
- DNS resolve now have default timeout of 3s
- Budgie
desktop-view
package added to support icons on desktop. - Systemd units permissions fixed.
- Random seed is now fixed.
/home/contestant
is now properly chowned on each mode change.- Now cloudflare is the default DNS resolver.
Known Issues
-
With the connman network manager switch, the system tray icon shows as no-internet due to nm-applet not being able to communicate with the old NetworkManager. This can confuse but make to sure to use
connmanctl
to make use internet connection is available. This issue will be corrected on the next release with a proper applet. -
The installer does not verify the installation with checksums, this can lead to bad installations in certain scenarios. The installer will be improved on next release.
Should I update?
Definitely yes! This release has been widely more tested and has shown to be more reliable than the v0.1, it has also fixed very serious bugs that can lead to system crashes which are not expect at all.
Download
Please, download this version on https://huronos.org/downloads/huronOS-alpha-0.2-amd64.iso
Or check another downloads on https://huronos.org/download.html
Queue 0.1
huronOS Queue 0.1 (alpha-v0.1)
So, huronOS has reached its very first public release, the alpha v0.1 which corresponds to the build 2023.b0019, and it's amazing to think that this project has finally reached a public release in just 19 builds!.
So, what can you expect from this public release?
Changelog
- Installer will prompt for a directives file URL to sync with it always.
- If needed to change, you can edit the
huronOS/data/configs/sync-server.conf
file to change the URL - Persistence working with two separated partitions, one for event/always modality and other for contest modality
- Modality change with a success ratio of 75%, and the 25% of the failures does crash anything, just enter a preventive mode and a reboot is enough to fix the issue. Check #10 for details on the progress for soving the rest of the 25%.
- Background download for wallpapers, sha256 verifications.
- Updated budgie desktop enviroment
- Added root scripts for huronOS under the name of hos-tools.
- Updated base to Debian 11.6, Linux to 6.10 and AUFS to 6.0
Download
Please, download this version on https://huronos.org/downloads/huronOS-alpha-0.1-amd64.iso
Or check another downloads on https://huronos.org/download.html