do ./configure
install all the dependencies
do make clean
go for the dpkg-buildpackage or dh_make
btw: which package are we talking about?
do ./configure
install all the dependencies
do make clean
go for the dpkg-buildpackage or dh_make
btw: which package are we talking about?
I am not trying to get a package but rather I am doing this for the sole purpose of learning how. I do not want to learn the "cheap workaround" ways like checkinstall though.
To answer the question, I am trying to compile acetoneiso (even though it's in the repositories).
Here is what I did in the terminal:
So I am basically stuck at finding the dependencies again. I tried ./configure and it doesn't help me. I am probably not using it right, in which case I would really appreciate if you could point out my mistake.Code:deniz@debian:~$ cd /home/deniz/Desktop/acetoneiso_2.2.2/acetoneiso/acetoneiso-2.2.2
deniz@debian:~/Desktop/acetoneiso_2.2.2/acetoneiso/acetoneiso-2.2.2$ dh_make --createorig
Type of package: single binary, indep binary, multiple binary, library, kernel module, kernel patch or cdbs?
[s/i/m/l/k/n/b] s
Maintainer name : Deniz Akcal
Email-Address : deniz@debian
Date : Fri, 30 Jul 2010 17:58:28 -0400
Package Name : acetoneiso
Version : 2.2.2
License : blank
Using dpatch : no
Type of Package : Single
Hit <enter> to confirm:
Currently there is no top level Makefile. This may require additional tuning.
Done. Please edit the files in the debian/ subdirectory now. You should also
check that the acetoneiso Makefiles install into $DESTDIR and not in / .
deniz@debian:~/Desktop/acetoneiso_2.2.2/acetoneiso/acetoneiso-2.2.2$ ls
about.cpp debian global_functions.h options.h
about.h devices.h gmount.h play.h
acetoneiso.cpp donate.h history.h progress.cpp
acetoneiso.h dvd_cover.h isocd.h progress.h
a_options.h eltorito.h iso_from_pcgame.h psp.h
audiotools.h encrypt.h leggirigo.h psxrip.h
backup_audio.h erase_cd.cpp main.cpp split.h
burn_iso_2_cd.cpp erase_cd.h manual.cpp status_mounted.h
burn_iso_2_cd.h erase_dvd.cpp manual.h status_mounted_no_boot.h
compress.h erase_dvd.h md5check.h udf.h
connections.h foldertoiso.h messages.h umount_check.h
converter.h formatcd.h mount.h utube.h
database.h gencue.h options.cpp vidgen.h
deniz@debian:~/Desktop/acetoneiso_2.2.2/acetoneiso/acetoneiso-2.2.2$ ./configurebash: ./configure: No such file or directory
deniz@debian:~/Desktop/acetoneiso_2.2.2/acetoneiso/acetoneiso-2.2.2$ sudo ./configure
sudo: ./configure: command not found
deniz@debian:~/Desktop/acetoneiso_2.2.2/acetoneiso/acetoneiso-2.2.2$ /.configurebash: /.configure: No such file or directory
deniz@debian:~/Desktop/acetoneiso_2.2.2/acetoneiso/acetoneiso-2.2.2$ sudo /.configure
sudo: /.configure: command not found
deniz@debian:~/Desktop/acetoneiso_2.2.2/acetoneiso/acetoneiso-2.2.2$ /.configure
bash: /.configure: No such file or directory
deniz@debian:~/Desktop/acetoneiso_2.2.2/acetoneiso/acetoneiso-2.2.2$ ./configurebash: ./configure: No such file or directory
deniz@debian:~/Desktop/acetoneiso_2.2.2/acetoneiso/acetoneiso-2.2.2$
P.S.
This particular package has a readme with the dependencies but I want to learn a universal way of having dpkg (or some other Linux tool) check the dependencies manually.
I don't think there is a universal way.
There a script I found somewhere on the web when I was playing with Slackware, which uses ldd to check binaries for missing libraries.
Arch Linux has a custom tool, namcap, to check for common errors in PKGBUILDS. You could peruse the code for that and see what exactly it does. Some of it is Arch specific, some not.Code:#!/bin/sh
# script to find dependancies
dir="${1}"
if [ "${dir}" == "" ]; then
echo "You must pass a directory as a parameter."
exit 1
fi
echo "The following file in ${dir} depend on a lib and will need to be rebuilt:"
( cd "${dir}" &&
for file in *
do
if [ ! -d ${file} ]; then
elf=`file ${file} | grep ELF`
if [ "${elf}" != "" ]; then
missing=`ldd ${file} | grep "not found"`
if [ "${missing}" != "" ]; then
echo "-------"
echo "${file}"
echo "${missing}"
fi
fi
fi
done
)
Configuration scripts with the source code are common but not universal. It is generally run
The ./ preceding it is simply directing the shell to look in the current directory for the command, else it would search your $PATH and come up empty handed.Code:./configure
To get a list of build time options, you can frequently do
Code:./configure --help
Regarding acetone2 specifically, the developers were kind enough to include a clear list in the README file. That is the easiest way to determine dependencies, and most developers will include it.
You can see as well that acetone2 does not use a configure script.Quote:
######################## GENERAL INFORMATION ######################################
AcetoneISO is a CD/DVD image manipulator for GNU/Linux.
- the official website is:
AcetoneISO Official Website
Released under the GNU GPL3 License,
this software is brought to you from Fabrizio Di Marco and Marco Di Antonio.
########################### DEPENDENCIES ##########################################
SYSTEM REQUIREMENTS:
- fuseiso
- fuse-utils
- libqt4-gui 4.5 and libqtwebkit 4.5 or later
- genisoimage (may be part of cdrkit package)
- cdrdao
- p7zip-full
- gnupg-agent
- gnupg2
- pinentry-qt4
- ffmpeg
- mencoder
- cdparanoia
Note for 64bit users: the package "ia32-libs" is also required(read QUICK NOTES below for more info).
############################# INSTALL #############################################
a) You must have libqt4-dev 4.5 and libphonon-dev or later and the standard gcc compiler (gcc,g++,make) installed.
b) open a terminal inside acetoneiso folder and type:
qmake-qt4 (if it gives errors simply type "qmake" instead)
make
make install (must be run as root user)
c) it is now time to add your user to fuse group. this step is not needed on all systems, for example from Ubuntu Hardy and up this
step is not required.
open a terminal, login as root user and type:
modprobe fuse
chmod 4755 /usr/bin/fusermount (may be /bin/fusermount on ubuntu systems and others)
chmod o+rw /dev/fuse
addgroup <your-user> fuse (example: "addgroup johndoe fuse")
That's it! You Succesfully installed AcetoneISO!
x) if you want to uninstall AcetoneISO,
simply type from acetoneiso2/src/ folder:
make uninstall (must be root user)
############################# QUICK NOTES ###########################################
- there are serious issues if you install fuseiso < 2007xxx version.
be sure to have the latest one installed.
- AcetoneISO uses poweriso binary file to convert and extract images.
It is not shipped with our software and will be downloaded when needed from PowerISO - Create, Edit, Compress, Encrypt, Split, Mount, Extract ISO file, ISO/BIN converter, Virtual Drive .
Poweriso is a Freeware software so sources are not available.
Please note that it will only work on x86 32-bit Operating Systems.
It is however possible to make it run on x64 64-bit OS, for example you must
install at least "ia32-libs" package. Other packages may be required.
The Debian GNU/Linux FAQ - Basics of the Debian package management system
The Debian GNU/Linux FAQ - The Debian package management tools
Debian New Maintainers' Guide
Debian Reference
Debian -- DDP Developers' Manuals
Debian User Forums • View topic - HowTo Build a Package from Source the Smart Way
Debreate - Debian package builder GTK-Apps.org
Debreate - Debian package builder
Mentors is the system that the Debian project uses to train new people to become Debian Developers or Debian Maintainers andQuote:
Debreate is Graphical User Interface to aid in building Debian packages (.deb).
The goal behind debreate is to make developing for Debian based Linux distributions more appealing, with an easy to use interface for packaging applications, artwork, media, etc.
get their packages into the Debian archive. Debian Mailing Lists -- Index for debian-mentors mentors.debian.net #debian-mentors on irc.debian.org
Thanks for your answer but, I don't want to compile the ./configure make, make install way. I want to specifically made .deb files. I guess a better question would be: is there a terminal command (or something similar) that does not do or install anything but instead just tells me what the dependencies of a particular package that I am trying to compile are?
Typically, the best resource for that would be the README that is usually included in the source.
Other than that, as mentioned above, there really isn't a method to 'just find' the dependencies.