CommunityWeek/PackagingSession/IRCLog20090511

From openSUSE

IRC Log 2009-05-11 (Monday)

[11:01:34] Topic	You set the channel topic to "Communication is important. Talk to people. | CommunityWeek/PackagingSession | Build_Service/Tips_and_Tricks | paste to http://p.caboo.se/ or http://rafb.net/paste/ | SNAFU".
[11:02:00] <mvyskocil>	ok, so let start with a Packaging Session
[11:02:07] <mvyskocil>	who is interested?
[11:02:36] <prusnak>	me!
[11:02:42] <ptr_uzl>	me too...
[11:03:28] <mvyskocil>	prusnak, ptr_uzl: I don't think I can tell you anything new about packaging ;-)
[11:03:30] <titu>	me too
[11:04:40] <mvyskocil>	titu: it looks that you will get a private session, because you are only one interested person :)
[11:05:03] <titu>	mvyskocil: that would make it much better for me
[11:05:28] <mvyskocil>	titu: that's true :)
[11:05:30] <prusnak>	i think there are more, but they are too shy :)
[11:05:47] <mvyskocil>	prusnak: please don't be
[11:05:59] <mvyskocil>	prusnak: sorry, that was fault 
[11:06:20] <mvyskocil>	please don't be shy, if you are interested, please tell it
[11:06:30] <msebe>	mvyskocil: i am also interested :)
[11:06:34] <titu>	prusnak: I agree.
[11:06:54] <titu>	here goes my private session :)
[11:07:00] <mvyskocil>	OK, so anyone except SUSE packager is interested? ;-)
[11:07:32] <mvyskocil>	because in oposite case we will work only on titu's problems ...
[11:08:20] <mvyskocil>	titu: so it looks that you're lucky.
[11:08:38] <titu>	if the session is logged, then may b others can read that
[11:08:39] <CzP>	well, I'm interested, but right now I'm happy if I'm able to follow passively the session
[11:08:58] <nikanth>	Actually a similar session is going on in #opensuse-gnome..and people are there I guess
[11:09:22] <CzP>	with a 3 weeks "old" baby no time for anyting right now...
[11:09:24] <nikanth>	including myself :)
[11:09:33] <prusnak>	nikanth: gnome session focuses on packaging gnome applications, this one is going to be more generic
[11:10:14] <mvyskocil>	OK, so I'd like to start with a brief intro - how to create package, submit it to OBS
[11:10:25] <nikanth>	prusnak, hmm yes.. I am interested
[11:10:36] <mvyskocil>	I expect that you have a Novell account, and osc configured
[11:10:41] <nikanth>	yes
[11:10:45] 	 * jays too
[11:10:56] <mvyskocil>	see CommunityWeek/PackagingSession
[11:10:59] <mvyskocil>	if not
[11:11:00] <titu>	yes
[11:11:14] <mvyskocil>	great
[11:11:37] <mvyskocil>	So we selected astyle: http://astyle.sourceforge.net/ as a good example
[11:12:04] <mvyskocil>	The first useful step is create a working dir
[11:12:18] <mvyskocil>	for example home:<login>/astyle
[11:13:04] <mvyskocil>	Then download a source tarball astyle_1.23_linux.tar.gz from home page
[11:13:16] <mvyskocil>	http://sourceforge.net/project/showfiles.php?group_id=2319&package_id=2282&release_id=661855
[11:14:09] <mvyskocil>	And a skeleton of spec file
[11:14:13] <mvyskocil>	http://pack.suse.cz/mvyskocil/astyle.spec.skeleton
[11:14:44] <mvyskocil>	Can we continue?
[11:15:00] <herby2>	yes
[11:15:11] <titu>	yes
[11:15:16] <nikanth>	yes
[11:15:39] <jays>	yes
[11:15:57] <mvyskocil>	So rename astyle.spec.skeleton to astyle.spec and open it in your favourite editor
[11:16:41] <mvyskocil>	The skeleton includes all necessary fields and contains an MIT license
[11:17:13] <mvyskocil>	That means you give everyone permissons to use your spec - it's common for all packages in SUSE
[11:17:28] <mvyskocil>	Now fill a header of spec. The first 4 are obvious
[11:17:45] <mvyskocil>	Name:           astyle
[11:17:49] <mvyskocil>	Version:        1.23
[11:17:52] <mvyskocil>	Release:        1
[11:17:59] <mvyskocil>	Summary:        Source code indenter, formatter, and beautifier for the C, C++, C# and Java
[11:18:47] <mvyskocil>	The Group field must comfors to SUSE packaging Conventions
[11:18:49] <nikanth>	done
[11:18:55] <mvyskocil>	SUSE_Package_Conventions/RPM_Groups
[11:19:24] <mvyskocil>	But from my experience, it's hard to select a right one :)
[11:19:58] <mvyskocil>	In this case I selected
[11:20:00] <mvyskocil>	Group:            Development/Tools/Other
[11:20:01] <nikanth>	Development/Tools/Other ?
[11:20:06] <nikanth>	:)
[11:20:22] <jays>	+1
[11:20:38] <mvyskocil>	I don't know if anyone uses those Groups, so this is not so mandatory
[11:21:00] <nikanth>	can we leave it empty?
[11:21:16] <mvyskocil>	nikanth: unfortunatelly not, it must be filled
[11:21:26] <nikanth>	ok
[11:21:36] <nadvornik>	AFAIK you can browse the packages by groups in YaST
[11:22:05] <mvyskocil>	nadvornik: yes and smart GUI shows it, but I don't know if anyone uses it
[11:22:16] <mvyskocil>	nikanth: Productivity/Other is a safe default :)
[11:22:39] <mvyskocil>	The next field is License, which is important
[11:22:57] <mvyskocil>	see SUSE_Package_Conventions/RPM_Style#1.6._License_Tag
[11:23:20] <mvyskocil>	License is written on
[11:23:20] <mvyskocil>	http://astyle.sourceforge.net/license.html
[11:23:33] <mvyskocil>	or is included in license.html in tarball
[11:23:44] <nikanth>	GPLv3
[11:23:51] <mvyskocil>	And in case of (L)GPL is necessary check a "or any later version" notice.
[11:23:57] <nikanth>	LGPL
[11:24:08] <mvyskocil>	Because GPLv2 and GPLv2 or later are different
[11:24:15] <mvyskocil>	License:        LGPLv3 or later
[11:24:45] <prusnak>	are you sure about the 'or later' ?
[11:25:01] <mvyskocil>	prusnak: I found it in license.html in tarball
[11:25:42] <mvyskocil>	can we continue?
[11:25:59] <titu>	yes
[11:26:09] <nikanth>	yes
[11:26:18] <mvyskocil>	So URL: contains a home page of project
[11:26:29] <mvyskocil>	Url:            http://astyle.sourceforge.net/
[11:27:04] <mvyskocil>	The next Source field contains a name of source tarball, but please type this "magic" line
[11:27:15] <mvyskocil>	Source:         %{name}_%{version}_linux.tar.gz
[11:27:51] <mvyskocil>	The %{name} and %{version} are RPM macros and contains the Name: and Version: fields
[11:28:17] <mvyskocil>	This is useful for updates, because you can change a Version: field only
[11:28:54] <mvyskocil>	The BuildRoot can be skipped, you can use a value from skeleton
[11:29:16] <mvyskocil>	Now you are in section BuildRequires.
[11:29:30] <mvyskocil>	It defines packages necessary for build.
[11:29:42] <titu>	this is important for dependency resolution
[11:30:00] <mvyskocil>	Some packages, like C compiler are installed by default, so you don't need to write them
[11:30:33] <mvyskocil>	As astyle needs c++ compiler, please type
[11:30:38] <mvyskocil>	BuildRequires:  gcc-c++
[11:31:17] <mvyskocil>	This causes an installation of that package to build directory
[11:32:05] <mvyskocil>	The next part is a %description, which contains some brief text about program
[11:32:13] <mvyskocil>	I wrote some few sentences
[11:32:13] <mvyskocil>	from project main page.
[11:33:15] <titu>	this shows up in yast description
[11:33:17] <mvyskocil>	So you have filled all necessary metada of you package.
[11:33:27] <mvyskocil>	titu: yes and in zypper info
[11:33:38] <mvyskocil>	Can I continue?
[11:33:42] <titu>	yes
[11:33:42] <jays>	yes
[11:34:04] <mvyskocil>	There are 4 main steps of packaging process
[11:34:05] <nikanth>	yes
[11:34:15] <mvyskocil>	1.) %prep - prepare for build, that meas unpack, delete unecessary files, apply patches, ...
[11:34:26] <mvyskocil>	2.) %build - build a binary
[11:34:35] <mvyskocil>	3.) %install - install files
[11:34:45] <mvyskocil>	4.) %clean - clean a build root
[11:35:30] <mvyskocil>	The first step is %prep - it contains a line with %setup macro
[11:36:19] <mvyskocil>	It can unpack a source tarball and do some other necessary things, so it's recommended to use it instead of tar
[11:36:38] <mvyskocil>	For astyle please type
[11:36:43] <mvyskocil>	%setup -q -n %{name}
[11:37:05] <titu>	-q ??
[11:38:01] <mvyskocil>	-q means be quiet, so it supress a verbose mode of unpack programs
[11:38:11] <jays>	and "-n %{name}" ?
[11:38:22] <mvyskocil>	-n defines a name of top level directory 
[11:38:31] <prusnak>	... in tarball
[11:38:38] <mvyskocil>	prusnak: yes in tarball
[11:39:28] <prusnak>	%{name}-%{version} is default and majority of FOSS projects use this scheme, but astyle is an exception and has only %{name} as top-level dir in tarball
[11:39:56] <ptr_uzl>	FYI: documentation of %setup macro: http://www.rpm.org/max-rpm-snapshot/s1-rpm-inside-macros.html
[11:40:24] <mvyskocil>	and -q must be a first agrument of %setup
[11:40:48] <mvyskocil>	The next step is a %build 
[11:41:07] <mvyskocil>	It 
[11:41:07] <mvyskocil>	contains the instructions for build. Upstream authors includes
[11:41:07] <mvyskocil>	those instructions to archive, so you must find and read it.
[11:41:41] <mvyskocil>	So astyle/doc/install.html contains a steps for build of astyle under gcc
[11:42:13] <mvyskocil>	So type following lines to %build
[11:42:19] <mvyskocil>	export CXXFLAGS="%{optflags}"
[11:42:24] <mvyskocil>	cd buildgcc
[11:42:29] <mvyskocil>	make release
[11:43:02] <mvyskocil>	The first line exports a standard flags for c++ compiler
[11:43:22] <mvyskocil>	And because astyle don't use autotools, you must export it by hand
[11:43:43] <mvyskocil>	Second two lines are instructions for build
[11:44:03] <mvyskocil>	Can I continue?
[11:44:16] <jays>	these lines look different from other projects? isn't?
[11:44:29] <mvyskocil>	jays: yes, it's project specific
[11:44:32] <jays>	for e.g. we usually do configure, make?
[11:44:53] <jays>	I mean the ones following %build
[11:45:06] <titu>	probably because it doesn't use autotools as he said
[11:45:13] <mvyskocil>	jays: yes, but in rpm world we have %{configure} macro, which makes it easier
[11:45:18] <prusnak>	jays: correct, lots of projects use autotools, thus you use %configure; make in %build
[11:45:48] <jays>	ok, please go ahead..
[11:46:05] <mvyskocil>	yes, astyle uses a hand written set of makefiles -different for g++, different for intel compiler, ...
[11:46:20] <mvyskocil>	The %install section installs a files
[11:47:23] <mvyskocil>	And the destination of a %{buildroot}
[11:47:43] <mvyskocil>	Sorry
[11:47:53] <mvyskocil>	The destination is a %{buildroot}
[11:48:22] <mvyskocil>	It's because packages are not built under root, so we don't have a permissions to use a real /
[11:48:39] <mvyskocil>	In this case type
[11:48:44] <mvyskocil>	install -d -m 0755 %{buildroot}/%{_bindir}
[11:49:14] <mvyskocil>	which creates a <buildroot>/usr/bin
[11:49:36] <mvyskocil>	and
[11:49:39] <mvyskocil>	install -m 0755 bin/%{name} %{buildroot}/%{_bindir}
[11:50:15] <mvyskocil>	This install a bin/astyle to <buildroot>/usr/bin/astyle with executable permissions
[11:50:56] <mvyskocil>	A %clean section should be skipped
[11:51:09] <mvyskocil>	(in this case, you can leave a content from skeleton)
[11:51:32] <mvyskocil>	The last section we must fill is a %files section, which is probably most unpopular
[11:51:40] <mvyskocil>	part of rpm packaging
[11:52:13] <mvyskocil>	In this section you must list every installed file your package contains
[11:52:42] <mvyskocil>	So type
[11:52:44] <mvyskocil>	%defattr(-,root,root,0755)
[11:52:58] <mvyskocil>	%doc doc/astyle.html doc/license.html
[11:53:05] <mvyskocil>	%{_bindir}/%{name}
[11:53:36] <mvyskocil>	The %defattr setup the default persmissions of installed files
[11:53:59] <mvyskocil>	Usage is %defattr(permission of files,owner,group,permission of directories)
[11:54:18] <mvyskocil>	And - means: leave permissions unchanged
[11:54:35] <mvyskocil>	%doc installs a documentation of package. At least a license file is mandatory!
[11:55:06] <mvyskocil>	The last line tells, that you have installed a /usr/bin/astyle
[11:55:35] <mvyskocil>	So we are now ready to build ... 
[11:55:40] <mvyskocil>	Can I continue?
[11:55:57] <nikanth>	yes
[11:56:01] <herby2>	yes
[11:56:01] <titu>	yes
[11:56:08] <mvyskocil>	So type
[11:56:21] <mvyskocil>	osc build openSUSE_11.1 i586
[11:56:39] <mvyskocil>	or anything else if you want to build package for your distribution/architecture
[11:57:04] <mvyskocil>	I use osc build openSUSE_Factory x86_64 for example
[11:57:51] <mvyskocil>	Has anyone a problem?
[11:58:19] <jays>	not an osc project..
[11:58:23] <jays>	error
[11:58:30] <mvyskocil>	jays: sorry, my fault
[11:58:36] <mvyskocil>	I missed that part :(
[11:59:09] <mvyskocil>	So please go back - we need to setup your build project and package
[11:59:53] <mvyskocil>	Please be sure that you have a proper build repository enabled
[12:00:14] <mvyskocil>	So login to build.opensuse.org and click on Home project
[12:00:26] <jays>	ok
[12:00:48] <mvyskocil>	you can see a list of Build Repositories
[12:01:10] <mvyskocil>	You can add a new one using [Add Repository]
[12:02:01] <mvyskocil>	The next step is to add a new package
[12:02:20] <mvyskocil>	It could be done using webclient, but osc is much faster
[12:02:47] <titu>	yeah web client is slower, may be more today
[12:03:00] <jays>	how to add using osc?
[12:03:05] <mvyskocil>	Warning, the next command will execute the vim editor by default
[12:03:25] <mvyskocil>	If you are not familiar with it, you can use another one by
[12:03:34] <mvyskocil>	export EDITOR=mecedit
[12:03:38] <mvyskocil>	for example
[12:03:46] <mvyskocil>	*mcedit
[12:04:05] <mvyskocil>	So type osc meta pkg home:<login> hello -e
[12:04:40] <mvyskocil>	This opens some XML description - you can just delete a line with LONG DESCRIPTION and save it
[12:04:55] <prusnak>	maybe astyle instead of hello ?
[12:05:09] <mvyskocil>	prusnak: thanks, that comes from old example
[12:05:23] <index01d1>	:)
[12:05:52] <mvyskocil>	Now type osc init home:<login> astyle
[12:06:10] <mvyskocil>	and osc metafromspec - it updates a meta informations from specfile
[12:06:51] <mvyskocil>	Are yoy reade?
[12:06:55] <mvyskocil>	you?
[12:07:26] <mvyskocil>	If so, then type the osc build command as was mentioned before
[12:07:36] <titu>	ok
[12:08:05] <mvyskocil>	It creates a build root in /var/tmp/build-root, install all necessary packages and build the rpm package
[12:08:27] <mvyskocil>	If you will get some error, please tell it
[12:09:28] <nadvornik>	mvyskocil: maybe you could retype the commands sequence again in the correct order, for the log ;)
[12:09:39] <nikanth>	mvyskocil, can we do osc co instead of  osc init? What is the difference?
[12:10:34] <mvyskocil>	nikanth: yes, it's basically the same
[12:10:43] <nikanth>	oh, ok
[12:10:59] <mvyskocil>	nikanth: and osc init --help tells You wouldn't normally use this command, so your approach is probably better
[12:11:18] <mvyskocil>	adrianS: can you tell more?
[12:12:21] <mvyskocil>	nadvornik: ok
[12:12:24] <nikanth>	mvyskocil, got it. it does a co and copies current dir/* inside package
[12:12:49] <jays>	hmm.. there seem to be a problem for me with osc metafromspec
[12:13:08] <mvyskocil>	jays: can you copy an error message?
[12:13:20] <jays>	Error: "/home/sjayaraman/work/pkgs/home:sjayaraman/astyle" is not an osc working copy.
[12:13:33] <mvyskocil>	jays: and did you osc init, or osc co?
[12:13:40] <jays>	osc init
[12:14:00] <mvyskocil>	what do you have in .osc/?
[12:14:01] <jays>	also I had added repository from web..
[12:14:13] <nikanth>	osc init home:<name> astyle
[12:14:16] <nikanth>	right?
[12:14:20] <mvyskocil>	nikanth: yes
[12:14:45] <yaloki>	morning *
[12:14:46] <nikanth>	jays, are the files tar and spec copied inside the package dir?
[12:14:57] <nikanth>	else copy them
[12:15:30] <mvyskocil>	the osc working copy has a .ors directory
[12:15:33] <mvyskocil>	.osc
[12:15:40] <nikanth>	my build finished with some rpmlint errors
[12:15:57] <mvyskocil>	nikanth: yes, that is expected, I'll explain them asap
[12:17:13] <mvyskocil>	so are you ready to continue?
[12:17:46] <titu>	yes
[12:17:46] <herby2>	yes
[12:18:00] <mvyskocil>	jays: what about you?
[12:18:50] <mvyskocil>	Well, I'll continue
[12:19:03] <jays>	init doesn't seem to work.. osc checkout worked..
[12:19:22] <mvyskocil>	jays: so metafromspec and build have worked?
[12:19:27] <jays>	osc build
[12:19:27] <jays>	Building astyle.spec for openSUSE_Factory/x86_64
[12:19:27] <jays>	Getting buildinfo from server
[12:19:27] <jays>	wrong repo/arch?
[12:19:53] <prusnak>	jays: have you added openSUSE_Factory repository using webclient ?
[12:20:01] <jays>	nope
[12:20:10] <mvyskocil>	jays: then add it
[12:20:52] <mvyskocil>	jays: but if you want to create a package for your version of openSUSE, then write
[12:21:09] <mvyskocil>	osc build openSUSE_<version> <architecture>
[12:21:22] <jays>	yup, got it.. building on 11.1
[12:22:12] <mvyskocil>	Well, so as you can see, your package has some errors and you must fixed them
[12:22:45] <mvyskocil>	The first one is from rpmlint called executable-docs
[12:22:49] <nadvornik>	da
[12:23:01] <nadvornik>	sorry
[12:23:47] <mvyskocil>	The documentation files in upstream tarball has an executable bit
[12:24:03] <mvyskocil>	But this is not what you want to have in your system installed
[12:24:35] <mvyskocil>	The easiest way how to fix it is use of %defattr
[12:24:58] <mvyskocil>	So change a %files section
[12:25:07] <mvyskocil>	%defattr(0644,root,root,0755)
[12:25:07] <mvyskocil>	%doc doc/astyle.html doc/license.html
[12:25:07] <mvyskocil>	%defattr(-,root,root,0755)
[12:25:07] <mvyskocil>	%{_bindir}/%{name}
[12:25:43] <mvyskocil>	Now all documentation files will have a standard 0644 permissions
[12:26:35] <mvyskocil>	But your package also contains an executable, so the second %defattr is necessary, unless you will get a non executable binary
[12:27:10] <mvyskocil>	The second problem is written above rpmlint error
[12:27:26] <mvyskocil>	I: File is compiled without RPM_OPT_FLAGS
[12:27:58] <mvyskocil>	That means, even if you have specified a standard flags, the astyle didn't use them
[12:28:45] <mvyskocil>	Fixing of this issue is complicated, because it expects some knowledge about make program
[12:29:49] <nikanth>	So do we need to untar and edit the Makefile
[12:30:00] <mvyskocil>	nikanth: yes, but not directly
[12:30:08] <nikanth>	oh
[12:30:13] <gladiac>	?
[12:30:15] <mvyskocil>	rpm expects that you use a pristine tarball
[12:30:35] <gladiac>	to set the optflags you don't have to change the Makefile
[12:30:36] <mvyskocil>	so you cannot unpack the tarball, change something and reapck it
[12:31:10] <mvyskocil>	gladiac: in this case yes, because upstream Makefile don't use a CXXFLAGS variable
[12:31:27] <gladiac>	so it is a handwritten Makefile?
[12:31:36] <mvyskocil>	gladiac: yes
[12:31:47] <gladiac>	omg :)
[12:31:49] <mvyskocil>	The proper way is to create a patch
[12:32:25] <mvyskocil>	I recommend to install a quilt, which makes a patching easier
[12:32:38] <nikanth>	mvyskocil: ok, but without untaring?!
[12:32:52] <prusnak>	gladiac: we needed a non-standard package to show some common packaging pitfalls
[12:33:21] <mvyskocil>	nikanth: we must create a patch
[12:33:32] <mvyskocil>	So please install a quilt if we didn't have it
[12:33:50] <mvyskocil>	Then unpack a tarball using
[12:33:51] <nikanth>	mvyskocil, installed
[12:33:57] <mvyskocil>	quilt setup astyle.spec
[12:34:18] <mvyskocil>	This command executes a %prep of your spec file
[12:34:32] <nikanth>	oh! ok
[12:34:42] <mvyskocil>	Then cd astyle/
[12:34:57] <mvyskocil>	and add a new patch
[12:34:58] <mvyskocil>	quilt new astyle-1.23-cxxflags.patch
[12:35:03] <gladiac>	alias q='quilt' helps to type less ;)
[12:35:57] <mvyskocil>	Then open a Makefile
[12:36:02] <mvyskocil>	quilt edit buildgcc/Makefile
[12:36:41] <mvyskocil>	it uses an EDITOR variable as osc did before
[12:37:00] <mvyskocil>	Now find ind a CBASEFLAGS definition on line 31 and add the $(CXXFLAGS) at the end
[12:37:16] <mvyskocil>	Save and quit from editor
[12:37:36] <mvyskocil>	Then refresh a patch
[12:37:38] <mvyskocil>	quilt refresh
[12:37:50] <mvyskocil>	cd ../
[12:37:56] <mvyskocil>	cp astyle/patches/astyle-1.23-cxxflags.patch .
[12:38:12] <mvyskocil>	and return back to working dir and copy a patch
[12:38:37] <mvyskocil>	Then add it to spec file
[12:39:00] <mvyskocil>	Add a Patch0:         astyle-1.23-cxxflags.patch befind the Source:
[12:39:23] <mvyskocil>	and the following line to the end of %prep
[12:39:31] <mvyskocil>	%patch0 -p1 -b .cxxflags
[12:39:55] <mvyskocil>	This line applies your patch and save a backup copy with suffix .cxxflags
[12:40:18] <mvyskocil>	Now rebuild it
[12:42:06] <prusnak>	titu: herby2: jays: are you following ? any problems ?
[12:42:21] <titu>	i am following
[12:42:40] <titu>	didnt have quilt. so slowed down a bit
[12:42:44] <nikanth>	built
[12:42:44] <jays>	I'm following but not trying it out.. as I have used quilt setup..
[12:43:23] <prusnak>	you can again use %{name} and %{version}  in %Patch0 line (Patch0: %{name}-%{version}-cxxflags.patch)
[12:43:43] <nikanth>	but I get a message "error: failed to stat /sys/kernel/debug: No such file or directory"
[12:44:02] <nikanth>	looks like chroot didnt have debugfs mounted ?!
[12:44:20] <prusnak>	nikanth: was the build successfull ?
[12:44:29] <nikanth>	prusnak, yes
[12:44:38] <mvyskocil>	nikanth: so you can ignore this
[12:44:51] <nikanth>	mvyskocil, ok :)
[12:45:34] <mvyskocil>	prusnak: I don't use macros in patches names, because it breaks vim's Ctrl+W f :)
[12:45:38] <nikanth>	just a warning astyle.x86_64: W: no-changelogname-tag
[12:45:51] <mvyskocil>	nikanth: yes and a changelog part is a last one
[12:45:57] <nikanth>	ok
[12:46:08] <mvyskocil>	so can I continue?
[12:46:27] <titu>	yes
[12:46:32] <nikanth>	yes
[12:46:46] <mvyskocil>	well, this step expects the latest osc and build packages
[12:47:06] <mvyskocil>	please follow those instructions
[12:47:07] <mvyskocil>	CommunityWeek/PackagingSession#Latest_copy_of_osc
[12:47:39] <mvyskocil>	if you don't have an osc 0.117 and build-2009.04.23
[12:48:22] <prusnak>	you can check your versions with "rpm -q build osc"
[12:48:40] <mvyskocil>	For historical reasons SUSE uses a .changes file for tracking of changes, instead of %changelog
[12:49:16] <mvyskocil>	And the latest osc has a support for writing of it
[12:49:32] <mvyskocil>	So type osc vc and you might see something
[12:49:42] <mvyskocil>	  1 -------------------------------------------------------------------
[12:49:42] <mvyskocil>	  2 Thu May  7 15:57:27 CEST 2009 - mvyskocil@suse.cz
[12:49:42] <mvyskocil>	  3
[12:49:42] <mvyskocil>	  4 -
[12:49:42] <mvyskocil>	  5
[12:50:23] <nikanth>	yes
[12:50:43] <henne>	its more then historical reasons. %changelog is not exact enough :)
[12:51:08] <mvyskocil>	there is some rules how to write a changelog
[12:51:10] <mvyskocil>	SUSE_Package_Conventions/Changelogs
[12:51:20] <mvyskocil>	henne: yes, that's true
[12:51:34] <mvyskocil>	In our case just write something like
[12:51:42] <mvyskocil>	Initial packaging of astyle 1.23
[12:51:46] <mvyskocil>	and save a file
[12:52:38] <mvyskocil>	Now  you are ready to commit your package into OBS
[12:53:00] <mvyskocil>	Add all files to version control
[12:53:01] <mvyskocil>	osc add astyle_1.23_linux.tar.bz2 astyle.spec astyle.changes astyle-1.23-cxxflags.patch
[12:53:16] <mvyskocil>	And commit them to BuildService
[12:53:21] <mvyskocil>	osc commit -m "Initial packaging of astyle 1.23"
[12:54:39] <mvyskocil>	Everyone commited his package to OBS?
[12:55:28] <titu>	will do it soon
[12:55:43] <titu>	i am working from a slow connection
[12:55:52] <mvyskocil>	titu: ok, not a problem
[12:57:07] <nikanth>	done
[12:57:23] <mvyskocil>	So that's all - now you have an rpm package for astyle, which conforms a SUSE packaging conventions
[12:57:47] <mvyskocil>	You know how to fix some problems in upstream code
[12:58:32] <prusnak>	it is best to contact upstream and to send them your patches/fixes
[12:58:40] <mvyskocil>	So I think that a Packaging Session is on the end
[12:58:47] <titu>	what changes are needed if we use the web client? in cases like mine, downloading source code takes long, so I prefer providing web client with the download url.
[12:59:19] <adrianS>	that will get supported also with osc quite soon
[12:59:22] <mvyskocil>	So if you have any question regarding your packages, feel free to ask
[12:59:25] <adrianS>	well, some weeks
[12:59:45] <nikanth>	mvyskocil, Thank you very much
[12:59:54] <herby2>	thanks
[13:00:05] <titu>	mvyskocil: thank you
[13:00:17] <nikanth>	thanks a lot, everyone
[13:00:17] Topic	You set the channel topic to "Communication is important. Talk to people. | Build_Service/News | Build_Service/Tips_and_Tricks | paste to http://p.caboo.se/ or http://rafb.net/paste/ | SNAFU".
[13:01:01] <mvyskocil>	nikanth, herby2, titu: thanks for your interest