I have started the git repository. Please fork and add your recipes!!! There are literally thousands needed. I have 4. Rome wasn't built in a day.
See https://github.com/puppylinux-woof-CE/petbuilds
Code: Select all
git clone https://github.com/puppylinux-woof-CE/petbuilds.git
----------------------------------------------------------------------------------------------------------
NEW!
New git repository for Puppy Linux initrd.gz programs.
https://github.com/puppylinux-woof-CE/initrd_progs
-----------------------------------------------------------------------------------------------------------
This should have been done years ago, actually before the very first version of puppy was released, but it wasn't and no one has addressed the problem.
We all now the old routine.. compile .. new2dir.. dir2pet, manual garbage. The idea of computers is to *automate* isn't it? That's why scripts/batch files/whatever were invented.
Anyway, for the old schoolers who like the manual approach I have kept the old functionality of new2dir and dir2pet, probably not a bad idea for noobs.
However, if you're sick to death of the old school method, I have patched new2dir and dir2pet to be automated with some cli options, well the cli options are essential, there is a little help on the cli until I document this fully (soon).
So.. now it is possible to write a little script (in a specific format) and automate your builds.. you could nearly build the whole system with it.
script goes in >>> pet package comes out. Simple as that, and splitting (doc, dev, nls) is taken care of.
This is in no way a competitor or replacement for amigo's excellent src2pkg. It's for those who want to build in a queue.
Of course a refined recipe is needed and I'll attach a sample jwm.buildpet.
Inspiration for this came from Tman, who did similar to this awhile ago, but not as automated, jamesbond.. and Iguleder who has been harping on about this for ages (with good reason).. and amigo of course.
It still has all the disadvantages of installwatch, in that the binaries are installed to your system. maybe one day I'll get rid of installwacth as many sources these days support DESTDIR and if they don't can be sandboxed. But until then this is a step in the right direction.
Sample recipe (attached too, and a bit lazy .. build triplet? )
Code: Select all
# jwm
# this file requires new2dir and dir2pet updated @ 141012
URL=http://joewing.net/projects/jwm/snapshots/
PKG=jwm
VER=976
COMP=tar.xz
DESC="Joes Window Manager for X"
DEPS=+cairo,+rsvg,+libpng,+libjpeg,+xpm,+fribidi
CAT=Desktop
ARCH=`uname -m`
case $ARCH in
*64) LIBDIR=lib64 ;;
*) LIBDIR=lib ;;
esac
retrieve() {
[ -f "${PKG}-${VER}.${COMP}" ] ||\
wget -t0 -c ${URL}/${PKG}-${VER}.${COMP}
}
extract() {
tar -xvf ${PKG}-${VER}.${COMP}
[ "$?" -eq 0 ] || exit
}
build() {
# since not X compiling forget build triplet
cd ${PKG}-${VER}
./configure --prefix=/usr \
--localstatedir=/var \
--sysconfdir=/etc \
--libdir=/usr/${LIBDIR}
[ "$?" -eq 0 ] || exit
make
[ "$?" -eq 0 ] || exit
newer2dir make install
make clean
cd -
}
package() {
# add this recipe
install -d -m 0755 ./$PKG-$VER-$ARCH/usr/share/doc
cat ${PKG}.petbuild > ./$PKG-$VER-$ARCH/usr/share/doc/$PKG-build-recipe
if [ "$DESKTOP" ];then
install -d -m 0755 ./$PKG-$VER-$ARCH/usr/share/applications
cat $DESKTOP > ./$PKG-$VER-$ARCH/usr/share/applications/$DESKTOP
fi
[ -f ./pinstall.sh ] && install -m 0755 pinstall.sh ./$PKG-$VER-$ARCH/
[ -f ./puninstall.sh ] && install -m 0755 puninstall.sh ./$PKG-$VER-$ARCH/
for p in `ls|grep "\-${ARCH}"|grep -v "files$"` ; do
case $p in
*_DEV*) DESC="$PKG development"; DEPS=+${PKG} ;;
*_DOC*) DESC="$PKG documentation"; DEPS=+${PKG} ;;
*_NLS*) DESC="$PKG locales"; DEPS=+${PKG} ;;
esac
dir2pet -x -s -w="$DESC" -d="$DEPS" -c=$CAT -p=${p} 2>&1 >/dev/null
done
}
# main
retrieve
extract
build
package
There is no warranty as usual and there is a high likelihood of BUGS. Please report/fix as necessary. Should work in all woof-CE builds, may work in some of Barry's woof builds, haven't tested.
Have fun.
PS: please invoke the recipe in it's OWN directory otherwise there could be unforeseen consequences.
UPDATE: installwatch sucks. There is an issue with the new2dir I uploaded, and I really can't work it out, but I have worked around it. There is now a symlink called newer2dir which is called to invoke the silent mode. CLI args are dropped (apart from the usual "make install").
REMOVED jwm attachment, all latest are at github