Page 1 of 12

Woof at Github

Posted: Wed 13 Nov 2013, 05:32
by mavrothal
Dear Puppians,
the last few years we have seen a lot of great Puppy work going undocumented end eventually lost or (unnecessarily) duplicated.
Countless fixes can (?can they?) be found in the forum but only few of them landed in woof, while entire projects never made it. Like jemimah's, elroy's, geoffrey's and rg66's work on Saluki and XFCE-derivatives or
Jejy69's and peebee's work on Lxpup and LXDE derivatives and many-many other post-woof projects.

In the mean time, Barry Kauler announced that as far as he is concerned woof is in maintenance mode, making it unlikely that any of these changes will land in the woof tree.

So we (me, 01micko and pemasu - we welcome new members in the team) just opened a project on Github to host woof as derived from Barry's repo on November 11, 2013.

This is not an attempt to take over puppy :shock: or corral the wild cats that are roaming in it :lol: but rather provide a place for people who want to develop woof-based pupplets, to
a) have a starting point and
b) feed their changes back to the community
so the next person can see, understand, use and improve upon.


So if you want to contribute in woof-CE (community edition) familiarize yourself a bit with git, open an account at Github, get the basics down (see here for a practical howto) and start collaborating your changes.

Just let me stress out that probably the most important aspect of Git in a collaborative project is quality of the commit messages.
Makes everybody's life much easier understanding what and why was changed and helps finding it 6 months and 500 commits later…

Happy woofing.

====================================

Pet developers please look here if you would like to help and get your pets updated

====================================

Latest woof-CE builds

Jun 7:Puppy Tahr 5.8.0.8 from the latest woof-CE testing branch

Apr 25:Precise and Wheezywith 3.13.9 kernel

Mar 9: The first "official" woof-CE build Slacko-5.7, is out

Feb 6:Slacko64-5.8.8 The 64bit woof-build puppy

Dec 9: Dpup Wheezy 3.5.2.11

.

Posted: Wed 13 Nov 2013, 05:55
by 01micko
The latest Slacko testing version is available from this post

Built with woof-CE :wink:

-----------------------------------------------


This is a great way for puppy to go forward.

I created a mailing list http://woof-ce.26403.n7.nabble.com/

8)

Posted: Wed 13 Nov 2013, 10:50
by darkcity
I've updated the wiki woof page-
http://puppylinux.org/wikka/Woof#hn_Com ... on_CE_Woof

There are some link on the page that people may find useful if they are studying Woof.

Posted: Wed 13 Nov 2013, 11:35
by zigbert
Thank you

Posted: Wed 13 Nov 2013, 14:24
by Iguleder
I'm in! :)

Posted: Wed 13 Nov 2013, 14:29
by Karl Godt
Great Project !!

Have already two commits in mind :

1) rc.shutdown :

Rearrange the whole code until the first function and clear and 2>/dev/null only if PUPMODE 5 and no shutdownconfig was run to help debug problems

2) timezone-set :

Delete the whole GMT +- formatting that is totally wrong
and add a fallback to use --directisa if hwclock fails like

Code: Select all

hwclock --hctosys --localtime
[ "$?" = 0 ] || hwclock --hctosys --localtime --directisa
: Very Happy :

Posted: Wed 13 Nov 2013, 17:55
by mavrothal
OK! :lol:
Let's see the pull requests :wink:

git current.zip

Posted: Wed 13 Nov 2013, 18:31
by Karl Godt
[puppypc]# /usr/git/bin/git clone https://github.com/puppylinux-woof-CE/woof-CE
Klone nach 'woof-CE'...

fatal: unable to access 'https://github.com/puppylinux-woof-CE/woof-CE/': error setting certificate verify locations:
CAfile: /usr/share/curl/curl-ca-bundle.crt
CApath: none
WHAT's THAT ?

Downloaded https://github.com/git/git/archive/master.zip
and made

Code: Select all

make prefix=/usr/git 
alias xmlto='xmlto --skip-validation'
make -i prefix=/usr/git install install-doc install-html install-info
/usr/git
to work around my current
[puppypc]# git --version
git version 1.6.4.1

Thought I had not https enabled that time ..

Bins are 500MB, many of the same size ..

But we get there ..

Re: git current.zip

Posted: Wed 13 Nov 2013, 18:55
by mavrothal
Karl Godt wrote:
[puppypc]# /usr/git/bin/git clone https://github.com/puppylinux-woof-CE/woof-CE
Klone nach 'woof-CE'...

fatal: unable to access 'https://github.com/puppylinux-woof-CE/woof-CE/': error setting certificate verify locations:
CAfile: /usr/share/curl/curl-ca-bundle.crt
CApath: none
WHAT's THAT ?
Which Puppy/Distro are you using?
Slacko and Precise that tested work fine.
Git is usually in the devx or in ppm.
Is git in your machine configured like:

Code: Select all

git config --global core.editor prefered_editor
git config --global user.name "your_user_name"
git config --global user.email "user@domain.dom"
git config --global credential.helper cache
git config --global credential.helper 'cache --timeout=3600'
?
Pay attention to the last 2 commands

Posted: Wed 13 Nov 2013, 19:34
by ASRI éducation
Yes. Great Project !

Posted: Wed 13 Nov 2013, 20:11
by Karl Godt
mavrothal, Macpup based upon Puppy-4.3

Hmmm, after recompiling
libssh2-1.4.3
and
curl-7.33.0
I get

[puppypc]# export LD_LIBRARY_PATH=/usr/git/lib:$LD_LIBRARY_PATH
[21:26 0 /bin/bash 9165 28 WOOF.GIT ]
[puppypc]# /usr/git/bin/git clone https://github.com/puppylinux-woof-CE/woof-CE
Klone nach 'woof-CE'...
fatal: unable to access 'https://github.com/puppylinux-woof-CE/woof-CE/': SSL certificate problem: unable to get local issuer certificate

...

Posted: Wed 13 Nov 2013, 20:22
by mavrothal
Karl Godt wrote: fatal: unable to access 'https://github.com/puppylinux-woof-CE/woof-CE/': SSL certificate problem: unable to get local issuer certificate

...
see here

Posted: Wed 13 Nov 2013, 20:52
by Karl Godt
Solved for now : http://stackoverflow.com/questions/3777 ... d-firewall
[puppypc]# ssh github.com
The authenticity of host '[ssh.github.com]:443 ([192.30.252.148]:443)' can't be established.
RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[ssh.github.com]:443,[192.30.252.148]:443' (RSA) to the list of known hosts.
Permission denied (publickey).

Code: Select all

[puppypc]# git config --global http.sslVerify false
[22:07 0 /bin/bash 9165 58 WOOF.GIT ] 
[puppypc]# /usr/git/bin/git clone https://github.com/puppylinux-woof-CE/woof-CE
Klone nach 'woof-CE'...
remote: Counting objects: 4745, done.
remote: Compressing objects: 100% (3212/3212), done.
remote: Total 4745 (delta 469), reused 4745 (delta 469)
Empfange Objekte: 100% (4745/4745), 18.33 MiB | 307.00 KiB/s, done.
Löse Unterschiede auf: 100% (469/469), done.
Prüfe Konnektivität... Fertig.
[22:09 0 /bin/bash 9165 59 WOOF.GIT ]
mavrothal, that was at the same time !

Posted: Wed 13 Nov 2013, 21:11
by Karl Godt
But what is this :

Posted: Wed 13 Nov 2013, 21:47
by Karl Godt
Fork Created ..

Not sure how to proceed ...

Posted: Wed 13 Nov 2013, 22:15
by Karl Godt
Don't know what I am doing :

/root/KarlGodtWOOF.GIT/woof-CE/woof-code/rootfs-skeleton/etc/rc.d/rc.shutdown

Code: Select all

#130217 01micko: relocate umount of network shares.

PATH=/bin:/sbin:/usr/bin:/usr/sbin
#read PUPPYVERSION </etc/puppyversion

#110923
. /usr/bin/gettext.sh # enables use of eval_gettext (several named variables) and ngettext (plurals)
export TEXTDOMAIN=rc.shutdown
export OUTPUT_CHARSET=UTF-8

. /etc/rc.d/functions4puppy #v3.01
#variables created at bootup by init script in initrd...
. /etc/rc.d/PUPSTATE #v2.02
. /etc/DISTRO_SPECS #v412
ORIGPUPMODE=$PUPMODE #v2.22

if [ "$PUPMODE" =  5 ] ; then
clear
exec 1> /dev/null 2>&1
fi

which rfkill &>/dev/null && rfkill unblock all #110919 jemimah has this in fluppy. if don't do this, may be locked at next boot.

#w482 use xorriso if it is installed (see also functions4puppy)...
CDRECORD='cdrecord'
MKISOFS='mkisofs'
if [ "`which xorriso`" != "" ];then
 CDRECORD='xorrecord'
 MKISOFS='xorrisofs' #growisofs reads this variable.
fi
export CDRECORD MKISOFS

#echo "`eval_gettext \"\\\${DISTRO_NAME} is now shutting down...\"`" > /dev/console
#echo "${DISTRO_NAME} is now shutting down..." > /dev/console
pidof poweroff 2>/dev/null && {
echo "${DISTRO_NAME} ${DISTRO_VERSION} $(gettext 'is now shutting down...')" > /dev/console #120130
} || {
pidof reboot 2>/dev/null && {
echo "${DISTRO_NAME} ${DISTRO_VERSION} $(gettext 'is now rebooting...')" > /dev/console
} || {
#echo $(gettext "Executing /etc/rc.d/rc.shutdown...")
echo "Executing /etc/rc.d/rc.shutdown..."
}; }

#100315 improper shutdown check. see /etc/rc.d/rc.sysinit, /init in initramfs, and /sbin/init...
if [ -f /fsckme.flg ];then
 if [ -f /tmp/dmesg_e2fsck_warnings1 ];then #120717 rc.sysinit creates this file for full installation.
  if [ "`grep -G "(${PDEV1})" /tmp/dmesg_e2fsck_warnings1`" = "" ];then
   rm -f /fsckme.flg
  else
   echo -n 'MAXIMAL' >> /fsckme.flg #read by /sbin/initNEW
  fi
 else
  rm -f /fsckme.flg
 fi
fi
[ -f /initrd${PUP_HOME}/fsckme.flg ] && rm -f /initrd${PUP_HOME}/fsckme.flg

#puppy.sfs is in a subdirectory, default to saving in it...
PUPSFSFILE=`echo "$PUPSFS" | cut -f 3 -d ','`
PSUBDIR=`dirname "$PUPSFSFILE"`
[ "$PSUBDIR" = "/" ] && PSUBDIR=""
[ $PUPMODE -eq 5 -a "$DEV1FS" = "iso9660" ] && PSUBDIR="" #100920 booting off cd, always default have savefile at /.
[ $PUPMODE -eq 5 -a "$DEV1FS" = "udf" ] && PSUBDIR=""     #130128 ditto, for udf f.s.
[ "$DEV1FS" = "msdos" ] && DEV1FS="vfat" #110919

#100920 reverse...
##100915 if booting from cd, .sfs's now optionally copied into a subdir, also want save-file in it...
## (warning: puppy.sfs on cd must be at /)
#if [ "$PSUBDIR" = "" ];then
# if [ "$DEV1FS" = "iso9660" ];then #test if booted off cd.
#   PSUBDIR="`echo -n "${DISTRO_IDSTRING}" | cut -c 1-8`" #limit dir name to 8 chars.
# fi
#fi

#for a full hd install, only setting PUPMODE (=2). no /initrd, no initrd.gz.

killzombies() {
And much more to figure out ..

Posted: Wed 13 Nov 2013, 23:07
by Karl Godt
Looks quite ok now with

/usr/git/bin/git commit -am "01 adjustments to rc.shutdown"

git push origin

https://github.com/KarlGodt/woof-CE/com ... e31aafff76

not finished, but am really happy !!
:D

Posted: Thu 14 Nov 2013, 07:16
by mavrothal
Congratulations Karl! :D
You managed to find and solve all strange issues with git and made the first fork. 8)

Let me take this opportunity though to reiterate some things that I just mentioned at the bottom of the first post.

I'm sure many of us have seen BK's commits in his fossil repo, where many things are changing in one commit and some are not even mentioned in the commit message.
But this was perfectly OK because this was/is his own repo and a message was more of a landmark (besides most of his scripts have their "internal" versioning with comments on the top of the file).

This practice can not work in a collaborative project and may even generate some unnecessary friction if/when pull requests will be asked to be modified.
So with the best intentions, let me use your commit as an example of things that we should not be doing (that I learned the hard way :cry: ).

The commit message "01 adjustments to rc.shutdown" tells nothing about what was done and why.
In this case there is not even a second line to explain a bit more about it.
Any change in a file could go under "adjustments", "changes" or "fixes", but this is obvious since you change the file.
A more precise and verbal commit message makes it also easier to track it down from the git log. If for example you X is not turning off you can grep for shutdown and X and see if you can find a relevant commit

The second problem is the plural.
We should not do more than one kind of change in one commit.
If you change more things ie "Do not clear console during shutdown" and "bring calls to external variables relier" and "kill X only if it is running during shutdown" etc. you should make more commits.
This way if 1 out of the 5 things that are changed generates a problem will be easy to isolate and resolve.
It is not really the size of the commit but the functions that is affecting that define the number of commits needed.
One commit can change 200 lines and the other can be a single letter.
If you put them together makes it really hard to isolate issues related to the single letter change.
Git also has the "blame" option that shows which commit is the last one for each line of code.
If a problem in a line is identified and this belongs to a "multi purpose" commit makes it harder to determine what a consecutive change will affect.

Also a reasoning behind a change is always helpful.
For example you want to make shutdown more verbal so potential problems can be spotted and solved, which is fine, but what about making this thing optional, with a "debug" argument for example.
Puppy has a "quiet" boot why "verbal" shutdown?
Which brings us back to the "multi commit".
If it is broken down to the different things that is doing and there is an objection about the default verbal shutdown, the other commits could be pulled "as is" and the specific one be revised.
Actually the FOSS practice is, when a major change involves changing many things/functions to be presented as a series of patches instead a big one, ie "Allow alternative WM; remove rox hard codding", "Allow alternative WM; call WM from /etc/profile", "Allow alternative WM;..." etc so it is clear that are going together but is also easy to follow and improve as/if needed.

I'm really happy about your input and certainly this post is not intended as criticism of any kind.
I just felt that I should clarify few things so our life can be easier down the road and move more efficiently. :wink:
It may look like unnecessary "formalism" but when many people are involved in a project, is vital.

PS: and after all the preaching (:P ), you may want to revert your commit and reimplemented in smaller and more concise chunks, so it can be easier to pull when/if you ask.

Posted: Thu 14 Nov 2013, 08:05
by Deacon
IT LIVES!

You're working on Woof, so Puppy LIVES!

I haven't the foggiest idea what you people are doing but there's a new Woof trunk to work with! I think that is what it's called! Hurrah!

Posted: Thu 14 Nov 2013, 09:06
by wanderer
thanks mavrothal

this is the way to go

wanderer