Ikiwiki page creation bug

Problem Description

  1. I click on ‘Create Wiki or Blog’ in Plinth.
  2. I name the new page and submit my admin account’s credentials, click on ‘Update setup’ and the new Wiki/Blog gets created.
  3. When I open the newly created page, however, there is only empty Apache directory under the name I specified in step 2.

If in step 2, I submit a non-existent username and password, the Wiki is created successfully.

Also, when I click on anything on the freshly generated Wiki or Blog, like Preferences or Edit, I get a 404 error.

Information

  • FreedomBox version: Debian GNU/Linux 11 (bullseye) and FreedomBox version 21.14.1.
  • Hardware: vServer, x64, 2 GB RAM
  • How did you install FreedomBox?: sudo DEBIAN_FRONTEND=noninteractive apt-get install freedombox

Update:
I solved the issue with:

  1. apt remove --purge ikiwiki
  2. apt autoremove
  3. apt install gcc libauthen-passphrase-perl libc6-dev libcgi-formbuilder-perl libcgi-session-perl libcrypt-ssleay-perl libgravatar-url-perl liblwpx-paranoidagent-perl libmail-sendmail-perl libnet-openid-consumer-perl librpc-xml-perl libterm-readline-gnu-perl libxml-simple-perl libcgi-fast-perl libjson-xs-perl
  4. apt install ikiwiki
1 Like

edit(2022-01-03):I’m an idiot. My problem may not even have anything to do with OP’s problem. I solved the issue without necessarily having to fix the missing stdio.h error; not having stdio.h is probably for CGI features I don’t use in my blog. (in any case, I resolved this particular error by running # apt install libc6-dev as described here).

The root cause of my blog post not appearing was that I saved the blog post text file in /var/ikiwiki/blog/posts/ as a .org file (org mode) instead of exporting and saving a .md file (markdown); I didn’t notice the missing step because I use org mode for drafting before publishing. Once I properly exported, committed, pushed, and pulled the file for rebuilding, the post appeared as I expected. Yay! :partying_face:

:: :: :: ::

original(2021-01-02):
I also noticed that I couldn’t create a new blog post. I haven’t created one in about 6 months so perhaps an update since then has caused a problem.

My usual method is to login and run the following command as root:

# ikiwiki --setup /var/lib/ikiwiki/blog.setup --rebuild --verbose --gettime

Instead of the usual stream of notifications ending with the static files in /var/www/ikiwiki/blog/ being updated, I am notified of an error via stderr:

Use of uninitialized value in string eq at /usr/share/perl5/IkiWiki.pm line 669.
Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 688.
Use of uninitialized value in string eq at /usr/share/perl5/IkiWiki.pm line 669.
Use of uninitialized value in string ne at /usr/share/perl5/IkiWiki.pm line 688.
/var/www/ikiwiki/blog/ikiwiki.cgi.c:2:10: fatal error: stdio.h: No such file or directory
    2 | #include <stdio.h>
      |          ^~~~~~~~~
compilation terminated.
failed to compile /var/www/ikiwiki/blog/ikiwiki.cgi.c

The fatal error: and <stdio.h> are rendered in bold red.

I am inclined to follow this recommendation to run $ sudo apt install --reinstall build-essential to restore a missing stdio.h file that the meta-package build-essential apparently includes. However, I hesitate since a dry run indicates that gcc-8 and libgcc-8-dev will be removed (they sound important).

# apt install build-essential --dry-run
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages were automatically installed and are no longer required:
  cpp-8 libasan5 libisl19
Use 'apt autoremove' to remove them.
The following additional packages will be installed:
  g++ g++-10 libc-dev-bin libc-devtools libc6-dev libcrypt-dev libgd3 libnsl-dev libstdc++-10-dev libtirpc-dev
  linux-libc-dev
Suggested packages:
  gcc-10-doc glibc-doc libgd-tools libstdc++-10-doc
The following packages will be REMOVED:
  gcc-8 libgcc-8-dev
The following NEW packages will be installed:
  build-essential g++ g++-10 libc-dev-bin libc-devtools libc6-dev libcrypt-dev libgd3 libnsl-dev libstdc++-10-dev
  libtirpc-dev linux-libc-dev
0 upgraded, 12 newly installed, 2 to remove and 1 not upgraded.
Remv gcc-8 [8.3.0-6]
Remv libgcc-8-dev [8.3.0-6]
Inst libc-dev-bin (2.31-13+deb11u2 Debian:11.2/stable [armhf])
Inst linux-libc-dev (5.10.84-1 Debian:11.2/stable [armhf])
Inst libcrypt-dev (1:4.4.18-4 Debian:11.2/stable [armhf])
Inst libtirpc-dev (1.3.1-1 Debian:11.2/stable [armhf])
Inst libnsl-dev (1.3.0-2 Debian:11.2/stable [armhf])
Inst libc6-dev (2.31-13+deb11u2 Debian:11.2/stable [armhf])
Inst libstdc++-10-dev (10.2.1-6 Debian:11.2/stable [armhf])
Inst g++-10 (10.2.1-6 Debian:11.2/stable [armhf])
Inst g++ (4:10.2.1-1 Debian:11.2/stable [armhf])
Inst build-essential (12.9 Debian:11.2/stable [armhf])
Inst libgd3 (2.3.0-2 Debian:11.2/stable [armhf])
Inst libc-devtools (2.31-13+deb11u2 Debian:11.2/stable [armhf])
Conf libc-dev-bin (2.31-13+deb11u2 Debian:11.2/stable [armhf])
Conf linux-libc-dev (5.10.84-1 Debian:11.2/stable [armhf])
Conf libcrypt-dev (1:4.4.18-4 Debian:11.2/stable [armhf])
Conf libtirpc-dev (1.3.1-1 Debian:11.2/stable [armhf])
Conf libnsl-dev (1.3.0-2 Debian:11.2/stable [armhf])
Conf libc6-dev (2.31-13+deb11u2 Debian:11.2/stable [armhf])
Conf libstdc++-10-dev (10.2.1-6 Debian:11.2/stable [armhf])
Conf g++-10 (10.2.1-6 Debian:11.2/stable [armhf])
Conf g++ (4:10.2.1-1 Debian:11.2/stable [armhf])
Conf build-essential (12.9 Debian:11.2/stable [armhf])
Conf libgd3 (2.3.0-2 Debian:11.2/stable [armhf])
Conf libc-devtools (2.31-13+deb11u2 Debian:11.2/stable [armhf])

Although my ikiwiki blog is backed up via git (so I could restore the blog if I nuked the Freedombox), I’d like some reassurance that running the commands @nbenedek won’t wipe the contents of /var/lib/ikiwiki.

Any ideas?

Information

  • FreedomBox version: Debian GNU/Linux 11 (bullseye) and FreedomBox version 21.16.
  • Hardware: Pioneer-Freedombox-HSK
  • How did you install FreedomBox?: Probably installing the Freedombox Stable iso from here onto an SD card several years ago.

Good to hear. Since then I actually realised, that in my case, doing step 3 is enough. For some reason Plinth on amd64 doesn’t install those needed packages.

1 Like

These are older version of the gcc compiler. They can be removed, since they are replaced by g+±10.

1 Like