Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 590902 - dev-util/catalyst - add systemd support
Summary: dev-util/catalyst - add systemd support
Status: UNCONFIRMED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: Gentoo Catalyst Developers
URL:
Whiteboard:
Keywords: PATCH
Depends on:
Blocks:
 
Reported: 2016-08-10 00:26 UTC by anonymous
Modified: 2020-11-04 22:52 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
bootloader-setup.sh.patch (bootloader-setup.sh.patch,578 bytes, patch)
2016-08-10 00:27 UTC, anonymous
Details | Diff
releng.patch (releng.patch,2.32 KB, patch)
2016-08-10 00:28 UTC, anonymous
Details | Diff
bootloader-setup.sh.patch (bootloader-setup.sh.patch,558 bytes, patch)
2016-10-14 19:03 UTC, anonymous
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description anonymous 2016-08-10 00:26:33 UTC
Current version of Catalyst support only OpenRC when you build LiveCD. To able build LiveCD with systemd Catalyst should support systemd as well.

I made demonstration patch that make possible build LiveCD with systemd. Unfortunately it doesn't ready for production.

I don't familiar with Catalyst's codebase very well so I need your help, developers.

Any ideas how we can improve Catalyst?

Reproducible: Always
Comment 1 anonymous 2016-08-10 00:27:30 UTC
Created attachment 442886 [details, diff]
bootloader-setup.sh.patch
Comment 2 anonymous 2016-08-10 00:28:17 UTC
Created attachment 442888 [details, diff]
releng.patch
Comment 3 Brian Dolbec (RETIRED) gentoo-dev 2016-08-11 19:17:53 UTC
Adding a systemd option to catalyst capabilities I can agree with.

But making a livecd with systemd instead of openrc, why?  Is there something special about systemd that is needed for a livecd?  The reason I ask, is that pretty much all of the developers that work on these images don't run systemd.  So, as long as it works and runs everything needed from a livecd, I don't see the point in making one by people that don't run systemd.  Having the option to build one with it instead is perfectly fine for anyone to build their own.

We do offer systemd based stages for new installs.
Comment 4 anonymous 2016-08-11 20:27:03 UTC
(In reply to Brian Dolbec from comment #3)
> Adding a systemd option to catalyst capabilities I can agree with.
> 
> But making a livecd with systemd instead of openrc, why?  Is there something
> special about systemd that is needed for a livecd?  The reason I ask, is
> that pretty much all of the developers that work on these images don't run
> systemd.  So, as long as it works and runs everything needed from a livecd,
> I don't see the point in making one by people that don't run systemd. 
> Having the option to build one with it instead is perfectly fine for anyone
> to build their own.
> 
> We do offer systemd based stages for new installs.

Well, I am talking about systemd option to catalyst capabilities.

Let's focus on this thing.

But okay, in additional let's talking about livecd with systemd. It will be pretty well to have livecd with systemd. 

And I don't push you to replace systemd instead of openrc in general livecd. Instead you can build one more livecd with systemd for those who need it.

One major thing that don't work for livecd with openrc is systemd-nspawn. https://www.freedesktop.org/software/systemd/man/systemd-nspawn.html

First of all, with systemd-nspawn I can run systemd-tools in container. Chroot can't help me. And with working systemd-tools DevOPs can build fully automate installation with ansible. That what I really need.

So, first step - add systemd option to catalyst capabilities.

P.S. Second step - prepare units for systemd that replaced openrc stuff. I'm working on it.
Comment 5 anonymous 2016-08-21 15:28:59 UTC
Hi! So, can you comment, please?
Comment 6 Jeroen Roovers (RETIRED) gentoo-dev 2016-08-21 16:01:03 UTC
Comment on attachment 442888 [details, diff]
releng.patch

>diff --git a/releases/weekly/specs/amd64/installcd-stage1.spec b/releases/weekly/specs/amd64/installcd-stage1.spec
>index 94eb7bd..6140cb1 100644
>--- a/releases/weekly/specs/amd64/installcd-stage1.spec
>+++ b/releases/weekly/specs/amd64/installcd-stage1.spec
>@@ -2,10 +2,10 @@ subarch: amd64
> version_stamp: latest
> target: livecd-stage1
> rel_type: default
>-profile: default/linux/amd64/13.0/no-multilib
>+profile: default/linux/amd64/13.0/systemd

Your patch replaces openrc with systemd. Surely we want to keep support for both.

> snapshot: latest
> source_subpath: default/stage3-amd64-latest
>-portage_confdir: @REPO_DIR@/releases/weekly/portage/isos
>+portage_confdir: /home/chaser/devel/mirror/releng/releases/weekly/portage/isos

I guess that was unintended.

> livecd/use:
> 	deprecated
>@@ -77,6 +77,7 @@ livecd/packages:
> 	sys-apps/memtester
> 	sys-apps/netplug
> 	sys-apps/sdparm
>+        sys-apps/systemd

Whitespace.

> 	sys-block/parted
> 	sys-block/partimage
> 	sys-fs/btrfs-progs
>diff --git a/releases/weekly/specs/amd64/installcd-stage2-minimal.spec b/releases/weekly/specs/amd64/installcd-stage2-minimal.spec
>index ab56ab7..081bf52 100644
>--- a/releases/weekly/specs/amd64/installcd-stage2-minimal.spec
>+++ b/releases/weekly/specs/amd64/installcd-stage2-minimal.spec
>@@ -5,10 +5,10 @@ rel_type: default
> profile: default/linux/amd64/13.0/no-multilib
> snapshot: latest
> source_subpath: default/livecd-stage1-amd64-latest
>-portage_confdir: @REPO_DIR@/releases/weekly/portage/isos
>+portage_confdir: /home/chaser/devel/mirror/releng/releases/weekly/portage/isos
> 
>-livecd/bootargs: dokeymap
>-livecd/cdtar: /usr/lib/catalyst/livecd/cdtar/isolinux-elilo-memtest86+-cdtar.tar.bz2
>+livecd/bootargs: dokeymap init=/usr/lib/systemd/systemd
>+livecd/cdtar: /usr/share/catalyst/livecd/cdtar/isolinux-elilo-memtest86+-cdtar.tar.bz2
> livecd/fstype: squashfs
> livecd/gk_mainargs: --lvm --dmraid --mdadm --makeopts=-j8
> livecd/iso: install-amd64-minimal-latest.iso
>@@ -19,7 +19,7 @@ livecd/rcdel: keymaps|boot
> boot/kernel: gentoo
> 
> boot/kernel/gentoo/sources: gentoo-sources
>-boot/kernel/gentoo/config: @REPO_DIR@/releases/weekly/kconfig/amd64/installcd-3.18.12.config
>+boot/kernel/gentoo/config: /home/chaser/devel/mirror/releng/releases/weekly/kconfig/amd64/installcd-3.18.12.config

Same as above.

> boot/kernel/gentoo/use:
> 	-*
> 	alsa
>@@ -105,6 +105,7 @@ livecd/unmerge:
> 	sys-apps/man
> 	sys-apps/man-pages
> 	sys-apps/miscfiles
>+        sys-apps/openrc

Whitespace.

> 	sys-apps/texinfo
> 	sys-devel/autoconf
> 	sys-devel/autoconf-wrapper
Comment 7 Jeroen Roovers (RETIRED) gentoo-dev 2016-08-21 16:02:20 UTC
Comment on attachment 442886 [details, diff]
bootloader-setup.sh.patch

>--- targets/support/bootloader-setup.sh	2016-02-07 07:05:14.000000000 +0200
>+++ /usr/share/catalyst/targets/support/bootloader-setup.sh	2016-07-12 03:33:43.345899888 +0300
>@@ -10,7 +10,7 @@
> check_bootargs
> check_filesystem_type
> 
>-default_append_line="root=/dev/ram0 init=/linuxrc ${cmdline_opts} ${custom_kopts} cdroot"
>+default_append_line="root=/dev/ram0 ${cmdline_opts} ${custom_kopts} cdroot"
> [ -n "${clst_splash_theme}" ] && default_append_line="${default_append_line} splash=silent,theme:${clst_livecd_splash_theme} CONSOLE=/dev/tty1 quiet"
> 
> case ${clst_hostarch} in

Again, you are replacing the alternative instead of adding support for alternatives.
Comment 8 anonymous 2016-08-23 02:11:29 UTC
(In reply to Jeroen Roovers from comment #7)
> Comment on attachment 442886 [details, diff] [details, diff]
> bootloader-setup.sh.patch
> 
> >--- targets/support/bootloader-setup.sh	2016-02-07 07:05:14.000000000 +0200
> >+++ /usr/share/catalyst/targets/support/bootloader-setup.sh	2016-07-12 03:33:43.345899888 +0300
> >@@ -10,7 +10,7 @@
> > check_bootargs
> > check_filesystem_type
> > 
> >-default_append_line="root=/dev/ram0 init=/linuxrc ${cmdline_opts} ${custom_kopts} cdroot"
> >+default_append_line="root=/dev/ram0 ${cmdline_opts} ${custom_kopts} cdroot"
> > [ -n "${clst_splash_theme}" ] && default_append_line="${default_append_line} splash=silent,theme:${clst_livecd_splash_theme} CONSOLE=/dev/tty1 quiet"
> > 
> > case ${clst_hostarch} in
> 
> Again, you are replacing the alternative instead of adding support for
> alternatives.

Thank you for review. I think "init=/linuxrc" should be removed from default_append_line because if we planning support different inits then it can't be default parameter.

Instead let's put "init=/linuxrc" in (for example) releng/releases/weekly/specs/amd64/installcd-stage2-minimal.spec
Comment 9 anonymous 2016-08-28 12:22:32 UTC
ping
Comment 10 anonymous 2016-10-14 19:03:46 UTC
Created attachment 450218 [details, diff]
bootloader-setup.sh.patch

This patch removes init=/linuxrc from default kernel params.

Reasons to remove:
* Builded install-amd64-minimal-latest.iso from installcd-stage2-minimal.spec works fine without this parameter.
* We should avoid pushing any init as default parameter because it breaks other init systems (systemd for example).
* If this parameter really must be in target iso image, then it should be declared in .spec file.