aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/_posts
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--_posts/2017-01-07-building-boost.md44
-rw-r--r--_posts/2017-06-24-static-vs-inline-vs-unnamed-namespaces.md16
-rw-r--r--_posts/2020-05-06-docker-bind-mounts.md28
-rw-r--r--_posts/2020-05-20-makefile-escaping.md44
-rw-r--r--_posts/2021-03-10-ubuntu-packaging.md6
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