From 0195cc01dfac7a720332250b4d7352add39f19b0 Mon Sep 17 00:00:00 2001 From: Ciro Santilli <ciro.santilli@gmail.com> Date: Tue, 19 Jul 2022 18:21:15 +0100 Subject: [PATCH 1/5] Make setup work for any git 2.* present in PPA. Fix https://github.com/cirosantilli/linux-kernel-module-cheat/pull/222 --- setup | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup b/setup index 67f93715..54a42bab 100755 --- a/setup +++ b/setup @@ -17,7 +17,7 @@ if [ -f /.dockerenv ]; then apt install -y software-properties-common add-apt-repository -y ppa:git-core/ppa $sudo apt update - git='git=1:2.36.*' + git='git=1:2.*' else git=git fi From 283cf2fbfe06f693699e22d9829a68d0466de0a6 Mon Sep 17 00:00:00 2001 From: root <root@DESKTOP-8459SES.localdomain> Date: Wed, 19 Oct 2022 13:52:10 +0530 Subject: [PATCH 2/5] Fixed run script --- run | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/run b/run index bdf8986b..6480bdb5 100755 --- a/run +++ b/run @@ -433,7 +433,7 @@ Extra options to append at the end of the emulator command line. if self.env['kgdb']: kernel_cli += ' kgdboc={},115200'.format(extra_console) if kernel_cli_after_dash: - kernel_cli += " -{}".format(kernel_cli_after_dash) + kernel_cli += " --{}".format(kernel_cli_after_dash) extra_env = {} if self.env['trace_insts_stdout']: if self.env['emulator'] == 'qemu': From ddeb36db14dec11fedc49299451d393c86c6c9df Mon Sep 17 00:00:00 2001 From: root <root@DESKTOP-8459SES.localdomain> Date: Wed, 19 Oct 2022 14:26:03 +0530 Subject: [PATCH 3/5] Fixed some page entries --- README.adoc | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/README.adoc b/README.adoc index 7b6fdc48..373cf521 100644 --- a/README.adoc +++ b/README.adoc @@ -3435,10 +3435,10 @@ at the very end of the boot logs. === Init environment -Documented at https://www.kernel.org/doc/html/v4.14/admin-guide/kernel-parameters.html[]: +Documented at https://www.kernel.org/doc/html/latest/admin-guide/kernel-parameters.html[]: ____ -The kernel parses parameters from the kernel command line up to "-"; if it doesn't recognize a parameter and it doesn't contain a '.', the parameter gets passed to init: parameters with '=' go into init's environment, others are passed as command line arguments to init. Everything after "-" is passed as an argument to init. +The kernel parses parameters from the kernel command line up to "--"; if it doesn't recognize a parameter and it doesn't contain a '.', the parameter gets passed to init: parameters with '=' go into init's environment, others are passed as command line arguments to init. Everything after "--" is passed as an argument to init. ____ And you can try it out with: @@ -3450,7 +3450,7 @@ And you can try it out with: From the <<dry-run,generated QEMU command>>, we see that the kernel CLI at LKMC 69f5745d3df11d5c741551009df86ea6c61a09cf now contains: .... -init=/lkmc/linux/init_env_poweroff.out console=ttyS0 - lkmc_home=/lkmc asdf=qwer zxcv +init=/lkmc/linux/init_env_poweroff.out console=ttyS0 -- lkmc_home=/lkmc asdf=qwer zxcv .... and the init program outputs: @@ -3458,14 +3458,13 @@ and the init program outputs: .... args: /lkmc/linux/init_env_poweroff.out -- +lkmc_home=/lkmc +asdf=qwer zxcv env: HOME=/ TERM=linux -lkmc_home=/lkmc -asdf=qwer .... Source: link:userland/linux/init_env_poweroff.c[]. @@ -6089,7 +6088,7 @@ See also: * https://unix.stackexchange.com/questions/48601/how-to-display-the-linux-kernel-command-line-parameters-given-for-the-current-bo * https://askubuntu.com/questions/32654/how-do-i-find-the-boot-parameters-used-by-the-running-kernel -The arguments are documented in the kernel documentation: https://www.kernel.org/doc/html/v4.14/admin-guide/kernel-parameters.html +The arguments are documented in the kernel documentation: https://www.kernel.org/doc/html/latest/admin-guide/kernel-parameters.html When dealing with real boards, extra command line options are provided on some magic bootloader configuration file, e.g.: From 99c0c25ad06ac918c97dd3d03e67da4f6e40b8d2 Mon Sep 17 00:00:00 2001 From: Ciro Santilli <ciro.santilli@gmail.com> Date: Thu, 12 Jan 2023 13:40:04 +0000 Subject: [PATCH 4/5] Fix incorrect assumption that -- is needed in kernel CLI --- README.adoc | 84 +++++++++++++++++++++----------- rootfs_overlay/lkmc/gem5_exit.sh | 5 +- 2 files changed, 59 insertions(+), 30 deletions(-) diff --git a/README.adoc b/README.adoc index 373cf521..64d6204b 100644 --- a/README.adoc +++ b/README.adoc @@ -3256,6 +3256,12 @@ The most direct way to replace `init` with our own is to just use the `init=` << This just counts every second forever and does not give you a shell. +And to pass command line arguments to the program, you can use `--kernel-cli-after-dash`: + +.... +./run --kernel-cli 'init=/bin/sh' --kernel-cli-after-dash '-c "echo asdf; pwd; ls"' +.... + This method is not very flexible however, as it is hard to reliably pass multiple commands and command line arguments to the init with it, as explained at: xref:init-environment[xrefstyle=full]. For this reason, we have created a more robust helper method with the `--eval` option: @@ -3435,55 +3441,66 @@ at the very end of the boot logs. === Init environment -Documented at https://www.kernel.org/doc/html/latest/admin-guide/kernel-parameters.html[]: +Documented at https://www.kernel.org/doc/html/v5.9/admin-guide/kernel-parameters.html[]: ____ The kernel parses parameters from the kernel command line up to "--"; if it doesn't recognize a parameter and it doesn't contain a '.', the parameter gets passed to init: parameters with '=' go into init's environment, others are passed as command line arguments to init. Everything after "--" is passed as an argument to init. ____ -And you can try it out with: +And you can try it out with our link:userland/linux/init_env_poweroff.c[] program: .... -./run --kernel-cli 'init=/lkmc/linux/init_env_poweroff.out' --kernel-cli-after-dash 'asdf=qwer zxcv' +./run --kernel-cli 'init=/lkmc/linux/init_env_poweroff.out loglevel=8 go_in_env=val1 with_dot.before=val2' \ + --kernel-cli-after-dash 'go_in_arg=val3 with_dot.after=val4 zxcv' .... -From the <<dry-run,generated QEMU command>>, we see that the kernel CLI at LKMC 69f5745d3df11d5c741551009df86ea6c61a09cf now contains: +From the <<dry-run,generated QEMU command>>, we see that the kernel CLI at LKMC 69f5745d3df11d5c741551009df86ea6c61a09cf now contains (or at least would if it weren't for https://github.com/cirosantilli/linux-kernel-module-cheat/issues/110 oh God), manually indented for readability: .... -init=/lkmc/linux/init_env_poweroff.out console=ttyS0 -- lkmc_home=/lkmc asdf=qwer zxcv +<6>[ 0.000000] Command line: root=/dev/vda nopat console_msg_format=syslog nokaslr norandmaps panic=-1 printk.devkmsg=on printk.time=y rw + init=/lkmc/linux/init_env_poweroff.out loglevel=8 go_in_env=val1 with_dot.before=val2 -- go_in_arg=val3 with_dot.after=val4 zxcv .... and the init program outputs: .... -args: -/lkmc/linux/init_env_poweroff.out -lkmc_home=/lkmc -asdf=qwer -zxcv - -env: -HOME=/ -TERM=linux +<6>[ 2.728992] Run /lkmc/linux/init_env_poweroff.out as init process +<7>[ 2.729587] with arguments: +<7>[ 2.729820] /lkmc/linux/init_env_poweroff.out +<7>[ 2.730085] lkmc_home=/lkmc +<7>[ 2.730259] go_in_arg=val3 +<7>[ 2.730432] with_dot.after=val4 +<7>[ 2.730623] zxcv +<7>[ 2.730767] with environment: +<7>[ 2.730960] HOME=/ +<7>[ 2.731115] TERM=linux +<7>[ 2.731267] go_in_env=val .... -Source: link:userland/linux/init_env_poweroff.c[]. - -As of the Linux kernel v5.7 (possibly earlier, I've skipped a few releases), boot also shows the init arguments and environment very clearly, which is a great addition: +Tested as of the Linux kernel v5.7 and possibly earlier, boot also shows the init arguments and environment very clearly when using <<printk>> at `loglevel=8`, which is a great addition: .... -<6>[ 0.309984] Run /sbin/init as init process -<7>[ 0.309991] with arguments: -<7>[ 0.309997] /sbin/init -<7>[ 0.310004] nokaslr -<7>[ 0.310010] - -<7>[ 0.310016] with environment: -<7>[ 0.310022] HOME=/ -<7>[ 0.310028] TERM=linux -<7>[ 0.310035] earlyprintk=pl011,0x1c090000 -<7>[ 0.310041] lkmc_home=/lkmc +<6>[ 2.777265] Run /lkmc/linux/init_env_poweroff.out as init process +<7>[ 2.777729] with arguments: +<7>[ 2.777953] /lkmc/linux/init_env_poweroff.out +<7>[ 2.778212] lkmc_home=/lkmc +<7>[ 2.778391] go_in_arg=val2 +<7>[ 2.778554] zxcv +<7>[ 2.778705] with environment: +<7>[ 2.778901] HOME=/ +<7>[ 2.779065] TERM=linux +<7>[ 2.779223] go_in_env=val1 .... +As we can see, the passing of environment variables to init is a bit wonky: + +* `init` and `loglevel` didn't go because they were recognized +* `go_in_env` went because it wasn't + +so things can always break in future kernel releases... The only way to guard from this a bit is to use some unique prefix and hope the kernel never decides to use it. We of course use `lkmc_*` for our variables. + +And it is also impossible to pass environment variables that contain dots in them: our `with_dot.before` is simply gone. Not a common use case, but still, quite insane. + ==== init arguments The annoying dash `-` gets passed as a parameter to `init`, which makes it impossible to use this method for most non custom executables. @@ -6088,7 +6105,7 @@ See also: * https://unix.stackexchange.com/questions/48601/how-to-display-the-linux-kernel-command-line-parameters-given-for-the-current-bo * https://askubuntu.com/questions/32654/how-do-i-find-the-boot-parameters-used-by-the-running-kernel -The arguments are documented in the kernel documentation: https://www.kernel.org/doc/html/latest/admin-guide/kernel-parameters.html +The arguments are documented in the kernel documentation: https://www.kernel.org/doc/html/v5.9/admin-guide/kernel-parameters.html When dealing with real boards, extra command line options are provided on some magic bootloader configuration file, e.g.: @@ -7667,6 +7684,17 @@ No, there no official documentation: https://stackoverflow.com/questions/1521393 [[seq-file]] ==== seq_file +TODO these examples broke in kernel 5.0 and we didn't notice because they just added a flimsy warning and nothing else: + +* https://stackoverflow.com/questions/25399112/how-to-use-a-seq-file-in-linux-kernel-modules/45100058 +* https://stackoverflow.com/questions/60570242/seq-file-not-working-properly-after-next-returns-null + +Fix with ifdef for kernel 4/5. The error message is: + +.... +seq_file: buggy .next function next [module-name] did not update position index +.... + Writing trivial read <<file-operations>> is repetitive and error prone. The `seq_file` API makes the process much easier for those trivial cases: .... diff --git a/rootfs_overlay/lkmc/gem5_exit.sh b/rootfs_overlay/lkmc/gem5_exit.sh index ab13300a..c4d25489 100755 --- a/rootfs_overlay/lkmc/gem5_exit.sh +++ b/rootfs_overlay/lkmc/gem5_exit.sh @@ -1,4 +1,5 @@ #!/bin/sh -# To be able to do init=/gem5_exit.sh, since kernel CLI argument passing is too messy: -# https://cirosantilli.com/linux-kernel-module-cheat#init-arguments +# This should not be needed anymore after we learned that it should be -- instead of -. +# You should be instead able to just use something init=/bin/sh -- -c 'm5 exit' +# https://github.com/cirosantilli/linux-kernel-module-cheat/pull/226 m5 exit From 6d421dd726b82c0d567473d3cb9745b9026a26be Mon Sep 17 00:00:00 2001 From: Ciro Santilli <ciro.santilli@gmail.com> Date: Thu, 4 May 2023 07:18:12 +0100 Subject: [PATCH 5/5] Update Gemfile.lock to be able to publish docs --- Gemfile.lock | 328 ++++++++++++++++++++++++++------------------------- 1 file changed, 169 insertions(+), 159 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index ede12f45..c041935e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,13 +1,13 @@ GEM remote: https://rubygems.org/ specs: - activesupport (4.2.11.1) - i18n (~> 0.7) - minitest (~> 5.1) - thread_safe (~> 0.3, >= 0.3.4) - tzinfo (~> 1.1) - addressable (2.6.0) - public_suffix (>= 2.0.2, < 4.0) + activesupport (7.0.4.3) + concurrent-ruby (~> 1.0, >= 1.0.2) + i18n (>= 1.6, < 2) + minitest (>= 5.1) + tzinfo (~> 2.0) + addressable (2.8.4) + public_suffix (>= 2.0.2, < 6.0) asciidoctor (2.0.11) asciidoctor-multipage (0.0.12) asciidoctor (>= 2.0.11, < 2.1) @@ -16,233 +16,243 @@ GEM execjs coffee-script-source (1.11.1) colorator (1.1.0) - commonmarker (0.17.13) - ruby-enum (~> 0.5) - concurrent-ruby (1.1.5) - dnsruby (1.61.2) - addressable (~> 2.5) - em-websocket (0.5.1) + commonmarker (0.23.9) + concurrent-ruby (1.2.2) + dnsruby (1.70.0) + simpleidn (~> 0.2.1) + em-websocket (0.5.3) eventmachine (>= 0.12.9) - http_parser.rb (~> 0.6.0) - ethon (0.12.0) - ffi (>= 1.3.0) + http_parser.rb (~> 0) + ethon (0.16.0) + ffi (>= 1.15.0) eventmachine (1.2.7) - execjs (2.7.0) - faraday (0.15.4) - multipart-post (>= 1.2, < 3) - ffi (1.11.1) + execjs (2.8.1) + faraday (2.7.4) + faraday-net_http (>= 2.0, < 3.1) + ruby2_keywords (>= 0.0.4) + faraday-net_http (3.0.2) + ffi (1.15.5) forwardable-extended (2.6.0) gemoji (3.0.1) - github-pages (198) - activesupport (= 4.2.11.1) - github-pages-health-check (= 1.16.1) - jekyll (= 3.8.5) - jekyll-avatar (= 0.6.0) + github-pages (228) + github-pages-health-check (= 1.17.9) + jekyll (= 3.9.3) + jekyll-avatar (= 0.7.0) jekyll-coffeescript (= 1.1.1) - jekyll-commonmark-ghpages (= 0.1.5) + jekyll-commonmark-ghpages (= 0.4.0) jekyll-default-layout (= 0.1.4) - jekyll-feed (= 0.11.0) + jekyll-feed (= 0.15.1) jekyll-gist (= 1.5.0) - jekyll-github-metadata (= 2.12.1) - jekyll-mentions (= 1.4.1) - jekyll-optional-front-matter (= 0.3.0) + jekyll-github-metadata (= 2.13.0) + jekyll-include-cache (= 0.2.1) + jekyll-mentions (= 1.6.0) + jekyll-optional-front-matter (= 0.3.2) jekyll-paginate (= 1.1.0) - jekyll-readme-index (= 0.2.0) - jekyll-redirect-from (= 0.14.0) - jekyll-relative-links (= 0.6.0) - jekyll-remote-theme (= 0.3.1) + jekyll-readme-index (= 0.3.0) + jekyll-redirect-from (= 0.16.0) + jekyll-relative-links (= 0.6.1) + jekyll-remote-theme (= 0.4.3) jekyll-sass-converter (= 1.5.2) - jekyll-seo-tag (= 2.5.0) - jekyll-sitemap (= 1.2.0) - jekyll-swiss (= 0.4.0) - jekyll-theme-architect (= 0.1.1) - jekyll-theme-cayman (= 0.1.1) - jekyll-theme-dinky (= 0.1.1) - jekyll-theme-hacker (= 0.1.1) - jekyll-theme-leap-day (= 0.1.1) - jekyll-theme-merlot (= 0.1.1) - jekyll-theme-midnight (= 0.1.1) - jekyll-theme-minimal (= 0.1.1) - jekyll-theme-modernist (= 0.1.1) - jekyll-theme-primer (= 0.5.3) - jekyll-theme-slate (= 0.1.1) - jekyll-theme-tactile (= 0.1.1) - jekyll-theme-time-machine (= 0.1.1) - jekyll-titles-from-headings (= 0.5.1) - jemoji (= 0.10.2) - kramdown (= 1.17.0) - liquid (= 4.0.0) - listen (= 3.1.5) + jekyll-seo-tag (= 2.8.0) + jekyll-sitemap (= 1.4.0) + jekyll-swiss (= 1.0.0) + jekyll-theme-architect (= 0.2.0) + jekyll-theme-cayman (= 0.2.0) + jekyll-theme-dinky (= 0.2.0) + jekyll-theme-hacker (= 0.2.0) + jekyll-theme-leap-day (= 0.2.0) + jekyll-theme-merlot (= 0.2.0) + jekyll-theme-midnight (= 0.2.0) + jekyll-theme-minimal (= 0.2.0) + jekyll-theme-modernist (= 0.2.0) + jekyll-theme-primer (= 0.6.0) + jekyll-theme-slate (= 0.2.0) + jekyll-theme-tactile (= 0.2.0) + jekyll-theme-time-machine (= 0.2.0) + jekyll-titles-from-headings (= 0.5.3) + jemoji (= 0.12.0) + kramdown (= 2.3.2) + kramdown-parser-gfm (= 1.1.0) + liquid (= 4.0.4) mercenary (~> 0.3) - minima (= 2.5.0) - nokogiri (>= 1.8.5, < 2.0) - rouge (= 2.2.1) + minima (= 2.5.1) + nokogiri (>= 1.13.6, < 2.0) + rouge (= 3.26.0) terminal-table (~> 1.4) - github-pages-health-check (1.16.1) + github-pages-health-check (1.17.9) addressable (~> 2.3) dnsruby (~> 1.60) octokit (~> 4.0) - public_suffix (~> 3.0) + public_suffix (>= 3.0, < 5.0) typhoeus (~> 1.3) - html-pipeline (2.11.0) + html-pipeline (2.14.3) activesupport (>= 2) nokogiri (>= 1.4) - http_parser.rb (0.6.0) - i18n (0.9.5) + http_parser.rb (0.8.0) + i18n (1.13.0) concurrent-ruby (~> 1.0) - jekyll (3.8.5) + jekyll (3.9.3) addressable (~> 2.4) colorator (~> 1.0) em-websocket (~> 0.5) - i18n (~> 0.7) + i18n (>= 0.7, < 2) jekyll-sass-converter (~> 1.0) jekyll-watch (~> 2.0) - kramdown (~> 1.14) + kramdown (>= 1.17, < 3) liquid (~> 4.0) mercenary (~> 0.3.3) pathutil (~> 0.9) rouge (>= 1.7, < 4) safe_yaml (~> 1.0) - jekyll-avatar (0.6.0) - jekyll (~> 3.0) + jekyll-avatar (0.7.0) + jekyll (>= 3.0, < 5.0) jekyll-coffeescript (1.1.1) coffee-script (~> 2.2) coffee-script-source (~> 1.11.1) - jekyll-commonmark (1.3.1) - commonmarker (~> 0.14) - jekyll (>= 3.7, < 5.0) - jekyll-commonmark-ghpages (0.1.5) - commonmarker (~> 0.17.6) - jekyll-commonmark (~> 1) - rouge (~> 2) + jekyll-commonmark (1.4.0) + commonmarker (~> 0.22) + jekyll-commonmark-ghpages (0.4.0) + commonmarker (~> 0.23.7) + jekyll (~> 3.9.0) + jekyll-commonmark (~> 1.4.0) + rouge (>= 2.0, < 5.0) jekyll-default-layout (0.1.4) jekyll (~> 3.0) - jekyll-feed (0.11.0) - jekyll (~> 3.3) + jekyll-feed (0.15.1) + jekyll (>= 3.7, < 5.0) jekyll-gist (1.5.0) octokit (~> 4.2) - jekyll-github-metadata (2.12.1) - jekyll (~> 3.4) + jekyll-github-metadata (2.13.0) + jekyll (>= 3.4, < 5.0) octokit (~> 4.0, != 4.4.0) - jekyll-mentions (1.4.1) + jekyll-include-cache (0.2.1) + jekyll (>= 3.7, < 5.0) + jekyll-mentions (1.6.0) html-pipeline (~> 2.3) - jekyll (~> 3.0) - jekyll-optional-front-matter (0.3.0) - jekyll (~> 3.0) + jekyll (>= 3.7, < 5.0) + jekyll-optional-front-matter (0.3.2) + jekyll (>= 3.0, < 5.0) jekyll-paginate (1.1.0) - jekyll-readme-index (0.2.0) - jekyll (~> 3.0) - jekyll-redirect-from (0.14.0) - jekyll (~> 3.3) - jekyll-relative-links (0.6.0) - jekyll (~> 3.3) - jekyll-remote-theme (0.3.1) - jekyll (~> 3.5) - rubyzip (>= 1.2.1, < 3.0) + jekyll-readme-index (0.3.0) + jekyll (>= 3.0, < 5.0) + jekyll-redirect-from (0.16.0) + jekyll (>= 3.3, < 5.0) + jekyll-relative-links (0.6.1) + jekyll (>= 3.3, < 5.0) + jekyll-remote-theme (0.4.3) + addressable (~> 2.0) + jekyll (>= 3.5, < 5.0) + jekyll-sass-converter (>= 1.0, <= 3.0.0, != 2.0.0) + rubyzip (>= 1.3.0, < 3.0) jekyll-sass-converter (1.5.2) sass (~> 3.4) - jekyll-seo-tag (2.5.0) - jekyll (~> 3.3) - jekyll-sitemap (1.2.0) - jekyll (~> 3.3) - jekyll-swiss (0.4.0) - jekyll-theme-architect (0.1.1) - jekyll (~> 3.5) + jekyll-seo-tag (2.8.0) + jekyll (>= 3.8, < 5.0) + jekyll-sitemap (1.4.0) + jekyll (>= 3.7, < 5.0) + jekyll-swiss (1.0.0) + jekyll-theme-architect (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-cayman (0.1.1) - jekyll (~> 3.5) + jekyll-theme-cayman (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-dinky (0.1.1) - jekyll (~> 3.5) + jekyll-theme-dinky (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-hacker (0.1.1) - jekyll (~> 3.5) + jekyll-theme-hacker (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-leap-day (0.1.1) - jekyll (~> 3.5) + jekyll-theme-leap-day (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-merlot (0.1.1) - jekyll (~> 3.5) + jekyll-theme-merlot (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-midnight (0.1.1) - jekyll (~> 3.5) + jekyll-theme-midnight (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-minimal (0.1.1) - jekyll (~> 3.5) + jekyll-theme-minimal (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-modernist (0.1.1) - jekyll (~> 3.5) + jekyll-theme-modernist (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-primer (0.5.3) - jekyll (~> 3.5) + jekyll-theme-primer (0.6.0) + jekyll (> 3.5, < 5.0) jekyll-github-metadata (~> 2.9) jekyll-seo-tag (~> 2.0) - jekyll-theme-slate (0.1.1) - jekyll (~> 3.5) + jekyll-theme-slate (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-tactile (0.1.1) - jekyll (~> 3.5) + jekyll-theme-tactile (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-time-machine (0.1.1) - jekyll (~> 3.5) + jekyll-theme-time-machine (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-titles-from-headings (0.5.1) - jekyll (~> 3.3) + jekyll-titles-from-headings (0.5.3) + jekyll (>= 3.3, < 5.0) jekyll-watch (2.2.1) listen (~> 3.0) - jemoji (0.10.2) + jemoji (0.12.0) gemoji (~> 3.0) html-pipeline (~> 2.2) - jekyll (~> 3.0) - kramdown (1.17.0) - liquid (4.0.0) - listen (3.1.5) - rb-fsevent (~> 0.9, >= 0.9.4) - rb-inotify (~> 0.9, >= 0.9.7) - ruby_dep (~> 1.2) + jekyll (>= 3.0, < 5.0) + kramdown (2.3.2) + rexml + kramdown-parser-gfm (1.1.0) + kramdown (~> 2.0) + liquid (4.0.4) + listen (3.8.0) + rb-fsevent (~> 0.10, >= 0.10.3) + rb-inotify (~> 0.9, >= 0.9.10) mercenary (0.3.6) - mini_portile2 (2.4.0) - minima (2.5.0) - jekyll (~> 3.5) + minima (2.5.1) + jekyll (>= 3.5, < 5.0) jekyll-feed (~> 0.9) jekyll-seo-tag (~> 2.1) - minitest (5.11.3) - multipart-post (2.1.1) - nokogiri (1.10.3) - mini_portile2 (~> 2.4.0) - octokit (4.14.0) - sawyer (~> 0.8.0, >= 0.5.3) + minitest (5.18.0) + nokogiri (1.14.3-x86_64-linux) + racc (~> 1.4) + octokit (4.25.1) + faraday (>= 1, < 3) + sawyer (~> 0.9) pathutil (0.16.2) forwardable-extended (~> 2.6) - public_suffix (3.1.1) - rb-fsevent (0.10.3) - rb-inotify (0.10.0) + public_suffix (4.0.7) + racc (1.6.2) + rb-fsevent (0.11.2) + rb-inotify (0.10.1) ffi (~> 1.0) - rouge (2.2.1) - ruby-enum (0.7.2) - i18n - ruby_dep (1.5.0) - rubyzip (1.2.3) + rexml (3.2.5) + rouge (3.26.0) + ruby2_keywords (0.0.5) + rubyzip (2.3.2) safe_yaml (1.0.5) sass (3.7.4) sass-listen (~> 4.0.0) sass-listen (4.0.0) rb-fsevent (~> 0.9, >= 0.9.4) rb-inotify (~> 0.9, >= 0.9.7) - sawyer (0.8.2) + sawyer (0.9.2) addressable (>= 2.3.5) - faraday (> 0.8, < 2.0) + faraday (>= 0.17.3, < 3) + simpleidn (0.2.1) + unf (~> 0.1.4) terminal-table (1.8.0) unicode-display_width (~> 1.1, >= 1.1.1) - thread_safe (0.3.6) - typhoeus (1.3.1) + typhoeus (1.4.0) ethon (>= 0.9.0) - tzinfo (1.2.5) - thread_safe (~> 0.1) - unicode-display_width (1.6.0) + tzinfo (2.0.6) + concurrent-ruby (~> 1.0) + unf (0.1.4) + unf_ext + unf_ext (0.0.8.2) + unicode-display_width (1.8.0) PLATFORMS - ruby + x86_64-linux DEPENDENCIES asciidoctor (= 2.0.11) @@ -250,4 +260,4 @@ DEPENDENCIES github-pages BUNDLED WITH - 2.2.5 + 2.3.15