I am looking into the building of a repository. At least for some scripts I have written. The results can be looked at at http://www.houghi.org/suse/10.0/ and RPMS being the repo. Best don't use it as a fixed point, because it will probably be moving a lot. Only three programs till now that I have made into RPMs thusfar. makeSUSEdvd (obviously), mx is another script I wrote and grepm, something I did not write myself. At this moment I am concentrating on the making of an RPM and placing all correctly. So I take just scripts and not something that needs compiling. One step at a time. To do all this, I wrote a script. It would not be me if I would not do something with a script. :-) This is how I (together with the script) work. I copy Development/skeleton/Latest to Development/script/Latest and change the files inside Development/script/Latest to whatever I like. No yet all very sofisticated, but the basis of how I think I should work is there. Now my question. Could somebody look at it and tell me wether this is the good direction or if I amaking an arse of myself. I rather have it told to me when I am at the beginning, then when I am at the end. Changing things now is easy. Both at the way of working as well as the spec files, donated by somebody else, I must say. I know there are a lot of HOWTO's and README's and I still would like an honest opinion. I will treat any criticism as positive. Again, if you use it as a fixed instalation source, don't come crying if it is gone in a few hours, days, weeks or whatever. :-) houghi -- Quote correct (NL) http://www.briachons.org/art/quote/ Zitiere richtig (DE) http://www.afaik.de/usenet/faq/zitieren Quote correctly (EN) http://www.netmeister.org/news/learn2quote.html
Hi, On Tuesday, October 11, 2005 at 06:14:04, houghi wrote:
I am looking into the building of a repository. At least for some scripts I have written. The results can be looked at at http://www.houghi.org/suse/10.0/ and RPMS being the repo. Best don't use it as a fixed point, because it will probably be moving a lot.
Only three programs till now that I have made into RPMs thusfar. makeSUSEdvd (obviously), mx is another script I wrote and grepm, something I did not write myself. At this moment I am concentrating on the making of an RPM and placing all correctly. So I take just scripts and not something that needs compiling. One step at a time.
To do all this, I wrote a script. It would not be me if I would not do something with a script. :-) This is how I (together with the script) work. I copy Development/skeleton/Latest to Development/script/Latest and change the files inside Development/script/Latest to whatever I like. No yet all very sofisticated, but the basis of how I think I should work is there.
You should think about using svn/cvs/whatever if you work on a checkout base anyway.
Now my question. Could somebody look at it and tell me wether this is the good direction or if I amaking an arse of myself. I rather have it told to me when I am at the beginning, then when I am at the end. Changing things now is easy.
Ive just had a quick glance at the specs. They are very basic anyway beeing noarch and dealing only with scripts. Ive just noticed one small thing your spec contributor or you should read man install You often do mkdir -p $RPM_BUILD_ROOT/%{_bindir} install -m 755 %{name} $RPM_BUILD_ROOT/%{_bindir} You could do install -D -m 755 %{name} $RPM_BUILD_ROOT/%{_bindir}/%{name} Like i said, everything else is too basic to see the direction youre heading... Henne -- Henne Vogelsang, http://hennevogel.de "To die. In the rain. Alone" Ernest Hemingway
On Tue, Oct 11, 2005 at 09:26:58PM +0200, Henne Vogelsang wrote:
You should think about using svn/cvs/whatever if you work on a checkout base anyway.
Will loook into that. As I said, one step at a time. :-) <snip>
You could do
install -D -m 755 %{name} $RPM_BUILD_ROOT/%{_bindir}/%{name}
Thanks.
Like i said, everything else is too basic to see the direction youre heading...
Ok, at least no real problems (yet. :-) Thanks. houghi -- Quote correct (NL) http://www.briachons.org/art/quote/ Zitiere richtig (DE) http://www.afaik.de/usenet/faq/zitieren Quote correctly (EN) http://www.netmeister.org/news/learn2quote.html
On Tue, Oct 11, 2005 at 09:26:58PM +0200, Henne Vogelsang wrote:
Like i said, everything else is too basic to see the direction youre heading...
On an other level. Would it be possible to place a `standard` example at http://www.opensuse.org/SUSE_Build_Tutorial#Examples Something that would just require a configure, make and make install in real life. houghi -- Quote correct (NL) http://www.briachons.org/art/quote/ Zitiere richtig (DE) http://www.afaik.de/usenet/faq/zitieren Quote correctly (EN) http://www.netmeister.org/news/learn2quote.html
Someone knows where a can find a script to do patch.rpms ? [],s As informacoes contidas neste e-mail e nos arquivos anexados podem ser informacoes confidenciais ou privilegiadas. Caso voce nao seja o destinatario correto, apague o conteudo desta mensagem e notifique o remetente imediatamente.
On Tue, Oct 11, 2005 at 05:45:31PM -0300, Fernando Lunardelli wrote:
Someone knows where a can find a script to do patch.rpms ?
There is no public version of this program. You can however create delta rpms ... The tools can be found in the "mkdeltarpm" RPM. Ciao, Marcus
On Wed, 12 Oct 2005, Marcus Meissner wrote:
On Tue, Oct 11, 2005 at 05:45:31PM -0300, Fernando Lunardelli wrote:
Someone knows where a can find a script to do patch.rpms ?
There is no public version of this program.
You can however create delta rpms ... The tools can be found in the "mkdeltarpm" RPM.
s/mkdeltarpm/deltarpm/ Regards Christoph
Hi, On Tuesday, October 11, 2005 at 22:27:47, houghi wrote:
On Tue, Oct 11, 2005 at 09:26:58PM +0200, Henne Vogelsang wrote:
Like i said, everything else is too basic to see the direction youre heading...
On an other level. Would it be possible to place a `standard` example at http://www.opensuse.org/SUSE_Build_Tutorial#Examples Something that would just require a configure, make and make install in real life.
Thats pretty hard to do. Because once youre switching from packaging scripts to packaging real binarys that you create during build you add a whole new level to the process. In your current spec you really only use 1.) Description 2.) %install 3.) %files But the most complicated section of an spec is mostly the %build section. Plus once youre building something in %build you have to make sure about the build environment. So there is no standard spec that is usefull i think... Henne -- Henne Vogelsang, http://hennevogel.de "To die. In the rain. Alone" Ernest Hemingway
On Tue, Oct 11, 2005 at 10:46:19PM +0200, Henne Vogelsang wrote:
On an other level. Would it be possible to place a `standard` example at http://www.opensuse.org/SUSE_Build_Tutorial#Examples Something that would just require a configure, make and make install in real life.
Thats pretty hard to do. Because once youre switching from packaging scripts to packaging real binarys that you create during build you add a whole new level to the process. In your current spec you really only use
I do not mean an example based on what I have. What I want to say is there are now examples for KDE, GNOME and PERL. It would be nice to have a "normal" one.
But the most complicated section of an spec is mostly the %build section. Plus once youre building something in %build you have to make sure about the build environment. So there is no standard spec that is usefull i think...
If that is the case, the examples on http://www.opensuse.org/SUSE_Build_Tutorial#Examples should be removed. houghi -- Quote correct (NL) http://www.briachons.org/art/quote/ Zitiere richtig (DE) http://www.afaik.de/usenet/faq/zitieren Quote correctly (EN) http://www.netmeister.org/news/learn2quote.html
On Tue, 11 Oct 2005, Henne Vogelsang
Hi,
On Tuesday, October 11, 2005 at 22:27:47, houghi wrote:
On an other level. Would it be possible to place a `standard` example at http://www.opensuse.org/SUSE_Build_Tutorial#Examples Something that would just require a configure, make and make install in real life.
Thats pretty hard to do. Because once youre switching from packaging scripts to packaging real binarys that you create during build you add a whole new level to the process. In your current spec you really only use
1.) Description
Which, at present, doesn't actually have anything there to describe what the package does. I had forgotten to mention to Houghi that, as the author, he was best placed to add a package description himself.
2.) %install 3.) %files
But the most complicated section of an spec is mostly the %build section. Plus once youre building something in %build you have to make sure about the build environment.
This is where I would use autoconf, automake and, if required, libtool. Most of the RPMs I build have a %build consisting of basically the following: %build ./configure <any options that are required> make So far, with those I've built[0], that seems to have sufficed.
So there is no standard spec that is usefull i think...
Not a single all-encompassing one, I would agree, as it would probably include unnecessary options[1]. Slightly more specific examples could be useful. E.g. one showing how to add new libraries, or maybe one for building a package containing binary applications. As opensuse.org already has one example each for KDE, Gnome and Perl, a few new ones may come in handy for those just starting out and wanting to learn. [0] Nothing too complex as yet. I haven't found anything that's fairly complex, something I want, and that isn't available as either a SUSE RPM or has a spec file included so I can build an RPM. [1] like calling ldconfig in %post and %postun when not installing libraries. Regards, David Bolt -- Member of Team Acorn checking nodes at 50 Mnodes/s: http://www.distributed.net/ AMD 1800 1Gb WinXP/SuSE 9.3 | AMD 2400 160Mb SuSE 8.1 | AMD 2400 256Mb SuSE 9.0 AMD 1300 512Mb SuSE 9.0 | Falcon 14Mb TOS 4.02 | STE 4Mb TOS 1.62 RPC600 129Mb RISCOS 3.6 | A3010 4Mb RISCOS 3.11 | A4000 4Mb RISCOS 3.11
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 David Bolt wrote:
On Tue, 11 Oct 2005, Henne Vogelsang
wrote:- On an other level. Would it be possible to place a `standard` example at http://www.opensuse.org/SUSE_Build_Tutorial#Examples Something that would just require a configure, make and make install in real life. Thats pretty hard to do. Because once youre switching from packaging
On Tuesday, October 11, 2005 at 22:27:47, houghi wrote: scripts to packaging real binarys that you create during build you add a whole new level to the process. In your current spec you really only use
I second what Henne wrote here. Again.. participating is important, thanks for being interested in the topic, but do believe that it's not an easy task. There are no such things as GUI builders, automatic spec file creators, a one spec for all.. (I know you didn't mention GUI builders, but I had a discussion about that lately) Basically, all the tool support you can get is from a few nice templates, a few scripts that easy the task of building in your environment (chroots, whatever) + uploading and similar stuff, and an editor with some support for writing spec files. Personally, I use GNU Emacs + its rpm-mode. But others would be vim or kate (though they offer fewer capabilities for editing spec files). ...
But the most complicated section of an spec is mostly the %build section. Plus once youre building something in %build you have to make sure about the build environment.
Indeed. Requires and BuildRequires isn't trivial either, if you want to make your package "portable" across SUSE Linux versions (like I do) and give users more helpful messages when they're missing a dependency and don't use YaST2 to install a package (e.g. say it's missing openssl instead of libcrypto.so.x).
This is where I would use autoconf, automake and, if required, libtool. Most of the RPMs I build have a %build consisting of basically the following:
%build ./configure <any options that are required> make
Actually like this: - --->8---------------------------------------------- %prep %setup -q %{?suse_update_libdir:%{suse_update_libdir}} %{?suse_update_config:%{suse_update_config -f}} CFLAGS="%{optflags}" \ CXXFLAGS="%{optflags}" \ ./configure \ --prefix="%{_prefix}" \ --libdir="%{_libdir}" \ --sysconfdir="%{_sysconfdir}" \ --mandir="%{_mandir}" %build %__make - --->8----------------------------------------------
So far, with those I've built[0], that seems to have sufficed.
Did you try building/running them on x86_64 ? ;)
So there is no standard spec that is usefull i think...
Indeed.
Not a single all-encompassing one, I would agree, as it would probably include unnecessary options[1]. Slightly more specific examples could be useful. E.g. one showing how to add new libraries, or maybe one for building a package containing binary applications. As opensuse.org already has one example each for KDE, Gnome and Perl, a few new ones may come in handy for those just starting out and wanting to learn.
My templates are here:
http://linux01.gwdg.de/~pbleser/files/rpm/templates/
They're pretty much state-of-the-art ;))).
cheers
- --
-o) Pascal Bleser http://linux01.gwdg.de/~pbleser/
/\\
On 2005-10-12 00:57:41 +0200, Pascal Bleser wrote:
CFLAGS="%{optflags}" \ CXXFLAGS="%{optflags}" \ ./configure \ --prefix="%{_prefix}" \ --libdir="%{_libdir}" \ --sysconfdir="%{_sysconfdir}" \ --mandir="%{_mandir}"
%configure it includes setting the CFLAGS and the proper params with the configure params (paths) darix
* Marcus Rueckert
On 2005-10-12 00:57:41 +0200, Pascal Bleser wrote:
CFLAGS="%{optflags}" \ CXXFLAGS="%{optflags}" \ ./configure \ --prefix="%{_prefix}" \ --libdir="%{_libdir}" \ --sysconfdir="%{_sysconfdir}" \ --mandir="%{_mandir}"
%configure
it includes setting the CFLAGS and the proper params with the configure params (paths)
And a lot more: %configure \ CFLAGS="${CFLAGS:-%optflags}" ; export CFLAGS ; \ CXXFLAGS="${CXXFLAGS:-%optflags}" ; export CXXFLAGS ; \ FFLAGS="${FFLAGS:-%optflags}" ; export FFLAGS ; \ ./configure --host=%{_host} --build=%{_build} \\\ --target=%{_target_platform} \\\ --program-prefix=%{?_program_prefix} \\\ --prefix=%{_prefix} \\\ --exec-prefix=%{_exec_prefix} \\\ --bindir=%{_bindir} \\\ --sbindir=%{_sbindir} \\\ --sysconfdir=%{_sysconfdir} \\\ --datadir=%{_datadir} \\\ --includedir=%{_includedir} \\\ --libdir=%{_libdir} \\\ --libexecdir=%{_libexecdir} \\\ --localstatedir=%{_localstatedir} \\\ --sharedstatedir=%{_sharedstatedir} \\\ --mandir=%{_mandir} \\\ --infodir=%{_infodir} -- Mads Martin Joergensen, http://mmj.dk "Why make things difficult, when it is possible to make them cryptic and totally illogical, with just a little bit more effort?" -- A. P. J.
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Mads Martin Joergensen wrote:
* Marcus Rueckert
[Oct 12. 2005 01:39]: On 2005-10-12 00:57:41 +0200, Pascal Bleser wrote:
CFLAGS="%{optflags}" \ CXXFLAGS="%{optflags}" \ ./configure \ --prefix="%{_prefix}" \ --libdir="%{_libdir}" \ --sysconfdir="%{_sysconfdir}" \ --mandir="%{_mandir}" %configure
it includes setting the CFLAGS and the proper params with the configure params (paths)
And a lot more:
%configure \ CFLAGS="${CFLAGS:-%optflags}" ; export CFLAGS ; \ CXXFLAGS="${CXXFLAGS:-%optflags}" ; export CXXFLAGS ; \ FFLAGS="${FFLAGS:-%optflags}" ; export FFLAGS ; \ ./configure --host=%{_host} --build=%{_build} \\\ --target=%{_target_platform} \\\ --program-prefix=%{?_program_prefix} \\\ --prefix=%{_prefix} \\\ --exec-prefix=%{_exec_prefix} \\\ --bindir=%{_bindir} \\\ --sbindir=%{_sbindir} \\\ --sysconfdir=%{_sysconfdir} \\\ --datadir=%{_datadir} \\\ --includedir=%{_includedir} \\\ --libdir=%{_libdir} \\\ --libexecdir=%{_libexecdir} \\\ --localstatedir=%{_localstatedir} \\\ --sharedstatedir=%{_sharedstatedir} \\\ --mandir=%{_mandir} \\\ --infodir=%{_infodir}
Ok, you won me on that one, I'll be moving over to %configure from now on.
cheers
- --
-o) Pascal Bleser http://linux01.gwdg.de/~pbleser/
/\\
participants (9)
-
Christoph Thiel
-
David Bolt
-
Fernando Lunardelli
-
Henne Vogelsang
-
houghi
-
Mads Martin Joergensen
-
Marcus Meissner
-
Marcus Rueckert
-
Pascal Bleser