diff options
author | Egor Tensin <Egor.Tensin@gmail.com> | 2022-03-23 17:02:06 +0300 |
---|---|---|
committer | Egor Tensin <Egor.Tensin@gmail.com> | 2022-03-23 17:02:06 +0300 |
commit | 2f8b63d04778b54c50d58973b67f49e42d3cc21a (patch) | |
tree | c8799418a2696887d91dfc5278baad126da7702d /_posts | |
parent | bump jekyll-theme (diff) | |
download | blog-2f8b63d04778b54c50d58973b67f49e42d3cc21a.tar.gz blog-2f8b63d04778b54c50d58973b67f49e42d3cc21a.zip |
bump jekyll-theme
Diffstat (limited to '')
-rw-r--r-- | _posts/2017-01-07-building-boost.md | 44 | ||||
-rw-r--r-- | _posts/2017-06-24-static-vs-inline-vs-unnamed-namespaces.md | 16 | ||||
-rw-r--r-- | _posts/2020-05-06-docker-bind-mounts.md | 28 | ||||
-rw-r--r-- | _posts/2020-05-20-makefile-escaping.md | 44 | ||||
-rw-r--r-- | _posts/2021-03-10-ubuntu-packaging.md | 6 |
5 files changed, 69 insertions, 69 deletions
diff --git a/_posts/2017-01-07-building-boost.md b/_posts/2017-01-07-building-boost.md index a0f095a..9e4bcda 100644 --- a/_posts/2017-01-07-building-boost.md +++ b/_posts/2017-01-07-building-boost.md @@ -52,9 +52,9 @@ b2 --stagedir=stage\x86 ^ ... {% endcapture %} -{% include shell.html cmd='cd' out=out1 %} -{% include shell.html cmd='bootstrap' %} -{% include shell.html cmd=cmd3 %} +{% include jekyll-theme/shell.html cmd='cd' out=out1 %} +{% include jekyll-theme/shell.html cmd='bootstrap' %} +{% include jekyll-theme/shell.html cmd=cmd3 %} ### x64 @@ -74,9 +74,9 @@ b2 --stagedir=stage\x64 ^ ... {% endcapture %} -{% include shell.html cmd='cd' out=out1 %} -{% include shell.html cmd='bootstrap' %} -{% include shell.html cmd=cmd3 %} +{% include jekyll-theme/shell.html cmd='cd' out=out1 %} +{% include jekyll-theme/shell.html cmd='bootstrap' %} +{% include jekyll-theme/shell.html cmd=cmd3 %} Cygwin + MinGW-w64 ------------------ @@ -120,10 +120,10 @@ using gcc : : i686-w64-mingw32-g++ ; ... {% endcapture %} -{% include shell.html cmd='pwd' out=out1 %} -{% include shell.html cmd='./bootstrap.sh' %} -{% include shell.html cmd='cat user-config-x86.jam' out=out3 %} -{% include shell.html cmd=cmd4 %} +{% include jekyll-theme/shell.html cmd='pwd' out=out1 %} +{% include jekyll-theme/shell.html cmd='./bootstrap.sh' %} +{% include jekyll-theme/shell.html cmd='cat user-config-x86.jam' out=out3 %} +{% include jekyll-theme/shell.html cmd=cmd4 %} The "user" configuration file above stopped working at some point; not sure as to who's to blame, Cygwin or Boost. @@ -164,10 +164,10 @@ using gcc : : x86_64-w64-mingw32-g++ ; ... {% endcapture %} -{% include shell.html cmd='pwd' out=out1 %} -{% include shell.html cmd='./bootstrap.sh' %} -{% include shell.html cmd='cat user-config-x64.jam' out=out3 %} -{% include shell.html cmd=cmd4 %} +{% include jekyll-theme/shell.html cmd='pwd' out=out1 %} +{% include jekyll-theme/shell.html cmd='./bootstrap.sh' %} +{% include jekyll-theme/shell.html cmd='cat user-config-x64.jam' out=out3 %} +{% include jekyll-theme/shell.html cmd=cmd4 %} The "user" configuration file above stopped working at some point; not sure as to who's to blame, Cygwin or Boost. @@ -199,8 +199,8 @@ cmake -G "Visual Studio 14 2015" ^ ... {% endcapture %} -{% include shell.html cmd='cd' out=out1 %} -{% include shell.html cmd=cmd2 %} +{% include jekyll-theme/shell.html cmd='cd' out=out1 %} +{% include jekyll-theme/shell.html cmd=cmd2 %} #### x64 @@ -217,8 +217,8 @@ cmake -G "Visual Studio 14 2015 Win64" ^ ... {% endcapture %} -{% include shell.html cmd='cd' out=out1 %} -{% include shell.html cmd=cmd2 %} +{% include jekyll-theme/shell.html cmd='cd' out=out1 %} +{% include jekyll-theme/shell.html cmd=cmd2 %} ### Cygwin & MinGW-w64 @@ -244,8 +244,8 @@ cmake -G "Unix Makefiles" \ ... {% endcapture %} -{% include shell.html cmd='pwd' out=out1 %} -{% include shell.html cmd=cmd2 %} +{% include jekyll-theme/shell.html cmd='pwd' out=out1 %} +{% include jekyll-theme/shell.html cmd=cmd2 %} #### x64 @@ -264,5 +264,5 @@ cmake -G "Unix Makefiles" \ ... {% endcapture %} -{% include shell.html cmd='pwd' out=out1 %} -{% include shell.html cmd=cmd2 %} +{% include jekyll-theme/shell.html cmd='pwd' out=out1 %} +{% include jekyll-theme/shell.html cmd=cmd2 %} diff --git a/_posts/2017-06-24-static-vs-inline-vs-unnamed-namespaces.md b/_posts/2017-06-24-static-vs-inline-vs-unnamed-namespaces.md index caefe08..f58c50a 100644 --- a/_posts/2017-06-24-static-vs-inline-vs-unnamed-namespaces.md +++ b/_posts/2017-06-24-static-vs-inline-vs-unnamed-namespaces.md @@ -64,7 +64,7 @@ For example, the program below would print due to the fact that both main.cpp and proxy.cpp get their own versions of `n` from `shared()`. -{% include snippets/section.html section_id='static' %} +{% include jekyll-theme/snippets/section.html section_id='static' %} In C, this is the only way to share function definitions between translation units (apart from the usual way of declaring a function in a header file and @@ -92,7 +92,7 @@ function defined this way will be the same (as in "will have the same address") in every translation unit. Let's try and adjust the definition of `shared()` accordingly: -{% include snippets/section.html section_id='inline' %} +{% include jekyll-theme/snippets/section.html section_id='inline' %} The same program would then print @@ -107,7 +107,7 @@ the same `n`. Weird things happen when different translation units define different `inline` functions with the same name. -{% include snippets/section.html section_id='inline_weird' %} +{% include jekyll-theme/snippets/section.html section_id='inline_weird' %} According to my simple experiments, this program produces different output based on which .cpp file was specified first on the command line during @@ -162,7 +162,7 @@ Remember the weirdness that happens when multiple translation units define different `inline` functions with the same name? Arguably, it gets even worse if we add classes to the equation. -{% include snippets/section.html section_id='unnamed_namespaces_weird' %} +{% include jekyll-theme/snippets/section.html section_id='unnamed_namespaces_weird' %} Compiling this program the same way we did in the `inline` example (`cl /W4 /EHsc main.cpp another.cpp /Fe:test.exe`/`g++ -Wall -Wextra -std=c++11 main.cpp @@ -186,7 +186,7 @@ This can be easily fixed by putting both `Test` classes into unnamed namespaces. The program than reads -{% include snippets/section.html section_id='unnamed_namespaces_ok' %} +{% include jekyll-theme/snippets/section.html section_id='unnamed_namespaces_ok' %} After the adjustment, it produces the same output regardless of compilation options. @@ -241,7 +241,7 @@ The program below outputs 1 ``` -{% include snippets/section.html section_id='static_and_inline' %} +{% include jekyll-theme/snippets/section.html section_id='static_and_inline' %} In general, I can't think of a reason to define a `static inline` function. @@ -256,7 +256,7 @@ The program below outputs 1 ``` -{% include snippets/section.html section_id='unnamed_namespace_and_inline' %} +{% include jekyll-theme/snippets/section.html section_id='unnamed_namespace_and_inline' %} In general, I can't think of a reason to define an `inline` function in an unnamed namespace. @@ -273,4 +273,4 @@ The program below outputs 2 ``` -{% include snippets/section.html section_id='separate_method_definitions' %} +{% include jekyll-theme/snippets/section.html section_id='separate_method_definitions' %} diff --git a/_posts/2020-05-06-docker-bind-mounts.md b/_posts/2020-05-06-docker-bind-mounts.md index 7ad46ac..cd42e0a 100644 --- a/_posts/2020-05-06-docker-bind-mounts.md +++ b/_posts/2020-05-06-docker-bind-mounts.md @@ -18,7 +18,7 @@ Case in point: docker run -it --rm -v "$( pwd ):/data" alpine touch /data/test.txt {% endcapture %} -{% include shell.html cmd=cmd1 %} +{% include jekyll-theme/shell.html cmd=cmd1 %} would create file ./test.txt owned by root:root. @@ -28,7 +28,7 @@ You can fix that by using the `--user` parameter: docker run -it --rm -v "$( pwd ):/data" --user "$( id -u ):$( id -g )" alpine touch /data/test.txt {% endcapture %} -{% include shell.html cmd=cmd1 %} +{% include jekyll-theme/shell.html cmd=cmd1 %} That would create file ./test.txt owned by the current user (if the current working directory is writable by the current user, of course). @@ -92,10 +92,10 @@ root root test-user test-group {% endcapture %} -{% include shell.html cmd=cmd1 out=out1 %} -{% include shell.html cmd=cmd2 %} -{% include shell.html cmd=cmd3 out=out3 %} -{% include shell.html cmd=cmd4 out=out4 %} +{% include jekyll-theme/shell.html cmd=cmd1 out=out1 %} +{% include jekyll-theme/shell.html cmd=cmd2 %} +{% include jekyll-theme/shell.html cmd=cmd3 out=out3 %} +{% include jekyll-theme/shell.html cmd=cmd4 out=out4 %} I suppose that's the reason why many popular images override ENTRYPOINT, using a custom script (and `gosu`, which is basically `sudo`, I think) to forcefully @@ -137,10 +137,10 @@ stat -c '%u' data 999 {% endcapture %} -{% include shell.html cmd=cmd1 %} -{% include shell.html cmd=cmd2 out=out2 %} -{% include shell.html cmd=cmd3 %} -{% include shell.html cmd=cmd4 out=out4 %} +{% include jekyll-theme/shell.html cmd=cmd1 %} +{% include jekyll-theme/shell.html cmd=cmd2 out=out2 %} +{% include jekyll-theme/shell.html cmd=cmd3 %} +{% include jekyll-theme/shell.html cmd=cmd4 out=out4 %} As you can see, ./data changed its owner from user with UID 1000 (the host user) to user with UID 999 (the `redis` user inside the container). @@ -175,10 +175,10 @@ stat -c '%u' data 1000 {% endcapture %} -{% include shell.html cmd=cmd1 %} -{% include shell.html cmd=cmd2 out=out2 %} -{% include shell.html cmd=cmd3 %} -{% include shell.html cmd=cmd4 out=out4 %} +{% include jekyll-theme/shell.html cmd=cmd1 %} +{% include jekyll-theme/shell.html cmd=cmd2 out=out2 %} +{% include jekyll-theme/shell.html cmd=cmd3 %} +{% include jekyll-theme/shell.html cmd=cmd4 out=out4 %} Sometimes `--user` is not enough though. That specified user is almost certainly missing from container's /etc/passwd, diff --git a/_posts/2020-05-20-makefile-escaping.md b/_posts/2020-05-20-makefile-escaping.md index f3d301e..bdc56cb 100644 --- a/_posts/2020-05-20-makefile-escaping.md +++ b/_posts/2020-05-20-makefile-escaping.md @@ -106,8 +106,8 @@ line? Same line? {% endcapture %} -{% include shell.html cmd='cat Makefile' out=out1 %} -{% include shell.html cmd='make test' out=out2 %} +{% include jekyll-theme/shell.html cmd='cat Makefile' out=out1 %} +{% include jekyll-theme/shell.html cmd='make test' out=out2 %} This is quite often sufficient to write valid recipes. @@ -137,8 +137,8 @@ bash: -c: line 0: unexpected EOF while looking for matching `'' make: *** [Makefile:11: test] Error 2 {% endcapture %} -{% include shell.html cmd='cat Makefile' out=out1 %} -{% include shell.html cmd='make test' out=out2 %} +{% include jekyll-theme/shell.html cmd='cat Makefile' out=out1 %} +{% include jekyll-theme/shell.html cmd='make test' out=out2 %} One solution is to take advantage of how `bash` parses command arguments, and replace every quote `'` by `'\''`. @@ -161,8 +161,8 @@ printf '%s\n' 'Includes '\'' quote' Includes ' quote {% endcapture %} -{% include shell.html cmd='cat Makefile' out=out1 %} -{% include shell.html cmd='make test' out=out2 %} +{% include jekyll-theme/shell.html cmd='cat Makefile' out=out1 %} +{% include jekyll-theme/shell.html cmd='make test' out=out2 %} Surprisingly, this works even in much more complicated cases. You can have a recipe that executes a command that takes a whole other command @@ -195,8 +195,8 @@ bash -c 'bash -c '\''printf '\''\'\'''\''%s\n'\''\'\'''\'' '\''\'\'''\''Includes Includes ' quote {% endcapture %} -{% include shell.html cmd='cat Makefile' out=out1 %} -{% include shell.html cmd='make test' out=out2 %} +{% include jekyll-theme/shell.html cmd='cat Makefile' out=out1 %} +{% include jekyll-theme/shell.html cmd='make test' out=out2 %} That's somewhat insane, but it works. @@ -254,10 +254,10 @@ Variable ${reference} Composite value - Simple value - Variable ${reference} {% endcapture %} -{% include shell.html cmd='cat Makefile' out=out1 %} -{% include shell.html cmd=cmd2 out=out2 %} -{% include shell.html cmd=cmd3 out=out3 %} -{% include shell.html cmd=cmd4 out=out4 %} +{% include jekyll-theme/shell.html cmd='cat Makefile' out=out1 %} +{% include jekyll-theme/shell.html cmd=cmd2 out=out2 %} +{% include jekyll-theme/shell.html cmd=cmd3 out=out3 %} +{% include jekyll-theme/shell.html cmd=cmd4 out=out4 %} Environment variables --------------------- @@ -303,8 +303,8 @@ Variable Variable ${reference} {% endcapture %} -{% include shell.html cmd='cat Makefile' out=out1 %} -{% include shell.html cmd=cmd2 out=out2 %} +{% include jekyll-theme/shell.html cmd='cat Makefile' out=out1 %} +{% include jekyll-theme/shell.html cmd=cmd2 out=out2 %} Here, `$(test_var)` is expanded recursively, substituting an empty string for the `${reference}` part. @@ -319,7 +319,7 @@ Variable ${reference} Variable $${reference} {% endcapture %} -{% include shell.html cmd=cmd1 out=out1 %} +{% include jekyll-theme/shell.html cmd=cmd1 out=out1 %} A working solution would be to use the `escape` function on the unexpanded variable value. @@ -348,8 +348,8 @@ Quote ' and variable ${reference} Quote ' and variable ${reference} {% endcapture %} -{% include shell.html cmd='cat Makefile' out=out1 %} -{% include shell.html cmd=cmd2 out=out2 %} +{% include jekyll-theme/shell.html cmd='cat Makefile' out=out1 %} +{% include jekyll-theme/shell.html cmd=cmd2 out=out2 %} This doesn't quite work though when [overriding variables] on the command line. For example, this doesn't work: @@ -366,7 +366,7 @@ Variable Variable {% endcapture %} -{% include shell.html cmd=cmd1 out=out1 %} +{% include jekyll-theme/shell.html cmd=cmd1 out=out1 %} This is because `make` ignores all assignments to `test_var` if it's overridden on the command line (including `test_var := $(value test_var)`). @@ -476,7 +476,7 @@ Variable ${reference} Composite value - New simple value - Variable ${reference} {% endcapture %} -{% include shell.html cmd='cat Makefile' out=out1 %} -{% include shell.html cmd='make test' out=out2 %} -{% include shell.html cmd=cmd3 out=out3 %} -{% include shell.html cmd=cmd4 out=out4 %} +{% include jekyll-theme/shell.html cmd='cat Makefile' out=out1 %} +{% include jekyll-theme/shell.html cmd='make test' out=out2 %} +{% include jekyll-theme/shell.html cmd=cmd3 out=out3 %} +{% include jekyll-theme/shell.html cmd=cmd4 out=out4 %} diff --git a/_posts/2021-03-10-ubuntu-packaging.md b/_posts/2021-03-10-ubuntu-packaging.md index 3c993b3..397f355 100644 --- a/_posts/2021-03-10-ubuntu-packaging.md +++ b/_posts/2021-03-10-ubuntu-packaging.md @@ -161,7 +161,7 @@ Let's remove every other file for now: You can study the exact format of the metadata files in the [Debian New Maintainers' Guide], but for now let's keep it simple: -{% include snippets/section.html section_id='basic' %} +{% include jekyll-theme/snippets/section.html section_id='basic' %} The "control" and "copyright" files are fairly straighforward. The "changelog" file has a strict format and is supposed to be maintained using @@ -185,7 +185,7 @@ While building the package, it'll get executed by `dh`, read the directories. Our test.install should look like this: -{% include snippets/section.html section_id='install' %} +{% include jekyll-theme/snippets/section.html section_id='install' %} At this point, we can actually build a proper Debian package! @@ -225,7 +225,7 @@ We need to configure it so that it knows how the release tags look like the generated files. Create "debian/gbp.conf" with the following contents: -{% include snippets/section.html section_id='gbp' %} +{% include jekyll-theme/snippets/section.html section_id='gbp' %} One unclear line here is `pristine-tar = False`. It turns out, a lot of Debian package maintainers use the `pristine-tar` tool |