30

November
2012

Buildscripts

Old Slax 6 had unclean way of building modules. Everybody could make Slax modules in any preferred way, and it was a mess. So with Slax 7, I'm introducing new way of building modules - by using buildscripts. Users will no longer share final modules. Instead, they will share just the 'recipes' how to build them.

There will be a command in Slax 7, which will help you make modules, and it will be actually the only allowed way. The command will be: 'slax' :) Sorry for the confusion ;)

How do you make a module for Slax 7? Here is how: First, use command$ slax buildscript download templateThis will get you a template script, template.SlaxBuild. You will find many useful pre-configured variables in this script, you customize it so it produces Slax module when it is executed.

After that, you will be able to use command $ slax buildscript upload yourscript.SlaxBuildThis command will upload your build script to Slax server. It is forbidden to upload binary bundles. Only build scripts will be accepted by the server. You will be also able to use $ slax buildscript updateand$ slax buildscript delete

Uploading your buildscript will require you to create password. Update or delete operations will ask for the same password. The module (binary .sb file) will be compiled for all available architectures ON THE SERVER. It will run in sandbox (completely different machine, and virtualized), to make it harder for you to hack my server ;) Also the build scripts will be manually reviewed. When compiled, the binary Slax Bundle will be available for others.

Finally, user will be able to use $ slax activate BundleNamewhich will automatically search for BundleName on server and if found it will download it and activate it right away. Similarly, there will be $ slax deactivate BundleName

I hope to release RC3 version of Slax soon (as soon as the web interface is ready for this) so you can test it and possibly provide feedback on this. Thank you

User comments
Softy 2012-11-30 07:11

Sounds good the best part of slax is above can't wait to test RC3.

I really like it
are you gonna make GUI version for it

like they can login with there username & password the next windows comes with above commands as a button in that window a small box thats terminal where we can see the progress

Small idea came up

Thank you

Tomas M 2012-11-30 07:25

There will be a gui for Slax Software center, so you can search for modules and activate them by mouse click. But not for buildscript functinality, that is intended for developers thus is commandline only.

Slaxeee 2012-11-30 08:23

Hi Tomas,

Do you mean the only way to activate modules will be to be connected to Internet ?

Is there any slax command to save them "cleanaly" and localy ?
Of course, i presume it will be possible to copy the.sb in a private folder ...

wpa2 2012-11-30 09:00

inventing a new bicycle? ;-)

Tomas M 2012-11-30 09:31

@Slaxeee: you'll be able to use "slax download NAME" and it will just download the bundle. You can also use "slax activate localname.sb" and it will activate the local file.

Tomas M 2012-11-30 09:32

@wpa2: I'm not saying I'm inventing something ;) I'm just implementing it so it works in Slax.

jcsoh 2012-11-30 12:07

What about slackware tgz/txz package and debian deb ? .Is there no way to make use of them , especially in a situation where slax's bundle for a particular software is unavailable ?.

francois.e 2012-11-30 13:08

Thanks tomas. It looks clean and simple. Lets see what it will be in practice with rc3.

sparrow 2012-11-30 15:12

so, can we convert recipe from slitaz or slackbuild with this ?

ralcocer 2012-11-30 19:49

Looks like you are building an app store.


it would be easier using curlftps to activate the modules with this command:


mkdir /home/myftp
curlftpfs -v ftp://ftp.slax.com -o user="slaxuser:slaxpasswrd" /home/myftp

it's as easy as activating from a directory.

Just my HU , I use this and it works.

@sparrow I use my modified copy of the Slitaz package manager with Porteus but just to decompress and modify the recipe because of the different Linux versions and dependencies it just breaks the system, but the FS folder you can compress as a xzm module.

dry 2012-12-01 19:34

select bundles from web and download as custom slax or maybe something like susestudio

tdmsilvino 2012-12-02 04:05

@Tomas M, if you use sbopkg to build the Slackbuilds people could send sbopkg queue files to you, so as long as the packages are available in the slackbuilds.org your server would only follow the recipe from the sbopkg queue file.

I did a xbmc module to use in my Slax system and I used sbopkg to create a queue with all the dependencies, it made the process very easy.

Tomas M 2012-12-02 09:33

The problem with sbopkg or slackbuilds in general is that it assumes you have full Slackware system installed. Due to that assumption, it won't let you automatically check for dependencies of packages. My intention is to make sure that a Slax Build Script knows which dependencies are needed to compile the software, and which to run the software.

tdmsilvino 2012-12-02 10:04

@Tomas M, Isn't it the same of a slackbuild? The slackbuild is a script used to compile the package that you want and you may use other slackbuilds to create its dependencies first.

Another question ... my XBMC install is made of 35 packages, if you add my XBMC module in your repository how will you handle the conflits that the 35 packages could cause to the other modules? For example, my module includes ffmpeg, if another user submit a module that also includes ffmpeg wouldn't they conflict with each other?

voltron 2012-12-03 08:03

Is it correct that "slax" command will track dependencies (both compile- and run-time)? If I try to activate package ABC, that relies on package XYZ, will XYZ activated too?

voltron 2012-12-03 08:07

Ops... sorry found answers in latest post

kwer 2016-05-11 22:19

I hope to release RC3 version of Slax soon (as soon as the web interface is ready for this) so you can test it and possibly provide feedback on this.