#ubuntu-classroom 2007-01-15
<jrib> sutiner: type this command and tell me the output:  ls -l
<jrib> if it is long, use http://paste.ubuntu-nl.org
<Knick> lol?
<sutiner> sutiner@sutiner-desktop:~$ su
<sutiner> Password:
<sutiner> root@sutiner-desktop:/home/sutiner# ls -l
<sutiner> total 1338452
<sutiner> -rw-r--r-- 1 sutiner sutiner 561525932 2007-01-15 17:37 CS1.6.zip
<sutiner> -rw-r--r-- 1 sutiner sutiner    607202 2007-01-15 17:32 data.zip
<sutiner> drwxr-xr-x 2 sutiner sutiner      4096 2007-01-15 17:46 Desktop
<sutiner> lrwxrwxrwx 1 sutiner sutiner        26 2007-01-15 14:59 Examples -> /usr/share/example-content
<sutiner> -rw-r--r-- 1 sutiner sutiner 754211706 2007-01-15 17:39 htdocs.zip
<sutiner> -rw-r--r-- 1 sutiner sutiner  52859803 2007-01-15 15:45 xampp-linux-1.5.5a.tar.gz
<sutiner> root@sutiner-desktop:/home/sutiner#
<sutiner> root@sutiner-desktop:/home/sutiner#
<sutiner> 
<sutiner> see
<sutiner> XAMPP is in right dir but it says
<jrib> the file isn't there
<jrib> oh nvr mnd
<sutiner> hmmmm
<jrib> ok paste the output from the command
<jrib> the tar one
<sutiner> it goes now :)
<jrib> heh
<sutiner> didnt understand...
<sutiner> how i can log as su in graphicaly mod not only in terminal???
<sutiner> i have ubuntu-desktop
<sutiner> ?
<jrib> !root | sutiner
<ubotu> sutiner: sudo is a command to run programs with superuser privileges ("root"). Look at https://help.ubuntu.com/community/RootSudo for all information.
<jrib> sutiner: it is a bad idea
<jrib> but there is your info
<sutiner> (nautilus:6152): GnomeUI-WARNING **: While connecting to session manager:
<sutiner> Authentication Rejected, reason : None of the authentication protocols specified are supported and host-based authentication failed.
<sutiner> (nautilus:6152): libgnomevfs-WARNING **: Failed to open session DBUS connection: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.
<sutiner> Volume monitoring will not work.
<sutiner> 
<sutiner> 
<sutiner> 
<sutiner>  wtf?
<sutiner> i
<sutiner> loged as
<sutiner> su
<sutiner> and i typed NAUTILUS
<sutiner> and i got that...
<sutiner>  :(
<sutiner> HELP!?
<apokryphos> sutiner: you shouldn't be running graphical applications as root like that
<apokryphos> ubotu: gksudo
<ubotu> If you need to run graphical applications as root, use gksudo, as it will set up the environment more appropriately. Avoid ever using "sudo <GUI-application>"
<sutiner> didnt understand?
<sutiner> what is gksudo?
<sutiner> it is command or programm?
<apokryphos> sutiner: it's a way to run an application (*only* when you need to) with root permissions
<apokryphos> and you would use it like this: alt+f2 -> gksudo nautilus
#ubuntu-classroom 2007-01-16
<unix_infidel> The schedule in the wiki is a mess, when can i expect the next Session?
<tonyyarusso> unix_infidel: That there is a good question.  Organizing of stuff may be transferring to me, depending on how a conversation went with someone, but my schedule's also taken an interesting turn.  I'll see what I can do though.
<tonyyarusso> Hopefully soon.
<unix_infidel> If you need any help coordinating feel free to shoot me a PM.
<tonyyarusso> unix_infidel: 'k, thanks.
<tonyyarusso> unix_infidel: meanwhile, hit up https://wiki.ubuntu.com/Classroom/Ideas
#ubuntu-classroom 2007-01-17
* Starting logfile irclogs/ubuntu-classroom.log
<termitor> hello
#ubuntu-classroom 2007-01-18
<qopi> hello jrib
<jrib> alright, scrolling was getting tiring
<jrib> qopi: you have backups of any important stuff on your system?   I can tell you what I would do to try to sort this out but i don't know that it won't just mess you up further
<jrib> up to you if you want to try
<qopi> jrib: i've backed up my home directory, yes
<jrib> alright
<jrib> sudo dpkg -r libwxgtk2.6-0 libxine-main1
<qopi> and I think thoreauputic has already made it worse but getting me to purge important packages, so I don't think there is any going back now
<jrib> apt-cache policy libisccc0  paste results here
<qopi> josef@ubumonkey:~$ sudo dpkg -r libwxgtk2.6-0 libxine-main1
<qopi> Password:
<qopi> dpkg: dependency problems prevent removal of libwxgtk2.6-0:
<qopi>  amule depends on libwxgtk2.6-0 (>= 2.6.1.2ubuntu2).
<qopi> dpkg: error processing libwxgtk2.6-0 (--remove):
<qopi>  dependency problems - not removing
<qopi> dpkg: dependency problems prevent removal of libxine-main1:
<qopi>  libxine1c2 depends on libxine-main1.
<qopi>  libxine-extracodecs depends on libxine-main1.
<qopi>  xine-ui depends on libxine-main1 (>= 1.1.1).
<qopi> dpkg: error processing libxine-main1 (--remove):
<qopi>  dependency problems - not removing
<qopi> Errors were encountered while processing:
<qopi>  libwxgtk2.6-0
<qopi>  libxine-main1
<qopi> josef@ubumonkey:~$
<jrib> k, when they are this long you should still use apstebin :)
<qopi> ok
<qopi> want me to try apt-cache policy libisccc0 ?
<jrib> yeah
<qopi> josef@ubumonkey:~$ apt-cache policy libisccc0
<qopi> libisccc0:
<qopi>   Installed: 1:9.3.2-2ubuntu1.1
<qopi>   Candidate: 1:9.3.2-2ubuntu3
<qopi>   Version table:
<qopi>      1:9.3.2-2ubuntu3 0
<qopi>         500 http://archive.ubuntu.com edgy/main Packages
<qopi>  *** 1:9.3.2-2ubuntu1.1 0
<qopi>         100 /var/lib/dpkg/status
<qopi> that too long too?
<jrib> that's ok
<qopi> so what next ? :)
<jrib> qopi: you're on i386?
<qopi> yes
<qopi> toshiba satellite pro 4600
<qopi> p3
<qopi> about 700mhz
<qopi> 256 ram
<jrib> wget http://mirrors.kernel.org/ubuntu/pool/main/b/bind9/libisccc0_9.3.2-2ubuntu3_i386.deb
<qopi> done
<jrib> sudo dpkg -i libisccc0_9.3.2-2ubuntu3_i386.deb
* jrib wonders if error will return
* qopi tries it
<qopi> oooh, it says Setting up which if further than before...
<qopi> done :)
<qopi> what next?
<jrib> ok, now sudo apt-get update && sudo apt-get dist-upgrade, pastebin errors
<qopi> type: sudo dpkg -i libisccc0_9.3.2-2ubuntu3_i386.deb ?
<qopi> oops
<qopi> type: sudo apt-get update && sudo apt-get dist-upgrade ?
<jrib> yep
<qopi> ok
<jrib> can you think of an example of a semigroup where the left unit and right unit are not the same?
<qopi> er, was that a mischan?
<qopi> errors: http://paste.ubuntu-nl.org/2062/
<jrib> no
<jrib> k, do what it says
<qopi> sudo apt-get -f update && sudo apt-get dist-upgrade, right?
<jrib> qopi: sudo apt-get -f install
<qopi> ok, looks like that is getting somewhere...
<qopi> cool, that went ok
<qopi> re-try  sudo apt-get update && sudo apt-get dist-upgrade ?
<jrib> yep
<qopi> k
<jrib> you shouldn't need to update but it won't hurt if you do
<qopi> well its busy doing its thing now...
<qopi> seems to be progessing ok tho, upgrading 470, 42 newly installed, 4 to remove 41 not upgraded...
<jrib> k
<jrib> forgot to check if ubuntu-desktop is installed
<jrib> make sure you do that
<qopi> and I guess the other packages I previously purged too?
<qopi> i.e. x-window-system-core libwxgtk2.6-0 ubuntu-desktop libxine-main1 vlc vlc-plugin-alsa wxvlc
<jrib> if you have ubuntu-base ubuntu-standard and ubuntu-desktop you should be ok, they'll pull in the other stuff
<jrib> oh you don't even need -base
<qopi> ok, and I think we did those lib ones earlier with the sudo apt-get -f install
<jrib> yeah
<jrib> qopi: note that you need to dist-upgrade twice
<jrib> to get upstart
<jrib> !upgrade
<ubotu> For upgrading, see the instructions at https://help.ubuntu.com/community/UpgradeNotes
<qopi> jrib: ok, once this finished I'll do dist-upgrade again. to get upstart?
<jrib> yes
<jrib> assuming this one finishes successfully
<qopi> ah, I see, you're referring to https://help.ubuntu.com/community/EdgyUpgrades point 5 under the apt-get procedure
<qopi> still, what does "get upstart" mean?
<qopi> that program/package that starts up the system?
<jrib> yeah
<jrib> !upstart
<ubotu> Upstart is meant to replace the old Sys V Init system with an event-driven init model.  For more information please see: http://upstart.ubuntu.com/
<qopi> hmz, had a couple of problems with some of those lib packages, i.e. libisc21 and libdns, perhaps we'll have to do the wget trick on them too once its finished
<qopi> hello jrib
<qopi> well that has finished now
<qopi> 2 errors
<qopi> Errors were encountered while processing:
<qopi>  /var/cache/apt/archives/libisc11_1%3a9.3.2-2ubuntu3_i386.deb
<qopi>  /var/cache/apt/archives/libdns21_1%3a9.3.2-2ubuntu3_i386.deb
<qopi> E: Sub-process /usr/bin/dpkg returned an error code (1)
<qopi> shall I try wgeting and dpkging them?
<jrib> qopi: is that the full error?
<qopi> jrib: yes, well, that is all it says at the end
<jrib> qopi: pastebin the whole thing
<jrib> qopi: or is this from dist-upgrade?
<qopi> yes
<qopi> the whole thing is very long indeed
<jrib> qopi: sudo apt-get install libisc11   pastebin that
<qopi> k...
<qopi> jrib: http://paste.ubuntu-nl.org/2074/ looks very similar to what we were getting before for that other package
<jrib> qopi: yeah, weird.  Go ahead and try wget
<qopi> jrib: wget http://mirrors.kernel.org/ubuntu/pool/main/b/bind9/libisc11_9.3.2-2ubuntu1.1_i386.deb I assume?
<jrib> I just use packages.ubuntu.com
<jrib> that doesn't look right
<qopi> yeah, after searching on packages. I found http://www.mirror.ac.uk/mirror/archive.ubuntu.com/ubuntu/pool/main/b/bind9/libisc11_9.3.2-2ubuntu3_i386.deb
* qopi thinks that is right?
<qopi> looking up at the previous errors that seems right to me
<qopi> seems to be working so I'll try the other one too...
<qopi> yep libisc11 installed
<qopi> and now libdns21 installed too :)
<qopi> jrib: do you think I should try to install ubuntu-desktop at this stage?
<jrib> yes
<qopi> ok
<waky> Alle Oberbayern / Schwaben haben morschen schulfrei macht ihr tages guck http://www.tagesschau.de/ sorry for the german language
#ubuntu-classroom 2007-01-19
<qopi> hey jrib, you still about?
<mefistofeles> lol Im late for the ubuntu open week
<mefistofeles> hehe
<Tenris> Ji
<jrib> biscuit: ok hi
<biscuit> hi^^
<jrib> I'm going to ask you a bunch of questions because I read the scrollback and am kind of confused
<biscuit> ok just start
<livingdaylight> ok, here's where we actually learn something
<jrib> biscuit: What is the username of the first user you created in ubuntu?
<livingdaylight> ^^
<jrib> livingdaylight: sometimes :)
<biscuit> the user is called ragtime which I first created
<livingdaylight> jrib, you are the master teacher
<jrib> biscuit: ok, which user is not working at the moment?
<biscuit> ragtime is not working
<jrib> biscuit: what user are you logged in as at the moment?
<biscuit> I created this one in recovery mode..its called mu man
<biscuit> but its not an admin user
<jrib> ok, have you set a root password?
<biscuit> yes I have
<biscuit> but there is the other problem
<jrib> ok, explain
<biscuit> It seems like it doesnt work anymore
<biscuit> but its still the old one I set
<biscuit> thats strange
<jrib> ok, so you can't su to root, right?
<biscuit> exactly jrib
<jrib> biscuit: but can you still reboot and get into recovery mode?
<livingdaylight> jrib, i thought only admin can create second user?
<biscuit> yeah thats possible
<jrib> livingdaylight: he used recovery mode, logs you in as root
<livingdaylight> jrib, ah...of course
<jrib> biscuit: ok, well to make things easier, we can give my man sudo privileges by just adding him to the "admin" group
<biscuit> and how I do this jrib?
<jrib> biscuit: so, go into recovery mode and issue this command:   adduser muman admin
<jrib> where "muman" is the name of the user
<biscuit> ok, thanks a lot :D
<livingdaylight> Yet another masterclass
<jrib> biscuit: if you still can't sort out the issues with ragtime, just come back
<biscuit> ok,
<mnoir> jrib: it this a standard use of ...-classroom?
<LjL> mnoir: quite standard, yes
<LjL> when they're no lesson in progress, of course
<mnoir> LjL: so better than using pm?
<biscuit> hm..I got some question..is this an classroom where you can learn something about ubuntu?
<livingdaylight> mnoir, yes, because we got to witness a master class
<LjL> mnoir: yes, other people who're interested can benefit
<jrib> biscuit: we have classes sometimes, see the /topic
<mnoir> biscuit: there is a regular schedule of lectures
<biscuit> cool :)
<mnoir> LjL: is it proper to request silence except for the person i bring here to teach?
<livingdaylight> LOL
<biscuit> Have  some one in here experiences with maemo too?
<livingdaylight> mnoir, you can try
<livingdaylight> Silence in the classroom Please!!!
<LjL> mnoir: hmm, no, i don't think so, unless you're the instructor for a class
<LjL> but you can't just self-appoint you by joining and saying so, i believe - see the topic
<livingdaylight> lol
<mnoir> LjL: ok so i still will use pms when something is complex and the interruptions are getting in the way :)
<jrib> mnoir: it's usually not crowded here
<mnoir> jrib: i may not be being clear - often i need a less distracting forum for something tricky or somebody who is very unsure.
<mnoir> heretofore i have used pm for this
<mnoir> but would be willing to use the classroom if it is proper to reduce distractions
<mnoir> the ubuntu world is very concerned with correctness and i wouldn't want to offend :)
<LjL> mnoir: it's quite proper
<livingdaylight> yes, quite
<mnoir> LjL: k :)
<biscuit> thank you for everything guys, I am going now in recovery mode *hehe*  :)
<mnoir> biscuit: bon voyage :)
<livingdaylight> shame no schedules set for January yet
<jrib> livingdaylight: we need ideas: https://wiki.ubuntu.com/Classroom/Ideas
<jrib> oh too late
<LjL> we need instructors
<jrib> that too
<LjL> and the wiki's down
<LjL> well no it isn't, it was just a short glitch
<mnoir> LjL: how to volunteer?
<LjL> i'm not entirely sure, i guess just poking somebody involved with the project could get you far enough
<mnoir> the Classroom/Ideas web page looks kinda dead to me - the classes should be based on some statistical analysis of the irc traffic i should think.  I have managed educational projects - inventing demand is usually a dead end
<LjL> well still keep in mind this is on a voluntary basis, so i guess having classes that interest the *instructors* is important too
<mnoir> LjL: agreed.  i imagine that a list of needed classes would be a good start.  I know i would be able to teach a high percentage of them but IMO the list is needed first :)
<mnoir> btw commandline/unix grammar and syntax looks to me like a viable topic (with a less academic name :) ).  elementary regex, auto complete, parameter spex, etc and the like
<jrib> mnoir: regex does sound like a good one, add it to that ideas page
<jrib> and the others too, I just like regex
<LjL> well, myself i wouldn't mind having lessons about .*
<mnoir> i am trying but the login is challenging me :)
<biscuit> jrib, thank you it all worked now fine, everything is now ok again :)
<jrib> biscuit: great
<mnoir> i am thinking of the things that would enable a beginner to do a find with an exec :)  though I am pretty good with regex, i am a little rusty :)
<biscuit> hm I also got some other question jrib, but I dont know if its ok when I post it here its over scratchbox
<LjL> also to be honest... if you just look at the most asked ubotu factoids, it's going to be mp3, java, etc (well just look at the bot's page, they're listed by popularity)
<LjL> don't know about you, but *i* am not going to teach classes about *that* :P
<biscuit> is it ok when I post it here jrib?
<jrib> biscuit: it's better if you ask in #ubuntu, more eyes there
<biscuit> I asked there already but there wasnt some solution at all
<jrib> biscuit: what is scratchbox?
<biscuit> its some cross compilation toolkit
<biscuit> its very handy
<jrib> mnoir: if you're interested in giving a class, you can add youself to the volunteer list and talk with nixternal in #ubuntu-nun when he is around
<biscuit> because I got some nokia 770 and I wanted to make some packages for it with scratchbox and the fakreroot didnt worked at all, and that I wanted to know why the fakreroot was not working
<mnoir> jrib: i will go find the vol list ( :) ) - the wiki seems cranky, BTW
<jrib> mnoir: volunteer list on the ideas page is what I meant
<mnoir> oh - I see - will do if the page ever comes up editable for me :)
<Tenris> Hi... I tried to install ubuntu, but I got this error => http://www.pastebin.ca/321609
* mode/#ubuntu-classroom [+o LjL]  by ChanServ
* mode/#ubuntu-classroom [+b *!*@ubuntu/bot/ubotu]  by LjL
* mode/#ubuntu-classroom [-o LjL]  by LjL
* mode/#ubuntu-classroom [+o apokryphos]  by ChanServ
* mode/#ubuntu-classroom [-b *!*@ubuntu/bot/ubotu]  by apokryphos
* mode/#ubuntu-classroom [-o apokryphos]  by apokryphos
<Rio> yo
<mnoir> ok - me too
<mnoir> now - if i am right it is a 2 min fix, if not very easy to put back
<Rio> okay
<mnoir> all apache serving on ubuntu is done thru virt domains, even the 'regular' one
<mnoir> so i believe you need to alter the virt def for default
<Rio> def?
<mnoir> (definition) pull up /etc/apache2/sites-enabled/000-default
<mnoir> or just go to the directory in case i have the name a little wrong
<mnoir> by pull up i mean get in an edit mode
<mnoir> is the server without X?
<Rio> what do you mean, is the server without x? im running cygwin with putty....
<Rio> once logged on, i type startx in cygwin
<Rio> okay, i pulled up the file
<mnoir> yes - i wondered if your server has x as you can tunnel x back to your XP machine if it does
<mnoir> ok - in the file you see 80?
<mnoir> should be there 2x
<Rio> hrmmm
<mnoir> ??
<Rio> no, i dont see it
<mnoir> paste the 3 first lines of the file here?
<mnoir> should be NameVirtualHost etc
<Rio> but i see..."allow from 127.0.0.0......." if that means anything
<Rio> NameVirtualHost *
<Rio> <VirtualHost *>
<mnoir> no number?
<Rio> "       ServerAdmin webmaster@localhost"
<Rio> no numbers
<mnoir> ok - i believe that means 'any port'  so i am incorrect about you needing to change it
<mnoir> i am going to test, and if i come up with anything - i will shout out in the main channel
<Rio> main channel as in #ubuntu not #ubuntu-classroom
<Rio> aight
#ubuntu-classroom 2007-01-20
* mode/#ubuntu-classroom [+o LjL]  by ChanServ
* mode/#ubuntu-classroom [-b %ubotwo!*@*]  by LjL
* mode/#ubuntu-classroom [-b %ubotu!*@*]  by LjL
* mode/#ubuntu-classroom [-o LjL]  by LjL
<sunshine> hi togheter
<sunshine> will there be a lesson over the linux kernel someday?
<sunshine> does nobody know? :(
<tonyyarusso> sunshine: Someday, yes.  When, I'm not sure :S
<sunshine> ok thank you :)
<tonyyarusso> sunshine: I'm trying to put together a schedule for 2007, so feel free to add your class requests to https://wiki.ubuntu.com/Classroom/Ideas
<sunshine> ok thanks a lot tonyyarusso^^
<mnoir> btw - i just had to click on the channel in my msg to you to join :)
<mnoir> are you here?
<OmegaCenti> Yes. :)
<mnoir> ok - i wanted to answer your question without the noise but stillallow others to see if they want
<OmegaCenti> wonderful.
<mnoir> this channel is for formal lectures and this kind of thing as well
<OmegaCenti> I will be an apt student.
<mnoir> there are several standard types
<mnoir> .deb is the type that is most applicable to ubuntu as it is a debian type of package
<mnoir> packages in the official repositories are the most reliable but others will work
<OmegaCenti> Official repositories...
<mnoir> IFF they have been built with the correct lbs
<mnoir> look in your /etc/apt/sources.list to see the official repositories
<mnoir> that is the most direct way to see
<OmegaCenti> one second
<mnoir> are you comfortable at a commandline?
<OmegaCenti> I am confortable with only these commands: ls, dir, cd, and that is about it :)
<OmegaCenti> and man
<mnoir> ok - i can prompt you the best command is > less /etc/apt/sou<press tab>
<sunshine> for what is the command man?
<mnoir> less is a dumper with backwards built in
<OmegaCenti> ooooooooo.
<OmegaCenti> Nice.!
<mnoir> man is to look at the manual page (if one exists)
<sunshine> ah ok thanks :)
<mnoir> i advize you to understand any command b4 typing it
<mnoir> man also documents file structures
<OmegaCenti> less I guyess allows you to press keys before it scrolls a page?
<OmegaCenti> and concats a file to the screen I assume.
<mnoir> OmegaCenti: yes - like the cat command combined with the more command with backwards also so you can move around
<OmegaCenti> very nice.
<mnoir> man would document any of these :)
<OmegaCenti> Linux seems so much more powerful then windows.
<mnoir> sometimes man will refer you to info.
<mnoir> it can be but it also wears it's technology a little more on the outside
<mnoir> info is an emacs-like system.  i do not like it but i do not like emacs.  sometimes it is the only doc available
<OmegaCenti> This is very much to my liking, but obviously it comes with a learning curve.
<mnoir> now we are approx 15.3 miles from our subjetc :)
<OmegaCenti> hahaha!
<OmegaCenti> I have attention deficit disorder and have the ability to branch any conversation with seconds.
<OmegaCenti> I apologize, continue :)
<mnoir> you need none of this if you are willing to trust instructions w/o understanding.  i don't like that
<mnoir> i am trained to multiprocess so it dont bother me anyhow.
<OmegaCenti> Please type rm -rf * in your nerest terminal window...
<mnoir> do not even joke about that
<OmegaCenti> anyone who read that please do not do so.
<OmegaCenti> it will destroy your system.
<mnoir> somebody will do it in the other channel and start crying
<gnomefreak> OmegaCenti: dont even need to bring it up
* OmegaCenti bows his head in shame
<sunshine> lol
<mnoir> ubuntu is (sometimes painfully) politically correct to beginners
<OmegaCenti> Okay So i checked the repositories and noticed there were 2 listed in the file
<OmegaCenti> those are where most packaged that are safe for ubuntu come from I assume.
<mnoir> i believe that beginners should be made to read manuals and doc.  but the rules here do not allow forceful recommendations of this :)
<mnoir> should have been more - pls pastebin your file
<OmegaCenti> I am unfamiliar with the term "pastebin"
<OmegaCenti> wait.. I see 6 now.
<mnoir> go here http://paste.ubuntu-nl.org  and when you have a uri paste that uri here and then i go there to look
<mnoir> what - they suddenly appeared ?
<mnoir> i doubt it :)
<OmegaCenti> http://paste.ubuntu-nl.org/2330/
<mnoir> anyhow,  if you go outside of these repositories, things may not work as expected but that is something to handle at the time you do it
<OmegaCenti> I thought they were all located at the top.
<OmegaCenti> but they are commented out.
<mnoir> ok - looks fine.  you should read about universe and multiverse - chances you will want to enable them
<OmegaCenti> :-D
<sunshine> I sudo the same as when I looged in as the root user?
<mnoir> pause for questions then on to the next class of things
<OmegaCenti> no questions.
<mnoir> sudo is not logging on as root unless you do it in a not recommended fashion
<mnoir> ok - there are other package systems
<mnoir> there is a conversion pgm to .deb
<OmegaCenti> pgm == program?
<mnoir> whay would you want to use an alien package?
<mnoir> yes - pgm=program and i will stick that in auto complete shortly
<OmegaCenti> BEcause it has functionality (maybe) that is not provided in the current package manager?
<sunshine> mnoir , the problem is now, it was with my device the nokia 700, the root passsword is empty, I cant become root with gainroot but I can execude commands with sudo...that was the why I ask
<mnoir> yes maybe but it is not the manager we are interested in - it is the package :)  if you try to install an alien package there is even more chance it has the wrong libs but, again, you might want to try it.
<mnoir> sunshine - you might want to discuss in the main channel :)
<OmegaCenti> if it does have wrong libs, can my system be compromised?
<mnoir> not usually, just the package will not work
<OmegaCenti> is there a clean removal system to remove the package?
<mnoir> yes and no
<sunshine> ok^^...I ll do this than later :)
<OmegaCenti> goodluck sunshine :)
<sunshine> thank you OmegaCenti :-D
<mnoir> if it was a deb when installed, the remove is clean but dependencies are not removed unless certain steps are taken
<OmegaCenti> With enough practice wold I be able to find all the dependencies and remove them myself without fear of harming the system?
<mnoir> easier - there are orphan harvesters
<OmegaCenti> ?!
<OmegaCenti> !orphan harvesters
<mnoir> an orphan is a package that nobody depends on
<OmegaCenti> oh my.
<OmegaCenti> wow.
<mnoir> there are several available - gtkorphan and sumpin built into synaptic starting in 6.10 for starters
<OmegaCenti> I have 6.1
<mnoir> ok - then you can try it when the time comes :)
<OmegaCenti> synpatic is the package manage correct?
<mnoir> btw, it is 6.10 cuz 10 is the month - a stupid standard but very typical ubuntu
<OmegaCenti> then I will refer to it as 6.10
<mnoir> helps :)
<OmegaCenti> :)
<mnoir> so the next class of package
<mnoir> source
<mnoir> meaning a complete package from which something can be built and installed
<OmegaCenti> including library?
<mnoir> occasionally you might want to do so
<OmegaCenti> Im sorry I do not understand the last comment. Clarify please?
<mnoir> not if they are available separately and separately is usual
<mnoir> occasionally you might want or need to build from source
<mnoir> pause
<OmegaCenti> So then would the source provider have to tell you which libraries you need to incorporate in order to use their product?
<mnoir> by definition a package tells you that in build readable form
<OmegaCenti> ..
<mnoir> otherwise it is not a package in my opinion
<mnoir> remember dependencies :)
<OmegaCenti> so a source package != source code.
<mnoir> it is, plus build definition
<mnoir> i just built something that came with a compiler
<OmegaCenti> I see, and this build definition can be threaded through some program that automatically reads this build definition and grabs the needed libraries automatically?
<mnoir> linus is VERY GOOD about this stuff if you stick to the packages :)
<mnoir> i was about to explain the long and difficult command to build :)
<OmegaCenti> hahaha. Then continues if you will please :)
<mnoir> ./configure;make;make test;make install
<mnoir> that's it for a proper package
<OmegaCenti> really?
<OmegaCenti> I am going to save that in a notepad right now.
<mnoir> actually replace the ; with &&
<mnoir> but i make it in 4 stmts instead
<OmegaCenti> NExt proble,m, I just tried to right click my desktop and right click new documents... nothing is there.
<mnoir> ?? sec
<OmegaCenti> create documents is empty
<mnoir> not even empty file?
<OmegaCenti> one sec.
<OmegaCenti> I apologize. Empty file is there.
<mnoir> i have 2 lines - 'no templates installed' and empty file
<OmegaCenti> no templated installed.
<OmegaCenti> yes.
<mnoir> i do not know what kind of templates it is looking for
<OmegaCenti> My apologies for not being more observanmt of want is presented before me.
<sunshine> what is the command to telnet to another machine in linux?
<mnoir> time to ask in the channel :)
<mnoir> sunshine - if you have to use telnet, the command is telnet
<sunshine> hm okay..sounds logically^^
<mnoir> ssh is preferable and the main channel is preferable for the question
<sunshine> ok
<mnoir> as i understand it, this channel is for the kind of thing i am doing - an extended conversation on a topic :)
<mnoir> OmegaCenti: so next class of 'package'?
<OmegaCenti> when I do: ./configure;make;make test;make install does int install it to the current directory or does it magically know where it wants to be placed?
<mnoir> the build will dictate
<mnoir> also -the install step will usually require privs
<OmegaCenti> privalages.
<OmegaCenti> How do I give it said privs?
<mnoir> the build woll accept spex as to where to install if there are choices
<mnoir> sudo
<OmegaCenti> ah
<OmegaCenti> sudo is temporary root privalges to the next few commands correct?
<mnoir> sudo is a mechanism for DOing something as SUperuser
<OmegaCenti> How do I revoke sudo nonce entered?
<mnoir> NO - 1 command
<OmegaCenti> uh.....
<OmegaCenti> ?
<mnoir> sudo will remember your password for a short time
<OmegaCenti> I would type no -1 afterwords.
<mnoir> you can revoke that
<mnoir> no
<mnoir> sudo only works for the command presented as parameter
<OmegaCenti> ah
<OmegaCenti> I need to find the usage of sudo then
<mnoir> there are several parms that make longer the period for root privs but i strongly discourage them
<OmegaCenti> Would you mind for a sandbox example of installing to package named fubar in this chat?
<OmegaCenti> So as to treat this as a terminal window?
<mnoir> no problem - it already exists in the repositories
<OmegaCenti> in the list thing you provided earlier??
<mnoir> but uing this as a term window would not be very easy - how about you just use your own sandbox?
<OmegaCenti> ...
<mnoir> OmegaCenti: we will need to enable 1 more repo
<OmegaCenti> just to pretent.
<OmegaCenti> pretend.
<mnoir> that is what the sandbox is for :)
<OmegaCenti> lol? I am not sure if we are miscommunicating? which sandbox are you referring to?
<mnoir> i am suggesting you just use yours :)
<OmegaCenti> then I should start typing in this window as If I was about to install fubar?
<mnoir> not in this - in a terminal window after we make sure you have an acceptable sandbox
<OmegaCenti> ah.
<OmegaCenti> then carry on if you would please.
<OmegaCenti> I dont know of any source packages to install
<mnoir> in a terminal
<OmegaCenti> okay a terminal is open
<mnoir> type cd to make sure you are in your home dir
<mnoir> did you just open it?
<OmegaCenti> username@pcname:~$
<OmegaCenti> yes.
<mnoir> cool - type mkdir sandbox
<mnoir> type cd sandbox
<OmegaCenti> sandbox is now there
<mnoir> type touch aaa
<OmegaCenti> im in sandbox
<OmegaCenti> I touched something.
<mnoir> i am one cmd ahead of you :)
<OmegaCenti> lol
<mnoir> type ls
<mnoir> to confirm it is there
<OmegaCenti> aaa shows up as a file I suppose.
<mnoir> type ls -l to see some details
<mnoir> type rm aaa to remove it
<OmegaCenti> cool
<OmegaCenti> game me permissions.
<mnoir> yep
<mnoir> ok - rm it
<OmegaCenti> did.
<mnoir> ok this is where we can play
<OmegaCenti> no longer there with another ls command.
<OmegaCenti> sweet.
<mnoir> type ls -la to see that it is empty except for . and ..
<OmegaCenti> it did weird things
<OmegaCenti> said total 8
<mnoir> ??
<OmegaCenti> then two more lines and some stuff
<OmegaCenti> Is it okay to post the next to lines in this chat?
<OmegaCenti> it would reveal my username.
<mnoir> usr name is not a secure thing unless you use it as a pswd
<OmegaCenti> okay
<OmegaCenti> drwxr-xr-x  2 omegacenti omegacenti 4096 2007-01-20 15:24 .
<OmegaCenti> drwxr-xr-x 19 omegacenti omegacenti 4096 2007-01-20 15:23 ..
<mnoir> looks fine :)
<OmegaCenti> if only I knew what the first bit of line meant.
<mnoir> i need to run the command that i am going to give to you, sec
<mnoir> d=directory, the rest is perms.  use man ls to read more while i play for a sec
<mnoir> and i am ready for you with the command when you are
<OmegaCenti> Thankyou so much for giving me so much time to learn all that you are teaching me.
<OmegaCenti> sure.
<mnoir> part of this is an exercize for me - i have just volunteered to teach in this channel and i want to make sure i can
<OmegaCenti> Then I do have to say you are doing a great job of staying on topic and moving the conversation forward at an educational pace.
<mnoir> i have teaching credentials :)
<OmegaCenti> :-D
<mnoir> so you want to move on or study how ls works?
<OmegaCenti> which would you recommend?
<mnoir> move on - learning about the output of ls is trivial and you have the tools already to do it
<OmegaCenti> wonderful
<OmegaCenti> lets move on
<mnoir> if you want success at linux, it is necessary that you can do that on your own but do not hesitate to ask for help on it :)
<mnoir> you still in sandbox?
<OmegaCenti> I shall keep such wisdom in mind :)
<OmegaCenti> yes I am still in sandbox directory
<mnoir> source packages download to curr dir which is a different behavior from binary packages
<OmegaCenti> how are they "downloaded" to curr dir.
<OmegaCenti> ?
<mnoir> so we can d/l the hellow world package to your sandbox after we get the tools to build
<OmegaCenti> okay
<mnoir> d/l is done using the same tool as install
<OmegaCenti> oy one thing mnoir... do you know how in the world to disable tapping on this damned touchpad?
<mnoir> ooh - i have forgotten but please tell me when you learn - it is annoying to me too and there are many who will tell you how to do it!
<mnoir> just not annoying enuf (lappy is a secondary system)
<mnoir> :)
<OmegaCenti> thankyou. it is bugging me when I am typing and I magically appear in the middle of my  sentence with the end of the sentence.
<OmegaCenti> onward.
<mnoir> so we need to install build-essentials
<mnoir> how do you install packages now?
<OmegaCenti> alrighty then.
<OmegaCenti> I travel to synaptics (******something) and navigate blindly or search for words I hear every once and a while from chatrooms.
<mnoir> ok - fire up synaptic
<OmegaCenti> like konversation is now installed by searching for konversation in synaptivs.
<OmegaCenti> It is open.
<mnoir> then search for build-essentials
<OmegaCenti> it was found in the left columns.
<mnoir> it is a metapackage containing lots of tools needed for building
<mnoir> install it
<OmegaCenti> one sec.
<mnoir> (several secs) :)
<nothlit> sunshine, sudo -i is the same as logging in as root
<OmegaCenti> hm... I am clicking it and right clicking it... nothing is showing up.
<mnoir> ??
<OmegaCenti> under ALL there is build essentials... but in the right windows where stuff usually shows up nothing is showing up.
<OmegaCenti> should I reload?
<mnoir> sorry - name is build-essential
<mnoir> search for that
<OmegaCenti> found
<OmegaCenti> stuff in right window found.
<mnoir> installit
<OmegaCenti> :)
<OmegaCenti> everything in the window?
<nothlit> !aptitude
<OmegaCenti> build-essential...devscripts, dh-buildinfo
<mnoir> you just marked 1 and it marked the rest yes?
<OmegaCenti> no I havent even marked, I was worried so I did nothing without your prompt.
<mnoir> fine - ok - just mark build-essentials for install
<OmegaCenti> okay.
<mnoir> then apply - several things should ne installed by this
<OmegaCenti> it is marked. Should I click apply?
<mnoir> yes
<OmegaCenti> 8 megs to be downloaded.
<nothlit> oh anyways, OmegaCenti if you use aptitude to install things instead of synaptic or apt-get, it tracks it, and can automatically uninstall no longer needed dependencies for you
<mnoir> nothlit: 1. that ability is now in synaptic i believe
<OmegaCenti> mnoir:  do you agree with nothlit?
<mnoir> OmegaCenti: no sure but this can be verified at another time.  for our conversation it is just a distraction
<nothlit> mnoir, in synaptic or apt-get? LjL told me he tried the apt-get  auto-remove, and it didn't work very well
<OmegaCenti> Oh well, thankyou nothlit anyways :) I appreciate it.
<mnoir> ok ok - this is not the time or place - this is not a general discussion channel - #ubuntu is
<OmegaCenti> it is installed and I am awaiting your command mnoir
<mnoir> everything i say is subject to verification :) but -classroom is not supposed to be like the main channel :)
<mnoir> ok - now we get the source package.  i have not figured out how to do so with synaptic so go back to your terminal
<OmegaCenti> I am at it.
<mnoir> ok - here is the command:  apt-get source hello
<OmegaCenti> one sec.
<mnoir> it might not work if the repo is not enabled but try it first
<OmegaCenti> is there a way to hit ctrl -v in the temrinal window so it pastes using keyboard shortcuts?
<mnoir> yes
<OmegaCenti> is it worth it to interrupt the conversation to quickly do so?
<mnoir> ctrl-c and v should work - they do for me
<mnoir> we can
<OmegaCenti> it types ^V in the terminal when I hit the combination of keys.
<mnoir> hmm - ??
<OmegaCenti> I will try again.
<OmegaCenti> one sec.
<mnoir> doesnt for me :)
<nothlit> mnoir, i know what -classroom is for, but we're allowed to pop advice in :P
<OmegaCenti> it still does it.
<mnoir> what about rt-click paste?
<OmegaCenti> gnometemrinal 2.16.1
<OmegaCenti> one sec.
<OmegaCenti> that works... it just bugs me.
<mnoir> dunno...
<mnoir> i am running into a time problem -
<OmegaCenti> it is getting hello
<mnoir> i need 45 min to feed the sheep
<nothlit> in gnome-terminal, you use ctrl+shift+c and cltrl+shift+v
<OmegaCenti> if so then I will leave you to your needs.
<mnoir> i can be bback then
<OmegaCenti> by all means mnoir, thankyou for you ample amounts of time spent to teach me.
<nothlit> because ctrl+c would terminate your currently running application
<OmegaCenti> I will wait If I can, if not I will pm you and give you a reason for leaving.
<OmegaCenti> nothlit: thankyou.
<mnoir> nothlit: ahh - good point :)
<mnoir> OmegaCenti: ok - bbs
* OmegaCenti loves linux
<OmegaCenti> Im going to set up my other mail accounts in the mean time.
<nothlit> OmegaCenti, the first bit of ls -l are permissions
<OmegaCenti> oh okay :)
<OmegaCenti> sorry was configuring email. :)
<OmegaCenti> Ill be back in a few mins..
<mnoir> i'm back sheep are fed
<mnoir> :)
<mnoir> if your source install finished successfully, you will have several new things in    your sandbox
<OmegaCenti> back
<mnoir> good - metoo
<mnoir> sheeps fed
<mnoir> we are very close to the end
<OmegaCenti> I unfortnately just setup my emails in evolution and then evolution got all my accounts and deleted the messages from the server...
<OmegaCenti> I am not too happy about that.
<mnoir> whenever setting up new email accounts, i disable delete from server until i like waht i see
<mnoir> so lets get to a logical point like looking at the source pkg and successfully building a standard package
<OmegaCenti> sure.
<mnoir> if your source install finished successfully, you will have several new things in    your sandbox
<mnoir> verify?
<OmegaCenti> one sec switching rooms
* mnoir has only one dataprocessing room :)
<OmegaCenti> lol I move wherver is comfortable with my laptop :)
<OmegaCenti> okay so lets verify in the sandbox..
<OmegaCenti> .gz, .dsc, .gz
<mnoir> should have a dir and a couple of files
<OmegaCenti> and a dir
<OmegaCenti> yep
<mnoir> the files are admin overhead for a std pkg
<OmegaCenti> std == standard?
<OmegaCenti> !admin overhead.
<mnoir> there is a lot of doc on how pkgs are built
<ubotu> Sorry, I don't know anything about admin overhead. - try searching on http://bots.ubuntulinux.nl/factoids.cgi
<mnoir> yes
<OmegaCenti> alright moving on
<mnoir> package control and other things
<OmegaCenti> do I need to keep these files after everything said and done?
<OmegaCenti> I guess we will get to that
<OmegaCenti> continue
<mnoir> after install. the entire thing is optional
<mnoir> for plain vanilla builds i rerely keep it all but it is only disk space
<mnoir> rarely*
<mnoir> so cd into the directory
<OmegaCenti> so i will delete it then
<OmegaCenti> im in dir
<mnoir> ls
<OmegaCenti> did
<mnoir> note - a lot of things in a standard pkg!
<OmegaCenti> YEP!
<OmegaCenti> a lot of stuff I do not understand at all.
<mnoir> man pages, doc, instructions, etc, etc, etc
<OmegaCenti> gibberish would make more sense.
<mnoir> this is an example package - meant to show how a package is put together
<OmegaCenti> cool :)
<mnoir> so it contains the ideal
<OmegaCenti> names like po should be renamed....
<mnoir> then the eggheads would have to learn english
<OmegaCenti> :)
<mnoir> ok - in every good package is the file INSTALL and if you can read it (it is very good in my opinion) you do not need me anymore :)
<OmegaCenti> one sec.
<OmegaCenti> less install?
<mnoir> get another terminal window in that directory and less INSTALL
<OmegaCenti> get another terminal window... just click terminal again under applications?
<mnoir> yes
<OmegaCenti> one sec.
<mnoir> you could probably use a tab in one window but i like mult windows for instructions and doing
<OmegaCenti> there are intstructions
<OmegaCenti> Do you wish me to read them?
<mnoir> btw - left btn will highlight, middle mouse btn will paste whatever is highlit
<mnoir> sorry - i had locked the screen
<OmegaCenti> I have no middle button :(
<OmegaCenti> how do you lick the screen?
<mnoir> in the less win, type /sim and press enter
<OmegaCenti> lock heheheheh.
<OmegaCenti> not found
<mnoir> in konv, you scroll up :)
<OmegaCenti> oh the simplest way to install the package is:
<mnoir> are you looking at file contents of INSTALL?
<OmegaCenti> yes
<mnoir> 1st line is Copyright??
<OmegaCenti> I cant tell now, I typed /sim <enteR>
<OmegaCenti> and now I am at the part that tells you how to install.
<mnoir> ah - good that is what i wanted to show you - that less has search ability
<mnoir> so you see first step is ./configure?
<OmegaCenti> yep
<mnoir> do that in your other screen in the correct dir
<OmegaCenti> Is it okay to write to the windows partition? I am deathly afraid of losing all this mail that I downloaded.
<mnoir> ?? - your home dir is in a win partition?
<OmegaCenti> configure is done.
<OmegaCenti> no
<OmegaCenti> but the email i donwloaded is on this linux partition and I would like to back it up to the windows partition.
<mnoir> complete question with context then - i am lost
<mnoir> ois
<mnoir> oh - I see
<mnoir> is it ntfs or fat?
<OmegaCenti> ntfs
<mnoir> did you install special write ability?
<OmegaCenti> dunno.
<OmegaCenti> it is mounted though
<mnoir> then you will not be able to
<mnoir> ntfs requires special hacks to be writable and it is not recommended
<OmegaCenti> I assume the default install of the olive cd does not include special write ability
<OmegaCenti> okay...
<OmegaCenti> then later I will write the email to a cd.
<OmegaCenti> and save it for all eternity.
<mnoir> is it a lot of mail - if not - send it back out to yourself after disabling mail download
<OmegaCenti> its a LOT of mail.
<mnoir> oh - I see
<OmegaCenti> and I dont quite know how to send it back.
<OmegaCenti> I am attemptig to foward it back to my address.
<mnoir> if you are going to be tween win and ubuntu i recommend a fat partition for pivot purposes
<OmegaCenti> I see.
<mnoir> that can be written to from both sides :)
<OmegaCenti> can I convert ntfs to fat?
<mnoir> without much risk
<nothlit> !ntfs-3g OmegaCenti, for later
<ubotu> ntfs-3g: Third generation Linux NTFS driver. In component universe, is optional. Version 20060920-0ubuntu2 (edgy), package size 30 kB, installed size 112 kB
<mnoir> that is a win topic - i don't know, dont think so and wouldnt w/o backup
<nothlit> no you cannot convert ntfs to fat
<mnoir> if you fel you can get that under control, lets finish up
<nothlit> !ntfs-3g
<ubotu> ntfs-3g is is a Linux driver which allows read/write access to NTFS partitions. It has been extensively tested but is still BETA software, so use it with caution. Installation instructions at http://lunapark6.com/?p=1710 (Dapper) and http://ubuntuforums.org/showthread.php?t=217009/ (Edgy)
<mnoir> back on topic pls
<nothlit> I said for later T.T
<mnoir> may i continue?
<OmegaCenti> WOO HOOO!!!! it archived the mail ong gmail!!! never mind. I am back to my former self. On with the wisdom.
<OmegaCenti> mnoir, I thankyou for your patience. I  apologize for interupting so.
<mnoir> ok - so you are ready to do step 1?
<OmegaCenti> yes.
<OmegaCenti> .configure was succesful
<mnoir> not you i am concerned with
<mnoir> ok - that detected all your tools and that a build will work :)
<nothlit> mnoir, if you expect absolute silence you can use pms or a secret room
<mnoir> nothit this is -classroom and i understand that the way i am managing is expected and proper
<OmegaCenti> sweet
<nothlit> I'm just saying if you don't want people to butt in, then you can do so
<OmegaCenti> so then it said no errors.
<mnoir> good - that means that the pkg built according to expectations
<mnoir> ls to see if you can detect new files
<OmegaCenti> one sec.
<mnoir> i am building now :)
<OmegaCenti> there are makefiles.
<mnoir> sec
<mnoir> type ls -latr
<OmegaCenti> done.
<mnoir> note the last thing is src?
<OmegaCenti> I'm sorry?
<mnoir> i know it is not intuitive, but this make has dropped the executable in that dir
<mnoir> ls -latr produces a list in a certain order with the most recently thing last
<mnoir> recently altered :)
<mnoir> not the last item is src - verify?
<OmegaCenti> hold on Im going to uri paste if you will provide the url again so I may bookmark it.
<OmegaCenti> the last item does not appear to be src.
<mnoir> http://paste.ubuntu-nl.org
<mnoir> always include the command and the prompt at the end
<OmegaCenti> http://paste.ubuntu-nl.org/2347/
<OmegaCenti> oops
<OmegaCenti> left the prompt out
<mnoir> that is missing some lines
<OmegaCenti> -rw-r--r--  1 omegacenti omegacenti   6269 2007-01-20 16:45 config.h
<OmegaCenti> drwxr-xr-x 11 omegacenti omegacenti   4096 2007-01-20 16:45 .
<OmegaCenti> omegacenti@ZeNotePad:~/sandbox/hello-2.1.1$
<OmegaCenti> hold on
<mnoir> huh - src is not listed last in yours - well cd src anyway
<OmegaCenti> http://paste.ubuntu-nl.org/2348/
<OmegaCenti> done
<mnoir> ls -latr there
<OmegaCenti> one sec
<mnoir> note you have o files (object) and something called hello with no suffix
#ubuntu-classroom 2007-01-21
<OmegaCenti> I dont see o files.
<OmegaCenti> and I dont see hello with no suffix.
<OmegaCenti> one sec pasting.
<mnoir> type pwd and paste result here
<mnoir> pwd=present working directory
<OmegaCenti> http://paste.ubuntu-nl.org/2349/
<nothlit> OmegaCenti, did you run make? i might have missed it but i think you only ran ./configure
<OmegaCenti> k
<OmegaCenti> no i didnt run make
<mnoir> oh - I see
<OmegaCenti> lol that could be it :)
<mnoir> :)
<mnoir> cd ..   and then make
<mnoir> !
<OmegaCenti> one sec i will cd .. and type make
<OmegaCenti> omegacenti@ZeNotePad:~/sandbox/hello-2.1.1/src$ ls -latr
<OmegaCenti> total 132
<OmegaCenti> -rw-r--r--  1 omegacenti omegacenti   138 2001-06-01 23:39 version.c
<OmegaCenti> -rw-r--r--  1 omegacenti omegacenti   862 2001-06-01 23:39 system.h
<OmegaCenti> -rw-r--r--  1 omegacenti omegacenti  1354 2002-05-22 12:10 Makefile.am
<OmegaCenti> -rw-r--r--  1 omegacenti omegacenti  6393 2002-05-22 12:19 getopt.h
<OmegaCenti> -rw-r--r--  1 omegacenti omegacenti 30530 2002-05-22 12:19 getopt.c
<OmegaCenti> -rw-r--r--  1 omegacenti omegacenti  4466 2002-05-22 12:19 getopt1.c
<OmegaCenti> -rw-r--r--  1 omegacenti omegacenti 14387 2002-05-22 12:19 alloca.c
<OmegaCenti> -rw-r--r--  1 omegacenti omegacenti  7163 2002-05-22 12:23 ChangeLog
<OmegaCenti> -rw-r--r--  1 omegacenti omegacenti 10416 2002-06-09 00:29 Makefile.in
<OmegaCenti> -rw-r--r--  1 omegacenti omegacenti  8308 2007-01-20 15:48 hello.c
<OmegaCenti> -rw-r--r--  1 omegacenti omegacenti 10097 2007-01-20 16:45 Makefile
<OmegaCenti> drwxr-xr-x  2 omegacenti omegacenti  4096 2007-01-20 16:45 .deps
<OmegaCenti> drwxr-xr-x 11 omegacenti omegacenti  4096 2007-01-20 16:45 ..
<OmegaCenti> drwxr-xr-x  3 omegacenti omegacenti  4096 2007-01-20 16:45 .
<OmegaCenti> omegacenti@ZeNotePad:~/sandbox/hello-2.1.1/src$
<OmegaCenti> no?
<OmegaCenti> WOAH
<OmegaCenti> stupid tap pad!!!!
<mnoir> uuh - bad manners to flood here...
<OmegaCenti> am I disconnected because of flood? if not respond please.
<nothlit> nope not d/c
<OmegaCenti> I realy and truly did not mean to
<mnoir> i am here and you are too :)
<nothlit> you only get d/c if you haven't registered your nick
<OmegaCenti> my tap pad typed it right before I hit enter.
<mnoir> ok - anyway - do the make in the top dir for the package
<OmegaCenti> k
<mnoir> it will be quick as this is a very small pkg
<OmegaCenti> it is made
<mnoir> and will tell you it is over
<OmegaCenti> kde can take days right?
<mnoir> now ls -latr
<OmegaCenti> src is last file :)
<mnoir> :)  - not soo long - i can build a whole os in 45 min
<mnoir> directory
<mnoir> cd to it and ls
<OmegaCenti> did it
<nothlit> yes the whole kde suite can take days, all depends on the computer and what you do with it
<OmegaCenti> and there are o
<OmegaCenti> 's and hello
<OmegaCenti> hello is green
<mnoir> note hello is executable
<mnoir> color coded!
<OmegaCenti> I LOVE it.
<mnoir> type ./hello  to run it
<OmegaCenti> color == eye candy == organizational goodness.
<OmegaCenti> why not just hello?
<OmegaCenti> what is ./?
<OmegaCenti> it said, "Hello, world!"
<mnoir> the current dir is never on your path per se
<OmegaCenti> that made no sense.
<mnoir> the ./ references current dir.  try typing just hello
<OmegaCenti> one sec.
<OmegaCenti> bash: hello: command not found
<mnoir> this is an important security thing
<mnoir> if curr dir was on your exec path, certain exploits could be used
<OmegaCenti> so I just built my first package...
<mnoir> yes but not installed
<OmegaCenti> so I will always type ./ and stop worrrying about typing 2 extra characters.
<OmegaCenti> ah.
<mnoir> you need not install it if you do not want to but i recommend trying and we will use a special method to allow you to remove it easily
<nothlit> you only need ./ to execute something in your working directory
<OmegaCenti> okay
<nothlit> you wouldn't use it normally to execute a program
<OmegaCenti> lets do it mnoir
<nothlit> installed programs at last
<nothlit> least*
<mnoir> ok cd ..
<OmegaCenti> i in hello directory
<mnoir> you need to install a cute utility that ensures you can remove it easilly
<OmegaCenti> lets do it.
<mnoir> what the util does is make a real deb pkg so that synaptic will see it
<nothlit> !checkinstall
<mnoir> in synaptic, look for checkinstall
<ubotu> checkinstall is a wrapper to "make install", useful for installing programs you compiled. It will create a .deb package, which will be listed in the APT database and can be uninstalled like other packages. See https://help.ubuntu.com/community/CheckInstall - Read the warnings at the top and bottom of that web page, and DO NOT interrupt CheckInstall while it's running!
<mnoir> noth - you can take over if you like :)
<mnoir> i have to make dinner anyhow
<nothlit> if you have to go, i can jump in, but you should keep going ^^ :)
<OmegaCenti> Well, thankyou mnoir for your patience! I have so many more questions lol :) Thankyou for committing so much tome to me.
<OmegaCenti> time.
<mnoir> OmegaCenti: seems i cannot prevent distractions - we can go to a pm - i guess nobody else needs to see this
<mnoir> your call
<OmegaCenti> Sure. :)
<mnoir> did u get the pm?
<OmegaCenti> yes
<OmegaCenti> did you receive the reply?
<mnoir> OmegaCenti: no
<mnoir> try typing /msg mnoir
<OmegaCenti> just did.
<mnoir> hmm - nothing - well lets stay here :)
<OmegaCenti> one second
<OmegaCenti> Im going to attempt to switch to konversation.
<mnoir> hoboy :) - i will wait
<OmegaCenti> did you get that
<mnoir> no :(
<mnoir> lets just push on.
<OmegaCenti> sure
<mnoir> have you installed checkinstall yet?
<OmegaCenti> no
<OmegaCenti> should i?
<mnoir> ok - use synaptic to do so
<OmegaCenti> sure
<mnoir> building from source does not usually make a deb package.  checkinstall does, thus injecting the package into the apt system
<OmegaCenti> couldnt find it.
<mnoir> ahh - it is in universe - need to add a repository
<mnoir> :)
<mnoir> new topic :)
<OmegaCenti> one sec.
<OmegaCenti> sweet
<OmegaCenti> lets do it.
<mnoir> what?
<mnoir> ok cd /etc/apt
<OmegaCenti> repositories.
<mnoir> cd /etc/apt
<OmegaCenti> I'm there.
<mnoir> first back up current file.  never change any config w/o backup
<OmegaCenti> Onegai sensei
<mnoir> sudo cp sources.list sources.whatevermeansbackuptoyou
<OmegaCenti> Im going to copy that word for word... is that okay?
<mnoir> when you get really good you can write the backup from the edit session but i never do
<mnoir> if you like typing, go ahead.  i usually use the date or bkp   :)
<OmegaCenti> its backed up
<mnoir> do you have an editor you like
<mnoir> ?
<OmegaCenti> lol if you say vi I am going to attempt to put my face through my door.
<OmegaCenti> but to answer your question... no.
<mnoir> that is why i asked
<mnoir> you prefer visual or text editors
<mnoir> ?
<OmegaCenti> not enough experience to choose either way.
<mnoir> i happen to prefer vi but we will use a visual one instead
<mnoir> type gksudo gedit sources.list   DO NOT PRESS ENTER YET
<OmegaCenti> if you have enough time to walk me through vi I will give it another try
<mnoir> no - everybody else will start distracting with their favorite and there are a dozen
<mnoir> i do not like the general favorite :)
<mnoir> did you type that?
<OmegaCenti> typed.
<mnoir> ok - gksudo is the gui version of sudo
<OmegaCenti> okay
<mnoir> it sets up some things and is recommended for root privs for gui things
<OmegaCenti> ah.
<mnoir> gedit is an editor - get used to it - most folks will want to use it with you
<mnoir> now press return
<OmegaCenti> okay.
<mnoir> see how it works?
<OmegaCenti> GnomeUI-WARNING **: While connecting to session manager:
<OmegaCenti> Authentication Rejected, reason : None of the authentication protocols specified are supported and host-based authentication failed.
<mnoir> hmm - i dunno why - anybody here know?
<OmegaCenti> but sources did come up in gedit
<mnoir> if i do not get an answer quickly, we might have to use vi - this does need fixing for you though :)
<OmegaCenti> okay.
<OmegaCenti> so I take it I should close sources.
<mnoir> does it warn that it is read only?
<OmegaCenti> no.
<OmegaCenti> one sec.
<mnoir> lets try to press on
<OmegaCenti> omegacenti@ZeNotePad:/etc/apt$ gksudo gedit sources.list
<OmegaCenti> (gedit:19475): GnomeUI-WARNING **: While connecting to session manager:
<OmegaCenti> Authentication Rejected, reason : None of the authentication protocols specified are supported and host-based authentication failed.
<OmegaCenti> omegacenti@ZeNotePad:/etc/apt$
<OmegaCenti> and sources opened.
<mnoir> i assume file is in nice edit window
<OmegaCenti> yep
<mnoir> that may be sloppy program chatter
<OmegaCenti> then lets continue to use gedit?
<mnoir> ok - wait a sec
<mnoir> sorry - i locked up two systems
<mnoir> look at the comments for the lines to un comment to enable universe
<OmegaCenti> okay
<OmegaCenti> so uncomment both universes
<mnoir> yes - i would - one is for source and the other for binaries
<OmegaCenti> yep
<OmegaCenti> okay one sec.
<mnoir> is synaptic running??
<mnoir> close it if it is
<OmegaCenti>  d from geditsave
<OmegaCenti> see.. that was the result of a badly time tap.
<mnoir> then write out the file (save it, whatever)
<OmegaCenti> saved from gedit
<OmegaCenti> shall we check to see if changed?
<OmegaCenti> less /etc/apt/sources.list?
<mnoir> ok - yes
<mnoir> then run synaptic
<OmegaCenti> its changed
<OmegaCenti> running synaptic
<mnoir> there is a button for reload - click it to reload all package lists - will include some new ones
<OmegaCenti> okay
<mnoir> then look for checkinstal
<mnoir> and installit
<OmegaCenti> downloading ALOT
<mnoir> it is pretty efficient after the first time
<mnoir> done yet?
<OmegaCenti> one sec.
<mnoir> ?
<OmegaCenti> sorry
<OmegaCenti> yes done
<OmegaCenti> finding checkinstall
<mnoir> ok - look for and install checkinstall
<OmegaCenti> whats a star mean?
<OmegaCenti> in the little checkbox?
<mnoir> right click it - it will give you a list
<OmegaCenti> okay installed.
<mnoir> ok - cd to the root dir for the package in sandbox
<OmegaCenti> k one sec.
<mnoir> checkinstall works like sudo - you feed it the proper install command, preceded by it's parms
<mnoir> BUT it must run as root so it needs to be in a sudo command
<OmegaCenti> one sec.
<mnoir> so the whole thing should be > sudo checkinstall -D make install  TYPE BUT DO NOT PRESS ENTER YET
<OmegaCenti> still getting there
<OmegaCenti> hold on
<OmegaCenti> okay
<OmegaCenti> I am in the folder
<mnoir> got the cmd  typed?
<OmegaCenti> not yet
<OmegaCenti> okay
<mnoir> now press enter
<mnoir> it will stop for input
<OmegaCenti> wants password
<mnoir> type in your pswd - do not tell it to me ever pls
<OmegaCenti> LMAO
<OmegaCenti> no I was hoping to type it in main with my username too :)
<mnoir> i hang up on folks who do :)
<OmegaCenti> you wouldnt mind if I follow that with dmzing my router would you?
<mnoir> ??
<mnoir> :)
<OmegaCenti> demiliterized zone, fowards all ports directly from router to host pc.
<OmegaCenti> meaning open to the world.
<OmegaCenti> Okay it is asking me something
<mnoir> oh - I see - i am double natted behind a hardware firewall here
<mnoir> yes - let it create the doc-pak
<OmegaCenti> I am single natted...
<OmegaCenti> write a description for the package.
<mnoir> do so
<OmegaCenti> enter a number... ?
<mnoir> no - ler it go
<mnoir> let*
<OmegaCenti> or press enter to con... okay doing so.
<mnoir> probably fail - did you close synaptic?
<OmegaCenti> thar she blows!
<OmegaCenti> it actually succeeded without me closing the package
<OmegaCenti> closing synaptics i mean
<mnoir> doesnt say failed?
<OmegaCenti> nope.
<mnoir> ok...
<mnoir> type cd
<mnoir> to get back to home
<OmegaCenti> and then?
<OmegaCenti> okay
<mnoir> type man hello
<mnoir> type hello ( no ./)
<OmegaCenti> omegacenti@ZeNotePad:~$ man hello
<OmegaCenti> No manual entry for hello
<OmegaCenti> See 'man 7 undocumented' for help when manual pages are not available.
<OmegaCenti> omegacenti@ZeNotePad:~$
<OmegaCenti> should I try again?
<mnoir> hmm - something did not work right - try hello
<OmegaCenti> okay
<mnoir> man hello
<OmegaCenti> it worked
<OmegaCenti> the hello world bit
<mnoir> but man no?
<OmegaCenti> ill try man hello
<OmegaCenti> no entry
<OmegaCenti> maybe it didnt no it failed.
<OmegaCenti> know
<OmegaCenti> should i try changelist install again?
<mnoir> ok - i do need to run.  go to synaptic and find, remove the pkg - it will be in custom (button at the bottom left
<OmegaCenti> thankyou!
<mnoir> then close synaptic and redo the install using checkinstall
<OmegaCenti> okay
<mnoir> i will be back later or see you tomorrow
<mnoir> sorry i need to eat :)
<OmegaCenti> I will still be on :)
<crazytales> hi nalioth
<nalioth> crazytales: did you /msg the bot?
<crazytales> yes.
<nalioth> did you visit the site?
<crazytales> in lynx
<crazytales> it refers to using synaptic
<crazytales> i cannot get anything but textmode
<nalioth> did you run "sudo dpkg-reconfigure xserver-xorg" like it said?
<nalioth> you did not read enough
<crazytales> didn't say that, but I'll try
<crazytales> I was reading the binary driver howto
<nalioth> that is NOT /msg ubotu fixres
<crazytales> ah, I was referred to the binary driver howto in #ubuntu
<crazytales> 128MB is 131072KB, right?
<crazytales> oh, autodetects
<nalioth> you can answer all the questions with their defaults UNTIL you get to the driver part
<nalioth> then choose "vesa"
<crazytales> bb in 30
<crazytales> dinner
<crazytales> back
<crazytales> select vesa X server driver?
<crazytales> I have nv
<crazytales> nalioth : ping
<crazytales> and that
<crazytales> is like the first question
<crazytales> hi AndrewB
<AndrewB> lo
* crazytales is currently IRCing from irssi
<AndrewB> Cool. Me too. heh
<AndrewB> What is the problem..see if i have a quick fix
<crazytales> Textmode or through a terminal emulator?
<AndrewB> well I ssh into my server and re-attach a screen session running irssi
<crazytales> I'm doing it textmode locally. I have a video driver prob.
<crazytales> On its way to be solved. I think.
<AndrewB> cool
* AndrewB is in a stupid meeting. I hate it. [through IRC] 
<nalioth> crazytales: hi
#ubuntu-classroom 2008-01-14
<TheOnly1MadHatte> hey
<unagi> sigh
<jrib> sigh?
<unagi> i dont think its going to work
<unagi> it requires software from logitech and they dont have it for linux
<jrib> why?
<jrib> it doesn't
<unagi> ?
<jrib> I have all ~20 buttons working on my mouse
<unagi> ok
<jrib> the steps are going to basically be like https://help.ubuntu.com/community/MX1000Mouse but updated
<jrib> unagi: do this: sudo apt-get install xvkbd xbindkeys xmacro xserver-xorg-input-evdev
<unagi> oooooh no
<unagi> im not editing xorg
<jrib> erm
<unagi> that causes problems when dealing with a mouse
<jrib> why not?
<unagi> 2 times ive done something relating to the mouse and it screws up my display
<unagi> ive edited xorg so many different other ways and its been fine
<jrib> you make a backup and restore if it does
<unagi> i do something with a mouse and BAM im crippled
<unagi> wasnt that easy last time
<jrib> k, well up to you I suppose.  Using the evdev driver is the only reliable way I've found of enabling all the mice buttons
<unagi> ok well ill try it
<unagi> InputDevice     "Logitech MX1000" "CorePointer"
<unagi> what do i put for corepointer
<unagi> leave it?
<jrib> we have to work through it
<jrib> your mouse is different
<jrib> 1. backup your current xorg.conf
<unagi> k here i go
<jrib> what the...
<jrib> of course it is going to be broken...
<unagi> ok jrib so far so good
<unagi> now what
<jrib> unagi: test with xev again
<unagi> SWEET!
<unagi> button 6 and button 7
<unagi> now how do i assign switching to that
<jrib> there is an example file on the wiki page
<jrib> go down to "Set up xbindkeys"
<jrib> none of that does what you want, but you should get the idea on how to edit
<unagi> doesnt do anything =/
<jrib> pastebin your .xbindkeysrc
<unagi> http://pastebin.org/15374
<jrib> do you understand what those lines do?
<unagi> not fully
<jrib> delete the last 4 lines
<jrib> change the 8 to a 6 and the 9 to a 7
<jrib> restart xbindkeys
<jrib> check if you go back (or forward) in your browser using tilt now
<unagi> ok back and forth works
<unagi> for browsing
<jrib> what is the keyboard shortcut for what you want to do?
<unagi> ctrl  alt left and right
<jrib> change the "\[Alt_L]\[Left]"" to correspond to that
<jrib> I don't know offhand what ctrl is.  Poke me if you can't figure it out
<unagi> i dont understand
<unagi> i changed the keyboard command to switch as alt left and alt right
<unagi> oh
<unagi> brb
<unagi> sigh
<unagi> i dont get it
<unagi> im out of time, i guess ill have to suffer less productivity........
<unagi> thanks for your help
<jrib> did you restart xbindkeys?
<unagi> i killed it and started it again
<unagi> is there another way?
<jrib> try imwheel
<unagi> still nothing
<unagi> it works on the keyboard but no ton the mouse
<unagi> brb im going to restart x
<jrib> you need to configure imwheel differently
<unagi> still nothing
<unagi> now if i could fix my mplayer problem
<jrib> you need to configure imwheel differently
<unagi> ?
<jrib> it has its own configuration file and syntax
<Mika1860> Ã¤h...test?
<Mika1860> cool
<Mika1860> QUIT
#ubuntu-classroom 2008-01-15
 * AxCray_ Binar
<KcRider> Hi
<plasticman> ..
<gusse02> leave
<pipedream> .
<pipedream> wasn't there a class today?
<pleia2> the only thing on the agenda is for the 17th
<imzaphod> motu class today 16:00 - 17:30 utc
<dholbach> pleia2: the packaging 101 session will be today
<pleia2> dholbach: what is the schedule for that exactl?
 * pleia2 really must start keeping track of this :)
<pipedream> oh
<pipedream> utc
<dholbach> http://fridge.ubuntu.com
<pipedream> here in cape town that is another 2 hours
<dholbach> same here :)
<angor> am i right that todays "event" is starting at 6pm utc? ( in germany 7pm?)
<durgis> I thought it was 16:00 or 4 pm.
<pleia2> durgis is correct
<angor> so it starts in half an hour?
<dholbach> angor: yeah :)
<angor> cool, thanks :)
<dholbach> bring it on!
<angor> i hope nobody minds if i log this, for later use or as a transscript for ubuntuusers.de (if nobody else logs it)
<dholbach> angor: no, that's great
<angor> if somebody wants his name deleted, he/she/it should contact me so that i can cut it out
<dholbach> angor: this channel is logged publically anyway: http://irclogs.ubuntu.com/2008/01/15/%23ubuntu-classroom.txt
<angor> oh, yeah, did not think of it
<angor> ^^
<angor> then forget about it
<angor> brb
<angor> re, is the "motuguide" also understandable for packaging beginners?
<pipedream> bits of it
<pipedream> one has to read quite a bit to understand the full debian package
<pipedream> (not there yet)
<pipedream> and then there is all this pbuilder stuff on top
<edfonseca> vamos ao coffee entao?
<pipedream> many ways to skin a deb
<angor> well, then i can keep it for later use :) so iÂ´ll just be quiet and listen so that i can understand it later , thanks for the info
<RoyS> hi leute
<pipedream> angor: not that I'm there yet!
<angor> hallo roys, hier ist englisch angesagt ;)
<RoyS> ooops
<RoyS> sorry
<dholbach> Welcome to the Packaging 101 Session!
<dholbach> How are you all doing?
<Guite> Hi. Fine, thanks
<hellboy195> excited ;)
<Hit3k> :D
<durgis> Good here.
<Solty> fine :>
<vorian> good :)
<LucidFox> What they said. :)
<dholbach> Great - who of you wants to become a MOTU? :-)
 * hellboy195 :)
<LucidFox> I do.
<Hit3k> <----
 * vorian raises his hand
 * warp10 raises a finger
 * Guite wants to maintain a particular package...
<grayraven> I do
<Guite> do not know if this requires being a MOTU ;)
<dholbach> ROCK AND ROLL :-)
 * dantalizing wants ta
<dholbach> great to hear that
<dholbach> Guite: I'll answer the question in a bit
<doluu> I do
<dholbach> So what does it take to become a MOTU? Best point to start is http://wiki.ubuntu.com/MOTU/GettingStarted
<dholbach> it links to all the necessary information and takes you by the hand on your way to MOTU membership :)
<dholbach> there are three areas on the wiki that are important to become an Ubuntu developer
<dholbach> First of all http://wiki.ubuntu.com/UbuntuDevelopment - which links to all information about Development processes
<dholbach> so things like how to merge, how to do a sync request, how the archive machinery works and so on
<dholbach> http://wiki.ubuntu.com/PackagingGuide has a lot of information about packaging - so all the bits that are necessary to build packages from source code
<dholbach> and last but not least http://wiki.ubuntu.com/MOTU - which has information about the MOTU team, its events, its governance, etc
 * LucidFox raises his hand
<dholbach> LucidFox: fire away
<LucidFox> is the packaging guide on th wiki older or newer than the one on help.ubuntu.com?
<dholbach> LucidFox: newer - I spent a lot of time to merge other packaging information into it, I split it up, so that the contents can be re-used in other places
<dholbach> these three wiki namespace are the definite areas you should hit up, when you run into problems
<dholbach> So what's the process for becoming a MOTU?
<dholbach> It's pretty straight-forward: you contribute patches and packages and members of the MOTU team will review them, discuss them with you and sign them with their gpg keys once they are OK, then upload to the build daemons
<pipedream> build daemons++
<Guite> k
<dholbach> after you've done that for a while and your sponsors (the people who "sponsored" your uploads) have only good things to say about you, you mail the MOTU Council who will then take a look at your application
<dholbach> and that's it
<Guite> probationary period ^^
<dholbach> coming back to Guite's question: if you prefer to not go through the process, you can get changes to the one package you care about uploaded by sponsors
<dholbach> are there any questions?
<civija> who are the sponsors and how can we find them?
<dholbach> civija: good question :)
<xander21c> question: Which the basic kwnolege you need to become MOTU?
<dholbach> it's what I wanted to explain next :-)
<Guite> The package I am going to maintain does neither exist in Debian nor Ubuntu yet. Hopefully this is no problem?
<dholbach> to get a patch uploaded, you file a bug report on the package it's about, attach the patch and subscribe a) ubuntu-main-sponsors (if it's in main/restricted) or b) ubuntu-universe-sponsors (if it's in universe/multiverse)
<dholbach> civija: with this process you don't need to know who's going to deal with it, it will always be different people in the team
<civija> aha, tnx
<dholbach> http://people.ubuntu.com/~dholbach/sponsoring/ is an overview of things that need sponsoring at the moment
<dholbach> xander21c: the most important thing if you want to joing the MOTU team is: you're a good team player and you're motivated to find solutions for problems
<warp10> dholbach: if a contributor has worked on a number of packages, is there a way to know which sponsors upped his own work?
<dholbach> so it's not really important if you're a C hacker since 10 years, it's much more important that you ask if you have a question and people can trust you, but also you're willing to read docs and try to find out on your own
<nxvl> xander21c: nice to see you around here!
<dholbach> Guite: if the package is not in ubuntu/debian yet, that's not a problem - http://wiki.ubuntu.com/UbuntuDevelopment/NewPackages talks about this case
<Guite> thx already found it :)
<xander21c> hi nxvl
<dholbach> warp10: the people who sponsor your work will most likely comment on your sponsoring bug reports
<dholbach> warp10: also the mail that goes to hardy-changes (every upload is announced there) will be CCed to them if I remember correctly
<dholbach> if not it will at least be signed with they gpg key
<dholbach> any other questions?
<nxvl> dholbach: no, it is't CCed
<dholbach> nxvl: ok, then at least the signature will tell you who uploaded it
<nxvl> dholbach: yes, that's right
<zhaozhou> Oh, got here too late! /me scrolls up to get ahead again.
 * highvoltage got here too late too
<dholbach> alrighty - let's take a look at the current release schedule: https://wiki.ubuntu.com/HardyReleaseSchedule
<dholbach> as you can see on Feb 14th FeatureFreeze is coming up
<dholbach> this has a number of implications on what we work on
<dholbach> from that point on we need special exceptions for new upstream versions of packages, also exceptions for completely NEW packages
<dholbach> also given that Hardy will be an LTS release we put a lot of effort into quality assurance right now
<dholbach> https://wiki.ubuntu.com/MOTU/TODO lists a lot of bugs we work on
<dholbach> some of them are tagged as 'ftbfs' (fails to build from source)
<dholbach> others as 'unmetdeps' (these fail to install due to unmet dependencies)
<dholbach> other as 'bitesize' (suitable for new contributors)
<dholbach> etc etc.
<dholbach> there's a lot of work to be done and a lot of things to get started with :-)
<dholbach> any more questions?
<ucap> dholbach: if I don't have the time to contribute on a regular basis, but still want to work on a few things I care about every now and then, is this okay with you? or are you looking for more dedicated contributors?
 * warp10 has one about FF
<dholbach> ucap: that's absolutely OK
<dholbach> it happens a lot that people change job, move, do something else, then get back again and that's perfectly acceptable
<dholbach> warp10: fire away
<warp10> dholbach: Feature Freeze means that merges/syncs are completely stopped, except for exceptions?
<nxvl> you can also browse the bitesize list of bugs on LP -> https://bugs.edge.launchpad.net/ubuntu/+bugs?field.tag=bitesize
<LucidFox> dholbach> I have a question about the /sponsoring page. What do the numbers in parentheses after usernames mean?
<dholbach> warp10: merges and syncs are fine, except when they deal with new upstream versions
<dholbach> warp10: we just try to focus on fixing instead (if a fix involves a new upstream version that's mostly fine)
<dholbach> thanks nxvl
<warp10> dholbach: so, merging foo 1.2.3-1 if in ubuntu we are at 1.2.2-1ubuntu1 isn't fine?
<dholbach> LucidFox: I subscribe people to sponsoring bugs, and the value in parentheses is the age of the subscription in days
<highvoltage> dholbach: maybe this is too big a question, but what if I wanted to create the init scripts for the Pyro event server (178948), where would I start? would I download the source package from the hardy archives and once it's fixed, send it to revu?
<dholbach> warp10: after FF it'd require an exception
<warp10> dholbach: ok, great. ty :)
<dholbach> highvoltage: you'd download the source, work on the init scripts to get them right, then prepare a debdiff (that's one of the tutorials I wanted to show), attach it to a bug report, get it sponsors - done :-)
<LucidFox> Regarding bugs: the wiki says that I should set the status to Confirmed when subscribing sponsors. I'm a member of bug control - should I use Confirmed or Triaged?
<highvoltage> dholbach: great, I think I'll try that with the tutorial then!
<dholbach> ok... any more general questions? please: also if you don't understand items in the questions and answers, please ask
<dholbach> LucidFox: the membership of ubuntu-bugcontrol shouldn't matter in that regard - if it says 'confirmed' in the wiki, set it to confirmed
<dholbach> LucidFox: it will show up on the overview page in any case
<dholbach> anything else?
<dholbach> alright... let's get started with out first Tutorial then!
<aualin> i didn't miss anything? :O
<dholbach> we'll deal with the problem that highvoltage asked about: you have a fix ready and want to generate a patch
<dholbach> aualin: check  http://irclogs.ubuntu.com/2008/01/15/%23ubuntu-classroom.txt  later
<aualin> ok, thx
<dholbach> first of all, we'll set two variables to let the packaging tools know who we are
<dholbach> please edit your   ~/.bashrc
<dholbach> and add something like this to the bottom:
<dholbach> export DEBFULLNAME='Daniel Holbach'
<dholbach> export DEBEMAIL='daniel.holbach@ubuntu.com'
<aualin> what if i use zsh?
<dholbach> aualin: you can use   ~/.zshrc   too (if that is its configuration file)
<aualin> it is
<dholbach> we just want to make sure the variables are set, when we run our tools
<dholbach> so once you've done that, run
<aualin> ok
<dholbach>   source ~/.bashrc
<dholbach> to make sure it's active in the current session
<dholbach> all set?
<aualin> sure
<dholbach> Rock and Roll
<dholbach> next we'll install a couple of tools we'll need along the way
<dholbach>   sudo apt-get install devscripts build-essential wget fakeroot
<dholbach> devscripts and fakeroot are necessary for the packaging build process
<h3b> already installed ;)
<dholbach> build-essential will pull in things like gcc and make you need to build source
<dholbach> wget is used for downloading things from http or ftp
<Hit3k> first thing I always install on an ubuntu system
<zhaozhou> Hit3k, ++
<dholbach> ok... next we'll download the source for a package I broke so we can fix it
<dholbach>  dget -x http://people.ubuntu.com/~dholbach/motu/ubuntu-artwork_40.dsc
<oldsam> dget??
<aualin> wget ?
<oldsam> not wget?
<dholbach> dget :)
<aualin> oh...
<aualin> cool
<javamaniac> debian get
<oldsam> ahh
<dholbach> this will download the .dsc file and additionally the .tar.gz
<Laney> What's a .dsc file?
<dholbach> then check the checksums and extract it for us
<doluu> got it
<dholbach> Laney: good question
<aualin> a specifcation file?
<dholbach> run     cat ubuntu-artwork_40.dsc
<inkbuntu> debian source code?
<dholbach> it contains information about the version of the source package, what the build-depends are, a checksum and so on
<Hit3k> so its a description?
<aualin> like the control file in debian subdirectory?
<dholbach> aualin: it contains part of it
<aualin> ok
<dholbach> it's not necessary that we go through all attributes of it right now, it's just important to know that a .dsc and a .tar.gz are the minimum to call something a source package
<aualin> ok
<aualin> itsn't there usually a diff file also?
<dholbach> exactly
<zhaozhou> What does dsc stand for?
<LucidFox> The log so far, for those who joined later: http://lucidfox.org/stuff/packaging101.txt
<dholbach> this is a bit of a special case: we are the upstream maintainer of ubuntu-artwork, which means that we, in Ubuntu, control all the pieces that go into it
<jaw^vovoid> badvista, awesome nick
<oldsam> zhazhou: debian source code
<badvista> thanks
<zhaozhou> oldsam, okay (: thank you
<dholbach> zhaozhou: I'm not sure about "debian source code"... hmmm - I'll find out during the session, let's move on :)
<dholbach>  cd ubuntu-artwork-40
<dholbach>  cat debian/control
<dholbach> if you look at the control file, you'll note that it contains two stanzas
<zhaozhou> DeSCribtion perhaps..
<dholbach> the first one if about the source package and the second one is about the resulting binary package
<jaw^vovoid> badvista, I support the badvista campaign somewhat on my vsxu.com site :)
<dholbach> source package (.dsc, .tar.gz), binary package (.deb)
<dholbach> Build-Depends: debhelper (>= 5), cdbs       specifies which packages are needed to build the package
<dholbach> to install them, we simply run:
<badvista> jaw^vovoid: yes ok, i stole it from the fsf :D
<aualin> cdbs is a kind of framework?
<dholbach>   sudo apt-get build-dep ubuntu-artwork
<dholbach> can we try to keep the chatter elsewhere? I don't mind questions, but chatter can go to #ubuntu-offtopic or some other place - thanks :)
<jaw^vovoid> badvista: no problem with that IMO ;)
<dholbach> aualin: right... CDBS stands for common build system for Debian packages
<aualin> ah
<dholbach> it's a set of Makefiles that simplify the package build system a lot
<Beber80> if a package needs a particular kernel module, would it appear in the dependencies ?
<dholbach> I like using CDBS, it has the disadvantage that a lot of things happen behind the scenes and it's not really obvious for somebody who begins packaging
<aualin> ok
<aualin> sounds good :D
<dholbach> but that's not really relevant for our example today :)
<dholbach> Beber80: that depends: Dependencies at install time go into Depends:, packages needed to build it go into Build-Depends
<highvoltage> dholbach: what's the difference between debhelper and cdbs? or should I ask later?
<dholbach> everybody all set with build-depends?
<dholbach> highvoltage: CDBS makes use of debhelper
<aualin> i run arch at the moment
<doluu> yep
<dholbach> alright
<subterrific> yes, after lots of scrollkeeper parser errors
<aualin> so, debhelper is a framework for debhelper?
<dholbach> so let's try to build it
 * highvoltage had to add source uri's, it's updating so I'm a bit behind, but I'll catch up
<dholbach> let's run
<dholbach>   debuild -us -uc
<LucidFox> aualin> debhelper is a collection of scripts that simplify writing debian/rules files
<doluu> dholbach: where?
<LucidFox> and CDBS is built atop debhelper
<aualin> LucidFox: ok
<dholbach> doluu: in the ubuntu-artwork-40 directory
<doluu> ok
<dholbach> does it work for anybody?
<Hit3k> I got an error
<h3b> no, error
<dholbach> Hit3k: which one is it?
<aualin> should we not run fakeroot debuild -us -uc?
<Jergar> me tto
<dholbach> aualin: debuild uses fakeroot itself
<aualin> ah...
<dholbach> Jergar: what's the error message?
<Laney> Oh no, an error!
<Jergar>  Aufruf von stat fÃ¼r â./xxxdistributor-logo.pngâ nicht mÃ¶glich
<da1l6> cp: cannot stat `./xxxdistributor-logo.png': No such file or directory :(
<durgis> debuild: fatal error at line 1247:
<durgis> fakeroot debian/rules binary failed
<dholbach> exactly, that's the one
<Hit3k> thats mine except in english
<doluu> no, error
<dholbach> the call that raise the error was:    dh_install -pubuntu-artwork
<aualin> we need to change the path, right?
<durgis> ah, yes, a bit farther up I see.
<dholbach> so when the files were supposed to be installed into the package, it could not find `./xxxdistributor-logo.png'
<durgis> ls -lrt
<dholbach> if you type     ls
<durgis> hehe
 * highvoltage got the same error :)
<dholbach> you'll see how it's supposed to look like
<doluu> distributor-logo.png
<dholbach> now if we edit    debian/install    we can change it to distributor-logo.png
<dholbach> before we build it again, let's document the change in debian/changelog
<dholbach> just run
<dholbach>   dch -i
<dholbach> a few things worth noting:
<dholbach>  - if you do changes in any package, document them as detailed as possible, the next person to look at the package will be VERY happy about that
<dholbach>  - be sure that the string next to the version number says  "hardy"
<dholbach> (that's the current development branch and the only thing we can upload to)
<jwill2> got kicked about 2 mins ago....where's the log again?
<h3b> question: dch doesn't use $DEBEMAIL, ist this right?
<Hit3k_> Is it possible to make patches for hardy on gutsy?
<dholbach> h3b: it should
<hellboy195> dholbach: * Fix Path of the Logo in debian/install    <-- something like this?
<dholbach> Hit3k_: yes, but it's preferrable if you could test things on the branch you upload it to :)
<dholbach> jwill2: check  http://irclogs.ubuntu.com/2008/01/15/%23ubuntu-classroom.txt  later
<subterrific> h3b: i had that same problem, looking into it now
<dholbach>  - make sure the version number is 41 (this is the special case of a 'native' package)
<ucap> what about urgency? how do I decide what to set it to in the changelog?
<h3b> subterrific: echo $DEBEMAIL?
<dholbach> subterrific, h3b: did you run      source ~.bashrc   ?
<h3b> it works...
<dholbach> source ~/.bashrc
<doluu> dch renamed my current directory :)
<dholbach> ucap: we don't use 'urgency' in Ubuntu land
<aualin> or, source ~/.zshrc
<h3b> forgot the E in DEB'E'MAIL ;)
<dholbach> right
<dholbach> h3b: ok
<highvoltage> h3b: you have to log in again before the .bashrc changes will take effect
<dholbach> hellboy195: yes, that's OK - here's what I put into mine:
<highvoltage> oh, sorry, I'm catching up
<dholbach> ubuntu-artwork (41) hardy; urgency=low
<dholbach>   * debian/install: fixed file name.
<dholbach>  -- Daniel Holbach <daniel.holbach@ubuntu.com>  Tue, 15 Jan 2008 17:43:45 +0100
<Jergar> parsechangelog/debian: error: found start of entry where expected start of change data, at file debian/changelog line 4
<Jergar> parsechangelog/debian: error: found start of entry where expected start of change data, at file debian/changelog line 4
<Jergar> parsechangelog/debian: error: found start of entry where expected start of change data, at file debian/changelog line 4
<Jergar> parsechangelog/debian: error: found start of entry where expected start of change data, at file debian/changelog line 4
<Jergar> parsechangelog/debian: error: found start of entry where expected start of change data, at file debian/changelog line 4
<Jergar> got parsechangelog/debian: error: found start of entry where expected start of change data
<Jergar> sorry
<highvoltage> dholbach: how os "  * Renamed xxxdistributorlogo.png to distributerlogo.png in debian/install
<highvoltage> " ?
<Hit3k_> dholbach, so as we just have to be descriptive?
<hellboy195> highvoltage: I suppose too long
<highvoltage> ah
<dholbach> highvoltage: that's fine too... I usually put the name of the file I changed first, but yours is good too
<dholbach> Hit3k_: yeah
<dholbach> Jergar: if you could pastebin your entry somewhere, we could examine it later
<Jergar> ok
<dholbach> alrighty... let's see if with our new change it builds again
<dholbach> let's run   debuild -us -uc    again
<Hit3k_> :D
<dholbach> if you now run          ls ..          it will show you a shiny  *.deb   package
<dholbach> we just fixed our first FTBFS :)
<dholbach> ok, how would we submit a patch?
<hellboy195> dholbach: ignore lintian about the standards version?
<dholbach> hellboy195: yeah
<doluu> FTBFS?
<dholbach> doluu: Fails To Build From Source
<doluu> sorry
<dholbach> you can find a lot of abbreviations on     http://wiki.ubuntu.com/UbuntuDevelopment/Abbreviations
<dholbach> doluu: no problem - just ask :)
<dholbach> we'll build a new source package of our new version now
<dholbach> we'll run        debuild -S
<dholbach> which will not build a binary package (.deb) but a new source package
<dholbach> done?
<hellboy195> dholbach: may I ask you what the "-sa" option does?
<dholbach> hellboy195: the "-sa" option is not necessary in this case, it's just relevant if you want to upload a source package somewhere and specifically want to include the .orig.tar.gz
<Hit3k_> I need my gpg key which isn't on this computer
<dholbach> (which in our case does not apply anyway)
<doluu> isn't debuild use env vars we exported before?
<dholbach> Hit3k_: ignore the warning for now
<Hit3k_> ok
<dholbach> doluu: it should
<oldsam> ls
<oldsam> sry
<dholbach> if you get a warning about a GPG key it's not relevant right now (might be due to exact mail address not being on your gpg key as an id)
<doluu> what if I dont have a key?
<dholbach> if you now run:
<dholbach>   ls ..; debdiff ubuntu-artwork_40.dsc ubuntu-artwork_41.dsc
<dholbach> you will get a debdiff that's suitable for attaching to a bug report
<dholbach> doluu: you'll need to generate on
<durgis> ls -lrt
<aualin> doluu: gpg --gen-key
<dholbach> one
<durgis> gah...
<doluu> dholbach: ok
<Laney> s/ls/cd ?
<dholbach> not for this tutorial, but for general work, you'll have to
<dholbach> https://help.ubuntu.com/community/GnuPrivacyGuardHowto for more information on that
<geser> doluu: a gpg key is only needed for uploading e.g. REVU or as a MOTU to the archive
<dholbach> Laney: yes, sorry
<dholbach>   cd ..; debdiff ubuntu-artwork_40.dsc ubuntu-artwork_41.dsc
<dholbach> debdiff ubuntu-artwork_40.dsc ubuntu-artwork_41.dsc > debdiff          would give you the patch file you'd attach to a bug report to get it sponsored
<dholbach> http://wiki.ubuntu.com/SponsorshipProcess has more information to get that done
<highvoltage> ah, my version ended with ubuntu1, not 41
<dholbach> highvoltage: yeah, this was a special case
<dholbach> ok... end of tutorial 1 - everybody still excited?
<h3b> yes
 * highvoltage is super-excited
<Hit3k_> :D
<vorian> w00t
<dholbach> NICE - that's what I want to hear :-)
<dantalizing> +1 excited
<doluu> it's easier than I was expecting
<dholbach> let's press on then
<highvoltage> yes, me too, I with I attended a motu-class ages ago
<M2AU> damn, I missed it >.<
<dholbach> next we'll try to update a package to a new upstream version
<pak33m|work> woohoo
<Hit3k_> yay
<dholbach> M2AU:  check  http://irclogs.ubuntu.com/2008/01/15/%23ubuntu-classroom.txt  later
<M2AU> thanks!
<dholbach> alright... let's get the source for the hello package:
<dholbach>  dget -x http://archive.ubuntu.com/ubuntu/pool/main/h/hello/hello_2.2-2.dsc
<LucidFox> http://lucidfox.org/stuff/packaging101.txt <-- log updated
<dholbach> and now let's get the new upstream version of hello
<dholbach>  wget http://ftp.gnu.org/gnu/hello/hello-2.3.tar.gz
<dholbach> the GNU hello guys will probably wonder about the sudden interest in the new hello tarball :-)
<Hit3k_> haha
<highvoltage> heh
<aualin> :P
<warp10> lol
<dholbach> ok, we'll do this the manual way, there are other tools to update packages in a semi-automated way
<dholbach> first we unpack the new upstream tarball
<dholbach>  tar xfz hello-2.3.tar.gz
<highvoltage> (not that the "z" is needed in ubuntu anymore :) )
<dholbach> then rename it to the standard name of tarballs in debian/ubuntu source packages
<dholbach>  mv hello-2.3.tar.gz hello_2.3.orig.tar.gz
<dholbach> if you look at the files we downloaded, you'll notice these three:
<dholbach> hello_2.2-2.diff.gz  hello_2.2-2.dsc  hello_2.2.orig.tar.g
<dholbach> oops
<dholbach> hello_2.2-2.diff.gz  hello_2.2-2.dsc  hello_2.2.orig.tar.gz
<highvoltage> should we just rename 2.2, dholbach?
<doluu> right, I see
<dholbach> hello_2.2.orig.tar.gz was the upstream tarball that was downloaded of the GNU page
<dholbach> the .diff.gz file is the changes the maintainer had to make to make it build in debian/ubuntu
<dholbach> this usually contains the  debian/  directory
<dholbach> highvoltage: hm?
<dholbach> highvoltage: mv hello-2.3.tar.gz hello_2.3.orig.tar.gz     is the only thing you need to rename
<dholbach> now we'll manually copy over the   debian/   changes from the old version to the new one
<dholbach>  cp -r hello-2.2/debian/ hello-2.3/
<doluu> done :
<dholbach> (applying the old patch would be more elegant)
<dholbach> now we'll document our changes to the package
<dholbach>  cd hello-2.3
<dholbach>  dch -i
<dholbach> a notice saying  " * New upstream release"  should be enough for now
<dholbach> make sure you have   hardy   as upload target
<doluu> version number will be 2.3-0ubuntu1? or 2.3-ubuntu1?
<dholbach> and also make sure     2.3-0ubuntu1    is the version number
<dholbach> can anybody explain why it's "2.3-0ubuntu1"?
<aualin> since we made changes we add 1 on the end
<dholbach> the version before that was   2.2-2   - what does that mean?
<doluu> 0 is debian version
<aualin> and the package is for ubuntu
<vorian> it's an ubuntu delta
<jwill2> 0 is because it doesn't exist in Ubuntu yet
<dholbach> 2.2 means the upstream version number (the 2.2 released tarball from GNU)
<aualin> that we made it ubuntu-friendly and updated it to 2.3
<dholbach> -2 means the second revision in debian
<doluu> ubuntu1 means it's first revision in Ubuntu, right?
<dholbach> we updated to 2.3, therefore introduced ubuntu changes and since the package is not in debian yet, we'll call it 0ubuntu1
<highvoltage> how can a program that just prints "Hello world" have so much revisions and versions!?
<dholbach> doluu: first version that introduced ubuntu changes over the debian version
<aualin> it's international
<doluu> got it
<Hit3k_> highvoltage, they keep spelling hello wrong perhaps?
<dholbach> highvoltage: good question -    less Changelog       will probably help :)
<dholbach> alrighty
<highvoltage> cool, will do that!
<aualin> nah, the say hello world in a lot of languages
<dholbach> let's try to build it
<dholbach>  debuild -us -uc
<dholbach> I get this error:    dpkg-source: error: Version number suggests Ubuntu changes, but Maintainer: does not have Ubuntu address
<dholbach> who gets it too?
<Hit3k_> I do
<dholbach> Hit3k_: you used a ubuntu.com mail address?
<doluu> building .......
<Jergar> finished :-)
<Hit3k_> dholbach, don't have one
<hellboy195> dholbach: I have 3 lintian warnings but I doesn't aborted :)
<durgis> mine appears to finish as well.
<dholbach> the error message I got complains about the Maintainer field in debian/control
<doluu> finished :)
<dholbach> some of you might not have gotten it due to the version of dpkg or depending on which email address you used
<Laney> durgis: I get that warning right at the top of the output
<dholbach> Hit3k_ and I will fix the problem we have right now :)
<durgis> Laney: ah, yes there is a warning there.
<dholbach> our friends at Debian decided that we need to change the Maintainer field on Ubuntu uploads but still preserve the original maintainer
<highvoltage> hmm, I used my ubuntu address and got the same error
<dholbach> http://wiki.ubuntu.com/DebianMaintainerField has more information about that
<dholbach> we'll edit   debian/control
<greg-g> dholbach: quick question, will the packages you used (the one on your webspace) be available later for those that can't participate now?
<dholbach> and change Maintainer: Santiago Vila <sanvila@debian.org> to:
<dholbach> XSBC-Original-Maintainer: Santiago Vila <sanvila@debian.org>
<dholbach> Maintainer: Ubuntu Core Developers <ubuntu-devel-discuss@lists.ubuntu.com>
<dholbach> greg-g: yes
<greg-g> thanks
<dholbach> that way the original maintainer will still be documented
<dholbach> but they won't get mails by ubuntu users who want to mail "the maintainer"
<dholbach> now we'll document it in debian/changelog
<dholbach> just run    dch     now
<h3b> should i change the email to: ...@ubuntu.com?
<dholbach>   * debian/control: adhere to http://wiki.ubuntu.com/DebianMaintainerField
<dholbach> should be good
<dholbach> h3b: change Maintainer: Santiago Vila <sanvila@debian.org> to:
<dholbach>  XSBC-Original-Maintainer: Santiago Vila <sanvila@debian.org>
<dholbach>  Maintainer: Ubuntu Core Developers <ubuntu-devel-discuss@lists.ubuntu.com>
<dholbach> now if we build it again:    debuild -us -uc   (this ommits the signing step at the end)
<dholbach> it should build fine for you :)
<Hit3k_> yep
<dholbach> so we should have          hello_2.3-0ubuntu1.diff.gz    hello_2.3-0ubuntu1.dsc      hello_2.3.orig.tar.gz       (source package)                 and               hello_2.3-0ubuntu1_i386.deb     (binary package right now)
<dholbach> excellent :-)
<dholbach> any questions about it?
<dholbach> any more general questions?
<aualin> nope
<mario> yes
<subterrific> dholbach: well i figured out my DEBEMAIL problem
<dholbach> mario: fire away
<dholbach> subterrific: great
<highvoltage> dholbach: I have a question... we just packaged source code, right?
<emil_s> I have a hello_2.3-0ubuntu1_i386.build and hello_2.3-0ubuntu1_i386.changes to.
<mario> can i make out of any sources (tar.gz) a Binary (deb)?
<highvoltage> dholbach: but a source package doesn't necasarily contain just source?
<dholbach> highvoltage: we fixed a bug in an existing source package and updated an existing source package to a new version
<dholbach> emil_s: .build is a log and .changes is another meta-data file
<Jergar> I have a  hello_2.3-0ubuntu1_i386.deb
<subterrific> dholbach: for some reason nothing after the line: . /etc/bash_completion is executed, perhaps a hardy bug?
<dholbach> highvoltage: no, not at all - there .png files, etc
<emil_s> Ok, ten it's fine :)
<dholbach> Jergar: great - that means it built :)
<Jergar> dholbach: yes great
<dholbach> subterrific: oh? I certainly don't have that bug on hardy
<Hit3k_> how do we upgrade to the hardy alpha if we aren't already running it?
<dholbach> mario: yes, in some cases it will be harder, depending on how the upstream build system works
<Jergar> so I can download some ubuntu-packages  and try to fix some
<dholbach> mario: some use the  ./configure && make && sudo make install  mechanism, others don't have a build system at all and just ship a bunch of files, some python code might use   ./setup.py   etc
<dholbach> Hit3k_: I'm not sure the        gksu "update-manager -c -d"    will work now already
<highvoltage> dholbach: aaah, so a source package doesn't always necassarily automagically result in a binary package?
<dholbach> you can also look into using a chroot http://wiki.ubuntu.com/DebootstrapChroot
<dholbach> or use ubuntu on a spare partition or in a VM
<mario> dholbach: thank you
<dholbach> highvoltage: it depends on how you organise the debian/rules file (how the debian build process makes use of the upstream build process)
<dholbach> in most cases it's quite straight-forward - and if you work on existing packages you mostly won't have to bother about it
<highvoltage> dholbach: so it doesn't always?
<dholbach> highvoltage: sometimes it requires changes to the build system, but as I said: with the most upstream projects it works fine
<highvoltage> ah ok
<dholbach> I personally recommend working on existing packages to get a feeling of what you're working with
<dholbach> the bitesize bugs are a good start
<dholbach> there are also bugs tagged packaging
<mario> sorry, but what is a "upstream project"?
<dholbach> mario: good question :-)
<mario> ;)
<subterrific> dholbach: this is a clean install from the latest hardy alpha iso and upgraded as of last night. i'll look into it more and perhaps file a bug
<dholbach> GNOME or Mozilla are upstream projects
<dholbach> people who write source code and distribute source tarballs
<dholbach> we at the Ubuntu end grab those tarballs and integrate them into UBuntu
<dholbach> subterrific: excellent
<pak33m|work> dholbach: dholbach: highvoltage: we fixed a bug in an existing source package and updated an existing source package to a new version <------- did we really fix a bug or did we just learn how to perform a manual build assuming that we had fixed a bug ? i don't know if i missed where we fixed a bug.
<dholbach> pak33m|work: you're right... I broke the package myself for the purpose of this tutorial :)
<dholbach> ok... I'd like to invite all of you to Friday's MOTU Q&A session
<dholbach> it will be at the same place and at 13:00 UTC
<pak33m|work> dholbach: ah, that's right thank you
<highvoltage> pak33m|work: well, renaming a debian/install file to make it build is like fixing a bit, we're going more through the dances of how to do it than fixing real-life bugs, that's generally how tutorials go :)
<dholbach> http://wiki.ubuntu.com/MOTU has all the relevant dates on the top of the page
<Hit3k_> Do you have to be an ubuntu member to become a motu?
<hellboy195> dholbach: why always Friday 13.00 UTC? many are working or still at school at that time :(
<dholbach> Hit3k_: no... MOTU membership includes Ubuntu membership
<dholbach> Hit3k_: so you can go straight for MOTU
<dholbach> hellboy195: it fits my schedule quite well - I'm trying to find people in other timezones to repeat it at a different time
<dholbach> I'll announce it once I've succeeded finding somebody
<Jergar> dholbach: Thanks if my new Dell comes on friday i will come to the Q&A session
<doluu> dholbach: thanks
<dholbach> I'd like to point you to  http://wiki.ubuntu.com/MOTU/GettingStarted  again
<dholbach> the last point it about blogging
<doluu> me too, see ya at Q&A session
<highvoltage> dholbach: thanks, I learned things in this session, it feels great!
<dholbach> if you want to get started as a MOTU, it'd be great if you blog about your experience and let others know how it goes
<Mika1860> I missed the main part of the packaing session. however I' curious about it. is there a log or something?
<dholbach> also if you have ideas on how to make MOTU more fun let me know
<dholbach> http://irclogs.ubuntu.com/2008/01/15/%23ubuntu-classroom.txt
<Mika1860> thx
<hellboy195> dholbach: ubuntu/gnome t-shirts,mugs for free ^^
<pak33m|work> dholbach: thank you for the tutorial
<dholbach> hellboy195: drop me an email :)
<vorian> pfft gnome
<dholbach> thanks everybody for showing up - I had a GREAT time
<Hit3k_> thank you for the tutorial
<dholbach> and hope to see you as MOTUs soon!
<vorian> thanks dholbach
<hellboy195> vorian: gnome! WTF
<h3b> thanks
<mario> thanks
<Jergar> thanks
<badvista> thanks
<highvoltage> thanks
<Solty> thanks
<dantalizing> very nice
<warp10> thank you dholbach :)
<highvoltage> whohoo! nice ladder
<hellboy195> thanks
<hellboy195> cya guys
 * Hit3k_ goes to find bugs to fix
<mario> cya
<h3b> dholbach: just a question: i have tried to build hello-2.3 again and got an error:
<h3b> /usr/bin/make -i distclean
<h3b> make[1]: *** Keine Regel, um Â»distcleanÂ« zu erstellen.  Schluss.
<h3b> why no target to make distclean?
<subterrific> h3b: did you edit the Makefile by mistake?
<subterrific> h3b: make -i distclean works for me
<h3b> no.
<da1l6> doesn't work here either
<h3b> hmm... i'll try again. need a second
<dholbach> can you put the log into pastebin.ubuntu.com?
<h3b> dholbach: http://pastebin.ubuntu.com/3583/
<LucidFox> gah, too late
<h3b> :(
<h3b> hmm...
<subterrific> h3b: you need to change debian/changelog to have the correct version number
<h3b> dch -i
<h3b> ?
<h3b> right?
<subterrific> well if you already ran that, but didn't put the right version number you can just manually edit your last entry
<LucidFox> h3b> there are more serious problems than just that
<LucidFox> your changes contain binary files
<LucidFox> try running debian/rules clean
<h3b> subterrific: thanks, forgot to change the version to 2.3 ;-)
<subterrific> LucidFox: that was his only problem, it was just causing other problems
<h3b> now it works :-)
<LucidFox> Ah, yes, I see
<LucidFox> he was using the old orig.tar.gz
<subterrific> check this out http://pastebin.ubuntu.com/3585/
<LucidFox> In the future, when upgrading to a new upstream release, you can use "dch -v new.version-tag" instead of "dch -i"
<LucidFox> for example, "dch -v 2.3-0ubuntu1"
<h3b> ah, ok.
<h3b> thank you all.
<h3b> so, i leave. bye.
<guataka> exit
<nathandbb> Does anyone have a link to the MOTU session that was here an hour ago??
<civija> http://irclogs.ubuntu.com/2008/01/15/%23ubuntu-classroom.txt
<nathandbb> Thank you -- thinkpad crashed when I undocked it -- lost my log
<kdubois> was there a become-a-motu meeting here today?
<zhaozhou> kdubois, it was.
<ketzal> hi
<Surge> Where is it possible to find transcript from the training session earlier today?
<ToyKeeper> http://irclogs.ubuntu.com/2008/01/15/%23ubuntu-classroom.txt
<Surge> ToyKeeper: thanks a lot
<NetoX_> damm, i think i am late for the class xD
<NetoX_> ãã
#ubuntu-classroom 2008-01-16
<Palintheus> 24
<Palintheus> gah
<eradicus> what time will the motu school kick off?
<milestone> hi all
<milestone> i am trying to get my package to create an empty directory. I have entered it in debian/dirs. I gets created under debian/<packagename> But it is not copied to the package. Do I need to create an empty directory using a postinst script?
#ubuntu-classroom 2008-01-17
<mypapit> woof
<kdub> bark
<james_w> Hi, do you use a second channel when a session is running for people asking questions etc?
<db-keen> this channel is empty when sessions are not running
<Kirrus> james_w, sometimes, depending on the session
<james_w> Kirrus: is there one existing, or is it just set up when needed?
 * slangasek scribbles on the chalkboard
<mok0> slangasek: I brought an apple for you
<slangasek> please tell me you aren't talking about an airbook
<mok0> :-)
<sistpoty> hi everyone
<mok0> hi
<sistpoty> hehe, finished the text in the last minute :)
 * slangasek sits at attention
<mok0> Am I the only student?
<sistpoty> anyone else here for the library packaging session?
<james_w> I am
 * warp10 raises an hand :)
<mok0> Ah, more students than teachers...
 * db-keen lurks in a seat at the back of the room
<sistpoty> maybe we'll wait five more minutes before we start?
<warp10> okay for me
<sistpoty> or just start right away?
<slangasek> I think it would be more respectful of the time of those who are here to go ahead and start, and if there are latecomers we can recap for them at the end?
<slangasek> (or point them at a log and invite questions)
<mok0> Is there some text we need to look at?
<james_w> I agree.
<sistpoty> ok, that's fine, so let's get started :)
<sistpoty> so a big welcome to everyone for joining the motu school session about library packaging
<sistpoty> the session will be split in two parts:
<sistpoty> in the first part, we'll dive deeply into the background of shared objects, and how to find out information about theses
<sistpoty> -s
<sistpoty> and in the second part, we'll go through creating a library package by example
<sistpoty> so let's start with part 1
<sistpoty> First off, shared objects are useful for two different purposes
<sistpoty> 1) as a plugin mechanism in conjunction with dlopen
<sistpoty> 2) for dynamic libraries, to share code between different projects
<sistpoty> as this is about library packaging, we'll be only looking at 2) in this session
<sistpoty> First off, (ELF) shared objects are a collection of symbols in different sections together with some meta-information
<sistpoty> a symbol denotes a named entity in C (e.g. a function or a variable)
<sistpoty> the section will give us some detail about the symbol
<sistpoty> btw.: if you have questions, just ask ;)
<sistpoty> let's take a look at an example: http://www.potyra.de/library_packaging/example.c
<sistpoty> so please everyone download the file
<sistpoty> everyone got it?
<warp10> yep!
<mok0> +
<sistpoty> great, so let's compile the file:
<sistpoty> gcc -c example.c -o example.o
<sistpoty> so far, the .o is just a normal object, not a shared object yet... however we can do some stuff with it already
<sistpoty> now run
<sistpoty> nm example.o
<sistpoty> the output are the different symbols defined in example.c
<mok0> what are the letters U, T, t...
<sistpoty> for example in line 3, the variable "static_global" is results as symbol "0000000000000000 d static_global"
<sistpoty> mok0: will talk about that in a second ;)
<sistpoty> when you compare the output of nm, together with the variables of example.c, does anyone see anything odd?
<sistpoty> I'll give you a hint: look at the beginning of the function local_function
<sistpoty> now, anyone?
<warp10> why local_var isn't listed?
<sistpoty> warp10: excellent
<mok0> it's allocated on the call stack
<geser> why does static_local_var has a number in the nm output (here: static_local_var.2268)?
<sistpoty> excactly... some symbols in C (like local_var) don't need to be stored anywhere, because these are located in the stack
<sistpoty> ok, and some variables (like static_local_var) won't result in the same symbols as they are named. This is because the variable is not visible anywhere but in the function, and you can name a variable like this anywhere else
<slangasek> geser: that's a very good question whose answer I don't remember :)
<sistpoty> and you cannot have two symbols with the same name of course
<mok0> geser: could that number be the offset?
<sistpoty> any more questions or shall we go to the funny letters?
<mok0> ^^
<slangasek> mok0: it's not the offset
<warp10> What's the order with which symbols are listed by nm?
<sistpoty> warp10: good question: slangasek?
<slangasek> plain alphabetical
<siretart> slangasek: in order to avoid name clashes between different static local variables with the same name in different functions?
<sistpoty> mok0: I guess it's just a counted number gcc will assign, but I may err on this side
<mok0> sistpoty: my number is != gesers
<geser> mok0: it could be the line number after including all headers. after changeing the line with the previous one the number is now 2267
<slangasek> siretart: probably, yes
<sistpoty> mok0: he, ah
<mok0>  static_local_var.1781
<slangasek> siretart, geser: suffice to say, it goes away once you've linked the object into a shared library, so it ends up not being very relevant
<sistpoty> ok, then now let's take a look at the letters.
<sistpoty> First off, some are lower case and some are upper case.
<slangasek> geser: it isn't the line number; if I run the source through gcc -E, I get line 757
<geser> ok
<sistpoty> The lower case letters denominate local symbols. Noone except this very object file can see these kind of symbols
<mok0> lower case == local, Upper case == global
<sistpoty> whereas the upper case letters mean that the symbol is global, and other object files are global... exactly.
<sistpoty> the letter denote the type of the symbol:
<sistpoty> t -> text section (may be mapped readonly), executable
<sistpoty> d -> initialized data (statics, initialized globals)
<sistpoty> (as in variables)
<sistpoty> c -> uninitialized data (uninitialized global variables)
<sistpoty> r -> read only data (const variables), not necessarily read only though.
<slangasek> (btw, if you later don't remember what these letters map to, they're listed in man nm)
<sistpoty> and then there's an interesting one: u
<sistpoty> this means that the symbol is not defined in the object, but somewhere else
<sistpoty> (undefined)
<slangasek> to clarify, that means the object *refers* to the symbol but does not define it
<sistpoty> so "stderr" is listed there, as it comes somewhere from the c library, as well as fprintf
<sistpoty> ok, now let's make a shared object from this file:
<sistpoty> gcc -Wl,-z,defs -Wl,-soname,libexample.so.1 -fPIC -shared example.c -o libexample.so
<sistpoty> everyone got it?
<warp10> y
<mok0> +
<sistpoty> ok, now let's look again at it with nm
<warp10> wow...
<sistpoty> (you can ignore anything with an underscore, that's internal stuff)
<bddebian> nm is like objdump?
<slangasek> yes
<bddebian> ok
<slangasek> I might suggest at this point also running 'nm -D libexample.so', for comparison
<sistpoty> erm... sorry, we need to do another thing I forgot... let's first strip off the debugging symbols
<sistpoty> strip libexample.so
<slangasek> ... or that :)
<geser> nm: libexample.so: no symbols
<mok0> hehe
<mok0> that's easy :-)
<sistpoty> ok, to look at the dynamic symbols, you'll now want nm -D as slangasek suggested
<slangasek> right - since we strip binaries by default, 'nm foo.so' in the wild is going to give you empty output
<geser> the local symbols aren't listed anymore?
<sistpoty> what you'll see is that there are now (apart from some internals) only global symbols left. i.e. everything not defined as "static"
<sistpoty> exactly
<sistpoty> (side note: the static modifier in c means that the resulting symbol will be a local symbol)
<sistpoty> any questions so far? then let's try some other tools on the shared object
<mok0> sistpoty: well, global to the functions in that file
<sistpoty> mok0: yes, a local global *g*
<bddebian> hrh
<slangasek> geser: since they're local, they're by definition not accessible to other things linking to this code; so aside from debugging symbols, which we've used 'strip' to wipe out, there's no reason to take up space by keeping around names for these variables
<sistpoty> ok, now let's take a look at the meta-information:
<sistpoty> objdump -x libexample.so
<sistpoty> this will give lots of info. The most interesting stuff can be found with objdump -p libexample.so as well
<bddebian> Who uses anything more than |grep SONAME? ;-)
<sistpoty> one thing that's in there is the SONAME, we'll take a look at it later
 * slangasek raises his hand
<sistpoty> the other thing in there is the NEEDED entry (or entries)
<sistpoty> the SONAME denotes the ABI-Verison of the shared object...
<sistpoty> everything with the same SONAME can be considered to be compatible
<geser> if upstream doesn't make a mistake
<sistpoty> the NEEDED entries denote what libraries this shared object needs. These refer to the SONAME of other libraries
<bddebian> geser: Never happens ;)
<slangasek> everything with the same SONAME *will be* considered compatible by ld.so, so it darn well better *be* compatible :)
<sistpoty> geser: we'll just see what happens then ;)
<sistpoty> I guess everyone knows ldd, let's try that one
<sistpoty> ldd libexample.so
 * bddebian doesn't know anything
<nxvl_work> i'm late again :(
<sistpoty> ldd will resolve any shared libraries a binary or a shared object needs
<geser> is linux-vdso.so.1 provided by the kernel?
<sistpoty> so, what's the difference between the NEEDED entries and the output of ldd apart from the pathname?
<slangasek> geser: yes, linux-vdso is a bit of Magic
<warp10> ldd output shows three entries, not just one
<geser> ldd resolves them recursively
 * bddebian thinks geser is too smart for this class :)
<sistpoty> exactly what geser said :)
<geser> bddebian: :P
<sistpoty> so you should keep these in mind when dealing with shared objects, as you might want to look at the *direct* dependencies as well
<james_w> ldd resolves recursively?
<sistpoty> james_w: yes
<slangasek> yes; for a real world-example, have a look at ldd /usr/lib/libgnome-2.so.0, vs. objdump -p /usr/lib/libgnome-2.so.0 | grep NEEDED
<slangasek> so we've looked at the output of nm -D on this object, but nm -D has one weakness as a tool which is not at all obvious if you don't already know what's missing
<slangasek> have a look at the output of nm -D libexample.so again
<slangasek> now, compare it to the output of readelf -s libexample.so
<slangasek> who can spot the difference in the names?
<bddebian> The stuff from @@glibc?
<geser> you mean the versioned symbols?
<slangasek> yep - nm -D doesn't show symbol versions
<mok0> cool
<slangasek> so if you want to get at those, you'll want to use objdump -T or readelf -s
<geser> what does the "(2)" in "6: 0000000000000000   144 FUNC    GLOBAL DEFAULT  UND fprintf@GLIBC_2.2.5 (2)" mean?
<slangasek> symbol versions are sometimes important, so you'll want to keep these tools in mind -- sometimes, an app/lib will not know the symbol version it's supposed to use, and that indicates a bug!
<slangasek> geser: I'm not sure, sorry
<slangasek> I'd probably have to look at the readelf source to figure that out, the fields aren't all well-explained in the documentation
<mok0> we can write a dependency resolver from these tools
<slangasek> mok0: indeed, dpkg-shlibdeps uses these tools
<sistpoty> ok, any more questions so far?
<sistpoty> When writing a program, that uses a library, we want to make sure that the API of that library is stable.
<sistpoty> If we want to distribute this program, we also want a stable ABI.
<sistpoty> stable API means that my program compiles against the library and a newer version of it.
<sistpoty> stable ABI means that the symbols stay the same
<mok0> what if there are new symbols?
<sistpoty> mok0: of course... I just wanted to correct myself
<sistpoty> stable ABI means that there won't get any symbols removed, and their meaning is still the same
<james_w> sistpoty: if you have a stable API it means if you compiled against it you will be able to link against it?
<sistpoty> james_w: no, that would be stable ABI
<sistpoty> james_w: it means you can compile against it again
<geser> james_w: you can also link against an unstable API/ABI but you need to rebuild everytime the API/ABI changes
<sistpoty> (w.o. changing your code)
<james_w> sistpoty: sorry, that's what I meant.
<mok0> If you write code that corrects a bug, but the interface remains the same?
<sistpoty> mok0: then the ABI and API is stable
<sistpoty> (most likely)
<mok0> ... but I would still want that programs exclusively use the fixed version
<sistpoty> but let's first have some fun... as some newby upstream started to produce a library...
<geser> mok0: if I'm correct you can change the implementation as long as function name, arguments and return type stay the same
<sistpoty> mok0: you can do this (as upstream) only, if the library have some version string or date encoded
<mok0> ok
<sistpoty> mok0: or by advetising it on your homepage *g*
<mok0> you can bump the minor version number
<sistpoty> for the library: yes (I'll come to this part yet)
<chiptoxic> how do you tell if a library has a stable API or ABI is it just by watching the version numbers of that library?
<sistpoty> chiptoxic: I'd like to postpone this question, as I first want to show you an example
<chiptoxic> ok
<sistpoty> so please everyone get <http://www.potyra.de/library_packaging/libmyhello-1.0.1.tar.gz>
<sistpoty> if you've got it, extract it and compile it with
<sistpoty> make
<sistpoty> then install the result (as root) with
<sistpoty> make install
<sistpoty> (no worries, it will only copy files to the /usr/local/ namespace, and make uninstall removes it again)
<sistpoty> everyone got so far? (then me types the commands as well)
<mok0>  make PREFIX=. install
<mok0> does it locally
<sistpoty> then you might have trouble upgrading the library
<sistpoty> (or building an application against it, which we'll do as soon as everyone is finished)
 * warp10 is done
<sistpoty> ok, next step: of course we want s.th. that uses the library, so get <http://www.potyra.de/library_packaging/hello_prog-1.0.tar.gz>
<sistpoty> extract that somewhere else and also build the binary with "make"
<sistpoty> if you've done that, you should have a cool binary hello_prog, which will print hello. you can even tell it how often it should print hello with the first argument
<sistpoty> ./hello_prog 10
<sistpoty> everyone got so far yet?
<mok0> error while loading shared libraries: libmyhello.so.1: cannot open shared object file: No such file or directory
<frigaut> same here
<geser> mok0: sudo ldconfig
<warp10> and here too :)
<slangasek> heh, did any of the people having this problem install to /usr/local?
<mok0> geser: just doing what the teachers tell me .-)
<slangasek> or did you all install to a different prefix?
<sistpoty> hehe
<frigaut> works now after ldconfig
<sistpoty> of course I forgot to mention ldconfig
<chiptoxic> mine works and i just did what you said and ran ldconfig
<james_w> slangasek: /usr/local for me
<slangasek> ah, ok
<sistpoty> (still got it installed from testing *g*)
<mok0> Yay, it says hello to me 10 times
<kdub> you have to have /usr/local in your /etc/ld.so.conf of course
<geser> sistpoty: "eventually run ldconfig now."
<slangasek> kdub: in /etc/ld.so.conf.d/libc.conf actually... :)
<sistpoty> geser: hehe, what a nice upstream *g*
<geser> yep
<sistpoty> now if it prints hello for everyone, let's remove the *library* again with
<sistpoty> make uninstall (run as root)
<sistpoty> now try again to run the hello_prog.
<sistpoty> any results yet?
<geser> ./hello_prog: error while loading shared libraries: libmyhello.so.1: cannot open shared object file: No such file or directory
<mok0> boom
<sistpoty> great, so (I guess what you expected) it won't work w.o. the library
<sistpoty> now upstream has released a new version of the library... I guess you all want hot new stuff?
<sistpoty> then get it at http://www.potyra.de/library_packaging/libmyhello-1.0.2.tar.gz
<sistpoty> we'll be compiling it again:
<sistpoty> make
<sistpoty> and install it again (run as root)
<sistpoty> make install
<mok0> If you install the library again, it works once more :-)
<sistpoty> hehe
<warp10> I don't think so :)
<geser> ./hello_prog: symbol lookup error: ./hello_prog: undefined symbol: print_hello
<sistpoty> (oh, if you haven't removed installed the new library, you could also try ldd ./hello_prog)
<sistpoty> so what happened?
<sistpoty> now let's try to make use of the knowledge we gathered so far
<mok0> the application attempts to use the new library
<sistpoty> mok0: exactly
<sistpoty> let's take a look at the symbols of both shared objects (old library vs. new library)
<mok0> => ABI has changed
<sistpoty> excellent!
<sistpoty> in the old library, we had the function: T print_hello
<sistpoty> which upstream obviously renamed to just: T hello
<sistpoty> when you start the program, one of the first steps is that undefined symbols will get resolved
 * bddebian curses upstream
<sistpoty> hehe
<slangasek> yeah, I would think twice about packaging any libraries from this upstream ;)
<sistpoty> which is done recursively for each shared object that is used
 * sistpoty removes copyright notices *g*
<mok0> This is why it is wrong to use the program version number for library versions
<bddebian> heh
<mok0> which a lot of upstream programmers don't understand
<sistpoty> when the symbol lookup can't resolve one symbol.. well you just saw what happens.
<sistpoty> ok, what we've seen now is an incompatibility on symbol level.
<sistpoty> I hope with the tools you've learned so far, you can easily track those down
<sistpoty> -> any removed symbol in a shared library is a problem, *if* the SONAME stays the same
<mok0> so let's change it
<sistpoty> mok0: feel free to change it, I guess you can figure this in the Makefile
<mok0> I set major to 2
<albert23> Wouldn't this be an API change, since print_hello is not defined anymore in hello.h?
<albert23> I wouldn't expect this to compile anymore?
<sistpoty> albert23: exactly: this is an API change as well
<sistpoty> ok, but let's get back to the ABI...
<sistpoty> symbols however cannot represent the signature of functions (i.e. number of parameters, type of parameters)
<sistpoty> this is part of the ABI as well
<sistpoty> if we want to look if this changed, we'll need to dig a little bit deeper
<mok0> Now the program works again, because it finds the first version of the library
<mok0> (I changed MAJOR to 2)
<sistpoty> mok0: hehe, so you didn't unstall the old library?
<chiptoxic> im not a programmer but is there a way you could put an alias in the code say print_hello is really hello so you dont break the api? or would that just be messy
<mok0> sistpoty: I still have 1.0.1 but I removed 1.0.2
<mok0> The new one is 2.0.1
<sistpoty> chiptoxic: you could for example abuse the preprocessor: "define print_hello hello"
<mok0> My experiment shows you can have several versions of the library present
<sistpoty> er... #define print_hello hello
<chiptoxic> ah cool, thanks
<sistpoty> ok, back to the topic...
<sistpoty> you can look at the debug information with gdb, so let's run
<sistpoty> gdb libmyhello.so
<slangasek> mok0: exactly, and this is a key reason why we always use the full soname for the names of our library packages
<geser> mok0: and now try the same on windows :)
<sistpoty> inside gdb, you can look at the signatures of functions with
<sistpoty> info functions
<mok0> slangasek: you mean the major soname ?
<slangasek> mok0: the "soname" is the value returned by objdump -p $lib | grep SONAME
<mok0> slangasek: ok
<slangasek> and set (hopefully) using the -Wl,-soname option at build time
<sistpoty> mok0: the Makefile just puts $(MAJOR) and a name in the soname, but the real soname is in SONAME
<slangasek> lintian knows the standard way to map sonames to package names, and warns you if your package is named differently.  but of course, we have to take care that upstream is handling their ABI right in the first place!
<sistpoty> inside gdb, you can also display the types of variables with
<sistpoty> info variables
<sistpoty> (which is uninteresting for libmyhello.so though, since it doesn't define a global variable by itself)
<sistpoty> everyone looked at the output of "info functions"?
<mok0> just one: hello(void)
<sistpoty> you should see s.th. like "void hello(void);" or "void print_hello(void);" there (depending which version you chose)
<sistpoty> yes, so upstream is lazy as well *g*
 * bddebian files upstream bug
<sistpoty> now let's strip the shared object (which wasn't done during the build process):
<sistpoty> strip libmyhello.so
<sistpoty> (outside gdb again)
<sistpoty> and then call gdb libmyhello.so again and look at the functions again
<mok0> :-(
<sistpoty> as you can see, these are all gone.
<geser> mok0: install the -dbgsym package of it :)
<mok0> heh
<sistpoty> that's because these were part of the debug symbols, which have been stripped away
<sistpoty> ok, so if we want to find out about the ABI-part of the signatures, it's a little bit tougher, but still doable
<sistpoty> if a signature is changed (number of arguments and type of a function), it can lead to different results. Most probably it will segfault, since the library and the application no longer agree on what data they exchange)
<sistpoty> an exception to this rule is C++
<sistpoty> in C++ the signature is encoded in the name of a symbol
<sistpoty> so if you change an argument, add an argument or remove one, you get a different symbol name
<sistpoty> (side note: you can use nm -C to demangle these names back to a human readable signature)
<slangasek> or c++filt
<sistpoty> any questions so far?
<sistpoty> chiptoxic: did that answer your question from some time ago?
<slangasek> other side note, checking for ABI changes of this kind by hand is hard and tedious; there is a tool in universe that tries to automate this checking, called icheck
<chiptoxic> yea, thanks
<mok0> slangasek: icheck, what package?
<sistpoty> slangasek: ah, nice :)
<sistpoty> mok0: icheck
<slangasek> if you're maintaining a library and want to be careful because your upstream isn't, icheck will let you generate a "manifest" from the old and new -dev packages, and compare them to see if the signatures have changed
 * chiptoxic cant believe how much im learning :)
<james_w> slangasek: how does that compare to check-symbols from the ubuntu-dev-tools package?
 * mok0 install icheck
<slangasek> james_w: icheck examines headers, not symbols
<slangasek> james_w: so it's specifically for the case where you're trying to detect the kinds of ABI changes that /don't/ show up in the symbol table
 * bddebian can't keep up being at work :'-(
<slangasek> (doh, check-symbols uses nm -D?  Baaad, what did we learn was the weakness of nm -D? :-)
<sistpoty> slangasek: since you mentioned ABI changes not showing up in the symbol table, want to say a few words to these?
<slangasek> probably, let me see where I put those words
<slangasek> right - does everyone here understand why changing the arguments or return type of a function is an ABI change?
<mok0> yes
<slangasek> (if everyone knows, there's no sense in me spending time explaining it - but if you don't know, please speak up :)
<warp10> y
<mok0> Well renaming a global variable would show up
<slangasek> two people know who care, everyone else is asleep or doesn't want to talk to me ;)
<slangasek> sistpoty: back to you
<slangasek> :)
<mok0> I just tried icheck on the 2 library versions,
<mok0> but I couldn't get it to work
<sistpoty> ok
<mok0> ... "Failed to parse libmyhello.so
<sistpoty> mok0: haven't used it myself yet
<mok0> sistpoty: :-)
<sistpoty> what we should have learned so far is that if the ABI breaks, you'll need to bump the SONAME
<slangasek> mok0: you point it at the headers, not at the library
<mok0> Ah!
<sistpoty> however there is yet another case, we didn't consider
<slangasek> that's the whole point - the library doesn't have the info you need about the function sigs :)
<sistpoty> upstream might put additional functionality in the library
<sistpoty> and keep the ABI downwards compatible
<sistpoty> in that case, the SONAME would (and should) stay the same, because no program ceases to work with the newer library
<sistpoty> however this has one caveat: people who use this library might make use of the new features
<mok0> ... but new programs that use the new functionality?
<sistpoty> right, so these programs wouldn't work with the old library but only with the new one (even though the SONAME is the same)
<sistpoty> for this, there the SONAME is not sufficient alone.
<sistpoty> slangasek: told me that historically the minor version was incremented for this
<sistpoty> -:
 * mok0 also read that
<sistpoty> but that won't work if you copy binaries from one system to another (as you don't know about the libraries there)
<sistpoty> ok, this pretty much was part 1 -- shared objects
<sistpoty> any questions so far?
<mok0> Well, what is the answer to the last problem?
<sistpoty> mok0: we'll see that in part 2 :)
<mok0> Arrghh
<warp10> :)
<mok0> It stops at the most exiting part
<mok0> typical of these mini-series :-)
<sistpoty> hehe
<warp10> :D
<sistpoty> actually I wanted to continue with part 2 now, unless there are questions of course
<sistpoty> anyone?
 * warp10 has no questions 
<sistpoty> ok, now for part 2 the plan was to let you package libmyhello on a walkthrough basis
<sistpoty> however the session went much longer than I expected
<mok0> 2 hours
<sistpoty> would you prefer the walkthrough or shall we just look at (one possible) result?
<mok0> I'm ok with the latter
<james_w> sistpoty: would you like to move that part to another session?
<warp10> any choice is fine for me
 * albert23 would like the walkthrough
<sistpoty> that would be an option as well
<sistpoty> what does everyone else think?
<james_w> sistpoty: I think a walkthrough would be really valuable, but I'm sure you are tired.
<warp10> maybe moving to another session could give the opportunity to go in deeper details than going on now.
<sistpoty> james_w: heh, a little bit, but tomorrow is friday so I don't mind going to work tired *that* much *g*
<mok0> +1
<sistpoty> ok, then let's move this to another session... maybe tomorrow?
<mok0> Works for me
<sistpoty> warp10: what about you?
<albert23> that's fine for me
<slangasek> mok0: btw, a follow-up comment regarding icheck: there are ways that the necessary information can be retained in the library in the form of debugging symbols, but in the common case we've already discarded these symbols from the old version of the lib at build time, long before we ever want to start running icheck
<warp10> tomorrow... what time?
<sistpoty> I'd say same time, 20.00 UTC?
<warp10> should be fine. +1
<albert23> perfect
<mok0> slangasek: I didn't assume icheck had a parser for C code, parsing the symbol tables seems simpler, but if the info ain't there....
<sistpoty> james_w: alright for you as well?
<james_w> sistpoty: that's fine with me.
<mok0> slangasek: but it did discover the API/ABI change
<sistpoty> ok, then let's meet here again tomorrow at 20.00 UTC
<warp10> cool :)
<chiptoxic> cool ill be back tomorrow this was great think ill go read some of the past classrooms listed at https://wiki.ubuntu.com/ClassroomTranscripts
<albert23> great, thanks sistpoty!
<sistpoty> you're welcome albert23
<mok0> great class, thanks!
 * warp10 has learned a *lot* of things tonight
<james_w> sistpoty, slangasek: thanks a lot.
<geser> thanks sistpoty and slangasek
<sistpoty> thanks for coming :)
<bddebian> Yeah, w00t sistpoty and slangasek
<bddebian> And geser the teachers pet.. ;-P
<sistpoty> hehe
<mok0> We shall spread the knowledge
<slangasek> cheers, all :)
<sistpoty> <- out for a smoke now, finally *g*
 * slangasek having lunch, finally ;)
<sistpoty> ok, gn8 everyone
#ubuntu-classroom 2008-01-18
<dholbach> MOTU Q&A session in 8 minutes
<Hobbsee> dholbach: can i have a pony?
<dholbach> that depends.... ;-)
<Hobbsee> on?
<dholbach> :-)
 * dholbach right now needs to find out what we covered last time
<rzr> dholbach: what to not do i think
<rzr> $ ./hello *
<dholbach> yeah, I have a list of the other items on my box, but don't recall which bits we covered and which we didn't
<dholbach> ah found it... great
<dholbach> Welcome to another MOTU Q&A Session!
<dholbach> Who's here for some MOTU Q&A action?
 * warp10 raises his hand
 * rzr _o/
<dholbach> Let's start with another round of introductions.... :-)
 * dholbach is Daniel Holbach, member of the MOTU team and tries to make the MOTU journey as pleasant and straight-forward as possible :)
<mruiz> _0/
 * Hobbsee is the looney one
 * warp10 is Andrea Colangelo, MOTU helpful, getting a lot of fun :)
 * slytherin is a motu hopeful with special interest in java related packages
<dholbach> rock on warp10, slytherin! :-)
 * rzr recently joined MOTU an maintains some packages also debian side ...
<dholbach> great
<rzr> slytherin: java , we need to do a Q&A session about this i fell
<dholbach> do we have some questions already?
 * warp10 has a question
<dholbach> warp10: fire away
<rzr> slangasek:  someday at least
<warp10> I would like to request syncs for some packages in contrib and non-free. Since they are not in Ubuntu yet, what's the best way to find out if such packages can land in universe or need to stay in mutilverse?
 * Hobbsee wants to become a MOTU
<dholbach> warp10: sometimes the changelog or copyright of the debian package already points out why it was moved to non-free or contrib in the first place
<dholbach> the archive admins will check the package carefully, when it is in non-free/contrib in Debian
<dholbach> if all fails, you need to check the license texts in the package yourself
<dholbach> (and the headers of source files, etc)
<dholbach> any other questions?
<warp10> dholbach: Ok, great. And for the procedural side, it is enough to report a bug (maybe using requestsync) or is there any special procedure?
<dholbach> warp10: no, that's exactly the process
<warp10> Cool. Thank you :)
<dholbach> it helps to point out explicitly what you know about the package, when you file the bug, but that's all there is about it
<dholbach> ok... if we don't have questions right now I'm sure we'll have some later on :)
<rzr> as suggested can we fix a java Q&A session date , since icedtea is on good way ..
<rzr> I can help about gcj too
<dholbach> some of you might know, last session we answered the question "how do we make the most awful package ever?"
<dholbach> we still have some proposals on the list we didn't talk about last time
<dholbach> if nobody has other questions, I think we'll just chat a bit about the other items on the list
<Hobbsee> dholbach: we use yada
<Hobbsee> !
<Hobbsee> oh, no...no, no....
<dholbach> Hobbsee: yeah, that was one of the proposals
 * Hobbsee has one better than that
<Hobbsee> where's steve?
<dholbach> in bed? :)
<dholbach> <Amaranth> interactive builds
<dholbach> <Amaranth> an interactive build took out the buildds recently, didn't it?
<Hobbsee> no, he's still awake
<Hobbsee> yeah, it did
<dholbach> what amaranth proposed is quite effective for a bad package :-)
<TuxCrafter> hello all I will join this session
<dholbach> welcome TuxCrafter
<TuxCrafter> were is the agenda?
<dholbach> TuxCrafter: if you have any questions, be sure to just ask them - right now we're discussing how to really produce packages
<Hobbsee> dholbach: try a debian/rules file building the .deb by hand.
<dholbach> (and clarify how best not to do that)
<dholbach> Hobbsee: we had that too
<rzr> TuxCrafter: see topic
<dholbach> hang on
<Hobbsee> oh, you saw that?
<Hobbsee> pity
<dholbach> http://daniel.holba.ch/temp/qa-negative
<dholbach> that's the answers we got last time
<dholbach> we're at this one right now:
<dholbach> <Amaranth> interactive builds
<dholbach> <Amaranth> an interactive build took out the buildds recently, didn't it?
<Hobbsee> dholbach: you also got the packages that require sun java to build, which require a licence agreement, or programs that attempt to download from the internet?
 * slytherin has a suggestion
<dholbach> Hobbsee raises a good point
<dholbach> if you install sun-java* it will ask you to accept a license agreement
<dholbach> on a build daemon this manual interaction is impossible
<dholbach> slytherin: fire away
<rzr> dholbach: it is there are some hack to
<slytherin> dholbach: you finish first. I have suggestion regarding java packages
<rzr> dholbach: let me find this out ...
<Hobbsee> rzr: the buildd admins have to do it manually
<Hobbsee> dholbach: you haven't mentioned the hardcoded dependancies either
<dholbach> Hobbsee: on things like         libsomething12   ?
<Hobbsee> dholbach: as in, lack of understanding about shlibdeps, and so hardcoding all the packages it needs to depend on in Depends:
<Hobbsee> including libraries like that, yes
<dholbach> yeah good point - I've seen that a couple of times
 * Hobbsee has seen that more than a couple
<dholbach> does everybody understand what Hobbsee is referring to?
<TuxCrafter> *** got a question for Q&A: If i look at the fedora process they have a very nice structured system with cody, will there come a similar system for ubuntu?
<Hobbsee> TuxCrafter: what's cody?
<Hobbsee> TuxCrafter: got a URL or something?
<dholbach> TuxCrafter: I'm afraid I don't know anything about cody - can you elaborate?
<TuxCrafter> Hobbsee: my firefox is down i have to restart internet for it so i can find the info brb
<slytherin> TuxCrafter: please raise your hand first before asking question so that you don't interupt the current discussion. :-)
<dholbach> slytherin: you wanted to raise another point?
<slytherin> dholbach: Can you please explain what Hobbsee was saying
<dholbach> ok
<dholbach> most packages (for example those written in C or C++) have something similar to this in their depends line:
<rzr> Hobbsee: I noted how to workaround the "ask licence" blocker : http://rzr.online.fr/q/pbuilder
<dholbach> Depends ${shlibs:Depends}, some-other-package
<dholbach> Depends: ${shlibs:Depends}, some-other-package
<dholbach> the package build system will check which libraries the binaries are actually linked against, and then substitute ${shlibs:Depends} automatically
<dholbach> so it's wrong to have a fixed Depends: libsomething12
<dholbach> this is important for example in cases of library transitions (libsomething12 -> libsomething13)
<dholbach> if you use ${shlibs:Depends} a simple rebuild will probably suffice
<dholbach> slytherin: does that make more sense now?
<slytherin> dholbach: Yes it does. Thanks.
<dholbach> ok great
<dholbach> I hope the "interactive" item was clear too
<TuxCrafter> *** has a question
<dholbach> TuxCrafter: fire away
<TuxCrafter> *** my dns is down and cant connect to web-pages on this moment and is sorry for this
 * Hobbsee didn't find any object named "cody" when searching for fedora and cody, where cody was not a person.
<dholbach> Hobbsee: same here
<TuxCrafter> I have compared some debian packages with ubuntu and some of the ubuntu packages have far more dependecies than the ones in ubuntu, what can we do about this?
<Hobbsee> dholbach: you forgot packages requring scons.
<TuxCrafter> what procedures to follow
<Hobbsee> TuxCrafter: reread, and correct your statement :)
<dholbach> Hobbsee: that's not necessarily a problem
<Hobbsee> dholbach: if it is written well, sure
<Hobbsee> dholbach: still, i guess there's not that much you can do if upstream decides to use it
<TuxCrafter> s/ones in ubuntu/ones in debian/
<dholbach> TuxCrafter: do you have examples?
<TuxCrafter> dholbach: i believe last time I checked it was pidgin
<dholbach> I noticed for example GNOME packages that use different linker options nowadays which should resolve that
<dholbach> I think it was wl,as-needed that they used for that
<dholbach> but I can't really comment on that, I'm no expert there
<Hobbsee> TuxCrafter: debian's pidgin and ubuntu's pidgin don't tend to overlap
<dholbach> I think the summary was "it should be all good now" :-)
<Hobbsee> or didn't, last i checked
<slytherin> dholbach: Now the suggestion I have to make is ; We should make some policy that when new java apps/libs are being added in Ubuntu (not present in Debian), we should prefer GCJ as compiler (java-gcj-compat-dev)
<dholbach> I'm looking at packages.debian.org and launchpad.net right now
<dholbach> slytherin: that's something the Debian / Ubuntu Java Team should decide - I can't really comment on the fitness of any compiler
<slytherin> Ok.
<TuxCrafter> but the problem behind it was that there were some people thing of creating a distribution spin of ubuntu or debian for the eeepc, and choice for debian because the dependecy were better and there for the total install size was much smaller for the same functionality. To bad i cant give exact examples because of my current dns problem.
<dholbach> TuxCrafter: to me it seems like there's only liblaunchpad-integration0 which is in addition to the debian depends
<TuxCrafter> s/thing/thinking/
<rzr> talking about that, when a java app can be built as native code, should it be ? what is the policy ?
<dholbach> rzr: we absolutely prefer that
<dholbach> there are packages in multiverse that ship pre-built .jar files, but we try to avoid it
<rzr> I plan to do this on my packages, provide a -native and -java packages from the same source
<TuxCrafter> *** is going to reset its modem to see if the dns problem resolves
<dholbach> TuxCrafter: I can't comment on that - it'd be nice to see the results of an investigation - at the moment I see no points indicating that
<dholbach> TuxCrafter: good luck
<rzr> TuxCrafter: using other dns server may help
<dholbach> TuxCrafter: does adding        "nameserver 141.1.1.1"     to /etc/resolv.conf help or is it more complicated than that?
<slytherin> rzr: native may not be prefered. But I am not sure if there is any policy for/against that
<Kmos> TuxCrafter: opendns.com
<dholbach> Kmos: might be a bit hard to look it up without working DNS :)
<rzr> slangasek: what are the reason to prefer jvm to native for applications ?
<Kmos> dholbach: right...
<slytherin> rzr: will they run with all the VMs?
<slytherin> rzr: oops, please excuse me if I don't understand the concept of native code
<rzr> TuxCrafter: btw :  nslookup opendns.com = 208.67.219.99
<Kmos> 208.67.222.222 ; 208.67.220.220 -> opendns
<TuxCrafte1> *** everything working again
<dholbach> great
<dholbach> ok... any other questions?
<dholbach> (moving on while we have no real Java expert around)
<dholbach> (doko in #ubuntu-devel and man-di are the most knowledgeable people I know)
<slytherin> dholbach: I plan to become one before hardy. :-)
<dholbach> slytherin: excellent - that's highly appreciated :)
<rzr> slytherin: i think it's a bit out topic, we'll talk about it the java q+a day :)
<dholbach> ok... anything else? if not we'll continue with our "how to make a BAD package" discussion :)
<slytherin> rzr: sure if we have one
<dholbach> <rulus> missing .desktop file for a graphical application
<dholbach> https://wiki.ubuntu.com/PackagingGuide/SupplementaryFiles has a lot of information on the topic of .desktop files
<dholbach> it's generally a good idea to add them (preferrably in upstream land)
<dholbach> <txwikinger2> icons in wrong places
<dholbach> is a similar point
<dholbach> <dholbach> missing files in the package
<dholbach> is a really interesting one
<dholbach> if you have a source package that is split up in several binary packages this mistake is very easy to make
<rzr> talking about icons, can we just automatize missing icons from screenshots of apps ?
<TuxCrafte1> *** got a other question
<dholbach> rzr: it's a lot of work :)
<dholbach> TuxCrafte1: fire away
<rzr> dholbach: for a human , not a script shell , I'll note this down :)
<TuxCrafte1> were is the defined behaviour for the remove  --purge options on packages, because some times they remove for example an init script and sometimes they dont. what are the rules for this and were can you find them and who is makeing them
<dholbach> as far as I know conf files are not to be removed, just if you purge the package
<dholbach> debian/conffiles is the file where they are registered
<dholbach> coming back to the "missing files in a package" item
<dholbach> one of the easiest ways to avoid this is running
<dholbach> debuild -us -uc && dh_install --list-missing
<dholbach> which will (of the built source tree) make a list of files that the upstream build system wants to install, but are not installed into one of the binary packages
<warp10> Cool...
<dholbach> also it's annoying if the upstream tarball ships example code or documentation, which never makes it into /usr/share/doc/<package>
<dholbach> users should not have to download the upstream source to do that :)
<dholbach> if necessary you can split out documentation into a separate -doc package
<dholbach> <dholbach> software without active upstream
<dholbach> <amarillion> dholbach, but what if the software is finished?
<dholbach> * persia likes software without active upstream, if it is stable and well written.
<dholbach> <rulus> (software is never finished?)
<dholbach> we often receive packages of new software where the last updates were made in 2004
<dholbach> if you plan to maintain such a package, think twice if you really want to take care of bugs of this package, if there's nobody you can escalate problems to
<dholbach> a good relationship to the upstream maintainer (and maintainers of other distros) is really important
<dholbach> the next point on the list is somewhat similar:
<dholbach> <dholbach> inactive maintainer, no bug triage
<dholbach> if you plan to maintain a package, make sure that you plan to read bug reports of your users :-)
<dholbach> you don't need to fix them all yourself, but you somehow need to take care of them
<dholbach> any questions?
<TuxCrafte1> maybe indicate that a package has  no active maintainer
<TuxCrafte1> both on the ubuntu side as upstream
<dholbach> TuxCrafte1: can you elaborate?
<TuxCrafte1> as part of the Q&A
<dholbach> I'm afraid I don't understand
<TuxCrafte1> dholbach: it can happen that people sent in bug reports and nothing happends to them, it would be nice for people the be able to see in lets say launcepad that the package has no active maintainers
<TuxCrafte1> this way you give some information about the quality/state of the used package
<dholbach> right, but I think no user should have to worry about that, that's why it's important to bear that in mind when you start packaging new software
<dholbach> a lot of packages have maintenance teams and not a dedicated maintainer
<TuxCrafte1> true
<dholbach> any other questions?
<dholbach> the session ended there last time, but persia had some items he encountered during reviews of packages
<dholbach> Changelog in debian/docs
<dholbach> debian/docs is the file where you specify which files of the source should go into /usr/share/doc/<...>
<effie_jayx> dholbach, how can one help with watchfiles?
<dholbach> the Changelog is different and should be installed by using dh_installchangelogs
<dholbach> effie_jayx: are you referring to http://qa.ubuntuwire.com/uehs/no_watch.php ?
<effie_jayx> dholbach,  yes... where could I find usefull info on watchfiles and how can I help?
<dholbach> ah right
<dholbach> https://wiki.ubuntu.com/PackagingGuide/Recipes/DebianWatch is a good tutorial on writing watch files
<dholbach> the manpage of uscan(1) has more information too
<dholbach> does everybody know what a watch file is?
<effie_jayx> dholbach, trying to learn about them
<dholbach> debian/watch specifies where to get new upstream releases of the software you're packaging
<effie_jayx> uscan can be found in what package?
<dholbach> effie_jayx: devscripts
<dholbach> this is important as with uscan you can "automatically update a package" it does not fix all issues with it, but it simplifies the task a lot
<dholbach> also it's easy for others to see if your package it up to date
<dholbach> we could even automate the process and have a list of packages in the archive that are not up to date
<dholbach> ok... persia had another item on the list:;
<dholbach>  - Patching upstream makefile to install extra stuff
<dholbach> where he notes: Use dh_install instead
<dholbach> does that make sense?
 * rzr hides :)
<dholbach> ok... any questions?
<TuxCrafte1> dholbach: isn't it better to let upstream include the extra stuff
<dholbach> TuxCrafte1: sure, sometimes that works
<dholbach> in some cases the upstream maintainer and you might disagree
<dholbach> or you have user contributions like a new icons, etc
<dholbach> but in general you're right: the more work that goes upstream, the better
<TuxCrafte1> dholbach: is't it better then to create two packages one that is mainstream and one with ubuntu enhancements
<dholbach> if you add a   package-extras   package that just contains the additions that's probably fine
<dholbach> if you re-package everything the archive admins might be a bit unhappy :)
<dholbach> for reasons like: having to apply security fixes to two packages instead of one, disk space, etc etc :)
<TuxCrafte1> yea but in the spirit of bug tracking it is a lot better
<dholbach> let's just say that "getting the stuff upstream" is the best solution :)
<TuxCrafte1> *** got a question about motu/packaging training
<dholbach> TuxCrafte1: fire away
<TuxCrafte1> are there video tutorials for moto packaging, because there is o much info about this topic that when you start reading you dont now how much time it takes before you can build a good package
<dholbach> http://wiki.ubuntu.com/PackagingGuide
<TuxCrafte1> and I want to start packaging but the guide is so big
<dholbach> has a couple of "recipes" that are tutorials
<dholbach> which should be easy to follow
<dholbach> I don't know of any videos yet
<dholbach> ok... we're at the end of our session
<TuxCrafte1> dholbach: i see the guide is starting to get organized, nice to see this
<dholbach> I hope to see you all next week again
<dholbach> TuxCrafte1: thanks for the flowers - I put a lot of work into it :)
<TuxCrafte1> thanks for all the info
<rzr> see ya thx dholbach it's always apreciated
<dholbach> thanks a lot for attending
<dholbach> see you all in #ubuntu-motu :-)
<TuxCrafte1> bye and thanks daniel
<warp10> Thank you dholbach! :)
<dholbach> http://wiki.ubuntu.com/MOTU/GettingStarted (if you haven't read it yet)
<rzr> dholbach: what do you think about joining the java team and make a special q&a on this topic ?
<dholbach> rzr: I'm afraid I'm not the right person to join the team
<dholbach> rzr: but I'll try to organise a session on the topic
<dholbach> I'll keep you updated
 * dholbach is out to walk the dog - see you guys around! :)
<rzr> nice
<rzr> later
<sistpoty> hi everyone, sorry for being late
<warp10> hi sistpoty
<sistpoty> hi warp10
<sistpoty> so who's around for part 2 of the library packaging session?
<albert23> hello sistpoty
<sistpoty> hi albert23
<sistpoty> first off, there is an excellent guide about debian library packaging. We'll use this one as a reference for this session:
<sistpoty> http://www.netfort.gr.jp/~dancer/column/libpkg-guide/libpkg-guide.html
<nixternal> thanks sistpoty for the wakeup call :)
<sistpoty> hi nixternal :)
<nixternal> well howdy
<sistpoty> ok, in part 1, we hopefully learned all the basic stuff about shared objects.
<ScottK> You wouldn't have a link to the log for that would you?
<nixternal> I was just gonna ask, I have a lib I gotta package up :)
<albert23> http://irclogs.ubuntu.com/2008/01/17/%23ubuntu-classroom.html
<sistpoty> ScottK: sorry.. no idea if this is publically logged somewhere
<sistpoty> thanks albert23
<ScottK> albert23: Thanks
<sistpoty> now in part 2, we'll be packaging a library by example, and will discuss a few of the caveats
<sistpoty> since I'm lazy, let's take libmyhello again from part 1
<sistpoty> http://www.potyra.de/library_packaging/libmyhello-1.0.1.tar.gz
<sistpoty> everyone got it?
<warp10> y
<hellboy195> y
<albert23> yep
<sistpoty> ok, let's start with debianization... unpack it, rename the tarball so that we've got a valid .orig.tar.gz
<sistpoty> let's take a look, we'll always need a few files in there, let's start with debian/copyright
<sistpoty> put in the usual stuff there (this is not really important for the technical bits of library packaging)
<sistpoty> what else do we need... I guess we'll be using debhelper, so let's create a compat in debian/
<sistpoty> everyone got it so far?
<hellboy195> y
<warp10> y
<albert23> y
<sistpoty> ok, now let's start with the interesting bits
<sistpoty> the control-file
<sistpoty> First off comes the usual stuff (I'll pastebin this)
<sistpoty> hm... pastebin is kinda slow today :(
<sistpoty> ok, I'll paste it right here... pastebin doesn't like me *g*
<sistpoty> Source: libmyhello
<sistpoty> Section: libdevel
<sistpoty> Priority: optional
<sistpoty> Maintainer: Your Name <youraddress@bla.org>
<sistpoty> Build-Depends: debhelper (>> 5.0.0)
<sistpoty> Standards-Version: 3.7.2.0
<sistpoty> for a library, we'll always end up with two packages
<sistpoty> two binary packages even
<sistpoty> one package contains the shared object(s)
<sistpoty> and another one, the -dev package will contain everything you need to develop applications with the shared object
<sistpoty> i.e. header-files, eventually a statically linked library, eventually pkconfig files (which specify what to pass to the compiler/linker to link against this library)
<sistpoty> so let's create an entry for the -dev package
<sistpoty> Package: libmyhello-dev
<sistpoty> Architecture: any
<sistpoty> Description: myhello library headers
<sistpoty>  This package contains the development headers
<sistpoty>  for libmyhello.
 * ScottK notes sistpoty needs to update to the current standards version...
<sistpoty> ScottK: hehe, I'm not up to date
<sistpoty> the package containing the shared object will need to be named in a special way:
<sistpoty> it must be related to the soname.
<sistpoty> the library packaging guide I mentioned contains the rules how it should be named
<sistpoty> chapter 5, section 3
<sistpoty> remember the soname of libmyhello yet?
<sistpoty> anyone?
<warp10> mmm... libmyhello.so.1, maybe?
<sistpoty> warp10: exactly
<sistpoty> if you wouldn't have remembered, you could of course always use objdump -p <shared object> to find out
<sistpoty> so in this case, the name of the library would be libmyhello1
<sistpoty> if you've got a library, that contains more than one shared object
<sistpoty> you'll need to create a binary package for each of these
<sistpoty> let's add an entry for the binary package
<sistpoty> Package: libmyhello1
<sistpoty> Architecture: any
<sistpoty> Depends: ${shlibs:Depends}
<sistpoty> Description: myhello library
<sistpoty>  This package contains the hello library.
<sistpoty> ok. anyone got a clue, why the name of this binary must be related to the SONAME?
<sistpoty> this binary package...
<sistpoty> anoyne`
<sistpoty> +?
<albert23> we want to be able to install multiple versions of the library, when ABI changes
<sistpoty> albert23: excellent
<sistpoty> so does anyone have an idea why this could be needed?
<warp10> sistpoty: maybe different packages may need different versions of the library?
<sistpoty> warp10: this would be one argument, but not the main one.
<sistpoty> let's just consider that a very essential library (maybe libc) will get updated
<sistpoty> currently, I've got libc6 installed, and I guess almost all packages I've got installed will depend on libc6
<sistpoty> suddenly, a new libc7 appears
<sistpoty> if it couldn't be installed side-by-side to libc6, that would mean that I had to remove *all* installed programs
<sistpoty> or that all programs would immediately break if libc6 were removed by force
<sistpoty> that's pretty bad, hm?
<sistpoty> (I tried this once when I didn't have a clue... wasn't so funny back then *g*)
<warp10> :)
<sistpoty> any questions so far?
<warp10> I have one
<warp10> Why the -dev package doesn't need any Depends: field?
<sistpoty> warp10: excellent question... it needs one :)
<sistpoty> so, as I wrote earlier, the -dev package is what you install if you want to build programs using this library
<sistpoty> so we need to make it depend at least on the library package
<sistpoty> let's add the depends line there
<sistpoty> the header files in question should always match what's in the shared object
<sistpoty> hence we'll need to restrict the version for this dependency
<sistpoty> Depends: libmyhello1 (= ${binary:Version})
<sistpoty> however often you'll need additional libraries to compile a program with a specific library
<sistpoty> so you'll need to add the corresponding -dev packages there as well.
<sistpoty> a good indication should give you the NEEDED entries of the shared object
<sistpoty> so you'll just need to find the corresponding -dev package that contains these shared objects
<sistpoty> so, what do we need here?
<albert23> NEEDED      libc.so.6
<sistpoty> great.
<sistpoty> so let's find out in which package this is (we'll see a better method later)
<sistpoty> just use dpkg -S libc.so.6
<sistpoty> hooray, it's libc6 :)... so we'll want libc6-dev
<sistpoty> (libc6-dev is often ommitted, since build-essential already depends on it. however it's not wrong to add it)
<sistpoty> as you might have noticed, in the case of libc6, the -dev package is not named like the source package
<sistpoty> but instead it is named like the binary package + -dev
<sistpoty> this is useful, if you want to have more than just one version of the library in the archive
<sistpoty> (e.g. because one application needs the old one, and won't build with the new version)
<sistpoty> then you'll need to be able to select which -dev package you want
<ScottK> There's a very recent thread on adding libc6 on debian-devel that came down pretty strongly in favor of adding it.
<sistpoty> if you do this, you should have the -dev package(s) of the different versoin Provide and Conflict to libmyhello-dev package
<sistpoty> ScottK: ah, haven't read that one yet
<sistpoty> (or maybe I have but forgot *g*)
<sistpoty> ok, does everyone have the control file so far?
<albert23> y
<warp10> y
<sistpoty> hehe, mine is still missing the depends line *g*
<sistpoty> ok
<sistpoty> what else do we need... a changelog file. just create one with dch
<sistpoty> dch --create
<sistpoty> (needed to look this up, thought it always was -c)
<sistpoty> everyone got it filled in?
<warp10> y
<albert23> y
<sistpoty> ok, then let's start with the rules file
<sistpoty> let's see what targets we need to adhere to the policy: clean, build, binary, binary-arch, binary-indep
<sistpoty> did I miss one?
<warp10> install?
<ScottK> configure?
<slangasek> not required by policy :)
<sistpoty> yep
<warp10> configure should be optional, right?
<sistpoty> hi slangasek btw.
 * slangasek waves
<warp10> install is optional too?
<sistpoty> warp10: libmyhello fortunately doesn't need to be configured, as it doesn't use autotools
<sistpoty> warp10: yes
<sistpoty> let's start with clean, should be easiest
<sistpoty> since we'll use debhelper, we'll first call dh_clean
<sistpoty> and then: make clean
<sistpoty> to cleanup libmyhello stuff
<sistpoty> or, if you prefer make distclean
<sistpoty> (which won't make a difference *here*)
<sistpoty> then let's get a shot at the build rule
<james_w> sistpoty: dh_testroot to start clean as well?
<sistpoty> james_w: right, makes sense
<sistpoty> ok, build should be easy as well.
<sistpoty> just a call to make
<sistpoty> any questions so far?
<warp10> n
<albert23> n
<sistpoty> ok, then let's go to the binary target
<sistpoty> since this is an arch:any package, we'll use the binary-arch target for the job, and have the binary target depend on it
<sistpoty> let's add some debhelper stuff
<sistpoty> dh_testdir
<sistpoty> dh_testroot
<sistpoty> dh_installchangelogs
<sistpoty> dh_installdocs
<sistpoty> dh_install
<sistpoty> dh_strip
<sistpoty> dh_compress
<sistpoty> dh_fixperms
<sistpoty> and now an interesting one: dh_makeshlibs
<sistpoty> (we'll have a look at it in a few minutes)
<sistpoty> dh_shlibdeps
<sistpoty> dh_installdeb
<sistpoty> dh_gencontrol
<sistpoty> dh_md5sums
<sistpoty> dh_builddeb
<sistpoty> since we'll need to build s.th. before we can install it, we'll add a dependency to build for binary-arch
<sistpoty> (a nicer way is to use stamps, but that's a different topic)
<sistpoty> now what does dh_makeshlibs do...
<sistpoty> as you may have noticed, whenever you put ${shlibs:Depends} in the control file, it will get resolved to the library packages during build
<sistpoty> this is done via the shlibs-mechanism
<sistpoty> if you've been here in part 1, I guess you could build one yourself
<sistpoty> if you look at /var/lib/dpkg/info, you'll find a number of shlibs-files
<sistpoty> let's take a look at one
<sistpoty> the format is: library-name soname-version dependencies
<sistpoty> let's look at /usr/lib/dpkg/info/libgnome2-0.shlibs
<sistpoty> compare this to the SONAME of /usr/lib/libgnome-2.so.0
<sistpoty> this explains the first two fields
<sistpoty> the third one is the package where this shared object can be found in
<sistpoty> the job of dh_makeshlibs is to generate such a file for us
<warp10> cool...
<sistpoty> and at this point, we can try to answer mok0's question of part 1, what to do if upstream released a new abi compatible version, but programs use this one
<sistpoty> since the shlibs file can specify a version string (just look at the gnome shlibs file again)
<sistpoty> we can request to have a minimum version of the library
<sistpoty> this will get replaced for all packages that use ${shlibs:Depends} and build against our library
<sistpoty> so we only need to tell dh_makeshlibs, that a new feature landed in the library, so that it will set version field in the shlibs file right
<sistpoty> you can do this with dh_makeshlibs -V<version>
<sistpoty> now if anyone has installed an older version of the library, and wants to use the program that needs the new cool features
<sistpoty> he will have to upgrade the library via apt
<sistpoty> any questions so far?
<albert23> How can we know which library version was the first providing a specific ABI version?
<albert23> Isn't there a risk we set version to high in dh_makeshlibs -V<version>?
<sistpoty> albert23: pretty much through the same means that we can find out if the ABI is broken
<albert23> ok
<sistpoty> albert23: there is no real risk in Ubuntu to set the version to high
<sistpoty> however setting the version not high enough can lead to problems
<albert23> It would make backports more difficult?
<sistpoty> not too sure... I don't think so
<sistpoty> a backport gets compiled to whatever is in gutsy or feisty
<sistpoty> so it will get built against the feisty/gutsy version of the library, which has a different version requirement
<ScottK> So if you set it correctly and there isn't a sufficient ABI available, the backport build will, correctly, fail.
<sistpoty> well... it doesn't really relate to building, but rather to installin
<sistpoty> +g
<sistpoty> in order to build against a library, the version (and ABI) is irrelevant.
<sistpoty> what matters to build against it is the API
<sistpoty> the version rather enforces that users *need* to upgrade the library to a minimum ABI version
<ScottK> I guess I meant API then.
<sistpoty> so if the API changed, the field won't really be much of a problem, since this means a new ABI in almost all cases
<sistpoty> and hence a new SONAME, and a different library package
<sistpoty> this version is only relevant if the ABI/API stay the same, but new features got added
<ScottK> Ah.  RIght.
<sistpoty> any further questions?
<warp10> n
<albert23> n
<sistpoty> ok, then let's try to fix the rules file and finish the package, shall we?
<sistpoty> since we use dh_install, we still need to install the files into debian/tmp/
<sistpoty> let's use PREFIX=$(pwd)/debian/tmp make install for this
<sistpoty> if you want, you can put this right at the beginning of binary-arch
<sistpoty> or you could add an install rule and have binary-arch depend on it... whatever you prefer
<sistpoty> now we'll need to sort which files go into which package
<sistpoty> so we want libmyhello1.install and libmyhello-dev.install
<sistpoty> the header files will go into the -dev package
<sistpoty> bah... back a few lines... (recalled the Makefile wrongly)... PREFIX should of course be $(pwd)/debian/tmp/usr
<sistpoty> I guess I should have added DESTDIR or s.th. to libmyhello's makefile
<sistpoty> in case we'd have a statically linked library (libmyhello.a), that would go into the -dev package as well.
<sistpoty> (only useful if you want to link s.th. statically against it)
<sistpoty> what else do we need in the -dev pacakge
<sistpoty> the .so symlink should go in there as well
<sistpoty> btw: the .so symlink is what the linker will look for if you give the -l parameter
<sistpoty> more specifically, if you'd call -lmyhello, it would prepand a lib and add an .so and look for this file (libmyhello.so)
<sistpoty> in case there are any other files for development purposes (pkconfig files for example), these should also go in the -dev package
<sistpoty> luckily we don't have these
<sistpoty> in the library package should be the shared object (of course) and the symlink that's named like the soname
<sistpoty> while the symlink itself would also be recreated by ldconfig
<sistpoty> including it in the library package has the advantage that it will get deleted if the library is removed
<sistpoty> because it's a file of the package
<sistpoty> everyone got the .install files?
<albert23> y
<warp10> y
<sistpoty> ok, let's give it a shot, and see if it works
<sistpoty> just use
<sistpoty> fakeroot make -f debian/rules binary
<sistpoty> to fix the errors
<sistpoty> (like my install files, that where wrong *g*)
<albert23> mine too
<warp10> argh... :-S
<sistpoty> did you fix the PREFIX=... make install?
<albert23> y
<warp10> sistpoty: just a wrong install for me too :)
<sistpoty> warp10: hehe
<albert23> I think $(pwd) did not work
<albert23> make tried to install in /debian
<sistpoty> it should install into debian/tmp/usr/
<albert23> I got this: PREFIX=/debian/tmp/usr make install
<sistpoty> heh, I've got the same which doesn't work as well. but the answer is one line above
<sistpoty> PREFIX=debian/tmp/usr make install
<sistpoty> those nasty slashes *g*
<warp10> grrrr
<albert23> Yep, just removed the pwd part, that works
<sistpoty> hm... I guess I'll need to read the make manual again, I was so sure that $(PWD) exists (or $(pwd))
<albert23> $(CURDIR) ?
<slangasek> $(PWD) exists only if it's set in the environment by the invoking shell
<slangasek> $(shell pwd) execs out to call the pwd command, so is rather inefficient
<slangasek> $(CURDIR) is the make builtin variable you should use
<sistpoty> thanks... I guess I confused this with $(pwd), which I often type in the shell *g*
<slangasek> :)
<sistpoty> so does everyone's build succeed now?
<albert23> yep, package looks good
<warp10> looks fine!
<sistpoty> damn, only mine doesn't build yet *g*
<sistpoty> ok, so you've got a source package and a binary
<sistpoty> let's run lintian at the binary packages. it will take a second look that we've got the files sorted out correctly
<albert23> clean
<sistpoty> excellent!
<sistpoty> any questions so far?
<albert23> no, that's pretty clear
<warp10> it's fine. Just wondering if it would be so easy in the real-world packaging :)
<albert23> I guess that strongly depends on upstream
<sistpoty> ok, so now what would you do if the ABI of a library changed, but the SONAME didn't?
 * slangasek smiles
<albert23> complain at upstream
<sistpoty> albert23: great, that should always be the first choice
<sistpoty> can you imagine, while it's a bad idea, if you bump the SONAME on your own?
<sistpoty> (as a packager)?
<albert23> could be risky, as it might conflict with new upstream versions?
<sistpoty> that's one argument
<sistpoty> but you could append a debian or ubuntu somewhere and change the build scripts, so you could circumvent this
<sistpoty> any other arguments against this?
<slangasek> it leads to binary incompatibility with other distros
<slangasek> but that shouldn't outweigh the problems caused by binary incompatibility with previous releases
<sistpoty> also, it leads to binary incompatibility for binary only software
<sistpoty> (just imaging to change the SONAME of libc, and look at what breaks in multiverse)
<slangasek> well, a workaround for such binary-only software would be to instruct users to create their own local symlinks for the wrong soname
<sistpoty> heh
<sistpoty> ok, what other interesting points do we have...
<slangasek> like I said, the alternative is that you have to break all the /free/ software using the old version on upgrade :)
<sistpoty> yeah, it's either bad or worse *g*
<sistpoty> ok, what should you do when you upgrade a library?
<slangasek> by "upgrade", you mean "package a new version"?
<sistpoty> yes
<sistpoty> we already learned that we should look out for ABI compatibility, so let's look at the case where we *do* have a new SONAME
<sistpoty> and hence a new library package
<sistpoty> anyone any ideas?
<slangasek> grep -r $oldsover debian/ :)
<albert23> I think we are going to have a problem with the -dev package
<sistpoty> albert23: what do you think could get problematic?
<albert23> packages requiring the old ABI will get the new ABI when we would want to rebuild?
<sistpoty> exactly (but it's API in this case... compiling *P*rograms->aPi, binaries->aBi)
<sistpoty> so you should check which packages actually build-depend on the -dev package.
<sistpoty> if there is a large number, you could do local test-builds and see which fail
<sistpoty> in case you cannot live yet with the new version alone, you could for example make a different source package and hence have two version of the library in the archive
<sistpoty> one thing you might stumble over when dealing with libraries is a lintian warning about rpath
<sistpoty> when you link against a library, that has an rpath set, it will tell the loader to look for the shared object only in that very directory
<sistpoty> so you can specify -Wl,-rpath=/somewhere and link hello_prog against it
<sistpoty> then the loader will look for libmyhello only in /somewhere when hello_prog is started
<sistpoty> can anyone imagine, why using rpath for a library is a bad idea?
<albert23> well, software would break if for some reason the library is moved to another directory....
<sistpoty> exactly
<sistpoty> and one use-case for moving a library is for example the ia32-libs package on amd64
<sistpoty> ok, any questions?
<slangasek> (and multiarch! whoo!)
<slangasek> albert23, sistpoty: I would note that the general case is that we don't want to continue supporting an old API for a library, even if it means some work has to be done to get the applications ported
<slangasek> so it's /usually/ better to have the new library version take over the source package name and the -dev package name, and only reintroduce an oldlibs package as a last resort
<sistpoty> thanks for clarifying
<albert23> Well, one question: what would be the best place to look for bugs / qa issues to practice what we learned?
<sistpoty> hm... that's a good question indeed
<sistpoty> well, one thing is that you could review library packages on REVU
<sistpoty> or get your hands dirty and package a library
<sistpoty> ok, I guess we're through with the session... slangasek: anything important I forgot or you'd like to add?
<slangasek> sistpoty: I only had half an eye on the channel today; I guess you didn't talk about techniques maintainers can use to automatically detect ABI breakage when moving to a new upstream version?
<sistpoty> slangasek: nope
<slangasek> the dpkg in hardy includes the new dpkg-gensymbols code developed by RaphaÃ«l Hertzog in Debian; it basically creates a manifest, declaring which symbols were added in which version of the package
<slangasek> the /side/ benefit of this is that if you already know which symbols are supposed to be present, you know if any have gone missing
<slangasek> so http://qa.debian.org/cgi-bin/mole/seedsymbols is a site that includes automatically generated symbol manifests for all libs in the archive
<slangasek> (the Debian archive, that is; most will be applicable to Ubuntu too, obviously)
<slangasek> http://wiki.debian.org/UsingSymbolsFiles is a general description of this
<slangasek> I still need to use this on my own packages, so I can only give you theoretical insight into this stuff, not much practical :)
<slangasek> and everyone's eyes glaze over again ;)
<albert23> Yeah, I guess I will first do some attempts to do the work manually.
<albert23> I have bookmarked those links for later use...
<slangasek> one example of this in practice is the zlib1g package
<slangasek> which the maintainer, Mark Brown, blogged about as well (syndicated on planet.d.o)
<sistpoty> heh, I skipped this post, and wanted to read it later (which I then forgot *g*)
<sistpoty> ok, anything else?
<sistpoty> then thanks everyone for coming :)
<albert23> No, not for me. I have learned a lot these two sessions!
<sistpoty> and thanks very much slangasek for your expert help!
<albert23> sistpoty and slangasek many thanks for these sessions!
<warp10> Thank you sistpoty and slangasek, they have been two great sessions
<sistpoty> and now I'm falling in my bed :)
<sistpoty> good night everyone
<warp10> I hope the wiki has room for logs, they would be really useful :)
<albert23> good night
<sistpoty> sure, I'll find a place
#ubuntu-classroom 2008-01-19
<coolcat> loot,are u there
<sistpoty> hi everyone
<sistpoty> anyone around for the library packaging session? (repetition of the session from Thursday)?
<Rhi_evil_happ1> hello
<RainCT> Hi
<Rhi_evil_happ1> hi
<sistpoty> hi
<sistpoty> you want to hear the library packaging session?
<TheMuso> sistpoty: if there is a log from the other one, I am happy to read that, but if this is going ahead in here, I wil idle.
<sistpoty> TheMuso: there is a log available, let me look
<TheMuso> sistpoty: Thanks.
<sistpoty> TheMuso: http://irclogs.ubuntu.com/2008/01/17/%23ubuntu-classroom.html
<Rhi_evil_happ1> *looks happy*
<TheMuso> sistpoty: Thanks a lot.
<sistpoty> TheMuso: and yesterday was part two: http://irclogs.ubuntu.com/2008/01/18/%23ubuntu-classroom.html
<TheMuso> right
<sistpoty> ok, then let's get started, shall we?
<TheMuso> Bookmarked
<sistpoty> this session is made up of two parts
<sistpoty> in part 1, you'll get to know everything about shared objects
<sistpoty> in part 2, we'll package up a sample library and discuss some packaging issues
<sistpoty> let's start with part 1
<sistpoty> first off, shared objects are useful for two purposes
<sistpoty> 1) they can be used as a mechanism for plugins with dlopen
<sistpoty> 2) to share code between different projects (a library)
<sistpoty> we'll deal with 2) in this session :)
<sistpoty> oh, btw.: if there are any questions just ask them right away
<sistpoty> a (ELF) shared object is a collection of symbols in different section together with some meta information
<sistpoty> a symbol denotes any named entity in C (functions, variables)
<sistpoty> let's get an example and see what it will result in
<sistpoty> <http://www.potyra.de/library_packaging/example.c>
<sistpoty> the section a symbol is gives details about it (e.g. it can be executed, it's read only...)
<sistpoty> everyone got the example?
<ranf> yes
<sistpoty> so let's compile it:
<sistpoty> gcc -c example.c -o example.o
<sistpoty> this will just result in an ordinary object (not a shared one, we'll look at this in a moment)
<sistpoty> let's take a look at the symbols in there
<sistpoty> we can use  readelf, nm or objdump for it
<sistpoty> let's start with
<sistpoty> nm example.o
<sistpoty> the rightmost column is the name of the symbol... let's compare it with what's in the c-file
<sistpoty> http://paste.ubuntu.com/3667/
<sistpoty> for example, the global_function from line 26 will turn into the symbol with the same name
<sistpoty> 000000000000006b T global_function
<sistpoty> anything odd you can find of the symbol output?
<RainCT> if I get less zeros at start that's because I've a different arch or what? :P
<sistpoty> RainCT: most probably *g*
<persia> I get "static_local_var.2268" rather than static_local_var
<sistpoty> persia: excellent
<sistpoty> first off the static_local_var comes from line 15
<sistpoty> as you cannot have two symbols with the same name in one object
<sistpoty> static local variables need to have their name mangled
<persia> Is that just by policy, rather than by checking to see if there would be a conflict?
<sistpoty> because you can define a static local variable with the same name in two different functions
<sistpoty> persia: not too sure if you could produce (somehow) an object with two equally named symbols
<sistpoty> the linker wouldn't allow this, but maybe it could be circumvented
<sistpoty> however the second symbol would never get looked at
<persia> sistpoty: Sorry to not be clear: I just don't see two different static_local_var, so wondered if the compiler just added index codes, rather than doing any conflict check.
<sistpoty> (you can link two objects with equally named symbols together, but then the second one is discarded)
<sistpoty> persia: the conflict check is getting done by the linker
<persia> OK.  So the compiler mangles by policy to avoid conflict issues at link-time?
<sistpoty> persia: and I guess that the compiler will just add the index for every static local
<sistpoty> I believe so
<persia> Thanks for the details :)
<sistpoty> at least that's what I'd do as a compiler... because I already new that's a static local, so just add an index and not needing to check for collisions afterwards :)
<sistpoty> ok, anything else that's odd with the nm output compared to the c-file?
<sistpoty> (line 10 *cough*)
<sistpoty> in line 10, we've got a variable local_var, which won't result in any symbol
<sistpoty> the reason for this is, that it's locally to the function and will get allocated on the stack
<sistpoty> hence there's no need to allocate space for it in the object
<sistpoty> now let's make a shared object from the example
<persia> Was it not optimised away by the compiler?  It's only used once.
<sistpoty> persia: not without -O(something)
<persia> Ah.  Right.
<sistpoty> gcc -Wl,-z,defs -Wl,-soname,libexample.so.1 -fPIC -shared example.c -o libexample.so
<sistpoty> the -Wl,something are options gcc will pass to the linker
<sistpoty> the first one is only for sanity (allow no unresolvable symbols)
<sistpoty> and the second one defines the soname (we'll come to this bit later on)
<sistpoty> -fPIC will result in position independent code, but I won't go into details here
<sistpoty> and -shared tells gcc to produce a shared object
<sistpoty> let's strip the object
<sistpoty> strip libexample.so
<sistpoty> take a look at it again
<sistpoty> nm libexample.so
<sistpoty> at first sight, there don't seem to be any symbol information stored in there
<sistpoty> let's try again
<sistpoty> nm -D libexample.so
<sistpoty> this will display dynamic symbols
<sistpoty> now compare the output to the one from example.o
<sistpoty> at first, there are a number of symbols starting with an underscore... these are (compiler) internals, so we'll ignore these
<sistpoty> let's take a look at the letters before the symbol name
<sistpoty> as you can see, there are only capital letters left in the shared object
<sistpoty> the capital letter means, that the symbol is a global symbol
<sistpoty> i.e. other object files linked against it can see it
<sistpoty> if it's lower case, it's only visible inside that particular object
<sistpoty> (and hence you can link two objects with symbols that have the same name but are only locally visible together w.o. problems)
<sistpoty> as the symbols in shared objects are meant to be used by different programs/libraries, we're only interested in global symbols
<sistpoty> let's take a look at the letters in more details
<sistpoty> the letters describe in what section the symbol lives in
<sistpoty> t -> text section (may be mapped readonly), executable
<sistpoty> d -> initialized data (statics, initialized globals)
<sistpoty> c -> uninitialized data (uninitialized globals)
<sistpoty> r -> read only data (const variables), not necessarily read only though.
<sistpoty> and then there is a special one: u
<sistpoty> u means it's undefined in this object, and comes from another object
<sistpoty> symbols that example.c use (for example stderr) but that are not declared in there, will get the U
<sistpoty> if you have a binary, that has undefined symbols, these will get resolved by the loader, as soon as the program is executed
<sistpoty> any questions so far?
<ranf> What is B?
<sistpoty> ranf: b is uninitialized data
<sistpoty> ranf: so the global extern_var will live there (the initial value is not getting set)
<sistpoty> btw.: you can always look at the manpage of nm to find out about the different letters
<sistpoty> ok, let's take a look at the meta-information
<sistpoty> objdump -x libexample.so
<sistpoty> the interesting parts here are
<sistpoty> NEEDED entries
<sistpoty> and SONAME
<sistpoty> if you prefer less output, you can also look at these with
<sistpoty> objdump -p libexample.so
<sistpoty> the NEEDED entry refer to the SONAME entry of shared objects, that this shared object directly needs
<sistpoty> i.e. all undefined symbols in libexample.so will get resolved to the shared object where these are defined
<sistpoty> and each shared object where such a symbol comes from is listed as NEEDED
<sistpoty> let's compare this with
<sistpoty> ldd libexample.so
<sistpoty> ldd will basically do the same thing, that the loader would do
<persia> How was libexample.so.1 determined?  I usually see some sort of definition in upstream build systems.
<sistpoty> persia: it should match the soname
<sistpoty> err, sorry the resulting shared object should match the soname by some rules
<sistpoty> here it was just what we gave to gcc, w.o. any big thoughts how to call it
<persia> sistpoty: Right.  objdump -x or -p reports "SONAME      libexample.so.1"  I just don't understand where the "1" comes from.
<persia> Ah.  Right.  The compilation command.  Sorry.
<sistpoty> persia: that's exactly what we gave to gcc: -Wl,-soname,<thatnameisthesoname>
<sistpoty> if you look at the output of ldd, you can see that
<sistpoty> 1) it resolves the needed entries to path names of the shared objects in question
<sistpoty> and 2) that there are more entries, not listed in needed
<sistpoty> that's because ldd will do lookups recursively
<sistpoty> so it will first find libc.so.6 and look at what's needed by that one as well
<sistpoty> and list all of these
<sistpoty> let's rather look at a real world example to spot the difference
<sistpoty> ldd /usr/lib/libgnome-2.so.0
<sistpoty> compared to
<sistpoty> objdump -p /usr/lib/libgnome-2.so.0 | grep NEEDED
<sistpoty> any questions so far?
<sistpoty> ok, now let's also compare
<sistpoty> nm -D /usr/lib/libgnome-2.so.0
<sistpoty> to
<sistpoty> readelf -s /usr/lib/libgnome-2.so.0
 * RainCT has to go and will check the log when he's back
<sistpoty> (or you can also compare libmyexample.so)
<sistpoty> cya RainCT
<sistpoty> spot any difference?
<sistpoty> if you use readelf -s, you'll see that some symbols have an @ in their name
<sistpoty> these are versioned symbols
<sistpoty> nm will happily not print out that info
<sistpoty> so when looking at shared objects for library packaging, you should prefer readelf -s to nm -D
<sistpoty> objdump -T libmyexample.so will also display information about versioned symbols
<sistpoty> when we have a library, we're interested to have a stable ABI
<sistpoty> a stable ABI means that there won't get any symbols removed, and that the symbols mean the same thing
<sistpoty> in contrast a stable API means that we can compile a program with one version of the library and can compile it again with another version
<sistpoty> w.o. changing the code of the program
<sistpoty> let's try s.th. out
<sistpoty> http://www.potyra.de/library_packaging/libmyhello-1.0.1.tar.gz
<sistpoty> this is a very simple example library
<sistpoty> extract it, and compile it with
<sistpoty> make
<sistpoty> please also install it (as root) with
<sistpoty> make install
<sistpoty> no worries, it will only install under /usr/local, and comes with make uninstall as well to remove the craft
<sistpoty> no we'll need a program that uses this library as well
<sistpoty> now
<sistpoty> get http://www.potyra.de/library_packaging/hello_prog-1.0.tar.gz
<sistpoty> extract it to a different directory and compile it
<sistpoty> everyone got that so far?
<sistpoty> oh, be sure to run ldconfig after installing the library package, I always forget this
<sistpoty> everyone got a program called hello_prog now?
<sistpoty> anyone still following? *g*
 * persia has a working hello program (after running ldconfig)
<sistpoty> great :)
<sistpoty> now for a test, let's uninstall the library again
<sistpoty> make uninstall (as root
<sistpoty> +)
<sistpoty> let's try to execute hello_prog again
<sistpoty> it won't work, because the shared object is gone for good
<sistpoty> if you try ldd hello_prog, you'll see that it cannot resolve libmyhello.so.1
<sistpoty> luckily, upstream has made a new library package, let's try that hot new stuff
<sistpoty> http://www.potyra.de/library_packaging/libmyhello-1.0.2.tar.gz
<sistpoty> same procedure as with the old libmyhello: compile, install, run ldconfig
 * persia complains upstream shouldn't distribute compiled binaries in the tarball
<sistpoty> hm? does upstream do that?
<persia> sistpoty: Maybe it's just my upstream checking scripts :(
<sistpoty> persia: probably (or my make dist is wrong)
<sistpoty> ok, let's retry to run hello_prog
<sistpoty> at this point the loader cannot resolve a symbol, and will barf out
<sistpoty> let's take a look: readelf -s hello_prog
<sistpoty> (first run strip, to get rid of the local symbols)
<sistpoty> strip hello_prog
<sistpoty> readelf -s hello_prog
<sistpoty> you can see, that it wants print_hello
<sistpoty> let's take a look at what the new library provides
<sistpoty> strip the library (to get rid of the local symbols)
<sistpoty> and
<sistpoty> readelf -s libmyhello.so
<sistpoty> there is a function hello, but no function print_hello
<sistpoty> compare that to what's in the old libmyhello.so
<sistpoty> so upstream obviously removed print_hello and inserted hello
<sistpoty> this means, that the change is not ABI compatible (and also not API compatible, because you cannot compile hello_prog against the new versoin)
<sistpoty> so obviously if a symbol gets removed, it means that the ABI breaks
<sistpoty> let's come back to the SONAME
<sistpoty> having the same SONAME means that the ABI is compatible
<sistpoty> so you can exchange any library with the same SONAME and the program should still work
<sistpoty> if a library isn't ABI compatible any longer, the SONAME must get changed to indicate this
<sistpoty> if the SONAME gets changed, so does the names of the library
<sistpoty> so you can have two versions of one library installed, that have a different SONAME
<sistpoty> any questions so far?
<sistpoty> so let's get back to the ABI again...
<sistpoty> having the same symbols (or only new symbols) in a newer version is only part of the ABI definition
<persia> Is the dual-installation not affected by the symlinks?
<sistpoty> persia: no
<sistpoty> maybe I should go into details about the symlinks
<sistpoty> for one, we have the shared object itself: libmyhello.so.1.0.2
<persia> I'd like to know more, but perhaps in section 2 about packaging.  It seems to me the symlink points to the most recently installed, which is non-deteministic.
<sistpoty> well, I'll  just explain that now ;)
<sistpoty> the first symlink is libmyhello.so.1
<sistpoty> this one is actually always the SONAME mangled to some rules
<sistpoty> err.. it *is* the SONAME
<sistpoty> sorry
<sistpoty> if this symlink isn't there, ldconfig would create it
<sistpoty> all binaries, that want a specific shared library are resolved by this symlink
<sistpoty> because that's what's in the NEEDED entry of the binary
<sistpoty> the loader will do that for us, and (looking at ldd output) will also follow that symlink to the "real" shared object
<sistpoty> the other symlink is libmyhello.so
<sistpoty> this symlink is there, if you want to link a binary against the shared object
<sistpoty> gcc -lmyhello
<sistpoty> -l<name> will get transformed to lib<name>.so
<sistpoty> and that's what the linker will search for
<persia> Ah.  That explains why the bare symlink is usually in the -dev package.  Thanks.
<sistpoty> so you'll only need this symlink when compiling/linking s.th. against a shared object
<sistpoty> exactly
<sistpoty> any binaries won't need/see it. and that's the only file with the same name
<sistpoty> ok, let's get back to the ABI
<sistpoty> the ABI also means that the symbols still mean the same thing
<sistpoty> while finding out, if any symbols got removed should be an easy task now, this gets a little bit trickier
<Rhi_evil_happ1> hi
<sistpoty> the meaning of the symbol is 1) is it a function/variable/what section is it in
<sistpoty> hi Rhi_evil_happ1
<sistpoty> but also for functions, what signature (number of arguments, type of arguments) need to get passed
<Rhi_evil_happy> hi again
<sistpoty> if you change the signature of a function of a library, this means that a program linked against it wouldn't agree with the library any longer, about the data that it passes
<sistpoty> one way to look at signatures is via the debug information
<sistpoty> so (in case you stripped the library), recompile it again w.o. stripping it (make clean && make)
<sistpoty> for debug information, gdb is our tool of choice
<sistpoty> gdb libmyhello.so
<sistpoty> you can look at the function definitions with
<sistpoty> info functions
<sistpoty> void hello(void);
<Rhi_evil_happy> ?
<sistpoty> Rhi_evil_happy: maybe you want to read backlog?
<persia> Just to confirm. this would provide useful information if the function weren't void, right?
<sistpoty> persia: yes
<persia> s/useful/visibly useful/
<sistpoty> feel free to modify the functions to your liking and experiment ;)
<sistpoty> for variables it's
<sistpoty> info variables
<sistpoty> (however there is no direct variable defined in there)
<sistpoty> interesting enough stdin/stdout show up there... I guess that's because these are declared in a header and will get debug symbols in the library...
<sistpoty> so to be sure, you'd need to filter out any info from there that's not marked as a symbol
<sistpoty> or rather that's not defined in a symbol (nm -D/readelf -s/objdump -T)
<sistpoty> now, let's strip the library again and see what info gdb will spit out
<sistpoty> stirp libmyhello.so
<sistpoty> gdb libmyhello.so
<sistpoty> info functions
<sistpoty> s/stirp/strip/
<sistpoty> now, the info is gone... since all binaries/shared objects are stripped, this cannot get applied to a package in the archive
<sistpoty> or at least you'd need the -dbgsym package for it
<sistpoty> luckily there exists one tool, that may help there: icheck
<sistpoty> afaik, you can use it to create a manifest file with symbols (and their) meaning of a package
<sistpoty> I haven't tried it out myself yet though
<sistpoty> (package icheck)
<sistpoty> there also exists check_symbols in the ubuntu-devscripts package, however we found out that it currently uses nm -D
<sistpoty> and thus won't know anything about versioned symbol dependencies
<sistpoty> -> better avoid it until its fixed
<sistpoty> any questions so far?
<sistpoty> ok, small side note: c++ libraries
<sistpoty> since you can overload method in c++, (give two functions the same name but different signatures),
<sistpoty> these cannot get stored with the name as symbol name
<sistpoty> because you'd end up with two symbols with the same name
<sistpoty> hence there is some name mangling done by g++, that encodes the signature in the symbol name itself
<sistpoty> let's take an example
<sistpoty> nm -D /usr/lib/libstdc++.so.6 | less
<sistpoty> (there are lot's of symbols with funny names in there)
<sistpoty> you can get some human readable output of this with the -C option of nm
<sistpoty> nm -C -D /usr/lib/libstdc++.so.6 | less
<sistpoty> or c++filt
<sistpoty> a nice side effect of this is, that a change of the signature will result in a differently named symbol
<sistpoty> and hence in a removed symbol, which you can easily detect looking only at symbols
<sistpoty> another side note:
<persia> Is this use of guard symbols why C++ gets so hopelessly confused with insufficiently explicit casts to objects passed to overloaded functions?
<sistpoty> what do you mean with guard symbols?
<sistpoty> however it gets confused due to overload resolution
<sistpoty> that means the compile needs to find out which method to call
<persia> The output of `nm -CD /usr/lib/libstdc++.so.6 | less` reported "guard ..." in place of _ZZZ09u592.  My terminology error.
<sistpoty> I'm not too sure what the guard thingy means
<sistpoty> however if the type for an argument exactly matches, this method is chosen by the compiler (i.e. uint64_t as parameter, uint64_t as argument)
<sistpoty> if an implicit typecast is involved (e.g. uint32_t as parameter, uint64_t as argument), this is considered a worse case
<persia> Thanks.  Somewhat unrelated then :)
<sistpoty> iirc, only the number of typecasts involved is getting counted, and the method is chosen for this
<sistpoty> persia: maybe it's also about NULL as argument (which's type can be any pointer type) ;)
<sistpoty> so void do_stuff(X *arg); and void do_stuff(Y *arg); would be ambiguous when called as do_stuff(NULL);
<sistpoty> but let's get back to shared objects
<persia> sistpoty: I've only encountered it when porting applications to updated libraries.  Likely off-topic :)
<sistpoty> persia: heh, I encountered it yesterday at work, coding c++ *g*
<sistpoty> ok, so the SONAME means to be ABI compatible
<sistpoty> and by definition, if we only add new features to a library, we don't need to change the SONAME
<sistpoty> this leaves one small problem: what if we've added cool new features not breaking the ABI
<sistpoty> and a program makes use of these new features
<sistpoty> someone could still have the old library installed and install the program
<sistpoty> then this program wouldn't work any longer, because it needs symbols not yet defined in thre
<sistpoty> there
<sistpoty> on the basis of the SONAME, there is no solution to this
<sistpoty> historically on unix systems, this was handled by the minor version of a shared library as slangasek told me
<sistpoty> however this of course won't work if you move binaries from one system to another (and that's what packaging is about)
<sistpoty> we'll see the solution to this in part 2
<sistpoty> ok, any questions left?
<sistpoty> if there are none, I'm through with part 1 :)
<persia> If the minor number is no longer used to track symbol introduction, what is it used to indicate?
<sistpoty> heh, no idea actually
<sistpoty> maybe it's still used for this
<persia> Is it just meaningless on linux/glibc systems then?
<sistpoty> yes
<sistpoty> i.e. I'm not sure if it's meaningless, but debian/ubuntu systems could live w.o. it ;)(
<persia> Actually, only the runtime loader matters.  If this doesn't use it, it is meaningless, even if there is historic semantic value.
<sistpoty> right
<sistpoty> how about a short break before starting part 2?
<sistpoty> ok, I'm just making a short coffee break then :)
<sistpoty> re
<sistpoty> anyone around for part 2 of the library packaging session?
<sistpoty> persia: interested in part 2?
<sistpoty> (if not, I'll just point to the logs... less work for me then *g*)
<persia> Sure.
 * persia reviews the logs again anyway, to forestall some questions
<sistpoty> persia: if you're the only one interested, I guess I don't need to go through packaging by example and just skip ahead to questions, ok?
<persia> sistpoty: OK.  Hold on a bit while I catch up then :)
<sistpoty> sure, just ping me once you're through ;)
<persia> sistpoty: question time :)
<sistpoty> :)
<persia> First, are there any objective criteria about pushing a transition vs. oldlibs support?  Is this just a matter of how much effort the transition is, and based on what is expected to make the release?
<sistpoty> hm... I can only say what slangasek wrote yesterday, that it's /usually/ better to transition
<sistpoty> I guess one example would be the libdb* stuff, which is an exception
<sistpoty> because it's a database library and the database format changed iirc, so it's very hard to transition this one
<sistpoty> and would result in a very unsmooth upgrade path
<sistpoty> or you'll also like to not get rid of libc* too soon, as many binary only applications still use the old one
<persia> Makes sense.  libdb seems a prominent exception, and we've been having fun with WX since feisty.  I'm guessing that it depends on 1) if upstreams are paying attention, 2) bad upgrade paths, 3) truly significant porting effort (that won't complete in several months), and similar release-affecting issues.
<sistpoty> sounds sane, yes
<persia> Next: do you understand the controversy over binary packages named libfoo1 vs. libfoo1.0.3?  If so, why one over the other (or do you have a pointer to a previous debate)?
<sistpoty> hm...
<sistpoty> to my understanding, the binary package name should have a unique name in comparison to the soname
<sistpoty> so libfoo1 would be useful for libfoo.so.1
<sistpoty> while libfoo1.0.3 would be useful for libfoo-1.0.3 (soname)
<persia> Hmm.  That would make more sense if the minor version weren't considered meaningless :(
<sistpoty> well, the minor version isn't part of the SONAME, otherwise it's no minor version ;)
<persia> Does maybe the versioned symbols features allow parallel installation of libfoo-1.0.3 and libfoo-1.0.4?
<sistpoty> no, the only warranty for parallel installation is a different SONAME afaik
 * persia looks at libmyhello Makefiles again
<sistpoty> versioned symbol come in at a different place
<sistpoty> let's say, you have libA and libB, which both depend on libC
<persia> Ah.  So libfoo1.0.3 would provide libfoo1.0.3.so.(whatever), rather than libfoo1.so.1.0.3 ?
<sistpoty> persia: exactly
<sistpoty> btw.: the library packging guide has nice examples for this
<persia> sistpoty: re: versioned symbols.  Right.  Poor terminology again (and more interesting for package D depending on libA and libB).
<sistpoty> right
<sistpoty> if you now change libA to require a newer, incompatible version of libC
<sistpoty> D will draw in multiple versions of libC
<persia> Next question: if an upstream tarball produces 17 libraries, why would one choose e.g. 5 (10) binary packages, rather than 17 (34)?
<sistpoty> good question... the only rationale is if these come from the same source and one ABI incompatibility of one shared object will *always* result in ABI incompatibilities of the other shared objects
<sistpoty> if you know that this is the case, you can collapse these into one library package (because you'll never end up with only one SONAME getting bumped)
<persia> So if there is a stack of binary libraries generated by the same source, and the core library (upon which the others depend) is generally updated for each release, and applications usually use several of the client libraries, one package might be correct, but upstream should be hit with a stick?
<sistpoty> well... kind of
<sistpoty> it might be correct though... let me think of an example
<persia> kdelibs is perhaps an interesting example
<sistpoty> if the core library defines some interface types, that are used in the client libraries
<sistpoty> you'll automatically get ABI incompatibilities if the core library changes
<persia> Err..  No.  That generates lots of binaries.
<sistpoty> becaues the signatures will differ
<sistpoty> hm... not too sure about kdelibs *g*
<persia> Won't that generally be taken care of by the simultaneous recompile of the single source, regardless of how many binary packages are involved?
<sistpoty> yes, it will
<persia> OK.  I'll put the package split question back on the stack of things to have an opinion about rather than things with an answer then :)
<persia> Next question, which may be off-topic:
<sistpoty> however if you put (independent) shared objects into a single binary, it means that every program depending on any to rebuild as well
<sistpoty> so a good rationale would also be if it's possible to use only one single shared object or if you definitely want all of these
<persia> sistpoty: Ah.  Right.  Splitting the binaries and being careful about versioning would decrease the amount of NBS work if clients typically used subsets of the set of libraries exported by the source.  Thanks.
<sistpoty> and unmet dependencies
<persia> When packaging an application that has internal libraries that are tightly linked to the application itself (and not expected to be used externally (e.g. btanks)), is there a point to exporting the library, or would just putting it in the /usr/lib/ hierarchy (for ldconfig) be sufficient?
<persia> (I consider library related unmet deps to be unfinished NBS, but that's just nomenclature)
<sistpoty> blatantly: if it comes with headers and you can compile s.th. against the the library in question, it should be packaged as a library
<sistpoty> otherwise (e.g. headers alone not sufficient to build against), somewhere under /usr/lib/??? sounds sane
<persia> OK.  So headers are the useful defining characteristic.  I'll be reusing that argument next time I am trying to defend a package split.
<sistpoty> kind of... usually if you have a shared object only for internal use, there is no much sense for the shared object in the first place ;)
<sistpoty> (why not link statically then)
<sistpoty> of course apart from plugins... which is a different use case
<persia> Argument there would be minimal deviation from upstream build system.
<sistpoty> sure, but of course you can ask upstream why they build a shared object *g*
<sistpoty> to put it in other words: if upstream is sane and builds a shared object, use library packaging style :)
<persia> sistpoty: Thanks a lot for running another session at this time of day (and answering all my questions).  I've packaged a couple libraries before, but have been working out issues empirically, rather than really understanding them.  Your lecture and the session logs have been very helpful in rectifying this.
<sistpoty> persia: you're welcome
<sistpoty> thanks for listening
<sistpoty> and now a small secret: I don't maintain any library myself (though I've packaged one once)
<sistpoty> so my big thank goes to slangasek again, who helped to prepare the initial session :)
<persia> sistpoty: Would you like to?  I don't use any libjsw clients anymore, and someone should probably be watching to see when it breaks :)
<sistpoty> persia: if I only had the time to ... *g*
<persia> sistpoty: No worries.  Darren hasn't updated it in a couple years, and it may well disappear soon :)
<sistpoty> hehe
<james_w> thanks again sistpoty
<sistpoty> james_w: and big thanks for organizing the sessions!
<Rhi_evil_happy> yo
<tenshu> hi all
<tenshu> the last classroom session lof is 404
<tenshu> anyone could rehost it?
<ToyKeeper> tenshu: http://toykeeper.net/tmp/ubuntu-classroom.log
<ToyKeeper> (more than just the last session, but you can ignore the previous bits)
<tenshu> thx ToyKeeper
#ubuntu-classroom 2008-01-20
<mypapit> ciao !!!
<bmk789> is there a session coming up?
<aurax> elkbuntu you idiot :)
#ubuntu-classroom 2009-01-12
<poncho> ...
<poncho> anyobody speak spanish ?
<poncho> quit
<poncho> exit
<mib_nvyh80> #ubuntu
<AB_MCA> #ubuntu
#ubuntu-classroom 2009-01-13
<Drace> hello
<kurrata> hi
<wolter> hi
<Drace> Alrighty
<wolter> em Drace first of all, are you going to have just ubuntu, or windows as well?
<Drace> Im trying to setup ubuntu so I can retrieve my files that were on windows
<Drace> Windows failed on me...
<wolter> oh, if you just want ubuntu for that, you don't have to install it./.
<wolter> it is enough with the live cd
<kurrata> Drace:  cant you just reinstal windows?
<Drace> I need to keep some files...
<Drace> I want a copy of Ubuntu anyways
<kurrata> reinstaling wont delete your files just you /windows directory ;)
<Drace> Well what it says is "All files will be lost"
<Drace> "...in the user directioniry" something like that
<wolter> Drace, well, but if you want ubuntu, let me show you how you will want to partition your drive.
<Drace> Soo...?
<Drace> Ok
<wolter> so, how big is your disk?
<Drace> 120 Gb =/
<wolter> nice
<Drace> I was hoping that by installing ubuntu Id have my windows files mounted automatically without going through the hassle of the terminal
<wolter> ok, will you want to install windows later on?
<wolter> if so, which windows?
<Drace> XP home
<wolter> ok
<Drace> The main reason im trying to get Ubuntu right now is to retrieve my windows files
<wolter> you will probably want an ubuntu partition of 10gb, a windows partition of 10gb also, and a massive other partition of 100gb
<Drace> Ok
<Drace> Although I dont think Ill need 10gb for Ubuntu
<wolter> why not?
<Drace> too much?
<Drace> Its fine though
<Drace> continue on
<wolter> well, you can give it a little less, like 6, but i recommend 10gb
<Drace> Ok
<wolter> em, so, how much space had you occupied in windows?
<Drace> Only like 5 Gb left...including the Ubuntu I have installed
<Drace> which has a 10 gb partition
<Drace> Which I should of mentioned this earlier (forgot about it)
<Drace> My pc crashed and windows failed so I cant open up Ubuntu either.
<Drace> My solution was to reinstall or use livecd to retrieve my windows files and reinstall windows
<wolter> oh sorry!
<wolter> i forgot i was talking to you
<wolter> let me read Drace
<wolter> Drace, are you still with me?
<cprofitt> pleia2, ping
#ubuntu-classroom 2009-01-16
* You're now known as ubuntulog
<cprofitt> pleia2, you here?
<pleia2> cprofitt: yep
<pleia2> cprofitt: you should send out a note about the class tomorrow! :)
<cprofitt> I will -- we have an issue...
<cprofitt> forestpixie needs a bit more time if it is available
<cprofitt> pleia2, I am also going to setup my blog for future classes as well.
<pleia2> that's fine
<forestpixie> hi
<pleia2> she can have as long as she needs :)
<pleia2> nothing else scheduled in here until monday
<cprofitt> Sorry for not getting out the email earlier...
<cprofitt> with my 20th anniversary being yesterday my mind was on that instead of Ubuntu
<forestpixie> :)
<cprofitt> I also got a LUGOR meeting organized and booked with a location in two days...
<cprofitt> pleia2, where is the mailing list for classroom?
<pleia2> ubuntu-classroom
 * pleia2 points to /topic
<pleia2> https://lists.ubuntu.com/mailman/listinfo/ubuntu-classroom
<pleia2> you can subscribe, or I'll just approve your message when it comes in
<cprofitt> k... at work... but doing it now
<forestpixie> cprofitt: I know you're at work do you want me to talk about my issue?
<cprofitt> no... you can talk with pleia2
<cprofitt> to make sure the time is set
<forestpixie> ok will do :)
<pleia2> forestpixie: yours is the sudo & root?
<cprofitt> pleia2, email sent.
<forestpixie> no mine is on the 7th Feb - a partition one
<forestpixie> this one - https://wiki.ubuntu.com/BeginnersTeam/FocusGroups/Education/Events/02072009
<forestpixie> It's done for an hour but if I can have longer it would be good
<pleia2> oh, yes longer is fine
<pleia2> cprofitt: just let it through :)
<pleia2> forestpixie: it's not unusual for classes to run over their time, so no worries :)
<cprofitt> thanks pleia2
<forestpixie> oh that's good :) so I don't have to worry too much then - personally I can't see it being less than 90 minutes
<forestpixie> cprofitt: have you spoken to bodhi at all about our ideas?
<cprofitt> forestpixie, no... I have not...
<cprofitt> Would you want me too...?
<cprofitt> I have just been handling things and then passing him the final stuff...
 * cprofitt ponders if he has forgotten what the 'ideas' are
<forestpixie> sorry - he and I have had an idea about my lesson and maybe easwar's - I can drop you a lineif you like = easier while you're at work
<forestpixie> a shared virtual terminal for them to watch in real time
<cprofitt> ah... yeah that would be nice... tonight we could talk -- past 8pm GMT-5
<forestpixie> pleia2: thanks for that - didn't want to have someone knocking on the door :)
<pleia2> welcome :)
<forestpixie> cprofitt: well I can try and be awake as well - but that's 1AM here :)
<cprofitt> you can send me an email at cprofitt@ubuntu.com too
<forestpixie> ok I'll do that - then you'll have some idea of what he and spoke about before you see him :)
<pleia2> cprofitt: should set your email client up to use it :)
<forestpixie> I can sleep then lol
<nhandler> forestpixie: If you want to do that, you should consider using screen ;)
<forestpixie> nhandler: yea - we were I think - it's all abit new to me so I forget bits :)
<forestpixie> the deal was bodh set up a vm with virtual disks for me to play with - then everyone ssh in as readonly - except me so I could do stuff and they watch
<forestpixie> more or less :)
<cprofitt> http://www.theregister.co.uk/2009/01/15/ubuntu_cant_access_net/
<forestpixie> that's like a rash - I've seen it everywhere...
<cprofitt> That person should be given the Darwin award for stupidity
<pleia2> cprofitt: that is unkind, I would be upset and have trouble if someone sent me a computer with an OS I'd never seen, especially if I encountered problems that made it impossible for me to get my work done
<pleia2> I mean, some hacking at it and most of us would be fine, but she's a pretty normal kid
<pleia2> plus I think it's an important lesson for us when doing this advocacy stuff, this is the kind of gap we're looking to breach
<cprofitt> pleia2, but Dell does not send you Ubuntu machines unless you order it
<cprofitt> nor do they make it easy to find
<cprofitt> so something doesn't line up IMHO
<cprofitt> the fact that she is going to technical school doesn't 'feel' right either
<cprofitt> pleia2, but I guess I should not be so quick to call it an Eye Dee Ten Tee error
<cprofitt> Then again the sub-headline enraged me a bit...
<cprofitt> "Shuttleworth baby kills college dream"
<pleia2> cprofitt: so you disagree with the premise of the story that Dell made a mistake, and believe anyone going to a technical school is stupid if they can't make their way around a different OS?
<pleia2> Dell does make mistakes, and there are a lot of reasons to go to a technical school
<cprofitt> True... Dell does...
<cprofitt> and there are lots of reasons to go to technical school.
<cprofitt> So it is not Ubuntu that caused the issue... but Dell.
<pleia2> yes
<pleia2> and the original reporting of the story was great, that news outlet actually helped her out with ubuntu and it ended up being OK in the end
<pleia2> but it's the internet, so articles like the one you posted show up...
<pleia2> making everyone look stupid and helpless and linux evil
<cprofitt> ah....
<cprofitt> well I stand corrected and redact my earlier statement
<cprofitt> pleia2, it was not clear that Dell made a mistake...
<pleia2> cprofitt: you said yourself that the ubuntu option is hard to find, do you really think someone could order one by mistake?
<cprofitt> pleia2, so as I read it she was going to an IT program (hence the need for the computer) at a technical college and ordered an Ubuntu machine on purpose
<pleia2> it's not like they are cheaper, and there are warnings when you're placing the order
<cprofitt> pleia2, no... I do not think they would order one by mistake...
<pleia2> cprofitt: she said she'd never even heard of Ubuntu
<cprofitt> but a person could order it not knowing that they had...
<cprofitt> if they were directed too by a 'friend' or some such
<pleia2> I think Dell making a mistake is much more likely
<cprofitt> pleia2, if I read it as Dell made a mistake then clearly she is not the issue... it was the slant I took on it... that caused my original reaction
<pleia2> ah :)
<cprofitt> and to be honest, the hack job that the article did in explaining things
<cprofitt> it really comes off as a made up story that is trying to stick it to Ubuntu and Shuttleworth
<cprofitt> the second tag line about "Shuttleworth baby kills college dream" really sets a negative tone with the focus on Ubuntu
 * pleia2 just dislikes the immediate knee-jerk reaction of so many Linux users to call someone "stupid" when they have problems with a new OS
<cprofitt> if it had said "Dell error causes college delay" I would have taken it differently
<pleia2> the original story is called "27 News Troubleshooter: Woman blames Dell for missing online classes"
<pleia2> and they're doing a follow up story because of all the attention
<pleia2> "Ubuntu Users Send Hate E-Mail, Flood WKOWTV.COM Over Story"
<pleia2> makes me sad :(
<cprofitt> The original title is the correct one...
<cprofitt> and would have caused me to more accurately read the article
<cprofitt> and not 'jump' to a conclusion
 * cprofitt smiles
<cprofitt> thanks for setting me strait
<cprofitt> I dislike knee-jerk reactions as well... and actually use Windows so I would not bash people based on OS preference
<cprofitt> I am not a zealot
<pleia2> The young woman also contacted 27 News to report she's being harassed on her Facebook account by Ubuntu users.
 * pleia2 sighs
<pleia2> http://www.wkowtv.com/Global/story.asp?S=9682258&nav=menu1362_2
<pleia2> it's really upsetting
<cprofitt> That is bad -- Ubuntu users should not harass her
#ubuntu-classroom 2009-01-17
<easwar> 30 minutes!
<LeAstrale> :O
<MichaelGodawski> just a quick question: who is here for the course??
 * coolbhavi lifts his both hands up!
<MichaelGodawski> ...perhaps it is a bit too early to ask :)
 * LeAstrale is unfortunately not here, But has turned on his logging device
<linkmaster03> i'm interested in seeing how this "irc class" goes
<linkmaster03> even though i already know about root it should be fun
<MichaelGodawski> linkmaster03, good to hear
<easwar> MichaelGodawski, ask again
<easwar> 15 minutes to go
<MichaelGodawski> because easwar is pushing me I will ask again: Who is here for the class ? :=)
<LeAstrale>  my client is
<mdm> yes, I cam along to see what it was about.
<lukjad007> Bye
<MichaelGodawski> hi mdm good to have you here, would be nice if you could give us some feedback after the class to improve the future classes we organize
<Bodsda> I'm here -- but im gonna go top up the nicotine and caffeine deposits now, il be back in 10
<Bodsda> what is the class about?
<MichaelGodawski> Introduction to Root and Sudo
<MichaelGodawski> Very basic stuff :)
<MichaelGodawski> A Warm - Up for the classed to come
<MichaelGodawski> :=)
<mdm> sure, no problem.
<MichaelGodawski> *classes
<Bodsda> MichaelGodawski, cool, is it gonna go into how to use root account or how to run admin apps without using sudo?
<MichaelGodawski> not this one :) this something for a Root and Sudo II class :=)
<Bodsda> ok, no worries, im sure it will still be educational -- theres always extra bits about basic stuff that i never knew :)
<mdm> need to re-start but will be back before 6.
<MichaelGodawski> true Bodsda and again it is rather an introduction for beginners :) but experienced user can use the knowledge gained here and use it on the forums.... having knowledge is not the same as giving it away
<Bodsda> MichaelGodawski, il be back in 5, but have you considered logging these classrooms and (with permission from lecturer) use them for ubuntu resources?
<linkmaster03> MichaelGodawski: i will definitely give you feedback :) the class is starting in about 2 hours, correct?
<MichaelGodawski> Bodsda, I am the lecturer :)
<MichaelGodawski> linkmaster03, actually it starts in 6 min if I am correct
<forestpixie> no 1800UTC linkmaster03
<linkmaster03> i thought UTC = GMT?
<linkmaster03> oh
<linkmaster03> yeah, i just suck at counting
<forestpixie> it is and it's 17:55 :)
<linkmaster03> heh
<forestpixie> linkmaster03: date -u in terminal :)
<linkmaster03> :P
<Bodsda> MichaelGodawski, oh, lol :)
<MichaelGodawski> shall we start?
<forestpixie> yep
<MichaelGodawski> well then here we go:
<Bodsda> \0/
<MichaelGodawski> Education Focus Group:
<MichaelGodawski> Introduction to Root and Sudo
<MichaelGodawski> by Michael.Godawski and forestpixie
<MichaelGodawski> Short Introduction
<MichaelGodawski> Welcome to the first course prepared by the Education Focus Group; a group from the Beginners Team on the Ubuntuforums.org. As mentioned this is our first course so we are glad to hear your feedback afterwards.
<MichaelGodawski> First I wanted to ask how many of your are here for the course
<linkmaster03> me
<Bodsda> me
<forestpixie> o/
 * linkmaster03 claps
<diogenes> o/
<MichaelGodawski> good not much but better then none :)
<MichaelGodawski> Let's go quickly over the formalities:
<MichaelGodawski> here is our site: https://wiki.ubuntu.com/BeginnersTeam/FocusGroups/Education
<MichaelGodawski> new courses, articles, and resources will be published here.
<MichaelGodawski> We are going to work with the terminal a bit so open it ( Applications > Accessories > Terminal )and also open a web-browser.
<MichaelGodawski> Root and Sudo
<MichaelGodawski> This course is aimed at the very beginners of Ubuntu/Linux; during the course we will cover some very basic terminal commands. So for some of you it might be boring, but for some still new and exciting
<MichaelGodawski> Please bear in mind, we have to cover as much as possible and as easy as possible.
<MichaelGodawski> Let's start.
<MichaelGodawski> The root is the administrator of the system. He can change, edit, delete everything. He/she has absolute power over the system.
<MichaelGodawski> But doing basic stuff like browsing the Internet, using applications etc. does not require the root access, it can be even harmful. The argument which often comes up, is that Ubuntu is restricting the user.
<MichaelGodawski> The root account password is indeed locked as default in Ubuntu. This means you cannot login as root directly. Sometimes however you need root privileges for instance to install a piece of software or do some administrative tasks.
<MichaelGodawski> Here is the grand entrance of sudo; "since the root account physically exists it is still possible to run programs with root-level privileges."
<MichaelGodawski> So you can just add sudo in front of a command, type in your user password, and execute it as root.
<MichaelGodawski> Sudo gives you root privileges temporally.
<MichaelGodawski> Sudo can be split into: You do the command as super-user, as root.
<MichaelGodawski> Let's do some basic terminal tasks now. We will create a new directory in your /home folder first. Sounds easy? It is.
<MichaelGodawski> command:     mkdir ~/test
<MichaelGodawski> The ~ is a symbol for /home/user-name. Open your home folder with Nautilus. And check if the test folder is there.
<MichaelGodawski> is it?
<linkmaster03> yes :D
<MichaelGodawski> To delete it we can use the rm command. On the forums there are many users who cannot operate with this command properly and they delete their whole system because they execute it with sudo and with a wrong syntax.
<MichaelGodawski> The syntax is as follows:
<MichaelGodawski> rm [OPTION]... FILE...
<MichaelGodawski> Always specify a path to directory or folder after the rm command,
<MichaelGodawski> command:    rm ~/test
<MichaelGodawski> What happens? You get an error:
<MichaelGodawski> rm: cannot remove `/home/michael/test': Is a directory
<Bodsda> yes
<MichaelGodawski> rm is for removing files. We will use rm -r to delete recursively.  rm -r removes directories and their contents recursively so be careful with it.
<MichaelGodawski> command:    rm -r ~/test
<MichaelGodawski> Everything is fine? Than we proceed.
<linkmaster03> yep
<MichaelGodawski> So for instance you want to create a directory in /usr.
<MichaelGodawski> Let us check if there is no folder called test in /usr
<MichaelGodawski> command:    ls /usr/
<MichaelGodawski> command:     sudo mkdir /usr/test
<coolbhavi> okay!
<MichaelGodawski> Navigate into the /usr directory with
<MichaelGodawski> command:     cd /usr
<MichaelGodawski> Use the command ls to list the directories located there. The test directory should be visible.
<MichaelGodawski> Now we want to remove the test directory. Using the rm command via the terminal and especially with root privileges is very dangerous and must be executed with alertness and a cautious mind.
<MichaelGodawski> The correct command to remove the test directory we have just created is:
<MichaelGodawski> command:     sudo rm -r /usr/test
<MichaelGodawski> Always remember to specify a path to the directory or file after the rm command or you are in big trouble.
<MichaelGodawski> Questions so far? I hope your system is still there :)
<linkmaster03> a ton of text is scrolling by and it is removing /boot
<linkmaster03> is that good?
<MichaelGodawski> not good
<linkmaster03> just kidding lol
<MichaelGodawski> i was dying
<linkmaster03> :P
<MichaelGodawski> next point then ::))))) no jokes :)
<coolbhavi> MichaelGodawski, I have a doubt
<forestpixie> :)
<mdm> sorry i had connection problems, but am following
<MichaelGodawski> no problem mdm
<MichaelGodawski> next point then:
<MichaelGodawski> Advantages/Disadvantages of Sudo
<MichaelGodawski> Pros:
<MichaelGodawski> You have only one password. This is a good thing when you are a forgetful person.
<MichaelGodawski> Your actions are somewhat supervised by the precondition to enter your sudo/root password.
<MichaelGodawski> Brute-force attacks on the root-account become meaningless because there is no root-account.
<MichaelGodawski> The transfer of rights is very flexible and highly customizable. (via sudoers file)
<MichaelGodawski> The default authentication is limited to a specific amount of time - 15 min (can be changed). So if you leave the machine, you do not leave an open root-terminal forever.
<MichaelGodawski> Basically you can say using sudo is safer than a root account by default. The "restriction" to type in the password each time after sudo gives you a break to really think about the consequences of your next actions. Sudo can save you from your own genius.
<easwar> lol
<coolbhavi> MichaelGodawski, for removing/ making files of the user you dont need sudo in general right?
<Bodsda> coolbhavi, you can remove and make files/folders in your /home dir because you own it
<MichaelGodawski> everything what happen in your /home folder is done without sudo
<MichaelGodawski> yes Bodsda thx :)
<linkmaster03> we have two MichaelGodawski's cool
<MichaelGodawski> feel free to jump in and help me out if you know better :)
<MichaelGodawski> Cons
<Bodsda> if you did chown -R <username> /    then you would a) bugger everything up, and b) be able to create files folders anywhere without sudo -- i think :)
<coolbhavi> MichaelGodawski, yup that was what I was trying to tell :) Thanks
<MichaelGodawski> Ok now the cons:
<MichaelGodawski> A real life example:
<MichaelGodawski> http://ubuntuforums.org/showthread.php?t=1001804
<MichaelGodawski> Basically it can be summarized with: "Redirecting the output of commands run with sudo requires a different approach. For instance consider sudo ls > /root/somefile will not work since it is the shell that tries to write to that file. You can use ls | sudo tee -a /root/somefile to append, or ls | sudo tee /root/somefile to overwrite contents. You could also pass the whole command to a shell process run under sudo to have
<MichaelGodawski>  the file written to with root permissions, such as sudo sh -c ls > /root/somefile.
<MichaelGodawski> This is just an info to be complete; you have not to understand the syntax of these commands now. Perhaps it is a topic for another course. For now it is sufficient to say that sudo needs a specifiic syntax when more than one command is executed at once.
<easwar> or when you are redirecting,as in this case
<MichaelGodawski> Let's proceed we have some more topics ..... true easwar
<coolbhavi> true
<MichaelGodawski> next point then:
<MichaelGodawski> auth.log and .bash_history
<MichaelGodawski> All your commmands started with sudo, executed with root privileges are stored in this log:
<MichaelGodawski> /var/log/auth.log
<MichaelGodawski> You can either access it by System - Administration - System Log - auth.log, or by typing into the terminal
<MichaelGodawski> nano /var/log/auth.log
<MichaelGodawski> This log is very useful if you messed something up, and want to look up the commands executed with sudo.
<easwar> MichaelGodawski, wouldn't be easier with cat /var/log/auth.log
<Bodsda> or nano can be replaced by any editor
<easwar> ?
<MichaelGodawski> yes cat / less what you want :)
<linkmaster03> ooh i didn't know that one
<easwar> neither I
<MichaelGodawski> wanted just to introduce one cli editor at this point
<Bodsda> VIM!!
<coolbhavi> or more also some times I think :)
<linkmaster03> so will that log contain all commands execute as sudo?
<MichaelGodawski> we all should no gedit and vim is complex
<Bodsda> coolbhavi, more is primitive less
<MichaelGodawski> linkmaster03, The usual entry login and usage of a sudo command looks as follows:
<coolbhavi> :)
<easwar> emacs!I don't know anything about it though,I prefer vim
<MichaelGodawski> Dec 4 10:35:37 michael-laptop sudo: michael : TTY=pts/0 ; PWD=/home/michael ; USER=root ; COMMAND=/usr/bin/apt-get install ubuntu-restricted-extras
<forestpixie> can we cut the chat please
<MichaelGodawski> thx forestpixie
<linkmaster03> ah yes i see it thank you MichaelGodawski
<MichaelGodawski> you see the command executed and the user in this example the root
<MichaelGodawski> There is also a log which stores every command you type into the terminal. It is located here:
<Bodsda> MichaelGodawski, may i ask a question?
<easwar> linkmaster03, that file contains all the commands *you* executed as sudo
<easwar> *with
<MichaelGodawski> can we wait till the end of this section with questions and remarks?
<MichaelGodawski> thx
<Bodsda> sure, sorry
<MichaelGodawski> There is also a log which stores every command you type into the terminal. It is located here:
<MichaelGodawski> ~/.bash_history
<MichaelGodawski> So open it with nano ~/.bash_history and have a look at all your commands used so far. Notice that you do not need the sudo in front of the nano command, because the .bash-history is located in your home directory. In this directory the user has read, write and execute permissions.
<MichaelGodawski> Other possibilities to open the log are:
<MichaelGodawski> cat .bash_history |grep sudo
<MichaelGodawski> If it was recent use tail as well
<MichaelGodawski> cat .bash_history |grep sudo |tail
<MichaelGodawski> Questions so far?
<Bodsda> MichaelGodawski, does auth.log store unsuccessful sudo attempts?
<MichaelGodawski> good question let's try it out :) what do you mean by unsuccessful?
<MichaelGodawski> wrong password?
<MichaelGodawski> command not found?
<Bodsda> wrong password > 3 times -- or wrong password once
<forestpixie> I will try and report back
<MichaelGodawski> we can solve this here I guess... just try it out everybody
<Bodsda> iirc sudo will re-prompt three times, if still unsuccessful it just doesnt run the command
<MichaelGodawski> run this command: sudo apt-get installl foo
<MichaelGodawski> does it occur in the log?
<forestpixie>  1 incorrect password attempt
<forestpixie> so yes it does Bodsda :)
<MichaelGodawski> Jan 17 19:24:14 michael-laptop sudo:  michael : TTY=pts/0 ; PWD=/home/michael ; USER=root ; COMMAND=/usr/bin/apt-get installl f
<Bodsda> Jan 17 18:24:03 bod sudo:      bod : 3 incorrect password attempts ; TTY=pts/0 ; PWD=/home/bod ; USER=root ; COMMAND=/usr/bin/apt-get install foo
<Bodsda> bod@bod:~
<linkmaster03> yup it does
<Bodsda> yep :)
<MichaelGodawski> nice question empirically solved
<Bodsda> so if you wanted to see if anyone had tried to use your computer while you were away
<Bodsda> you could
<easwar> I didn't enter anything as password,and it just reported an authentication failure
<easwar> not an "incorrect password attempt"
<Bodsda> cat /var/log/auth.log | grep incorrect
<Bodsda> or tail it first for recent incorrect attempts
<easwar> zilch results
<easwar> of course,I was only running sudo apt-get update
<Bodsda> easwar, it doesnt matter about the command
<linkmaster03> can we let the course go on :P
<Bodsda> easwar, the authentication error was still logged, but not as an incorrect attempt because you didnt attempt anything
<MichaelGodawski> Jan 17 19:26:20 michael-laptop sudo: pam_unix(sudo:auth): authentication failure; logname=michael uid=0 euid=0 tty=/dev/pts/1 ruser= rhost=  user=michael
<easwar> Bodsda, hmm
<easwar> MichaelGodawski, exactly
<MichaelGodawski> so you see everything is somehow logged. Especially useful while helping new users on the forums
<MichaelGodawski> who have executed commands, and cannot remember how they nuked their system :)
<MichaelGodawski> Let's come back to the theory. When you are asking yourself "what does this and that command actually do" run man commandname in the terminal for details.
<MichaelGodawski> So for instance :
<MichaelGodawski> man sudo
<MichaelGodawski> There we read:
<MichaelGodawski> DESCRIPTION
<MichaelGodawski> sudo allows a permitted user to execute a command as the superuser or another user, as specified in the sudoers file.
<MichaelGodawski> Next question: what is the sudoers file?
<MichaelGodawski> "The sudoers file controls who can run what commands as what users on what machines and can also control special things such as whether you need a password for particular commands. The file is composed of aliases (basically variables) and user specifications (which control who can run what)."
<MichaelGodawski> Here is an example of a sudoers file:
<MichaelGodawski> http://www.gratisoft.us/sudo/sample.sudoers
<easwar> MichaelGodawski, one point I would like to make(later if you say so)
<forestpixie> later
<MichaelGodawski> sure at the end of every sections is time to aks and speak
<MichaelGodawski> And this is our default Ubuntu sudoers file:
<Bodsda> just a quick fyi, the sudoers file is located here: /etc/sudoers
<MichaelGodawski> https://help.ubuntu.com/community/Sudoers#The Default Ubuntu Sudoers File
<MichaelGodawski> good Bodsda
<MichaelGodawski> Editing the sudoers file should be only done when you know what you are doing. A usual user, who just wants to work with the system, will never have to open this file if he/she does not want to.
<MichaelGodawski> If you want more info on how to change the sudoers file ( but it is a rather rare task to do and some changes like removing the prompt for the sudo password are not supported by Canonical) have a look at:
<MichaelGodawski> http://www.wlug.org.nz/SudoHowto
<MichaelGodawski> https://help.ubuntu.com/community/Sudoers
<MichaelGodawski> ok questions and remarks
<MichaelGodawski> now
<MichaelGodawski> :)
<easwar> [23:57]<MichaelGodawski> so you see everything is somehow logged. Especially useful while helping new users on the forums[23:58]<MichaelGodawski> who have executed commands, and cannot remember how they nuked their system :)<--If they have run sudo rm -rf /,even /var/log/auth.log won't be able to tell you what they've done
<Bodsda> lol, correct
<MichaelGodawski> worst case scenario
<linkmaster03> /var is one of the last directories to be removed though
<MichaelGodawski> true
<forestpixie> but I assume that they will be able to remeber that one :)
<MichaelGodawski> questions to the audience from me if you run the sudo rm -rf command is there anything you can do to stop it??
<easwar> forestpixie, not,if they've run one of those "hex code gibberish" ways
<linkmaster03> Ctrl+C
<Bodsda> ctrl+c
<MichaelGodawski> anybody tried this out ?  joke please do not try to replicate this :)
<easwar> linkmaster03, I don't know that,but why would /var be one of the last directories to be removed?
<Bodsda> easwar, those should never be run untill you can personally read all of the code (usually)
<linkmaster03> easwar: because it is alphabetically after most other directories in /
 * Bodsda sets up VM to disobey orders :)
<forestpixie> yes on a vm MichaelGodawski
<forestpixie> it works ;)
<linkmaster03> easwar: so /boot, /bin, /etc, /home and stuff would be removed before it even got to /var
<easwar> Bodsda, I know,but those things were (unfortunately) disguised as gelp
<MichaelGodawski> virtualization heaven :)
<easwar> *help
<easwar> linkmaster03, citation needed
<forestpixie> there are I believe some safeguards in jaunty
<Bodsda> easwar, yes, the forums will catch them pretty quick now, and kmandla has posted a harmful commands sticky thread explaining some of them
<linkmaster03> eh google it
<linkmaster03> :P
<easwar> Bodsda, I know that,that's where I found out
<Bodsda> :)
<MichaelGodawski> ok next point then: :)
<easwar> and I wrote a thread too,asking exactly how they were disguised
<MichaelGodawski> The Standards
<MichaelGodawski> sh sh sh
<MichaelGodawski> To enhance the security of Linux-Systems administrative tasks can only be executed with super-user (Administrator) privileges.
<MichaelGodawski> With the prefix sudo the user can run a command with these privileges and change the system freely and without restrictions.
<MichaelGodawski> Root is the Super-user in Linux. The Root can be compared to the Administrator in Windows. The root may do everything. The root may nuke his system, Linux/Ubuntu will kindly ask if the user really wants this to happen, and then it will explode.
<MichaelGodawski> The Root can edit every single file on the system. Therefore it is rather dangerous to act as root the whole time.
<MichaelGodawski> Root privileges are bound to time. So if the task at hand is accomplished, the super-user becomes a "normal" user again. This is reasonable, because every attacker which might somehow gain control over the system gains also the normal user rights, and not the root privileges.
<MichaelGodawski> The Linux Standard
<MichaelGodawski> During the installation a root account with a corresponding root password was created. Additional users with restricted rights were also set up. To do administrative tasks the user had use the Terminal: he/she had to switch with su (substitute user identity) and the root password into the role of the root. With exit the root became a normal user again.
<MichaelGodawski> For a long period of time this was the usual procedure - but this method has some disadvantages:
<MichaelGodawski> When you forget to exit the root mode, the system becomes vulnerable.
<MichaelGodawski> You have to remember two different passwords: the root and the user password.
<MichaelGodawski> The root account can be very seducing and can entice to do real damage
<MichaelGodawski> The Ubuntu Standard
<MichaelGodawski> of that the first user is able to activate root rights temporally.
<MichaelGodawski> sry
<MichaelGodawski> The Ubuntu developers followed a different path. A root account does exist, but it is disabled by default. Instead of that the first user is able to activate root rights temporally.
<MichaelGodawski> This happens with the help of the terminal: sudo (super-user, do) in front of a command executes it with root right. Graphical applications are launched with gksudo or kdesudo respectively.
<MichaelGodawski> So when Ubuntu asks you for a password, it is always the user (login) password. You won't see the password when you type it in into the Terminal; you have to type blindly, so to speak.
<MichaelGodawski> Only users which belong to the admin group can gain root privileges. More precisely "for sudo, you do not need to be in the admin group; you only need access in the sudoers file, or in a group specified in the sudoers file; for su, you need to be in the admin group."
<MichaelGodawski> More info on this topic can be found here:
<MichaelGodawski> https://help.ubuntu.com/community/AddUsersHowto
<MichaelGodawski> One disadvantage of this method might be the time-limited effect of the sudo command. You can extend the period however:
<MichaelGodawski> https://help.ubuntu.com/community/RootSudoTimeout
<MichaelGodawski> But it definitely has its advantages:
<MichaelGodawski> More than once super-user can exist; they can have different rights.
<MichaelGodawski> Time-limitations is set to 15 minutes, after this period of time the password must the re-entered.
<MichaelGodawski> You have to remember only one password.
<MichaelGodawski> The educational effect is bigger, because every time you do an important administrative task, the sudo password reminds you of it.
<MichaelGodawski> Another advantage of sudo, it allows a graded access to root. The commands su (root environment) is all or none; but you can configure sudo such that a user may run some commands , but not others.
<MichaelGodawski> To increase the time in which one have root privileges, for instance to run several commands, you can enter a pseudo-root-shell:
<MichaelGodawski> command :     sudo -i
<MichaelGodawski> and you can exit the root environment with the command :     exit
<MichaelGodawski> END
<MichaelGodawski> thx for being here :)
<linkmaster03> why would it be better to run a GUI program as root with gksudo than just sudo if i was running it from terminal?
<MichaelGodawski> questions and remarks now
<mdm> thanks for taking the time MichaelGodawski
 * forestpixie thanks MichaelGodawski 
<linkmaster03> yeah thanks MichaelGodawski i learned some things
 * MichaelGodawski bows
<forestpixie> linkmaster03: you mean like gksu nautilus instead of sudo nautilus
 * easwar claps
<linkmaster03> forestpixie: yeah, why is gksu recommended even if I am starting nautilus from terminal?
<LeAstrale> Are you all done in here?
<Bodsda> there is a good explanation here -- http://www.psychocats.net/ubuntu/graphicalsudo
<MichaelGodawski> Bodsda you can read my mind :)
<linkmaster03> thanks Bodsda i actually just found that :P
<Bodsda> :)
<forestpixie> it can cause unintended side effects - when I first started using ubuntu I did it the other way and got .ice authority problems
<MichaelGodawski> LeAstrale, official part is over
<forestpixie> so I've not done it since - even if I caused it a different way :)
<LeAstrale> MichaelGodawski: Okay then :)
<linkmaster03> i remember i once ran firefox as sudo and all my permissions got changed so i had to fix everything to get my bookmarks and extensions and tabs back :P
<Bodsda> if a graphical program creates a file, and you have run it as the root account, the user would not have write or execute permissions on the file making things tricky
<linkmaster03> yeah
<mdm> need to make myself more familiar with the basic commands
<easwar> ok,0016 here,gotta go
<Bodsda> cya easwar
<linkmaster03> MichaelGodawski: i suggest maybe some more advertising next time. The only reason I knew about this was because I just happened to catch you saying there was a class here 30 minutes before it started
<forestpixie> night easwar
<MichaelGodawski> bye easwar thx for being here
<easwar> Thanks MichaelGodawski ,I learnt about /var/log/auth.log
<Bodsda> mdm, what 'basic' commands?
<easwar> Goodnight all
<Bodsda> night
<forestpixie> yes - we discussed that earlier linkmaster03 somewhere else :)
<linkmaster03> and maybe clarifying when to ask questions before you start the lesson
<Bodsda> +1 linkmaster03
<linkmaster03> but other than that I liked it :)
<MichaelGodawski> linkmaster03, sure thats a good point
<Bodsda> MichaelGodawski, nice lesson, cheers -- i learned a few things about logs i had no idea about
<forestpixie> lessons need to be moderated linkmaster03
<MichaelGodawski> thx linkmaster03 Bodsda
<linkmaster03> yeah
<linkmaster03> that would be cool
<linkmaster03> maybe a +m when he's talking and -m for questions
<mdm> only been linux / ubuntu for a couple of months. and ok with mkdir etc but struggled later on.
<linkmaster03> but you all havae probably figured it out already
<Bodsda> thats what i was thinking
<linkmaster03> hope to remember to come back here on Feb 1
<linkmaster03> good job again forestpixie and MichaelGodawski
<Bodsda> mdm, do you mean with the 'cat' 'less' 'tail' 'more' etc?
<MichaelGodawski> thx again
<Bodsda> well done MichaelGodawski
<Bodsda> + forestpixie
<forestpixie> :)
<mdm> Bodsda: yes that sort of thing
<Bodsda> mdm, would you like me to go over it now?
<mdm> Bodsda: thanks for the offer, I have to go now though. Will do some reading.
<Bodsda> mdm, ok, have fun :) man cat, man tail, man more, man less    are all worth a quick scan read
<mdm> Bodsda: thanks, will hopefully be back the second lesson in Feb.
<Bodsda> cool :)
<forestpixie> thanks for being here Bodsda :)
<Bodsda> no probs forestpixie -- thanks for the lesson
<forestpixie> well I just provided tea and cakes :)
* pleia2 changed the topic of #ubuntu-classroom to: Ubuntu Classroom || https://wiki.ubuntu.com/Classroom || https://lists.ubuntu.com/mailman/listinfo/ubuntu-classroom || Upcoming Event: Ubuntu Developer Week Jan 19-23: https://wiki.ubuntu.com/UbuntuDeveloperWeek
#ubuntu-classroom 2009-01-18
<stormchas2000> hi I am trying to register my nick but it is greek to me on the instruction
<adr> hi
<toobuntu> !help
<ubot5> Hi! I'm #ubuntu-classroom's favorite infobot, you can search my brain yourself at http://ubottu.com/factoids.cgi - Usage info: http://wiki.ubuntu.com/UbuntuBots
#ubuntu-classroom 2010-01-18
<vvesley> o/
<ghostcube>   /IGNORE *!*@* CTCP DCC fÃ¼r xchat falls jemand brauch :)
<ejlal> hey
<wind_> re
<Ghoul> whoa, didn't know about this place, pretty cool imo :)
<flintstone> Ð¿ÑÐ¸Ð²ÐµÑ Ð²ÑÐµÐ¼ :0
<flintstone> :)
<flintstone> ÑÑ ÐµÑ ÑÐ¼ÑÐºÐ½ÑÑÑ Ð)
<flintstone> hi to everyone :)
<flintstone> -u
#ubuntu-classroom 2010-01-19
<keegangrayson> when is the next class?
<jmarsden> keegangrayson: https://wiki.ubuntu.com/Classroom#Schedule
<keegangrayson> thanks
<keegangrayson> you don't happen to know about any generic linux classes do you?
<jmarsden> You're welcome.
<jmarsden> I'd suggest reading http://tldp.org/LDP/intro-linux/html/intro-linux.html
<jmarsden> For a decent general intro to Linux...
<keegangrayson> thanks, are there IRC classes for non-general information about linux aside from ubuntu specifically?
<keegangrayson> I'm currently running in pure command line mode, no desktop... I'm using screen to manage terminals
<keegangrayson> so I would like to learn more about the system
<jmarsden> I'm not really sure.  You could try asking in #linux about that.  Also see http://www.linux.org/lessons/beginner/ for a self-teach class.  And for a more detailed guide, if you have the time and energy, use RUTE
<jmarsden> !rute
<ubottu> documentation is to be found at http://help.ubuntu.com and http://wiki.ubuntu.com - General linux documentation: http://www.tldp.org - http://rute.2038bug.com
<ubot2`> documentation is to be found at http://help.ubuntu.com and http://wiki.ubuntu.com - General linux documentation: http://www.tldp.org - http://rute.2038bug.com
<keegangrayson> oh cool, awesome
<keegangrayson> thanks again
<jmarsden> No problem.
<gotys> heiii
<gotys> new User in this room
<Zarkonia999> Just testing...
<Zarkonia999> Bye
<M1TE5H> hi
#ubuntu-classroom 2010-01-21
<Hammer> Hy all
<cjohnston> hello
<Hammer> It a hungarian room?:D
<cjohnston> This is not, no.. This is for classes to be taught..
<Hammer> I mean
<Hammer> from what?
<cjohnston> If you look in the topic there is a link to the course schedules in here...
* cjohnston changed the topic of #ubuntu-classroom to: Ubuntu Classroom || Classroom sessions now finished || Support in #ubuntu || https://wiki.ubuntu.com/Classroom || https://wiki.ubuntu.com/Packaging/Training || Upcoming: Thu Jan 21 2010 @ 20:00 UTC: Python Applications Packaging; Sat Jan 23 2010 @ 12:00 - 3:00 (Sun) UTC: Ubuntu User Day || Run 'date -u' in a terminal to find out the UTC time
<DktrKranz> so, who's here for Python Application Packaging session? :)
<DktrKranz> cjohnston should, at least ;)
<cjohnston> huh who what
<DktrKranz> let's wait some more minutes for more people to come, and then start the session
 * cjohnston does want to learn python...
<DktrKranz> ok, wait is over, I think we can start
<DktrKranz> Hello everybody, and thank you to be here at Python Application packaging session!
<DktrKranz> My name is Luca Falavigna, I'm a MOTU and Debian Developer, and I'll be your SABPDFT (Self-Appointed Benevolent Python Dictator For Today) for the next minutes :)
<DktrKranz> We will discuss basic packaging today, we will face some in-depth implementation details next week at Ubuntu Developer Week.
<DktrKranz> In this session, we will see how to package and maintain Python applications easily, so let's start with a really short introduction.
<soren> DktrKranz: I hate to break this to you, but you're a week early.
<cjohnston> No he isn't
<soren> He's not?
<cjohnston> He has a class scheduled toda
<cjohnston> today
<cjohnston> seperate from UDW
<soren> Oh, sorry.
<cjohnston> ;-)
<cjohnston> np
<DktrKranz> soren: no, I have two sessions, one today for PackagingTraining, and another one on Wed next week :)
<soren> Ok, sorry.
<DktrKranz> no
<DktrKranz> *np
<DktrKranz> I refer to a "Python application" as a piece of software composed by one or more Python scripts and eventually one of more modules (or "packages", distutils calls them that way).
<DktrKranz> Other kinds of software are "Python modules", which contain modules potentially useful for other programs, and "Python extensions", which usually are C source files, compiled and liked for a given Python interpreter to extend its features.
<DktrKranz> But how does a Python application look like?
<DktrKranz> I've created a really dumb one for the occasion. Open your favourite terminal and launch dget -u http://people.debian.org/~dktrkranz/pythontest/pythontest_0.1-1/pythontest_0.1-1.dsc
<DktrKranz> Once you've downloaded it, look at pythontest-0.1 directory, you will find pythontest script, PythonTest module (or "package") and setup.py, which is Python distutils' "makefile".
<DktrKranz> It's probably the smallest Python application you'll ever seen, it just prints a message, and then exits :)
<DktrKranz> Invest a couple of minutes to examine the few files available, then we will move to packaging, unless you have questions.
<DktrKranz> Any questions so far?
<DktrKranz> Ok, moving forward then.
<DktrKranz> OK, now moving to debian directory/, its structure is quite straigthforward, I added some examples and comments to ease your job if you like CDBS or old-style debhelper.
<DktrKranz> The most important files right now are control and rules, they must contain some peculiar things for Python, let's see them together.
<DktrKranz> control has some comments to ease your job, but you should usually pay attention to Build-Depends, XS-Python-Version field and Depends.
<DktrKranz> One of the common "mistakes" is build-depending on python-dev or python-all-dev while having only .py files (as this application provides). Well, it's not a mistake per-se, but it's a waste of resources.
<DktrKranz> .py files haven't to be compiled, so we don't need anything from Python -dev packages.
<DktrKranz> Starting from version 2.3.0, lintian complains about that, so hopefully maintainers will take care of fixing packages (there are a *lot*: http://lintian.debian.org/tags/build-depends-on-python-dev-with-no-arch-any.html ).
<DktrKranz> Patch to Lintian is mine, so expect bugs from that check :P
<DktrKranz> Next interesting line is XS-Python-Version. This instruct Python helper tools (python-central or python-support) to byte-compile files for the desired versions, and expands ${python:Depends} to the correct value, so you don't have to manage dependencies to the Python interpreter anymore.
<DktrKranz> If you omit it, your package will be targeted for every supported Python version currently available, pyversions -s shows you which ones.
<DktrKranz> I recommend you to always mention it, it will help a lot during transitions between a Python version to another, and it immediately shows compatibility between versions.
<DktrKranz> debian/pyversions does the same thing as XS-Python-Version (with a different syntax), but it's specific to python-support, while XS-Python-Version is common to both (even if it's not the preferred way in python-support). It's up to you to choose what you like more.
<DktrKranz> Any questions?
<DktrKranz> Ok, moving to the most crucial part. Which are dependencies for our Python software?
<DktrKranz> This is often hard to say, because scripts usually include a lot of modules, many of them already in Python standard library, while some others are provided via stand-alone packages.
<DktrKranz> You can browse Python documentation to see if a module is already provided by Python directly, ask Google, or whatever. But it's a lot of work, a lot of time spent, and a boring task, so I propose you a different approach.
<DktrKranz> In Debian, we created a wonderful script which does most part of the job: http://svn.debian.org/viewsvn/python-modules/tools/find_python_dependencies.py
<DktrKranz> Go and download it somewhere, and let's use it on pythontest to see which its dependencies are.
<DktrKranz> Now, enter pythontest-0.1 directory and launch "python /where/you/downloaded/find_python_dependencies.py ." (do not forget dot!).
<DktrKranz> It will run for a bit, produce some error warnings you can ignore, and the most interesting part: our dependencies :)
<DktrKranz> Output should be very similar to http://people.debian.org/~dktrkranz/pythontest/output .
<DktrKranz> What does it say to us? First dictionary represents modules it already found available on the system, the second those he didn't, or was unable to parse.
<DktrKranz> In our case, it discovered distutils.core and os (they're part of Python standard library, so they're already available), and keybinder (which you probably don't have).
<DktrKranz> It usually provides a much longer list, but I already told you this is the smallest Python application you'll ever seen :)
<DktrKranz> All you have to do is go through this list, and add modules to your Depends line. You can forget about python2.X and python2.X-minimal, they will be provided by python-{support,central} (as we saw some minutes ago), but you have to list the others.
<DktrKranz> Python policy states Debian Python modules packages should be named python-modulename, so it should be easy to guess which package "keybinder" module belongs :)
<mhall119|work> QUESTION: what do the tuple values represent?
<DktrKranz> Of course, this script is only meant to *help*, not to do all the work, so you're asked to double-check these results, but it's usually very good.
<DktrKranz> mhall119|work: the first value says which package a given module belongs (or error message in case it didn't found any), the second is numver of times a given module is found in the sources
<mhall119|work> ah, ok
<mhall119|work> where is it getting the list from?  something like apt-file, or does it have a static list?
<DktrKranz> dpkg -S
<DktrKranz> that way, it's slower, but much more reliable
<mhall119|work> ok
<DktrKranz> {'distutils.core': ('python2.5', 1),
<DktrKranz> distutils.core is module name, python2.5 the package where the module is found (you probably have python2.6 here), and 1 is the number of times module is found
<mhall119|work> very handy
<DktrKranz> It has a bug
<DktrKranz> it looks for *.py files only, it does not search for files with a #!/usr/bin/python shebang, so you will have to manually inspect those.
<DktrKranz> Patches are welcome :)
<DktrKranz> Any other question?
<mhall119|work> that's all for now
<DktrKranz> Finally, let's have a look at rules, I prepared three of them to fit everyone's tastes (dh7, cdbs, and old-style debhelper). Open the one you are more familiar with.
<DktrKranz> Not much to say, and much to write in those, usually setup.py manages things in a good way, and python-support and python-central do the rest.
<DktrKranz> If you like old debhelper style, you have to remember to pass --root and --prefix options to "python setup.py install" call
<DktrKranz> This way, file will be installed in the right locations, and both python2.6 and python2.5 will be fine.
<DktrKranz> If strictly needed --install-layout=deb option should be passed too, this is because python2.6 changed directory where modules are stored, from /usr/share/python2.X/site-packages to /usr/local/share/python2.6/dist-package, and we don't want files in /usr/local :)
<DktrKranz> That option will override default distutils behaviour in python2.6 to fit Debian packaging.
<DktrKranz> Any questions?
<mhall119|work> do python apps get installed /usr/share/python2.x too?
<mhall119|work> or just libs
<DktrKranz> mhall119|work: Yes, they are. /usr/share is a private directory, not accessible by Python directly, so additional care must be used. This will be handled in the next week session in detail.
<mhall119|work> ok, I'll make sure I'm around for that
<mhall119|work> thanks
<DktrKranz> Ok, so we can conclude this session, I'll take one next week at Ubuntu Developer Week about some advanced techniques in Python packaging, I hope to see you there :)
<mhall119|work> I hope so too
<DktrKranz> I'll be around if you have additional questions, or sponsoring requests :P
<DktrKranz> I hope you enjoyed the session, thanks for coming!
<mhall119|work> sponsoring?
<ockham> I'm currently trying to package pysolfc (see LP #179298 and debian #519752)
<ubot2> Launchpad bug 179298 in ubuntu "[needs-packaging] pysolfc missing from repositories" [Wishlist,Confirmed] https://launchpad.net/bugs/179298
<ubottu> Launchpad bug 179298 in ubuntu "[needs-packaging] pysolfc missing from repositories" [Wishlist,Confirmed] https://launchpad.net/bugs/179298
<ubot2> Debian bug 519752 in wnpp "RFP: pysolfc -- A Python solitaire game collection" [Wishlist,Open] http://bugs.debian.org/519752
<ubottu> Debian bug 519752 in wnpp "RFP: pysolfc -- A Python solitaire game collection" [Wishlist,Open] http://bugs.debian.org/519752
<ubot2> Launchpad bug 179298 in ubuntu "[needs-packaging] pysolfc missing from repositories" [Wishlist,Confirmed] https://launchpad.net/bugs/179298
<ubottu> Launchpad bug 179298 in ubuntu "[needs-packaging] pysolfc missing from repositories" [Wishlist,Confirmed] https://launchpad.net/bugs/179298
<ubot2> Launchpad bug 179298 in ubuntu "[needs-packaging] pysolfc missing from repositories" [Wishlist,Confirmed]
<ubottu> Ubuntu bug 179298 in ubuntu "[needs-packaging] pysolfc missing from repositories" [Wishlist,Confirmed]
<ubot2> Ubuntu bug 179298 in ubuntu "[needs-packaging] pysolfc missing from repositories" [Wishlist,Confirmed] https://launchpad.net/bugs/179298
<mhall119|work> bot wars
<ockham> oops
<ockham> Right now, I'm using a cdbs and pysupport based and rather minimal rules file
<DktrKranz> wow! :)
<DktrKranz> ockham: in Debian, we have two teams which take care of sponsoring Python applications and modules, they're usually quick and very good.
<ockham> DktrKranz: okay, thx for the hint. can i still ask you something?
<DktrKranz> I can look at it if you have something ready already (but better moving to a private channel for sponsoring requests)
<ockham> i'd like to override the destination for some files
<DktrKranz> are they installed by distutils, or similar?
<ockham> yeah
<ockham> currently, they go to /usr/share/PySolFC
<DktrKranz> you have two ways: patching distutils or manually move them after python setup.py install call, and before dh_py{support,central} call
<ockham> (but it's a game, i think they belong to /usr/share/games/pysolfc)
<DktrKranz> /usr/games, usually
<ockham> sure? there's binaries, mostly, while /usr/share/games contains some game data files
<DktrKranz> ah, you want the whole directory to be moved under /usr/share/games
<ockham> yeah, it's just some game data -- cardsets etc
<ockham> anyway, i think i'd like to go for the latter option, but i don't know how to override cdbs/pysupport's behavior - my rules file looks mostly like your rules.cdbs
<DktrKranz> then you can pass --install-lib=/usr/share/games/PySolFC to setup.py install call
<DktrKranz> if setup.py handles "packages", you should be fine
<ockham> i think i had that already, but that caused pixmap/icons/desktop directories there, too
<ockham> * to go there, too
<DktrKranz> you can use data_files instead of packages in setup.py for those
<DktrKranz> and let directories with Python modules managed by packages directive
<DktrKranz> e.g. see http://bazaar.launchpad.net/~dktrkranz/debomatic/debomatic.dev/annotate/head%3A/setup.py
<ockham> okay, so it's mostly patching setup.py
<ockham> hm... but i think i still need to tweak the rules file
<ockham> the script is called pysol.py, though it should be renamed to pysolfc
<ockham> can you tell me how to do that?
<DktrKranz> you can use a symlink for it, it's common practice
<DktrKranz> and put it in /usr/games, for instance
<DktrKranz> else, you will have to mv it in rules.
<ockham> yeah, thats were it already goes because of DEB_PYTHON_INSTALL_ARGS_ALL += --install-scripts=/usr/games
<DktrKranz> yeah, that's the other powerful and wide-used distutils variable :)
<ockham> i guess i'm outing myself as the total newbie now, but i don't know where to insert this symlinking within this cdbs based rules file...
<DktrKranz> use debian/links
<ockham> okay, i guess that's basically it for the python related stuff. thanks!
<DktrKranz> np, feel free to drop me a line for a deeper review :)
<ockham> cool!
* pleia2 changed the topic of #ubuntu-classroom to: Ubuntu Classroom || Classroom sessions now finished || Support in #ubuntu || https://wiki.ubuntu.com/Classroom || https://wiki.ubuntu.com/Packaging/Training || Upcoming: Sat Jan 23 2010 @ 12:00 - 3:00 (Sun) UTC: Ubuntu User Day; Mon 25 Jan - Fri 29 Jan 2010: Ubuntu Developer Week || Run 'date -u' in a terminal to find out the UTC time
* pleia2 changed the topic of #ubuntu-classroom to: Ubuntu Classroom || Support in #ubuntu || https://wiki.ubuntu.com/Classroom || https://wiki.ubuntu.com/Packaging/Training || Upcoming: Sat Jan 23 2010 @ 12:00 - 3:00 (Sun) UTC: Ubuntu User Day; Mon 25 Jan - Fri 29 Jan 2010: Ubuntu Developer Week || Run 'date -u' in a terminal to find out the UTC time
#ubuntu-classroom 2010-01-22
<geekyogi> Wow.. so many already in the class room...  Upcoming: Sat Jan 23 2010 @ 12:00 - 3:00 (Sun) Hope i wont miss it.. :)
<cjohnston> geekyogi: quite a few people idle in here
<geekyogi> Same here.. searching for useless packages on ubuntu
<zubin71> hello, id like to view the IRC logs of the ubuntu-classroom sessions which have taken place till date. where can i find that?
<zubin71> please help
<soren> zubin71: http://irclogs.ubuntu.com/
<zubin71> well, there are 20 folders inside http://irclogs.ubuntu.com/2010/01/
<zubin71> soren : well, there are 20 folders inside http://irclogs.ubuntu.com/2010/01/
<soren> Yes. There have been 22 days in January so far.
<soren> One folder for each day.
<zubin71> soren : oh!
<soren> See? 2010 <-- Year, 01 <-- Month.
<zubin71> soren : i dint know that was how it worked! :)
<soren> You do now :)
<zubin71> soren : thank you so much! :)
<soren> Sure.
<zubin71> soren : are you a developer?
<soren> Yes.
<zubin71> soren : do you take sessions in the classroom too?
<soren> "take"?
<soren> As in "attend" or "give"?
<zubin71> soren : "give"
<soren> Yes.
<zubin71> soren : awesome :)
<zubin71> soren : well, then, bye. :)
<soren> :)
<nhandler> zubin71: You might also find https://wiki.ubuntu.com/Classroom/InstructionArchive useful
<zubin71> nhandler : checking that out too...
<zubin71> nhandler : thnkx... its very helpful! :)
<nhandler> :)
<lokrin_> test
<spwelton> hi all, got a quick question about writing code for ubuntu...
<mhall119|work> what's the question?
<spwelton> If I wanted to develop an app for some arbitrary function, what do I need to do for it to be available in the repo?
<mhall119|work> ah, that's a packaging question
<mhall119|work> you'll need to make a debian package that conforms to the repo guidelines, then get someone to sponsor it for inclusion
<spwelton> because I was thinking of writing some kind of program for qr-codes or something.. Would be a good learning experience, for sure
<spwelton> ok, so I need to read up on that part first.
<mhall119|work> write the app first
<spwelton> well of course ;) even if I never publish it, I'd like to have the functionality
<mhall119|work> then worry about packaging
<spwelton> was just making sure it was possible before I put too much time into it ;)
<mhall119|work> when you're ready to package, you can find a MOTU (Master of the Universe) to help you package it and sponsor it
<spwelton> ok sounds cool. I would assume they hang out in the motu room?
<mhall119|work> you can get most any open-source application into Universe
<spwelton> cool, thanks!!
<mhall119|work> no problem
<mhall119|work> spwelton: ask in #ubuntu-motu for more information
<spwelton> will do! we'll see how writing the code goes first, though. It'll probably be a while before I'm ready to submit anything
<mhall119|work> will it be GUI
<mhall119|work> ?
<spwelton> yeah, if I go with the QR-code idea. I'm still brainstorming what I want to write of course, I just know I'd like to learn more about the process and contribute something
<spwelton> there's currently a couple open source command line tools for qrcodes, I'd just like to maybe bring them all together
<mhall119|work> check out https://wiki.ubuntu.com/Quickly then
<spwelton> cool, will bookmark that for use later tonight when I get some more free time
 * pleia2 pokes lernid_pl2
<cjohnston> uh oh
<cjohnston> ;-)
<_marx_> helen: good you're here too
<mick__> yay im here :-)
<mick__> hi
#ubuntu-classroom 2010-01-23
<nxlvohyo> Hi all.  It seems we are again seeing javascript based flood spam.  If you are experiencing this, please do not click the links in the messages as they will cause you to repeat the spam. More information is available at http://peoplesprimary.com.  Thanks!
<nxlvohyo> Hi all.  It seems we are again seeing javascript based flood spam.  If you are experiencing this, please do not click the links in the messages as they will cause you to repeat the spam. More information is available at http://peoplesprimary.com.  Thanks!
<kermiac> don't click the links
<sevgav> Hi all.  It seems we are again seeing javascript based flood spam.  If you are experiencing this, please do not click the links in the messages as they will cause you to repeat the spam. More information is available at http://peoplesprimary.com.  Thanks!
<sevgav> Hi all.  It seems we are again seeing javascript based flood spam.  If you are experiencing this, please do not click the links in the messages as they will cause you to repeat the spam. More information is available at http://peoplesprimary.com.  Thanks!
<kermiac> anyone around that can +R the chan?
<kermiac> spambots are hitting harder than usual today :(
<pleia2> no, we're going to have far too many unregistered new users tomorrow morning :(
<pleia2> coming in from lernid and such
<kermiac> good point :(
<pleia2> we'll remove it in the morning
<kermiac> ok :)
<andresmujica> ugghhh i'm so stupid..
<will__> anyone here
<will__> who can help with ubuntu question?
<nigel_nb> will__, this is not a support channel, please in #ubuntu
<will__> i dont understand
<will__> saying go to #ubuntu?
<nigel_nb> will__, yeah, sorry, mistyping.. please ask in #ubuntu
<will__> ok
<will__> thanks
<robertneville777>  
<robertneville777> whatsup fellow students!
<robertneville777> ok
<Ghoul> alright
<Ghoul> here is where it's coming from
<ubu_> hi
<bittin> hi
<ubu_> what time does the user day start?
<AlanBell> in 50 minutes
<yofel> in 50 minutes
<issyl0> Oh awesome :)
<yofel> heh
<Yos> T minus 40 minutes
<Yos> lol
<cjohnston> everyone who is here for User Days, tweet, identi.ca, post about it in your loco channels, facebook, whatever else you use.. (smoke signals if you like) to get people to come join us!
<popey> cjohnston: is there an announcement mail i can forward to my loco?
<cjohnston> popey: yes
<popey> ah found one
<cjohnston> let me guess.. you want me to get it?
<popey> no, its ok
<cjohnston> the one I sent out?
<cjohnston> uh oh
<cjohnston> lernid is causing errors
<cjohnston> someone wake up jono! lol (jk, dont actually wake him up)
<Pendulum> hah, so it is
<qense> cjohnston: what errors?
<Pendulum> I just got that popey isn't a registered protocol as an error
<cjohnston> an alert that says cjohnston is not a registered protocol
<nigel_nb> qense, I got cjohnston is not a registered protocol
<AlanBell> popey really should be a registered protocol
<cjohnston> sounds like eveyone has an error
<qense> I donnot! I must be registered
<popey> so lernid doesn't like it when someone mentions another nickname
<nigel_nb> popey, probably
<cjohnston> i guess?
<popey> we can ask the tutors to make sure they dont do that
<AlanBell> it is the colon on the name
<qense> ah, I understand! It is the URL parser
<nigel_nb> lemme try
<cjohnston> thats gonna be really hard
<cjohnston> is it AlanBell ?
<nigel_nb> popey: test
<qense> try to avoid all not http protocols!
<cjohnston> AlanBell looks like it is
<cjohnston> no colons today!!!
<cjohnston> lol
<qense> If you've got questions related to Lernid, ping me, I've hacked on it, but I am busy
<AlanBell> someone file a bug :-)
<AlanBell> was that colon OK?
<nigel_nb> I just fixed a bug today
* cjohnston changed the topic of #ubuntu-classroom to: Ubuntu Classroom || Ubuntu User Days starts at 12:00 PM UTC! || Wiki Page: https://wiki.ubuntu.com/UserDays
<qense> Is anyone actually going to use Lernid's slide feature today?
<nigel_nb> qense, no
* cjohnston changed the topic of #ubuntu-classroom to: Ubuntu Classroom Chat || Ubuntu User Days starts at 12:00 PM UTC! || Wiki Page: https://wiki.ubuntu.com/UserDays || Discussions in #ubuntu-classroom-chat
<nigel_nb> qense, we didn't want beginners to miss anything
<cjohnston> No.. we requested they not
<nigel_nb> and adding ppa is not exactly beginner friendly
<qense> makes sense
<AlanBell> which ppa should be used for lernid? jonobacon or lernid-dev
<nigel_nb> jonobacon I think
<cjohnston> I think jono's
<cjohnston> hmm
<cjohnston> https://wiki.ubuntu.com/UbuntuDeveloperWeek/JoiningIn
<cjohnston> freaky... sorry to all of you who are on lernid who I just changed your website
<nhaines> I just used the lernid-devs PPA and Ubuntu User Day comes up fine.
<qense> yes
<cjohnston> https://wiki.ubuntu.com/UserDays
<AlanBell> ok, I had it fail to install from lernid-devs
<nigel_nb> qense, I find that when I open lernid and not enter a user name, I dont get that screen again
<qense> you shouldn't be able to not enter a username, I think ;)
<cjohnston> umm.. why wont it go back...
<qense> btw, you want the ~lernid-devs PPA
<RPG_Master> hey, is this going to be starting at 7 AM american central time?
<qense> cjohnston, there is a drop-down thing for that
<cjohnston> RPG_Master: I believe it is 6 for central time
<cjohnston> its 7 EST
<RPG_Master> Soooo, in an hour?
<cjohnston> 30 minutes
<RPG_Master> :|
<qense> the use of lernid is good for keeping people like me out of this channel since you can't talk in the classroom with lernid
<RPG_Master> GAH!...
<nhaines> haha  :)
<kyubutsu> they are a clan
<AlanBell> if you want to know the time you can /msg ubottu @now UTC
<AlanBell> qense: good point
<RPG_Master> Should I sleep our stay up? :(
<nhaines> There will be logs later.
<AlanBell> RPG_Master: stay up!
<qense> ah, avoid unregistered protocls
<qense> btw, what will happen when I do apt:lernid ?
<qense> not registered either
<RPG_Master> I've been playing RE5 with my dad so I was finally going to get in bed :P
<qense> btw, the introduction session at 12 UTC isn't on the Lernid schedule
<cjohnston> nigel_nb ^^
 * RPG_Master is installing lernid
<AlanBell> please don't use lernid until -classroom is muted
<RPG_Master> :O
<RPG_Master> AlanBell: Why?
<AlanBell> it will automatically open links, if someone pastes one of those spam links here everyone using lernid will be k-lined instantly
<cjohnston> AlanBell I wonder if maybe that is something that needs to be changed in lernid, that only voices or something it automatically opens links?
<RPG_Master> :O ok. thanks
 * pleia2 sighs
<qense> 10 lernid users in this channel at the moment, including a ghost of me
<RPG_Master> and counting :P
<Quintasan|Szel> so that means we could get serious problems here L/
<Quintasan|Szel> are those spam links masked via some url shorten service?
<AlanBell> Quintasan|Szel: I have not seen that yet
<popey> AlanBell: do you want this channel muted?
<popey> and take discussion to -chat..
<popey> (makes sense)
<Quintasan|Szel> popey: sorry for that
<RPG_Master>  :O
<popey> Quintasan|Szel: its not a problem
<AlanBell> popey: I am concerned yes, however the first session is interactive here
<RPG_Master> THE popey? :D
<RPG_Master> ...sorry :P
<popey> hah
<qense> people, please don't use : sign without http or https in front of it, it scares Lernid users
<pleia2> we'll mute it after the interactive portion of the first session
<RPG_Master> popey: I blame you :O
 * dox_drum is using lernid. NICK. doxdrum
<KEPZ> wt time is it?
<HoellP> KEPZ: very relative question...
<_marx_> KEPZ: "date; date -u"
<qense> KEPZ, the command date -u will help you
<nigelbabu> please DO NOT use : after nick completion, it causes error in lernid
<qense> yes indeed!
<cjohnston> that ones gonna be a hard one...
<cjohnston> anyone know how to change the default in irssi?
<RPG_Master> :O what does it do to lernid?
<qense> error
<qense> and the window takes focus when showing that error
<dox_drum> RPG_Master, got a message.
<qense> annoying
<maxb> : is the default in many clients - Why should everyone change to accomodate bugs in a specific piece of software?
<RPG_Master> Oh, well darn
<maxb> Plus it's a standard part of common IRC dialogue as habituated in many *humans* minds
<qense> maxb, because the wiki encourages people to use this software for the Ubuntu Users Day
<maxb> That's a bit of a dramatic failure :-(
<cjohnston> maxb I just wnat to change it for today, so I dont have to remember to remove the : to make it easier for me
<nigelbabu> well guys, chill, its only for some time
<nigelbabu> anyway, you can use : in classroom-chat
<nigelbabu> its only here that you need to be careful
<AlanBell> qense: the wiki for developer days encourages use of lernid, some people are *testing* it today.
<AlanBell> qense: we are learning useful things about it already
<Pendulum> nigelbabu, yes, but you're likely to be c&ping questions in
<qense> yes
<qense> like the fact that I'm not a protocol ;)
<AlanBell> dammit!
<cjohnston> yes you are Quintasan|Szel
<nigelbabu> qense, hehe
<Quintasan|Szel> cjohnston, what?
<nigelbabu> Quintasan|Szel, tab fail ;)
<cjohnston> sorry Quintasan|Szel i was meaning qense
<Quintasan|Szel> oh, happens =P
<qense> such a pity
<qense> the bug is at <https://launchpad.net/bugs/503502>, if anyone's interested
<ubot2> Launchpad bug 503502 in lernid "Whenever Presenter enters text matching '\w+:' lernid tries to open the URL in the browser" [Undecided,Confirmed]
<ubottu> Ubuntu bug 503502 in lernid "Whenever Presenter enters text matching '\w+:' lernid tries to open the URL in the browser" [Undecided,Confirmed]
<ubot2> Ubuntu bug 503502 in lernid "Whenever Presenter enters text matching '\w+:' lernid tries to open the URL in the browser" [Undecided,Confirmed] https://launchpad.net/bugs/503502
<ubottu> Launchpad bug 503502 in lernid "Whenever Presenter enters text matching '\w+:' lernid tries to open the URL in the browser" [Undecided,Confirmed] https://launchpad.net/bugs/503502
<ubot2> Launchpad bug 503502 in lernid "Whenever Presenter enters text matching '\w+:' lernid tries to open the URL in the browser" [Undecided,Confirmed] https://launchpad.net/bugs/503502
<qense> loop!
<qense> one bot should go
<cjohnston> nah
<cjohnston> lol
<Quintasan|Szel> :/
* pleia2 changed the topic of #ubuntu-classroom to: Ubuntu Classroom || Ubuntu User Days starts at 12:00 PM UTC! || Wiki Page: https://wiki.ubuntu.com/UserDays || Discussions in #ubuntu-classroom-chat
<openweek4_> uh?
<openweek4_> uh?
<cjohnston> Hello everyone, and welcome to our first Ubuntu User Day! https://wiki.ubuntu.com/UserDays
<cjohnston> To get things started, who is here for this and where are you from?
<openweek5> anonrock from bangladesh
<pleia2> Elizabeth from Philadelphia, USA :)
<Yos> Yos from Israel
<fvaresi> fvaresi from Montevideo, Uruguay
<hhlp> <- from spain
<Pendulum> Penelope from New York, USA
<Terrabit> Maxim from Russia
<Ryan1> I'm from Australia
 * _marx_ from North Carolina, USA
<habra_Smith_rus> Russia, Yakutia.
<Seadog47> Russia, Moscow
<dox_drum> Chile
<gukk_devel> germany
<nigelbabu> nigel from India
<fobosnet> Russia, Spb
<qense> Sense , the Netherlands
<HoellP> Austria
<ParsnipSoup> Kate, Boston, MA, USA
<ulysses> Szolnok, Hungary
<jepong> the Philippines!!!!
<AlanBell> Alan from England
<n0fun> Russia, Severodvinsk
 * czajkowski is from ireland 
<yofel> Philip, Germanyy
<RPG_Master_> Alabama
<cjohnston> Anyone else?
<Deem> <--- germany
<cjohnston> Great!
<cjohnston> So, what is this day all about anyway?
<cjohnston> User Days was created to be a set of classes offered during a one day period to teach the beginning or intermediate Ubuntu user the basics to get them started with Ubuntu, including:
<cjohnston> (sorry to lernid users!)
<cjohnston> Learn how to install Ubuntu
<cjohnston> Learn how to find equivalent programs in Ubuntu
<cjohnston> Learn how to get help with Ubuntu
<cjohnston> Learn the basics of how to use Ubuntu
<cjohnston> Learn how to get involved in the community
<cjohnston> And more! For our full schedule head over to https://wiki.ubuntu.com/UserDays
<cjohnston> User Days was born out of a discussion at the Ubuntu Developers Summit in November 2009 regarding Ubuntu Open Week not being targeted enough at users.
<cjohnston> Over the past two months, many people have taken the time to help put this day together for you.
<cjohnston> We will be introducing each instructor at the beginning of their session, but I would like to take the time to introduce the leads behind this project, and your hosts for today.
<cjohnston> First let me introduce you to pleia2.
<pleia2> My name is Elizabeth Krumbach, I'm currently living in Philadelphia, USA (soon to be moving to San Francisco!) and I got involved with this via the Ubuntu Community Learning Project: https://wiki.ubuntu.com/Learning
<pleia2> I'm also a member of the Ubuntu Community Council, do a lot of work with LoCo teams and do upstream development in Debian
<cjohnston> Next we have Pendulum.
<Pendulum> Hiya, I'm Penelope Stowe. I live in New York City (for now), although people online seem to often think I'm in the UK. I got involved through the Ubuntu Developer Summit when this was first suggested as an event.
<Pendulum> Other things I do with Ubuntu include working on the Ubuntu Women project, Ubuntu NGO, and doing transcripts for the Ubuntu Uk Podcast
<cjohnston> Up next is _marx_
<_marx_> My name is Mark Cox. I currently live in Winston-Salem, North Carolina.
<_marx_> I began using Linux in '98 about a year after my wife and I bought our first computer for Christmas '97. We couldn't share that computer so I took an old clunker given to me by a customer and installed RedHat 6.0 on it
<_marx_> I bagan using Ubuntu with the 5.04 release.
<_marx_> I'm also involved with the North Carolina LoCo Team
<_marx_> I hope to be unique by being the first Grandfather in recorded history to convert his grandsons to Ubuntu instead of the other way around. The two oldest were dazzled by "the cube" over the holidays.
<cjohnston> nigelbabu, is next.
<nigelbabu> Hi, I'm Nigel and I'm a computer science student from India who is a passionate FOSS and Ubuntu enthusiast and, like pleia2, I got involved via the Ubuntu Community Learning Project!
<nigelbabu> I'm a course writer with the Ubuntu Community Learning Project and a bug triager with the Ubuntu Bug Squad.
<cjohnston> And I guess that I am last... ;-)
<cjohnston> My name is Chris Johnston. I'm from Orlando, Florida.. (Go Florida LoCo!) In real life I'm a Fire Fighter Paramedic.
<cjohnston> Around here I'm a member of the Ubuntu Community Learning Project, Ubuntu Beginners Team, Ubuntu Bug Squad, and I do quite a bit of work helping out with the Ubuntu Website.
<pleia2> thanks cjohnston!
<pleia2> Now, we will give you a quick rundown of how today will work:
<pleia2> Each hour, a presenter will be giving a class in this channel, #ubuntu-classroom
<pleia2> During the classes, #ubuntu-classroom will be moderated (+m), meaning that only the instructor and hosts will be able to speak in that channel.
<pleia2> Please hold all discussion about the class in #ubuntu-classroom-chat
<pleia2> If you have a question during the class, please ask in #ubuntu-classroom-chat with the prefix QUESTION for instance, you may say
<pleia2> QUESTION How do you uninstall a program?
<Pendulum> After each session (as soon as our volunteers can), we'll be posting logs on the wiki, so be sure to check back to https://wiki.ubuntu.com/UserDays if you missed anything.
<Pendulum> Logs will also be automatically generated at http://irclogs.ubuntu.com
<Pendulum> Since you're already here, you know how to participate, but in case you have a friend you'd like to invite, you can find some help on the Joining In wiki page,
<Pendulum> https://wiki.ubuntu.com/UserDays/JoiningIn
<Pendulum> It gives you links to some client documentation, as well as the direct link to joining #ubuntu-classroom & #ubuntu-classroom-chat via a web browser.
<_marx_> You may have seen articles about the Lernid application which is designed for learning events such as this, you can certainly try out Lernid for User Days,
<_marx_> We should note here that lernid is still alpha software and as such users should be aware it may have problems.
<_marx_> we just won't be using the slideshow functionality this time.
<_marx_> More info on Lernid including how to install it on Ubuntu at
<_marx_> https://wiki.ubuntu.com/Lernid it would be great to have your feedback on Lernid at the end of the day.
<_marx_> We hope that this event can continue to grow and that we'll host more days like this.
<_marx_> Indeed, it's already inspired a Spanish version of the day which is also being held today: https://wiki.ubuntu.com/DiaDelUsuarioUbuntu
<nigelbabu> The User Days Team has worked with Local Community Teams (LoCos), the Ubuntu Beginners Team, Ubuntu Classroom and the Ubuntu Community Learning Project and others within the wider community to bring this day to you.
<nigelbabu> For more information about any of these see their wiki pages
<nigelbabu> https://wiki.ubuntu.com/LoCoTeams
<nigelbabu> https://wiki.ubuntu.com/BeginnersTeam
<nigelbabu> https://wiki.ubuntu.com/Classroom
<nigelbabu> https://wiki.ubuntu.com/Learning
<nigelbabu> To quiet various noise that happens in the IRC channels during the talk use this command (in supported clients only)
<nigelbabu> type "/ignore #ubuntu-classroom CRAP NOTICES SNOTES CTCPS JOINS PARTS QUITS KICKS MODES WALLOPS NICKS DCC DCCMSGS CLIENTNOTICES CLIENTCRAP CLIENTERRORS HILIGHTS" without the quotes
<nigelbabu> If you are on webchat, Click on the small blue box on top left corner and click "Options."  Add a tick to "Hide JOINS/PARTS/QUITS:"
<nigelbabu> Unfortunately, Freenode, the IRC network we use, has been hit hard recently with an influx of javascript spam. For more information please see http://blog.freenode.net/2010/01/javascript-spam/. Do NOT click ANY other links that say you are infected or they give you more information about the spam.
<nigelbabu> Finally, before we get to some general Q&A in this introduction session, a big thanks to everyone who made this day possible :)
<nigelbabu> Anyone have any general questions about the day?
<Pendulum>  doxdrum> QUESTION - What does supported clients only means?
<Pendulum>  doxdrum> QUESTION - What does supported clients only means?
<nigelbabu> well, not all clients support the /ignore function.  try it and if ti doesn't work, let us know your client
<pleia2> < HoellP> QUESTION how can i un-ignore stuff again?
<nigelbabu> For those of you, if the command didn't work and you're on X-chat
<nigelbabu> On x-chat GNOME, there is a checkbox for hiding/showing join/part messages in the channel context menu of Xchat GNOME (thanks qense )
<pleia2> regarding un-ignoring, most clients have an /unignore option
<pleia2> < Deem> Question is this "tutorial" tody for all ubuntu versions?
<pleia2> we're focusing on karmic Ubuntu
<pleia2> but some sessions may touch upon other varients and versions
<pleia2> < starcraftman> Question - Where's the cake and refreshments and anything else edible? I could have sworn that was mentioned, if not, I say we make a last minute addition!
<pleia2> uuuh, sure!
 * pleia2 shares cake ;)
 * Pendulum hands out tea to go with the cake
<cjohnston> starcraftman it was your job to bring the refreshments
 * _marx_ shares "Sweet Eyetalian" light roast coffee
<pleia2> < gukk_devel> Question will special questions like hardwaredetection be answered, especially former xorg-stuff
<pleia2> there is a restricted drivers session which will seek to cover some of this
<pleia2> this will be jamalta's session at 16:00 UTC
<Pendulum> Question: i never used an irc before. i think i got it, ignoring  stuff in one window wont affect another or subsequent
<Pendulum>  windows?
<Pendulum> For most IRC clients (at least that I know of) this is true
<Pendulum> each window (channel as they're called on IRC) needs to have /ignore set separately
<cjohnston> Are there any more questions related specifically to the Ubuntu User Day?
<nigelbabu> Question, How often a day like this one is hold?
<Pendulum> This is the first User Day that has been held.
<pleia2> so we're not sure yet :) I think we're going to shoot for every 6 months to start out
<pleia2> maybe every 3 if we can get enough volunteers
<Pendulum> Please let us know if you want them more or less often in your feedback!
<pleia2> < gukk_devel> Question is there a german version of this UsersDays planned?
<nigelbabu> There is nothing planned now
<nigelbabu> but if you'd like to help out organize, we can assist you
<_marx_> The more languages the better.
<cjohnston> Any other questions about today? If not, we will start the next class in about 7 minutes
<nigelbabu> Okay, so that about it from our introduction session.  Next up in a few minutes is "Switching to Ubuntu & Installation" by nagendra
<nigelbabu> If you have anymore questions, we'll be taking it :)
<pleia2> < Yos> QUESTION will there be a chance at the end of the day for making suggestions for the next user day
<pleia2> there is a survey
<cjohnston> < doxdrum> Question - I'm interested in participate in future UserDays, Who should I contact?
<cjohnston> me
<_marx_> t -5
<cjohnston> later please though. ;-)
<Pendulum> or come find us in #ubuntu-learning :)
<Pendulum> (but, again, later please)
<pleia2> http://www.surveymonkey.com/s/WQWHJQY
<pleia2> is the survey for the day :)
* cjohnston changed the topic of #ubuntu-classroom to: Ubuntu Classroom || Ubuntu User Days | Current Session: Switching to Ubuntu & Installation ~~ Presented by Nagendra || Please ask questions in #ubuntu-classroom-chat || Ubuntu User Days Survey: http://www.surveymonkey.com/s/WQWHJQY
<Pendulum> Our first instructor today is Guru Nagendra Prasad. Nagendra has been using Linux & GNU packages since 97. He is pursuing bachelors degree in computers.
<Pendulum> His first introduction to Linux was RedHat. He received 2 CD's of RedHat Linux from my friend in 97 and tried to install it on his system. However he crashed his HDD at that time.
<Pendulum> He has since learned how to install Linux on a system. In the year 2000 he started to teach Linux in an institute.
<Pendulum> However at that point in time he didn't know about how to install audio/video drivers (Due to no Internet connection). So, he screwed up few systems.
<Pendulum> In the year 2005 Nagendra joined Google and worked 3 years as a data analyst. After leaving Google in 2008 he have started working on his own project.
<Pendulum> In the year 2008 he also developed a distro called Gubuntu, based on Linux Mint. It was a multimedia based OS, with all audio and video tools in it and bunch of few other stuff.
<Pendulum> Before nagendra  begings, I just want to remind people Unfortunately freenode, the IRC network we use, has been hit hard recently with an influx of javascript spam. For more information please see http://blog.freenode.net/2010/01/javascript-spam/. Do not click other links that say you are infected or they are more information about the spam.
<Pendulum> Also, please fill out our survey about today!  http://www.surveymonkey.com/s/WQWHJQY
<nagendra> hi please let me know when should I start ?
<pleia2> now :)
<cjohnston> Now
<nagendra> ok
<nagendra> so my first topic is : Difference between windows and Linux (Ubuntu)
<nagendra> their are few things to remember with you switch from windows to ubuntu that windows only supports FAT and NTFS file system however Ubuntu supports many file systems
<nagendra> while installing windows you will have to specify only one drive usually C-Drive however while installing ubuntu you will have to specify 2 different drive one for the ROOT (/) and another for the SWAP area
<nagendra> ubuntu uses a sperate drive for swaping files however the same thing in windows called the paging file
<pleia2> < doxdrum> Question - Is it better to have only / and swap than also the extra home partition?
<nagendra> is depends on you if you want to use another drive partation called home
<nagendra> apart from root (/) and swap every other partation will work just like your other dirves like d,e,f and so on
<pleia2> < zhukaster> Question: is it necessary to have swap at least 2x larger than RAM amount?
<nagendra> giving my experience it dosen't matters if your physcial RAM is larger then 1 GB
<nagendra> however it is recommended
<pleia2> < ehlim> Question is that posible to change filesystem witout reinstall ubuntu, said like from ext 3 to ext 4
<nagendra> as far as I know its not possible
<nagendra> people always get scared when they see linux or ubuntu on a system but its just their state of mind :)
<nagendra> any other question about- Difference between windows and Linux (Ubuntu)?
<nagendra> so my next topic is -why Windows?
<nagendra> this is a question we have to ask ourselves
<nagendra> see if you are a basic user of computer like net surfing, chatting, listening to music and few office stuff why do you want to waste your money on windows when you can do the same tasks on any version of ubuntu
<nagendra> so their might be the next question that may come to your mind is why Ubuntu ?
<nagendra> Ubuntu is very easy to use, install, update, troubleshoot and you will get the community help as well for your issues how about that :)
<nagendra> any questions guys ??
<pleia2> < jazz__> Question what do they mean "free as in beer?"
<nagendra> so my next topic is - Who need Ubuntu and who need Windows?
<nagendra> I don't know about others but in india ppl teach some programing languages based on windows like VB, VC++ and so on so for those they might be needing windows but for others like in small bussiness holders, shop keepers who wants to maintain their daily sales and purchase accounts they can switch to ubuntu as its free :)
<nagendra> their are so many different versions of Linux starting from Redhat, fedora, suse, ubuntu etc
<nagendra> its on you which version or distor you want to use
<nagendra> however giving my experience Ubuntu is the best one when it comes to linux :)
<nagendra> also ubuntu supports a large numbers of hardware devices
<nagendra> if you want to make sure if your computer hardware will work on ubuntu use a live media of Ubuntu and you will get an idea about it
<pleia2> < Jedemco> Question What is live media and why is it called live media?
<nagendra> live media is nothing but a complete Ubuntu OS which will be run on your system without installing on your HDD
<nagendra> its like this you have a viedo DVD with you and when you insert the DVD in your DVD drive you can watch the movie  directly from DVD but only if you like you copy the DVD on your system
<nagendra> so the same thing applies here the live media gives you a chance to see how the OS is working on your system and if everything is OK then you can install it on your HDD
<nagendra> any questions guys ?
<nagendra> here are the few links which you might want to read about ubuntu installation :http://news.softpedia.com/news/Installing-Ubuntu-9-10-126370.shtml
<nagendra> http://ubuntuguide.net/a-step-by-step-guide-for-ubuntu-910karmic-complete-installation
<pleia2> < Jedemco> Question How long does it take to install Ubuntu?
<nagendra> Max -30 Min
<nagendra> again it depends on your system
<pleia2> < Jedemco> Question How much room does the operating system take up on the HDD?
<nagendra> basically you will have to specify 5 GB of free space for root and 1 GB for swap
<nagendra> if you have any question about how to install Ubuntu with dual boot please ask :)
<pleia2> < LuizAquino> Question What type of filesystem to choose on install?
<nagendra> you can choose ext3 or ext4
<pleia2> < Jedemco> Question Can dual boot be done so that Ubuntu not the first choice
<nagendra> yes you can when you install ubuntu it will ask you to change the boot loader of you want
<nagendra> their you can change the OS order :)
<pleia2> < lannocc> Question better to install Windows or Ubuntu first?
<nagendra> better to install windows first then install Ubuntu
<pleia2> < userday20> Question, if i have winxp and an another linux distro. will i have to delete the partion of other linux distro, and then start installing ubunut or should i directly start installing ubuntu and i'll have the option to delete the other linux distro during installation
<nagendra> any more question guys I just have 10 min left :)
<nagendra> yes you will get an option to delete the existing linux partation
<pleia2> < lannocc> Question (followup) but doesn't Windows try to use up all available disk space?
<nagendra> no if you have already installed windows then in the installation Ubuntu will give you the option to use the free space of windows
<nagendra> in this case your windows will be safe as well
<pleia2> < LuizAquino> Question Is it save to change the size of a partition with Windows on installation?
<pleia2> 5 minute warning :)
<nagendra> yes you can and your windows will be safe
<nagendra> thank you all for taking part in Ubuntu user day. I wish a very good luck to you all and if you have any other questions please feel free to join the Ubuntu community
<nagendra> I still have 3 min left I can take 1 more question
<cjohnston> Thank you nagendra!
<nagendra> you are welcome :)
<_marx_> thanks nagendra
* _marx_ changed the topic of #ubuntu-classroom to: Ubuntu Classroom Chat || Ubuntu User Days | Current Session: Command Line Basics ~~ Presented by _marx_ || Please ask questions here; prefix your question with QUESTION || Ubuntu User Days Survey: http://www.surveymonkey.com/s/WQWHJQY
<_marx_> Welcome everyone to Command Line Basics
<cjohnston> Up next we have _marx_
<cjohnston> Mark Cox lives in Winston-Salem, North Carolina. He has made his living as a carpenter since getting out of the Army in '85.
<cjohnston> He has been using Linux since 1998. Mark has been using Ubuntu since 5.04. He hopes to be unique by being the first Grandfather in recorded history
<cjohnston> to convert his grandsons to Ubuntu instead of the other way around. Mark's two oldest grandchildren were dazzled by "the cube" over the holidays.
<_marx_> thanks cjohnston
<_marx_> Today I just want to cover some basics.
<cjohnston> < mick__> Question:: shell programming::  any good tutorials online to take you from newbie to MOTU?
<cjohnston> Got an early question for you. ;-)
<_marx_> Hopefully when we're done you be able to survive the dreaded no X experience.
<_marx_> mick__, the linux documentation project bash
<_marx_> First a little lecture time.
<_marx_> Then we'll do some things
<_marx_> When we use the command line we are using a shell.
<_marx_> In this context a shell is the most basic way a user can interact with a computer's operating system kernel.
<_marx_> A shell is a piece of software.
<_marx_> Most GNU/Linux distributions use the Bourne Again SHell (bash) as the login shell.
<_marx_> The again part is because the first iteration was called the Bourne SHell (sh) which was released for unix in the late '70's
<_marx_> Beginning with the 6.10 release Ubuntu began using dash (the Debian Almquist Shell) as the default system shell.
<Pendulum> Jedemco> Question: Is a "shell" also the "Terminal" in Ubuntu?
<_marx_> The default login shell is still bash.
<_marx_> Jedemco, yes for all practical purposes
<_marx_> when one opens say gnome-terminal you'll be using bash
<_marx_> Today we will learn how to navigate the Linux file system,
<_marx_> view the contents of a file,
<_marx_> opy and rename files and directories,
<_marx_> userdays3, yes
<_marx_> pipe output of one command to another, direct output to a file,
<_marx_> install programs, navigate the internet all via the command line interface.
<_marx_> Maybe we'll get to all of that!
<_marx_> For our exercises today I will be using the Gnome terminal.
<_marx_> I want to make opening a terminal a click or two faster so click Applications > Accessories and drag Terminal into your top panel.
<_marx_> This is just to make starting a terminal a little faster by not using the menu system
<_marx_> I'm not real familiar with KDE and Xfce so maybe just drop the icon on the desktop to create a launcher.
<Pendulum> < userdays3> QUESTION:Is there a difference between a system shell and a login shell?
<_marx_> lannocc, makes starting a terminal little quicker
<_marx_> There can be a difference between the system shell and login shell; on Ubuntu they are different.
<_marx_> ow let's open a terminal session, just click the icon we just created in the top panel.
<_marx_> Everyone have a terminal open?
<_marx_> I'm going to try to remember to wrap all my command examples with quotes around them so just type whatever is inside the quote marks.
<_marx_> I may forget so pay attention :-)
<_marx_> Okay first command "whoami"
<_marx_> Well now you know who you are!
<_marx_> Concept Where am I!
<_marx_> This is an important unix concept.
<_marx_> Where am I in the file system?
<_marx_> Let's use print working directory to find out. "pwd"
<_marx_> everyone should be in their home directory.
<_marx_> Okay, what's here? Use the list command to list the contents "ls"
<_marx_> no pm's please
<_marx_> ask in -chat
<_marx_> Commands can take options.
<_marx_> Try `ls -l`
<_marx_> now we get a long listing of all the files and directories
<_marx_> But this isn't all the files use `ls -a` to see all the files
<_marx_> Okay let's go somewhere else; `cd /`
<_marx_> and let's do a long listing of all the files
<_marx_> answer in -chat
<_marx_> any one long listing of all files
<_marx_> well it's `ls -al`
<_marx_> and where are we now?
<cjohnston> < doxdrum> Question - is it important the order of the options? -al or -la
<_marx_> doxdrum no
<_marx_> everyone should be in "/" now.
<_marx_> pwd to find out where you are
<_marx_> well not seeing responces to where one is in -chat
<_marx_> okay let's all go home with `cd`
<_marx_> the command `cd ~` will also work
<_marx_> now `cd -`
<_marx_> and where are we?
<_marx_> that was a dash or minus sign
<_marx_> yep; "cd -" will take you back to the last directory you were in
<_marx_> ok go home
<_marx_> and list all files
<_marx_> we're gonna shorten up on some of this typing
<_marx_> `less .bashrc` will let you view your bashrc file
<_marx_> use "q" to quite less
<_marx_> we can shorten up on alot of typing by using aliases
<_marx_> type `alias` to see what aliases are set now
<_marx_> everyone have a output of current aliases?
<_marx_> oka to set an alias try "alias 'l=ls -l'"
<_marx_> now just type "l"
<_marx_> good question hhlp
<_marx_> it is not permenamt
<_marx_> ow bad spelling
<_marx_> to make an alias permenant
<_marx_> we need to edit ~/.bashrc; that file we just viewed with less
<_marx_> assuming everyone is in there home directories do "nano .bashrc"
<Pendulum> < Crewsr3> so when you set up an alias without editing the .bashrc file how long will the alias work?
<_marx_> go to the end of the file and add the line "alias 'l=ls -l'"
<_marx_> Crewsr3, until you logout of the shell/bash session.
<_marx_> 20 minutes to go: how are we on nano w/.bashrc?
<_marx_> everyone have that line in .bashrc
<_marx_> save and exit the file
<_marx_> now bash doesn't know we've changed it's config file
<Pendulum> < Yos> how to save and exit ?
<_marx_> in nano ctl-x to save and exit
<_marx_> so to make bash aware that we've changed it's config file we need to source the config file
<_marx_> do that with "source .bashrc"
<_marx_> so now you could open a second terminal and "l" should give you the same as "ls -l"
<_marx_> well i'm not going to get to everything i wanted to so questions?
<_marx_> Question: command to check available disk space
<_marx_> i like `df -h` and i usually alias df to that
<_marx_> ah info on commands can be found several ways
<_marx_> man <command> info <command>
<Pendulum> < Jedemco> Question: I don't understand the concept of "alias." What is it and what does it do for me?
<_marx_> alias example: `alias 'df=df -h'`
<_marx_> an alias is like a shortcut; instead of typing all the options for a command we can type one or two letters to do the command
<_marx_> for the brave "sudo apt-get install mc"
<_marx_> this will install the midnight commander file manager
<_marx_> it can also do ftp and sftp
<cjohnston> < Yos> Question what is the difference between bash and screen byobu ?
<_marx_> screen is like a console or command line window manager
<_marx_> screen starts within a bash session
<_marx_> anyone install mc?
<_marx_> start mc with `mc`
<cjohnston> < Jedemco> Question: how do I get to "screen"?
<_marx_> Jedemco, just type `screen`
<cjohnston> _marx_: is screen installed by default?
<_marx_> start mc with `mc`
<_marx_> cjohnston, not sure
<cjohnston> I believe they would need to install first?
<_marx_> we could do 30 minutes on mc probably
<cjohnston> 5 minutes left in this session
<_marx_> some other command line goodies are lynx for a web browser
<_marx_> and alpine for an email client
<_marx_> three minutes left thanks everone of coming by today
<_marx_> hopefully some of this was helpful
* cjohnston changed the topic of #ubuntu-classroom to: Ubuntu Classroom || Ubuntu User Days | Current Session: Finding Helpful Resources ~~ Presented by starcraft.man || Please ask questions in #ubuntu-classroom-chat || Ubuntu User Days Survey: http://www.surveymonkey.com/s/WQWHJQY
<starcraftman> almost time to start, test.
<nigelbabu> Thanks _marx_ for that wonderful session.  Next up is starcraftman
<_marx_> go get 'em starcraftman
 * starcraftman waves to classroom.
<nigelbabu> starcraft.man is a Computer Science student studying at the University of Concordia in Montreal
<nigelbabu> He'll be explaining how to get effective help by understanding the problem and using useful resources
<nigelbabu> starcraft.man is involved in the Beginners Team and the Documentation Contributors
<nigelbabu>  Most importantly,
<nigelbabu> he's friendly and doesn't mind answering questions (we think he's a bot ;)). For more information see his wiki page at: https://wiki.ubuntu.com/starcraft.man
<nigelbabu> apologies to the lernid folks, I missed that one
<starcraftman> hehe
<starcraftman> thanks nigelbabu
<starcraftman> Alright, so everyone please pay attention got a lot of ground to cover and only the hour. It'll be going by a bit fast as I just copy/paste this over, I've prewritten most everything.
<starcraftman> Section 0 - Introduction
<starcraftman> Iâll be covering an important topic today. What to do when things go wrong. It happens to everyone and dealing with it correctly can save a lot of trouble.
<cjohnston> FYI: starcraftman prefers questions be held until they are asked for..
<starcraftman> An overview of the material to be covered today is available on the wiki -https://wiki.ubuntu.com/UserDays/01232010/FindingHelp
<starcraftman> Take a moment and look over it while I continue with the introduction. At the end youâll notice a links section. Iâll be mentioning these as I go, they are listed for convenience.
<starcraftman> Please keep questions to #ubuntu-classroom-chat as with other sessions. Iâd prefer if they were reserved for the end. Youâre free to ask them during and hopefully someone else can respond. I donât want to be stopping at every question Iâve a lot of stuff to mention, I'm also pretty sure I've covered most things people will question by end.
<starcraftman> I'll try to pace these out not too fast.
<starcraftman> If your question remains unanswered by end, I'll take it then. Please make sure you keep them  prefaced with Question so people can see them.
<starcraftman> Also, please don't PM me during this session, if 30 people each PM me with questions I can't go through them all and do the session.
<starcraftman> If you want to know more about me, see my page as linked in intro or on outline. This is interactive session so please follow along and do what I say, above all feel free to experiment and poke around.
<starcraftman> So on with my presentation.
<starcraftman> Things go wrong. It sucks.
<starcraftman> The same way gravity unfortunately is still there when you wake up in the morning.
<starcraftman> One minute you are typing away merrily on your word processor then.....
<starcraftman> [Insert program crash here with some profanity about lost work]
<starcraftman> Maybe you just finished installing some updates and wham!
<starcraftman> Some unknown error appears on screen and you donât know what to do.
<starcraftman> The first rule of getting help is DONâT PANIC. Incidentally, this is also written in big bold letters on the back of a certain book for Hitch Hikerâs trekking the galaxy.
<starcraftman> Iâd say itâs a very good first rule.
<starcraftman> The focus of this session will dealing with such problems âlike the aforementioned â in a simple and effective manner. By the end, you should be able to gather simple information and on any problem and find help from the most appropriate resource.
<starcraftman> Section I â Preparing for Help
<starcraftman> The title sounds a bit silly doesnât it?
<starcraftman> Youâd be surprised how just a few steps make all the difference finding good help.
<starcraftman>  Mostly it will help you narrow the focus of your search. If you reach out to someone else on forums or in person, itâs easier to bring them up to speed.
<starcraftman> The average user skips this step. Usually this is followed by an attempt to use bad or limited information to fix the problem.  The result is getting flustered. At this point they usually reach out to someone else, say on a forum or by email to a friend. This results in more annoyance as they answer many questions they didnât consider at first to give the expert necessary information.
<starcraftman> In the end, users can get very angry. Iâve seen it happen.
<starcraftman> Posting on a forum in a bad mood âMy video is broken, FIX IT!â is not a good way to get help.
<starcraftman> Consider ( as some may know) that the forums are staffed, moderated and questions answered by volunteers not being paid. None of above like seeing rants posted.
<starcraftman> If you speak like that to your tech friend, well, I donât think heâll be your friend after giving you the fix.
<starcraftman> More to the point, a lot of your time got wasted. You got upset. You also didnât resolve the problem given the time invested.
<starcraftman> This leads to rule 2 âTry to spend time solving a problem yourself before you ask other people for help. If you follow this common courtesy, then it will not be an imposition when you ask for help.â That's from community wiki.
<starcraftman> Section 1a â Analysis
<starcraftman> When something goes wrong, the first thing thatâs important to do is think what just happened? What was I doing? What crashed? What did I see?
<starcraftman> Get a piece of paper and a pen and immediately write the answers to those questions down. Write in plain language all the details, you may not think itâs important but the person who helps you might disagree.
<starcraftman> Say for example evolution just crashed, and thereâs a window that popped up stating so with an error and asking you to file a report. Take down the error, note what you were doing.
<starcraftman> If the error is a graphical one (like the error window popping up) you might want to take a screenshot off this.
<starcraftman> Screenshots are just a way of taking an image of the screen, works on Linux just like Windows. Push print screen on the keyboard. Doing so will open up a screenshot application (on any Ubuntu variant), from there save the image to your Desktop.
<starcraftman> (you can try to printscreen now if you like).
<starcraftman> Weâll see what to do with this image later.
<starcraftman> Another helpful thing to do in advance of getting help is knowing your hardware (this can especially help with networking/graphics problems). An easy way to get a complete listing of your hardware is to use the following simple command in any terminal (Applications > Accessories >Terminal) and using the command--
<starcraftman> "sudo lshw > ~/Desktop/hardware.txt"
<starcraftman> No quotes.
<starcraftman> This command creates a file called hardware.txt that you can open and browse on your desktop. It lists all components of your PC, CPU, RAM, Graphics card, Network interfaces, etc... There are a few commands that produce more precise output (like just listing PCI cards) but this covers everything with one shot.
<starcraftman> Very useful, I've done this often.
<starcraftman> After jotting down this information and taking a screenshot we can proceed to play detective. Ask yourself what went wrong?
<starcraftman> Did the internet stop working for instance? That would be a networking issue.
<starcraftman> IT detective work involves narrowing things down through categories, you start at the top and work your way down specifying at each new level until the problem is clear.
<starcraftman> You might not have enough experience to solve it completely, but getting a start with what you know can go a long way.
<starcraftman> Itâs hard to say how much effort you should put in before moving on. Usually it becomes clear when you can no longer write or deduce anything else.
<starcraftman> Section 2 â Power Searching Google
<starcraftman> So the first stop is a search engine. Iâll use Google for this example, any engine should work.
<starcraftman> The reason to search is another rule- If youâre having a problem, 99.9% of the time someone else has had the same one and posted its solution.
<starcraftman> At this point, if everyone can open a browser and go to www.google.com that'd be great.
<starcraftman> Or your local version.
<starcraftman> Power searching is when you do more than simply type key words into Google. By default, each word is searched successively. For example, do a search in Google for âDC Batman Robin Crusaderâ, first with no quotations around the terms then with quotes. Then just DC Batman. Compare and see the difference.
<starcraftman> The first time (first search with no quotes) Google searches for DC and finds all pages with references to it, then cross-references with all pages with Batman. The overlap becomes the new base and then further narrowed by overlap with Robin and Crusader. The search operation descends one word at a time, so the first word is most important and more general usually.
<starcraftman> When searching in Google âDC Batman Robin Crusaderâ you get 0 results, very different from before. In this instance, Google searched for the string (a computer science term referring to the quoted line) as a whole, the exact sequence of words in the order inside the quotes is simply never used (it is incoherent as a sentence after all).
<starcraftman> (I'll give ya moment to catch up, a bit of text to digest)
<starcraftman> Now time to get to the meat of this. Everyone go to Google homepage and click âAdvancedâ on the right.
<starcraftman> Hereâs the advanced search page, a lot of people donât know about it. It is very handy.
<starcraftman> Immediately Iâd like you to note the box at the top highlighted in blue stating âUse the form...â, here you will see the actual search string used when you enable all these advanced tricks. Look up every time you try something else.
<starcraftman> This means that this is the actual search you could use alternatively in the standard Google Search box, you'll see what I mean as I go.
<starcraftman> First two lines cover what Iâve already explained.
<starcraftman> The third is the Boolean OR search. This means that rather than only take the overlap (or intersection) between DC and Batman, a search for DC OR Batman would include all results from the individual searches for DC and Batman. Rather than narrow down this really widens a search with every new result.
<starcraftman> âDonât show these pagesâ does exactly what it says, put keywords here and all pages with them will be subtracted from the search.
<starcraftman> âSearch within site or domainâ is another useful one. Your entire search is then confined to the site listed. You can also limit by domain, so .edu limits it to educational websites indexed by Google on the internet.
<starcraftman> Take a moment and play around with these modifiers to search, take note of the top line that shows how the modifiers are used.
<starcraftman> âFiletypeâ does as it says and limits your search to an extension, say .pdf or .txt. Any extension is valid.
<starcraftman> Click on âDate, usage rights, numeric range, and more...â here youâll find even more though less commonly used modifiers.
<starcraftman> more advanced*
<starcraftman> These are mostly self-explanitory, you can check pages by date, search with numeric ranges (like price), etc...
<starcraftman> One thing not here is wildcard modifier for search.
<starcraftman> * is the wildcard. Say I knew part of a word, say.... nvidia but I only knew it started with nvid. Searching nvid* produces nvidia as top result. It isnât always most useful given there might be words that complete the wildcard that you maybe donât want included.
<starcraftman> I donât have time to go into all of them. I will warn, donât be tempted to use too many. The more you employ the less results will appear. Often just one or two of these modifiers makes the difference.
<starcraftman> Say you have a video problem, you want to check whether other people have had trouble with it. Itâs an nvidia 8800GT. You know Ubuntu Forums usually has people posting about such things. You fill âubuntuforums.orgâ in Site Search box, ânvidia 8800 GTâ in all these words then search. Voila.
<starcraftman> I donât have time to cover all the nuance of power searching. I will leave you with a good site for those interested. http://www.googleguide.com/ . See the section start now that best applies to you.
<starcraftman> Another page to note is Ubuntu Search at http://search.ubuntu.com/
<starcraftman> As it says on its homepage, by default it only searches Ubuntu related sites like the Wikis and Forums.
<starcraftman> Though it doesnât have an advanced option per se, Iâm pretty sure it supports most of the above function. You just have to do it manually via text modifiers.
<starcraftman> Section 3 â System Documentation and Wiki
<starcraftman> For this section we will cover Ubuntuâs official documentation.
<starcraftman> System Docs are the documentation that comes with any standard Ubuntu installation, these are accessible locally even without a net connection.
<starcraftman> On the main panel, notice the blue question mark. Please click it. If you donât have it, see System > Help and Support.
<starcraftman> Note: If your not on Ubuntu at this moment, you won't of course.
<starcraftman> Here you will find the documentation promised. Itâs a gem overlooked often by people in need of help. Feel free to click around.
<starcraftman> On the main page at the right youâll see some common questions. At the left is most of the main sections covered like âNew to Ubuntu?â, go ahead and click it, new options appear, pick what you like. You can always go back to beginning with the Home button (the house) on the Toolbar at the top.
<starcraftman> The documentation contains a lot of answers to common questions and introductory material you can read to understand Ubuntu.
<starcraftman> Do a test search and scroll to the bottom. Youâll see repeat this search online, click it. Presto, youâre back at search.ubuntu.com, nifty. I only just found that one.
<starcraftman> Feel free to take a while and explore a bit.
 * starcraftman takes lil drink.
<starcraftman> Go back to homepage pls (push home button as mentioned on the toolbar).
<starcraftman> Iâd like to note at the home page you can find the Free Support link, directing you to a lot of materials Iâll talk about.
<starcraftman> Next is the Wikis, we have two.
<starcraftman> The help wiki youâll be most interested in is at- https://help.ubuntu.com/ . The other site is https://wiki.ubuntu.com/ . This second site I tell you to prevent confusion, it is primarily for organization of teams. Help.ubuntu.com as the name implies stores all the help documents. Use the first one, not the second.
<starcraftman> People often don't understand, these are official sites. They aren't like a wikia, a spin off by fans.
<starcraftman> So take a moment and load up https://help.ubuntu.com/
<starcraftman> Here youâll see listed the versions of Ubuntu still in support (i.e. 9.10, 9.04, these are links to their documentation). Clicking any of the versions will take you to an online version of the system pages, useful if you need it on the internet for reference.
<starcraftman> (if your not on Ubuntu at this moment, you can now browse system docs)
<starcraftman> Some people prefer the system docs in their browser, itâs got a different feel. The content is to my knowledge exactly the same though.
<starcraftman> At the bottom youâll see a link on upgrade notes, useful for upgrades.
<starcraftman> More interesting is the community link, please click it
<starcraftman> https://help.ubuntu.com/community/ < to be clear.
<starcraftman> This is the main wiki area it is maintained entirely by the community (folks like me) in an effort to document the software of Ubuntu and problems that arise. Browse all the information on the main page.
<starcraftman> The bulk of documentation is in English, it is however translated into other languages and available.
<starcraftman> See the âGetting Started with Ubuntuâ section. Here is some beginner stuff you can read, there are also three subsequent sections underneath with useful links to stuff beginners need like Installation help and learning more information about their system.
<starcraftman> This is all good reading material even if you don't have an immediate problem.
<starcraftman> Next, have a look at the âFinding Your Way with Ubuntuâ section.
<starcraftman> Say hello to Signpost, a recent innovation.
<starcraftman> Its aim is simple, to start with the general and try and narrow down to the right information.
<starcraftman> Click âget some Helpâ, and click around some. Itâs fairly easy. Different sections have different focus, some on help, filing bugs, some for programmers. See what you need.
<starcraftman> Now lastly, search (top right). Say for example Iâm having a video problem with my nvidia card. It wonât display my maximum resolution. Do a quick search here for âvideo nvidiaâ and see what pops up. Or maybe I just want to learn a good way to backup my system... search for âbackup systemâ. Shameless plug,  top result is one of my pages. Good reading.
<starcraftman> Search will present you with relevant pages, as long as you know what youâre looking for. If you do the preparation at the beginning this shouldnât be a problem.
<starcraftman> The community wiki is my preferred resource for a wide variety of problems. Itâs up to date and usually covers problems/software in a timely fashion.
<starcraftman> Section 4 â Forums
<starcraftman> Next, www.ubuntuforums.org
<starcraftman> An excellent site, when in doubt posting here is reasonably certain to get you a good answer. Thereâs an art to posting though, as well as a wrong way to do it.
<starcraftman> While Iâm explaining, feel free to sign up, click Register at left.
<starcraftman> First letâs look at the structure. The most relevant section is Absolute Beginners Talk. Itâs come to be a catch all for new people and just problems in general, it gets the most eyeballs. If you post here with reasonable amount of information problem is usually resolved in one or two posts.
<starcraftman> The next section is the Main Support Categories, it offers more specialized help for those with... more exotic problems. Advanced server configurations or some more obscure problems. Itâs less used by beginners and is less frequented by support people. Iâd encourage you to stick with ABT unless youâve posted there and not gotten a reply in a reasonable time.
<starcraftman> The remainder of the site is aimed less at support than discussion/development. You can peruse it at your own leisure.
<starcraftman> Time to discuss posting etiquette on the forums, what to do/not do.
<starcraftman> We have a full list of things you have to agree to at register I believe, this is just a rundown of pet peeves and things that really shouldn't happen.
<starcraftman> Donât TYPE IN CAPS OR with LOTS of exclamations!!!!! â CAPS usually infer yelling and exclamations excessively used are annoying.
<starcraftman> Donât curse or insult other members offering help. â If you wouldnât say it to someone standing next to you, it generally shouldnât be posted.
<starcraftman> Donât demand help in the title/topic like âFix this or Iâm leaving Ubuntuâ. We arenât prone to offering better help when threatened. This is an unfortunate practice by people who get frustrated, it also gets attention quickly. It is incredibly rude and doesnât make things easier.
<starcraftman> Donât post in the ABT, wait a minute then repost the same thread in different sections. This is annoying. Post in one section (I recommend ABT) and wait for response. It may take 10 minutes or 20, or more, no more than a few hours usually. If so, you can bump your forum post.
<starcraftman> A bump of course is just you replying to the post and pushing it back to the top of cue of threads so it is noticed.of
<starcraftman> Now a few pointers to actual posting, you can click New Reply somewhere (doesn't matter where) to follow along (just donât submit please).
<starcraftman> Do NOT push submit on the post, this is just so you see the advanced features to posting.
<starcraftman> Incidently, in case it wasn't clear, you need to be signed in to post.
<starcraftman> Do make your post title pertinent to your problem. If you donât have any internet on the machine then âI donât have internetâ is better than âproblem needs fixingâ. You donât need to convey too much information, just the general category of problem. Including the version of Ubuntu might also be good.
<starcraftman> To the left of title youâll find prefix, please select your version of Ubuntu. When itâs solved, edit your first post and change the prefix to Solved.
<starcraftman> The solved tag is useful, it tells people searching the archives your problem was resolved. So they can rely on the proposed fix.
<starcraftman> This is nice, also goes back to one of my rules.
<starcraftman> Iâd like to make a note here- to the right of the title is âCheck if Already Postedâ. Please click this after writing in a title it will quickly search all previous posts for related information. Experiment with different titles. Often your question has already been answered. Donât be afraid to detour and read some of these pages, you can always return to new post and submit it.
<starcraftman> Just another way of preventing double posts, we get a lot of similar questions.
<starcraftman> In your first post, try to put as much information as you can. Now is the time to consult that page we wrote earlier. Explain what you were doing, what went wrong, and what you have since learned (maybe from wiki). Nothingâs too small, at the same time, donât write pages.
<starcraftman> Take a note of the GUI at top of the forum reply, there is # button.
<starcraftman> This is for the code tag.
<starcraftman> people will often use it responding, if you want to post the hardware.txt file output use these tags. It stops the page overflowing.
<starcraftman> Screenshots can be hosted at sites like http://www.imgur.com or as attachments to the post (scroll down on new post page, click Manage Attachments). These are very useful.
<starcraftman> Images hosted on imgur you just copy the forum link and paste in the body of reply. The attachements way automates this.
<starcraftman> When youâre happy with your post, submit it. Someone should get back to you with instructions in a timely and friendly fashion.
<starcraftman> Some people ask how do I know the instructions will help? Or to trust the person giving? Well, there isnât a rule per se.
<starcraftman> I for instance have an almost 3000 post count, does that imply a user should trust me? I guess. Though when I started posting I only had a post count of 1, my knowledge has improved since but my advice was still usually helpful based on what I knew.
<starcraftman> The rule Iâd say is, does it sound right and well explained? A person who knows their stuff should be able to convey relevant information and convince you itâs the right thing to do.
<starcraftman> A few closing comments on the forums.
<starcraftman> Itâs a helpful resource, it harnesses the collective experience of thousands of geeks like me. Do remember we all volunteer for no pay.
<starcraftman> Also, a few helpful links you might enjoy are- http://ubuntuforums.org/showthread.php?t=1052065
<starcraftman> A free beginners guide PDF to getting started.
<starcraftman> http://ubuntuforums.org/showthread.php?t=801404
<starcraftman> A general launch point to many good forum guides written by people who know their stuff.
<starcraftman> I wrote the installation one for instance.
<starcraftman> Peruse them on your own. These links are good for general learning. Like the wiki.
<starcraftman> Section 4.5 â IRC (Real  quick)
<starcraftman> Nhandler is covering this later. I only want to point out that IRC can be used for support. Channels such as #ubuntu, #kubuntu and #ubuntu-beginners are all good stops. A good run down of channels and getting help is available here- https://help.ubuntu.com/community/InternetRelayChat
<starcraftman> (don't click the #links, that will open IRC client to somewhere else).
<starcraftman> The page lists the channels, what they focus and how to fix her up. Nhander will give more details.
<starcraftman> Section 5 â Launchpad
<starcraftman> Iâm going to try and make this brief, I donât want to cover nigelâs topic (see agenda for time), heâs devoting a whole hour to launchpad.
<starcraftman> Launchpad is however the place to go when all of the above doesnât get you an answer. You have two choices.
<starcraftman> First is the answers section, see here-
<starcraftman> https://answers.launchpad.net/
<starcraftman> Launchpad Answers is basically a section designed to let the people working on the projects answer your question.
<starcraftman> Please note, you need to be signed up to use this site. If you want, you can sign up now in preparation for later with Nigel. A nice plus, any launchpad account is automatically an opened, can be used on other sites supporting such login.
<starcraftman> Say I have a problem with music playing in rhythmbox, so esoteric that none of the above helped.
<starcraftman> (by above, I mean the other resources)
<starcraftman> Go to answers home, click choose one project and type in rhythmbox. This takes you right to the project answer section. See if your problem is listed. If not, you can file a question here in much the same way as you would a bug (bug filing is last resort).
<starcraftman> Click ask a new question and fill it out. Someone should get back to you in a reasonable time. (don't file a question at this time...)
<starcraftman> People are very active in the Ubuntu project answering the Answers section, you might consider posting there more generally before in a specific project like rhythmbox.
<starcraftman> Next is a quick bug filing run down. Click bugs section at the top of rhythmbox. At the right, on top of ask a question is now Report a Bug.
<starcraftman> Click this only if you want to file a bug, please donât file them without being sure itâs a bug and having searched existing bugs. Devs get a lot of duplicates that donât help.
<starcraftman> There's a structure to filling reports, nigel will cover this. It's important to put more not less info, as specific as you can so devs can reproduce bugs, test and fix.
<starcraftman> Launchpad is a good service, though Iâm more of a doc person so I guess Iâm biased to recommend system then wiki docs.
<starcraftman> That's it on LP, please see nigel later for more.
<starcraftman> Section 6 â Closing
<starcraftman> When confronted by a problem, stop and think. Donât panic.
<starcraftman> Write down all pertinent information that you know.
<starcraftman> Then use the right resource. I usually start with the system or wiki documentation. Or a Google search.
<starcraftman> http://search.ubuntu.com is fast becoming a favourite of mine to get quick answers as it indexes most of the good resources.
<starcraftman> If looking on your own fails to turn up help, Iâd next suggest the forums or IRC. Search them carefully and if you canât find relevant info ask in ABT for help with all the information you know.
<starcraftman> Next if that doesnât work, see Launchpad answers/bug system as relevant.
<starcraftman> Thereâs no hard fast rule, itâs more of an experience thing finding good answers. The more you do it the easier it becomes. It's not too intimidating now I hope.
<starcraftman> Do please consider where the information comes from before doing anything, if you do a Google search and you find a lone blog post detailing an answer with no comments or any affiliation with Ubuntu thatâs been abandoned by the poster, you should hesitate.
<starcraftman> Where the information comes from is important.
<starcraftman> I know itâs a lot of information to absorb, I hope youâve found it helpful.
<starcraftman> I have extra links I may not have mentioned on my outline as listed at the beginning. Click and browse them at your leisure.
<starcraftman> I guess we can open questions, to do so orderly please follow the question format-
<starcraftman>  /Begin_Asking_Questions
<nigelbabu> Question How important are quotes for searches in a browser?
<starcraftman> Good question. Remember that when your searching with quotes your searching an exact string. This is most useful when you have a snippet of an error and want to search for it. Say for example.... "xrender failed to intialize"
<starcraftman> Hope it was clear but when searching do just stick to keywords, drop all "the" and "it" or "and". You may want to use them in string searches though.
<nigelbabu> Question what will be the most effect way to type a keyword to search an answer?
<starcraftman> Ah, this really depends. Experience as I said gives you more insight into where and how to search for answers. In general a standard well thought out (i.e. carefully consider order of keywords) may be all you need.
<starcraftman> So if I had nvidia problem with my 8800 GT.... "Ubuntu 9.10 nvidia 8800GT" without the quotes in google would probably turn up some results  of other karmic users having trouble with nvidiia card.
<starcraftman> Ultimately, more you practice searching easier it becomes.
<starcraftman> Don't be shy bout reading googleguide, nice site. It goes into much more depth.
<nigelbabu> QUESTION Are books a good resource to help a friend get started with ubuntu, as opposed to or along with what you've told us about today?
<starcraftman> Interesting question. Yes I do have a few good books I like, for those that may want something a bit more structured and tangible.
* cjohnston changed the topic of #ubuntu-classroom to: Ubuntu Classroom || Ubuntu User Days | Current Session: Restricted Drivers ~~ Presented by jamalta || Please ask questions in #ubuntu-classroom-chat || Ubuntu User Days Survey: http://www.surveymonkey.com/s/WQWHJQY
<starcraftman> A practical Guide to ubuntu Linux by Sobel is a quite comprehensive read.
<starcraftman> See amazon.
<cjohnston> Thank you starcraftman !
<starcraftman> Beginning Ubuntu linux fourth edition by Thomas also good. Time pretty much up now.
<starcraftman> Hope yall enjoyed, I'll move to chat if there's any more questions.
<cjohnston> Next up is Jamal Fanaian. Jamal lives in Orlando, FL and is a member of the Florida LoCo....
<cjohnston> Go Florida!
<cjohnston> He have been a web developer for a few years, and has been using Ubuntu as his primary operating system
<cjohnston> for about two years now. Jamal like to help out with the Ubuntu Community and show up to LoCo events, as well as helping out
<cjohnston> some open source projects with code and what not.
<jamalta> Hi! :)
<jamalta> Before I start, I wanted to thank starcraftman for a great talk, as well as everyone that went before him, and everyone else left in the day. Also, I wanted to thank everyone that has been working hard for months in making this day a success, you guys rock!
<jamalta> So like cjohnston said, I'm Jamal and I'm going to be talking about Restricted Drivers. Feel free to ask questions at ANY time during this talk in #ubuntu-classroom-chat. Please prefix your questions with QUESTION: so I can easily see them.
<jamalta> I'll be keeping an eye, and I don't mind pausing at any point :)
<cjohnston> jamalta no colons!
<jamalta> cjohnston: ok
<cjohnston> !fail
<jamalta> Alright, so let's get started!
<jamalta> First, let's start off mentioning what drivers are and what they do for us. A driver is a program that facilitates communication with hardware.
<jamalta> Restricted drivers, are drivers that are manufactured by a third-party, usually the hardware vendor, and are not open source. This makes it difficult for the community to contribute to innovating these drivers, which is why they are often not preferred.
<jamalta> Anywho, you probably want your computer working as efficiently as possible, so Ubuntu has made it easy for us to load these restricted drivers in our system.
<jamalta> So let's talk about the drivers manager
<jamalta> Restricted Drivers Manager, or jockey as it is code named, is a tool that lets you activate restricted drivers. It simply checks your system against Ubuntu's database to check what closed drivers are available for you to use.
<jamalta> You will often see it as an icon in your notification area (by the clock on the top right) that pops up telling you that you have restricted drivers available.
<jamalta> Well, sorry let me rephrase,.. you will usually see it the first time you boot to Ubuntu.
<jamalta> You can also access it by going to the System -> Administration -> Hardware Drivers.
<jamalta> When you first open it, you will have to wait for it to scan your hardware and determine what drivers are available to you. As soon as that is done you will see a list of drivers you can activate.
<jamalta> If you have an NVIDIA or ATI video card, you will often see the restricted drivers here. If you see multiple options, I would choose the recommended one. Select the driver and simply click the "Activate" button. You will have to reboot your system, but don't do it yet!
<jamalta> Once you reboot, your system will be using the drivers and should have access to advanced features. For example, with the video drivers enabled, you will have access to 3d rendering and compositing (transparency and animations), if it wasn't working before.
<jamalta> Next topic, installing drivers from the repository
<jamalta> It is also possible to install drivers directly from the repository. You can do this in one of two ways, using the GUI tool, Synaptic, or through the command line, with aptitude.
<jamalta> To install a driver from Synaptic, first open it by going to System -> Administration -> Synaptic Package Manager.
<jamalta> Once you have it open, you have to find the driver you want. In this example, I'm going to go into ATI drivers.
<jamalta> From Synaptic, search for xserver-xorg-video-fglrx. Check it, and click Apply. This will install fglrx which are the ATI restricted drivers. For NVIDIA, you will have to choose among the avialable options for nvidia-glx. Refer to this wiki for more help: https://help.ubuntu.com/community/BinaryDriverHowto/Nvidia
<jamalta> You can also do this from the command line by running sudo apt-get install xserver-xorg-video-fglrx.
<jamalta> Another option, and our next topic, is to install the drivers directly from the vendors
<jamalta> For ATI, you can visit ati.amd.com and search for your card. Select Linux (x86 for 32-bit, and x86_64 for 64-bit). And download the drivers. For NVIDA you can do the same by going to nvidia.com and searching for your card.
<jamalta> 11:11 < jazz__> Question: wheni isntalled my nvidia fx5200 128mb my system  wouldn't load i get a black screen and a string of goggbled words  just after the pc loads & before the grub. would that be a driver  problem?
<jamalta> jazz_: that can be a driver problem.. usually, the system will try to fall back to vesa (standard drivers that are meant to work with practically anything)
<jamalta> But if you have configured your system to use other drivers, then there would be a conflict.
<jamalta> 11:13 < ehlim> Question if the driver version is newer than repos, could that  cause system problem?
<jamalta> ehlim: not always, the issue usually lies on whether the newer drivers support your current kernel
<jamalta> i have upgraded to newer drivers before, but nowadays i try to be safe and use what is in the repos
<jamalta> The only reason I would recommend to sticking with what is in the repository is because it will be easier for the community to help
<jamalta> 11:15 < gukk_devel> QUESTION: what to do when the installer can't detect the  onboard nvidia in combination with the monitor -> mode not  supported
<jamalta> Guest71766: that's a good question. i don't know exactly how to debug jockey to find out why it didn't detect it but the first thing i would do is report ab ug in launchpad
<jamalta> err that was for gukk_devel...
<jamalta> You can always try to install the drivers and configure them yourself. I'm going to touch on that a bit but it may be a bit heavy to do so, and I've screwed up my system a few times doing that.
<jamalta> For now, let's move back to downloading drivers
<jamalta> For ATI, you can visit ati.amd.com and search for your card. Select Linux (x86 for 32-bit, and x86_64 for 64-bit). And download the drivers. For NVIDA you can do the same by going to nvidia.com and searching for your card.
<jamalta> In my case I would select ATI Radeon HD 4350, after selecting Linux x86_64 as my operating system
<jamalta> Then you will be provided with a download that should work in your system
<jamalta> In most cases, the drivers is a self-executable installer. So to install them, you simply open a terminal, browse to the directory the download is in (cd Downloads, or cd Desktop).
<jamalta> Then run the installer by typing ./filename. So for ati, it would be ./ati-driver-installer-9-12-x86.x86_64.run. This will start the installer which may ask more questions about the install.
<jamalta> If it gives you an error that the file is an executable, then you first have to make it executably by using th efollowing command
<jamalta> chmod +x <filename>
<jamalta> So if I wanted to make my drivers an executable, I would run
<jamalta> chmod +x ati-driver-installer-9-12-x86.x86_64.run
<jamalta> don't worry, it won't screw things up if you run that command more than once
<jamalta> 11:20 < Jedemco> Question: If the driver is downloaded using FireFox, couldn't you  just install the driver by double clicking in the download window?
<jamalta> Jedemco: Yes, you could do that, but it will only work if the file is downloaded as an executable. Sometimes you have to chmod it to make it an executable first.
<jamalta> I always do it from a terminal first, though, because often the drivers have more questions they ask.. and just to be safe that I see all the output I need.
<jamalta> Once the installation is done you need to configure your system to use the drivers by running aticonfig --initial in the command line.
<jamalta> You will probably have to prefix that command with sudo
<jamalta> Always refer to the provided documentation for more help on configuration. The drivers will often come with a README file. If not, it should be available in the page you downloaded the drivers from.
<jamalta> But generally, this method is least recommended as it difficult to support and often requires custom configuration.
<jamalta> ehlim: just to point out, this is how you would upgrade to newer drivers if you downloaded them from the vendor.
<jamalta> Something I'd like to point out is to use starcraftman's talk to find help if you ever get stuck when installing these drivers.
<jamalta> Also, the people in #ubuntu are usually VERY helpful in answering these questions.
<jamalta> Just remember, if you ask a question, and you don't get an answer, wait a few minutes and just ask it again.
<jamalta> So on to our last topic
<jamalta>  Using Windows drivers with ndiswrapper
<jamalta> Hopefully, your wireless already works and you won't have to do this. But some of us are unlucky enough to have a wireless card that just works.
<jamalta> Oh, sorry, I need to backtrack a bit... We will be using wireless drivers as an example. This is what you will most often have an issue with.
<jamalta> 11:26 < hhlp> question - what hapenned is a new relase of kernel is relese i have  to install the graphic driver again
<jamalta> hhlp: Usually, you will not have driver issues when upgrading drivers within the same distroseries. This means, that if you're system is using Karmic, and you are upgrading to newer kernels provided in Karmic, you shouldn't have an issue
<jamalta> There are some cases where this isn't true.
<jamalta> Most issues will occur when upgrading to a new distroseries. For example, I upgraded to Lucid and my video drivers are not working. This is because ATI has not released drivers for the newer Kernel in Lucid.
<jamalta> 11:28 < jamon1> is it possible to use ndiswrapper with other drivers ( eg for  antiquated webcam )?
<jamalta> You didn't prefix your question ;).. maybe it wasn't meant for me, but I caught it anyway!
<jamalta> jamon1: Webcams are VERY tricky. I've never had luck trying to get windows drivers working
<jamalta> Your best bet will be to use V4L2 (Video 4 Linux) drivers, and hope your webcam is supported
<jamalta> More information can be found in the V4l wiki, http://linuxtv.org/v4lwiki/index.php/Main_Page
<jamalta> Uh oh, that's not the wiki, sorry
<jamalta> Well it is but it's empty
<jamalta> There's a link there to the new wiki, sorry!
<jamalta> 11:30 < ehlim> Question: how about built in mic for note book?
<jamalta> ehlim: That's another tricky one.. mic's have always worked for me. I've never had issues with any mic I've used.
<jamalta> I would first check your sound options to make sure the mic is enabled and the volume is up for it.
<jamalta> ehlim: in System > Preferences > Sound.. just check all over the place for mic recording volume, it's annoying, sorry.
<jamalta> Also check to make sure the right Mic is chosen in the Input tab
<jamalta> jamon1: Btw, here is the correct wiki http://www.linuxtv.org/wiki/index.php/Main_Page
<jamalta> Also this page should be very helpful with webcams https://help.ubuntu.com/community/Webcam
<jamalta> So let's go on to ndiswrapper. In my example I will be using a broadcom card, because that is what I've had most experience with, and honestly, I think it's the card that gives the most issues in Linux.
<jamalta> First, let's install ndiswrapper by installing the ndiswrapper-utils-1.9 package. You can do this through Synaptic or apt-get (sudo apt-get install ndiswrapper-utils-1.9).
<jamalta> Once you have ndiswrapper you need to get your hands on the Windows drivers. You will hopefully have a CD with them, but if not, you can always try finding them at broadcom.com or drivers.softpedia.com.
<jamalta> If the drivers are in an executable (.exe file), you will have to first extract them in Windows and then copy them to your Ubuntu machine. If you have wine installed, you can attempt to extract them that way. Keep in mind that your C:\ directory is actually in ~/.wine/drive_c/.
<jamalta> Once you have the driver files, open a terminal and go to the directory where the drivers were copied or extracted. The file you are interested in is the inf file. In my case, this is bcmwl5.inf.
<jamalta> So, let's try to install it! Run ndiswrapper -i <filename.inf> In my case, it's ndiswrapper -i bcmwl5.inf
<jamalta> Once that is done, you can run
<jamalta> ndiswrapper -l
<jamalta> Which will list the installed drivers
<jamalta> This will also tell you if the driver is correct, by telling you the driver is installed and the device is present.
<jamalta> 11:37 < MagicFab> jamalta, why not use ndisgtk ?
<jamalta> MagicFab: Good question! I didn't know it existed!
<jamalta> 11:38 < MagicFab> jamalta, the .inf file is not enough, you need to have all  accompanying files. .inf is only a text file
<jamalta> MagicFab, right.. sorry what I meant is that you need the inf file in the command.
<jamalta> As MagicFab mentioned, you do have to have all the extracted files. Sorry about the confusion.
<jamalta> So if you're still using ndiswrapper, the last thing to do is load it by running
<jamalta> sudo modprobe ndiswrapper
<jamalta> At this point, your wifi light will come on and your wifi will have started. I hope that is the case at least!
<jamalta> MagicFab: Thank you so much for your suggestions! ndisgtk is actually pretty good.
<jamalta> So if you install ndisgtk from the package manager, you should be able to do the same thing I just explained. Except, it's all in a GUI that is easy to follow.
<jamalta> Anyways, that is pretty much all I have. I hope that I provided some insight on how to take care of your drivers. I'm going to leave room for any questions you may have.
<jamalta> So please! I would hate to leave with 20 minutes left, heh.
<jamalta> 11:43 < JLinden> Question: I tried installing the driver for ATI X1400 the way you  explained, but I got an error saying that "./default_policy.sh  does not support version ...". What am I doing wrong?
<jamalta> it seems like the issue has to do with the ATI drivers not supporting the kernel you are on
<jamalta> In those cases, I think (and please correct me if I'm wrong) ATI has stopped upgrading the drivers for a specific card to the newer kernels.
<jamalta> So your best bet is to try the radeon drivers (Open Source drivers) to see if they work.
<jamalta> That is what is terrible about the restricted drivers.. we rely on these companies to "support" us and in most cases they don't do it well.
<jamalta> 11:45 < jazz__> Question: how do you remove drivers completely
<jamalta> jazz_: You will want to look at your package manager to get rid of drivers. For example, if I wanted to get rid of fglrx, then I would remove xserver-xorg-video-fglrx using Synaptic or apt-get remove
<jamalta> Regarding the radeon drivers, this page has much more information on how to find out if your card is supported and installing them https://help.ubuntu.com/community/RadeonDriver
<jamalta> I'm going to say goodbye now, as nigelbabu will be taking over and using the extra time for his class. I will answer questions in -chat. Thanks everyone!
* cjohnston changed the topic of #ubuntu-classroom to: Ubuntu Classroom || Ubuntu User Days | Current Session: Using Launchpad ~~ Presented by nigel_nb || Please ask questions in #ubuntu-classroom-chat || Ubuntu User Days Survey: http://www.surveymonkey.com/s/WQWHJQY
<cjohnston> Thanks jamalta !
<cjohnston> Unfortunately freenode, the IRC network we use, has been hit hard recently with an influx of javascript spam. For more information please see http://blog.freenode.net/2010/01/javascript-spam/. Do not click other links that say you are infected or they are more information about the spam.
<cjohnston> Also, at some point today please take the Ubuntu User Days Survey located at http://www.surveymonkey.com/s/WQWHJQY
<pleia2> Nigel is a computer science student who is a passionate FOSS and Ubuntu enthusiast. He is involved is various teams in the Ubuntu community like the beginners Team,
<pleia2> Ubuntu Community Learning Project, and Bug Squad.
<nigelbabu> Alright, like starcraftman, I've got a lot of ground to cover and only the hour. I'm going to go fast, so buck up!  Please keep questions to #ubuntu-classroom-chat, reserve them for when I ask for them. Please make sure you keep them  prefaced with "QUESTION - " so people can see them.
<nigelbabu> Also, please don't PM me during this session.
<nigelbabu> As pleia2 mentioned,  I'm Nigel Babu and I'm Ubuntu's bug squad member.  I'm here to talk today about Launchpad.  hggdh will be assisting me with answering your bug reporting queries later on in the session :)
<nigelbabu> Launchpad is a collaboration and hosting platform for software projects.
<nigelbabu> It brings communities together by making it easy to share code, bug reports, translations and ideas across projects.
<nigelbabu> Now, my main focus is why it is a good idea for you, as a user, to sign up for a Launchpad account.
<nigelbabu> There are mainly 3 services that you might want to use after signing up for Launchpad -- OpenID, Launchpad Answers, and Reporting Bugs.
<nigelbabu> I will be elaborating about how to report bugs in great detail while touching through the others.
<nigelbabu> Now, lets talk about Launchpad an Open ID provider.
<nigelbabu> Open ID allows you to use an existing account to sign in to multiple websites, without needing to create new passwords.
<nigelbabu> However, rather than entering that username and password at each website, you use a website you trust -- such as Launchpad -- to confirm your identity to the other sites.
<nigelbabu> Now, here is how it works :
<nigelbabu> You visit a website that supports OpenID and it asks you to log in.
<nigelbabu> Enter the Launchpad profile URL - https://launchpad.net/~your-nickname. (lernid guys, apologies, you'll see page not found)
<nigelbabu> If you're not already logged into Launchpad, it'll ask you to enter your username and password.
<nigelbabu> Once you're successfully logged into Launchpad, it'll return you to the site you want to use.
<nigelbabu> Simple! This means that you only need to remember your Launchpad profile URL, username and password in order to use websites that support OpenID.
<nigelbabu> You can use Launchpad to log into any of the growing number of sites that support OpenID.
<nigelbabu> So where can you use it?  Blogs on blogger, wordpress (using an openID plugin), LiveJournal, and many more.
<nigelbabu> For the full list, please refer to http://en.wikipedia.org/wiki/OpenID#Adoption
<nigelbabu> Okay, so any questions so far about OpenID with Launchpad?
<pleia2> < oskude> QUESTION - is there a "fear" to get scammed for your OpenID ?
<nigelbabu> oskude, could you explain more?  I dont understand your question
<pleia2> < oskude> or how im sure that a site really uses OpenID ? and not try to scam my ID ?
<nigelbabu> well, when you try to signup for open ID, it will take you to your provider's side, i.e. launchpad
<nigelbabu> make sure that the browser location shows http://www.launchpad.net and you should be fine
<pleia2> < Brot1> QUESTION: why is launchpad only a OpenID-provider and not except OpenID accounts from other providers?
<nigelbabu> well, that functionality is not yet written.
<nigelbabu> remember launchpad is in active development and features get added all the time
<nigelbabu> Let's move onto Launchpad Answers.
<nigelbabu> Please hold your questions till the end of this one
<nigelbabu> starcraftman covered this briefly and I'll take you through it in more detail.
<nigelbabu> While mailing lists, web forums, and IRC are great places to find help with free software they do have a couple of shortcomings:
<nigelbabu> oops, sorry lernid guys
<nigelbabu> (a) There's no way to track the progress of a question and knowledge about the software is spread across different places.
<nigelbabu> so the solution to that is launchpad answers.
<nigelbabu> Launchpad Answers is unique in that it works like a bug tracker.
<nigelbabu> It notifies volunteer support contacts of new questions, builds a searchable knowledge base of good answers, and allows people to ask questions and offer support in different languages.
<nigelbabu> Using Launchpad Answers is easy, first off, visit the Answers page at https://answers.launchpad.net/ubuntu.
<nigelbabu> Click on the "Ask a Question" link in the right top of the page.  Next, type good summary to your question.
<nigelbabu> of course I would assume that you are signed in.  If you're not, just listen in.  You can try it out later.
<nigelbabu> Just make sure that the question is entered clearly.
<nigelbabu> starcraftman covered asking questions properly on forums and it applies here too
<nigelbabu> "Please help me!" or "I need help" is not a good summary ;) .
<nigelbabu> A good summary would be "How to replace a hard drive without losing the boot loader" or something in that tone
<nigelbabu> Click on next, and Launchpad will now search for existing questions that look similar.
<nigelbabu> If it finds any, it will show you them.  If Launchpad doesn't find any similar questions, or those it finds are unhelpful to you, you can write a more detailed description of your problem and submit your question.
<nigelbabu> Once you've added your question, Launchpad emails anyone who's volunteered to be an answer contact for your language.
<nigelbabu> They can then ask you for more information or offer an answer. Launchpad will then email you whenever your question changes, such as when someone suggests an answer.
<nigelbabu> Thats about for LP answers.  Questions?
<nigelbabu> Question - will Lauchpad collect information on our system? like hardware info?
<nigelbabu> well, launchpad as such does not collect information.  Its apport which collects it and automatically adds to a bug report.  But that works only for bugs anyway.
<nigelbabu> for those of who you who dont know, Apport is a script that collects information about a software when you report a problem. (I'll talk about it soon!)
<pleia2> < Yos> Question When starcraftman gave his session, it sounded like asking questions on launchpad should be nearly the last resort, but you make it sound more like it should be done at even an early troubleshooting step that is, to centralize the knowledge base.  My question is, when should someone turn to launchpad to ask their question?
<nigelbabu> its personal perference really.  Some people like forums - there is a sizeable crowd there and I feel you have a better chance there.
<nigelbabu> LP answers are people like me - lazy to browse forums, just doing a quick dash of questions I understand when I get the time
<nigelbabu> both sides have volunteers and a good community.  Basically boil down to personal perference
<nigelbabu> okay, so lets move on to bug reporting now
<nigelbabu> Ubuntu as you know Launchpad for reporting bugs.
<nigelbabu>  Launchpad is a very unique bug tracker and we'll be covering how to make your bug report more complete and therefore more likely to get fixed!
<nigelbabu> Very often we see bug reports with incomplete information, which means more time is spent getting the actual information.  If you give proper information, its easy for us triagers to confirm the bug so the developers can look into it.
<nigelbabu> so, now, we'll be looking at how to ensure that you give proper information
<nigelbabu> Even though you can report bugs directly from the website, we suggest that you don't you do that.
<nigelbabu> in fact, most of the time, the appropriate information is never really attached or given when you report from the web interface
<nigelbabu> If you want to report a bug on an application that is running and responding, use the application's help menu: Help -> Report a problem.
<nigelbabu> Its a GUI that will collect the necessary information required for that software.
<nigelbabu> like this https://help.ubuntu.com/community/ReportingBugs?action=AttachFile&do=get&target=report-a-problem.png
<nigelbabu> If an application crashes, and you're using a version of Ubuntu which is actively under development, Apport will start automatically, raising an appropriate bug report for you to complete in Launchpad. This provides developers with rich debugging information that will make it easier to fix the problem.
<nigelbabu> for more information about apport, see https://wiki.ubuntu.com/Apport
<nigelbabu> some times, you really can't use the menu for reporting bugs for example :
<nigelbabu> You're using the Server Edition,  The application doesn't have the appropriate menu item,
<nigelbabu>  The application won't start at all, or Your problem is not related to an application but is an infrastructure component, such as the Linux kernel or graphics subsystem
<nigelbabu> this is when you use a small command  line program called "ubuntu-bug"
<nigelbabu> supposing firefox is giving you trouble
<nigelbabu> to report a bug about firefox, you simply type "ubuntu-bug firefox" in the Alt + F2 dialog (https://help.ubuntu.com/community/ReportingBugs?action=AttachFile&do=get&target=ubuntu-bug.png)
<nigelbabu> the format is ubuntu-bug <package-name>
<nigelbabu> so, it is very critical you have the package right
<nigelbabu> if you have a problem with epiphany browser, you would report it against "epiphany-browser" and not "epiphany" - epiphany is a game
<nigelbabu> to know more about finding the right package, please see https://wiki.ubuntu.com/Bugs/FindRightPackage
<nigelbabu> To file a bug against a program that is currently running, go to System > Administration > System Monitor, and find the ID of the process:
<nigelbabu> for example https://help.ubuntu.com/community/ReportingBugs?action=AttachFile&do=get&target=system-monitor-id.png
<nigelbabu> Then type the process ID instead of the package name into the "Run Application" window.
<nigelbabu> https://help.ubuntu.com/community/ReportingBugs?action=AttachFile&do=get&target=ubuntu-bug-pid.png
<nigelbabu> In the event that you have a bug with your internet connection or want to file a bug for another system you can still do this using apport.
<nigelbabu> Using the command apport-cli -f -p <package name> on the target system will collect information and provide you with an option to "K: Keep report file for sending later or copying to somewhere else".
<nigelbabu> The report is then saved on the target system, in your /tmp directory which is cleared out on reboot, with a .apport extension.
<nigelbabu> After copying it to a different system you can file that report using ubuntu-bug  <location of apport file>.
<nigelbabu> A special note, all translation issues should be filed against the Ubuntu Translations project (ubuntu-translations). From there the bugs will be triaged and assigned to the right person and package.
<nigelbabu> Wrong translations or spelling mistakes in applications, Errors in spellcheckers or language support, etc all come under translations bug
<nigelbabu> If for some reason you cannot file a bug through the Apport tool you can file one via Launchpad. When doing so please ensure that you have determined which package it should be filed against.
<nigelbabu> ensure that you read the "Finding the right package" link I gave earlier.  Well, here it is again : https://wiki.ubuntu.com/Bugs/FindRightPackage
<nigelbabu> To report a bug when you don't know the package name https://bugs.launchpad.net/ubuntu/+filebug/?no-redirect - please use this as the last instance.  If you need help with filing a bug, do drop by at #ubuntu-bugs.  We'd be happy to help
<nigelbabu> If you have already reported a bug directly via Launchpad, but want to add additional debugging information via Apport to the bug, you can do this by running the command "apport-collect BUGNUMBER" via "Run Application" or terminal window.
<nigelbabu> now moving on to the report itself
<nigelbabu> When a developer fixes a bug, they will test that the bug occurs, make a small change to the program, then see if the bug has gone away. Depending on the bug, they might need to run the same test dozens or hundreds of times. When you submit a bug report, it's important to specify three things:
<nigelbabu> (1) What you expected to happen (2) What actually happened (3) The minimal series of steps necessary to make it happen, where step 1 is "start the program"
<nigelbabu> Fill in the description field with as much information as you can, including the release of Ubuntu you are using and steps for someone else to recreate the bug. It is better to have too much information in the description than not enough.
<nigelbabu> Only describe a single problem per bug report so that each can be followed up on in detail. If you experience several issues file separate reports.
<nigelbabu> Add supporting attachments to explain or help others reproduce your bug. This might include a screenshot or video capture of the problem or a sample document that triggers the fault. To add an attachment to the bug use the Include an attachment section of the bug form. Additional attachments, if necessary, can be added after the bug is reported via Add a comment/attachment at the bottom of the page.
<nigelbabu> For anything hardware related, give precise details about your hardware. Attaching the output of "lspci -vvnn" and "dmesg", after a fresh boot, will help a lot.
<nigelbabu> A bug report can be under different status, initially, it is in the "New" status
<nigelbabu> this is the latest bug for ubuntu filed.  https://bugs.launchpad.net/ubuntu/+source/software-center/+bug/511632
<nigelbabu> notice the status is "New"
<nigelbabu> It will be changed to Confirmed if someone else can reproduce the same problem and confirm that the issue is actually a bug.
<nigelbabu> Please do not confirm your own bug, that would defeat the purpose of having "Confirmed" status
<nigelbabu> If a bug triager has asked you for more information, he/she will set the status to incomplete.  Once you submit the information, do not hesitate to change the status back to "New"
<nigelbabu> If you look at the bug report I showed, you'll see a green text "This bug affects 1 person. Does this bug affect you?"
<nigelbabu> Please dont click that button if your bug is a hardware bug.  The same issue can be caused by several different hardware and each need to be different bugs.
<nigelbabu> Clicking on me too! is not going to solve your problem.
<nigelbabu> If your issue is software bug, like the bug I just showed (which i suspect could be some trouble with the mirrors), you *could* click for me too and leave comments
<nigelbabu> moving on to What is NOT a bug!
<nigelbabu> Support requests - they are not bugs.  Please use #ubuntu IRC channel, forums, LP answers, and other community support means
<nigelbabu> Feature and policy discussions (including suggestions to change defaults) should be discussed on the ubuntu-devel-discuss mailing list.
<nigelbabu> exception to the above are small feature requests to a particular software (like support webchat in pidgin - its there now!)
<nigelbabu> Development ideas should be posted to http://brainstorm.ubuntu.com/ or discussed on the ubuntu-devel-discuss mailing list.
<nigelbabu> Already filed -  if its a software bug and already filed, then better subscribe to the one already filed and add any additonal information if any
<nigelbabu> Okay, thats it for the class.  hggdh and I are available for questions :)
<nigelbabu> QUESTION - Are Launchpad bugs connected to bzr ? as in, can i close a bug from bzr command line while submitting (pushing) a commit ?
<hggdh> no
<hggdh> here's why: pushing a commit will *not* resolve the bug. Only when the commit is actually deployed this will happen
<hggdh> and you get that done by adding (LP: xxxxx) on the changelog
<nigelbabu> QUESTION -  I'm not sure I understand: does Apport report to launchpad ? If not, how do we get feedback on the reported bug ?
<nigelbabu> yes.  Apport brings you to the LP page.
<nigelbabu> here, you need to add more details about the bug like the summary and description
<hggdh> and the submitter is automagically subscribed to any updates on the bug
<nigelbabu> A few more minutes to take some quick questions.  Any more?
<cjohnston> Thank you very much nigelbabu and hggdh!
<nigelbabu> Okay.  That's about it then.  Thank you hggdh for you help :)
<nigelbabu> I guess I forgot to introduce hggdh.  He is a member of bug control and mentor to a lot of new Bug Squad members :)
 * hggdh bows
<cjohnston> Again.. Please take our Ubuntu User Days survey today! http://www.surveymonkey.com/s/WQWHJQY
* cjohnston changed the topic of #ubuntu-classroom to: Ubuntu Classroom || Ubuntu User Days | Current Session: Seahorse and GnuPG ~~ Presented by mhall119 || Please ask questions in #ubuntu-classroom-chat || Ubuntu User Days Survey: http://www.surveymonkey.com/s/WQWHJQY
<cjohnston> Our next speaker is another member of the Ubuntu Florida LoCo team!
<cjohnston> Michael Hall has been working in software development for 10 years. He has been a Desktop Linux user for 6 years, the last 4 being on Ubuntu.
<cjohnston> He is the main developer of Qimo, an Ubuntu-derived Linux Distribution for kids. He currently spends his days doing Python development for the
<cjohnston> Moffitt Cancer Research Center in Tampa, FL.
<mhall119> thanks cjohnston
<mhall119> so I'm going to be talking about cryptography, what it is and how it's used by Ubuntu
<mhall119> and also how it can be used by you
<mhall119> if you go over to my notes for this session, there's some helpful images and screenshots https://wiki.ubuntu.com/UserDays/01232010/SeahorseGPG
<mhall119> so there are two types of encryption in regular use
<mhall119> in the past, the most often used form was symmetric cryptography
<mhall119> what this means it that you have one key, and that key is used to both encrypt and decrypt the data
<mhall119> much like a physical lock
<mhall119> so, if you want to use that to securely send a box to someone, you need to send them the box, the lock, and a copy of the key
<mhall119> now, the problem is that you have a much harder time keeping that key safe, because it's having to be passed around, or you have to give out multiple copies
<mhall119> and if you send them all together, then it defeats the purpose of locking the box in the first place
<mhall119> so some time ago some very smart people developed an alternative method called public key cryptography
<mhall119> and what makes that different is that instead of one key, you have two
<mhall119> and those two keys are different, but related
<mhall119> specifically, they are used in a new kind of lock, and if you use one of the keys to lock it, then only the other key can unlock it
<mhall119> now, the reason it's called "public key" cryptography is because you make one of these keys publicly available, to anyone that wants it
<mhall119> and you keep the other one completely private, you never give it to anybody, you don't let anybody see it
<mhall119> so now if you want to send a box to your friend, you get their public key (which they made available to everyone), and you use that to lock the box
<mhall119> and because you used their public key to lock it, only their private key can be used to unlock it.  Not even the key you used to lock it can unlock it
<mhall119> so now you can send the locked box over an unsecured route like the post office, knowing that the only person in the world who has a key that can unlock it is your friend
<mhall119> for added security, you can lock the box twice
<mhall119> once as before, using your friend's public key
<mhall119> and then again, using your private key
<mhall119> and what that does is not only let you know that only your friend can open it
<mhall119> but now your friend, using your public key to unlock it, knows that you are the only person in the world who could have sent it
<mhall119> any questions so far?
<mhall119> oskude> as i haven't ever had something i would need to be a secret that only a key can open... where do you need this ?
<mhall119> very shortly I'm going to show you how this is used in Ubuntu, and the benefits it gives you
<nigelbabu> question - how strong should a key be? in your screenshots you use strength 768
<mhall119> okay, so public key cryptography has several implementations
<mhall119> the key strenght is up to you, I used the default values in my screenshots
<mhall119> the larger the key, the longer it would take some evil government to crack it
<mhall119> but it also takes longer for it to encrypt and decrypt things
<mhall119> so it's a judgement call, what level of security do you need?
<mhall119> so, Ubuntu has a few implementations of this
<mhall119> SSH, or the secure shell, which provides an encrypted connection between two boxes similar to telnet
<mhall119> GnuPG, which is an open source implementation of PGP (Pretty Good Privacy), which is used to sign and encrypt files and email
<cjohnston> < Brot1> and which key length is recommended?
<mhall119> and SSL, which you should all be familiar with, is the underlying technology behind HTTPS
<mhall119> I personally use 4096 bit keys, which is probably overkill, but I'm not encrypting things where speed of encryption matters
<mhall119> for something like SSL or SSH, it might slow you down slightly
<mhall119> I'm sure there's plenty of references on the internet with people arguing for or against larger keys
<mhall119> okay, moving on
<mhall119> Ubuntu uses these technologies for some of it's underlying systems
<mhall119> the repositories that feed apt and synaptic are secured through GPG
<mhall119> every package on them is signed by Canonical
<mhall119> so that means that you can verify that every package you download hasn't been modified by someone else
<mhall119> even if someone hacked into the repository server,and replaced packages with their own that contained a virus
<mhall119> it wouldn't let you install it, because the signature wouldn't match
<mhall119> the same goes for the PPA (personal package archives) available on Launchpad
<mhall119> those packages aren't signed by Canonical, but rather the owner of the PPA
<mhall119> so if you trust the owner of the PPA not to include a virus or trojan in their packages, you add their public key to your system, and that will be used to verify their packages
<mhall119> finally, if you want to become a contributor to Ubuntu, you will need to sign the code of conduct
<mhall119> and that requires that you use your private key to "sign" the actual CoC file
<mhall119> signing doesn't encrypt the data, but rather is creates a short encrypted "signature" of the data, which when checked with the other key in the pair, will tell someone that the plain text message matches what the sender signed
<mhall119> any questions before we move on?
<mhall119> great
<mhall119> now for the fun part
<mhall119> Under Applications->Accessories you will find "Passwords and Encryption Keys"
<mhall119> this is a graphical frontend to GnuPG called Seahorse
<mhall119> and it will let you manage your PGP and SSH keys, and also will store passwords for you so that you don't have to remember them all
<mhall119> so now we're going to walk through creating a private and public key of your very own
<mhall119> Go to File->New
<mhall119> and select PGP Key
<mhall119> Put in your Name, email, and a comment
<mhall119> you can see in my screenshot that I made one specifically for this session
<mhall119> under the "Advanced" settings is where you can is where you can set the type and length of the key
<mhall119> so fill that out and press the create button
<mhall119> this will take a few minutes, depending on your CPU speed and key size
<mhall119> so we'll stop for questions
<mhall119> if there are any
<mhall119> again, you can follow along with the screenshots here if you aren't actually making the keys: https://wiki.ubuntu.com/UserDays/01232010/SeahorseGPG
<_marx_> QUESTION If I lose or forget the passphrase will i have to make a new key?
<mhall119> yes
<mhall119> you can change the passphrase if you want, but you will need to know the old one to do so
<mhall119> do not forget your passphrase, and do not lose your private key, or you will need to make new ones
<mhall119> and your old public key will not no longer be usable
<_marx_>  question - what is the diference with DSA (elgamal) and DSA (only sign)
<mhall119> I'm not really sure what DSA (elgamal) is
<cjohnston> < somnoliento> QUESTION What's the relationship between this PGP keys and the keyring (a common dialog in ubuntu sessions)
<mhall119> you can ignore the (only sign), those are flags for users, you can still encrypt with those keys
<mhall119> good question
<mhall119> a keyring is a single place to store multiple keys
<mhall119> your GnuPG keyring contains your private keys, your public keys, and the public keys of other people you know
<mhall119> alright, we're gonna have to move one due to time
<mhall119> if anyone is still generating keys, you can follow along with the screenshots
<mhall119> once you have your key, you can view it's properties
<mhall119> you should note the Key ID and Fingerprint for your key, you will use them later
<mhall119> now, it's time to make your public key public
<mhall119> select your new key, and goto Remote->Sync and publish keys
<mhall119> click on the Key Servers button to see the public keyservers available
<mhall119> on the "Publish keys to: " drop down, select the ubuntu server
<mhall119> you also have two more options here
<mhall119> you can have your system automatically check these key servers for a person's public key when you recieve something encrypted or signed by them
<mhall119> you can also have it automatically sync the public keys in your keyring if you change them
<mhall119> it's up to you if you want to enable those, I do for convenience
<mhall119> okay, now close that dialog and click the Sync button
<mhall119> this will upload your public key to the ubuntu keyserver
<mhall119> and it will eventually be sent to the other public keyservers too, as they all share key data
<cjohnston> < oskude> QUESTION - i assume there is no confirmation screen after "sync" ?
<mhall119> you can check that your key has been uploaded by going to the web interface: http://keyserver.ubuntu.com:11371/ and doing a search on your name
<mhall119> no, I don't think there is a confirmation on sync
<mhall119> it may take a few minutes to get published
<mhall119> alright, now we need to get someone's public key from those keyservers
<mhall119> back in Seahorse, go to Remote->Find Remote Keys
<mhall119> and search for "Ubuntu User Day"
<mhall119> you will see a few of them now, as it seems some of you used the same comment I did :)
<mhall119> my key, as you saw in the screenshots, has id 08FBB574
<cjohnston> < Yos> Question is there a way to delete from these keyservers obsolete public keys
<mhall119> right-click that and select Import
<mhall119> cjohnston, I don't think so, when a key is obsolete, you generally add it to a published "revokation" list
<mhall119> so that people know it was explicitly removed from use
<mhall119> alright, now if you go to the "Other Keys" tab, you should see my User Day key there
<mhall119> double-click that to view it's properties
<mhall119> now for some more magic
<_marx_> 10 minutes
<mhall119> if you go to the Trust tab you can sign my public key with your private key
<mhall119> and what this does it let other people know that you believe that key belongs to me
<mhall119> so even if someone else doesn't know that, if they trust you, then they can be assured
<mhall119> wow, 10 minutes left, okay the next will have to go by fast
<mhall119> I'm gonna skip the ssh and password parts, they're pretty straight forward, you can see the screenshots
<mhall119> now, you can integrate your new PGP key into Evolution to sign and encrypt outgoing email
<mhall119> and also to decrypt and verify incoming email
<mhall119> in Evolution, go to Edit->Preferences and select your account
<mhall119> on the Security tab, you can put the key id from your key, and evolution will use that
<mhall119> when someone sends you an encrypted or signed email, Evolution will display an icon at the bottom telling you the state of it
<mhall119> whether it was valid, and who it was from
<mhall119> finally, if you install the package seahorse-plugins, you will have extra options in Nautilus and GEdit to sign or encrypt
<mhall119> in nautilus, you can right-click any file (not folder) and encrypt it
<mhall119> if you want more than one file, compress them into a .zip or .tar.gz and encrypt that
<_marx_> 5 minutes
<mhall119> and from Gedit, under the Edit menu will be options to sign/encrypt/decrypt and verify
<mhall119> alright, any questions in the last 5 minutes?
<pleia2> < oskude> QUESTION - Should i copy that "Key ID" (8 characters) row from Seashore (Passwords and Encryption Keys) or right click and select copy (gets a longer string) ? (for the evolution settings)
<_marx_> QUESTION - Should i copy that "Key ID" (8 characters) row from Seashore (Passwords and Encryption Keys) or right click and select copy (gets a longer string) ? (for the evolution settings)
<mhall119> just the key id
<mhall119> anything else?
<mhall119> you have my email address now (it on my public key), so you can always email me for more questions
<mhall119> or find me in #ubuntu-us-fl just about any time
<mhall119> okay, well thank you all for coming, and enjoy your new cryptographic powers!
* pleia2 changed the topic of #ubuntu-classroom to: Ubuntu Classroom || Ubuntu User Days | Current Session: Choosing hardware that will work with Ubuntu ~~ Presented by MagicFab || Please ask questions in #ubuntu-classroom-chat || Ubuntu User Days Survey: http://www.surveymonkey.com/s/WQWHJQY
<nigelbabu> Thanks mhall119 for that wonderful session
<nigelbabu> next up is MagicFab with a session on Choosing hardware that works with Ubuntu
<nigelbabu> FabiÃ¡n work at Canonical's Global Support Services center in Montreal, Canada as a senior support analyst and technical trainer since November 2006.
<nigelbabu> The scope of his works includes hardware, desktop and server support issues, as well as training support partners on how to best tackle those.
<MagicFab> inasec
<nigelbabu> He is mostly interested in free technologies advocacy (including formats, content, licensing) & training for new users, with an emphasis on security.
<nigelbabu> well, MagicFab is going to take a minute.  During that time I'd like to remind you all about the attacks again!
<nigelbabu> Please do not click any links that say about the attacks and promise to give more information
<nigelbabu> and when you get the time, do answer the survey at http://www.surveymonkey.com/s/WQWHJQY
<MagicFab> Ok, I take a glass of water and brb in 1
<nigelbabu> As you all know, there is a Spanish version of Ubuntu User Day and MagicFab just finished a class there.
<MagicFab> OK let's roll :) nigelbabu tx for the intro
<MagicFab> My session today is described at: https://wiki.ubuntu.com/UserDays/01232010/ChoosingHardwareThatWorks
<MagicFab> You'll find contact info too, in case anything remains unclear/unanswered
<MagicFab> And just to be SUPER CLEAR: this will NOT be about troubleshooting, but rather how to buy your hardware so you don't have to troubleshoot ANYTHING :)
<MagicFab> and also understanding why your  existing hardware doesn't work (if/when it doesn't)
<MagicFab> Questions welcome ANYTIME
<MagicFab> In my daily work at support I often get support cases that have this remark: "BTW, my hardware run fine on Windows / Mac OSX ."
<MagicFab> runs8
<MagicFab> runs*
<MagicFab> :)
<MagicFab> So I want to start with that misconception.
<MagicFab> It's important to know why this has nothing to do with the same hardware working in Ubuntu (or in general, Linux)
<MagicFab> I often politely say "ok, so we know it's not broken" ! .. which may be useful to know anyways... well..
<MagicFab> The fact is all hardware that work on Windows or Mac and lists it under its requirements most likely came with drivers for it. Would you expect a wheel designed for a Hummer to fit on your bicycle ?
<MagicFab> Or would you expect to be able to call Hummer/GM/whoever and have a "workaround" in five minutes ?
<MagicFab> Ok, I know this example is not exactly fitting :) But you get the idea. Ubuntu and Linux in general relies on the idea that whatever has open specs and documentation that can be freely shared and implemented without patent/legal constraints will be - if there is demand for it.
<pleia2> Question - possible suggest notebook will support best for ubuntu ?
<MagicFab> When hardware manufacturers don't make their specs open & legal to implement, that's when you're most likely to find compatibility problems. Nowadays most situations when this happens are known and manufacturers that support Linux (or not) are not difficult to spot.
<MagicFab> pleia2, I will get to that very shortly :)
<pleia2> < LuizAquino> Question - Does Ubuntu comes with, by default, some GUI tool to know our hardware?
<MagicFab> LuizAquino, yes it's called the LiveCD. I'll get to that at the very end :) It's the secret weapon to test BEFORE you buy.
<MagicFab> Most importantly, manufacturers historically target Windows or Mac depending on what will be more profitable to them. Remember those are *business relationships* which means even if there may not be technical obstacles to make their devices compatible with Linux, the economic incentive may just not be there.
<MagicFab> or economic * capability *.
<MagicFab> Nevermind the offer to do this for free (thanks for the reminder andresmujica):
<MagicFab> http://www.linuxdriverproject.org/foswiki/bin/view
<MagicFab> Some companies just can't afford (in every sense of the term) to do so.
<pleia2> < somnoliento> QUESTION What role (if any) should Canonical have in "bugging" hardware makers for support?
<MagicFab> Can they afford not to support Ubuntu ? *THAT* is why it's important you *always* let a manufacturer know you are using Ubuntu (or just "Linux") with their devices. Every email/call/public post counts.
<MagicFab> somnoliento, honestly Canonical is only an enabler. The community votes with their money. The manufacturers respond or not. The nice thing right now is we can at least say there is *some* business to get from +10 million users...
<MagicFab> And by *only* I mean getting companies like Dell to ship pre-installed :) That's one area of focus :D
<MagicFab> So I'll start with that notion. --> "DO your research, vote with your money"
<MagicFab> What hardware is guaranteed to work with Ubuntu ? ?
<MagicFab> Right now Canonical offers *systems* certification (NOT component-only).
<MagicFab> This means you can easily check if a server, desktop or laptop is certified or not. Components, are a bit trickier.
<MagicFab> So your first stop, and this answers the previous netbook recommendation question, should be: http://webapps.ubuntu.com/certification/
<MagicFab> Knowing your official docs may help tremendously when looking at components + systems recommendations...
<MagicFab> For example
<MagicFab> https://wiki.ubuntu.com/HardwareSupport
<MagicFab> and
<MagicFab> if you come from Windows...
<MagicFab> https://help.ubuntu.com/9.10/switching/preparing-hardware.html
<MagicFab> A loooot more resources exist. But those are what I'd call "official" as far as *Ubuntu* is concerned. Sure, most things that work in "any linux" will work in Ubuntu.
<MagicFab> So other sites help there
<MagicFab> http://linuxpreloaded.com/
<MagicFab> is one of them.
<MagicFab> So who can you trust ?
<MagicFab> Public accounts of "this works" are incredibly useful. For example look at this one:
<MagicFab> http://castrojo.wordpress.com/2009/12/20/asus-eeetop-2002-and-ubuntu/
<MagicFab> This is an important part of the search & buy process - just like any other goods you'd buy! So many times i hear someone saying they bought this expensive printer... without even checking first!
<MagicFab> Relying on public accounts of "this works" is crucial in that respect. But it's not enough- make sure they don't date back 3 years :D
<MagicFab> Which brings me to another important part of that process: Relying on official sources: Ubuntu info vs. Manufacturer's info ("Linux")
<MagicFab> I mentioned before ** contact your manufacturer, ask about Ubuntu/Linux support **
<MagicFab> You'd be surprised how many have unofficial support (or don't know about it)!
<MagicFab> Here's a test - call Canon... They may not know about it but they have this nice resource:
<MagicFab> http://www.canon-europe.com/Support/software/linux/
<MagicFab> Unfortunately it's not free software. And it's not trivial to install. At least not "the Ubuntu way" - so what to do ?
<MagicFab> Vote with your money.
<MagicFab> This means, know your manufacturer.
<MagicFab> Some are recognized for strong support and easy access to bugtrackers, docs, engineers (some even send their peoiple to the Ubuntu Dev Summit!)
<MagicFab> Dell, HP (for printers), Intel are some of them.
<MagicFab> Atheros too.
<MagicFab> Some are not, but they use standard components...
<MagicFab> from Intel, Atheros... :) You get the idea.
<MagicFab> Some other are really AGAINST supporting Linux (as per their own word).
<MagicFab> Logitech, for example is one of them.
<MagicFab> Some others are in another area: they'll support Linux but won't make it easy/legal to check their specs and work publically
<MagicFab> Nvidia, VIA... are some of them. Broadcomm too.
<pleia2> < davbran> QUESTION - Can we expect to see Linux support stickers in the future, similar to those we see for other OSes?
<MagicFab> In such cases sometimes a business arrangement may make things work - in other not. Bottom line if you buy a desktop with VIa graphics, broadcomm and a Lexmark printer... don't wonder why it requires major work.
<MagicFab> davbran, we're already seing Linux among specs
<MagicFab> for example http://www.buy.com/prod/sandisk-8gb-cruzer-gator-usb-flash-drive-black-sandisk-8gb-cruzer/q/loc/101/206867852.html
<MagicFab> stickers on systems ? I don't know, that only a tiny part of what I'd check
<MagicFab> Samsung for example and Brother advertize "we support LInux". The fact is they provide binary only drivers that hardly are "plug n play". Why bother ?
<MagicFab> For example look at this bug:
<MagicFab> https://bugs.edge.launchpad.net/ubuntu/+source/foomatic-db/+bug/258058
<MagicFab> Do you see anyone from Brother there ?
<MagicFab> Compare that to this:
<MagicFab> https://edge.launchpad.net/hplip
<pleia2> < davbran> QUESTION - Follow Up, I didn't mean system so much. Some of us are more tech saavy than others and research. Some look for the sticker on component packaging.
<MagicFab> So in essence, many vendors already have a strong (or no) reputation and an excellent (or weak) support track for Linux/Ubuntu. Ask about that. I only named a few.
<MagicFab> I'll repeat this again: the only way to change that is to let them know you want(ed) to use heir product on Ubuntu, but it's not possible.
<Pendulum> < lielf> QUESTION: How do I know the driver for linux supports 64 bit?
<MagicFab> lielf you ASK the manufacturer! See ? This is what I was saying. We are programmed to rely only on the community. THat is just wrong.
<MagicFab> :) I am not complaining... but we need to be better at this and include the manufacturers in the discussion.
<MagicFab> lielf the technical answer to your question depends - but iun my experience ALL open source drivers support 64 bit unless some very specific would block them from doing so.
<MagicFab> At the opposite side, something with a binary  only driver needs to have a 64-bit build provided by... the manufacturer. So you need to ask them anyways.
<MagicFab> Sharing success & defeat is my last point in this "Search & vot w/money" section
<Pendulum> < ehlim> QuestionL will ubuntu have own - inhouse hardware in the future, just like other cybergiant like brand A , and brand G you know what i mean
<MagicFab> ONce you've had success (or have been defeated) trying to get your hardwrae to work... report that!
<MagicFab> It may be as long & detailed as Jorge's post which I cited before:
<MagicFab> http://castrojo.wordpress.com/2009/12/20/asus-eeetop-2002-and-ubuntu/
<MagicFab> or as short as this microblogging post:
<MagicFab> http://identi.ca/notice/16246275
<Pendulum> < oskude> QUESTION - but there is a way to run 32bit drivers in 64bit system ? or does this only work for "user space" applications ?
<MagicFab> Remember, Google and other search engines rely on this information being posted somewhere public! So share as much as you can
<MagicFab> Pendulum, there may be a way. But this is not about troubleshooting. This is about choosing the hardware so you don't end up asking yourself that type of question.
<MagicFab> Pendulum, honestly I answer much more questions about 32 bit software <-> 64 bit OS. I can't remember (in 3 years of full time support) having a customer asking about 32 bit drivers in 64 bit Ubuntu.
<MagicFab> oskude (sorry I had the wrong nick) if you have a specific example maybe I can tackle it, I am almost done (~10min)
<MagicFab> Now I'll explain my "Five essential rules you can't break when testing / shopping for hardware"
<MagicFab> - Number one, try not to break your system (if you're testing existing hardware).
<_marx_> 15 minutes
<MagicFab> Don't blindly follow "compile this, sudo that, run this" instructions you find on the web. DOuble check if there isn't a package already, rely on the few links I posted before
<MagicFab> Ask about others "How can I check if my / XYZ scanner works in Ubuntu" ? Your local team mailing list /channel may know this simple answer.
<MagicFab> Use another hard disk, a new partition, or bring your system to the vendor (easy with laptops, not so with servers) - limit physicial "bare-metal " installs
<MagicFab> Takes notes! And backup your config files when playing with them. Perhaps even ask the poster of such solutions how to revert them ?
<MagicFab> Check the dates - as i said before, a 3yr old blog post will probably do more damage than good :)
<MagicFab> This brings me to another point: Search effectively: bugs, forums, blogs
<MagicFab> Yes, I'll repeat this, check that the HowTo you're following matches your UBuntu version! Obvious, but often disregarded.
<_marx_> 10 minutes
<MagicFab> Check their author. Do they regularly blog about solutions ? If this is a server issue... and this person is part of the server team... would you trust them more ? :)
<MagicFab> _marx_, roger that
<MagicFab> - Getting professional vs. community help
<MagicFab> In my position as a senior support analyst and technical trainer... I am amazed many people have absolutely no idea they can pay for support & help
<MagicFab> - Ask your local team and fellow users if there's a consultant or a friendly shop that would accept to help professionally
<MagicFab> - If your business (or your reputation :) depend on it, consider Canonical support. At plans starting at ~U$60/year for unlimited support, it's worth considering in some cases.
<MagicFab> - When you get community help, set your expectations right: be courteous and pacient, after all many volunteers do that in ther spare time.
<MagicFab> Last but not least..
<MagicFab> the SECRET WEAPON!!!!
<MagicFab> It's called the LiveCD. I got a question earlier that asked if we had " some GUI tool to know our hardware?"
<MagicFab> The Ubuntu LiveCD is very easy to carry around. In fact I don't carry a LIve CD anymore but a business card USB bootable Ubuntu
<Pendulum> < IdleOne> MagicFab: just the other day in #ubuntu we had a user complaining about the "paid support" he says he was told that they would not help him
<Pendulum>                  because the application he wanted help with was not supported.
<MagicFab> http://config.fsf.org/membercard/wiki?name=fsf-membercard
<MagicFab> IdleOne, I'd welcome that person to call me directly. Yes, we get many people calling us directly expecting free support. We can't possible scale that :)
<MagicFab> IdleOne, yes, would you call Microsoft to get Linux support ? Amazingly, we get those calls too.
<MagicFab> Here's the FSF bootable card:
<MagicFab> http://config.fsf.org/membercard/wiki?name=fsf-membercard
<MagicFab> Carrying a USB stick with Ubuntu to your local shop and asking nicely to test the system/ component you want to buy is often easy.
<MagicFab> Most computer techs I 've asked this to accept gladly (FutureSHop, Best Buy, etc)
<MagicFab> and they understand it's best to let someone test than to deal with a return
<MagicFab> Oh yes, ALWAYS shop in places wher eyou can easily return stuff. I realize this is easy mostly only in NorthAmerica... but it's a good tool too.
<Pendulum> < IdleOne> QUESTION: I guess what I wanted to know is if the Canonical support covers all software available in the repositories?
<MagicFab> IdleOne, no we don't. Call me and I'll elaborate.
<MagicFab> So thanks everyon for your time and patience, I hope at least some of what I shared is useful :)
<Pendulum> < jazz__> QUESTION: if itll work on a live cd or a usbflash drive, it should work?
* cjohnston changed the topic of #ubuntu-classroom to: Ubuntu Classroom || Ubuntu User Days | Current Session: Partitioning 101 ~~ Presented by duanedesign || Please ask questions in #ubuntu-classroom-chat || Ubuntu User Days Survey: http://www.surveymonkey.com/s/WQWHJQY
<MagicFab> My direct phone number is at https://edge.launchpad.net/~magicfab - honestly I'll answer all questions about this if anyone want to call (weekdays) :)
<MagicFab> Cheers!!
<MagicFab> jazz_, correct, in fact we often do taht as part of troubelshooting
<cjohnston> Thank you MagicFab!
<cjohnston> Up next we have duanedesign..
<MagicFab> Forgot to mention I am off (holiday) next Mo, Tu, so Wed onwards is best
 * MagicFab waves
<cjohnston> duanedesign is a last minute fill in due to someone else not feeling well, so I will let him introduce himself.
<cjohnston> duanedesign it's all you. :-)
<duanedesign> thank you cjohnston
<cjohnston> Also, duanedesign has built in time for questions, so please wait to ask your questions until he asks for them
<duanedesign> I am  contact for the OKlahoma loCo. Proud member of the Ubuntu Beginners team. From my perch on the BT, as we call it, I participate in many parts of the community
<duanedesign> from Bug Triage to Launchpad Answers, wiki work, ect
<duanedesign> I am here today to talk to you guys about Partitioning
<duanedesign> There are three types of partitions Primary, Extended, and Logical
<duanedesign> The original partitioning scheme for PC hard disks allowed only four partitions, thus you are allowed up to 4 primary partitions. Linux numbers primary partitions 1-4.
<duanedesign> You can only create 4 Primary Partitions on a single physical hard drive
<duanedesign> To overcome this limitation, extended partitions are used.  An Extended partition creates a space where you can have more partitions beyond the 4 Primary Partitions. Partitions made within the Extended Partition are called Logical Partitions
<duanedesign> Only one extended partition may be created on a hard drive. This Extended Partition will occupy one of the four Primary Partition slots.  Any number of Logical partitions may be created within an Extended partition, and they may be formatted with any filesystem.
<duanedesign> the usual suspects when it comes to filesystems are NTFS for Windows and ext4 for Ubuntu
<duanedesign> i am going walk you through creating some partitions
<duanedesign> you can visit this page for screenshots that might help illustrate some of the points made
<duanedesign> https://wiki.ubuntu.com/UserDays/01232010/Partitioning
<duanedesign> most, and  this is an assumption on my part, people come to Ubuntu with a Windows install
<duanedesign> However i will start with a blank Hard Drive, making that Windows partition
<duanedesign> just to cover all the bases :)
<duanedesign> your partition tool from the Live Cd is accessed System/Administration/Partition Editor. In this first scenario the drive is empty, so you will be greeted with a window that looks like this Fig.A
<duanedesign> NOTE: FigA corresponds to the screenshots on the link i posted
<duanedesign> you will Select the partition you wish to reformat by right clicking either on the graphical display or on the line below it that corresponds to the partition. If the partition is mounted (you will know because all your options except 'Unmount' will be greyed out), you must unmount it first Click on the "Unmount" option in the menu.
<duanedesign> Click the "New" option in the menu. And you will be greeted with  Fig.B
<duanedesign> Position your cursor over the "Filesystem" Menu. Select "NTFS" from the list. Notice the "Create As" line above the file types. This is where we select the type of parition we are creating. We will let this stay as Primary.
<duanedesign> NTFS remember because we are creating the windows partition first
<duanedesign> your Windows install will always be on a primary partition so we will leave it primary in this scenario
<duanedesign> Click the "Apply" button and, once the creation process is complete the partition is created Fig.C
<duanedesign> you will notice that the unallocated entry is now NTFS
<duanedesign> this is what most people with a Windows computer will start with
<duanedesign> now you must decide if you want to dual boot and keep your windows install or remove it and go all the way Ubuntu
<duanedesign> first i will walk you through resizing the windows partition to make room for Ubuntu
<duanedesign> if you have XP this will be a bit easier thatn if you have Vista/Win7
<duanedesign> If using Windows XP you can resize the partition within Ubuntu
<duanedesign> So to to resize
<duanedesign> Select the partition you wish to reformat by right clicking either on the graphical display or on the line below it that corresponds to the partition that you wish to resize. If the partition is mounted, you must unmount it first. Click on the "Unmount" option in the menu.
<duanedesign> i should of prefaced all this with the very important statement. Always back up data if oyu have any on a computer you are doing any partitioning
<duanedesign> Once you are sure the partition is unmounted, right click on the partition you wish to resize and select "Resize/Move" from the menu Fig.E
<duanedesign> you have 2 options when it comes to resizing
<duanedesign> Dragging and sliding. Position the cursor over the arrow on either side of the graphical bar, left click and hold, then drag the arrow; away from the edge for shrinking or towards the edge (into the free space, if available) to expand it.
<duanedesign> this can be seen in Fig.E
<duanedesign> https://wiki.ubuntu.com/UserDays/01232010/Partitioning
<duanedesign> at this link (for anyone just joining)
<duanedesign> Changing the "New Size" or the "Free Space Preceeding/Following" sizes.
<duanedesign> This is done either by using the up/down arrows to the right of the "New Size" window, or by directly editing the size itself in that Window.
<duanedesign> After changing the size of the partition, just click the "Resize/Move" button, and the changes will be recorded and visible in a window at the bottom. When you are sure that you have resized it as you desire, you click the "Apply" button at the top and the partition will be resized. Fig.D
<duanedesign> now you have a nice area for an Ubuntu install
<duanedesign> as seen in Fig.D
<duanedesign> Now if you are coming from Vista or Windows 7 it is recommended that you do this resizing in Windows
<duanedesign> The Windows partition must be resized from within Windows Vista and Windows 7 using the shrink/resize option:
<duanedesign> Administrative Tools --> Disk Management tool -> Shrink Volume
<duanedesign> sounds easy enough right
<duanedesign> well almost
<duanedesign> Unlike Windows XP, Vista and Windows 7 does not allow you to move the MFT (Master File Table) that controls the NTFS file structure. Inexplicably, Microsoft locates this near the middle (or end) of the partition, somewhat limiting the ability to resize (shrink) the partition completely. Although you will be able to gain some hard drive space from the "Shrink Volume" command, it will be limited
<duanedesign> Ive never had a problem with this. However someone who seemed to know what they were talking about filled me in on this :)
<duanedesign> On the link i have posted with the screenshots there will be links you can use to get more detailed info
<duanedesign> including this topic. However i will walk you through the steps to
<duanedesign> get the maximum shrinkage out of your Vista Win7 partition
<duanedesign>    1. Run the Disk Cleanup Wizard, making sure to remove the hibernation file and all restore points.
<duanedesign> now remember we are in Windows right now
<duanedesign>    2. Disable System Restore
<duanedesign>    3. Disable the pagefile ( Open up System in Control Panel, then Advanced System Settings \ Advanced \ Performance \ Advanced \ Change \ No Paging File.
<duanedesign>    4. In the same Advanced Settings, go to Startup and Recovery \ Settings and then change the Write debugging information drop-down to ?None? to disable the kernel memory dump.
<duanedesign>    5. Disable Hibernation mode in your power options \ advanced power options screen.
<duanedesign>    6. Reboot the machine, and then delete your c:\pagefile.sys file,
<duanedesign> After resizing the Windows Partition Reboot Windows a couple of times. This allows the Windows system to automatically rescan the newly-resized partition (using chkdsk in earlier versions or a similar utility in later versions) and write changes to its own bootloader configuration files.  If you start mucking around with other partitions before Windows has a chance to reset itself, the Windows bootloader will not be able to read 
<duanedesign> considering all this, remember you have the option of backing up your data and formatting the whole drive and beginning from a clean slate
<duanedesign> that is your decision to make. You should of already backed up all your data ;)
<duanedesign> ok
<duanedesign> now we have resized our windows partition
<duanedesign> Fig.D
<duanedesign> you can reference the figur numbers at https://wiki.ubuntu.com/UserDays/01232010/Partitioning
<duanedesign> for those just getting here :)
<duanedesign> as we talked about you are limited to 4 primary partitions
<duanedesign> well we would quickly reach that with our uBUNTU install
<duanedesign> so we are going to create an Extended Partition
<duanedesign> Creating an Extended Partition is done the same way as creating a Primary partition. Remember the "Primary" type in the menu, this time you will select "Extended"
<duanedesign> so just as we created the Primary partition for windows in the first step
<duanedesign> When Extended is selected, all the file types in the menu below will be greyed out. There is no file type associated with an Extended partition. An Extended Partition is basically a container
<duanedesign> so if you look at Fig.B those filetype options willo not be available
<duanedesign> an extended partition is a container
<duanedesign> for ourAn Extended Partition is basically a container for any number of Logical partitions, which can be of any file system format.
<duanedesign> So we are booted up in our LiveCD after shrinking our Windows partition.
<duanedesign> Or this is where you would pick up if you are doing a straight Ubuntu install
<duanedesign> Select the unallocated partition you wish to reformat by right clicking either on the graphical display or on the line below it that corresponds to the partition.
<duanedesign> Click the "New" option in the menu.
<duanedesign> Position your cursor over the "Create As" Menu. Select "Extended Partition" from the list.
<duanedesign> you will want to make this extended partition the rest of the drive
<duanedesign> all the partitions we are going to create for Ubuntu will go inside it.
<duanedesign> after you create the Extended partition you will end up with an unallocated space in the Extended partition See Fig.G
<duanedesign> notice its the same size as our Extended Partition
<duanedesign> now we need to fill it with our Logical Partitions
<duanedesign> For an Ubuntu install I will recommend the following partition scheme
<duanedesign> = root min size 5 GB (Yes, I know you can go smaller if needed), 15-20 Gb may be better if you have the HD space.
<duanedesign> actually 20 is a bit overkill
<duanedesign> Swap X 1.5 RAM at least the size of RAM for Suspend to Disk
<duanedesign> some people will say 2X. thst is too much
<duanedesign> at least the size of RAM
<duanedesign> Rest for /home
<duanedesign> ok so the short of it is. the root partition contains Linux and your apps. The home drive is you personal files. And swap is an area the computer uses like RAM on your Hard Drive
<duanedesign> you will want an extra /home partition
<duanedesign> this makes it easy to reinstall if something goes wrong
<_marx_> QUESTION No partition for /root?
<duanedesign> you will preserve all your settings and pictures of your cats
<duanedesign>  /root partition is usually between 10-15GB
<duanedesign>   / = root min size 5 GB (Yes, I know you can go smaller if needed), 15-20 Gb may be better if you have the HD space.
<duanedesign> you will notice root is mentioned as /
<duanedesign> that is how you will set the mount point
<duanedesign> R-click the unallocated space in your Extended partition and get to work :)
<duanedesign> for example
<duanedesign> to reiterate, because this is important and a lot of questions get asked
<duanedesign> 10 / = root
<duanedesign> RAM = swap
<duanedesign> rest /home
<duanedesign> you will specify this under mount point
<duanedesign> you will create these Partitions just like the others.
<duanedesign> Specifying Ext.4 for the filesystem
<duanedesign> and Logical for the type
<duanedesign> i am running out of time
<duanedesign> so i will leave a few minutes for questions
<duanedesign> fire away in #ubuntu-classroom-chat
<duanedesign> here is the link to the wiki page for this session. I will have links to all the resources i used
<duanedesign> https://wiki.ubuntu.com/UserDays/01232010/Partitioning
<duanedesign> Guys, do I still have to make the swap space the same size of the  RAM if I'm on the 64 bit system? I've got 6GB of Ram, and that  would be a lot!
<duanedesign> Question^^
<duanedesign> if you ever desire to Suspend to disk the answer is yes
<duanedesign> otherwise that is a bit much
<duanedesign> I have heard this rule before RAM > 1 Gb swap = 2 Gb
<duanedesign> AmrH: so that might be a good guide
* cjohnston changed the topic of #ubuntu-classroom to: Ubuntu Classroom || Ubuntu User Days | Current Session: Ubuntu Equivalent Programs ~~ Presented by cprofitt || Please ask questions in #ubuntu-classroom-chat || Ubuntu User Days Survey: http://www.surveymonkey.com/s/WQWHJQY
<duanedesign> swap is one of those topics that is debated at length in the community
<duanedesign> thank you everyone
<cjohnston> Thanks duanedesign !
<cjohnston> cprofitt is up next
<cjohnston> cprofitt is a Systems Administrator who works with Windows and OS X at this day job, but is a passionate advocate for FOSS and Ubuntu.
<cjohnston> He is an Ubuntu member, leader of the Linux User Group of Rochester, leader of the NY State Ubuntu LoCo, council member of the Ubuntu Beginners Team,
<cjohnston> council member of the Ubuntu Community Learning Project and leader of the Ubuntu Beginners Team Security Focus Group.
<cprofitt> Welcome everyone. I am here to discuss applications that can replace applications commonly used on OS X or Windows.
<cprofitt> The intended audience for this session is people who have recently switched to Ubuntu (and Linux) or those debating making the switch.
<cprofitt> The best part about many of the applications I am going to cover today is that they are cross-platform. By that, I mean that they can be run on Ubuntu, OS X or Windows. For those that are debating making the switch this will allow you to slowly make a transistion.
<cprofitt> how many of you here today have just made the switch to Ubuntu?
<cprofitt> How many ofyou are considering the switch... or still have Windows because you have some application you have not found an alternate for?
<cprofitt> So first I would want to cover what I consider the 'basic' productivity applications. I admit that these applications are my opinion.
<cprofitt> - Word Processor:  Typically Microsoft Office on both OS X and Windows though iWork is a productivity suite.
<cprofitt> - Image editor (bitmap): This is usually Photoshop or a derivitive, like Photoshop express. Corel Photopaint is an option as well.
<cprofitt> - Media Player: Quicktime Player or Media Player would be the two obvious choices, but you also have to factor in iTunes as a media organizer (it uses Quicktime to play media files).
<cprofitt> - Web Browser: The default for OS X is Safari and the default for Windows is Internet Explorer. Though in this space we have to acknowledge that Firefox is used on numerous machines of both OSes.
<cprofitt> - File Browser: Though both OS X and Windows have so entagled their file browsers that most people do not think of them as applications they are, indeed, applications. OS X uses Finder and Windows uses Windows Explorer.
<cprofitt> those are the 'core' applications to me
<cprofitt> I will go over some applications to replace those as well as some other applications.
<cprofitt> The first application I am going to cover is actually an application suite. OpenOffice contains Writer, Calc, Impress and Base. The applications are substitutes for Word, Excel, Power Point and Access. I will admit that the GUI (Graphic User Interface) is not as 'pretty' as Microsoft Office, but the functionality is there to meet the needs of most users. Open Office is able to open Office Documents so the transition can be a smooth one
<cprofitt> NATO with its 26 members (Belgium, Bulgaria, Canada, the Czech Republic, Denmark, Estonia, France, Germany, Greece, Hungary, Iceland, Italy, Latvia, Lithuania, Luxembourg, the Netherlands, Norway, Poland, Portugal, Romania, Slovakia, Slovenia, Spain, Turkey, the UK, and the USA) uses ODF as a mandatory standard for all members.
<cprofitt> OpenDocument has been officially approved by national standards bodies of Brazil, Croatia, Ecuador, Hungary, Italy, Malaysia, South Korea, South Africa and Sweden.
<cprofitt> That is 35 countries that have approved the ODF standard.
<cprofitt> While you may not think that is a great many...
<cprofitt> Only ten countries have approved their Office Open XML standard.
<cprofitt> Using OpenOffice is actually a much better choice if you are concerned about standards
<cprofitt> OpenOffice is cross-platform
<cprofitt> OpenOffice is cross-platform
<cprofitt> what do I mean by 'cross-platform'
<cprofitt> I mean that you can use these applications on OS X and Windows
<cprofitt> cross-platform applications are good for several reasons
<cprofitt> but I find that they assist most with making the transition and being able to work with others after the transition
<cprofitt> the fact that your OS X or Windows using friends can use these applications and exchange documents with you is important
<cprofitt> the fact that you can use these applications and become comfortable with them prior to switching is also a key to being comfortable
<cprofitt> do we have any questions about Open Office?
<cprofitt> I want to take this time to also let you know that you can ask questions on this topic after the live session in the Ubuntu Forums
<cprofitt> http://ubuntuforums.org/showthread.php?p=8712145
<cprofitt> Question: Can open office accept all of the changes in a  Word(tm) document?
<cprofitt> Yes, you can make changes to a MS Word document and either save it as in OpenDocument format or back to the original file
<cprofitt> Question: Does the word processor have the ability to "track"  changes to the document?
<cprofitt> I am not sure if it can track changes or not. If you post that question to the forum thread I will get an answer for you.
<Pendulum> < tcpip4000> Question:  how versioning works in OOO?
<cprofitt> To be honest I do not do that at all with my documents
<cprofitt> tcpip4000: I am not sure on the versioning either. If you can post that question to the forum thread I can look that information up and get an answer for you as well.
<cprofitt> http://ubuntuforums.org/showthread.php?p=8712145
<Pendulum> < dm-madmod> QUESTION: Can OpenOffice Base use a mySQL database?
<cprofitt> Pendulum: I have not tried that. but my understanding is yes
<cprofitt> http://wiki.services.openoffice.org/wiki/Connect_MySQL_and_Base
<cprofitt> That is the wiki article I read on the subject
<cprofitt> but I have not thrown up a MySQL DB yet to test it.
<Pendulum> < userdays6_> Is printing envelopes and mail merge feature supported in OOO?
<cprofitt> It is. I have a wiki link but it is to OO 2
<cprofitt> http://openoffice.blogs.com/openoffice/2006/07/mail_merge_labe.html
<cprofitt> here is another - http://wiki.services.openoffice.org/wiki/Documentation/How_Tos/Creating_Mail_Merge_Documents_From_Text/CSV_or_Spreadsheets
<cprofitt> any more questions on OO?
<cprofitt> ok... next item
<cprofitt> Many of us use our computers to store, catalog and modify our photographic memories. For managing photos we have F-Spot (which is a play on the phrase f-stop that is used in photography). F-Spot will import and catalog your images for you. I have not, as of yet, use F-Spot because I like to catalog my images by using my file system. For editing bitmap images (and creating them) you can use the GIMP. The GIMP is not a clone of Photoshop
<cprofitt> For some sample work done in GIMP - http://ubuntuforums.org/showthread.php?p=8712145
<cprofitt> There I have included a Blue Planet -- made from scratch (dunno why I enjoy making those, but I do). There are also two .xcf files that were potential logos that I created for my local lug. If you have questions on those specific images please ask them in the forum thread. There is also a .png of the final logo, which was changed due to the layout of the web page for Lugor.
<cprofitt> The GIMP is cross-platform
<cprofitt> Do we have any questions about The GIMP?
<Pendulum> You're good to go on :)
<cprofitt> k
<cprofitt> Many people need to design images that 'scale' with the need for different sizes. The best type of images for this are 'vector' images. In the Windows and OS X world that would usually require an investment of several hundred dollars for Adobe Illustrator or Corel Draw. To accomplish this type of image editing one can use Inkscape in Ubuntu. Inkscape is a powerful editor, but due to my needs focusing on bitmap images I do not have exam
<cprofitt> One place to look at some amazing samples of vector images, as well as creative commons work for you to use, is Open Clipart Library - http://openclipart.org/
<cprofitt> Inkscape is cross-platform
<cprofitt> so those two applications take care of most of our image editing needs -- bitmap and vector
<cprofitt> any questions on Inkscape?
<Pendulum> < userdays6_> yes, i tried editing like in Ms paint, but some basic funtions were not there. Is it a substitute of Ms paint?
<cprofitt> userdays6_: No, GIMP is more ppwerful than MS Paint
<cprofitt> it is closer to Photoshop or Corel PhotoPaint
<Pendulum> < bullgard> QUESTION What do you mean by "cross-platform" precisely?
<cprofitt> the ability to add-on brushes and scripts make it much more powerful
<cprofitt> cross-platform means it can run on OS X and Windows
<cprofitt> in sames cases even other OSes like OS/2
<Pendulum> < Pernig> QUESTION there was a package called gimpshop which made GIMP mimmick functionality of photoshop but it doesn't seem to work with the latest version. Is there anything similar out there?
<cprofitt> I find that important when switchign because you can slowly make the transition and your peers can use the applications as well -- even if they do not transition to Linux
<cprofitt> Pernig: I have not heard of a similar package to Gimpshop
<cprofitt> You may want to file a bug or ask that question on the forum thread
<cprofitt> http://ubuntuforums.org/showthread.php?p=8712145
<Pendulum> < RPG_Master_> Question - When is GIMP going to get 16 bit support?
<cprofitt> perhaps we can get a work around or alternative for you from the community
<cprofitt> I was unaware they do not support 16bit, and do not know when they might add it... that would be a question for one of the developers
<cprofitt> http://www.gimp.org/
<Pendulum> < bullgard> QUESTION Iconsider Inkscape great. Where is it inferior to competing Ubuntu programs?
<cprofitt> I am not following that question bullgard -- do you mean other programs in Ubuntu or programs like Illustrator?
<cprofitt> Ok... in Ubuntu...
<cprofitt> I am not aware of any other programs that can compete with Inkscape... for me it is the best of breed on Ubuntu
<cprofitt> I am going to move on to the next program
<Pendulum> < Pernig> QUESTION is therer cmyk colour support in GIMP?
<cprofitt> Pernig: only with a plugin -- but I have heard they may be working on that
<cprofitt> CMYK will only be important if you plan on printing your work though
<cprofitt> please remember that if I do not get to your questions you can ask them on the forums
<cprofitt> http://ubuntuforums.org/showthread.php?p=8712145
<cprofitt> Another common program used by a typical computer user is Publisher. Publisher is mainly used to make cards, newsletters and other 'publication' type documents. In Ubuntu the program that fills this need is Scribus. http://www.scribus.net/
<cprofitt> I have not had a need to use this software as I do not make these types of documents, but this is an excellent program for LoCo teams that need to make adevertising material for their groups. You can find excellent example of this type of work on http://spreadubuntu.neomenlo.org/ (Spread Ubuntu).
<cprofitt> Scribus is cross-platform (even for OS/2)
<cprofitt> Any questions on Scribus should be directed to the forums
<cprofitt> I do not use the program, but I am sure the community will be glad to answer questions about it
<cprofitt> Many of us like to watch movies or listen to music. Even more have portable music players and like to manage their players music with a program on their computer. The programs used outside of Ubuntu are Windows Media Player, Quicktime and iTunes. In Ubuntu we have Movie Player (Totem) and Rhythmbox.
<cprofitt> I personally use Rhythmbox to manage my Sansa Fuze in MTP mode.
<cprofitt> Do we have any questions about Rhythmbox or Totem?
<cprofitt> I did not mention VLC player because it is not included in the base load of Ubuntu and there are applications that Ubuntu does include that cover that 'area'
<cprofitt> VLC is an excellent program and is cross-platform
<cprofitt> I used it while I was still using Windows
<cprofitt> < patchwork_> Question- When I launch Rythymbox, it immediately docks in
<cprofitt>                     my indicator applet without opening the window.  I then
<cprofitt>                     have to click the indicator to open the window.  Is there
<cprofitt>                     an easy way to make this one operation?
<cprofitt> From my experience it opens in the last state I had it in
<cprofitt> so if I exited directly from it being open it will open again.
<cprofitt> the default for you 'clicking the close' x in the upper right is to minimize though
<cprofitt> I am not aware of being able to change that behavior
<cprofitt> I am going to move on to another area...
<cprofitt> one that most people do not bother to think about... but that has a huge impact
<cprofitt> One of the most basic programs included with an operating system is the file manager (or browser). In OS X that is the finder. In Windows that is Windows Explorer. In Ubuntu the default file manager is Nautilus. In KDE the default file manager is Dolphin. One of the great things about Linux is that you can change your file manager. For this session we will focus on Nautilus.
<cprofitt> One of the things that Nautilus does very easily that the other OS file managers do not do is toggling hidden files. In nautilus all you have to do is hit cntl+h and it will toggle showing/not showing hidden files.
<cprofitt> I can not tell you how upset I get each time I use OS X and can not see the hidden files by default
<cprofitt> I usually just launch a terminal out of frustration
<cprofitt> for those that do not know how to hide a file in a *nix variant
<cprofitt> In *nix based OSes a hidden file (or folder) is hidden by placing a '.' in front of it. So to make test.txt hidden you would rename it to .test.txt
<cprofitt> Questions on Nautilus?
<cprofitt> Question: why doesn't rhythmbox come with dlna/upnp enable as default?
<cprofitt> I am not sure... that would be another question for the developers
<cprofitt> no questions on Nautilus?
<Pendulum> < Jedemco> Question: Isn't Nautilus called "places" in Ubuntu?
<cprofitt> < Jedemco> Question: Isn't Nautilus called "places" in Ubuntu?
<cprofitt> No... places is a 'location' more than the program used to display it
<cprofitt> Nautilus does open when you click one of the options under places
<cprofitt> just like in Windows when you click on my computer it is actually windows explorer that opens
<cprofitt> in OS X when you click on my hard drive it is finder that actually is the program
<cprofitt> any other Q's on Nautilus?
<Pendulum> < dm-madmod> QUESTION: When copying and pasting, the pasting sometimes doesn't work in Nautilus as there's no right-mouse paste option.  Icons works, List doesn't.
<cprofitt> I am not sure on that dm-madmod I get a paste option with the version of Nautilus that I use...
<cprofitt> if, however, you are trying to copy something that you do not have rights to that may cause the option to be greyed out
<Pendulum> QUESTION: what has gone wrong that i have to load all of my applets (nm-applet for example), i can't mount my windows partition without sudo, etc
<cprofitt> but I have not tried that.
<cprofitt> I am not sure when your applets have to be reloaded...
<cprofitt> and to my knoweldge you only have to use sudo when you mount a hard disk with NTFS
<cprofitt> if you have a memory stick (usb removable media) with NTFS formatting you will not be prompted
<cprofitt> If you use alt+f2 and type in gksu nautilus you can launch nautilus in 'sudo' mode
<cprofitt> this may help with some of the issues people have with copying files
<cprofitt> any more Q's on nautilus
<cprofitt> this is really an important area when making the migration to Linux
<cprofitt> One of the other important areas is next
<cprofitt> An application that most Windows and OS X users ignore is the basic text editor. For this reason the basic text editors in Windows and OS X tend to be a bit on the weak side. On Windows one would use notepad and on OS X it is just called 'text editor'. On Ubuntu you have the built-in gedit which is a powerful text editor.
<cprofitt> gedit can use its high-light mode to change what kind of file is being viewed and present a color coded view of the text making it easier to read.
<cprofitt> If you are going to be programming there is another graphical text editor that can be used in Ubuntu called SciTE. SciTE does a bit more than gedit in that is will auto-indent per the language specifications.
<cprofitt> Two other options in Linux are non-graphical. For basic text editing one can use nano and for programming one can use vi(m). There is another option for programming, but it is more like an OS unto itself than a simple editor. It is called emacs.
<cprofitt> SciTE is cross-platform
<cprofitt> I will not go in to the greatness that is sed or awk in this session, but those looking to manipulate text should look at those as well
<cprofitt> Any questions of basic text editors?
<cprofitt> OK... as we do not apear to have any more questions on text editors I will move on
<cprofitt> Some more exoteric applications that are used in the world of Windows and OS X are applications like Inspiration and Quick Books / Microsoft Money.
<cprofitt> In Ubuntu you can use Freemind for mind mapping software. You can use GnuCash for managing your business. I do not have experience with either of these applications and if you want more information please check out the wiki entry for this session: https://wiki.ubuntu.com/UserDays/01232010/UbuntuEquivalentPrograms and feel free to ask questions on the forum thread: http://ubuntuforums.org/showthread.php?p=8712145
<cprofitt> This was meant to be a simple overview of some of the basic applications in Ubuntu.
<cprofitt> There are cetainly many applications that I may have not covered. For those you can check out two sites to find recommendations.
<cprofitt> Linux App Finder - http://linuxappfinder.com/
<cprofitt> OS Alt - http://www.osalt.com/
<cprofitt> < scunizi> There is also Vym for mindmapping
<cprofitt> I would like to thank scunizi for mentioning this
<cprofitt> I just read about the program today and it does look solid
<cprofitt> thanks scunizi
<cprofitt> Again, feel free to discuss other applications in the forum thread as well. http://ubuntuforums.org/showthread.php?p=8712145
<cprofitt> I thank you all for coming. Are there any other questions before we end?
<cprofitt> we can opne questions to any of the applications covered
<cprofitt> and remember that the forum thread is open to all the apps covered and those that were not covered
<Pendulum> < Pernig> Question Not come acrosds mind mapping software before, could you briefly explain?
<cprofitt> Mind mapping software is kind of a flow of thoughts...
<cprofitt> you link them in the order that you thought of them...
<cprofitt> it is used in education a great deal
<Pendulum> < userdays6_> yes, I wanted a substitute for dreamweaver, but I got compozer and it is not much helpful. Can you suggest a better alternative?
<cprofitt> yes, I wanted a substitute for dreamweaver, but  I got compozer and it is not much helpful. Can you suggest  a better alternative?
<cprofitt> http://linuxappfinder.com/alternatives?search_text=Dreamweaver
<cprofitt> personally the one I have heard the best about is Bluefish
<cprofitt> http://linuxappfinder.com/package/bluefish
<cprofitt> Question: How come Daap plug-in in rhythmbox works with Itunes?
<cprofitt> To be honest I am not sure why it works with iTunes. I stay as far aware from iTunes as possible. That is why I got my Sansa Fuze -- it supports .ogg and .flac files and works out of the box with Ubuntu
<cprofitt> any other questions?
<cprofitt> What are the issues with editing music files?
<cprofitt> I have been able to edit the genre, title, etc...
<cprofitt> for editing the music I go in to Rhythmbox and right click ont he song -- then hit properties
<cprofitt> I can edit the details on that dialog box
<Pendulum> < Pernig> QUESTION are there any alternatives to empathy and pidgin with similar or better features?
<cprofitt> I do not use those two apps Pernig, but I would ask that in the forum thread
<cprofitt> Again, feel free to discuss other applications in the forum thread as well. http://ubuntuforums.org/showthread.php?p=8712145
<cprofitt> Question: if i wan to program in C# or vb.net can linux alternative
<cprofitt> you can kind of do C# with mono
<cprofitt> but I am not aware of an implenetation that allows vb.net
<cprofitt> personally, I moved away from .Net and am now learning Python
<cprofitt> Eclipse is in the repos and does have a mono plugin I believe
<cprofitt> a great area to ask about programming is the forums area dedicated to it
<cprofitt> http://ubuntuforums.org/forumdisplay.php?f=39
<cprofitt> we have two minutes left before our next session...
<cprofitt> with the illustrious Mr. Castro helping us all to get Involved in the Ubuntu Community
<cprofitt> Thank you to this event for helping me be involved in the Ubuntu Community
<Pendulum> Thank you cprofitt :)
<cprofitt> I hope that many of you here today will continue to become more comfortable
<cprofitt> with Ubuntu
<cprofitt> and perhaps present next time
<cprofitt> Thanks to everyone... as a group we all make the Ubuntu community what it is
 * cprofitt waves 
* cjohnston changed the topic of #ubuntu-classroom to: Ubuntu Classroom || Ubuntu User Days | Current Session: Getting involved in the Ubuntu Community ~~ Presented by jcastro || Please ask questions in #ubuntu-classroom-chat || Ubuntu User Days Survey: http://www.surveymonkey.com/s/WQWHJQY
<Pendulum> Up next is jcastro  talking about the Ubuntu Community
<jcastro> Thanks Pendulum!
<jcastro> ok, welcome everyone
<jcastro> I hope you're having a good ubuntu user day!
<Pendulum> Please don't forget that we have a survey about today, please fill it out at some point during the day http://www.surveymonkey.com/s/WQWHJQY
<jcastro> thanks for everyone who put this together.
<jcastro> I'm going to talk to you about how to get involved in this lovely jumble called the "ubuntu community"
<jcastro> So I'm going to have a little intro
<jcastro> then talk about bits
<jcastro> then let you ask questions, and then we can go from there
<jcastro> I purposely don't have an outline for this because I don't want to just spam you with bullets
<jcastro> I'd love to just be swamped with questions.
<jcastro> so, let's start!
<jcastro> first off, my name is jorge castro and I work at canonical on the community team.
<jcastro> Our main mission is to "Help people Rock."
<jcastro> so we go around different parts of our diverse community gathering things together, picking best practices, and enabling other people to do great work
<jcastro> ubuntu has a group of developers who actually make the distro
<jcastro> https://wiki.ubuntu.com/UDSKarmic
<jcastro> here's a picture!
<jcastro> but as large as that group is, without the tons and tons of people out there who contribute to Ubuntu it would be difficult to make something like Ubuntu work.
<jcastro> That's where ubuntu teams come into play
<jcastro> https://wiki.ubuntu.com/Teams
<jcastro> one of the fundamental things in how ubuntu is organized is that we're very team based
<jcastro> one person isn't in charge of "the installer", or "the kernel", it's a group of people
<jcastro> that wiki page there shows a list of teams in ubuntu
<jcastro> so when people want to get involved they come up to me and say
<jcastro> "what can I do for ubuntu?"
<jcastro> and I usually answer with "well, what do you like to do? What pumps you up?"
<jcastro> and sometimes here's where people get discouraged
<jcastro> "well, I don't program, I don't  like to write docs, so I guess not much."
<jcastro> but as it ends up, you don't have to be a hacker or anything to contribute
<jcastro> because there's so many things we do as a collective group that it involves all sorts of things
<jcastro> so like marketing, organizing, you name it!
<jcastro> any questions about the teams or anything like that?
<Pendulum> < dm-madmod> QUESTION:  I tried to get involved with bug triaging and got lost in the maze of flow.  The flow chart while interesting wasn't useful.
<jcastro> ah, great question
<jcastro> so, as it happens, some of us work on Ubuntu a lot.
<jcastro> and we come up with really awesome things to do figure out the  most effective way to get something done
<jcastro> the problem sometimes is that we get knee deep in how we do things
<jcastro> so it's easy to lose perspective on what something that is "easy to understand"
<Pendulum> < ddecator> QUESTION: much like dm-madmod, i'm not entirely sure how to get involved with the BugSquad...I requested a mentor, but haven't hear back
<jcastro> So for someone like me, this page looks very easy to use and understand! https://wiki.ubuntu.com/Bugs/
<jcastro> couldn't get any easier, right?
<jcastro> this comes down to one of those things that we're constantly evaluating
<jcastro> and when it comes to certain things there's only so much you can break it down to be easy.
<jcastro> after that it really just becomes a matter of experience
<jcastro> so yeah, it's hard to keep the maze in check, we always try to make it easier
<jcastro> if it makes you feel better I've been doing this for /years/ and to this day I need to ask someone on occassion what to do with a bug.
<jcastro> the key point here is that a) it's ok that you don't know anything
<jcastro> b) we have a culture where getting help from someone is low barrier and fun to do
<jcastro> and c) that we continually look for ways to make things easier
<jcastro> for the mentor question, yeah, it's hard, we have way more requests than we have mentors
<jcastro> so you're going to have to be patient there
<jcastro> (note: being persistant and annoying can help sometimes there, heh)
<jcastro> you might just want to dig in to something small too
<jcastro> when I first started with something I found something small to work on
<jcastro> "ok, I really like this mp3 player, I'm going to be the guy who helps people with this."
<jcastro> and then just jump into launchpad answers or bugs.
<jcastro> ok
<jcastro> so, you basically pick a team, and decide what you want to do
<jcastro> at this point, don't get scared, you're not asking to marry someone or anything like that
<jcastro> some people like to go all over the place in the distro
<jcastro> which is fine, you want to have your hands in little pies
<jcastro> some people like to do one part of the distro and that's all they do, which is fine too
<jcastro> whatever is interesting to you
<jcastro> remember too that after a while you will get bored and probably look at something else to do it you end up not liking it
<jcastro> so since everyone is asking about bugs let's pretend I want to get involved in bugs
<jcastro> and then you can just apply that to whatever
<jcastro> So, I read through the thorough documentation on the bugs page
<jcastro> it's important not to get intimidated when you see such large pages in the wiki
<jcastro> wikis tend to be very "dumpgroundish" and crufty. They can contain lots of information
<jcastro> but they can get confusing, but as long as you know that already then they don't scare you right. :)
<jcastro> the first things that you can do to get how things work is find out where the team "hangs out"
<jcastro> so most teams in ubuntu have an irc channel
<jcastro> and a mailing list
<jcastro> and many teams will hold regular meetings in IRC where they discuss things
<jcastro> the mailing lists can be particularly helpful because you can read a bunch of things before you even talk to anyone
<jcastro> that way I don't feel too dumb when I ask a question. ;)
<jcastro> and for IRC meetings and such many teams publish the logs and results of their meetings on the IRC list.
<jcastro> reading these are is good because they let you see what people are working on
<jcastro> and what they need help with!
<jcastro> it could be as easy as "Joe Smith- I worked on updating this program foo, needs testing though."
<jcastro> aha! I could help with that! (or not, depending on what you can do)
<jcastro> most teams also keep a Todo around
<jcastro> https://wiki.ubuntu.com/MOTU/TODO
<jcastro> like that ^^
<jcastro> some teams even break down things for beginners
<jcastro> so that when you show up they've already got a list of things to do!
<jcastro> anyone have any questions on where to find help on teams? or how to get involved initially?
<jcastro> ok, before I move on; it's important to know that a bunch of things in the ubuntu community are "just do it"
<jcastro> for example, I run ubuntu openweek, which is like today, except we do it for a week.
<jcastro> and we have developerweek
<jcastro> which has a different goal, but similar concept.
<jcastro> the people who put together today didn't have to ask anyone "is it ok if we had a day of sessions for users?"
<jcastro> someone just went and did it
<jcastro> started a wiki page, started gathering people, picked a date, made a schedule <<<---- note, these are things you can do without knowing how to program.
<jcastro> at that point people who have been around for a while came out of the woodwork to help
<jcastro> "have you reserved ubuntu-classroom yet? you should do that."
<jcastro> "hey, someone should have a survey at the end like we did last time, so we know if people liked the sessions so we can make them better"
<jcastro> "hey did someone make the calendar?"
<jcastro> and because we're team-based it's easier to ask someone from a team to just jump in for a session and talk about their area of interest
<jcastro> as a general rule I recommend to people that if they have a good idea to run with it, throw it up on the wiki, and roll with it.
<jcastro> but be proactive about asking around for help, tips, etc.
<jcastro> when I first started doing this I had a bunch of ideas
<jcastro> that never went anywhere because I was either to scared to ask for help or wasn't organized enough to do it
<jcastro> (ok ok, some of the ideas were just plain bad)
<jcastro> ok, so you've picked your team and now you know where to hang out
<jcastro> teams usually have events
<jcastro> in the case of the bug squad, they have bug days
<jcastro> these are times when a bunch of them get together and work on bugs
<jcastro> participating in events is a good way to get experience learning things
<jcastro> (and also a great place to find a mentor)
<jcastro> it can be motivational to mark your first bug confirmed (or whatever), but also having guys like qense around when you think you're going to mess up to answer your questions
<jcastro> unfortunately sometimes things like bug days and stuff might be too time consuming or something, and that's totally ok
<jcastro> remember that even if you do a little bit that when you have tons of people it all adds up.
<jcastro> I like to think of it this way (since I'm working on things that aren't bug related this cycle)
<jcastro> "ok, I only triaged this one bug, but it's one less bug Bryce has to deal with so he can concentrate on making X work better" or whatever it is
<jcastro> some people get discouraged because they can't commit the time they want to make ubuntu better
<jcastro> and that's totally fine.
<jcastro> if you go into a bug day thinking you're going to fix a million bugs you'll just set yourself up to be disappointed, so instead concentrate on working towards the team goal
<jcastro> any questions while we wait for the spam attack to die off? ;)
<jcastro> One thing I also wanted to mention
<jcastro> is that you can do things that aren't on that list of teams
<jcastro> for example, the people in the ubuntu-ohio Local team run the booth at ohio linuxfest,
<jcastro> some of those people might not be doing bug triage, or writing code, or working on ubuntu itself, but for that day they make sure that booth is rocking with CDs, answering people's questions, and spreading the love
<jcastro> contributions like this are hard to measure like things in launchpad or whatever
<jcastro> but remember that they can be just as important.
<jcastro> so remember that doing a little part in something can work, don't worry about things like karma or whatever.
<jcastro> ok, so, idally you are participating in team events in something that interests you
<jcastro> I've not yet run into an ubuntu team that is "finished" or doesn't have anything to do, so I don't think finding a place to chip in is a problem
<jcastro> however I would like to hear your experiences about trying to get started in a team have been, so we can make that process suck less.
<pleia2> < RPG_Master_> Does a LoCo count as a team?
<jcastro> yes, absolutely!
<jcastro> in fact LoCo's are our bread and butter.
<jcastro> at our loco we try to do a "bug jam" at least once per cycle
<jcastro> and a release party.
<pleia2> < RPG_Master_> QUESTION : What should I do if my LoCo is completely unactive?
<jcastro> however some loco's are just social groups, some run huge events (google for the french local teams release parties)
<jcastro> that's an excellent question
<jcastro> my first loco meeting was me and one other guy
<jcastro> and no one showed up, so we just drank beer.
<jcastro> some people would consider that a successful meeting. :p
<jcastro> one thing I tried to do was find other ubuntu users at local linux user groups
<jcastro> and get them interested
<jcastro> we would also run an installfest in cooperation with other linux groups in an area
<jcastro> but I think for our loco the one bug jam and release party per cycle is our "comfort zone". We tried to do too much one cycle and everyone was sick of it, but you don't want to be boring.
<jcastro> remember people have lives so trying to have weekly loco meetings can get brutal on people.
<pleia2> might be slightly off-topic, but since upstream collaboration is a recent project of yours... < strycore> QUESTION : if I send a patch to Ubuntu , do I also have to send it to Debian ?
<jcastro> these days we chat in our irc channel and try to make our two events per cycle the most bang-for-the-buck we can
<jcastro> yeah, I like all the questions
<jcastro> generally speaking, you don't /have to/, but it's a very strong encouragement.
<jcastro> some sponsors won't take your patch until you've at least submitted it to debian
<jcastro> sending our fixes back to debian is a crucial part of the ecosystem
<jcastro> think of it as a professional courtesy.
<jcastro> where appropriate of course
<jcastro> if your patch is ubuntu specific then probably not, if you're not sure the sponsor who is reviewing your patch can answer that question
<jcastro> if you do not know how to send a patch to debian the sponsor can point you in the right direction
<pleia2> < mick__> QUESTION?? Do I have to be a C programer?
<jcastro> we have a neat tool called "submittodebian" in the archive that you might want to check out
<jcastro> nope, you don't even have to be a programmer
<pleia2> < dm-madmod> QUESTION:  Is there a simple way to understand filing bugs upstream?  I'm confused by the upstream terminology.
<jcastro> if you're a python programmer (for example) you can work on that if you want
<jcastro> another good question!
<jcastro> let me get you an example bug
<jcastro> (one sec) smoke if you got em
<pleia2> oh, 15 minutes left btw
<jcastro> right
<Pendulum> < mick__> QUESTION:  I notice a lovely app I use is not in universe/multiverse, how do i get help about packaging etc?
<jcastro> ok, I can't find the bug, but I'll get back to that
<jcastro> dm-madmod: generally speaking, I try to first make sure that a bug is an upstream problem, and not a bug we introduced
<jcastro> which can be hard sometimes
<jcastro> generally if something is broken I try to reproduce it in upstreams code (I check it out of git or whatever) and then see if it's there
<jcastro> and then if it is I file it upstream in their bug tracker
<jcastro> generally speaking feature requests are always nearly an upstream thing, so I file those directly there
<jcastro> however I will sometimes check launchpad because someone at somepoint probably thought of the same idea, and then I link those
<jcastro> you can do that by setting a watch on a bug
<jcastro> https://wiki.ubuntu.com/Bugs/Watches
<jcastro> which is out of scope for this session, but that gives you the general idea
<jcastro> mick__: you are in luck!
<jcastro> I just was working on the documentation for that this week
<jcastro> https://wiki.ubuntu.com/Upstream
<jcastro> I have been working on documentation for upstreams that want to get into ubuntu
<jcastro> so people like you and me can help them
<jcastro> specifically you're looking for: https://wiki.ubuntu.com/UbuntuDevelopment/NewPackages
<jcastro> more questions?
<pleia2> < zehrique> QUESTION As a translator, how can I fix a string I found on a .po package and submit the changes to the repository?
<jcastro> ah, a translations question.
<jcastro> we have a person on the community team who handles translations, unfortunately I don't have the expertise to handle this, however if you contact david planella he can help you: https://edge.launchpad.net/~dpm
<jcastro> (pro tip: find the translator team page and ask in their channel or list)
<jcastro> that way everyone can see your question and it can be available to other people on the internet when they run into the same problem
<jcastro> 5 more minutes left, more questions!
<jcastro> no one is going to ask when firefox 3.6 is coming to ubuntu? :)
<jcastro> (the ubuntu mozillateam is working on it now, I learned that by hanging out in the team channel)
<pleia2> here we go! < RPG_Master_> QUESTION : Whens FF3.6 coming to Ubuntu?
<jcastro> soon!
<jcastro> more questions?
<jcastro> ok well, I appreciate you taking your time on a saturday to learn how to get involved in ubuntu
<jcastro> remember, don't be afraid to ask questions
<jcastro> we're all in this together, you shouldn't suffer silently if you're lost or confused
<pleia2> < nulled> are all ubuntu projects on launchpad?
<jcastro> usually
<jcastro> sometimes a loco might have a mailing list hosted someplace else or something like that
<jcastro> one of the nice things about launchpad is it's designed around the idea of teams, so it's a natural fit to do ubuntu team work
<jcastro> ok, everyone have a good day
<pleia2> thanks jcastro!
<jcastro> and don't be afraid to  hop into #ubuntu-community-team
<jcastro> if you need help organizing something
<jcastro> thanks!
* _marx_ changed the topic of #ubuntu-classroom to: Ubuntu Classroom || Ubuntu User Days | Current Session: Trusted Software, Where to find it, and why ~~ Presented by paultag || Please ask questions in #ubuntu-classroom-chat || Ubuntu User Days Survey: http://www.surveymonkey.com/s/WQWHJQY
<pleia2> This session is about Trusted Software, Where to find it, and Why presented by paultag
<pleia2> Paul has nearly 10 years of Linux experience. He has spent most of that time giving back to the community by helping users as a member of the Ubuntu Beginners Team and through his role as team contact for the Ohio LoCo.
<pleia2> Today, Paul will share some of the knowledge that he has acquired, and teach us about trusted software.
<pleia2> paultag: the floor is yours :)
<paultag> :)
<paultag> Howdy ya'll :)
<paultag> First of all, I would like to give a HUGE shout-out to jcastro. I'm humbled that I was mentioned in his bit about the Ohio LoCo. Wicked session, I loved it. Hopefully I can be just as clear for ya'll today :)
<paultag> I am doing this session with a mild direction, and as a result, I would love any questions that are asked
<paultag> Try to ignore the Spam, I'll be sure to get to you ASA
<paultag> ASAP, better yet!
<paultag> First, let's start with the most obvious. Why?
<paultag> Let's review for a moment an insecure software model. Both Microsoft Windows and Apple OSX have insecure models as it stands today. The idea of getting new software is to âhuntâ on the Internet for a while, until you find an advertisement ridden website with a .exe or .dmg download
<paultag> This model is to get Software A authored by entity X from entity Y.
<paultag> Euch.
<paultag> At this point, it is not hard to compromise the software package. It is not hard to inject malicious code, such as worms or viruses, given the code is hosted by an untrusted authority Y.
<paultag> There was just a whole lot thrown at you right there, any questions about X or Y ?
<paultag> Let's take a real world example. Let's say that Intel puts out a driver for their graphics card chipset. This driver installer gets picked up by N number of sites, and a fraction of N make it to the front page of Google from a search of that device.
<paultag> The problem here is that user-uploaded content depends on the trustworthiness of the author. This is quite an issue because there is no âcircle of trustâ system. Anyone can post items for download. Even simple âvotingâ systems will compromise some machines, and can be cheated with fake votes through automated means.
<paultag> <patchwork_> QUESTION- When authority Y provides a MD5 checksum, how can I check the downloaded package?
<paultag> You may check the checksum with the `md5` command. This is a good way to ensure the software can be trusted, and is authentic.
<paultag> The issue with that is that you are still forced to check MD5 hashes, and we have better ways of doing it -- let me get into that now
<paultag> With Debian or Ubuntu GNU/Linux, we use a system called a repository. ( Other distros like Red Hat etc also have these systems as well ) Packages are put into this repository, and signed. This is what the Software Store, apt-get, aptitude and synapic all use as a backend. Not only is is really easy to install software ( no more installer hunts! ), but it is trusted.
<paultag> The reason why it is trusted is because all the software in that central authority is approved and placed into the system through a review process
<paultag> This creates a "circle of trust" with the packages and their uploaders
<paultag> However, one might ask -- Why is this system trusted?
<paultag> Well, the Repository is maintained by Ubuntu contributors and Debian Developers worldwide. To get into this tight-knight community, it pre-requires a lot of hard work and an intensive peer-review process.
<paultag> Packages uploaded are subject to review, and meticulous book-keeping is maintained on what has been changed from the upstream version. ( Upstream is simply where the code came from, in our case ( Ubuntu ) it's Debian, and in Debian's case it's the original maintainers
<paultag> Let's use as example the âFluxboxâ package ( I love fluxbox )
<paultag> It is developed at fluxbox.org by a few developers. They are trusted explicitly, as they are the official version of the software.
<paultag> Any changes ( for better or worse ) are the definitive changes. ( and might I say, canonical! )
<paultag> Sorry, I'll lay off the puns ;)
<paultag> That software is then imported to Debain, where it is maintained by Dmitry Oboukhov.
<paultag> Dmitry is a trusted member of the Debian project, and his changes are documented clearly, and verified by using MD5 checksums, and changelogs. One should be able to go back and examine exactly what was changed when, and why. Changes are linked to bugs, and undocumented changes are looked down upon very heavily.
<paultag> Are there any questions about this so far? I just rapid fired a lot at you right now
<paultag> Changes upstream are currently four patches. Two to correct documentation spelling errors, one to attempt to fix a critical bug, and the last to fix a small bit of bash in a dash script.
<paultag> You can examine each patch, and view it's author. Two are mine, one is Dmitry's and one is from another Debian collaborator
<paultag> the patch is also clearly in it's own file, allowing one to easily see what it is doing to the pristine version of the software
<paultag> This maintains trust, and never touches the original tar
<paultag> Also included in the modifications from Debian is a theme. It will add a new theme called âDebianâ, and a debian themed background.
<paultag> This is also in it's own directory, and clearly documented
<paultag> Ubuntu changes go through this same process, except the maintainer is a community of developers known as the âMOTUâ or âMasters of the Universeâ.
<paultag> All of these changes are clearly documented and logged, again
<paultag> The changes also pass through two trusted authorities, Debian and Ubuntu. As we are able to control exactly what goes into the packages, we can ensure that the packages are safe, and changes made are not malicious.
<paultag> Are there any questions as to this chain so far, and any questions about trusting any of the parties?
<paultag> OK, I'll move on
<paultag> What happens when a package is not in the repository?
<paultag> Now we run into the same problem as before. Hunt for a dpkg, and install it by hand from a ( potentially ) untrusted third party.
<paultag> This is, of course, unacceptable
<paultag> AndreMorro[BR]> paultag,  we search a pre-compiled orrrr go to the source
<paultag> Yes AndreMorro[BR], you can do that. You have to be sure that the pre-compiled is trusted though
<paultag> If you are running Ubuntu, you have a chance of finding it in debian unstable, or a backport, if your release is old. In both of these cases, you can trust the source, either Deb or Ubuntu.
<paultag> jcastro touched on that a bit
<paultag> In the case where the software is either so new, unknown to the community, or just plain not in the repositories, there are last lines of defense before going dpkg hunting. There is rarely a case where one should be installing a dpkg they wgot from the internet, or downloaded in a browser
<paultag> P.S. wgot is my new past tense of wget :)
<paultag> One key skill is to learn how to install software from source, as AndreMorro[BR] mentioned
<paultag> This can be very intimidating to the new and even power user, but when done right, it can be a relatively tolerable process.
<paultag> That, however is a bit outside the scope of what I am presenting now, I won't teach you how to compile for this session â just be aware that compiling from scratch is always more advisable then hunting for a dpkg from any site
<paultag> <arand> QUESTION Are there any measures to stop a malicious deb package you happen to stumble upon, or would it be able to do pretty much anything it wishes to a system should it be installed.
<paultag> What a fantastic question
<paultag> If it is the case of finding it inside the repos for Ubuntu or Debian, the changes are right there, and it is not hard to find the member who did that.
<paultag> This can lead to any number of things, including getting kicked out of the community
<paultag> If it is a dpkg on a third party site, there is not much you can do. Report it to the site that is hosing it, and comment on it if you can
<paultag> That is the trouble with the software model that most are used to in Windows and OSX
<paultag> <Out_Cold> question: are all ubuntu source packages (including multiverse/universe) trusted and tested by devs?
<paultag> Out_Cold, Yes, every package is either tested and packaged by Debian maintainers, or if it Ubuntu changed, the MOTU and Ubuntu testers
<paultag> Out_Cold, every last bit in the repos has been placed there by an Ubuntu or Debian developer
<paultag> Well, what happens now. It's not in the repos, it's not been backported, a new version is not found upstream, sister distros such as Mint don't have it. What can I, as an educated hacker do?
<paultag> <AndreMorro[BR]> QUESTION - supose I found a pre-compiled somewhere over the internet, before installing it is there any ways to protect my system??
<paultag> AndreMorro[BR], This is a tough one. I wish I could say all developers are honest and hard working. I can't say that. There is a lot out there that even the most seasoned vet could look at and think "Oh that does X" but really does harmful think Y
<paultag> I would first research the package a bit, figure out what it is, and who wrote it. If you can't find much I would be very hesitant to try it. If you would like to try it and ensure that it won't destroy your system, perhaps a virtual box might help
<paultag> OK, so back a few lines -- Well, what happens now. It's not in the repos, it's not been backported, a new version is not found upstream, sister distros such as Mint don't have it. What can I, as an educated hacker do?
<paultag> Always look for trusted sources. Look for reputable sources. Try getdeb. Check for RPM packages in red hat, fedora or centos
<paultag> Using `alien` is not always the best, but is always better then installing an untrusted dpkg.
<paultag> If left to no other option, download the untrusted deb file and ask your local guru to take a look at it. You can check the file without installing it. using `ar` to extract it, one can examine what it is doing before it does it
<paultag> This, however, is also very advanced work.
<paultag> Always beware. Gnome-Look had an incident where a malicious user uploaded a âscreensaverâ that was actually a virus.
<paultag> <SuperEngineer> QUESTION a lot of mentions of ?backported? please explain
<paultag> Sure thing. A backport is when a new package ( such as Firefox 3.6 ) being built for an old version of a distro
<paultag> There is a whole repo just for Backports on outdated releases
<paultag> <AndreMorro[BR]> QUESTION - ar is used to extract .deb ?
<paultag> Yes, one can extract a deb running `ar x package.deb`
<paultag> and there are two tar.gz files in there that the advanced user can pick apart
<paultag> <strycore> you can use fileroller to extract .deb (it uses ar internaly yes)
<paultag> Yes, you can. Great note.
<paultag>  Novice packagers can do serious damage. There is this one package that looks inocent enough, but when I took a look at the pre/post install, it did very dangerous things, such as changing the mod of global files to 777 ( not good ), and playing with the ownership of kernel modules.
<paultag> It was done to install his code, but many parts of traditional good practice were violated, and could have caused serious issues.
<paultag> I won't give it the justice of a mention in here, for the off chance someone might install it :)
<paultag> <Out_Cold> question: when finding source files that come with a .diff file what do you do with the diff?
<paultag> a diff is a text file that represents changes that wish to be distributed against the software
<paultag> So, if we were to both use package A, and I wished to create feature X, I could edit the package A and then difference ( or diff ) the two directories
<paultag> Then I could save those changes as a "diff", and distribute them to others who want feature X
<paultag> Treat a diff as you would anything else. It's code, and one can produce a patch to do malicious things
<paultag> you may apply them using the "patch" command
<paultag> debian / ubuntu uses a few different systems within the dpkg, but they all do the same thing
<paultag> Now, I threw a lot at you with regards to how one should trust software in the Repos. Any questions as to why?
<paultag> OK. Well I'll add a bit more on to the "Circle of Trust"
<paultag> The developers for Ubuntu have PGP keys. PGP keys are one of the few ways that trust can be demonstrated in an ad-hoc community
<paultag> ( and Debian )
<paultag> When I say Ubuntu, treat it as both Ubuntu and Debian :)
<paultag> One maintains their key, and uses it to "sign" documents. Each signature is unique, generated off the content of the file, and their private key
<paultag> If you trust the holder of the key, then you can therefore trust the content, if the signature + content matches their key
<paultag> But, it would be very hard for one to go, and say "I trust developer Joe" and "I trust developer Sue"
<paultag> so, developers will meet up in person, pull out photo ID, and verify that the key is a match to who they are
<paultag> they then sign each other's key, and if you trust Joe, then you can therefore trust Sue, because Joe trusts Sue ( and you trust Joe )
<paultag> This is done throughout the whole community, and eventually we have a trusted, and very particular ring of trust
<paultag> Now, it would be silly to even expect a new user to know a single developer, so what then?
<paultag> They can trust the Repo, because they trust Ubuntu enough to install it.
<paultag> <Out_Cold> QUESTION pgp keys can be duplicated can they not?
<paultag> Out_Cold, yes, one can copy a key, but it has no effect on security
<paultag> There are two halfs to the key, a public half and a private half
<paultag> the public half is in keyserver.ubuntu.com ( among others ), and the private key exists only on the developer's machine
<paultag> <Out_Cold> would that not allow one to compromise a dev's account?
<paultag> Knowing the public key only allows one to encrypt for them, and verify their signatures. It is mathematically imposable to use a public key to sign a document
<paultag> So, in the repos there is a package. For debian it's debian-keyring
<paultag> The description on apt-get says it all ---
<paultag> Description: GnuPG (and obsolete PGP) keys of Debian Developers
<paultag>  The Debian project wants developers to digitally sign the announcements of
<paultag>  their packages with GnuPG, to protect against forgeries.  This package contains
<paultag>  keyrings of GnuPG and (deprecated) PGP keys of developers.
<paultag> So, by installing Ubuntu or Debian, you install a set of trusted keys to the car, as it were
<paultag> This also allows you to ensure _every_ last bit of code is verified by a developer that is trusted by the community
<paultag> apt does this automagicly, if you were to remove the -keyring package, and install something like "firefox", it would give you an error and warning that it could not verify the code
<paultag> Are there any questions on how the keyring works, and how that is used to ensure trusted software?
<paultag> <tcpip4000> ...it's mathematically possible but in practice is very difficult
<paultag> tcpip4000, Yes, you are right. You can brute force anything.
<paultag> tcpip4000, The numbers to do that though would require more computation power then we have right now to break, and that key can be "untrusted" very easily
<paultag> I'm a CS major, I treat large numbers as infinity :)
<paultag> <tcpip4000> QUESTION: how is identify and handle a breach in the circle of trust?
<paultag> It's hard. Anyone can upload to the build daemons, but it throws out anything that is not signed by the right person. If the code is signed by a trusted developer, and uploaded, it will get built, and placed into the tree it was uploaded into
<paultag> The way to catch it would be to have someone notice, and report it. In general the QA team reviews this stuff in Debian, and Ubuntu is very peer-reviewed.
<paultag> It could get into the repo ( in the case of breaking someone's hand until they gave up a password ), but that would be identified pretty quick.
<paultag> Also, in Debian there is usually more then one developer on a package, and they would look to see what changed, if nothing else then just curiosity
<paultag> Any other questions about the key system used to ensure trust?
<paultag> Any questions at all?
<paultag> Ah, there it is
<paultag> <nulled> does ubuntu use sha or md5?
<paultag> nulled, we keep MD5 sums on files ( dpkg does this ). There is a theoretical security risk with MD5, but due to the fact we have a lot ensuring uploads are trusted, it is really a "make sure you are honest" kinda thing.
<paultag> MD5 sums are also a tad quicker IIRC, and that helps build the code
<paultag> <nulled> i noticed it takes longer and longer to read in packages due to the amoount of them.. is apt going to get efficiency enchanced?
#ubuntu-classroom 2010-01-24
<paultag> nulled, I would ask the upstream maintainers in Debian. I'm not sure. I know the system is getting better through use of hacks, such as compressing the package lists etc, but not too much in the way of changing the protocol
<paultag> nulled, the repo is over HTTP, so I think a change to the protocol would be needed as well. I would not count on it in the near future, but heck, it's still faster then YUM, eh?
<paultag> <tcpip4000> question: is there any functionality that checksums the current installed packages (files) to verify their integrity?
<paultag> tcpip4000, Yes :) -- it even tracks that stuff on upgrade as well. Some of the older hackers might recall an apt-get upgrade asking about their menu.lst
<paultag> It will verify on install to make sure nothing was corrupted, and it will also track going forward
<paultag> it won't kludge old stuff :)
<paultag> I know we are a bit over-time here, just waiting for some stuff to get lined up. I'll be taking questions :)
<cjohnston> Okie.....
<cjohnston> I think we may be ready
<cjohnston> Thank you paultag
<paultag> OK, cool
<paultag> sure thanks guys :)
<cjohnston> We have a little change in plans...
<cjohnston> One of our instructors has been unable to make it..
<cjohnston> So starcraftman has volunteered to teach this next course on the fly
<cjohnston> If anyone ever finds starcraftman in person (although I still think he is a bot) please buy him a beer for me!
* cjohnston changed the topic of #ubuntu-classroom to: Ubuntu Classroom || Ubuntu User Days | Current Session: Package Management Basics ~~ Presented by starcraftman || Please ask questions in #ubuntu-classroom-chat || Ubuntu User Days Survey: http://www.surveymonkey.com/s/WQWHJQY
<starcraftman> Hi people, it is I again.
<starcraftman> I don't have this prewritten, well... not parcelled out in an IRC format to copy paste.
<starcraftman> So it'll be slower. And more manageable, it is a favourite topic of mine talking about package management though. An important topic.
<cjohnston> Everyone say thank you starcraftman !
<starcraftman> Unlike last class I don't mind if you ask questions during this session, but I'd probably prefer if you waited till I finished a particular section.
<starcraftman> Same format for them. Now hmmm. I've already written a fairly long guide on installing, since it covers pretty much all this stuff and saves me some typing I'm going to link you to it. I'll still be writing of course, but you can read along my more verbose explanations. It's a little old but is still completely relevant.
<starcraftman> http://ubuntuforums.org/showthread.php?t=500020
<starcraftman> So starting with basics.
<starcraftman> package mangement is the means Ubuntu (and linux in general) uses to install software. Linux uses a client server model as with most other things. Your computer is the client, and it requests information on packages from the Ubuntu servers.
<starcraftman> The server contains a whole assortment of packages in a variety of categories, it can tell when your's are out of date for instance and what has changed since you last checked in.
<starcraftman> The server itself stores deb packages, which you can think of like exes. They are precompiled binaries ready to be installed on any system that requests to download and install them.
<starcraftman> The way your local machine tracks what servers to request the information from is called the sources file. It basically simply lists the addresses of the servers and what sections of packages to retreive.
<starcraftman> So, apt an be thought of as a backend. It handles the request and you can use it to install and manage packages quite simply. apt-get and aptitude aren't so different, just two ways to get at the server/packages.
<starcraftman> We should probably move to hands on, makes it clearer.
<starcraftman> Ok, there's two ways to see your sources file, by graphical interface or text editor.
<starcraftman> First open System > Admin > Software Sources.
<starcraftman> k, so now that folks done that... I'll go through this list so people understand. As I said before packages are seperated by category.
<starcraftman> On the first tab, Ubuntu Software, you can find several of the most important. Conical-supported open Source Software (main) is like it says. All core packages to Ubuntu are stored here, never uncheck this.
<starcraftman> (universe) holds projects are are mostly maintained by the community at large. Most software that isn't installed by defualt but maintained by community is here.
<starcraftman> restricted holds restricted drivers as you'd imagine. There was a session earlier on that.
<starcraftman> multiverse is more of a catch all for things not falling above and that may be restricted.
<starcraftman> You should go ahead and tick all of these. Good to have.
<starcraftman> Source code is optional, it lets you download the uncompiled source. It's not for installation. Unless your a programmer, don't check it.
<starcraftman> download from allows you to pick a better server to fetch packages from, I always change from default.
<starcraftman> If you select other from drop down you can select a close geographic server or push pick best.
<starcraftman> Next move to Updates.
<starcraftman> Tab that is.
<starcraftman> These are mostly self-explanitory, security and recommended updates are as they say for security and general bugs (not related to security).
<starcraftman> pre-release includes updates that haven't been fully tested (like the bleeding edge). Unsupported is more of a backporting thing. It's nothing to be afraid  of means that software is pushed backwards from newer releases into yours. This isn't officially supported though, odd times it can break things.
<starcraftman> Whether you want to tick the last two is up to you, productions machines where stability important I'd say no.
<starcraftman> Last theory part to cover quick is keys.
<starcraftman> These are just used for authentication. Paultags explanation and mhall should have explained why encryption and trusted software are important.
<starcraftman> Now you can push close on the software sources tell it not to reload sources. We'll do that in a moment.
<starcraftman> Open a terminal please, Applications > Accessories > Terminal.
<starcraftman> now I assume you already got some basics on commands, so copy what's in quotes from now on to terminal and push enter.
<starcraftman> "sudo apt-get update"
<starcraftman> This refreshes your local cache of the packages on the server. You do this to know when server has got new updates (though as you noticed, it will automatically update you daily if your forget or at least prompt).
<starcraftman> "sudo apt-get upgrade"
<starcraftman> if you do that you'll find a list of possible upgrades to common software already installed on your machine.
<starcraftman> It lists packages to be upgraded/removed/installed.
<starcraftman> You have to push yes or no. At this time, push no.
<starcraftman> It would take a while and tie you up.
<starcraftman> Now, let's install some package.
<pleia2> starcraftman: wanna take some questions?
<starcraftman> pleia2: first I'd like to install a package. After O
<starcraftman> i'll take a few before continuing.
<starcraftman> so lets see, hellow had pi listed for install, works for me.
<starcraftman> The standard command to install a package is "sudo apt-get install package package2 package3"
<starcraftman> where you replace package with whatever you want to install.
<starcraftman> try "sudo apt-get install pi"
<starcraftman> push yes when it asks for confirm.
<starcraftman> It pulls down the package from server and then installs locally to your root.
<starcraftman> (pi package is used to compute a more precise pi btw)
<starcraftman> now if I wanted to remove I could do "sudo apt-get remove pi"
<starcraftman> or "sudo apt-get purge pi"
<starcraftman> The latter will remove configuration files for the program as well as the cached package on your system.
<starcraftman> Remove just uninstalls it.
<starcraftman> Ok, lil question break now. I covered the bulk of this, will get to adding repositories and gui after.
<starcraftman> pleia2: poke, you gonna paste them in?
<pleia2> < AndreMorro[BR]> QUESTION - starcraftman if I change my repos, shouldn't I first do the 'apt-get update' before 'upgrade' ??
<starcraftman> AndreMorro[BR]: Yes, always. When you modify the sources list in any way, your changing what apt needs to monitor. You need to update before it will be aware of these changes.
<pleia2> < Out_Cold> QUESTION how do you find info about a package you want to install via apt?
<starcraftman> Out_Cold: This is a good question. You can easily from terminal. "aptitude show packagename"
<starcraftman> This will provide a large amount of information.
<pleia2> < AndreMorro[BR]> QUESTION you recommend apt-get or aptitude
<pleia2> < AndreMorro[BR]> or depends on the situation?
<starcraftman> Out_Cold: oh and you can also do it with "apt-cache showpkg packagename". Another way.
<pleia2> and related... < jazz_> Question  what is the difference between aptitude and apt-get?
<starcraftman> AndreMorro[BR]: ah good question. You know even after all this time I'm not perfect on the minutia separating. In general, they can be used interchangeably. They have a few minor differences. I think apt-get in general is preferred. One clear difference is using the search command. "aptitude search" will do a live search against a repository server where "apt-cache search package" will do a local search.
<starcraftman> In general, I stick to apt-get.
<pleia2> < stevesmith1983> QUESTION if you apt-get remove, is there any way to the purge in the future, without reinstalling the package first?
<starcraftman> stevesmith1983: yes, if you haven't, you can do a purge command on something you know has traces left on a system.
<starcraftman> I should probably get to adding sources section now.
<pleia2> please do
<starcraftman> It is pretty easy. Please run:
<starcraftman> "sudo gedit /etc/apt/sources.list
<starcraftman> "
<starcraftman> this opens your sources file. Nothing scary. here you can see how it's formatted. This is the file we modified with the gui earlier.
<starcraftman> deb lines are for actual packages, deb-src indicate sections just for source files.
<starcraftman> The ## are commented out lines.
<starcraftman> This prevents apt from parsing these lines as servers.
<starcraftman> for a test add I think we will add the lernid ppa.
<starcraftman> https://edge.launchpad.net/~jonobacon/+archive/ppa
<starcraftman> Push technical details please. Then copy the first line with deb to the end of the file.
<starcraftman> Make sure its for your version of ubuntu.
<starcraftman> Save and close the file after.
<starcraftman> Now, we need to import the key. I usually do this by command, it combines downloading and adding the keys.
<starcraftman> the generic command is: wget -q  http:addresstokey.com -O- | sudo apt-key add -
<starcraftman> first half downloads the key, then adds it to your keys.
<starcraftman> click on the signing key on the technical drop down.
<starcraftman> here your taken to a direct link to the key's hosting, you use this address.
<starcraftman> so the command would be: "wget -q CBDC2730 -O- | sudo apt-key add
<starcraftman> Hope that works, the end is all required, it's the public ID for the key.
<starcraftman> now you have key, you can update and then do a search for lernid.
<starcraftman> It should now be a package avialable to install.
<starcraftman> you don't need to install it, but this is an example of how to do so. Be careful where you get software from. As paultag covered.
<starcraftman> Last we'll just have a look at the software centre quick.
<starcraftman> pleia2: can you tell where it is in menu? I'm on my kde box.
<pleia2> I think it's under applications, where add/remove used to be
<nigel_nb> Its on applications > Software Center
<starcraftman> It's a nice GUI, much friendlier than synaptic. Here you can navigate by categories, read descriptions and install software.
<starcraftman> Search is in top right, under edit you can get to sources, and view lets you switch between all and just canonical software (Ubuntu and sattellites rather than uni/multiverse)
<starcraftman> installed software section lets you remove installed.
<starcraftman> it's pretty easy.
<starcraftman> Hmmm, I think that about does it, covered the basics and how to use GUI. And I seem almost out of time.
<pleia2> thanks starcraftman!
* cjohnston changed the topic of #ubuntu-classroom to: Ubuntu Classroom || Ubuntu User Days | Current Session: Using Ubuntu One ~~ Presented by shrini || Please ask questions in #ubuntu-classroom-chat || Ubuntu User Days Survey: http://www.surveymonkey.com/s/WQWHJQY
<starcraftman> http://ubuntuforums.org/showthread.php?t=500020 < Lemme just post that again. Good guide.
<starcraftman> Should clarify any lingering questions, I'll hang around chat to answer.
<cjohnston> Up next is shrini
<cjohnston> Shrinivasan, is a open source lover, who lives in Chennai, India. He talks about open source philosophies in local colleges and schools.
<cjohnston> Currently he is giving technical support to subversion and TeamForge at CollabNet. He runs a weekly newsletter "FossNews" and a blog for Foss Jobs.
<shrini> hello friends
<shrini> thanks for giving this wonderful opportunity to hang out with you all
<shrini> "Ubuntu One"
<shrini> is a very interesting project
<shrini> that comes with the latest ubuntu release 9.10
<shrini> I wondered on the first sight.
<shrini> Ubuntu One is a personal cloud
<shrini> you have 2 GB of space
<shrini> to store files, notes, contacts
<shrini> Storing, syncing and sharing files, contacts, notes, and bookmarks
<shrini> is the service given by Ubuntu One
<shrini> Let us discuss here about installation
<shrini> web and GUI clients
<shrini> syncing files,notes,contacts
<shrini> future plans and getting support
<shrini> Intro - As I told already
<shrini> Ubuntu One is a storage service
<shrini> you can think here as this is equivalent to "DropBox"
<shrini> we can store 2 GB of data for free
<shrini> If we need more space, we can buy
<shrini> canonical provides commercial space
<pleia2> shrini: want us to paste questions as they come, or wait until you pause to ask for them?
<shrini> pleia2: good. paste as soon as get
<pleia2> < scunizi> QUESTION is kubuntu setup to use the same service in the same way as ubuntu?
<shrini> yes. you can use the same client in kubuntu too. but requires to install gnome libraries.
<pleia2> < Out_Cold> Question We were discussing the differences between dropbox and one. how does one stack up on various OSs?
<shrini> good. currently Ubuntu One supports only ubuntu
<shrini> the support to various distros are future plans
<shrini> you can buy a 50 GB space for the cost of 10$/month
<shrini> ubuntu one supports partial downloads
<shrini> it resumes the downloads automatically
<pleia2> < scunizi> QUESTION if I can install the same client in kubuntu, will it also auto sync contacts in Kontact like it does in Evolution?
<shrini> if a file is changed, it is re-synced with entire file.
<shrini> no support for kontact now
<shrini> but, ubuntu one api is simple and anyone can develop kontact sync
<pleia2> < IdleOne> QUESTION: are there any limitations on file types that can be stored on Ubuntu One?
<shrini> all the files are stored in amazon S3 servers in USA
<shrini> no limits on file types
<shrini> you can store any file
<pleia2> < scunizi> QUESTION are files encrypted?
<shrini> No. files are not encrypted.
<shrini> encryption may give issues on sharing
<shrini> Let me goto Installation
<shrini> If you have ubuntu 9.10, Wow. you have already in your wallet
<shrini> It can be installed in ubuntu 9.04 too
<shrini> but not in other lower ubuntu versions
<shrini> https://one.ubuntu.com/support/installation/
<shrini> see this like for installing in ubuntu 9.04
<shrini> Once Installed, you can access via
<shrini> Applications->Internet->Ubuntu One
<shrini> To use this, we need a Launchpad account
<shrini> you can go to http://one.ubuntu.com
<shrini> and login using launchpad account
<shrini> then you can choose a subscription
<shrini> free 2 GB or paid 50 GB
<pleia2> < IdleOne> QUESTION: What do I do if I get OpenID login failed?
<shrini> sometime, this may happen
<shrini> we need to check why login failed.
<shrini> It failed for me too saying like "invalid timezone error"
<shrini> I changed my timezone settings in launchpad and it worked :-)
<shrini> #ubuntu helped me on this
<shrini> after subscribing, you can access the "Ubuntu One" gnome client
<shrini> This will take you to a page,
<shrini> where you have to add your computer to "Ubuntu One" cloud
<shrini> this is essential for the server to recognize your personal computer
<shrini> once added, you are done.
<shrini> now, you are ready to get thrilled
<shrini> your home folder has a special folder called "Ubunt One"
<shrini> this is where the magics happens
<shrini> After running the ubuntu one client, you can see a icon in top panel
<shrini> click the panel and click "connect" to connect with the server
<shrini> you can right click it. select "properties"
<shrini> to select the visibility options for the icon and to change the bandwidth settings
<shrini> Once connected, you are ready
<shrini> Now access the "Ubuntu One" folder via Places->Ubuntu One
<shrini> It looks like any other normal folder.
<shrini> but has hidden magician
<shrini> create a folder inside
<shrini> and paste a file from any other folder
<shrini> wow
<shrini> see the notification area.
<shrini> It is saying "Updating files"
<shrini> after a little time, it says that
<shrini> "updating Finished"
<shrini> Thats all. this is called syncing
<shrini> Any files or folders placed inside "~/Ubuntu One" will be synced to the server
<shrini> you can create, modify, move,delete the files
<shrini> as you do in any other folders
<shrini> but, all your actions will be reflected in the server too
<shrini> normally the sync happens once in 10 min
<shrini> there is another interesting thing is here.
<shrini> you can share your folders to other ubuntuone users
<shrini> right click any folder inside "~/Ubuntu One"
<shrini> choose "Share on Ubuntu One"
<shrini> you can give a users email address
<shrini> for example, if you want to share any folder with me, give my email address there
<shrini> you can even give me rights to modify your files
<shrini> by selecting "Allow Modifications" checkbox
<shrini> then click "share"
<shrini> this will send me a email
<shrini> saying that [name] wants to share a folder with you
<shrini> I have to accept a this by clicking a link provided in the email
<shrini> My "~/Ubuntu One" folder has a sub folder called "Shared With Me"
<shrini> this is the folder, where I get all the folders which are shared with me by other ubuntu one users
<pleia2> < Endomancer> Question with contacts I can see how to add people one at a time, but how do I sync it with empathy to add all my contacts?
<shrini> you can sync evlution contcacts
<shrini> not with empathy contacts
<shrini> want to share photos? albums? letters? documents?
<shrini> with your family and friends?
<shrini> Just place in ~/Ubuntu One
<shrini> and share by giving their email id
<shrini> you reach many people in a easy path
<pleia2> < IdleOne> QUESTION: My sister uses Windows. Can I share files with her via Ubuntu One?
<shrini> Not possible now.
<shrini> you can login to one.ubuntu.com via browser and see all the files
<shrini> browser is another way of managing the ubuntu one folder
<shrini> https://one.ubuntu.com/files/
<shrini> here, a web based file browser helps us.
<shrini> we can create folder, delete folder
<shrini> click a folder and "sharing" to share with others
<shrini> same as we did with gnome client
<shrini> you can upload files too
<shrini> currently one file at one time is possible
<shrini> bulk upload options are yet to be developed
<shrini> https://wiki.ubuntu.com/UbuntuOne/Tutorials/FileSharing
<shrini> this link explains about file sharing in details
<pleia2> 15 minutes left
<shrini> next, let is see on syncing tomboy notes
<shrini> tomboy is a perfect note taking application
<shrini> we can use it to take all kind of notes, todo list, reminders
<shrini> in Tomboy preferences
<shrini> select Synchronization  tab
<shrini> select ubuntu one
<shrini> by service as "Tomboy Web"
<shrini> thats all
<shrini> all your notes will be synced
<shrini> you can get them in browser via "notes" tab
<shrini> you can create, edit, delete in browser too
<shrini> https://wiki.ubuntu.com/UbuntuOne/Tutorials/Notes
<shrini> read for further info
<shrini> you can sync, evolution contacts
<pleia2> < starcraftman> Question: I asked earlier, I get a lot of .u1onflict markers on my folders. I'm constantly updating between my labtop/workstation and sometimes don't sync up before modifying, is there any good way to resolve these? Some of my folders seem to have stopped syncing becuse of it.
<shrini> well. sometimes, conflict too happen
<shrini> https://answers.launchpad.net/ubuntuone-client/+question/77902
<shrini> this page says that
<shrini> you have to choose which version of file to keep
<shrini> and remove all the file except the required one
<shrini> https://wiki.ubuntu.com/UbuntuOne/Tutorials/Contacts
<pleia2> < mhall119> Question: Can you share notes like you can share files?
<shrini> see this link for syncing evolution contacts
<shrini> currently, we can share files ony
<shrini> there are many future plans
<shrini> like
<shrini> syncing files outsude ubuntu one folder
<shrini> indication remaining time/bytes on sync
<shrini> clients for other distros
<shrini> screen sharing
<shrini> high capacity storage
<shrini> mobile clients, console clients
<shrini> encrypted file storage
<shrini> sharing notes,contacts
<shrini> public accessible shared folders via a single URL
<shrini> login is secured via ssl and oauth
<shrini> https://wiki.ubuntu.com/UbuntuOne/Security
<shrini> ubuntu one community gives awesome support
<shrini> Forum - http://ubuntuforums.org/forumdisplay.php?f=367
<shrini> FAQ - https://answers.edge.launchpad.net/ubuntuone/+faqs
<shrini> LP answers - https://answers.launchpad.net/~ubuntuone-users
<shrini> LP project page - https://launchpad.net/~ubuntuone-users
<shrini> acount asst - https://one.ubuntu.com/support/account-assistance/
<shrini> you are welcome to report  bugs here. Bugs - https://bugs.launchpad.net/ubuntuone-client
<shrini> "Sharing is Caring"
<shrini> share you with the world
<shrini> Forget to say, #ubuntuone is the excellent place to hang out
<shrini> you can sync your own applications too with ubuntu one api
<shrini> contact the helpful developers in maling list/irc
<shrini> Thanks all
<shrini> Hope I have done
<pleia2> thanks shrini!
<shrini> thanks again for this wonderful opportunity
<shrini> so happy to be with you all
<nigel_nb> Our next session is going to be a bit delayed.  In the mean time we'd like to remind you of a few things.
<nigel_nb> Please take the feedback survey at http://www.surveymonkey.com/s/WQWHJQY
<Pendulum> please do! so far we only have 4 completed surveys and we know there are more of you out there!
<nigel_nb> In the meantime, if you'd like to give live feed back now, we'll take it in -chat.
<_marx_> This will be very helpful for planning future User Days.
<nigel_nb> Are there any topics you'd like to see us take?
<nigel_nb> What frequency do you want these to run.  Remember it takes an awful lot of planning to get volunteers to lead sessions.
<nigel_nb> IdleOne, wifi is a very complicated issue dependent on hardware, but we'll think about it
<nigel_nb> mhall119 - Is there an official user day hashtag?
<nigel_nb> not yet, feel free to suggest one
<nigel_nb> If you want to tweet/tent, use the either the #uud (short but vague) or #ubuntuuserday (long but clearer) hashtags (thanks mhall119 )
<nigel_nb> okay folks, sorry about confusion with hashtag.  Our offical hashtags will be #UUDJan10 or #UUD<mmm><yy>
* nigel_nb changed the topic of #ubuntu-classroom to: Ubuntu Classroom || Ubuntu User Days | Current Session: Using Using IRC ~~ Presented by nhandler || Please ask questions in #ubuntu-classroom-chat || Ubuntu User Days Survey: http://www.surveymonkey.com/s/WQWHJQY
<nigel_nb> okay, a  big cheer to our next instructor nhandler
<nhandler> Hello everyone
<nigel_nb> Nathan Handler, an up-and-coming Chicago native, is a member of many respected teams in the Ubuntu community.
<nigel_nb> He is also currently serving as a member of the Ubuntu Beginners Team Council and MOTU Council.
<nigel_nb> In addition to being a freenode staff member, he has recently been chosen to serve on the Ubuntu IRC Council.
 * _marx_ hands nhaines 10 demerits for being tardy
<nigel_nb> Nathan will be sharing some of his knowledge with us as he teaches us about using IRC.
<nhandler> Alright, so I'll start with something simple. What is IRC?
<nhandler> IRC is a way for many people from all over the world to communicate in real time
<nhandler> It has several advantages over email and IM
<nhandler> As it is in real time, it is perfect for discussions and meetings since it does not have the delay that email causes
<nhandler> It also allows anyone to create a channel to chat in, so teams can all have their own channel for discussion and meetings
<nhandler> This is one way we use IRC in the Ubuntu community
<nhandler> Almost all Ubuntu teams have their own channel in the #ubuntu (or #kubuntu or #xubuntu) namespace
<nhandler> A list of these channels is available on the wiki: https://help.ubuntu.com/community/InternetRelayChat
<nhandler> Some channels serve special purposes. For instance, #ubuntu-meeting is used by many Ubuntu teams to hold their meetings, #ubuntu-classroom for educational sessions, #ubuntu is a support channel, etc.
<nhandler> Any questions so far?
<nhandler> In that case, I'll continue with the session
<pleia2> < IdleOne> QUESTION: are all channels with ubuntu in the name "official" ubuntu channels?
<nhandler> That depends on what you consider "official". #ubuntu channels fall under the Ubuntu name space, so they are governed by the IRC Council, Ubuntu's IRC guidelines, and the Code of Conduct.
<nhandler> ##ubuntu channels are slightly different (see freenode's channel naming policy http://freenode.net/policy.shtml#channelnaming )
<pleia2> < BatSteve> QUESTION: Do all IRC chat rooms have to start with # ?
<nhandler> On freenode, all channels start with a #. Other networks use a different symbol
<nhandler> IdleOne: The IRCC tries to monitor the various #ubuntu channels that are created, but we are not always aware of all of them.
<nhandler> Any more questions?
<nhandler> Just like in real life, there is a certain etiquette that should be followed while on IRC
<pleia2> < rww> QUESTION: Do all channels in the Ubuntu namespace have to follow the IRC Guidelines, or is it at the option of the channel's operators?
<nhandler> Channels in the Ubuntu name space should generally follow the guidelines. However, they are mainly designed for the core Ubuntu channels (for instance, not all channels have a ! ops trigger or a bot)
<nhandler> However, they should follow the Code of Conduct
<nhandler> Keep in mind, the IRC Guidelines are "guidelines". Not all of the points always apply (LoCos often speak in their native language). You need to just use some common sense when making that decision
<nhandler> Going back to etiquette, when this etiquette is followed, it greatly improves the IRC experience
<nhandler> For example, if you are talking to someone in a channel (or replying to a question), include the name of the person you are talking to in your message.
<nhandler> Doing so will cause their IRC client (usually) to hilight them, which helps make them aware of the message
<nhandler> If you do not do this, it is very possible that your message will get lost (especially in busy channels like #ubuntu)
<nhandler> If you ever go in search of support, you will frequently be asked to show someone the contents of a file on your computer
<nhandler> Never paste the file directly into a channel
<nhandler> Instead, there are sites such as paste.ubuntu.com which you can use to make your file available to other people
<nhandler> This avoids flooding the channel with your file
<nhandler> The IRC Guidelines cover a lot of common etiquette: https://wiki.ubuntu.com/IRC/Guidelines . They are definitely worth reading
<nhandler> One thing I would like to add is to remember which channel you are in
<nhandler> When you are in multiple channels, it is very easy to forget where you are and begin to carry on a completely off-topic conversation in a channel.
<nhandler> Are there any questions about this? I don't want to spend too much time (since most of this stuff is in the guidelines) if nobody has any questions about it
<Pendulum> < IdleOne> QUESTION: where can a user get help with a abusive user on freenode?
<nhandler> IdleOne: This would depend on the abuse. If a user is being abusive in a certain #ubuntu channel, you can notify the Ubuntu OPs to the user using ! ops (no space). They should be able to deal with the user
<nhandler> If the user is being abusive to you only in PMs, I would suggest utilizing your client's /ignore feature
<nhandler> If the user it being abusive in many channels and violating freenode policy, you can notify freenode staff in #freenode (or PM a staffer)
<nhandler> As I mentioned earlier, most Ubuntu teams have their own IRC channel
<nhandler> These channels all have channel operators to help keep them running smoothly
<nhandler> If you ever find yourself serving as an OP in a channel, there are certain tips/tricks that are useful to know which will make your life a lot easier
<nhandler> For anyone who uses irssi + screen for IRC, there is a script called autobleh.pl
<nhandler> This script creates aliases for common OP tasks. For instance, I can kick ban a user with /abk
<nhandler> However, my favorite feature without a doubt of this script is the temporary quiet. This quiets a user for a couple of minutes and then automatically unquiets them when the time is up.
<nhandler> autobleh.pl makes being an OP a lot easier
<pleia2> < rww> QUESTION: Is autobleh.pl compatible with ircd-seven?
<nhandler> rww: That depends. Some of the features of autobleh will work fine on ircd-seven regardless of the version you have. For instance, I believe /op should work just fine
<nhandler> Some other commands, might not work due to some changes in how ircd-seven handles bans and quiets. See http://freenode.net/seven-for-hyperion-users.html for details on those changes
<nhandler> However, there are versions of autobleh.pl online that are fully compatible with ircd-seven
<nhandler> There is also a script similar to autobleh for xchat for those of you who might be interested: http://www.kaarsemaker.net/static/downloads/code/chanserv.py
<nhandler> One other commonly forgotten tip is that logs are your friend
<nhandler> Most IRC clients support logging. If you run something like irssi + screen, you can produce logs 24/7
<nhandler> These logs can then be searched using grep (or another tool) when troublesome users show up. This is an easy way to see what they might have done in other channels you are in, or review a certain conversation you had with them on a previous date
<nhandler> < BatSteve> QUESTION: (caution - involves topic change) -- I want to have a private chat with a few other users without distractions.
<nhandler>                      Is there a way to limit a room to only certain users?
<nhandler> There are a few channel modes that can help you do this. One method is to make a channel invite only (+i) and /invite the users who you wish to participate in the conversation. Another option is to password protect the channel. A third option is to simply join a random channel (i.e. ##randomsecretchannel243453259032452) and invite the other members
<nhandler> Information on the different channel modes is available here: http://freenode.net/using_the_network.shtml
<nhandler> I have mentioned bans and quiets a few times already. However, these are not the only (or best) way to deal with troublesome users
<nhandler> freenode believes in catalyzing and trying to talk to troublesome users (http://freenode.net/catalysts.shtml)
<nhandler> Sometimes, you will find that a user was not attempting to cause a problem, they were just confused. By talking to them, you can sometimes clear this up.
<nhandler> If you do need to ban or quiet someone, do not just set and forget
<nhandler> Make a note somewhere of who you are banning, why you are banning them, and how long they should be banned. Then, once their ban is over, make sure you (or another OP) actually removes it
<nhandler> Many OPs get in the habbit of banning someone and then forgetting to remove the ban
<pleia2> < ddecator> QUESTION (you might plan to address this later): What are some common IRC commands and do they depend on your client or are they universal?
<nhandler> ddecator: Most IRC commands work in all clients. For instance, you generally have /join, /msg, /part, /quit, /ctcp, etc.
<nhandler> However, each client also includes its own commands
<nhandler> /ignore works differently depending on the client, /hilight, /me, and any commands provided by scripts (such as autobleh) depend on the client
<nhandler> < duanedesign> QUESTION - what can we do to reuce the spread of the recent spam? Are there any user modes or commands we can set to
<nhandler>                         reduce getting spam messages
<nhandler> There is a freenode blog post on this topic: http://blog.freenode.net/2010/01/javascript-spam/
<nhandler> You can set +r or +R on a channel to help prevent the spam (since it comes from unregistered accounts)
<nhandler> The most important thing to remember is to NOT click on the links.
<nhandler> On the topic of setting and forgetting bans, it is also worth mentioning that bans should be set as narrowly as possible. For instance, you should not ban an entire state to deal with one troublesome user.
<nhandler> Being aware of channel modes that are available can also hep with this. For instance, we have +m set in here right now. This works a lot better than trying to set a quiet on everyone ;)
<nhandler> < ddecator> QUESTION: How exactly do you set a channel mode?
<nhandler> If you are an OP in a channel, you can do: /mode #channel +X (where X is the mode)
<nhandler> So to make a channel moderated, you would do: /mode #channel +m
<nhandler> One other thing I would like to mention is irclogs.ubuntu.com. This site is great for people who might not be online 24/7 and wish to see logs for a meeting or discussion that occurred while they were away
<nhandler> The site has logs for many of the #ubuntu channels (including #ubuntu-meeting and #ubuntu-classroom). So you could find all of today's User Day logs here: http://irclogs.ubuntu.com/2010/01/23/%23ubuntu-classroom.html
<nhandler> This is very useful for both OPs and regular users
<nhandler> Any questions?
<nhandler> < BatSteve> QUESTION: What if I want to leave a channel that I've created, but I want to retain my operator privileges when I come back?
<nhandler> BatSteve: You should register the channel. Once you do that, you should be able to rejoin and have ChanServ OP you
<nhandler> Lots of good information about setting up a channel on freenode can be found here: http://blog.freenode.net/?p=78
<nhandler> < ddecator> nhandler, what are the best IRC clients? XChat is the only one I know, but are there others that are better in various ways?
<nhandler> As I have hinted at a few times, I am a fan of irssi + screen. This allows me to keep it running 24/7 and access it from any computer over ssh. There are also many scripts and themes to custimize it
<nhandler> If you need a temporary IRC client or are not on your own computer, webchat.freenode.net is a web-based IRC client that you can use
<pleia2> 10 minutes left
<nhandler> Some people like using IM clients that offer IRC functionality
<nhandler> I personally have never been a fan of these, and they tend to not work that well as IRC clients (often lacking many feautres)
<nhandler> yofel: Thank you. I almost forgot about quassel, which is also gaining popularity
<nhandler> I haven't actually used it though, so I can't really say much about it.
<nhandler> There is also weechat, which is similar to irssi in many ways
<nhandler> Any more questions?
<nhandler> One more thing worth noting is that freenode will be moving to ircd-seven at the end of the month. This will cause several changes: http://freenode.net/seven-for-hyperion-users.html . More details on the switch can be found here: http://announce.freenode.net/
<pleia2> < IdleOne> QUESTION: can you talk about DCC and it's dangers pleas
<nhandler> < IdleOne> QUESTION: can you talk about DCC and it's dangers please
<nhandler> DCC is a way to transfer files. It really isn't used much in the Ubuntu community, and many people attempt to exploit it ( https://help.ubuntu.com/community/FixDCCExploit ) .
<nhandler> This is one reason you will often see a lot of DCC spam in your server window
<nhandler> We are almost out of time. Do not forget, the Ubuntu wiki and the freenode website are both filled with lots of great information about IRC.
<nhandler> Feel free to ask in #freenode, PM me, or ask in one of the Ubuntu channels (depending on the type of issue) if you need more help
<pleia2> thanks nhandler!
<cjohnston> umm.. I guess I am supposed to say something now.. or atleast that is what I am being told.
 * pleia2 grins
<cjohnston> Please, please please, take the survey! It is the best way for us to know what you want.. We really do want to make this for the user, but we need your input for this!
<cjohnston> You can find the survey: http://www.surveymonkey.com/s/WQWHJQY
<Pendulum> Thank you everyone for coming! We've hope you've enjoyed yoruselves and learned a lot!
<cjohnston> I would like to thank all of the instructors who presented today.. And a big thanks to duanedesign and starcraftman... duanedesign had about 4 hours to prepair for his course, and startcraft man had about four minutes to prepare fore his second course.
<cjohnston> A big thank you to pleia2 Pendulum _marx_ and nigel... I couldn't have done this without all of your help..
<cjohnston> I hope everyone had a really good day... I know I did..
<cjohnston> umm.. anyone else have anything?
<pleia2> thanks everyone!
<_marx_> Thanks everyone for that participated!
<cjohnston> Any last minute questions about the day? (not course specific)
<_marx_> except the spammers
<cjohnston> +1 _marx_
<cjohnston> I guess that's it.. I look forward to seeing everyone at the next User Day.. Maybe some of you can even present a course!
* pleia2 changed the topic of #ubuntu-classroom to: Ubuntu Classroom || Support in #ubuntu || https://wiki.ubuntu.com/Classroom || https://wiki.ubuntu.com/Packaging/Training || Upcoming: Mon 25 Jan - Fri 29 Jan 2010: Ubuntu Developer Week || Run 'date -u' in a terminal to find out the UTC time
<cjohnston> Keep an eye out on http://wiki.ubuntu.com/UserDays !!
<cjohnston> Good (enter whatever time of day is appropriate here)!
#ubuntu-classroom 2011-01-19
<davebuntu> Does anyone here use bazaar explorer?
<Zlatan_> hi there :)
<RyanTheInternetP> hi
<RyanTheInternetP> faget
#ubuntu-classroom 2011-01-20
<krajesh> ./join #python
<punjabdapunk> Hi, I'm a noob to Ubuntu... I've installed Ubuntu server 10.04 and have got ssh up and going. Occasionally, when I connect via ssh to my server it refuses connection. I'm not sure why. Is there a log I can look at?
<punjabdapunk> I should ask if this is the right place to ask such a question... so, is it this right place?
<adtoes> hey guys
<adtoes> question
#ubuntu-classroom 2011-01-21
<adtoes> anyone here?
<virtuald> try #ubuntu
<adtoes> ty
<Noa> weet iemand die Nederlandse site waar ze af en toe lessen aanbieden
#ubuntu-classroom 2011-01-22
<zeroseven0183> Good day people. Just a simple question. Is Lernid going to be used in User Ubuntu Days?
<pleia2> you can use lernid to access user days, but it's pretty buggy so we're not pushing it
<zeroseven0183> I see. Thank you very much
<mhall119> pleia2: does lernid still not have an active maintainer?
<pleia2> mhall119: 'fraid not, and I'm not sure it really works with maverick all that well
<pleia2> nhandler fixed some of the critical bugs, but he doesn't have time to lead the project
<nhandler> zeroseven0183: Right now, the status of lernid is unmaintained, unrecommended, and unsupported by the classroom team. So you can use it, but we make no promises that it will work (or work well). Using a real IRC client (or even the freenode webchat) is a much better idea
<zeroseven0183> Thank you nhandler
<Lordy> Hello
#ubuntu-classroom 2011-01-23
<c2tarun> What is so special on Jan 23, approximate 15 hrs of classes are scheduled? :)
<c2tarun> sorry Jan 29
<Pendulum> c2tarun: https://wiki.ubuntu.com/UserDays
<AndroUser> hi
<yathi> hi
<c2tarun> hi
<yathi> end
#ubuntu-classroom 2012-01-17
<Guest60626> hi
<benonsoftware> Bye :P
<chemmy> hello
<chemmy> noob was here
<chemmy> waiting sumone to teach me more bout ubuntu
#ubuntu-classroom 2012-01-21
<nava> is ubuntu writing a sdk ? (for tablet , tv ,smartphones and also desktop)
<head_victim> nava: This channel is for specific guided learning events, general support is available in #ubuntu
<nava> is canonical writing a sdk ? (for tablet , tv ,smartphones and also desktop)
<benonsoftware> nava: This channel is for specific guided learning events, general support is available in #ubuntu
<nava> tnx but i want ask for what is that language
<nava> this channel is for developers right ?
<benonsoftware> No, #ubuntu-devel might be better
<nava> cuz i found this channel in developer.ubuntu.com
<nava> tnx
<benonsoftware> No problems
#ubuntu-classroom 2012-01-22
<hicham_> hi
<hicham_> this is my firsr time i start this program
<hicham_> what to do?
#ubuntu-classroom 2013-01-14
<huup> hi
<meet> does aria2c or axel really speed up downloads?
#ubuntu-classroom 2013-01-15
* ChanServ changed the topic of #ubuntu-classroom to: Welcome to the Ubuntu Classroom - https://wiki.ubuntu.com/Classroom || Support in #ubuntu || Upcoming Schedule: http://is.gd/8rtIi || Questions in #ubuntu-classroom-chat || Current Session: Introduction to QA / Testing class - Instructors: balloons
<ClassBot> Logs for this session will be available at http://irclogs.ubuntu.com/2013/01/15/%23ubuntu-classroom.html following the conclusion of the session.
<balloons> Hello and welcome to this intro to ubuntu quality session. This is the first in a series of sessions the quality team is presenting over the next several weeks.
<balloons> This session is intended to introduce you to what the quality team does, and some of the sites and tools utilized by the team, as well as how you can join and participate.
<balloons> You may ask questions at any point.. Just be sure to utilize the #ubuntu-classroom-chat channel
<balloons> Everyone ready?
<balloons> I'm going to give a brief overview of what QA is and how the team works, then we'll dive into some of the tools we use
<sanjay_> yes
<balloons> Finally, we'll talk about how you can get involved and then do a Q & A
<balloons> So to start off, letâs take a look at the wiki page for the team
<balloons> http://wiki.ubuntu.com/QATeam
<balloons> On the page you can see some of the teams goals and purpose
<balloons> simply put, we help ensure everyone's work in ubuntu is presented in the best possible way
<balloons> from designing good process, to testing, to making sure things 'just work', we want the culmination of work that results in the ubuntu image to be the best it can be
<balloons> So where do we hang out?
<balloons> Many different places actually :-)
<balloons> The quality team is a diverse group of folks with different skillsets
<balloons> however, we do have some official communication channels should you need to reach us
<balloons> right here on IRC, #ubuntu-quality
<balloons> on our mailing list:     https://lists.ubuntu.com/mailman/listinfo/ubuntu-quality
<balloons> in the forums;     http://ubuntuforums.org/forumdisplay.php?f=427
<balloons> on askubuntu;     http://askubuntu.com/questions/tagged/quality
<balloons> and even on social sites like facebook, twitter and google
<balloons> So let's talk about some of the sites that we utilize and there purpose
<balloons> First up is  http://errors.ubuntu.com
<balloons> errors is driven by whoopsie-daisy, the brainchild of evan.. If anyone was able to make it to the last UDS, you may have seen his presentation on the behind the scenes details for this tool and it's growth
<balloons> what errors show us is the error rates for our current ubuntu installs, linking them to bug reports, sorting by frequency and showing the average over time
<balloons> although as a team we are typically focused more on the developing version of ubuntu, we can utilize this data to see what might need more testing or new regressions tests if a package has a high occurrence of crtiical bugs
<balloons> Next up is the QA dashboard
<balloons> http://reports.qa.ubuntu.com/
<ClassBot> dkessel asked: what is the scale of that graph? 0.1 errors per day can't be right?
<balloons> good question dkessel.. I believe that is showing the errors per day in comparison to a benchmark rate, in this case 12.04
<balloons> I am willing to be corrected on that, but that's my understanding :-)
<balloons> Ok, back to the dashboard :-)
<balloons> This is currently utilized to show the automated testing results for our daily images
<balloons> by default your looking at the current development release, and todays builds sorted descending by date
<balloons> we can utilize this to follow-up with further manual testing on images that repeatedly show as broken. In addition, we withhold publishing known broken images for manual testing until they meet a baseline criteria for installation via automated testing
<balloons> Next is the QATracker
<balloons> There are several instances, but I will briefly link to one, the iso tracker
<balloons> http://iso.qa.ubuntu.com
<balloons> The tracker is where we submit results and get testing information.. Our testing workload is managed through the different qatracker sites
<balloons> Ok, I'd like to talk about some tools we utilize now
<balloons> In conjunction, we'll chat about some of the activities we do in QA
<balloons> As we just spoke about, the QATracker is a big part of enabling us to work together as a team
<balloons>         https://wiki.ubuntu.com/Testing/QATracker
<ClassBot> chilicuil asked: what's the difference between http://reports.qa.ubuntu.com/sru/ and http://people.canonical.com/~ubuntu-archive/pending-sru.html ?
<balloons> Pausing to answer this for a sec :-)
<balloons> chilicuil, the difference is that the reports site is showing testing for kernel sru
<balloons> the sru pending report is showing all sru's and there status
<balloons> I trust that answers the question
<balloons> Ok, back to the tracker quickly
<balloons> the wiki page has more details about how it works and the workflow..
<balloons> we'll come back in a moment to look at the walkthroughs
<balloons> for now, let's move on
<balloons> We mentioned the isotracker and linked everyone to it.. iso.qa.ubuntu.com
<balloons> So, you can see there are images for raring and precise ready for testing
<balloons> iso testing is one activity you can do as part of the team, as is a great way to start
<balloons> one of the tools you can utilize to help with this is called testdrive
<balloons> This page describes the tool in a bit more detail: https://wiki.ubuntu.com/UsingDevelopmentReleases
<balloons> In addition, the walkthrough uses testdrive to teach you how to undergo your first iso test: https://wiki.ubuntu.com/Testing/ISO/Walkthrough
<balloons> In short, testdrive will help you download the daily iso of your choosing for testing, and ease you into doing an instillation test by starting up a vm for you
<balloons> Ok, so that's one facet of 'manual testing'
<balloons> there's a few more.. We also test packages.. packages.qa.ubuntu.com. This typically invovles installing software from a ppa and running through a set of tests.
<balloons> Finally, phillw in the next session will be covering writing tests for manual testcases, so I won't cover that here..
<balloons> On the 'automated testing' side of things we utilize a few tools as well to help
<balloons> The first is called Autopilot, https://launchpad.net/autopilot
<balloons> as a team we've adopted this tool this cycle to help us automate some of our manual testing that is better suited to for automation
<balloons> We are having several hackathons where you can learn more about writing autopilot tests, as well as autopkg tests
<balloons> Autopkg tests are the other automated testing we as a team participate in
<balloons> http://developer.ubuntu.com/packaging/html/auto-pkg-test.html
<balloons> The difference between the two is the scope of the test
<balloons> autopkg tests are aimed at testing integration, low-level and build time testing
<balloons> it's more in line with system testing, ensuring a package works as expected on the installation target
<balloons> for autopilot testing, we are focused on functional testing.. this means we are looking at testing from a user or gui perspective
<balloons> If you'd like to know more about contributing autopilot or autopkg tests, see these answers and join us at the hackathons
<balloons> http://askubuntu.com/questions/236202/how-do-i-contribute-an-autopkg-test-to-ubuntu
<balloons> http://askubuntu.com/questions/233219/how-do-i-contribute-an-autopilot-test
<balloons> I'd like to touch on another activity that we as a team do in testing.. Please feel free to ask questions if I'm glazing over something, or something didn't make sense
<balloons> We'll stop at the end for a general q & a as well
<balloons> Hardware testing is a growing area for us as a team
<balloons> The laptop testing team has been around for awhile doing excellent work to ensure ubuntu works on a wide range of hardware
<balloons> https://wiki.ubuntu.com/Testing/Laptop
<balloons> Currently, we are looking for more folks to help push forward a testing hw database using ubuntu friendly, hexr, and the work the laptop team continues to do.. So it's an exciting time if your interested in that type of testing
<balloons> Ok, so perhaps I've enticed you to join us in our quality endeavors :-) Getting involved in quality is a great way to start contributing to ubuntu
<balloons> you will be exposed to many different teams and people.. And the work and skillsets required are always interesting
<balloons> The next steps for joining the team are quite simple. It's an open membership. You simply need a ubuntu SSO account
<balloons> https://login.launchpad.net/+new_account, if you don't have one
<balloons> That will allow you to contribute results to the tracker. In addition you should join our launchpad team and mailing list.. And then leave us a message and say hello! We're happy to help you get started and guide you through an area you'd like to help in
<balloons> LP team: https://launchpad.net/~ubuntu-testing
<balloons> mailing list:  https://lists.ubuntu.com/mailman/listinfo/ubuntu-quality
<balloons> The mailing list will keep you informed about testing events we are having, new initiatives, and allow you to ask questions and get help
<balloons> Finally, our #ubuntu-quality channel has folks from around the world hanging out at many different hours of the day.. Do stop by and say hello there as well..
<balloons> Ok, That's the end of my spiel :-) I'm happy to field any questions you may have now
<ClassBot> ripper asked: What's the size of the QA team (internal/community)? Do you develop all of your QA tools on your own?
<balloons> ripper, good question. As far as size is concerned, you can look and see the number of folks on our launchpad team.. currently sitting at 183.. Not everyone is active all the time (nor expected to be :-) ), but in general we have a nice size of folks around and willing to help and engage. As far as tools are concerned, we generally utilize things built by others (typically within the ubuntu community), although some tools come from within.
<balloons> For instance, autopilot comes to us from the unity team. Autopkg is a debian standard, we're just using it. Testdrive was built by the ubuntu community I believe, but virtualbox, lvm, etc are from somewhere else. The qatracker was built by folks internally for the purposes of doing testing work
<balloons> In general, I always love to see more development minded folks write some nifty tools we all can utilize
<ClassBot> JoseeAntonioR asked: Are there any QA tools that are still in development, but mature enough for the team to use, that we should know about?
<ClassBot> There are 10 minutes remaining in the current session.
<balloons> Hmm.. there are certainly other tools for QA
<balloons> xpressor and sikuli for instance are both also functional testing tools.. mago / ldtp have been used in times past
<balloons> checkbox is utilized by ubuntu friendly, has been utilized by our team in the past, and may again be utilized to do the hardware database
<balloons> Any other questions? I hope this has been a good introduction for all of you. I would encourage you to pick out some sessions the other community members are leading on specific topics
<balloons> there's some great stuff being covered, and it will help ensure you don't get lost or confused in trying to help
<balloons> and you get to be instructed by someone other than me :-p.. so that might be a bonus for you
<ClassBot> adamw asked: What's the process for testing updates to stable releases? I didn't see that covered, unless I missed it
<balloons> adamw, we skimmed it briefly, but didn't talk about the process
<balloons> we call these SRU's
<balloons> that means, stable release updates
<ClassBot> There are 5 minutes remaining in the current session.
<balloons> The process is tracked via launchpad typically, and invovles the developer who fixed the bug, the SRU team, and (hopefully) the bug submitter and/or affected folks
<balloons> The package is uploaded to a proposed queue where the aforementioned people will test and ensure it fixes the issue before being released to the general repository for everyone
<balloons> Thanks for coming out everyone! I hope to see you around again. Feel free to contact me anytime
<balloons> you have my IRC nick now.. I'l link my lp page
<balloons> https://launchpad.net/~nskaggs
<balloons> Finally, happy testing!
<JoseeAntonioR> thanks a lot, balloons, this has been a great session.
<JoseeAntonioR> coming up, we have an Introduction to Manual Test Cases, with phillw, in about an hour. Stay tuned!
<ClassBot> Logs for this session will be available at http://irclogs.ubuntu.com/2013/01/15/%23ubuntu-classroom.html
* ChanServ changed the topic of #ubuntu-classroom to: Welcome to the Ubuntu Classroom - https://wiki.ubuntu.com/Classroom || Support in #ubuntu || Upcoming Schedule: http://is.gd/8rtIi || Questions in #ubuntu-classroom-chat || No Sessions Currently in Progress
<tockitj> Atlantic777 (:
<Atlantic777> hey :D
* ChanServ changed the topic of #ubuntu-classroom to: Welcome to the Ubuntu Classroom - https://wiki.ubuntu.com/Classroom || Support in #ubuntu || Upcoming Schedule: http://is.gd/8rtIi || Questions in #ubuntu-classroom-chat || Current Session: Introduction to Manual Test Cases class - Instructors: phillw
<ClassBot> Logs for this session will be available at http://irclogs.ubuntu.com/2013/01/15/%23ubuntu-classroom.html following the conclusion of the session.
<JoseeAntonioR> let's wait a few seconds while phillw gets ready :)
<phillw> Hi folks, I'm phillw
<phillw> https://wiki.ubuntu.com/phillw
<phillw> I'm going to give an introduction to manual test cases, please feel free to ask questions as I go along. If I don't immediately reply in here it is because I will be covering that question in this session.
<phillw> so, to begin.
<phillw> Whilst the growth and development of the automated test systems is a massive step forward, there are times when a human is needed :)
<phillw> in some ways, think of the millions of dollars that NASA spent on designing a pen that would in space... The USSR simply used pencils.
<phillw> As part of the evolution of testing, the manual test cases are being re-written into a new format which is easier to follow.
<phillw> The test cases, which are linked to the iso tracker, are important as they give a consistant set of steps to follow.
<phillw> When ever thinking about a manual test case, you must follow one simple rule...
<phillw> would my mum understand what you are asking the person to do.
<phillw> They are click by click instructions... Do this
<phillw> expect this result
<phillw> https://wiki.ubuntu.com/Testing/TestCaseFormat
<phillw> even a long, involved, test case such as http://iso.qa.ubuntu.com/qatracker/testcases/1439/info
<phillw> should be easy to follow
<phillw> Test cases used to look (and a lot still do) look like http://testcases.qa.ubuntu.com/Applications/Calculator
<phillw> The important things are written down, and the steps are there.
<phillw> !q
<phillw> !y
<ClassBot> Ade asked: Are test cases written to a use case or Software Requirements Specification?
<phillw> there are two types of test cases
<phillw> generic (which apply across all flavours)
<phillw> specific (which are application / flavour / architecture specific
<phillw> there are two areas for test cases, those on the iso-tracker at http://iso.qa.ubuntu.com/qatracker/milestones/243/builds
<phillw> such as http://iso.qa.ubuntu.com/qatracker/testcases/1300/info
<phillw> and those for applications
<phillw> which are held at http://packages.qa.ubuntu.com/
<phillw> an example being http://packages.qa.ubuntu.com/qatracker/testcases/1448/info
<phillw> there is a 3rd manual test system, used for smoke testing which has a slightly different format for setting up.
<phillw> As part of the push for getting things transferred to the new format, there is a page area on the QATeam area. https://wiki.ubuntu.com/QATeam/TestcaseUpdates
<phillw> It may look like nothing has happened, but balloons has been tidying up the page to remove those areas that have been fully completed :)
<phillw> but, what is needed is more people to assist.
<phillw> as stated on https://wiki.ubuntu.com/Testing/TestCaseFormat getting involved is a good way to logically think out solutions to questions.
<phillw> So, going back to http://testcases.qa.ubuntu.com/Applications/Calculator
<phillw> we would begin with the standard header....
<phillw> <ol>
<phillw> <li>GotoÂ Applications->Accessories->Calculator</li>
<phillw> </ol>
<phillw> at which point, we expect it to start
<phillw> so, the expected result would be written
<phillw> <li title="expected_result">Calculator starts</li>
<phillw> from there on, you would state
<phillw> <li title = "action"> Do this </li>
<phillw> <li title = "expected result">Expect this <li>
<phillw> I've not had chance to do the calc one, give me a moment to pull up the details of an exisiting one.
<phillw> http://iso.qa.ubuntu.com/qatracker/testcases/1301/info is written as
<phillw> http://pastebin.com/JiZf3quS
<phillw> whilst it is somewhat involved, you can see the steps for "Do This" and "Expect This".
<ClassBot> JoseeAntonioR asked: Shouldn't the last one be '<li title = "expected result">Expect this </li>'?
<phillw> JoseeAntonioR: indeed it should, my fault for missing the close tag.
<phillw> <li> ..... </li> in order to keep the format correct, my typo.
<phillw> which is also no end of fun for me to debug when scratching my head :)
<phillw> I hope that this introduction to writing manual test cases has not frightened people away, as stated on https://wiki.ubuntu.com/QATeam/TestcaseUpdates please feel free to contact us!
<phillw> I'll leave the remaining time for any questions.
<ClassBot> kparal asked: what is your opinion on having generic test cases (people have to figure out some stuff by themselves, or it's intentionally fuzzy to get different results from different testers) compared to very detailed test cases ("click on button X, then on button Y", which need to be updated regularly as the software changes)? do you use both approaches, or prefer just the detailed test cases?
<phillw> hi kparal one of the advantages of having the test cases split between 'generic', such as those on the iso tracker and the others on the application area is that a test case can be updated for a change in the software (application).
<ClassBot> There are 10 minutes remaining in the current session.
<phillw> so, we do use both approaches.
<phillw> all test cases should be in the format, Do 'A', exepect 'B'.
<phillw> *expect*
<phillw> as smoke tests are different to normal testing. for the record of this session I'll copy over a chat.
<phillw> I would add I think the difference your describing is smoke tests versus testcases
<phillw> smoke tests do have test cases as well?
<phillw> meaning, during smoke testing we'll ask a series of genericish questions, to which the tester(s) can reply and find issues
<phillw> (21:53:19) balloons: yes, here's some we have right now this week for pulseaudio
<phillw> (21:53:37) balloons: http://packages.qa.ubuntu.com/qatracker/milestones/251/builds/34454/testcases/1336/results
<phillw> (21:54:07) balloons: this type of testing is useful, but in s different way than a detailed testcase
<ClassBot> There are 5 minutes remaining in the current session.
<ClassBot> Ade asked: Where is the best place to view test cases that need to be written/updated and once complete then how would you submit them?
<phillw> Ade, if you follow https://wiki.ubuntu.com/QATeam/TestcaseUpdates you can contact any of the team at https://launchpad.net/~ubuntu-testcase
<phillw> or simply ask on the QATeam mailing list
<phillw> https://wiki.ubuntu.com/QATeam/Contact
<ClassBot> kparal asked: in which part of the cycle do you do smoke testing, and in which part do you do application test cases testing? is that separated or simultaneous?
<phillw> I'm not overly familiar with smoke testing, balloons would be better person to ask about that subject. We'll make an effort to update the Wiki to answer your question (If he hasn't already done it :) )
<ClassBot> Logs for this session will be available at http://irclogs.ubuntu.com/2013/01/15/%23ubuntu-classroom.html
<phillw> Thanks everyone. remember, you can always ask questions on #ubuntu-quality
* ChanServ changed the topic of #ubuntu-classroom to: Welcome to the Ubuntu Classroom - https://wiki.ubuntu.com/Classroom || Support in #ubuntu || Upcoming Schedule: http://is.gd/8rtIi || Questions in #ubuntu-classroom-chat || No Sessions Currently in Progress
<JoseeAntonioR> thanks a lot, phillw! stay tuned to the calendar and the blog to see upcoming sessions. see you there!
#ubuntu-classroom 2013-01-19
<pleia2> bug 1101334
<ubot2> Launchpad bug 1101334 in Xubuntu Website "Update screenshots" [High,New] https://launchpad.net/bugs/1101334
 * pleia2 testing things for some upcoming bug sessions :)
#ubuntu-classroom 2013-01-20
<J251> hello
<spacecowboy29> For Ubuntu Developer week, do we need to run 13.04 ?
#ubuntu-classroom 2014-01-14
<user2> test
#ubuntu-classroom 2014-01-16
<Leagnus> good day to everyone!
<Leagnus> 	i think Unity is nice
<Leagnus> 	but file manager with panel in it
<Leagnus> 	which reacts on LMK (left mouse key), MMK (middle ~) RMK (right ~) is sufficent if
<Leagnus> 	there will be panels with info on it
<Leagnus> 	or with run software buttons
<Leagnus> 	that appear depending on context
<Leagnus> 	or certain windows.
<Leagnus> 	So special file manager plus special launch / info panels is sufficent environment for me.
<Leagnus> 	But how to realize it?
#ubuntu-classroom 2014-01-18
<jithin> hai what is the best way to bigin developing for ubuntu
