You are not logged in.
Pages: 1
For those of you that are building your own e17 packages (from pkgbuilds) , I have come up with an extremely ( i am by all means not a great programmer, but I'll learn..some time) simple script that builds all the packages (tell me if I missed any) and separes the pkgbuilds from the "finished ones"..
Just change the e17path to your liking and check so that all your directories match those in the script..
have fun and hope it helps someone else than myself (but my guess is that the ones who has e17 repos already made some script similar to this)
I have only tested it on my computer with my locations and so on...but it should work...
UPDATE: New script, a little nicer script thanks to dibble
UPDATE2: Added an error check, and gensync
#!/bin/sh
###########################################################################
# This is a simple script to build e17 and some of the applications that #
# are needed or great to have together with the script #
# Made by: CyberTron arch@linuxportalen.com
# With some help from Dibblethewrecker
###########################################################################
echo "Creating directories, if the don't exist, otherwise I give an error"
#Change to your directories...
mkdir /home/cybertron/pkgbuilds/e17/packages
e17path=/home/cybertron/pkgbuilds/e17
mkdir $e17path/packages/e17-$(date +%d%m%y)
build=$e17path/packages/e17-$(date +%d%m%y)
echo "E17-cvs log" > $build/e17-$(date +%d%m%y).log
#Needed Libs, all names are directories (+cvs) example: eet-cvs
libs="eet edb evas ecore embryo imlib2 edje epeg epsilon esmart
emotion engrave ewl etox imlib2_loaders eeh"
echo "Building necessary libraries"
#The E17 programs
e17="entice entrance eclair e engage erss e_utils e_modules e17genmenu
elicit embrace enterminus epsilon equate evidence examine eclips elation
expose envision express enotes erme"
# Some 3:rd party modules
modules="evolume ecalendar"
for app in $libs ; do
cd $e17path/$app-cvs
makepkg -c || { echo 'Failure!!'; rm -r pkg src; exit 1; }
mv *.pkg.tar.gz $build
echo "The building of $app-cvs was successful" >> $build/e17-$(date +%d%m%y).log
done
echo "Building E17 programs"
for app in $e17 ; do
cd $e17path/$app-cvs
makepkg -c || { echo 'Failure!'; rm -r pkg src; exit 1; }
mv *.pkg.tar.gz $build
echo "The building of $app-cvs was successful" >> $build/e17-$(date +%d%m%y).log
done
for app in $modules ; do
cd $e17path/$app
makepkg -c || { echo 'Failure!!'; rm -r pkg src; exit 1; }
mv *.pkg.tar.gz $build
echo "The building of $app was successful" >> $build/e17-$(date +%d%m%y).log
done
echo "Done making e17-cvs"
# Show list
cat $build/e17-$(date +%d%m%y).log
#Make a repository
gensync $e17path $build/e17-cvs.db.tar.gz
#copy all files to another directory
cp -R $build/* /home/repo/e17
http://www.linuxportalen.com -> Linux Help portal for Linux and ArchLinux (in swedish)
Dell Inspiron 8500
Kernel 2.6.14-archck1 (selfcompiled)
Enlightenment 17
Offline
you want to use a:
list="big list of apps"
for app in $list ; do
cd $e17path/$app
makepkg
mv *.pkg.tar.gz $build
rm -r src pkg filelist
done
Offline
oh, that is nice, will the order be correct then aswell?
EDIT: It seems as the order is correct aswell
Thanks dibblethewrecker
http://www.linuxportalen.com -> Linux Help portal for Linux and ArchLinux (in swedish)
Dell Inspiron 8500
Kernel 2.6.14-archck1 (selfcompiled)
Enlightenment 17
Offline
Are there any way of logging the activity in the terminal ? (ini the script)
http://www.linuxportalen.com -> Linux Help portal for Linux and ArchLinux (in swedish)
Dell Inspiron 8500
Kernel 2.6.14-archck1 (selfcompiled)
Enlightenment 17
Offline
echo a done command after each iteration?
list="big list of apps"
for app in $list ; do
cd $e17path/$app
makepkg
mv *.pkg.tar.gz $build
rm -r src pkg filelist
echo "Done building $app"
done
something like that?
Offline
well, almost,
i was thinking more of something like "package completed successfull" in a log.txt so that one can check if there has been any errors or other problems during the build ..
hmm...just thought of something, one could do something like
echo "$app was successfull" > log.txt
would it work? don't know, will try it out now
http://www.linuxportalen.com -> Linux Help portal for Linux and ArchLinux (in swedish)
Dell Inspiron 8500
Kernel 2.6.14-archck1 (selfcompiled)
Enlightenment 17
Offline
not quite
if you use a single > it will overwrite the whole file each time.
You need to create the file first maybe with a header like
echo "e17-cvs log" >log.txt
then use a >> instead of > later to append to the file
that's just one way tho
Offline
yeah, noticed that too
well, now it is a bit better anyways, it will atleast let one know which package failed even though it isn't the error itself..
updated the code above
http://www.linuxportalen.com -> Linux Help portal for Linux and ArchLinux (in swedish)
Dell Inspiron 8500
Kernel 2.6.14-archck1 (selfcompiled)
Enlightenment 17
Offline
nice
Offline
very nice script, thank you!
Offline
Hi,
useful script, I just wonder what would be the advantage of such a script over a directory of E* stuff and running makeworld over it?
-neri
Offline
mm..makeworld? what is that? something similar to makepkg I assume
well, I do get a directory with the latest package files, sorted by date and then all the pkgbuilds directories contain only the pkgbuilds (since the script erases all other data that aren't supposed to be there)
http://www.linuxportalen.com -> Linux Help portal for Linux and ArchLinux (in swedish)
Dell Inspiron 8500
Kernel 2.6.14-archck1 (selfcompiled)
Enlightenment 17
Offline
mm..makeworld? what is that? something similar to makepkg I assume
Yes, but it builds entire trees (directories) at once. So what neri was getting at would be to put everything (directories for each package with a PKBUILD in it) in an e17 folder and run makeworld on that directory.
Offline
Ahem, yes; it comes with pacman, like makepkg. It features
-b -- build dependencies
-i -- install after build
-c -- clean up build dir and things
So it is very similar to your script.
The issues behind makeworld is, that it forces you to be very carefully with the deps. Makeworld fails on wrong or incomplete deps very easily. The subdirs in abs of /extra/kde and /extra/xfce4 are capable to be build with makeworld, which safes much time for the maintainer. A word of warning: makeworld sources /etc/abs.conf so it is better if you place your PKGBUILDs und $ABSROOT
-neri
Offline
A thanks for the explanation , I will most certainly look into makeword
http://www.linuxportalen.com -> Linux Help portal for Linux and ArchLinux (in swedish)
Dell Inspiron 8500
Kernel 2.6.14-archck1 (selfcompiled)
Enlightenment 17
Offline
Hi!
I am once again updating my script for the latest, and I would like to have a "error check", so the script should break if one package fails to build...
how would I do that?
I am having something like this in mind:
makepkg -c || return 1
or perhaps something like this:
makepkg -c || break
http://www.linuxportalen.com -> Linux Help portal for Linux and ArchLinux (in swedish)
Dell Inspiron 8500
Kernel 2.6.14-archck1 (selfcompiled)
Enlightenment 17
Offline
create a function at the top that will handle clean exits.
error() {
check for something and do something
do this
do that
exit 1
}
then you can do makepkg -c || error and it will go to that function you made. Functions only execute when specificly called on.
Offline
found an even simplier version:
makepkg -c || { echo 'Failure'; exit 1; }
seem to do what i want
thanks anyway
http://www.linuxportalen.com -> Linux Help portal for Linux and ArchLinux (in swedish)
Dell Inspiron 8500
Kernel 2.6.14-archck1 (selfcompiled)
Enlightenment 17
Offline
Hi CyberTron,
After long time using fvwm, i´ll have a look at e17 again.
Is this script still usable?
Offline
Pages: 1