awesomeWM / awesome

awesome window manager
https://awesomewm.org/
GNU General Public License v2.0
6.39k stars 597 forks source link

How to build latest AWM on Ubuntu 14.04? #825

Closed OnkelTem closed 8 years ago

OnkelTem commented 8 years ago

I didn't find any documents regarding building process.

I've grabbed the latest AWM version and tried to build it on my Ubuntu 14.04. Since no instructions provided I just launched make and it couldn't find cmake. The Ubuntu's cmake version didn't match (ver > 3.x), so I've downloaded a binary distribution from http://cmake.org and installed it under /usr/local. So finally I've managed to get make running and got this failed dependency log:

 $ make
Running cmake…
-- git -> /usr/bin/git
-- asciidoc not found.
-- xmlto not found.
-- gzip -> /bin/gzip
-- ldoc not found.
-- ldoc.lua not found.
-- convert -> /usr/bin/convert
-- Not generating manpages. Missing: asciidoc xmlto
-- Not generating API documentation. Missing: ldoc
-- Checking for modules 'glib-2.0;gdk-pixbuf-2.0;cairo;x11;x11-xcb;xcb-cursor;xcb-randr;xcb-xtest;xcb-xinerama;xcb-shape;xcb-util>=0.3.8;xcb-keysyms>=0.3.4;xcb-icccm>=0.3.8;xcb-xkb;xkbcommon;xkbcommon-x11;cairo-xcb;libstartup-notification-1.0>=0.10;xproto>=7.0.15;libxdg-basedir>=1.0.0'
--   No package 'gdk-pixbuf-2.0' found
--   No package 'cairo' found
--   No package 'xcb-cursor' found
--   No package 'xcb-xtest' found
--   No package 'xcb-xinerama' found
--   
--   
--   
--   No package 'xcb-xkb' found
--   No package 'xkbcommon' found
--   No package 'xkbcommon-x11' found
--   No package 'cairo-xcb' found
--   
--   
CMake Error at /usr/local/share/cmake-3.5/Modules/FindPkgConfig.cmake:363 (message):
  A required package was not found

As you see a lot of things just not found and I have no idea what is really required and what is not (optional). Also, for every mentioned missing lib I have to guess corresponding Ubuntu package name. Would someone share how to do build awm on Ubuntu?

psychon commented 8 years ago

There is a list of dependencies in #426. The guy having that list just doesn't tell us. :-(

For you, I would suggest apt-get build-deps awesome. That should already get you most of them. No idea if that already includes things like libgdk-pixbuf-dev (I just guessed the package name as well). Here is the list of packages that we install on travis (well, part of it and not all of them are really needed to build awseome, some are also just for the tests): libcairo2-dev xmlto asciidoc libpango1.0-dev libxcb-xtest0-dev libxcb-icccm4-dev libxcb-randr0-dev libxcb-keysyms1-dev libxcb-xinerama0-dev libdbus-1-dev libxdg-basedir-dev libstartup-notification0-dev imagemagick libxcb1-dev libxcb-shape0-dev libxcb-util0-dev libx11-xcb-dev libxcb-cursor-dev libxcb-xkb-dev libxkbcommon-dev libxkbcommon-x11-dev

Also, I would recommend you to use make package. This builds a .deb that you can then hopefully install with dpkg -i awesome*.deb. That way you can easily and cleanly get rid of the installation again.

actionless commented 8 years ago

since travis is using ubuntu as a base image i think it's the best choice just to stick to its config

OnkelTem commented 8 years ago

Thanks all, I'll try later and write back

blueyed commented 8 years ago

Yeah, check the .travis.yml file. We could maybe extract it from there into a install_ubuntu_deps (c)make target and/or the README?!

OnkelTem commented 8 years ago

Ok, I've built it finally. I was taking sequence of steps from .travis.yml (generally).

$ sudo apt-get install libcairo2-dev xmlto asciidoc libpango1.0-dev libxcb-xtest0-dev libxcb-icccm4-dev libxcb-randr0-dev libxcb-keysyms1-dev libxcb-xinerama0-dev libdbus-1-dev libxdg-basedir-dev libstartup-
notification0-dev imagemagick libxcb1-dev libxcb-shape0-dev libxcb-util0-dev libx11-xcb-dev libxcb-cursor-dev libxcb-xkb-dev libxkbcommon-dev libxkbcommon-x11-dev

$ sudo apt-get install lua-ldoc
$ git clone https://github.com/awesomeWM/awesome.git
$ cd awesome
$ make CMAKE_ARGS="-DOVERRIDE_VERSION=3.5-master"
$ make package

and awesome-3.5.0.0~gitmaster-Linux.deb package has been generated in .build-eisenstein-x86_64-linux-gnu-4.8/ subdirectory.

Note the version I've overridden (thanks @kjetilho from IRC for pointing on this): 3.5-master. Without this override I was getting package named awesome-3.5.2... which corresponds to that version when it was forked off the 3.5 maintenance branch.

Ok, now I'm gonna install it. /me blesses