0

I am building a Debian Jessie build system running on an arm processor. I use elbe which, to oversimplify, is a bunch of Python scripts that call debootstrap to create the base system:

debootstrap --foreign --arch=armhf jessie
debootstrap --second-stage

and then I add the following debian packages:

build-essential
perl
flex
bison
python3
autoconf
automake
dh-autoreconf
autotools-dev
debhelper
dh-make
dh-systemd
devscripts
fakeroot
check
libdbus-glib-1-dev
libglib2.0-dev
libcap-ng-dev
libudev-dev
libreadline-dev
libical-dev
file
git
lintian
patch
patchutils
pbuilder
vim

I was successful building the latest bluez package (5.37) using this build.

My two part question:

  1. Are there other build-essential like packages that would minimize the number of packages I have to add?

  2. I have read posts that claim that the order you install packages can be important. Is there a preferred install order with these basic build packages?

5
  • 4
    You shouldn't be installing any of these if the system is for building packages - otherwise you'll miss out on a build dependency that you should have mentioned but didn't. Start with a minimal setup, and let the builder take care of the rest. Have a look at pbuilder or cowbuilder. And where did you read these posts? – muru Feb 9 '16 at 20:17
  • Just a note: 2 is rubbish. Where did you read that? Also, what muru said. – Faheem Mitha Feb 9 '16 at 20:29
  • Thanks for the information, I will explore the builder options. The main link I was following was the Debian Start Guide, but what you are saying is that install order is not important. My goal was just to upgrade bluez to the latest version for my own uses on my architecture. So I cloned the latest bluez, grabbed the latest 5.36 debian source folder, and ran dpkg-buildpackage. I built this on an SD card, then I just add the package to a private repository for uses on my other boards. – cajjed Feb 9 '16 at 21:30
  • 1
    The Debian Start Guide lists packages you'd install on a development system, not on a build system. The idea is that you'd typically need these packages to work on packages, so the system you use to do that should have them installed (so you can easily run your builds). To build packages for distribution (even just locally) you're better off using a builder as suggested by muru, since that helps verfy your packaging is correct (all the build-dependencies are listed), amongst other things. – Stephen Kitt Feb 9 '16 at 21:34
  • I am clearly not understanding the build-dependency issue. Reading the Intro to Debian Packaging, made me think that I could have a simplified development system that I run off an SD card (understanding that I would not use this development system for my actual build). When I tried to build the bluez package, it told me which packages I needed to add, thus the list above. Is the issue that I might miss adding a build dependency that is not called out in the older version of the package? – cajjed Feb 10 '16 at 15:55
1

The comments for using pbuilder/cowpuilder are the appropriate way of doing a build and give you a lot more options; however, I think all you really want to know is the following command:

apt-get build-dep bluez

which will install all build dependencies that bluez needs.

If you truly are using an SD card created from a fresh build of debian Jessie and only use it to build bluez then you should be ok. Just remember that you will have to create a new fresh SD card each time you do another build to avoid unwanted dependency issues.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.