Tiny Core Linux
General TC => Programming & Scripting - Unofficial => Topic started by: Arslan S. on November 27, 2011, 07:01:25 AM
-
About 1.5 years ago i started using scripts to ease updating packages i maintain and in time these scripts turned into a package build system which is hosted at the following site
http://code.google.com/p/tc-ext-tools/ (http://code.google.com/p/tc-ext-tools/)
You can learn the basics by reading the introduction wiki and readme file given below
# What is tc-ext-tools ?
t(iny)c(ore)-ext(ension)-tools is a package build system developed for Tiny Core Linux.
It is originally written by Sercan Arslan (aka Arslan S. at Tiny Core Linux).
# What is the aim of the project ?
The aim of the project is to reduce the command line usage as much as possible
and create a high level, easy and fast package maintenance system.
# What are the main design concepts behind it ?
The package build system, which is inspired by the divide and conquer philosophy, is based on a set of tools.
The building process of a package is done step by step and the package maintainer has complete control
over defining each step as a rule.
# Where is the project hosted at ?
The project is hosted at http://code.google.com/p/tc-ext-tools/ (http://code.google.com/p/tc-ext-tools/)
# Where to start ?
http://code.google.com/p/tc-ext-tools/wiki/Introduction (http://code.google.com/p/tc-ext-tools/wiki/Introduction)
Sercan Arslan <arslanserc@gmail.com>
-
I have downloaded it and installed it, and trying to feel my way around. Obviously a lot of time and effort has been put into this.
-
I have downloaded it and installed it, and trying to feel my way around. Obviously a lot of time and effort has been put into this.
yes true but that's due to amount of extensions i have made
from each extension i have learnt smth and added support for it
-
I will be leaving on Monday morning and be back in the mids of May due to military obligations in my country. I am going to a very cold place, city of Ardahan in eastern Turkey. I added tcesubmit as a committer to tc-ext-tools. So you will have access to my packages. Please feel free to update any package and commit. I will be glad especially if someone maintains chromium-browser while i am away because it is the most frequently used extension i believe.
-
Good luck and return safe, Arslan S.
-
I will be leaving on Monday morning and be back in the mids of May due to military obligations in my country. I am going to a very cold place, city of Ardahan in eastern Turkey.
Best wishes!
Spread the word of TC in tha army! :)
-
Hi Arslan,
Many thanks for creating the Lazarus.tcz+FPC! Also, your tc-ext-tools seem to be a perfect match for Lazarus (we need to have multiple configs for multiple environments, as one example) Question...is the package build process employed by tc-ext-tools the same (or close) to the Lazarus package build system? Can we build/compile/maintain Lazarus packages via tc-ext-tools?
And as a note, FreePascal just released a major upgrade to 2.6 on new years day.
I am spreading the word of your excellent work at the Lazarus forum. Now I will post about tc-ext-tools. I thing TCore+Lazarus+tc-ext-tools could make the coolest development environment around.
(I hope you get to read this soon)
Cheers
-
Hi everyone,
please do not expect any commitment from me before may 17
it has been 34 days and remaining 124 days to freedom
after joining the army i learned one thing very good, the meaning of freedom
as i said before please don't hesitate to use tc-ext-tools to update anything
i wish everyone to be free
-
when humanity will evolved and stop the wars, then perhaps they will no longer serve these obligations (or deprivation of liberty)
In the meantime, hold on!
;)
-
I am sure we all appreciate Arslan's contributions to TC and look forward to his return.
-
after joining the army i learned one thing very good, the meaning of freedom
+1
I am sure we all appreciate Arslan's contributions to TC and look forward to his return.
+1
----
I am playing with tce-ext-tools. It's a great system, I like!
But it needs a fix for 4.2... In /common/function ->line 291 where TCE_DIR=$(cat /opt/.tce_dir)
must be something like TCE_DIR=/etc/sysconfig/tcedir
I write here in case anyone has problems with it.
Regards.
-
hi tc people hope you are going well without me
107 days remaining, 1/3 completed and all i need is patience here
-
For reasons of curiosity, I tried with liferea but I could not:
1 Download with svn tc-ext-tools and liferea
2 Add AmatCoder mod
3 Create .config (from config.sample, included as attachments) and install
4 Edit common of liferea (included as attachments)
5 buildit
I get this error (http://pastebin.com/BxDnRCYt)
I think is new dep of liferea 1.8
-
[...]
I think is new dep of liferea 1.8
I do not try it but I guess you need add to BUILD_DEPENDS:
libunique-dev
json-glib
json-glib-dev
-
hi tc people hope you are going well without me
107 days remaining, 1/3 completed and all i need is patience here
Hold on, men! ;)
-
I added them and go on, but now it also stops during compilation:
tc@box:~/tc-ext-tools/packages/liferea$ buildit
Building the package liferea started at 09:40:08
Cleaning the package liferea files and directories ... successful!
Loading the package liferea build dependencies ... successful!
The package liferea source is already downloaded.
The package liferea source is already converted.
Unpacking the package liferea source ... successful!
Patching the package liferea source ... successful!
Configuring the package liferea ... successful!
Compiling the package liferea ... failed!
For details: buildit --print compile
buildit --print compile (http://pastebin.com/17e1B5rB)
I add libxml2-dev.tcz and libxml++-dev.tcz to common file but error is the same.
compiling by hand returns the same error
-
Here, adding libxml2-dev, it is working...
(http://s13.postimage.org/lv7kxluk7/liferea.png)
WARNING: Do not add filename extension '.tcz' in your common file.
[...]
libunique-dev
json-glib
json-glib-dev
libxml2-dev.tcz
libxml++-dev.tcz
[...]
-
Uhm! :-[
Very thanks Amat Coder, when I have a little time i submit liferea updated.
Arslan I have your permission? and what should I do with the script and the. info file?
-
Amat, to me again not work (http://pastebin.com/USJZYTGh)!! ???-->
I apply mod to common ad you say
I had ORBit2-dev.tcz package ruined and after redownload the script will go forward, but not create same the package:
tc@box:~/tc-ext-tools/packages/liferea$ buildit
Building the package liferea started at 01:07:43
Cleaning the package liferea files and directories ... successful!
Loading the package liferea build dependencies ... successful!
Downloading the package liferea source ... successful!
Converting the package liferea source ... successful!
Unpacking the package liferea source ... successful!
Patching the package liferea source ... successful!
Configuring the package liferea ... successful!
Compiling the package liferea ... successful!
You must compile it first!
tc@box:~/tc-ext-tools/packages/liferea$
Instead if I compile it by hand liferea install properly
-
Yes, it is a know issue. See: http://code.google.com/p/tc-ext-tools/issues/detail?id=1 (http://code.google.com/p/tc-ext-tools/issues/detail?id=1)
Read the last comment. There I explain issue and I offer a couple of solutions.
Basically, you can modify buildit -> line 121 where
sudo installit || exit 1
you must write
sudo -E installit || exit 1
-
Ok, work fine, I also corrected package dependencies.
I remit myself to arslan, I aspect his ok.
P.s. Thanks truly Amat, without you I would not have ever made
-
hi tc people, dawn 26 to freedom wait for me :)
-
hi tc people, dawn 26 to freedom wait for me :)
Come back safe and you can tell me about Pascal+Laz.......
-John
-
hi tc people, dawn 26 to freedom wait for me :)
Good! Looking forward to your return.
I've been using your tools massively to my extensions , but I made some changes to it in my system. Here I put my patch to your review:
Changes are:
-Add tags support
-Fix http://code.google.com/p/tc-ext-tools/issues/detail?id=1 (http://code.google.com/p/tc-ext-tools/issues/detail?id=1)
-Fix tce dir for 4.2 and newer.
Index: tools/addit
===================================================================
--- tools/addit (revision 565)
+++ tools/addit (working copy)
@@ -148,6 +148,7 @@
SITE="http://www.package.com"
COPYING="GPL-2"
MAINTAINERS="$PACKAGE_MAINTAINER"
+TAGS=""
COMMENTS="---"
CHANGELOG="---"
CURRENT="First Version"
@@ -168,6 +169,7 @@
SITE="http://www.package.com"
COPYING="GPL-2"
MAINTAINERS="$PACKAGE_MAINTAINER"
+TAGS=""
COMMENTS="---"
CHANGELOG="---"
CURRENT="First Version"
@@ -188,6 +190,7 @@
SITE="http://www.package.com"
COPYING="GPL-2"
MAINTAINERS="$PACKAGE_MAINTAINER"
+TAGS=""
COMMENTS="---"
CHANGELOG="---"
CURRENT="First Version"
Index: tools/generateit
===================================================================
--- tools/generateit (revision 565)
+++ tools/generateit (working copy)
@@ -73,6 +73,7 @@
Copying-policy: ${COPYING}
Size: ${SIZE}
Extension_by: ${MAINTAINERS}
+Tags: ${TAGS}
Comments: ${COMMENTS}
Change-log: ${CHANGELOG}
Current: ${CURRENT}
Index: tools/buildit
===================================================================
--- tools/buildit (revision 565)
+++ tools/buildit (working copy)
@@ -118,7 +118,7 @@
}
install_it() {
- sudo installit || exit 1
+ sudo -E installit || exit 1
}
split_it() {
Index: tools/checkit
===================================================================
--- common/functions (revision 565)
+++ common/functions (working copy)
@@ -288,7 +288,7 @@
TCMIRROR=http://distro.ibiblio.org/pub/linux/distributions/tinycorelinux/
TCVER=4.x
- TCE_DIR=$(cat /opt/.tce_dir)
+ TCE_DIR=/etc/sysconfig/tcedir
KERNEL=$(uname -r)
ARCH=i686
Regards.
-
Thanks to Arslan who kindly added me as member, the changes described above have been sent to trunk.
Now, tc-ext-tools is working with latest TC versions. (Well, I hope so... ;))
Soon I will send the packages made by me to svn.
-
(http://www.aereimilitari.org/forum/public/style_emoticons/default/metal.gif)
-
@amatcoder
no problem, it is good to know someone keeping the project alive while i am away.
9 days remaining to freedom again i hope to work with you together in the future.
Arslan S.
-
Hi Arslan S.
We are all looking forward to hearing from you again after you've returned home and had some time to
spend with family and friends.
-
@amatcoder
no problem, it is good to know someone keeping the project alive while i am away.
9 days remaining to freedom again i hope to work with you together in the future.
Sure! :)
BTW, I will make a few additional changes:
1) Generate a zsync file. It is required according to wiki: http://wiki.tinycorelinux.net/wiki:creating_extensions (http://wiki.tinycorelinux.net/wiki:creating_extensions)
2) Do not package a dep file if it is empty. According to this post: http://forum.tinycorelinux.net/index.php/topic,12663.msg69030.html#msg69030 (http://forum.tinycorelinux.net/index.php/topic,12663.msg69030.html#msg69030) extensions without dependencies should no have dep file.
Regards.
-
Hi
AmatCoder, thank u for keeping alive tc-ext-tools.
Before I was using a script by kingdomcome which automatically splits the dev files and the locales.
U can look a the script in the src section of the tinycore site on my packages.
The scripts of my recent packages also automatically adjust the info files.
The package to send to tcesubmit is a tar.bz2, maybe change it to xz.
also this to scripts from jason could be included:
http://forum.tinycorelinux.net/index.php/topic,12002.0.html (http://forum.tinycorelinux.net/index.php/topic,12002.0.html)
http://forum.tinycorelinux.net/index.php/topic,2475.0.html (http://forum.tinycorelinux.net/index.php/topic,2475.0.html)
-
Hi
AmatCoder, thank u for keeping alive tc-ext-tools.
Before I was using a script by kingdomcome which automatically splits the dev files and the locales.
U can look a the script in the src section of the tinycore site on my packages.
Yes, this could be done. I will do some tests...
The scripts of my recent packages also automatically adjust the info files.
Those scripts does not seem very different from how tc-ext-tools make info files...
The package to send to tcesubmit is a tar.bz2, maybe change it to xz.
bz2 or gz archives are acceptable to send, but a xz archive is not...as far as I know.
also this to scripts from jason could be included:
http://forum.tinycorelinux.net/index.php/topic,12002.0.html (http://forum.tinycorelinux.net/index.php/topic,12002.0.html)
http://forum.tinycorelinux.net/index.php/topic,2475.0.html (http://forum.tinycorelinux.net/index.php/topic,2475.0.html)
Some functions from submitqc4 have their equivalent in tc-ext-tools...I will look to include the others.
Regards.
-
regarding the info file for existing extensions I did this:
sed -i "s/Current:/ /" $PACKAGE.tcz.info
echo "Current: $CURRENT" >> $PACKAGE.tcz.info
My latest extensions where sent in xz format and whithout encryption and they had been all published
-
regarding the info file for existing extensions I did this:
sed -i "s/Current:/ /" $PACKAGE.tcz.info
echo "Current: $CURRENT" >> $PACKAGE.tcz.info
Oh, I see now...Old Current goes to Change-log automagically when update...I also will look this.
My latest extensions where sent in xz format and whithout encryption and they had been all published
tc-ext-tools simply follow the wiki instructions:
[...] create an archive and then bcrypt it (using the password “tinycore”) in order to avoid any problems with GMail.
but I don't know if it is required always...
-
If the package creation is scripted either way, better keep the tinycore bcrypt because of several mail filter issues, which can lead to some confusion... better safe than sorry ;)
-
Arslan S. et. al.
Wow. Tried it for the first time today.
Very impressed by this tool.
Automates packaging to the point of editing a couple files, and typing a few commands.
A great time saver.
With a bit of tweaking(in the docs perhaps),
I would heartily recommend this to those who demand a certain package.
Some feedback.
git support doesn't quite seem to be there.
I kept getting 'schema invalid' after
buildit --download && buildit --print message
a lot of projects are moving to git.
it might also be interesting to put one's packaging directory under git.
2)the extension name in
addit --extensions="extension name" should not have .tcz appended as the tools
will append that when they package. perhaps this should be made clear in the docs.
3)buildit --split doesn't seem to work for me at the moment
i'll have a closer look at the examples.
other than that. Great work!
And on a personal note: Hope you're feeling the fresh breeze of freedom, Arslan S.!
cheerio,
solorin
-
git support doesn't quite seem to be there.
I kept getting 'schema invalid' after
buildit --download && buildit --print message
a lot of projects are moving to git.
whenever possible one should download only tags with released versions from the git repo, which is most of the time possible like any other source download of an archive (no git checkout). reason for this is to concentrate on somewhat stable releases, which a pull of the current tree isn't necessarily.
-
guter Punkt gutenmensch.
stable releases for submissions to the repo it is
(and has been).
however, maybe there are a small number of cases when tarballs are not made available?
-
hello tc people i am back on track after about 6 months away.
planning mass update of extensions starting from mostly anticipated ones such as chromium, midori, minitube, vlc etc.
i have been checking the forums especially tce are all day and according to feedback received the update list will be arranged.
also special thanks to amatcoder for patching tc-ext-tools to work with latest tc and jls for updates
S. Arslan
-
hi arslan,
great that you are back!
especially i'm glad that you want to contribute to the community again.
we are looking forward for your updates of all that favored packages as minitube, vlc and virtualbox :)
happy packaging, thanks.
-
welcome again to tc! ;D
-
Hi Arslan welcome back.
I have some questions for anyone.
in the common file is in the "source" could use a local file, eg like this.
PACKAGE="srware-iron"
VERSION="18.0.1050.0"
SOURCE="/mnt/sda5/PM/iron-linux.tar.gz->srware-iron-${VERSION}.tar.gz"
BUILD_DEPENDS=""
I have tried this and failed. What script should I modify. whether downloadit script?
-
you can put the file in src directory and create the file download.stamp manually
-
Hi Arslan
Thank you, the trick works well, my internet connection is less stable areas, so I donlod use axel or aria2 file first.
another question: Can you make the nvidia-96.43.20 package for kernel 3.0.21 here:
http://tc-ext-tools.googlecode.com/svn/packages/
-
Added local file support
http://code.google.com/p/tc-ext-tools/source/detail?r=603 (http://code.google.com/p/tc-ext-tools/source/detail?r=603)
usage:
SOURCE=file::/path/to/file
packaging old nvidia drivers is easy but no hardware to test
-
Hi Arslan S.
thanks for the quick revision to support the local file. for nvidia let me make my own package.
-
Hi Arslan S
Keep up the great contributions.
I know it will take some time to update all of the apps.
However, when you have time, I would appreciate it if you can get Network Manager working properly, so mobile broadband modems can be connected to the internet.
I have had the front end working, but there is something else not working properly. I experimented for a while, but don't have unlimited time. I now use Linux Mint, as I can connect to the internet with it.
The most people with wireless broadband modems have been unable to connect to the internet with Tinycore, so they now use other operating systems.
-
hello tc people i am back on track after about 6 months away.
planning mass update of extensions starting from mostly anticipated ones such as chromium, midori, minitube, vlc etc.
Welcome back, Arslan! :D
A lot of work awaits you... ;)
-
Enjoy your freedom. I know I was ready for retirement when I got out.
-
Hi,
Just a few quick queries if I may.
Is there an easy way to create dummy packages;
meaning empty packages with dependency files that aren't?
I'm trying to update a package and also split it into more sensible units.
I'd like to provide a dummy package that has the newly split packages as dependencies
so that it doesn't break other things that depend on it currently.
I can probably figure it out by hand if there isn't an easy way to do this.
Also, I'm packaging a lot of stuff without configure scripts, projects that would have you edit the Makefiles by hand. Is there an automatic way to append the proper CFLAGS/CXXFLAGS/LDFLAGS onto the right line in the Makefile?
Relatedly, any tips on handling qmake gracefully would be appreciated.
Still think it's great work. I'm having a blast making extensions again.
cheerio.
-
1-) see kde4-desktop as an example to create a meta-package using tc-ext-tools
http://tc-ext-tools.googlecode.com/svn/packages/KDE4/kde4-desktop/ (http://tc-ext-tools.googlecode.com/svn/packages/KDE4/kde4-desktop/)
it is just like creating any other package just remove the unnecessary rules like patch, configure, compile, strip
2-) I will work on supporting packages with meta-extension as you call dummy extension (empty tcz) that includes others as dep
Edit: It is completed. See latest revision.
install file for an emtpy tcz should be:
x-
or
x-.
3-) CFLAGS, CXXFLAGS, CPPFLAGS, LDFLAGS are usually environment variables exported prior to configure if there is no configure then you can try
make CFLAGS="$CFLAGS -I/path/to/include" LDFLAGS="$LDFLAGS -L/path/to/lib -lfoo"
but you may have to patch Makefile sometimes
4-) qmake is actually a very simple tool for configuring applications using qt
a typical way of building with qmake is as follows:
qmake PREFIX=/usr/local
make
make install
the input file is a qt project file of type .pro see qmake tutorial
http://qt-project.org/doc/qt-4.8/qmake-tutorial.html (http://qt-project.org/doc/qt-4.8/qmake-tutorial.html)
also see
https://tc-ext-tools.googlecode.com/svn/packages/musique/build (https://tc-ext-tools.googlecode.com/svn/packages/musique/build)
https://tc-ext-tools.googlecode.com/svn/packages/minitube/build (https://tc-ext-tools.googlecode.com/svn/packages/minitube/build)
http://tc-ext-tools.googlecode.com/svn/packages/qps/build (http://tc-ext-tools.googlecode.com/svn/packages/qps/build)
-
Also, I'm packaging a lot of stuff without configure scripts, projects that would have you edit the Makefiles by hand. Is there an automatic way to append the proper CFLAGS/CXXFLAGS/LDFLAGS onto the right line in the Makefile?
You can use sed command...See: http://tc-ext-tools.googlecode.com/svn/packages/crypto++/build (http://tc-ext-tools.googlecode.com/svn/packages/crypto++/build) Here I comment out CXXFLAGS that comes with GNUmakefile, but we also can replace it with our CXXFLAGS.
-
wow. thank you both for the helpful replies.
Arslan, the latest revision does indeed create a meta-extension easily.
thank you.
however, tc seems to choke on loading it.
$tce-load -i meta-extension
mount: mounting /dev/loop21 on /tmp/tcloop/meta-extension failed: Invalid argument
did i misuse the tool?
cheerio,
solorin
-
no you don't misuse the tool it is mount's fault. mounting empty extension fails.
tce-load unmounts empty extension to save a loop device but it fails due to this failure
mkdir empty
mksquashfs empty empty.tcz
mkdir /mnt/test
mount empty.tcz /mnt/test -t squashfs -o loop,ro,bs=4096
mount: mounting /dev/loop243 on /mnt/test failed: Invalid argument
-
which means we should place a stub file in meta-extensions?
like in compiletc.tcz?
thanks again.
sorry for making a feature request without fully understanding the implications.
-
Yes, the kernel behavior changed, now squashfs needs something. Please use a /usr dir or similar.
-
yes creating a directory does the trick but tce-load needs update for empty extensions
replacing ls with find in tce-load
---[ -z "`ls /mnt/test/$APP`" ] && EMPTYEXT=1
+++[ -z "`find /mnt/test/$APP -not -type d`" ] && EMPTYEXT=1
is there a way to terminate find after the first object found ?
or a recursive scan using ls command
-
"find $dir -mindepth 1 -maxdepth 2 | wc -l" > 1 ?
-
I am proving the tc-ext-tools and in all the three test packages I become the same results:
tc@box:/mnt/sda2/tc-ext-tools/packages/pcsc-tools$ buildit
Building the package pcsc-tools started at 22:14:09
Cleaning the package pcsc-tools files and directories ... successful!
Loading the package pcsc-tools build dependencies ... successful!
The package pcsc-tools source is already converted.
Unpacking the package pcsc-tools source ... successful!
Patching the package pcsc-tools source ... successful!
Compiling the package pcsc-tools ... successful!
You must compile it first!
even I make the corrections from AmatCoder
Basically, you can modify buildit -> line 121 where
Code: [Select]
sudo installit || exit 1
you must write
Code: [Select]
sudo -E installit || exit 1
it only works OK if I make the other changes in etc/passwd every session, because if I put etc/passwd in opt/.filetool.lst then in the next session don't work "load local apps" in Apps.
-
Hi Onyarian
If you backup passwd , shouldn't you also backup group, shadow, and gshadow?
-
amatcoder already submitted the fix for keeping environment variables
i don't think that's related to your issue anyways
can you send me the package build files please?
-
Hi Arslan,
I have started again downloading and installing tce-ext-tools, and building the packages another time and now all is OK, there are no errors and the packages are all completed .
Now I will prove them and polish the info and dep files, and after divide them in dev and doc send to tc, there remain some work.
Thanks.
-
I would like to see this topic on top of this forum section, I don't know the tech term for this
-
Apologies for the thread necro, but just wanted to say I found this little tool the other day, and think it's fantastic! Are there any plans, or is there any interest, in some sort of community repo, where people can share their package scripts?
For instance, I manage to get haskell's binary distro running, but it's a horrible hack, and I don't feel happy submitting it to the repo, or I put together a build script for a library's daily snapshots, and it would make more sense to share the build scripts, rather than submit nwe packages every other day...
I would like to see this topic on top of this forum section, I don't know the tech term for this
Pinned or stickied, depending on the forum software. Not sure which way SMF leans.
-
Hi althalus
Are there any plans, or is there any interest, in some sort of community repo, where people can share their package scripts?
It should be OK to post under General TC->Programming & Scripting - Unofficial
-
What happened to the tc-ext-tools download links please ? and svn host ?
-
tc-ext-tools never had download link. You must use svn...its host is:
http://tc-ext-tools.googlecode.com/svn/trunk/
-
Got it, thanks
8)
-
Hello all!
Ok, I'm missing something here... I had success on all building the "nspr" package BUT where is located the nspr.tcz after all success messages?
[edit]
Nevermind... I found it!
Thanks!
-
Call me crazy, but wouldn't it make sense for this to be an extension itself for people to use? If there was an official extension build system, then people wouldn't have to submit extensions, just the config file to build it.
-
Our web server certainly can't handle building tasks. So lack of a suitable build server would be the issue.
We can't really ask someone to do it personally either. The build could take days if someone submitted libreoffice, while current extension submission is fairly light on people.