├── .gitignore ├── Makefile ├── brainstorm-find-out-why.mdwn ├── brainstorm-os-change.mdwn ├── brainstorm-os-fork.mdwn ├── contribute.mdwn ├── ikiwiki.setup ├── index.mdwn ├── problems-to-solve-chroot-nontrivial.mdwn ├── problems-to-solve-linux-only.mdwn ├── pros-and-cons-unifying-linux.mdwn ├── resources.mdwn ├── this-site.mdwn └── why-after.mdwn /.gitignore: -------------------------------------------------------------------------------- 1 | .ikiwiki 2 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | pub: 2 | git push --mirror github 3 | git push --mirror origin 4 | -------------------------------------------------------------------------------- /brainstorm-find-out-why.mdwn: -------------------------------------------------------------------------------- 1 | ### Why do some people like to use systemd? 2 | 3 | To be honest, there are not only people who dislike systemd. 4 | So for some reason, people were inspired to switch and see 5 | using systemd as an advantage. 6 | 7 | So in case it becomes clear, what people aspire, there is a chance 8 | to rebuild those components of systemd in a modular, Unix way 9 | and to remove or stay without systemd. 10 | 11 | Maybe it is about 12 | 13 | * [having interfaces](https://lists.debian.org/debian-user/2014/10/msg01409.html) 14 | -------------------------------------------------------------------------------- /brainstorm-os-change.mdwn: -------------------------------------------------------------------------------- 1 | ### The radical move #1: Change your OS 2 | 3 | When you read reactions of people who are unhappy about 4 | systemd, you will find one solution to the problem very often: 5 | To change the OS to something that is not dependent or tightly 6 | coupled to systemd. 7 | 8 | Currently this could mean switching to a BSD based OS 9 | or Gentoo (list of Linux distros staying without Systemd tightly 10 | coupled should be added here). 11 | -------------------------------------------------------------------------------- /brainstorm-os-fork.mdwn: -------------------------------------------------------------------------------- 1 | ### The radical move #2: Fork your OS 2 | 3 | If you want to stick with your OS, but don't like to be forced 4 | to use systemd, but the OS maintainers decided to go or stay with 5 | systemd, a radical, but maybe problem solving move may be to fork 6 | your OS. 7 | 8 | This idea has been spoken out in form of a 9 | [Debian Fork](http://debianfork.org/) so far. 10 | -------------------------------------------------------------------------------- /contribute.mdwn: -------------------------------------------------------------------------------- 1 | ## I want to contribute! 2 | 3 | That's great! There are various possibilities to help: 4 | 5 | ### Talk about us 6 | 7 | Mention **#theworldaftersystemd** on Twitter, 8 | talk about our movement on IRC, help others to understand 9 | why the current implementation of systemd is not a good idea. 10 | 11 | Use your favorite chat/publish/mention tool to do so and 12 | include us. We are reachable on IRC (see below), via 13 | mail **theworldaftersystemd --at-- ungleich.ch** or 14 | Twitter [@ungleich](https://twitter.com/ungleich) 15 | and [@NicoSchottelius](https://twitter.com/NicoSchottelius). 16 | 17 | ### Discuss with us 18 | 19 | You can find us on [#cstar on Freenode](irc://irc.freenode.net/#cstar). 20 | 21 | ### Change this website 22 | 23 | If you want to change this site, simply 24 | [clone the repositiry on github](https://github.com/ungleich/the-world-after-systemd) and open a pull request. 25 | 26 | This site uses markdown as interpreted by 27 | [ikiwiki](http://ikiwiki.info/). 28 | -------------------------------------------------------------------------------- /ikiwiki.setup: -------------------------------------------------------------------------------- 1 | #!/usr/bin/perl 2 | # Setup file for ikiwiki. 3 | # 4 | # Passing this to ikiwiki --setup will make ikiwiki generate 5 | # wrappers and build the wiki. 6 | # 7 | # Remember to re-run ikiwiki --setup any time you edit this file. 8 | use IkiWiki::Setup::Standard { 9 | # name of the wiki 10 | # wikiname => '≠', 11 | wikiname => 'the-world-after-systemd - ungleich GmbH', 12 | # contact email for wiki 13 | adminemail => 'no@admin', 14 | # users who are wiki admins 15 | adminuser => [], 16 | # users who are banned from the wiki 17 | banned_users => [], 18 | # where the source of the wiki is located 19 | #srcdir => './', 20 | # where to build the wiki 21 | #destdir => '../wwwout', 22 | srcdir => '/home/nico/the-world-after-systemd', 23 | # where to build the wiki 24 | destdir => '/home/services/www/nico/the-world-after-systemd.ungleich.ch/www', 25 | # base url to the wiki 26 | url => 'http://the-world-after-systemd.ungleich.ch', 27 | # url to the ikiwiki.cgi 28 | cgiurl => '', 29 | # filename of cgi wrapper to generate 30 | cgi_wrapper => '', 31 | # mode for cgi_wrapper (can safely be made suid) 32 | cgi_wrappermode => '06755', 33 | # rcs backend to use 34 | rcs => '', 35 | # plugins to add to the default configuration 36 | add_plugins => [qw{goodstuff meta sidebar tag rawhtml git}], 37 | # plugins to disable 38 | disable_plugins => [qw{smiley openid}], 39 | # location of template files 40 | #templatedir => '/home/users/nico/b/ikiwiki/templates', 41 | # base wiki source location 42 | #underlaydirbase => '/home/users/nico/b/ikiwiki/underlays', 43 | #underlaydir => '/home/users/nico/b/ikiwiki/underlays/basewiki', 44 | # display verbose messages? 45 | #verbose => 1, 46 | # log to syslog? 47 | #syslog => 1, 48 | # create output files named page/index.html? 49 | usedirs => 1, 50 | # use '!'-prefixed preprocessor directives? 51 | prefix_directives => 1, 52 | # use page/index.mdwn source files 53 | indexpages => 0, 54 | # enable Discussion pages? 55 | discussion => 0, 56 | # name of Discussion pages 57 | discussionpage => 'Diskussion', 58 | # only send cookies over SSL connections? 59 | sslcookie => 0, 60 | # extension to use for new pages 61 | default_pageext => 'mdwn', 62 | # extension to use for html files 63 | htmlext => 'html', 64 | # strftime format string to display date 65 | timeformat => '%c', 66 | # UTF-8 locale to use 67 | #locale => 'en_US.UTF-8', 68 | # put user pages below specified page 69 | userdir => '', 70 | # how many backlinks to show before hiding excess (0 to show all) 71 | numbacklinks => 10, 72 | # attempt to hardlink source files? (optimisation for large files) 73 | hardlink => 0, 74 | # force ikiwiki to use a particular umask 75 | umask => 18, 76 | # group for wrappers to run in 77 | #wrappergroup => 'ikiwiki', 78 | # extra library and plugin directory 79 | #libdir => '/home/users/nico/b/ikiwiki', 80 | # environment variables 81 | ENV => {}, 82 | # regexp of source files to ignore 83 | #exclude => '\\.wav$', 84 | # specifies the characters that are allowed in source filenames 85 | wiki_file_chars => '-[:alnum:]+/.:_', 86 | # allow symlinks in the path leading to the srcdir (potentially insecure) 87 | allow_symlinks_before_srcdir => 0, 88 | 89 | ###################################################################### 90 | # core plugins 91 | # (editpage, htmlscrubber, inline, link, meta) 92 | ###################################################################### 93 | 94 | # htmlscrubber plugin 95 | # PageSpec specifying pages not to scrub 96 | #htmlscrubber_skip => '!*/Discussion', 97 | 98 | # inline plugin 99 | # enable rss feeds by default? 100 | rss => 1, 101 | # enable atom feeds by default? 102 | atom => 1, 103 | # allow rss feeds to be used? 104 | #allowrss => 0, 105 | # allow atom feeds to be used? 106 | #allowatom => 0, 107 | # urls to ping (using XML-RPC) on feed update 108 | pingurl => [], 109 | 110 | ###################################################################### 111 | # auth plugins 112 | # (anonok, blogspam, httpauth, lockedit, moderatedcomments, 113 | # opendiscussion, passwordauth, signinedit) 114 | ###################################################################### 115 | 116 | # anonok plugin 117 | # PageSpec to limit which pages anonymous users can edit 118 | #anonok_pagespec => '*/discussion', 119 | 120 | # blogspam plugin 121 | # PageSpec of pages to check for spam 122 | #blogspam_pagespec => 'postcomment(*)', 123 | # options to send to blogspam server 124 | #blogspam_options => 'blacklist=1.2.3.4,blacklist=8.7.6.5,max-links=10', 125 | # blogspam server XML-RPC url 126 | #blogspam_server => '', 127 | 128 | # httpauth plugin 129 | # url to redirect to when authentication is needed 130 | #cgiauthurl => 'http://example.com/wiki/auth/ikiwiki.cgi', 131 | # PageSpec of pages where only httpauth will be used for authentication 132 | #httpauth_pagespec => '!*/Discussion', 133 | 134 | # lockedit plugin 135 | # PageSpec controlling which pages are locked 136 | #locked_pages => '!*/Discussion', 137 | 138 | # moderatedcomments plugin 139 | # Moderate comments of logged-in users? 140 | #moderate_users => 1, 141 | 142 | # passwordauth plugin 143 | # a password that must be entered when signing up for an account 144 | #account_creation_password => 's3cr1t', 145 | # cost of generating a password using Authen::Passphrase::BlowfishCrypt 146 | #password_cost => 8, 147 | 148 | ###################################################################### 149 | # format plugins 150 | # (creole, highlight, hnb, html, mdwn, otl, rawhtml, textile, txt) 151 | ###################################################################### 152 | 153 | # highlight plugin 154 | # types of source files to syntax highlight 155 | #tohighlight => '.c .h .cpp .pl .py Makefile:make', 156 | 157 | # mdwn plugin 158 | # enable multimarkdown features? 159 | #multimarkdown => 0, 160 | 161 | ###################################################################### 162 | # web plugins 163 | # (attachment, comments, editdiff, edittemplate, getsource, 164 | # google, mirrorlist, remove, rename, repolist, search, 165 | # websetup, wmd) 166 | ###################################################################### 167 | 168 | # attachment plugin 169 | # enhanced PageSpec specifying what attachments are allowed 170 | #allowed_attachments => 'virusfree() and mimetype(image/*) and maxsize(50kb)', 171 | # virus checker program (reads STDIN, returns nonzero if virus found) 172 | #virus_checker => 'clamdscan -', 173 | 174 | # comments plugin 175 | # PageSpec of pages where comments are allowed 176 | #comments_pagespec => 'blog/* and !*/Discussion', 177 | # PageSpec of pages where posting new comments is not allowed 178 | #comments_closed_pagespec => 'blog/controversial or blog/flamewar', 179 | # Base name for comments, e.g. "comment_" for pages like "sandbox/comment_12" 180 | #comments_pagename => '', 181 | # Interpret directives in comments? 182 | #comments_allowdirectives => 0, 183 | # Allow anonymous commenters to set an author name? 184 | #comments_allowauthor => 0, 185 | # commit comments to the VCS 186 | #comments_commit => 1, 187 | 188 | # getsource plugin 189 | # Mime type for returned source. 190 | #getsource_mimetype => 'text/plain; charset=utf-8', 191 | 192 | # mirrorlist plugin 193 | # list of mirrors 194 | #mirrorlist => {}, 195 | 196 | # repolist plugin 197 | # URIs of repositories containing the wiki's source 198 | #repositories => [qw{svn://svn.example.org/wiki/trunk}], 199 | 200 | # search plugin 201 | # path to the omega cgi program 202 | #omega_cgi => '/usr/lib/cgi-bin/omega/omega', 203 | 204 | # websetup plugin 205 | # list of plugins that cannot be enabled/disabled via the web interface 206 | #websetup_force_plugins => [], 207 | # show unsafe settings, read-only, in web interface? 208 | #websetup_show_unsafe => 1, 209 | 210 | ###################################################################### 211 | # widget plugins 212 | # (calendar, color, conditional, cutpaste, date, format, fortune, 213 | # graphviz, haiku, img, linkmap, listdirectives, map, more, 214 | # orphans, pagecount, pagestats, poll, polygen, postsparkline, 215 | # progress, shortcut, sparkline, table, template, teximg, toc, 216 | # toggle, version) 217 | ###################################################################### 218 | 219 | # calendar plugin 220 | # base of the archives hierarchy 221 | #archivebase => 'archives', 222 | 223 | # listdirectives plugin 224 | # directory in srcdir that contains directive descriptions 225 | #directive_description_dir => 'ikiwiki/directive', 226 | 227 | # teximg plugin 228 | # Should teximg use dvipng to render, or dvips and convert? 229 | #teximg_dvipng => '', 230 | # LaTeX prefix for teximg plugin 231 | #teximg_prefix => '\\documentclass{article} 232 | #\\usepackage{amsmath} 233 | #\\usepackage{amsfonts} 234 | #\\usepackage{amssymb} 235 | #\\pagestyle{empty} 236 | #\\begin{document} 237 | #', 238 | # LaTeX postfix for teximg plugin 239 | #teximg_postfix => '\\end{document}', 240 | 241 | ###################################################################### 242 | # other plugins 243 | # (aggregate, autoindex, brokenlinks, camelcase, ddate, embed, 244 | # favicon, goodstuff, htmlbalance, localstyle, pagetemplate, 245 | # pingee, pinger, prettydate, recentchanges, recentchangesdiff, 246 | # relativedate, rsync, sidebar, tag, testpagespec, underlay) 247 | ###################################################################### 248 | 249 | # aggregate plugin 250 | # enable aggregation to internal pages? 251 | #aggregateinternal => 1, 252 | # allow aggregation to be triggered via the web? 253 | #aggregate_webtrigger => 0, 254 | 255 | # camelcase plugin 256 | # list of words to not turn into links 257 | #camelcase_ignore => [], 258 | 259 | # pinger plugin 260 | # how many seconds to try pinging before timing out 261 | #pinger_timeout => 15, 262 | 263 | # prettydate plugin 264 | # format to use to display date 265 | #prettydateformat => '%X, %B %o, %Y', 266 | 267 | # recentchanges plugin 268 | # name of the recentchanges page 269 | recentchangespage => 'recentchanges', 270 | # number of changes to track 271 | recentchangesnum => 100, 272 | 273 | # rsync plugin 274 | # command to run to sync updated pages 275 | #rsync_command => 'rsync -qa --delete . user@host:/path/to/docroot/', 276 | 277 | # tag plugin 278 | # parent page tags are located under 279 | tagbase => 'tags', 280 | 281 | # underlay plugin 282 | # extra underlay directories to add 283 | #add_underlays => [qw{/home/users/nico/wiki.underlay}], 284 | # extra template directories to add 285 | #add_templates => [qw{/home/users/nico/.ikiwiki/templates}], 286 | 287 | #git_wrapper => '/home/services/git/netzseiten/www.nico.schottelius.org/hooks/post-update', 288 | #git_wrappermode => '06755', 289 | #gitorigin_branch => 'origin', 290 | #gitmaster_branch => 'master', 291 | 292 | git_wrapper => '/home/services/git/the-world-after-systemd/hooks/post-update', 293 | git_wrappermode => '06755', 294 | gitorigin_branch => 'origin', 295 | gitmaster_branch => 'master', 296 | } 297 | -------------------------------------------------------------------------------- /index.mdwn: -------------------------------------------------------------------------------- 1 | [[!meta title="The world after systemd"]] 2 | [[!toc levels=2]] 3 | 4 | Welcome to a world after 5 | [systemd](http://freedesktop.org/wiki/Software/systemd/). 6 | After systemd? 7 | 8 | [[!inline pages="why-after" raw=yes]] 9 | [[!inline pages="this-site" raw=yes]] 10 | 11 | ## Problems to solve 12 | [[!inline pages="problems-to-solve-linux-only" raw=yes]] 13 | [[!inline pages="problems-to-solve-chroot-nontrivial" raw=yes]] 14 | 15 | ## Pros and Cons 16 | Let's have a look what systemd actually makes better and what 17 | are the problems that are new due to having systemd. 18 | 19 | Again, this is not a rant-or-blame page, but focussed on 20 | analysis and to make the basis for future steps. 21 | 22 | If you do not agree with something written here, please 23 | update this website. 24 | 25 | [[!inline pages="pros-and-cons-unifying-linux" raw=yes]] 26 | 27 | ## Brainstorming 28 | 29 | Currently we are brainstorming in various groups about what are good ways 30 | to keep or regain freedom of chosing to live with or without systemd. 31 | 32 | [[!inline pages="brainstorm-os-change" raw=yes]] 33 | [[!inline pages="brainstorm-os-fork" raw=yes]] 34 | [[!inline pages="brainstorm-find-out-why" raw=yes]] 35 | 36 | 37 | [[!inline pages="contribute" raw=yes]] 38 | [[!inline pages="resources" raw=yes]] 39 | -------------------------------------------------------------------------------- /problems-to-solve-chroot-nontrivial.mdwn: -------------------------------------------------------------------------------- 1 | ### Starting Services in chroots (technical) 2 | 3 | When you run an init system like systemd that requires a helper 4 | program to start services (**systemctl**), it is not easily 5 | possible to start services in a chroot, because the chrooted 6 | systemctl cannot connect to the outer systemd. 7 | 8 | Using init scripts or a different type of cli that does not require 9 | another daemon to run (like sysvinit does with the shell scripts 10 | below /etc/{rc.d,init.d}), solves this problem. 11 | 12 | There is a [detailled description of the problem at 0pointer.de](http://0pointer.de/blog/projects/changing-roots.html). 13 | 14 | So in short, running services in a chrooted environment became 15 | harder with systemd. 16 | -------------------------------------------------------------------------------- /problems-to-solve-linux-only.mdwn: -------------------------------------------------------------------------------- 1 | ### Linux only orientation 2 | 3 | The current implementation of systemd is highly Linux centric, 4 | which is a major problem if other software that is being used on other 5 | Unices begins to depend on components of systemd. 6 | 7 | At this point of point we know about 8 | [gnome depending on systemd](https://lists.debian.org/debian-devel/2013/10/msg00578.html) ([or not](http://blogs.gnome.org/ovitters/2013/09/25/gnome-and-logindsystemd-thoughts/), depending on your point of view). 9 | 10 | Writing portable applications has the advantage of finding 11 | bugs in your software and in contrary to what the systemd authors think, 12 | POSIX is actually helping writing portable apps for a long time. 13 | -------------------------------------------------------------------------------- /pros-and-cons-unifying-linux.mdwn: -------------------------------------------------------------------------------- 1 | ### Unifying Distributions (political/technical) 2 | 3 | One interesting outcome of the development around systemd is that 4 | many distributions adopt it. If you dislike systemd (for whatever reason) 5 | this may be a disadvantage. However, having the same 6 | **init system** on all Unices would make life much easier 7 | for sysadmins and authors of configuration management 8 | systems (like [cdist](http://www.nico.schottelius.org/software/cdist/)). 9 | 10 | -------------------------------------------------------------------------------- /resources.mdwn: -------------------------------------------------------------------------------- 1 | ## Resources 2 | 3 | * [A nicely writen report about design flaws of systemd](http://blog.lusis.org/blog/2014/09/23/end-of-linux/) 4 | * [uselessd, a fork which reduces systemd to an init system again](https://bitbucket.org/bcsd/uselessd/src) 5 | * [German article at Pro-Linux about uselessd](http://www.pro-linux.de/news/1/21537/uselessd-erste-abspaltung-von-systemd.html) 6 | * [irc://irc.darknedgy.net/#uselessd](uselessd irc channel) 7 | * [Boycott Systemd](http://boycottsystemd.org/) -- Collection of 8 | arguments against systemd, maybe ranty. 9 | * [Debian package tools for avoiding systemd](http://users.unixforge.de/~tglaser/debs/debidx.htm) 10 | * [Phoronix on Debian and systemd](http://www.phoronix.com/scan.php?page=news_item&px=MTYwMDQ) 11 | * [Phoronix on Debian and systemd](http://www.phoronix.com/scan.php?page=news_item&px=MTQ5NzQ) 12 | * [Mailing list for discussing how to keep Debian independent of systemd](http://www.freelists.org/list/modular-debian) 13 | * [Debian Fork](http://debianfork.org/) 14 | * [Debian's General Resolution about Init System Coupling](https://www.debian.org/vote/2014/vote_003) 15 | * [Systemd fun](http://www.muylinux.com/wp-content/uploads/2014/08/funny-systemd.gif) 16 | -------------------------------------------------------------------------------- /this-site.mdwn: -------------------------------------------------------------------------------- 1 | ## What this site is about 2 | 3 | Our aim is to find a good exit strategy for distros and users of systemd. 4 | 5 | We do so by analysing the current situation, 6 | the needs that systemd actual fulfills and the problems it causes 7 | and how to get rid of those. 8 | 9 | We focus on being productive for the next generation of people using 10 | Linux and other Unices (yes, they exist and yes, they are important, too!). 11 | 12 | ## What is this site not about 13 | 14 | It is not a place for ranting. 15 | If you want to blame/rant, please look for another site. 16 | -------------------------------------------------------------------------------- /why-after.mdwn: -------------------------------------------------------------------------------- 1 | ## Why after systemd? 2 | 3 | We think that even though many distros have adopted systemd, 4 | the general design or motivation of the project is not good 5 | and will lead to more problems than it solves. 6 | 7 | We anticipate that systemd is currently in fashion, however many of 8 | us have seen software rising and falling, especially if it was 9 | ill designed (sendmail anyone?). 10 | 11 | In that sense we are planning for the time when distros and users 12 | are beginning to **migrate away from systemd**. 13 | --------------------------------------------------------------------------------