[1.0] PirateBox 1.0 release preparations

Posted by Matthias 
[1.0] PirateBox 1.0 release preparations
August 09, 2013 10:51AM
Hi guys,
the time passes by and while doing a lot of work on the LibraryBox & PirateBox codebase I can say, that stuff get even more stable per day.

Over the last year I recognized that the need from a normal PirateBox moves over more and more to a general application base for ther OpenWRT systems, where people want to create their world- which they can invite everybody to watch, listen or play with.
Especially through the integration of Forban I recognized, we can't go further with the current installation path done in 0.6 and below. Some people want to install more and more software on those tiny boxes or even want to run only specific points.

Then across the internet, there are alot of howtos, which are using direct URLs which forces me to leave the OpenWRT packages online, to not break those howtos.. So, what would be alot nicer than that? Yes, packages integrated in the OpenWRT repository only calling "opkg install piratebox" and everything is done.
A few of you already recognized, that this goal I achieved a few weeks before. But my vision is more further than that.
Offline installation is a really problematic point, which is not possible currently.. and if the installation breaks for some reason while downloading ie Python you end messed up.

To get away from this I have to make the installation a bit more difficult in the beginning, but in the end you profit even more from stable packages and more flexibility.
The new installation can be done offline without big issues and you can easily install other software and run them without doing much of the manual stuff like now.

The new PirateBox OpenWRT package is divided into two Parts: The USB handling with the external filesystem and PirateBox itself.

The PirateBox package now only contains the scripts for setting up the PirateBox-Scripts like on a Debian System with the OpenWRT specific changes. I introduce an additional package called "extendRoot". This package gets installed on your OpenWRT box itself and creates a so called "installation destination". A installation destination tells the package manager to install the packages there instead directly on the firmware of PirateBox. Of course, this is nothing new on the first view... but it is totally excluded of PirateBox itself, so you can try different software for youself now WITHOUT installing PirateBox. The complete environment is setup to be able to execute the binaries out of the installation destination (in PirateBox 0.6 it was not so easy possible).... the only left manual steps is linking stuff from the installation destination down to the firmware.
As you know, links are only references to other files and that enables us to use more software on those boxes then before. And I created so called "module" packages for extendRoot, which already do the linking work for you ! Those predefined packages are currently

- Python (extendRoot-python)
- lighttpd ( extendRoot-lighttpd)
- PHP (extendRoot-php)
- ProFTPD (extendRoot-protftp)
- PirateBox (extendRoot-piratebox)

Eh wait??? PirateBox has a module too.. what?
Yeah, that is for making the installtion of the software even more easier, because we don't mess around with custom package linking anymore (like before) we have one packages with has all needed dependencies ( extendRoot-python & extendRoot-lighttpd only at the beginning).
Sound weird and difficult. Believe, it only sounds at the stuff is MUCH more modular then before and easily extendable.

So you run

opkg -d ext extendRoot-piratebox

And all needed stuff to get PirateBox running of the "install destination" will be done:

* Install Python and its dependencies
* Link needed stuff from extendRoot to firmware to get python running properly
* Install lighttpd
* Link needed stuff from extendRoot to firmware to get lighttpd running properly 
* Install PirateBox

The new PirateBox installation ends now in a situation, where you don't have to run "nodns" to install more packages or run commands. It stops the PirateBox-Service but leaves the filesystem open for modifications like imageboard or the timesave script.
Ah and before I forget that point, the major packages are in a format OpenWRT that they include into the OpenWRT build process.

Beside the complete new installation path on OpenWRT we have some other features which will be shipped with the version 1.0:

* New UI with a responsive design (and this is totally different from the custom mods now)
* Installation script for normal PCs or RaspberryPI

Ok, there are not all the features mentioned on the Roadmap, and I swear I wished to release that.. but I couldn't. i.e. the mesh stuff needs alot more work, I can't do right now.
Then the other point is, during the preparations of the Camp I recognized how big that release will be and it might mess up soon with alot of Bugs. I recognized that our version-numbering is messed up... so I need to push this to a situation we have clean numbers again.

What I can promise easily:


After this release we can provide alot of things easily, like PHP - IRC server and whatever.

Alot of those modifications are laying on my Repository and simply needs to tested and my experience of LibraryBox-Development slowly flows back into PirateBox again.

So, Why do I write all those lines? Because I need help. My freetime doing work on PirateBox is really low at the moment... and after I did the ToDo list during the last days, I recognized what is todo.

I share this stuff now with you on a etherpad : PirateBox 1.0 Preparations

The Pad includes open TODOs, a list of the feature which needs to be tested after the first beta release. Even if you can't code, you can step in and try to help with overworking the readme pages, create howtos . Simple collect information what we have to do for proper licencing like adding GPL3 and this kind of stuff.
Sometimes only asking the right questions outside the point a view of a developer helps to detect mistakes.
If you can't use github, ask in our IRC channerl #piratebox on freenode what to do. It is not that difficult and this project has already grown more than 2 ppl using guthub now.
If you want to start discussions about 1.0 in this development-forum beside my thread, they are welcomed! Plz add " [1.0] " in front of your topic name, that all know what is it about.

We need your help, to get close to PirateBox 1.0.

My wished release date is mid of October!



EtherPad with todos
PirateBoxScripts_Webserver repository on github Release-1.0 branch
OpenWRT feed for integration into the build process
OpenWRT piratebox package
Successful git branching (We are using this, pay attention to github branches called "development" and "release_1.0" (not created yet)

This is only my signature.

Edited 2 time(s). Last edit at 08/11/2013 06:41PM by Matthias.
Re: [1.0] PirateBox 1.0 release preparations
August 09, 2013 02:06PM
New UI?
For those how want to have a sneak
Re: [1.0] PirateBox 1.0 release preparations
August 09, 2013 06:02PM
Looking good! Awesome work!

Re: [1.0] PirateBox 1.0 release preparations
August 11, 2013 06:40PM
I created the release_1.0 branch on PirateBoxScripts_Webserver and collected everything today, which you can find here

Created concept for beta-source environment and started to modify the packages to point to the beta-repository.

Edited 2 time(s). Last edit at 08/12/2013 03:52PM by Matthias.
Re: [1.0] PirateBox 1.0 release preparations
August 12, 2013 02:48PM
Hi guys,

so. Few more informations for you.

>>>>>>> Install PirateBox BETA 1.0 only if you already did a normal installaition and you know how to help your self on most common issues <<<<<<<<<<<

I prepared the beta-sourcecode today and did all the needed packaging.
You can find the beta-repository under the following URL

Language: PHP

The file called "piratebox-ws_1.0.0_beta1.tar.gz" is the most recent sourcecode for the content in /opt/piratebox - you need this, if you run on a notebook.

If you want to install Piratebox on your MR3020 (or whatever you have), I recommend you, that you use the latest stable AA-release OpenWRT firmware file.
If you still want to use my custom firmware, you need to edit /etc/opkg.conf and exchange the "stable" with "beta".

Upgrading is not possible because of the heavy structural changes.

The current Changelog looks like:


=== 1.0.0 ===
NOTE: This may only be a partial changelog, check github / your package manager for more info.

* Overwork into new Responsive design
* [New] install method
* [New] install dependencies
* [Fixed] General cleaning
* [New] possibility in install_piratebox.sh to exchange the hostname easily
* [Fixed] Hide dot files in directory-listing which are usually hidden files
* [New] Moved DHCP leasefile into memory on OpenWRT system (/tmp is memory)

If you want to install PirateBox 1.0, you have to do a few different steps: PirateBox 1.0 pre install guid for ProGamer

Choose packages with "beta" in the end, if available. If you do so, the beta.openwrt.piratebox.de stuff is used instead of the stable.piratebox.de (that not gonna work) (this was changed on 2013-08-13 ; the packages without beta work against the beta-domain now)

The responsive design is missing one last update, but I already placed it into the image.
Some things aren't tested from me, just added (sorry for that... matter of time)

If you want to have an Account for editing the wiki, contact me.

So far Matthias

(Mesh needs to be installed before PirateBox now.. but it isn't included to the repro yet- so no easily testing possible)

Edited 2 time(s). Last edit at 08/13/2013 08:59AM by Matthias.
Re: [1.0] PirateBox 1.0 release preparations
August 13, 2013 05:02AM
Works great! Only the imageboard couldn't be installed:

opkg -d ext install piratebox-mod-imageboard
Installing piratebox-mod-imageboard (0.0.1-2) to ext...
Downloading [beta.openwrt.piratebox.de].
Installing piratebox (1.0.0-5) to ext...
Downloading [beta.openwrt.piratebox.de].
Stopping script piratebox
Stopping dnsmasq...
start-stop-daemon: warning: killing process 2500: No such process
Stopping droopy...
start-stop-daemon: warning: killing process 2505: No such process
Stopping lighttpd...
Collected errors:
 * check_data_file_clashes: Package piratebox wants to install file /mnt/ext/usr/share/piratebox/piratebox.common
        But that file is already provided by package  * piratebox-beta
 * check_data_file_clashes: Package piratebox wants to install file /mnt/ext/etc/init.d/piratebox
        But that file is already provided by package  * piratebox-beta
 * check_data_file_clashes: Package piratebox wants to install file /mnt/ext/etc/piratebox.config
        But that file is already provided by package  * piratebox-beta
 * opkg_install_cmd: Cannot install package piratebox-mod-imageboard.
Re: [1.0] PirateBox 1.0 release preparations
August 13, 2013 08:59AM
gotcha Howard!
Yeah, In fact, that *-beta stuff was totally crap. I found a better way to do it and only change stuff during buildprocess within the normal packages.

I exchanged the complete repository content this morning and adjusted the post above.

For you:
please remove piratebox-beta and install "piratebox" to -d ext
After this, the imageboard stuff should work.

Sorry for that.
Re: [1.0] PirateBox 1.0 release preparations
August 15, 2013 04:45PM
The installation went smoothly. But the shoutbox still got error "Triggered ajaxError handler on shoutbox" . If I click the link "Forum", I just got the listing of file in folder /board.
Re: [1.0] PirateBox 1.0 release preparations
August 15, 2013 04:51PM
Hi johanrusli ,
Many thanks for the feedback!

@board issue: Is there the kareha.pl file ? If yes, does it work, after you opened it once? I think, that the original way for creating the index.html broke due to the changed piratebox install (after everything started, I stop the webserver, dnsmasq and so on that you can easily install additional stuff).

too bad. I haven't tested the new design yet, i think there must be the issue.
can you post the output of

ls -l /opt/piratebox/www
ls -l /opt/piratebox/www/cgi-bin

please? maybe one file is missing, because it wasn't generated well.

Re: [1.0] PirateBox 1.0 release preparations
August 15, 2013 05:06PM
There is kareha.pl file , if I run it I got "500 - Internal Server Error".

And luckily, the shoutbox got no problem anymore after I restart. I don't know why. spinning smiley sticking its tongue out
Re: [1.0] PirateBox 1.0 release preparations
August 15, 2013 05:23PM
@shoutbox ok, maybe the reason is because a file is missing or wasn't generated correctly during the first run

please check /opt/piratebox/tmp/break.log
Re: [1.0] PirateBox 1.0 release preparations
August 15, 2013 05:34PM
the break.log file is empty.
Re: [1.0] PirateBox 1.0 release preparations
August 15, 2013 05:45PM
and the error.log?

try to run perl manually

perl -v

Edited 1 time(s). Last edit at 08/15/2013 06:33PM by Matthias.
Re: [1.0] PirateBox 1.0 release preparations
August 15, 2013 09:53PM
I found the issue just a couple of minutes ago.
The problem is, that I'm linking the perl binary and libs wrong.

The following lines should be fix it for your

        rm -v  /usr/bin/perl
        rm -rv /usr/lib/perl* 
        ln -s /usr/local/usr/bin/perl /usr/bin/perl
        ln -s /usr/local/usr/lib/perl* /usr/lib/

I'm currently fixing the package and provide a new one soon
Re: [1.0] PirateBox 1.0 release preparations
August 16, 2013 04:13AM
Okay....everything is okay right now except the logo of the board is blank (the piratebox-logo-small.png is missing)
But I could edit it in config.pl. The piratebox 1.0 is up and running. Thanks ! smileys with beer
Re: [1.0] PirateBox 1.0 release preparations
August 19, 2013 01:06AM
Thank you, it works beautifully!

Edited 2 time(s). Last edit at 08/19/2013 01:44AM by Howard.
Re: [1.0] PirateBox 1.0 release preparations
August 21, 2013 10:23AM
First of all, thanks for your feedback so far.

I restored the missing image in the www - folder and received the pull-request for the custom directory-listing. To enable this, I needed to added scripts which distributes two files over Shared folder during bootup. If a file named "HEADER.txt" or "README.txt" already exists, it won't be overwritten.

I'm currently testing that "beta2" called version. After I can confirm it as working, I'll update the needed files.

The release is done and uploaded.
To update your current running 1.0 box, you can do:

1. Download piratebox_ws_1.0_img.tar.gz
2. Lay the file on the USB stick into the "install" folder
3. Plug USB to your PirateBox and boot the PirateBox
4. Login into your box and run
/etc/init.d/piratebox stop
/etc/init.d/piratebox updatePB
/etc/init.d/piratebox start
5. Done

regards Matthias

(more links:
Comparison of changes )

Edited 2 time(s). Last edit at 08/21/2013 11:29AM by Matthias.
Re: [1.0] PirateBox 1.0 release preparations
August 21, 2013 11:08PM
Updated. Stylesheet is missing in any of subfolders in Files section.
Re: [1.0] PirateBox 1.0 release preparations
August 22, 2013 10:38AM
Hi Howard,
thanks for your feedback.
Try to edit /opt/piratebox/conf/lighttpd/lighttpd.conf and find the following lines:

# Grabs main css
dir-listing.external-css = "../style.css"

And remove the two dots that it is:

# Grabs main css
dir-listing.external-css = "/opt/piratebox/www/style.css"

or maybe only

dir-listing.external-css = "/style.css"

That should fix that.

Edited 2 time(s). Last edit at 08/22/2013 10:39AM by Matthias.
Re: [1.0] PirateBox 1.0 release preparations
August 22, 2013 01:02PM
Ok, there war a few more issues about that. The images+JS path were relative too.

I only paste the lines in the final form, you have to remove the .. in front of the path.

1. change lighttpd.conf
dir-listing.external-css = "/style.css"

2. change /opt/piratebox/src/HEADER.txt

<script src="/jquery.min.js"></script>
<script src="/scripts.js"></script>
<div id="menu-icon"><img src="/menu.png" alt="Menu"></div>

3. run the following command on your box

/opt/piratebox/bin/distribute_files.sh /opt/piratebox/share/Shared true

That copies over the files again and overwrite every README.txt and HEADER.txt

Re: [1.0] PirateBox 1.0 release preparations
September 06, 2013 09:37AM
Hey guys,
I've included a few additional fixes for the timesave script. Are there any other new testresults or strang behaviour to be fixed before I release the next beta-release.

Re: [1.0] PirateBox 1.0 release preparations
September 18, 2013 09:39PM
Sorry, you can't reply to this topic. It has been closed.