void-packages icon indicating copy to clipboard operation
void-packages copied to clipboard

[WIP] New package: boot-66serv-2.4.0.

Open mobinmob opened this issue 5 years ago • 38 comments

This PR is the continuation of the packaging and integration work @teldra has done on https://github.com/void-linux/void-packages/pull/23122, which is based on the work @zenfailure has done on https://github.com/void-linux/void-packages/pull/21142. They have done pretty much all the basic work needed -and then some- to integrate @Obarun 's work with void's packaging.

In this PR I will continue their work, try to make the configuration and switch from one init to the other as smooth as possible and package the frontend service files from https://github.com/mobinmob/void-66-services once they are ready.

mobinmob avatar Oct 19 '20 19:10 mobinmob

Version 2.2.1 is a minor update with nice documentation fixes.

mobinmob avatar Oct 19 '20 19:10 mobinmob

Improvements in the runit service which not does not execute /etc/runit/2 anymore:

  • The service uses now its own dedicated "66" runlevel and not the "default" runlevel, which has services that are handled by the boot@ module service (aggety-*).
  • It does not try to execute /etc/rc.local if present - that is handled by the services in the boot@ module.
  • It does not try to match a word in the kernel commandline to a runlevel and use it.

The above make easier to switch between 66 and runit as the collections of (runit) services are seperate. It sould be totaly transparrent for the new user. Existing users that have the runit service enabled should reenable it by:

66-disable -S runit
66-enable -S -F -C runit

in order to use the new service frontend. They will also have to reenable the runit services they use the normal way - by symlinking to /var/service.

The runit service continues to have an issue, as it does not terminate the supervised services when stopped.

mobinmob avatar Nov 08 '20 15:11 mobinmob

@execute in [stop] is written now in shell and works as it should.

mobinmob avatar Nov 23 '20 23:11 mobinmob

  • The switch-initutils service frontend file now resides in this package instead of the void-66-services repo. The service is needed regardless of the use of other 66 services. A user can choose to use 66 with runit services and they will still need to have the proper init utilities...
  • The '@version' value is set now seperately for each frontend. If a frontend changes only its '@version' should be incremented. boot@ is of couse an exception.

mobinmob avatar Dec 15 '20 22:12 mobinmob

There is now a template for the first release of void-66-services. It contains 77 services.

mobinmob avatar Dec 28 '20 22:12 mobinmob

Can we add this to void docs as well?

travankor avatar Dec 29 '20 07:12 travankor

Can we add this to void docs as well?

@teldra has written the first doc in his void-docs fork. I am revising it because certain things have improved substantially (handling switching poweroff/halt etc transparently and automatically). I will add the doc in this PR and install it with vdoc in the package. I think sending a PR to void-docs is a bit premature at this stage - Ι want to improve certain things first and get rid of [WIP] :)

mobinmob avatar Dec 29 '20 09:12 mobinmob

More work on the runit service:

  • Removed the log argument for runsvdir.
  • Replaced some utilities (env, mkdir, ln) with their alternatives from s6-portable-utils.
  • Changed the service @type from longrun to classic. The change requires disabling and re-enabling the service for the current users.

mobinmob avatar Jan 03 '21 14:01 mobinmob

New version of boot-66serv:

  • New homepage and distfiles for boot-66serv.
  • Needs at least 66 v. 0.6.0.0 - please do not update until https://github.com/void-linux/void-packages/pull/27815 is merged. To use, boot@system should be re-enabled.
  • @options is removed from services frontend files, as log is always created (unless it is explicitly disabled per-service) and [environment] automaticaly enables @options = ( env ).

mobinmob avatar Jan 23 '21 20:01 mobinmob

Rebase onto master and remove tty@ frontend service file - no longer needed, as boot-66serv uses tty-rc@ and tty-earlier@ which are included.

mobinmob avatar Feb 01 '21 17:02 mobinmob

Small improvement: There is now a symlink in /etc/66rc.conf that points to the configuration file of the boot@system service. Now users can edit directly /etc/66rc.conf with their favourite editor and then enable again the service with:

# 66-enable -F -t boot boot@system

That is strictly to provide a more common approach to editing the basic boot configuration instead of using the - powerfull - 66-env utility. Many thanks to @Obarun for the suggestion of the symlink.

mobinmob avatar Feb 03 '21 00:02 mobinmob

The latest commit adds a small utility script named 66boot-initial-setup. The utility automatically creates the recommended trees (boot, default and runit) and enables needed services in them. It is non-interactive. Users can execute it after boot-66serv installation or if they want to start from scratch after removing all their existing trees.

There are also minor changes in the template (double-quoting vars etc).

mobinmob avatar Feb 04 '21 20:02 mobinmob

66boot-initial-setup:

  • do not overwrite existing /etc/66/conf/boot@system/version/boot@system if it exists.

runit service frontend file:

  • redirect stdout to stderr in order to catch everything in the per-service logger,
  • use ln instead of s6-ln (different behaviour),
  • remove redundant files/dirs in /var/service.

template:

  • disable TMPFILE support by default,
  • remove all conf variables from the environment.

mobinmob avatar Feb 06 '21 00:02 mobinmob

There is now some updated documentation for 66 on voidlinux: https://github.com/mobinmob/void-66-services/blob/devel/conf/void-66-conf.md @travankor

mobinmob avatar Feb 14 '21 18:02 mobinmob

Changes:

  • New void-66-services release. It includes basic documentation (linked in the previous comment). It is not installed with the package yet. Other significant changes are included in the release changelog.
  • Small fix - typo in the 66boot-initial-setup script.
  • Rebased onto master.

mobinmob avatar Feb 14 '21 22:02 mobinmob

Changes:

  • Remove the warning from the start of the configuration file that is linked in /etc/66rc.conf. That is a tiny usability improvement. The removal happens automatically if the file is generated by using 66-env, but it is just copied in the 66boot-initial-setup script.
  • Add two upstream patches. The first fixes a potential issue discovered by testing this PR with voidvault (encrypted root with btrfs subvolumes). The second makes the iptables service more robust, since it will not need an external script to function.
  • Rebase onto master.

mobinmob avatar Feb 27 '21 23:02 mobinmob

Changes:

  • template : Create the log directory in /var/log/66 with proper permissions and ownership (_s6log). That is not needed for most cases, as it is created automatically by the 66 utilities. The problem is that it can fail - I have seen it happening with zfs datasets mounted under /var/log. Creating it during installation solves this issue.
  • files/66boot-initial-setup: use a variable for the new boot@system configuration file and use it consistently.

mobinmob avatar Mar 03 '21 22:03 mobinmob

There is now an unofficial repo that contains boot-66serv and void-66services packages. The package versions are in the following format: upstream.version.number.0.builddate Currently, that is 2.3.0.0.20210305 for the boot-66serv package and 0.0.2.0.20210305 for the void-66services package. The documentation has been updated with information on how to enable and use the repo.

mobinmob avatar Mar 05 '21 17:03 mobinmob

Add scandir-66serv package. This is just the beggining of enabling proper user services. Documentation and additional scripts will follow.

mobinmob avatar Mar 16 '21 19:03 mobinmob

Changes

template:

  • remove the --ZFS_IMPORT=!zpoolcache configure switch, as zpoolcache is now the default method.
  • remove the creation of the log directory - that is done now by the 66 package.

pathes/

  • remove previous patches
  • include all changes since the release

mobinmob avatar Mar 22 '21 20:03 mobinmob

New version of boot-66serv. The patch is dropped, as the changes are now included in the release, and the PR is rebased on master. The new minor relase has fixes and small improvements.

mobinmob avatar May 28 '21 20:05 mobinmob

Files in srcpkgs/boot-66serv/ contain a lot of trailing spaces. Could this PR should be just 3 commits, one for each package?

paper42 avatar May 29 '21 23:05 paper42

Files in srcpkgs/boot-66serv/ contain a lot of trailing spaces.

I should clean them up ;)

Could this PR should be just 3 commits, one for each package?

It should be a commit per-package to get ready for merging. Until there is that possibility and certain things get improved, I 'd rather have a commit history.

mobinmob avatar May 30 '21 14:05 mobinmob

  • Rebase on master.
  • Remove tmpfiles.d support - it does not exist on voidlinux.

mobinmob avatar Jul 13 '21 21:07 mobinmob

Changes:

  • Update to version 2.4.0.
  • Add back modules.sh (it has moved to a separate repo), add a new configuration switch for it.
  • Rebase the patch to remove tmpfiles, add a fix for complete removal.
  • Rebase all commits to master.

mobinmob avatar Sep 15 '21 13:09 mobinmob

Change:

  • Removed --TMPFILE=!no from configure_args. I have removed the support for tmpfiles.d, so the switch is now redundant.

mobinmob avatar Sep 15 '21 19:09 mobinmob

  • Rebase on master.
  • Fix and rename the tmpfiles.d code removal patch.

New binary packages (20211119 suffix) have been pushed to the void-66 repo (doc).

mobinmob avatar Nov 19 '21 18:11 mobinmob

Just one more successful build and i have something to do for weekend

thegarlynch avatar Nov 24 '21 02:11 thegarlynch

Changes for the PR:

  • Squashed all commits in order to have one commit per package. Full history of the changes is retained in the 66-voidlinux repo in codeberg where all new development will take place before updating this PR.
  • Rebased on master.

Changes for boot-66serv:

  • 66boot-initial-setup is improved significantly.
  • Two new configuration scripts are added:
    • 66boot-rcdotconf, which uses the values of /etc/rc.conf to configure boot@system and
    • 66boot-storage-autoconf which will discover btrfs, zfs, dmraid, luks, lvm volumes and swap partitions/files and configure 66boot-66serv accordingly.

Using the three 66boot scripts and re-enabling boot@system should be enough to configure boot@system.

  • The upstream system-sysctl service now executes the script from runit-void, and the modules-load script is used in place of the modules.sh obarun script. Due to these changes 66-enable -t boot -F boot@system needs to run after the update.

The packages in the void-66 repository will be updated tommorow - the new boot-66serv package with have the version suffix 20220220.

Edit: The new package has been uploaded.

mobinmob avatar Feb 20 '22 10:02 mobinmob

boot-66serv changes:

  • Install backwards compatibility symlink for removed /usr/share/66/script/modules.sh script. That is not needed if someone re-enables boot@system after update but it is a failsafe.
  • Add INSTALL.msg to remind users to re-enable boot@system after an update.
  • Mount efivarfs rw, to have the same behavior as the official runit scheme - reported by @paper42, many thanks :)

mobinmob avatar Feb 21 '22 17:02 mobinmob