LinuxQuestions.org
Latest LQ Deal: Latest LQ Deals
Home Forums Tutorials Articles Register
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 02-07-2008, 02:59 AM   #61
Shingoshi
Member
 
Registered: Oct 2006
Location: Cochise County, Arizona
Distribution: Gentoo-AMD64 / Slackware64-Current
Posts: 474
Blog Entries: 28

Rep: Reputation: 34
It's not really a problem with pkgconfig.


It's just that because some packages wind up with BOTH /usr/lib64 AND /usr/lib, they both have pkgconfig directories in them. And they're likely identical to each other. It's just that /usr/lib, is specifically for 32bit code in Slamd64.

But I probably ought to check and make sure. Now I just have to remember a package that that happened with during the build. Maybe I'll just wait until it happens again. But if you add that code, it never will. That would be better, since this applies to all users having 64bit systems.

Shingoshi
 
Old 02-07-2008, 01:27 PM   #62
Shingoshi
Member
 
Registered: Oct 2006
Location: Cochise County, Arizona
Distribution: Gentoo-AMD64 / Slackware64-Current
Posts: 474
Blog Entries: 28

Rep: Reputation: 34
Trying to compile your source for PDV.

This is what happens when I attempt to compile the Payload Delivery Vehicle using src2pkg:

/tmp/cce0I8rK.o: In function `cmpspecandwidgets':
util.c:(.text+0x574): undefined reference to `g_pdvspec'
util.c:(.text+0x579): undefined reference to `cmpspec'
util.c:(.text+0x585): undefined reference to `freespecmembers'
/tmp/cce0I8rK.o: In function `statusmsg':
util.c:(.text+0x680): undefined reference to `g_statusw'
util.c:(.text+0x6a6): undefined reference to `g_statusw'
util.c:(.text+0x6b2): undefined reference to `XmTextSetString'
collect2: ld returned 1 exit status
make[2]: *** [util.o] Error 1
make[2]: Leaving directory `/usr/src/panoplyx/tmp/pdv-1.5.1-src-1panoplyx/X11'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/src/panoplyx/tmp/pdv-1.5.1-src-1panoplyx'
make: *** [all-recursive-am] Error 2
ERROR! Compiling source code has failed.
This usually happens because of missing libraries, or
badly written Makefiles or configure scripts.
No Requires information found in pdv.spec.

src2pkg FAILURE in compile_source

Since it's your source, I figured your the best person to ask about this. I see that the complaint is about "util.o". I don't know if this is supposed to be part of the libxml2 or not. I also found something about "xar" in Google. I must be missing a dependency, I just don't know what it is.

Shhingoshi

Last edited by Shingoshi; 02-07-2008 at 01:30 PM.
 
Old 02-07-2008, 01:33 PM   #63
Shingoshi
Member
 
Registered: Oct 2006
Location: Cochise County, Arizona
Distribution: Gentoo-AMD64 / Slackware64-Current
Posts: 474
Blog Entries: 28

Rep: Reputation: 34
Would you please post an example src2pkg script for building multilibs: 32/64bit

I am needing to build binaries for both formats. I don't know how to do this, as I never have before. So if you wouldn't mind posting an example of how this is done, I would really appreciate it.

Thank you,
Shingoshi
 
Old 02-08-2008, 02:42 AM   #64
piete
Member
 
Registered: Apr 2005
Location: Havant, Hampshire, UK
Distribution: Slamd64, Slackware, PS2Linux
Posts: 465

Rep: Reputation: 44
Quote:
That <adding a check to move */lib/ to */lib64/> would be better, since this applies to all users having 64bit systems.
This applies to all users who use lib64 for their 64 bit libraries, not all 64 bit systems ...

=)
- Piete.

Last edited by piete; 02-08-2008 at 02:45 AM. Reason: typo
 
Old 02-08-2008, 03:14 AM   #65
Shingoshi
Member
 
Registered: Oct 2006
Location: Cochise County, Arizona
Distribution: Gentoo-AMD64 / Slackware64-Current
Posts: 474
Blog Entries: 28

Rep: Reputation: 34
Quote:
Originally Posted by piete View Post
This applies to all users who use lib64 for their 64 bit libraries, not all 64 bit systems ...

=)
- Piete.
The primary audience of src2pkg has been Slackware. And 64bit users who were Slackware are now Slamd64, as yourself. And it is also likely that more systems use /usr/lib64, than those which don't. And don't introduce the BSD's into the mix. I've already had my dealings with them on this issue, and am well aware of their disregard for */lib64 as a Linux-specific convention.

So let me be clear for those of you who didn't get it. I was referring to all users of Slackware who will eventually have to upgrade to 64bit, and will more likely than not wind up running Slamd64.

Shingoshi
 
Old 02-08-2008, 05:38 AM   #66
piete
Member
 
Registered: Apr 2005
Location: Havant, Hampshire, UK
Distribution: Slamd64, Slackware, PS2Linux
Posts: 465

Rep: Reputation: 44
Shingoshi, in most cases it'd be fine, but there are legitimate uses of lib in a 64 bit system. Like, for instance, building 32-bit userspace apps/libs. The toolchain in slamd64 is biarch, but the arch will always get detected as x86_64, so the libs (you might conceivable want to have the same libs in both lib and lib64 to link against) will be forced into the wrong place, and might even overwrite original ones ...

Having the check you suggested in src2pkg verbatim makes it difficult at best to work around when you really need to, hence the poorly explained objection. What's likely the source of your particular problem is poorly written makefiles with absolute paths and/or no honoring of the --prefix in an autotools package. Having a correctly set up pkgconfig path will put all those .pc files in the correct and sensible place. I'd be interested in taking a look at the sources which cause you problems in this way; forgive me if you've already sorted this, and let's move on to some fun stuff!

Been having a think on the repository issue. Best i've come up with is this sample code:

Code:
#!/bin/bash

# Pilfered from src2pkg
# ANSI COLORS
CRE=""
NORMAL=""
# RED: Failure or error message
RED=""
# GREEN: Success message
GREEN=""
# YELLOW: Warnings
YELLOW=""
# BLUE: Summary messages
BLUE=""
# CYAN: Current Process
CYAN=""

# These are obtained from the package you're trying to build.
program[0]="amsn"
program[1]="amarok"
program[2]="glibc"
program[3]="imlib2"
program[4]="imlib2-1.2.1"

# These either need mapping 1:1 with the package name, or just listing and then looping through, probably per repository. For the sake of simplicity, i'm going direct to the source.
category[0]="network"
category[1]="kde"
category[2]="l"
category[3]="Libs"

# These are stored locally

# slackbuilds
repository[0]="www.slackbuilds.org"
lpath[0]="slackbuilds/12.0"
suffix[0]=".tar.gz"
repath[0]="/${lpath[0]}/${category[0]}/${program[0]}${suffix[0]}"

# Part of the crux repository
repository[1]="crux.nu"
lpath[1]="ports/crux-2.4"
suffix[1]="Pkgfile"
repath[1]="/${lpath[1]}/${category[1]}/${program[1]}/${suffix[1]}"

# Slackware SlackBuild repository
repository[2]="ftp.heanet.ie"
lpath[2]="mirrors/ftp.slackware.com/pub/slackware/slackware-current/source"
suffix[2]="SlackBuild"
repath[2]="/${lpath[2]}/${category[2]}/${program[2]}/${program[2]}.${suffix[2]}"


# For Gilbert's repository we run into difficulties, because he keeps track of version numbers:
# http://distro.ibiblio.org/pub/linux/distributions/amigolinux/download/Libs/imlib2-1.2.1/
repository[3]="distro.ibiblio.org"
lpath[3]="pub/linux/distributions/amigolinux/download"
suffix[3]="PkgBuild"
repath[3]="/${lpath[3]}/${category[3]}/${program[3]}/${program[3]}.${suffix[3]}"

# Replicating this repo, but adding in the version number should work, and the version number may be extracted from the source tarball at your finger tips anyway.
repository[4]="distro.ibiblio.org"
repath[4]="/${lpath[3]}/${category[3]}/${program[4]}/${program[3]}.${suffix[3]}"

# Count the number of repositories for this test
x=${#repository[@]}

for ((i=0;i<$x; i+=1)); do

echo ${repath[$i]}

(echo -e "HEAD ${repath[$i]} HTTP/1.0\r\n\r\n" 1>&3 & cat 0<&3) 3<> /dev/tcp/${repository[$i]}/80
tmp=`(echo -e "HEAD ${repath[$i]} HTTP/1.0\r\n\r\n" 1>&3 & cat 0<&3) 3<> /dev/tcp/${repository[$i]}/80 | grep "200 OK" | wc -l`

if [ $tmp == 1 ]; then
echo "${BLUE}${program[$i]} - ${GREEN}found."
else
echo "${BLUE}${program[$i]} - ${RED}not found!!"
fi
echo ${NORMAL}

done
You'll see basically it queries the repositories to see if a script exists on that repository. Some information still has to be retained locally, such as the repository itself, the repository's format and likely some sort of category list per repository.

I've used arrays for everything, but it can be recoded to store all the information in 3 1D arrays: repository, repath and category. The sample is also a bit inelegant considering i'm only checking for HTTP responses of "200 OK", and like in the case of Amigo, this fails a bit since it's been permanently moved (301). More rigorous checking needed for that to really work. Likewise i'm also spamming the servers twice in the for-loop so you can see the output - obviously this is bad news from a bandwidth point of view.

The other problem with this approach is that it makes no attempt to "look" into the directory where the thing it's downloading is located - for example the slackware source repo has a lot of patches, and some places keep the slack-desc files separate too.

I can see possibilities of adding a cache into this, too, so once you've located the source, you can just pull it again easily. If the cache is one file (or one directory), mirroring it across multiple PCs would be easily done, too.

In the end, I suppose, it depends how many repos you end up adding to the script!

Either way, hope this gives some inspiration. I borrowed the initial HTTP code from http://www.pebble.org.uk/linux/bashbrowser and adapted it so it didn't get the whole page.

Take care,
- Piete.
 
Old 02-08-2008, 08:13 AM   #67
gnashley
Amigo developer
 
Registered: Dec 2003
Location: Germany
Distribution: Slackware
Posts: 4,928

Rep: Reputation: 612Reputation: 612Reputation: 612Reputation: 612Reputation: 612Reputation: 612
First of all, I'd like to ask you both a favor. I'm not particularly fond of having this thread titled 'Another problem with src2pkg' keep popping up at the top of the slackware forum -especially when the posts are suggestions for src2pkg. Even when they are for discussing a problem, it is usually better to create a new thread.
So I have an idea! Did you know that I have my own forum on LQ? You know, I used to have a distro called amigolinux and I had jeremy set up a forum for me here on LQ. It has been in disuse for a long time now. Why not transfer all this discussion about src2pkg over there. I'm betting/hoping/supposing that jeremy won't have any objections since it provides another space to display sponsors ads.
If he does object we'll do something different. At any rate, suggestions and code proposals might be handled better by sending them to me via e-mail. This makes it easier for me to find the material when I am at leisure to look at it.

In order to continue, I've created three new threads on the amigo forum which pickup the last couple of subjects under discussion. Please continue by seeing here:
http://www.linuxquestions.org/questions/amigo-56/
 
Old 02-09-2008, 07:31 PM   #68
malo_umoran
Member
 
Registered: Dec 2003
Distribution: Desktop: Slackware 13.1 &13.37 | Server: Debian 6.0
Posts: 270

Rep: Reputation: 32
I am using http://slackware.php.co.ba/src2slack for my packages.
I made it for myself a few months ago and it is working pretty ok.

It is pretty straight forward for my taste. Just run "src2slack source-file.tar.bz"...

I do not use linuxpackages.net packages because they had some compromised packages in tehe past. I always compiled all non-official packages and this script is doing everything I need.
 
  


Reply



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
where to download src2pkg matters Slackware 8 01-28-2017 03:20 AM
src2pkg 1.5 question hitest Slackware 4 08-01-2007 02:58 PM
src2pkg has a new home! gnashley Slackware 19 07-16-2007 09:18 PM
PkgBuild/src2pkg upgrade gnashley Slackware - Installation 1 10-20-2006 07:28 AM
PkgBuild & src2pkg upgrade gnashley Slackware 5 09-23-2006 03:31 AM

LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware

All times are GMT -5. The time now is 11:20 AM.

Main Menu
Advertisement
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
Open Source Consulting | Domain Registration