could someone help me compile this Compton fork?
https://github.com/tryone144/compton/tree/improved_fbo
.I have followed the instructions here: github.com/tryone144/compton/blob/improved_fbo/README_orig.md
I installed the dependencies, I am really a bit lost in everything I have to do. It would be a great help if someone could take the time
I still don't understand how to clone from git, so I downloaded the zip, clicking on Code and then the clone or download button, then extracted it and followed the instructions in README_org.md file. I installed the dependencies, then opened a terminal in the extracted folder and ran:
rau @ rau-B250M-DS3H: ~ / Desktop / compton-improved_fbo $ sudo make [sudo] password for rau: make: pcre-config: The program was not found fatal: not a git repository (nor any of the top directories): .git fatal: not a git repository (nor any of the top directories): .git make: pcre-config: The program was not found cc -std = c99 -DCONFIG_XINERAMA -DCONFIG_LIBCONFIG -DCONFIG_REGEX_PCRE -DCONFIG_REGEX_PCRE_JIT -DCONFIG_VSYNC_DRM -DCONFIG_VSYNC_OPENGL -DCONFIG_VSYNC_OPENGL_GLSL -DCONFIG_VSYNC_OPENGL_FBO -DCONFIG_VSYNC_OPENGL_VBO -DCONFIG_DBUS -DCONFIG_XSYNC -DCONFIG_C2 -DCOMPTON_VERSION = "\" git - \ "" -Wall -I / usr / include / libdrm -I / usr / include / dbus-1.0 -I / usr / lib / x86_64-linux-gnu / dbus-1.0 / include -c src / c2.c In file included from src / c2.c: 11: src / c2.h: 18: 10: fatal error: pcre.h: File or directory does not exist 18 | #include | ^ ~~~~~~~ compilation terminated. make: *** [Makefile: 141: c2.o] Error 1 rau @ rau-B250M-DS3H: ~ / Desktop / compton-improved_fbo $
I decided to follow the advice of kanehekili and went in search of picom. I have solved two questions in one: I learned how to clone git, before I had to install git
$ sudo apt install git The address to clone comes from the clone button or download Zip (how silly I am). So:
$ sudo git clone https://github.com/yshui/picom.git
The download is saved in the personal folder, with the name picom
Then I installed the dependencies for Ubuntu:
$ sudo apt install libxext-dev libxcb1-dev libxcb-damage0-dev libxcb-xfixes0-dev libxcb-shape0-dev libxcb-render-util0-dev libxcb-render0-dev libxcb-randr0-dev libxcb-composite0-dev libxcb-image0 -dev libxcb-present-dev libxcb-xinerama0-dev libxcb-glx0-dev libpixman-1-dev libdbus-1-dev libconfig-dev libgl1-mesa-dev libpcre2-dev libevdev-dev uthash-dev libev-dev libx11-xcb -dev
I also had to install cmake and meson
$ sudo apt install cmake meson
Then following the instructions: $ git submodule update --init --recursive $ sudo meson --buildtype = release. build
The Meson build system Version: 0.53.2 Source dir: / home / rau / picom Build dir: / home / rau / picom / build Build type: native build Project name: picom Project version: 8 C compiler for the host machine: cc (gcc 9.3.0 "cc (Ubuntu 9.3.0-10ubuntu2) 9.3.0") C linker for the host machine: cc ld.bfd 2.34 Host machine cpu family: x86_64 Host machine cpu: x86_64 Program git found: YES (/ usr / bin / git) Has header "stdc-predef.h": YES Compiler for C supports arguments -Wall: YES meson.build:63: WARNING: Consider using the built-in warning_level option instead of using "-Wall". Compiler for C supports arguments -Wcast-function-type: YES Compiler for C supports arguments -Wignored-qualifiers: YES Compiler for C supports arguments -Wmissing-parameter-type: YES Compiler for C supports arguments -Wnonnull: YES Compiler for C supports arguments -Wshadow: YES Compiler for C supports arguments -Wno-type-limits -Wtype-limits: YES Compiler for C supports arguments -Wold-style-declaration: YES Compiler for C supports arguments -Woverride-init: YES Compiler for C supports arguments -Wsign-compare: YES Compiler for C supports arguments -Wtype-limits: YES Compiler for C supports arguments -Wuninitialized: YES Compiler for C supports arguments -Wshift-negative-value: YES Compiler for C supports arguments -Wunused-but-set-parameter: YES Compiler for C supports arguments -Wunused-parameter: YES Compiler for C supports arguments -Wimplicit-fallthrough: YES Compiler for C supports arguments -Wno-unknown-warning-option -Wunknown-warning-option: NO Compiler for C supports arguments -Wno-missing-braces -Wmissing-braces: YES Compiler for C supports arguments -Wconversion: YES Compiler for C supports arguments -Wempty-body: YES
| Executing subproject test.h method meson | | Project name: test.h | Project version: undefined | C compiler for the host machine: cc (gcc 9.3.0 "cc (Ubuntu 9.3.0-10ubuntu2) 9.3.0") | C linker for the host machine: cc ld.bfd 2.34 | Build targets in project: 0 | Subproject test.h finished.
Found pkg-config: / usr / bin / pkg-config (0.29.1) Found CMake: / usr / bin / cmake (3.16.3) Run-time dependency libev found: NO (tried pkgconfig and cmake) Library ev found: YES Library m found: YES Run-time dependency x11 found: YES 1.6.9 Run-time dependency x11-xcb found: YES 1.6.9 Run-time dependency xcb-renderutil found: YES 0.3.9 Run-time dependency xcb-image found: YES 0.4.0 Run-time dependency xext found: YES 1.3.4 Run-time dependency pixman-1 found: YES 0.38.4 Run-time dependency xcb-render found: YES 1.14 Run-time dependency xcb-damage found: YES 1.14 Run-time dependency xcb-randr found: YES 1.14 Run-time dependency xcb-sync found: YES 1.14 Run-time dependency xcb-composite found: YES 1.14 Run-time dependency xcb-shape found: YES 1.14 Run-time dependency xcb-xinerama found: YES 1.14 Run-time dependency xcb-xfixes found: YES 1.14 Run-time dependency xcb-present found: YES 1.14 Run-time dependency xcb-glx found: YES 1.14 Run-time dependency xcb found: YES 1.14 Has header "uthash.h": YES Run-time dependency libconfig found: YES 1.5 Run-time dependency libpcre found: NO (tried pkgconfig and cmake)
src / meson.build: 47: 1: ERROR: Dependency "libpcre" not found, tried pkgconfig and cmake
A full log can be found at /home/rau/picom/build/meson-logs/meson-log.txt
I did not find the libpcre dependency in the repository. I found libpcre3 and Installed it, looked for it by synaptic.
$ sudo apt install libpcre3
Then:
$ sudo meson --buildtype = release. build The Meson build system Version: 0.53.2 Source dir: / home / rau / picom Build dir: / home / rau / picom / build Build type: native build Project name: picom Project version: 8 C compiler for the host machine: cc (gcc 9.3.0 "cc (Ubuntu 9.3.0-10ubuntu2) 9.3.0") C linker for the host machine: cc ld.bfd 2.34 Host machine cpu family: x86_64 Host machine cpu: x86_64 Program git found: YES (/ usr / bin / git) Has header "stdc-predef.h": YES Compiler for C supports arguments -Wall: YES meson.build:63: WARNING: Consider using the built-in warning_level option instead of using "-Wall". Compiler for C supports arguments -Wcast-function-type: YES Compiler for C supports arguments -Wignored-qualifiers: YES Compiler for C supports arguments -Wmissing-parameter-type: YES Compiler for C supports arguments -Wnonnull: YES Compiler for C supports arguments -Wshadow: YES Compiler for C supports arguments -Wno-type-limits -Wtype-limits: YES Compiler for C supports arguments -Wold-style-declaration: YES Compiler for C supports arguments -Woverride-init: YES Compiler for C supports arguments -Wsign-compare: YES Compiler for C supports arguments -Wtype-limits: YES Compiler for C supports arguments -Wuninitialized: YES Compiler for C supports arguments -Wshift-negative-value: YES Compiler for C supports arguments -Wunused-but-set-parameter: YES Compiler for C supports arguments -Wunused-parameter: YES Compiler for C supports arguments -Wimplicit-fallthrough: YES Compiler for C supports arguments -Wno-unknown-warning-option -Wunknown-warning-option: NO Compiler for C supports arguments -Wno-missing-braces -Wmissing-braces: YES Compiler for C supports arguments -Wconversion: YES Compiler for C supports arguments -Wempty-body: YES
| Executing subproject test.h method meson | | Project name: test.h | Project version: undefined | C compiler for the host machine: cc (gcc 9.3.0 "cc (Ubuntu 9.3.0-10ubuntu2) 9.3.0") | C linker for the host machine: cc ld.bfd 2.34 | Build targets in project: 0 | Subproject test.h finished.
Found pkg-config: / usr / bin / pkg-config (1.6.3) Found CMake: / usr / bin / cmake (3.16.3) Run-time dependency libev found: NO (tried pkgconfig and cmake) Library ev found: YES Library m found: YES Run-time dependency x11 found: YES 1.6.9 Run-time dependency x11-xcb found: YES 1.6.9 Run-time dependency xcb-renderutil found: YES 0.3.9 Run-time dependency xcb-image found: YES 0.4.0 Run-time dependency xext found: YES 1.3.4 Run-time dependency pixman-1 found: YES 0.38.4 Run-time dependency xcb-render found: YES 1.14 Run-time dependency xcb-damage found: YES 1.14 Run-time dependency xcb-randr found: YES 1.14 Run-time dependency xcb-sync found: YES 1.14 Run-time dependency xcb-composite found: YES 1.14 Run-time dependency xcb-shape found: YES 1.14 Run-time dependency xcb-xinerama found: YES 1.14 Run-time dependency xcb-xfixes found: YES 1.14 Run-time dependency xcb-present found: YES 1.14 Run-time dependency xcb-glx found: YES 1.14 Run-time dependency xcb found: YES 1.14 Has header "uthash.h": YES Run-time dependency libconfig found: YES 1.5 Run-time dependency libpcre found: YES 8.39 Run-time dependency gl found: YES 1.2 Run-time dependency dbus-1 found: YES 1.12.16 Program meson / install.sh found: YES (/ bin / sh /home/rau/picom/meson/install.sh) Build targets in project: 1
picom 8
Subprojects test.h: YES
Found ninja-1.10.0 at / usr / bin / ninja
I did not find the dependency libev in the repository or another similar one as in the case of libpcre but it seems that it was not very important because I ran the command again: $ sudo meson --buildtype = release. build
And returned:
Directory already configured.
Just run your build command (e.g. ninja) and Meson will regenerate as necessary. If ninja fails, run "ninja reconfigure" or "meson --reconfigure" to force Meson to regenerate.
If build failures persist, run "meson setup --wipe" to rebuild from scratch using the same options as passed when configuring the build. To change option values, run "meson configure" instead.
Then I executed:
$ sudo ninja -C build
ninja: Entering directory `build ' [1/28] Compiling C object 'src / 25a6634 @@ picom @ exe / picom.c.o'. ../src/picom.c: In function ‘main’: ../src/picom.c:2419:4: warning: ignoring return value of 'write', declared with attribute warn_unused_result [-Wunused-result] 2419 | write (pfds [1], & tmp, sizeof tmp); | ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [6/28] Compiling C object 'src / 25a6634 @@ picom @ exe / utils.c.o'. ../src/utils.c: In function ‘report_allocation_failure’: ../src/utils.c:29:2: warning: ignoring return value of ‘writev’, declared with attribute warn_unused_result [-Wunused-result] 29 | writev (STDERR_FILENO, v, ARR_SIZE (v)); | ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [11/28] Compiling C object 'src / 25a6634 @@ picom @ exe / log.c.o'. ../src/log.c: In function ‘file_logger_writev’: ../src/log.c:258:2: warning: ignoring return value of 'writev', declared with attribute warn_unused_result [-Wunused-result] 258 | writev (fileno (f-> f), vec, vcnt); | ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [28/28] Linking target src / picom.
And later:
$ sudo ninja -C build install
ninja: Entering directory `build ' [0/1] Installing files. Installing src / picom to / usr / local / bin Installing / home / rau / picom / bin / picom-trans to / usr / local / bin Installing /home/rau/picom/compton.desktop to / usr / local / share / applications Installing /home/rau/picom/picom.desktop to / usr / local / share / applications Installing /home/rau/picom/media/icons/48x48/compton.png to / usr / local / share / icons / hicolor / 48x48 / apps Installing /home/rau/picom/media/compton.svg to / usr / local / share / icons / hicolor / scalable / apps Running custom install script '/ bin / sh /home/rau/picom/meson/install.sh' Linking picom to / usr / local / bin / compton Linking picom-trans to / usr / local / bin / compton-trans
Ready!!! accomplished!!!
Later I copied the existing picom.sample.conf file into the picom folder, renamed it to picom.conf and saved it in the ~ / .config folder. I'm still messing around with the settings. I must say that it feels more fluid than Compton and I liked the description included in the sample configuration file better. Many of the settings are applied just by clicking save, without having to kill picom and run it again. Sorry to put all the code, but I think it may be useful for other beginners like me, it could help them get familiar with the process.
Thank you all very much for the help provided. I really really enjoyed it.
Should I change the name of the opening question to picom?
I have other questions like: What about all the dependencies I had to install for compilation? Should I uninstall them? If I had to reinstall the system at some point would I have to recompile it or is there a way to save it maybe in deb packages? Maybe I should open a new topic for these questions but I think they are related and may be doubts about it for others.
Compton is dead. It is not maintained anymore. Yushi took over and tweaked quite a lot. See here for more information. You're link is also based on a fork of the original compton repo from chjj.
picom (thats the new name of compton) explains which libs you need to compile. I am using picom for some time - it takes account of the the newer graphics card. If you've got old hardware, you may stick to the original compton.
This might not get you to your goal directly , but before investing time to compile an unmaintained piece of software better go to one that is maintained.... It has an active "issue" section, where you could ask if you're stuck.
Good luck. It would be great if you could share you're experience when successful.