[SOLVED] No binary file when installing with src2pkg
SlackwareThis Forum is for the discussion of Slackware Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
The building of the package is successfull, and the package is placed in /tmp. I then do a upgradepkg, also with success. However, when I try to execute Pidgin there is no binary files?!?
I then tried to remove pidgin, and do installpkg instead. But, even here there is no binary files installed to execute Pidgin.
I then tried to manually install Pidgin with make; make install (with exactly the same configuration flags as when using src2pkg), and then the binary files can be found and are installed in /usr/bin. However, I dont want to install manually but with src2pkg.
So, the question is, what am I doing wrong with src2pkg, why is there no binary files installed when using src2pkg? This is not the first time it happens, it did happen with several other softwares.
no, there is no particular reason that I dont use Slackbuild. Im just curious if there is something extra one needs to do with src2pkg to make a successfull installation, or why this happens. I can install it manually, but with src2pkg it fails.
However, I should go Slackbuild instead when something like this happens...
have a look at Pat's slackbuild: beside passing a lot of options to configure it does many things (mainly perl-related) that you probably haven't done with the manual install...
Quote:
However, I should go Slackbuild instead when something like this happens...
in my opinion, the best practice is to use a working slackbuild for everything that has one available from trusted sources (Pat, slackbuilds.org, Eric, Robby, Niels, etc., whoever you trust).
for everything else, you can try with src2pkg.
or you can also write one slackbuild yourself for it, it's fun
have a look at Pat's slackbuild: beside passing a lot of options to configure it does many things (mainly perl-related) that you probably haven't done with the manual install...
in my opinion, the best practice is to use a working slackbuild for everything that has one available from trusted sources (Pat, slackbuilds.org, Eric, Robby, Niels, etc., whoever you trust).
for everything else, you can try with src2pkg.
or you can also write one slackbuild yourself for it, it's fun
I used that Slackbuild from your link above and it worked flawlessly. Thanks for your time.
I dont know If I should marked this thread as solved or not. I let it be unsolved for some time, maybe someone got the answer for the src2pkg issue.
src2pkg doesn't install packages by default -the '-I' option tells it to really install the package when done. But, it does sound like you're not getting a successful build or the 'make install' (fake_install) is failing. If the latter is the case, then try adding the '-DEST' option to the command-line, or one of these: -UNION, -SAFE or -REAL.
That said, it does look like the SlackBuild is pretty 'busy' for building pidgin, so a working package may need some extras in a src2pkg script for pidgin.
It is unusual that the build of the package is finishing. Have a deep look in the package-tree for the build to see what's really in there. Also, posting the command-line you used and the output gives me much more to go on. It most likely is simply that the default '-JAIL' installation method is not working for pidgin.
To back up a bit, when creating package content, src2pkg tries to run 'make install' in such a way that files don't really get installed to your running system. The defaut behaviour is to use libsentry to create a 'jail' in which to run 'make install'. But, it can also use the commonly-supported DESTDIR, which in this case appears to work. If you have fuse, then src2pkg will also have built a tool called unionfs-fuse, which will create a chroot using the unionfs and bind-mounting.
If none of those methods work, src2pkg can use the -SAFE or -REAL methods which are the most accurate. But, they are the most invasive because they really do install the files to your system while tracking the install to list all the files installed or altered. The -REAL method simply goes ahead and installs things even if they overwrite existing files. The -SAFE method will first back up any files which are going to be overwritten and then restores them after the package content(new files) have been copied into the package-tree. None of these methods make the package show up as installed in the /var/log/packages database, unless you use the src2pkg '-I' option.
Yes, the -UNION option is very dependable -but even there I've run a cross a couple of sources that didn't like that. It's unfortunate that there's nothing that *always* works -but that's the nature of the beast.
I had problem installing "xf86-input-synaptic" with src2pkg, no binary files were installed when doing "installpkg" after the package was created with src2pkg. But, using the switch -DEST builded the package correctly, and I could then install the package with binary files.
So, using this:
src2pkg xf86-input-synaptics-1.5.0 ; Does not work.
src2pkg -DEST xf86-input-synaptics-1.5.0 ; Works.
However, im not exactly sure why -DEST works instead of default -JAIL.
Anyway, thanks for all your replies. I mark this thread as solved, the solution is to use one of the other "INSTALLATION_TYPES" if not -JAIL works.
*EDIT: Here is the output of when using -JAIL or -DEST, where the latter works.
-JAIL:
Code:
bash-4.1# src2pkg -JAIL "xf86-input-synaptics-1.5.0(1).tar.gz"
Found source archive: xf86-input-synaptics-1.5.0(1).tar.gz
Deleting old build files - Done
Creating working directories:
PKG_DIR=/tmp/xf86-input-synaptics-1.5.0(1)-x86_64-1
SRC_DIR=/tmp/xf86-input-synaptics-1.5.0(1)-src-1
Unpacking source archive - Done
Correcting source permissions - Done
Checking for patches - None found
Found configure script - Done
Configuring sources using:
LDFLAGS="-Wl,-O1,-L/lib64,-L/usr/lib64" CFLAGS="-O2 -fPIC -m64" ./configure --prefix=/usr --libdir=/usr/lib64
Configuration has been - Successful!
Notice - Correcting Makefile(s) with conflicting hard-coded prefix.
Compiling sources - Using: 'make'
Compiling has been - Successful!
Checking for Makefile rule: 'install' Okay
Creating content in JAIL root - Using: 'make install'
Safe content creation - Successful!
Processing package content:
Correcting libtool files - Done
Correcting package permissions - Done
Stripping shared libraries - Using: strip -p --strip-unneeded Done
Checking for standard documents - Done
Found pkgconfig (.pc) file in SRC_DIR - Copying to PKG_DIR/usr/lib64/pkgconfig
NOTICE - No man-pages installed by Makefile
Found man-pages in SRC_DIR - Installing in PKG_DIR
Compressing man pages - Done
Creating slack-desc - From default text
Searching for links in: xf86-input-synaptics-1.5.0(1)-x86_64-1 - None found
Rechecking package correctness -
Checking for misplaced dirs - Done
Rechecking package permissions - Done
Creating package: xf86-input-synaptics-1.5.0(1)-x86_64-1.txz - Done
Package Creation - Successful! Package Location:
/tmp/xf86-input-synaptics-1.5.0(1)-x86_64-1.txz
-DEST:
Code:
bash-4.1# src2pkg -DEST "xf86-input-synaptics-1.5.0(1).tar.gz"
Found source archive: xf86-input-synaptics-1.5.0(1).tar.gz
Deleting old build files - Done
Creating working directories:
PKG_DIR=/tmp/xf86-input-synaptics-1.5.0(1)-x86_64-1
SRC_DIR=/tmp/xf86-input-synaptics-1.5.0(1)-src-1
Unpacking source archive - Done
Correcting source permissions - Done
Checking for patches - None found
Found configure script - Done
Configuring sources using:
LDFLAGS="-Wl,-O1,-L/lib64,-L/usr/lib64" CFLAGS="-O2 -fPIC -m64" ./configure --prefix=/usr --libdir=/usr/lib64
Configuration has been - Successful!
Notice - Correcting Makefile(s) with conflicting hard-coded prefix.
Compiling sources - Using: 'make'
Compiling has been - Successful!
Checking for Makefile rule: 'install' Okay
Checking support for DESTDIR (or similar) - Found DESTDIR
Installing using DESTDIR - Using:
make DESTDIR=/tmp/xf86-input-synaptics-1.5.0(1)-x86_64-1 install
Notice - Possible error running 'make install'
NOTICE - May have been a false error as files were found.
Processing package content:
Correcting package permissions - Done
Checking for standard documents - Done
Found pkgconfig (.pc) file in SRC_DIR - Copying to PKG_DIR/usr/lib64/pkgconfig
NOTICE - No man-pages installed by Makefile
Found man-pages in SRC_DIR - Installing in PKG_DIR
Compressing man pages - Done
Creating slack-desc - From default text
Searching for links in: xf86-input-synaptics-1.5.0(1)-x86_64-1 - None found
Rechecking package correctness -
Checking for misplaced dirs - Done
Rechecking package permissions - Done
Creating package: xf86-input-synaptics-1.5.0(1)-x86_64-1.txz - Done
Package Creation - Successful! Package Location:
/tmp/xf86-input-synaptics-1.5.0(1)-x86_64-1.txz
Last edited by Bindestreck; 09-16-2011 at 08:44 AM.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.