Pet building system

discuss compiling applications for Puppy
Message
Author
User avatar
01micko
Posts: 8741
Joined: Sat 11 Oct 2008, 13:39
Location: qld
Contact:

#21 Post by 01micko »

zigbert wrote:Is it a good idea for me to make 'buildscripts' for the pSeries. They would only download pets, but if it could simplify the package building process...
Not sure yet how scripts will fit in. Mostly is C or C++ sources (perhaps others). I'll think about that :) .

BTW.. did you notice a motorbike whizzing by? Or is it stopping to fuel up? :)
Puppy Linux Blog - contact me for access

gcmartin

#22 Post by gcmartin »

I notice that @Trio throws a "hint" :wink: in his signature.

User avatar
zigbert
Posts: 6621
Joined: Wed 29 Mar 2006, 18:13
Location: Valåmoen, Norway
Contact:

#23 Post by zigbert »

01micko wrote:Not sure yet how scripts will fit in. Mostly is C or C++ sources (perhaps others). I'll think about that :) .

BTW.. did you notice a motorbike whizzing by? Or is it stopping to fuel up? :)
Please give me a hint if you want me to add some buildscripts , and how you want them. It should be possible to make a script that always grabs the latest version of ie. pBurn at meownplanet.net or at the mirror 01micko.com.

The moto-dude is noticed and contacted. Hope he stays around :) ... what a team...


Sigmund

gcmartin

#24 Post by gcmartin »

Speaking of dudes who comeback and contribute, everyone knows about this resurrection by now.

User avatar
01micko
Posts: 8741
Joined: Sat 11 Oct 2008, 13:39
Location: qld
Contact:

#25 Post by 01micko »

NEW

initrd programs

These are compiled statically (by necessity) so that the system can boot. This unique initrd build system automatically downloads and builds all necessary programs for the initrd.gz in Puppy Linux.

This has been a dark art for centuries. (We all know 2 internet years is a century!). There is little to no documentation on this and searching reveals precious little as well. This is intended for new developers to get their teeth into the "engine room" and really find out what goes on underneath that agile skin.

See main post!
Puppy Linux Blog - contact me for access

User avatar
01micko
Posts: 8741
Joined: Sat 11 Oct 2008, 13:39
Location: qld
Contact:

#26 Post by 01micko »

zigbert wrote:Please give me a hint if you want me to add some buildscripts , and how you want them. It should be possible to make a script that always grabs the latest version of ie. pBurn at meownplanet.net or at the mirror 01micko.com.
I have had a think about this and such a script really belongs in woof as an option.

It would be nice if rcrsn51, shinobar, radky and others could set up something similar.

It is a pain in the a**s to maintain all these scripts and takes a fair bit of time to track them all down.

:shock:
Puppy Linux Blog - contact me for access

User avatar
mavrothal
Posts: 3096
Joined: Mon 24 Aug 2009, 18:23

#27 Post by mavrothal »

01micko wrote:
zigbert wrote:Please give me a hint if you want me to add some buildscripts , and how you want them. It should be possible to make a script that always grabs the latest version of ie. pBurn at meownplanet.net or at the mirror 01micko.com.
I have had a think about this and such a script really belongs in woof as an option.

It would be nice if rcrsn51, shinobar, radky and others could set up something similar.

It is a pain in the a**s to maintain all these scripts and takes a fair bit of time to track them all down.

:shock:
woof-CE has woof-code/rootfs-packages/ that could accommodate all these 'no arch' pets but I can see how access issues may be a broblem.
I was wondering if a woof-CE/users/<user> repo where <user> will have exclusive rights to manage, may facilitate migrating the code there where could be easily picked by the woof-CE builder. The pets could still put their usual place if the developers want.
Alternatively, they could just have their own woof-independent repo where the latest version of the pet could be picked up. May be a bit more hunting but at least easier than hunting forum posts...
== [url=http://www.catb.org/esr/faqs/smart-questions.html]Here is how to solve your[/url] [url=https://www.chiark.greenend.org.uk/~sgtatham/bugs.html]Linux problems fast[/url] ==

User avatar
zigbert
Posts: 6621
Joined: Wed 29 Mar 2006, 18:13
Location: Valåmoen, Norway
Contact:

#28 Post by zigbert »

I have no idea where this should be placed, but this script will download the most recent apps in the pSeries of zigbert.

Code: Select all

#!/bin/bash
export LANG=C

#check server
echo "Connecting to server..."
wget --spider --tries 1 -T 3 -F --max-redirect 0 www.meownplanet.net 2> /tmp/download_zigbert
if [ "`grep connected /tmp/download_zigbert`" ]; then
	URL=www.meownplanet.net/zigbert
else
	wget --spider --tries 1 -T 3 -F --max-redirect 0 www.01micko.com 2> /tmp/download_zigbert
	if [ "`grep connected /tmp/download_zigbert`" ]; then
		URL=www.01micko.com/zigbert
	else
		echo "Can't connect to server"
		exit
	fi
fi

#get list of pets
LIST1="`wget -q "$URL" -O- | grep -F '.pet' | cut -d'"' -f2`"
LIST="$LIST1
`wget -q "$URL/pmusic" -O- | grep -F '.pet' | cut -d'"' -f2`"

#check each app
for APP in pbackup- pburn- pclock- pfilesearch- pfind- pmirror- pmusic- pprocess- pschedule- ptiming- pwidgets-; do
	#find most recent version
	APPLIST="`grep "$APP" <<< "$LIST"`"
	VER1="`cut -d'-' -f2- <<< "$APPLIST" | cut -d. -f1 | sort -un | tail -n 1`"
	APPLIST="`grep "${APP}${VER1}" <<< "$LIST"`"
	VER2="`cut -d'-' -f2- <<< "$APPLIST" | cut -d. -f2 | sort -un | tail -n 1`"
	APPLIST="`grep "${APP}${VER1}.${VER2}" <<< "$LIST"`"
	VER3="`cut -d'-' -f2- <<< "$APPLIST" | cut -d. -f3 | sort -un | tail -n 1`"
	[ "$VER3" ] && APPLIST="`grep "${APP}${VER1}.${VER2}.${VER3}" <<< "$LIST"`"
	echo "$APPLIST"

	#download
	if [ "`grep -F pmusic <<< $APPLIST`" ]; then
		wget --tries=1 -T 3 --user puppy --password linux --output-document=$HOME/${APPLIST} ${URL}/pmusic/${APPLIST}
	else
		wget --tries=1 -T 3 --user puppy --password linux --output-document=$HOME/${APPLIST} ${URL}/${APPLIST}
	fi
	
	#set permission
	chmod 755 $HOME/${APPLIST}
done

User avatar
zigbert
Posts: 6621
Joined: Wed 29 Mar 2006, 18:13
Location: Valåmoen, Norway
Contact:

#29 Post by zigbert »

mavrothal wrote:woof-CE has woof-code/rootfs-packages/ that could accommodate all these 'no arch' pets but I can see how access issues may be a broblem.
rootfs-packages is just fine. We are a community, so permissions should not be an issue. For me, github itself is the issue. I have not overcome the feeling of spending my time on github instead of the actual coding...


Sigmund

User avatar
mavrothal
Posts: 3096
Joined: Mon 24 Aug 2009, 18:23

#30 Post by mavrothal »

zigbert wrote:
mavrothal wrote:woof-CE has woof-code/rootfs-packages/ that could accommodate all these 'no arch' pets but I can see how access issues may be a broblem.
rootfs-packages is just fine. We are a community, so permissions should not be an issue. For me, github itself is the issue. I have not overcome the feeling of spending my time on github instead of the actual coding...
Maybe you want to clone the repos and do all the coding locally on your machine. I actually use github only to track issues or pull requests but never for coding.
== [url=http://www.catb.org/esr/faqs/smart-questions.html]Here is how to solve your[/url] [url=https://www.chiark.greenend.org.uk/~sgtatham/bugs.html]Linux problems fast[/url] ==

User avatar
zigbert
Posts: 6621
Joined: Wed 29 Mar 2006, 18:13
Location: Valåmoen, Norway
Contact:

#31 Post by zigbert »

mavrothal wrote:Maybe you want to clone the repos and do all the coding locally on your machine.
If it is so simple, I am not smart enough - yet :)
I have been cloning-coding-pulling-merging, but since 'we' don't want heavy /complex pulls it becomes more coding-pulling-merging again and again. YES, there are many benefits! - but I am still struggling.

User avatar
sc0ttman
Posts: 2812
Joined: Wed 16 Sep 2009, 05:44
Location: UK

#32 Post by sc0ttman »

zigbert wrote:
mavrothal wrote:Maybe you want to clone the repos and do all the coding locally on your machine.
If it is so simple, I am not smart enough - yet :)
I have been cloning-coding-pulling-merging, but since 'we' don't want heavy /complex pulls it becomes more coding-pulling-merging again and again. YES, there are many benefits! - but I am still struggling.
There is a git plugin for Geany ... might make things a little easier..?

http://plugins.geany.org/geanyvc.html
[b][url=https://bit.ly/2KjtxoD]Pkg[/url], [url=https://bit.ly/2U6dzxV]mdsh[/url], [url=https://bit.ly/2G49OE8]Woofy[/url], [url=http://goo.gl/bzBU1]Akita[/url], [url=http://goo.gl/SO5ug]VLC-GTK[/url], [url=https://tiny.cc/c2hnfz]Search[/url][/b]

User avatar
01micko
Posts: 8741
Joined: Sat 11 Oct 2008, 13:39
Location: qld
Contact:

#33 Post by 01micko »

new2dir is no longer a requirement.

dir2pet from the main post is still needed.
Puppy Linux Blog - contact me for access

User avatar
mavrothal
Posts: 3096
Joined: Mon 24 Aug 2009, 18:23

#34 Post by mavrothal »

sc0ttman wrote:There is a git plugin for Geany ... might make things a little easier..?

http://plugins.geany.org/geanyvc.html
Do you have a pet/compiled just this plugin? Because the geany-plugins package from the repo needs 70MB in dependencies and adding only geanyvc.so does not work
== [url=http://www.catb.org/esr/faqs/smart-questions.html]Here is how to solve your[/url] [url=https://www.chiark.greenend.org.uk/~sgtatham/bugs.html]Linux problems fast[/url] ==

User avatar
01micko
Posts: 8741
Joined: Sat 11 Oct 2008, 13:39
Location: qld
Contact:

#35 Post by 01micko »

mavrothal wrote:
sc0ttman wrote:There is a git plugin for Geany ... might make things a little easier..?

http://plugins.geany.org/geanyvc.html
Do you have a pet/compiled just this plugin? Because the geany-plugins package from the repo needs 70MB in dependencies and adding only geanyvc.so does not work
https://github.com/puppylinux-woof-CE/p ... ny-plugins

:wink:

It's for geany-1.24.1 but it might work, if not just change the version number in the petbuild.

BTW, the geany-plugins.petbuild was generated with the new script mk_petbuild.sh, which will work for generic, sane sources, comes with a 'YMMV' warning. :P
Puppy Linux Blog - contact me for access

User avatar
Uten
Posts: 129
Joined: Tue 29 Jan 2008, 11:00

#36 Post by Uten »

Nice initiative 01mico.

May I suggest that you add the modified dir2pet (and the other modified files ) in the repo and add something like this to the func file:

Code: Select all

OLD_PATH=$PATH

petbuilds_trap_exit() {	
	export PATH=$OLD_PATH
}

trap petbuilds_trap_exit EXIT

petbuilds_bootstrap() {
	# Get this scripts path so we use our modified scripts rather than the
	# original ones
	SDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
	echo "\$SDIR:=$SDIR"
	if [[ $PATH != *$SDIR* ]]; then 
		export PATH=$SDIR:$PATH
		DIR2PET_HASH=$(sha256sum $(which dir2pet)|cut -d' ' -f1)
		
		# Verify that we get access to the corresponding dir2pet otherwise the scripts
		# will fail silently. If dir2pet is modified this check must be updated
		if [ '5598185523147f6286a6b6bef54c3d1c3e727a66fea04396e5f5440ad1bc9017' != "$DIR2PET_HASH" ]; then

			echo "dir2pet ( $(which dir2pet ) ) does not match our sha256sum. Get the corresponding one from ..."
			echo $(sha256sum $(which dir2pet))
			exit 1
		fi		
	fi

} 
petbuilds_bootstrap
I suppose you know of http://slackbuilds.org which almost (needs pkgtools ) works out of the box when using slacko (5.7)

Best regards
Uten

User avatar
01micko
Posts: 8741
Joined: Sat 11 Oct 2008, 13:39
Location: qld
Contact:

#37 Post by 01micko »

Thanks Uten for the suggestion 8)

I will probably implement something very similar, except with a more maintainable check for dir2pet

eg:

Code: Select all

DIRTOPET=`which dir2pet`
AGE=$(date +%s -r  $DIRTOPET) # =1413022441 is current verion
if [ "$AGE" -lt  1413022441 ];then
   echo "dir2pet  is built before $(date -r $DIRTOPET) . Get the corresponding one from ..." 
fi
As for slackbuilds, I have a script (work in progress) to convert a slackbuild tarball to a petbuild recipe. It should be ready in a few weeks as I slow development for final exams.

Cheers!
Puppy Linux Blog - contact me for access

User avatar
Uten
Posts: 129
Joined: Tue 29 Jan 2008, 11:00

#38 Post by Uten »

Your code looks sensible, although I have burned my fingers terribly in the past when comparing against a date.

Best wishes with your finals :D

User avatar
greengeek
Posts: 5789
Joined: Tue 20 Jul 2010, 09:34
Location: Republic of Novo Zelande

#39 Post by greengeek »

Jasper wrote:PS I have src2pkg v 3.0 and to make and install the latest version of jwm-976 I use:

Code: Select all

src2pkg -PET http://joewing.net/projects/jwm/snapshots/jwm-976.tar.xz
by running it in a terminal after loading my devx.sfs (devx_precise_5.6.sfs).
Hi Jasper, are you happy with the 976 pet? I am keen to test it to see if it improves my Freeoffice dialog box size on Slacko 5.6 also if you are happy to make the pet available?
cheers

Jasper

#40 Post by Jasper »

Hi greengeek,

Yes, I'm happy with my build of Joe's v. 976, but it may be better to make your own jwm976 pet for Slacko by using the appropriate devx and amigo's src2pkg.

Only today anikin has posted another reference under, Desktop, in the next forum section after this one.

However, whilst I've no idea if it may help (or hinder), upon a request I can certainly add my 976 pet made with and for Precise 5.6 as an edit to this post.

My regards

Post Reply