LinuxQuestions.org
LinuxAnswers - the LQ Linux tutorial section.
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware
User Name
Password
Slackware This Forum is for the discussion of Slackware Linux.

Notices

Reply
 
Search this Thread
Old 06-13-2007, 07:37 AM   #1
matters
Member
 
Registered: May 2007
Distribution: Slackware
Posts: 281

Rep: Reputation: Disabled
problem building evms package via src2pg


Im trying to build package from source using src2pkg i find it neccessary and it gives me error i installed lastest vesion with installwatch.

Heres how i do it :
Code:
src2pkg -A -D -H -VV -e='--with-static-glib' -i='make make install ldconfig' -p='/usr/src' evms-2.5.5.tar.gz
And heres the log:

Code:
make[1]: Leaving directory `/tmp/evms-2.5.5-src-1/tests'
make[1]: Entering directory `/tmp/evms-2.5.5-src-1/include'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/tmp/evms-2.5.5-src-1/include'
make[1]: Entering directory `/tmp/evms-2.5.5-src-1/po'
make evms.pot-stamp
make[2]: Entering directory `/tmp/evms-2.5.5-src-1/po'
sed -e '/^#/d' remove-potcdate.sin > t-remove-potcdate.sed
mv t-remove-potcdate.sed remove-potcdate.sed
make /tmp/evms-2.5.5-src-1/po/evms.pot-update
make[3]: Entering directory `/tmp/evms-2.5.5-src-1/po'
make[3]: *** No rule to make target `/tmp/evms-2.5.5-src-1/po/evms.pot-update'.  Stop.
make[3]: Leaving directory `/tmp/evms-2.5.5-src-1/po'
make[2]: *** [evms.pot-stamp] Error 2
make[2]: Leaving directory `/tmp/evms-2.5.5-src-1/po'
make[1]: *** [all-yes] Error 2
make[1]: Leaving directory `/tmp/evms-2.5.5-src-1/po'
make: *** [all] Error 1
ERROR! Compiling source code has failed.
This usually happens because of missing libraries, or
badly written Makefiles or configure scripts.
Sorry! No Dependency or Requirements information found.

src2pkg FAILURE in compile_source
Where the problem might be ?

Thanks!
 
Old 06-14-2007, 02:18 AM   #2
gnashley
Amigo developer
 
Registered: Dec 2003
Location: Germany
Distribution: Slackware
Posts: 4,758

Rep: Reputation: 468Reputation: 468Reputation: 468Reputation: 468Reputation: 468
First, are you using the latest src2pkg-1.3?

A couple of things I see:
-i='make make install ldconfig'
should probably be the default:
-i='make install'
Even this is wrong:
-i='make make install'
And why do you have ldconfig there? When 'make' runs it will see everything that follows as a Makefile rule and not find any rule called ldconfig.

However, your build is still not reaching that point -it's crapping out during compile_source over pot errors. Many times this can be overcome by passing either -e='--disable-nls' or -e='--with included-gettext'

Another thing which you need to watch is the prefix you are using which will probably try to install the program to /usr/src/bin which is not good. At least use -p='--prefix=/usr/src/evms' although I don't see why you'd want to put the program in such a place. Why not just use the regular prefix of /usr or if you really want to keep the thing apart from other bins use --prefix=/opt/evms or --prefix=/usr/local. Remember that most installations will create a 'bin' sub-directory under whatever prefix you give.

As for running ldconfig, you don't need that in the build script -it will be run by installpkg when you install the package.

To make things easier and more repeatable, use the -N option instead of the -A option. This will get you a script to work with from the start which you can edit until you get things working:
src2pkg -N -D -e='--with-static-glib' evms-2.5.5.tar.gz

I just downloaded the sources and had no trouble building with --disable-nls (using --with-included-gettext made the build stop even sooner).
It might be a good idea to use the debian patch as it will give you some extar documentation and some init scripts which you can modify slightly for use with Slackware. I thought the debian patch would probably fix the nls issue but surprisingly it doesn't. You might also check the evms sourceforge site for any new patches they have there.

Here's a (slightly abbreviated) src2pkg script which should work.
#!/bin/bash
## src2pkg script for: evms
SOURCE_NAME='evms_2.5.5.orig.tar.gz'
NAME='evms'
VERSION='2.5.5'
ARCH='i486'
BUILD='1'
PRE_FIX='/usr'
# Any extra options go here
EXTRA_CONFIGS='--with-static-glib --disable-nls'
# if you've gotten the debian patch just place in the CWD and use this
# PATCHLIST='evms_2.5.5-23.diff.gz'
# STD_FLAGS='-O2 -march=i486 -mtune=i686'

# Get the functions and configs
source /usr/libexec/src2pkg/FUNCTIONS ;

do_all_processes
 
Old 06-14-2007, 09:01 AM   #3
matters
Member
 
Registered: May 2007
Distribution: Slackware
Posts: 281

Original Poster
Rep: Reputation: Disabled
Thanks! It works like a charm!

Just a question, you meant by saying for every diff app when using --distable-nls that will bypass, or --with-gettext library,

can you tell me what gettext library contains usually, what happens when u use that directive that will bypass src2pkg?


Another what i want to accomplish is this: Now when i got evms up and running, i would like to get my new customized kernel(wich is now patched for evms)and compiled again to support evms to put inside slack11 dvd so i can call it from dvd to boot with it.


And then also that installer recognize customized kernel so i can install it.

but wondering how properly to build using src2pkg because when using generic for example when u install it it immediately copy config, vmlinuz into /boot... how to accomplish this when building customized kernel?


So that way i would have evms kernel support from slackware dvd

Hope im not asking too much

Thanks!
 
Old 06-14-2007, 09:28 AM   #4
matters
Member
 
Registered: May 2007
Distribution: Slackware
Posts: 281

Original Poster
Rep: Reputation: Disabled
Maybe i had to add a new thread about that but i thought since its evm related that it will be okay to post it here.

If moderator think that i should of done so, warn me and ill post it in another thread!

Last edited by matters; 06-14-2007 at 09:32 AM.
 
Old 06-14-2007, 01:29 PM   #5
gnashley
Amigo developer
 
Registered: Dec 2003
Location: Germany
Distribution: Slackware
Posts: 4,758

Rep: Reputation: 468Reputation: 468Reputation: 468Reputation: 468Reputation: 468
When you see builds failing while working in the source subdirectories po or intl it means the translation/internationalization files are messed up. There are two ways to deal with this usually:

Using --with-included-gettext fixes the problem for some sources which are just having problems with your gettext and gettext-tools version.

Using --disable-nls (sometimes with --without-intl) simply disables the generation of those files. Sources like this are usually the result of faulty translation files, stale dep/autoconf files, faulty Makefile rules, etc.
If you see intl or po in the last errors try the above.
As for packaging a kernel, you'll need to use a little manual code in a src2pkg build script to do that. I haven't done this so far but I think it can be done really easy. I'm working on some bootstrap level scripts so I'll be looking at this soon.

BTW, you may need to manually put evms in $PKG_DIR/bin instead of $PKG_DIR/usr/bin if it needs to be running before /usr is mounted during init. As mentioned, the debian patch contains some .init scripts which can be (renamed) and used in /etc/rc.d. Check the init scripts for references to lvm -you may have to edit the scripts to get this running early during bootup as simply putting it in rc.local might be too late.
 
Old 06-14-2007, 03:02 PM   #6
matters
Member
 
Registered: May 2007
Distribution: Slackware
Posts: 281

Original Poster
Rep: Reputation: Disabled
Ill check that, however this must help later, when everything is configured properly

cons is that with evms kernel must be patched in order to get evms to work, and thats my problem.
im trying to accomplish so because i cant create lvm initrd with lvmcreate_initrd, it gives an error.

Noone answered so far where the problem might be,

About kernel it would be easy to do so if i have understanding of how kernel works, i dont have enough knowledge about kernel functionality, as mentioned in my previous threads about putting vgscan on the beggining i meant first line after you press enter on grub since i dont know hows that presented. what Zmygrel told me about trying in linuxrc to put it, it dosent work since from my understanding mkinitrd under slackware is for ext3 etc but not lvm, and initrd loads far after first line after beggining(pressing enter on lilo/grub).


For kernel packaging code: Now for instance how to package it when i already decompressed dir and patched, and src2pkg is going to create package when you have compressed file with rules inside... can src2pkg support decompressed dir source to build package from (i hope i didnt miss that) ?

Or i normally after patching must compress everything again and give directives for packaging ?

Then since in compiling custom kernel we do make modules_install and for instance in generic to load modules is separated package?
for my modules i have my own rc.modules script to run so i dont understand how to do it when it comes to packaging ?


Where i need to put directives, after installation to copy bzImage and others into /boot for instance ?

It killing me since custom kernel if u compile from /usr/src kernel wont boot up, is there a way to trick that ?


since i dont know alot about your app yet but looks promising and it helped me so far its very good tool.

Thats i want to learn first

Thanks!

Last edited by matters; 06-14-2007 at 03:41 PM.
 
Old 06-15-2007, 02:09 AM   #7
gnashley
Amigo developer
 
Registered: Dec 2003
Location: Germany
Distribution: Slackware
Posts: 4,758

Rep: Reputation: 468Reputation: 468Reputation: 468Reputation: 468Reputation: 468
It's not that I can't, but I won't help you with the other problems of creating an initrd and integrating your custom kernel as a standard install option using the Slackware installer. That subject is a completely different matter -but it does require you to do some rather hefty work, I think, since you need entries in the Standard Slackware init scripts for starting up this service.
The kernel modules pose a similar problem -Slackware packages modules separately from the kernels, so if your patched kernel uses mogules you've got to work out how to include them in/around the kernel-modules package. I'd suggest you compile the evms features statically,not as modules in order to avoid that part of the problem.

As for building and packaging a patched kernel -src2pkg will apply any patches it finds automatically right after unpacking the raw sources. You don't have to do anything except place the patch or diff file in the same directory where you are building(or in a subir of the current directory named 'patches'.

Here's an example src2pkg script for building your kernel:

Code:
#!/bin/bash
## src2pkg script for: 	linux kernel
## src2pkg-1.4
## src2pkg Copyright 2005-2007 Gilbert Ashley <amigo@ibilio.org>

SOURCE_NAME='linux-2.4.34.2.tar.bz2'

# to make building various kernel versions like ide scsi, etc
KERNEL_LABEL=ide
# 'matters' would probably use:
# KERNEL_LABEL=evms

ALT_NAME="kernel-$KERNEL_LABEL"
ARCH='i486'
BUILD='1'

# Get the functions and configs
source /usr/libexec/src2pkg/FUNCTIONS ;

# do_all_processes can substitute these 16 steps:

pre_process
find_source
make_dirs
unpack_source
fix_source_perms

# configure_source
# compile_source
# fake_install

# rename and remove any existing .config file
cp -a $SRC_DIR/config-default
rm -f $SRC_DIR/.config
# copy your choice of config file into the sources
if [[ -e $CWD/config-$KERNEL_LABEL-$VERSION ]] ; then
   cp -a $CWD/config-$KERNEL_LABEL-$VERSION $SRC_DIR/.config
elif [[ -e $CWD/config-$KERNEL_LABEL ]] ; then
     cp -a $CWD/config -$KERNEL_LABEL $SRC_DIR/.config
elif [[ -e $CWD/config ]] ; then
     cp -a $CWD/config $SRC_DIR/.config
else
     cp -a $SRC_DIR/config-default $SRC_DIR/.config
fi

cd $SRC_DIR ;
# configure the sources with the new .config file
# Be sure to use only one of these
# for kernel-2.4 only:
make oldconfig && make dep && make bzImage
# for kernel-2.6.x comment out the above line
# and use this instead:
# make oldconfig && make

mkdir -p $PKG_DIR/boot
cp -a $SRC_DIR/arch/i386/boot/bzImage $PKG_DIR/boot/vmlinuz-$KERNEL_LABEL-$VERSION
cp -a $SRC_DIR/System.map $PKG_DIR/boot/System.map-$KERNEL_LABEL-$VERSION
cp -a $SRC_DIR/.config $PKG_DIR/boot/config-$KERNEL_LABEL-$VERSION
chmod 644 $PKG_DIR/boot/*

fix_pkg_perms
strip_bins
# don't create docs
# create_docs
compress_man_pages
make_description
make_doinst
make_package
post_process
In order to get the kernel configured properly you must supply a the .config file which is copied into the sources. Running 'make oldconfig' is what does the configuration without any interactivity.
To produce your own version of the .config, you need to manually unpack the sources and patch them first. then run 'make menuconfig' or make 'xconfig' or 'make config' and choose the kernel options you want(including your new evms options). When finished configuring save the configuration file(remember it's a 'hidden' file named .config inside the sources. Make a copy of this .config file name either config, config-$KERNEL_LABEL(config-evms) or config-$KERNEL_LABEL-$VERSION(config-evms-2.4.34.2) and place the copy in the same directory where you are running src2pkg.

As for using src2pkg to build sources which are already unpackacked, you can certainly do that by using the included trackinstall program .but I do not recommend that you do so in this case as it leaves some critical steps of the process undocumented.

There are many threads here on the forum which will help you to create your custom installation CD/DVD, once you get that far along. You should study carefully the build scripts and doinst.sh files for Slackware kernels and modules packages to better understand how to make your own kernel fit in without trashing some standard Slackware packages or boot routines.
I don't want to discourage you, but you are in pretty deep and are going to learn a lot more than you think by the time you get done with your project.
 
Old 06-15-2007, 04:57 AM   #8
matters
Member
 
Registered: May 2007
Distribution: Slackware
Posts: 281

Original Poster
Rep: Reputation: Disabled
First of all, thanks for all the effort! It would be very ungratefull to ask you for even how to add into installer etc

I didnt ask you all that much, however your recent post for this answered regarding src2pkg and kernel on all of my questions. You answered even more than i asked, i assumed that part already! But its all good since you just confirmed

That means that we are on the same page since your typing is what i was thinking, that i have to do already.

About creating initrd, thats no needed, i already understand that part xcept for lvmcreate_initrd dosent work at all no matter what, and im wondering what that means, i have already opened thread about that and no answers about it as of yet.


Thats why i want this evsm and kernel up and running.

If ill have more questions, ill post new thread about it. regarding src2pkg and evms building since its fixed its all good!

About discouraging, its great, as long as we learn its not a headache, and only that way we learn things

Thanks once again!

Last edited by matters; 06-15-2007 at 07:13 AM.
 
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Package building problem Thilips Red Hat 1 02-08-2007 09:57 AM
need help building a nethack package bl0tt0 Slackware 1 10-07-2006 08:33 PM
need instructions on package building kinzlaw Linux - General 1 05-27-2006 05:00 PM
building a slack package? mrchaos Slackware 21 06-29-2005 11:07 AM
package building dockpunk Slackware 10 03-23-2005 09:46 AM


All times are GMT -5. The time now is 05:38 AM.

Main Menu
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
identi.ca: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration