TurnKey 13.0 ready for community development

Want to roll your own Debian Wheezy based images? You're in luck because we just finished upgrading TurnKey's build chain, including new versions of TKLDev and TurnKey Core ready for download.

Now let me back up a bit to put this into perspective. Less than 2 weeks ago we announced TKLDEV - Turnkey's next-generation appliance development and build system in a box. The one that makes it easy for developers to roll their own pre-integrated Linux solution or build any of TurnKey's 100+ apps from the source code at github.com/turnkeylinux-apps I ended the announcement saying: "with all the pieces now in place, we're moving full force on the TurnKey 13.0 release".

Which perhaps wasn't the best way to put it because it didn't explain how we planned on making room for the community to step in this time and help make the next release a more open, collaborative process.

So here's the outline: this time it's all going to be out in the open. We're breaking down the development process into a few major milestones:

  1. Upgrade the build chain to TurnKey 13 based on Debian Wheezy. Publish new Core and TKLDev.
  2. Create release candidates for the new release by rebuilding existing appliances on Debian Wheezy using the upgraded build chain. We expect some builds to break and need fixing but we don't know how many yet.
  3. Create release candidates for new appliances based on TKLDev community projects.
  4. Official release: after the release candidates get some more testing/bugfixing

Milestone 1: TKLDev 13 + TurnKey Core 13 RCs - done!

I'm proud to announce step 1 is done: we've made updates to the components required to create the build chain for TKL 13.0 Wheezy, and have released TurnKey Core and TKLDev 13.0 release candidates:

This means you can now easily roll your own Debian Wheezy based, pre-integrated Linux images.

Now for Milestone 2...

The TurnKey 12.1 maintenance release included fresh upstream application versions for 71 appliances (the rest received updates directly from the Debian archive), which is unusual for a maintenance release which usually just includes security updaets, but we planned on doing a refresh of upstream components for 13.0 anyway, so we thought why not hit two birds with one stone.

So, the plan is to batch build the entire library as RC's, and then go through a testing and bugfixing phase. We'll be creating a page on the development wiki summarizing the status of each appliance (build pass/fail, test pass/fail, etc.) as well as creating issues in the tracker when appropriate (build and test failures).

Throughout the development process, commits to all appliances and sub-components will be pushed out to GitHub in real-time. We'll also be reviewing all existing and future pull requests we encourage anyone interested in leaving their mark on TurnKey to step in and collaborate with us.

We're hoping to gradually turn TurnKey releases into a community effort. Many hands make light work as the saying goes so we'd like to encourage everyone interested in making Linux and open source software easier to use to get involved!


Eric (tssgery)'s picture

Nice to see us moiving to TKL 13 so quickly!

Just wanted to let you know that I deployed the new tkldev 13.0 rc2 image, and built core successfully. I then tried to build lamp and fileserver and both failed. I may get a chance to debug a little later this week but until then... I'm dead in the water.

Alon Swartz's picture

I attempted to build lamp as well and it broke trying to start the mysql daemon. It turns out that default-character-set=utf8 is no longer supported when specified in a cnf, so I removed it and completed the build successfully.

Was that the same issue you experienced?

BTW, what issue did you encounter with the fileserver build?

Eric (tssgery)'s picture

Thanks Alon. I was hoping I'd have some time to debug it last weekened but that didn't happen.

For lamp, that's the exact error I was seeing. I pulled down your changes and they worked well. Thanks again.

For fileserver, I am getting an error after enabling fastcgi or fastcgi-php from within /turnkey/fab/common/conf/lighttpd-fastcgi. I am not seeing the results of the sed command so maybe the issue is with enabling fastcgi-php? Here's the last few lines of stdout:

 /etc/init.d/lighttpd stop
[ ok ] Stopping web server: lighttpd.
+ cat
+ /usr/lib/inithooks/bin/ajaxplorer.py --pass=turnkey
+ rm -rf /usr/local/src/ajaxplorer-core-4.2.3.tar.gz /usr/local/src/ajaxplorer.overlay
fab-chroot build/root.patched --script /turnkey/fab/common/conf/lighttpd-fastcgi
already enabled
Run /etc/init.d/lighttpd force-reload to enable changes
make: *** [build/stamps/root.patched] Error 2
Eric (tssgery)'s picture

I debugged a little further.... since fastcgi is already enabled, asking lighty-enable-mod to enable it again returns a non-zero status and since /turnkey/fab/common/conf/lighttpd-fastcgi is run with "-e".... the script exits with a  non-zero return code.

Ideally, you can first validate that the mods are not enabled. Another option is to ignore the rc=2 from lighty-enable-mod (rc=2, means that "no action was needed")

Alon Swartz's picture

Excellent work Eric! I created an issue on the tracker, and pushed out a fix to common which should solve the issue.

If you find any other issues, feel free to update the tracker or send a pull request ;)

Eric (tssgery)'s picture

You should have a pull request for confconsole from me :)

I'd have done that here but after I found the defect, I had to do actual 'paying job' work and didn't have a chance to test out a fix.

Alon Swartz's picture

Thanks Eric, I must have missed the email notification. I'll take a look...

Jeremy Davis's picture

I love the way this is all taking shape... Now I just need to actually have a proper play with all these exciting shiny new toys! :)

Alon Swartz's picture

We just completed building the entire appliance library for 13.0rc2 (amd64 iso at the moment). As expected, some of the builds failed, so we created issues on the tracker for each, and included the failure traceback. Additionally, we put up a status summary on the wiki.

This is the first time we're doing a release out in the open, so if something isn't clear please let us know.

Eric (tssgery)'s picture

I'm sure you'll see the email but just in case...


I submitted a pull request for the ownCloud appliance (https://github.com/turnkeylinux-apps/owncloud/pull/1)

Alon Swartz's picture

I'll take a look at the pull request as soon as I can and merge it. 13.0 is going to be an awesome community effort... can't wait.

Eric (tssgery)'s picture

I just sent you another pull request for gitlab.

The pull simply gets the appliance building again. I'm going to continue looking (when I get some free time) at supporting the newest version of gitlab, but wanted to at elast get this compilation fixes to you

Timeout's picture

If Turnkey can support UEFI like Ubuntu 12.04 LTS, I will switch back to Turnkey. Any idea how can manually make Turnkey boot up on UEFI only system.


Jeremy Davis's picture

But v13 is based on Debian Wheezy (aka 7) and it seems that there are still some issues with some hardware (see under Errata down the page a bit here).

My personal experience installing Wheezy on my Lenovo X1 Carbon (which came with Win7 preinstalled and no modifications made to BIOS settings so I would assume UEFI boot was enabled by default) was problem free so it seems the issues are related to certain hardware. Although I don't recall seeing an option to use UEFI or legacy BIOS when I installed...!?

TBH I'm not sure how the UEFI/legacy BIOS is dealt with in the TKL modified installer (di-live) so beyond you testing and feeding back any issues with it (which would be super awesome!) I can't provide much (any?) assistance or guidance.

OnePressTech's picture

It's a fantastic milestone to be releasing TKLX13 as a community release. I'm an Aussie on annual holiday in Croatia / Canada but I always keep an eye on the latest and greatest from TKLX...even on holiday :-)

Will start to look to contributing starting in late Sept. I'm an ex-Nortel coder / R&D Manager who's re-entering the coding /sysadmin end of the biz in conjunction with the bizdev associated with launching two startups and the sysadmin associated with managing lead clients though so my TKLX contribution time will be a challenge initially. New to GIT and rusty on the tech side it may take a bit of time for me to ramp up my contributions...hope you're patient...just need a little time :-)

Thanks for the hard work and community drive. It is much appreciated. And thanks to those members, such as Jeremy and Eric who have jumped in and helped out so quickly. I think they represent the best in community spirit.


Tim (Managing Director - OnePressTech)

Liraz Siri's picture

When time permits try jumping in with something simple and non-intimidating first. Then gradually progress towards more complicated and interesting stuff as you become more familiar with how things work. The toolchain provides a tremendous amount of leverage so you can get a lot done with relatively little effort.

There's something very satisfying about whipping together a new Linux distribution image with just a few lines of code. Have fun!

OnePressTech's picture

Thanks Liraz. Simple is good :-)

I have done extensive install / config work with WordPress multi-site, Zabbix and Alfresco on a TKLX LAMP stack, and quite a bit of research in Apache optimisations. Are discussions on these topics best tackled by Wiki submissions or Blog submissions?


Tim (Managing Director - OnePressTech)

Liraz Siri's picture

Whatever is easiest for you. I reckon that'll probably be the wiki. That's what we're intending it for and having used it myself I can testify that it's pretty easy to use, at least for me.
John Carver's picture

Is there a template for starting new appliances?  When using TKLpatch, I created a template (set of files and directories based on the example) that I could copy when starting a new appliance.  I looked for something similar in TKLdev, but couldn't find anything nor could I find an example appliance for use as a reference.  I'm trying to setup a workflow for starting a new appliance and one for modifying an existing appliance.  Any suggestions would be welcome.  FYI I'm using ProxMox-VE with four vm's for TKLdev (squeeze and wheezy) (32 and 64 bit).  Seems more complicated than it needs to be.

Information is free, knowledge is acquired, but wisdom is earned.

Alon Swartz's picture

All appliance source code is available in turnkeylinux-apps on github. When creating a new appliance, its recommended to identify the closest existing appliance, clone it and re-initialize the git-repo. Although, sometimes you might want to start with a clean slate, which means cloning core.

As for having 4 different VM's, I agree that its not optimum. It should be theoretically possible to build 32bit appliances on 64bit TKLDev, but I haven't the time or inclination to travel down that road (as of yet).

It is possible though to use wheezy TKLDev to build squeeze appliances, and vice versa. You'll just need to make sure to set RELEASE in the environment to override the default set by common turnkey.mk which uses the host systems codename. Given that its possible, I would suggest focusing on wheezy / TurnKey 13.0.

John Carver's picture

Alon,  Could you please elaborate on how to re-initialize the git-repo, and get it linked to a project on github?  My limited understanding of the process was that I create a new project (appliance) on my github account, then clone it to my local tkldev host in the projects directory.  I can't then clone an appliance into that directory without messing up the .git setup.

You seem to be suggesting that I git clone a starting appliance (or core), rename it, re-initialize git, and then push the project to github.  Is that the preferred work-flow for a new appliance?

Information is free, knowledge is acquired, but wisdom is earned.

Alon Swartz's picture

The process differs whether you want to improve an existing appliance, or create a new one. Full documentation and examples are available, but in a nutshell:

  • existing appliance
    • fork the appliance on github (from turnkeylinux-apps to your account)
    • clone the appliance repo from your account to tkldev
    • optional: add a remote to track the original repo
    • create a branch, hack, commit, repeat...
    • push changes to github and send a pull request
  • new appliance
    • clone the closest appliance repo from turnkeylinux-apps to tkldev
    • rm -rf .git; git init
    • hack, commit, repeat...
    • register repo on github in your account and push your branch
    • let us know via the tracker
Jeremy Davis's picture

  1. We have ~6 mths of Squeeze updates so no huge rush (not yet anyway...)
  2. The recommended way to upgrade TKL appliances, is to migrate the data to a fresh instance (of the new version) using TKLBAM. It is further recommended that you keep your original appliance running until the new appliance is operating exactly as it should... You mention running as a VM, so I'd suggest that you run a TKLBAM backup on your exisiting appliance, download and install TKL v13.0rc(2 - assuming that it works...) of your appliance to a NEW VM, restore your data and see how it goes... Document anything that yu need to change (if anything) for when you do it for real when v13.0 (final) is released...
Alon Swartz's picture

After a round of bugfixing, we ran builds for the entire appliance library again, this time for 13.0rc3.

Unfortunately some appliance builds failed (details). We'll be doing another round of bugfixing and rebuilding for rc3. Hopefully the full library will be available as rc3 very soon, and then we can move forward.

Thanks to everyone who have helped with 13.0 so far!!!

[update] bugfixing and rebuilding complete. This brings milestone 2 to a close.

[update] 13.0rc3 released + summary

Jeremy Davis's picture

It's so exciting seeing the progress of the v13 release. Even though I haven't contributed much to the release it still feels like I'm a part of the action! :)


Add new comment