mod_wsgi w/ Apache 2.2 and Python 2.7 installation issues. Miniconda as well - apache

This problem has eluded me thus far. I have a Centos 6.7 machine running Apache 2.2 with Python 2.7 installed at /opt/home/user/miniconda2/envs/myenv/lib. Python 2.6 is obviously also installed on this system at /usr/bin/python. At first I installed mod_wsgi with pip and copied the created *.so Apache module to my modules folder. From my perspective it was created with 2.7 but I could not get the stupid ImportError: package site not found or whatever to go away. I uninstalled mod_wsgi and compiled and installed from source 4.22. I put the folder into my /home/user/ directory and started my installation process.
However easy I expected the fine-tuning available to configure to be, it quickly became apparent it was anything but. My first hurdle I surpassed, but my second has continued to stump me. After running configure:
./configure --with-python=/opt/home/user/miniconda2/envs/myenv/bin/python LD_RUN_PATH=/opt/home/user/miniconda2/envs/myenv/lib
(myenv)[user#machine2 mod_wsgi-4.4.21]$ ldd /usr/lib/httpd/modules/mod_wsgi.so
linux-gate.so.1 => (0x002a1000)
libpython2.7.so.1.0 => not found
libpthread.so.0 => /lib/libpthread.so.0 (0x00164000)
libdl.so.2 => /lib/libdl.so.2 (0x00c1f000)
libutil.so.1 => /lib/libutil.so.1 (0x00c2d000)
libm.so.6 => /lib/libm.so.6 (0x007cf000)
libc.so.6 => /lib/libc.so.6 (0x002a2000)
/lib/ld-linux.so.2 (0x00bcc000)
I think we all know that this means the shared library was not found. But I can see it in the directory!
pwd = /opt/home/user/miniconda2/envs/myenv/lib
[user#machine2 lib]$ ls -l
total 20264
drwxrwxr-x 2 user user 4096 Mar 21 13:46 engines
-rw-rw-r-- 2 user user 3066000 Mar 1 12:23 libcrypto.a
lrwxrwxrwx 1 user user 18 Mar 21 13:46 libcrypto.so -> libcrypto.so.1.0.0
-rwxrwxr-x 1 user user 1945963 Mar 21 13:46 libcrypto.so.1.0.0
-rw-r--r-- 3 user user 104318 Jan 3 2014 libhistory.a
lrwxrwxrwx 1 user user 15 Mar 21 13:46 libhistory.so -> libhistory.so.6
lrwxrwxrwx 1 user user 17 Mar 21 13:46 libhistory.so.6 -> libhistory.so.6.2
-rwxr-xr-x 3 user user 78845 Jan 3 2014 libhistory.so.6.2
lrwxrwxrwx 1 user user 19 Mar 21 13:47 libpython2.7.so -> libpython2.7.so.1.0
-rwxrwxr-x 3 user user 4979591 Dec 6 16:09 libpython2.7.so.1.0
-rw-r--r-- 3 user user 715160 Jan 3 2014 libreadline.a
lrwxrwxrwx 1 user user 16 Mar 21 13:46 libreadline.so -> libreadline.so.6
lrwxrwxrwx 1 user user 18 Mar 21 13:46 libreadline.so.6 -> libreadline.so.6.2
-rwxr-xr-x 3 user user 516418 Jan 3 2014 libreadline.so.6.2
-rw-rw-r-- 2 user user 2977926 Jan 11 11:52 libsqlite3.a
-rwxrwxr-x 1 user user 984 Mar 21 13:46 libsqlite3.la
lrwxrwxrwx 1 user user 19 Mar 21 13:46 libsqlite3.so -> libsqlite3.so.0.8.6
lrwxrwxrwx 1 user user 19 Mar 21 13:46 libsqlite3.so.0 -> libsqlite3.so.0.8.6
-rwxrwxr-x 2 user user 2573507 Jan 11 11:52 libsqlite3.so.0.8.6
-rw-rw-r-- 2 user user 613290 Mar 1 12:23 libssl.a
lrwxrwxrwx 1 user user 15 Mar 21 13:46 libssl.so -> libssl.so.1.0.0
-rwxrwxr-x 2 user user 462887 Mar 1 12:23 libssl.so.1.0.0
-rwxr-xr-x 3 user user 1154833 Mar 16 2015 libtcl8.5.so
-rwxr-xr-x 3 user user 3008 Mar 16 2015 libtclstub8.5.a
-rwxr-xr-x 3 user user 1257824 Mar 16 2015 libtk8.5.so
-rwxr-xr-x 3 user user 4446 Mar 16 2015 libtkstub8.5.a
-rw-r--r-- 3 user user 98574 Jan 5 2015 libz.a
lrwxrwxrwx 1 user user 13 Mar 21 13:46 libz.so -> libz.so.1.2.8
lrwxrwxrwx 1 user user 13 Mar 21 13:46 libz.so.1 -> libz.so.1.2.8
-rwxr-xr-x 3 user user 91730 Jan 5 2015 libz.so.1.2.8
drwxrwxr-x 2 user user 4096 Mar 21 13:47 pkgconfig
drwxrwxr-x 26 user user 20480 Mar 21 13:49 python2.7
drwxrwxr-x 4 user user 4096 Mar 21 13:46 tcl8
drwxrwxr-x 6 user user 4096 Mar 21 13:46 tcl8.5
-rw-r--r-- 1 user user 7356 Mar 21 13:46 tclConfig.sh
drwxrwxr-x 6 user user 4096 Mar 21 13:46 tk8.5
-rw-r--r-- 1 user user 4299 Mar 21 13:46 tkConfig.sh
I have been cycling between the above configure, sudo make,sudo makeinstall and sudo make distclean but to no avail, any help is appreciated.

Don't use conda with mod_wsgi and Apache. Use virtualenv. Conda's embedded Python install will be obscured from your Apache module AFAIK.

Related

valgrind in QNX: Can't access shared library Error

I've downloaded valgrind from https://community.qnx.com/sf/frs/do/listReleases/projects.valgrind/frs.valgrind for QNX.
OS details:
#uname -a
QNX localhost 7.1.0S 2021/02/12-21:06:45EST SA8540P_v2.1_ft0_ADP_Ride_v1.0.2_UFS_NORMAL aarch64le
# ls -l
total 282423
drwxr-xr-x 3 default 1000 4096 Apr 30 2015 armle-v7
drwxr-xr-x 3 default 1000 4096 Apr 30 2015 usr
drwxr-xr-x 3 default 1000 4096 Apr 30 2015 x86
# ls -l /var/valgrind/armle-v7/usr
total 16
drwxr-xr-x 2 default 1000 4096 Apr 30 2015 bin
drwxr-xr-x 4 default 1000 4096 Apr 30 2015 lib
# ls -l
total 917
-rwxr-xr-x 1 default 1000 41112 Apr 30 2015 callgrind_annotate
-rwxr-xr-x 1 default 1000 12016 Apr 30 2015 callgrind_control
-rwxr-xr-x 1 default 1000 32170 Apr 30 2015 cg_annotate
-rwxr-xr-x 1 default 1000 10418 Apr 30 2015 cg_diff
-rwxr-xr-x 1 default 1000 71060 Apr 30 2015 cg_merge
-rwxr-xr-x 1 default 1000 24398 Apr 30 2015 ms_print
-rwxr-xr-x 1 default 1000 53202 Apr 30 2015 **valgrind**
-rwxr-xr-x 1 default 1000 96364 Apr 30 2015 valgrind-di-server
-rwxr-xr-x 1 default 1000 35454 Apr 30 2015 valgrind-listener
-rwxr-xr-x 1 default 1000 90877 Apr 30 2015 vgdb
I am entirely new to QNX.
Should I use armle-v7 or x86?
Can I directly run valgrind under bin:
valgrind <my-program> <input arg>
If i try this I get the below error:
**sh: ./valgrind: Can't access shared library**
Even version command gives the same error:
# /var/valgrind/armle-v7/usr/bin/valgrind --version
sh: /var/valgrind/armle-v7/usr/bin/valgrind: Can't access shared library
Should I copy the valgrind to /usr/bin or some other folder? I've already exported LD_LIBRARY_PATH for the libraries needed by my executable and also valgrind lib path[/var/valgrind/armle-v7/usr/lib]
Basically I need to analyze memory leak and crash in my program[Note: Don't have QNX Momentics IDE]. From QNX software centre, can we download valgrind?

Apache restart every midnight by itself causing apscheduler task to not complete

Hi I have a Pyramid wsgi webapp served using Apache. The webapp has an hourly job that must be run at the 0th min to fetch time-sensitive data and write to my mysql database. I note that sometimes (not all times) the data might not be written into the database for the midnight 00:00:00 run of the task. Looking at the logs, it seems that Apache has been restarted shortly after every midnight which might cause the problem.
After searching through stackoverflow it seems logrotate might be the culprit for the restart. However, I also note that logrotate is called by crontab which defaults to 6:25am so I have no idea why the restart happens at midnight instead. (My Ubuntu server does NOT have anacron installed)
here are the log files for the last few days from Apache
[Tue May 11 00:00:35.534821 2021] [mpm_event:notice] [pid 72273:tid 140034084613184] AH00489: Apache/2.4.41 (Ubuntu) mod_wsgi/4.6.8 Python/3.8 configured -- resuming normal operations
[Tue May 11 00:00:35.534867 2021] [core:notice] [pid 72273:tid 140034084613184] AH00094: Command line: '/usr/sbin/apache2'
.
.
.
[Wed May 12 00:00:00.029412 2021] [wsgi:error] [pid 72660:tid 140033624434432] 2021-05-12 00:00:00,029 INFO [apscheduler.executors.default:123][ThreadPoolExecutor-0_0] Running job "XYZ (trigger: cron[minute='0'], next run at: 2021-05-12 01:00:00 HKT)" (scheduled at 2021-05-12 00:00:00+08:00)
[Wed May 12 00:00:00.621944 2021] [mpm_event:notice] [pid 72273:tid 140034084613184] AH00493: SIGUSR1 received. Doing graceful restart
[Wed May 12 00:00:03.614647 2021] [wsgi:error] [pid 72660:tid 140033624434432] 2021-05-12 00:00:03,614 INFO [apscheduler.executors.default:144][ThreadPoolExecutor-0_0] Job "XYZ (trigger: cron[minute='0'], next run at: 2021-05-12 01:00:00 HKT)" executed successfully
Interesting to note from the log above that it seems my apscheduler still completed running (with the database written into successfully) and printed to the log after Doing graceful restart and before a new log file is created (contents shown below)
[Wed May 12 00:00:03.641095 2021] [mpm_event:notice] [pid 72273:tid 140034084613184] AH00489: Apache/2.4.41 (Ubuntu) mod_wsgi/4.6.8 Python/3.8 configured -- resuming normal operations
[Wed May 12 00:00:03.641146 2021] [core:notice] [pid 72273:tid 140034084613184] AH00094: Command line: '/usr/sbin/apache2'
.
.
.
[Thu May 13 00:00:00.032261 2021] [wsgi:error] [pid 95013:tid 140083656877824] 2021-05-13 00:00:00,032 INFO [apscheduler.executors.default:123][ThreadPoolExecutor-0_0] Running job "XYZ (trigger: cron[minute='0'], next run at: 2021-05-13 01:00:00 HKT)" (scheduled at 2021-05-13 00:00:00+08:00)
[Thu May 13 00:00:03.764471 2021] [wsgi:error] [pid 95013:tid 140083656877824] 2021-05-13 00:00:03,764 INFO [apscheduler.executors.default:144][ThreadPoolExecutor-0_0] Job "XYZ (trigger: cron[minute='0'], next run at: 2021-05-13 01:00:00 HKT)" executed successfully
[Thu May 13 00:00:34.829438 2021] [mpm_event:notice] [pid 95012:tid 140084121332800] AH00493: SIGUSR1 received. Doing graceful restart
In the log file above, my apscheduler job completed before the restart so my database got written into properly as well.
[Thu May 13 00:00:35.588354 2021] [mpm_event:notice] [pid 95012:tid 140084121332800] AH00489: Apache/2.4.41 (Ubuntu) mod_wsgi/4.6.8 Python/3.8 configured -- resuming normal operations
[Thu May 13 00:00:35.588433 2021] [core:notice] [pid 95012:tid 140084121332800] AH00094: Command line: '/usr/sbin/apache2'
.
.
.
[Fri May 14 00:00:00.020559 2021] [wsgi:error] [pid 2120:tid 140241617286912] 2021-05-14 00:00:00,020 INFO [apscheduler.executors.default:123][ThreadPoolExecutor-0_0] Running job "XYZ (trigger: cron[minute='0'], next run at: 2021-05-14 01:00:00 HKT)" (scheduled at 2021-05-14 00:00:00+08:00)
[Fri May 14 00:00:00.558072 2021] [mpm_event:notice] [pid 2119:tid 140242151496768] AH00493: SIGUSR1 received. Doing graceful restart
for the midnight that just passed, the job didn't complete and database has not been written into. there is also no accompanying INFO [apscheduler.executors.default:144][ThreadPoolExecutor-0_0] Job "XYZ (trigger: cron[minute='0'], next run at: xxxxxxx)" executed successfully line written into either of the logs before and after midnight since the job got terminated abruptly before completing
[Fri May 14 00:00:03.588691 2021] [mpm_event:notice] [pid 2119:tid 140242151496768] AH00489: Apache/2.4.41 (Ubuntu) mod_wsgi/4.6.8 Python/3.8 configured -- resuming normal operations
[Fri May 14 00:00:03.588744 2021] [core:notice] [pid 2119:tid 140242151496768] AH00094: Command line: '/usr/sbin/apache2'
.
.
.
day hasn't ended yet
Here is my crontab file which I believe is standard and state that daily jobs should be run at 6:25AM not midnight.
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
again my Ubuntu server does NOT have anacron installed
ubuntu#xxx:~$ anacron --help
Command 'anacron' not found, but can be installed with:
sudo apt install anacron
logrotate and apache has cron.daily task
ubuntu#xxx:~$ ls -ln /etc/cron.daily/
total 40
-rwxr-xr-x 1 0 0 539 Apr 14 2020 apache2
-rwxr-xr-x 1 0 0 376 Dec 5 2019 apport
-rwxr-xr-x 1 0 0 1478 Apr 9 2020 apt-compat
-rwxr-xr-x 1 0 0 355 Dec 29 2017 bsdmainutils
-rwxr-xr-x 1 0 0 1187 Sep 6 2019 dpkg
-rwxr-xr-x 1 0 0 377 Jan 21 2019 logrotate
-rwxr-xr-x 1 0 0 1123 Feb 26 2020 man-db
-rwxr-xr-x 1 0 0 4574 Jul 18 2019 popularity-contest
-rwxr-xr-x 1 0 0 214 Dec 7 23:35 update-notifier-common
vi /etc/cron.daily/logrotate
#!/bin/sh
# skip in favour of systemd timer
if [ -d /run/systemd/system ]; then
exit 0
fi
# this cronjob persists removals (but not purges)
if [ ! -x /usr/sbin/logrotate ]; then
exit 0
fi
/usr/sbin/logrotate /etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
/usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit $EXITVALUE
vi /etc/cron.daily/apache2
#!/bin/sh
# run htcacheclean if set to 'cron' mode
set -e
set -u
type htcacheclean > /dev/null 2>&1 || exit 0
[ -e /etc/default/apache-htcacheclean ] || exit 0
# edit /etc/default/apache-htcacheclean to change this
HTCACHECLEAN_MODE=daemon
HTCACHECLEAN_RUN=auto
HTCACHECLEAN_SIZE=300M
HTCACHECLEAN_PATH=/var/cache/apache2/mod_cache_disk
HTCACHECLEAN_OPTIONS=""
. /etc/default/apache-htcacheclean
[ "$HTCACHECLEAN_MODE" = "cron" ] || exit 0
htcacheclean ${HTCACHECLEAN_OPTIONS} \
-p${HTCACHECLEAN_PATH} \
-l${HTCACHECLEAN_SIZE}
/etc/logrotate.conf is just a standard file
# see "man logrotate" for details
# rotate log files weekly
weekly
# use the adm group by default, since this is the owning group
# of /var/log/syslog.
su root adm
# keep 4 weeks worth of backlogs
rotate 4
# create new (empty) log files after rotating old ones
create
# use date as a suffix of the rotated file
#dateext
# uncomment this if you want your log files compressed
#compress
# packages drop log rotation information into this directory
include /etc/logrotate.d
# system-specific logs may be also be configured here.
apache2 included under logrotate.d
ubuntu#xxx:~$ ls -ln /etc/logrotate.d
total 52
-rw-r--r-- 1 0 0 120 Sep 6 2019 alternatives
-rw-r--r-- 1 0 0 442 Apr 14 2020 apache2
-rw-r--r-- 1 0 0 126 Dec 5 2019 apport
-rw-r--r-- 1 0 0 173 Apr 9 2020 apt
-rw-r--r-- 1 0 0 91 Nov 2 2020 bootlog
-rw-r--r-- 1 0 0 130 Jan 21 2019 btmp
-rw-r--r-- 1 0 0 112 Sep 6 2019 dpkg
-rw-r--r-- 1 0 0 845 Nov 7 2019 mysql-server
-rw-r--r-- 1 0 0 501 Mar 7 2019 rsyslog
-rw-r--r-- 1 0 0 119 Mar 31 2020 ubuntu-advantage-tools
-rw-r--r-- 1 0 0 178 Jan 22 2020 ufw
-rw-r--r-- 1 0 0 235 Jul 21 2020 unattended-upgrades
-rw-r--r-- 1 0 0 145 Feb 19 2018 wtmp
vi /etc/logrotate.d/apache2
/var/log/apache2/*.log {
daily
missingok
rotate 14
compress
delaycompress
notifempty
create 640 root adm
sharedscripts
postrotate
if invoke-rc.d apache2 status > /dev/null 2>&1; then \
invoke-rc.d apache2 reload > /dev/null 2>&1; \
fi;
endscript
prerotate
if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
run-parts /etc/logrotate.d/httpd-prerotate; \
fi; \
endscript
}
I just want to know why my Apache gets restarted at midnight when according to crontab it should be at 6:25AM and change the time to avoid conflict with my 0th min hourly job. thanks!

Backup a keyspace in scylladb

I am trying to take a backup of my data in scylladb. Currently, my Scylla is in docker.
So I am running this command:
docker exec -it saif-scylla nodetool snapshot testkeyspace
Requested creating snapshot(s) for [testkeyspace] with snapshot name [1564405495089]
Snapshot directory: 1564405495089
But I can't find any backup in /var/lib/scylla/data folder.
Also what exactly it means by "requested".
Also when I list the snapshots by running the command:
docker exec -it saif-scylla nodetool listsnapshots
What I can see is:
Snapshot name Keyspace name Column family name True size Size on disk
1564405495089 testkeyspace new_events 0 bytes 0 bytes
1564405495089 testkeyspace new_pings 0 bytes 0 bytes
1564405495089 testkeyspace test_pings 0 bytes 0 bytes
I am not getting what's wrong is happening here.
Any Idea, what I am doing wrong?
Any help will be helpful.
Thanks
The snapshot files are located in the table directory, under "snapshots".
For example, for keyspace mykeyspace, and table heartrate_ttl, after running nodetool snapshot mykeyspace;
ls -l /var/lib/scylla/data/mykeyspace/heartrate_ttl-75359ce0b22611e9b18b000000000000/snapshots/1564421433190/
total 44
-rw-r--r--. 2 root root 66 Jul 29 17:30 la-4-big-CompressionInfo.db
-rw-r--r--. 2 root root 189 Jul 29 17:30 la-4-big-Data.db
-rw-r--r--. 2 root root 10 Jul 29 17:30 la-4-big-Digest.sha1
-rw-r--r--. 2 root root 16 Jul 29 17:30 la-4-big-Filter.db
-rw-r--r--. 2 root root 30 Jul 29 17:30 la-4-big-Index.db
-rw-r--r--. 2 root root 54 Jul 29 17:30 la-4-big-Scylla.db
-rw-r--r--. 2 root root 4466 Jul 29 17:30 la-4-big-Statistics.db
-rw-r--r--. 2 root root 92 Jul 29 17:30 la-4-big-Summary.db
-rw-r--r--. 2 root root 101 Jul 29 17:30 la-4-big-TOC.txt
-rw-r--r--. 1 root root 38 Jul 29 17:30 manifest.json
nodetool listsnapshots should give you the snapshot size
nodetool listsnapshots
Snapshot Details:
Snapshot name Keyspace name Column family name True size Size on disk
1564421433190 mykeyspace heartrate_ttl 0 bytes 4.91 KB
I used Scylla 3.0.5 Docker for the above example.
Could it be that you have no data in these tables?

Pruning did not reduce the inference time or model size?

I ran the pruning demo provided by tensorflow and found that pruning did not reduce the inference time or model size.
Below is my experiment result. It can be seen that the different pruning stages have the same model size.
-rw-r--r-- 1 root root 4.1M May 27 06:15 model.ckpt-2437.data-00000-of-00002
-rw-r--r-- 1 root root 8.2M May 27 06:15 model.ckpt-2437.data-00001-of-00002
-rw-r--r-- 1 root root 1.7K May 27 06:15 model.ckpt-2437.index
-rw-r--r-- 1 root root 368K May 27 06:15 model.ckpt-2437.meta
-rw-r--r-- 1 root root 4.1M May 27 06:25 model.ckpt-4871.data-00000-of-00002
-rw-r--r-- 1 root root 8.2M May 27 06:25 model.ckpt-4871.data-00001-of-00002
-rw-r--r-- 1 root root 1.7K May 27 06:25 model.ckpt-4871.index
-rw-r--r-- 1 root root 368K May 27 06:25 model.ckpt-4871.meta
-rw-r--r-- 1 root root 4.1M May 27 06:35 model.ckpt-7329.data-00000-of-00002
-rw-r--r-- 1 root root 8.2M May 27 06:35 model.ckpt-7329.data-00001-of-00002
-rw-r--r-- 1 root root 1.7K May 27 06:35 model.ckpt-7329.index
-rw-r--r-- 1 root root 368K May 27 06:35 model.ckpt-7329.meta
The model inference time obtained in different pruning stages is basically the same.
2018-05-27 06:16:42.845279: precision # 1 = 0.697, inf time = 0.03076
2018-05-27 06:27:26.517855: precision # 1 = 0.756, inf time = 0.02980
2018-05-27 06:37:31.223502: precision # 1 = 0.783, inf time = 0.02989
I use the default pruning parameters.

CMake won't find_path in yocto environment, but will with same repo and cmake outside of yocto

I am having trouble getting a recipe build in Yocto.
The only thing you need to know if that Yocto setups up sysroots and other environment variables for builds (PKG_CONFIG_PATH, PATH, compiler flags, etc).
Here is the output of printenv used during the Yocto build. Something in here is causing find_path to fail in CMake.
Here is the bit that is failing.
find_path( MFX_INCLUDE mfxdefs.h PATHS ${MFX_API_HOME}/include )
In the cross environment, MFX_INCLUDE gets set to MFX_INCLUDE-NOTFOUND. In my local non-cross environment, it (correctly) get's set to /home/pknopf/git/MediaSDK/api/include because it correctly finds the mfxdefs.h in there.
Any ideas as to why my find_path command would be calling on one, and not the other?
By the way, my local machine is using CMake 3.5.1 (working), while Yocto is using 3.7.2 (not working).
I feel it has something to do with the environment variables setup by Yocto, but I'm not sure which one.
EDIT: To make things a little more clear, the following is not working.
find_path( MFX_INCLUDE mfxdefs.h PATHS /home/pknopf/git/x3/abrarecipes/build/tmp/work/corei7-64-poky-linux/msdk/git-r0/git/api/include)
This results in:
MFX_INCLUDE-NOTFOUND
Here is the contents of /home/pknopf/git/x3/abrarecipes/build/tmp/work/corei7-64-poky-linux/msdk/git-r0/git/api/include:
ls -l /home/pknopf/git/x3/abrarecipes/build/tmp/work/corei7-64-poky-linux/msdk/git-r0/git/api/include
total 220
-rw-r--r-- 1 1000 1000 4320 Mar 2 15:24 mfxastructures.h
-rw-r--r-- 1 1000 1000 2979 Mar 2 15:24 mfxaudio.h
-rw-r--r-- 1 1000 1000 4966 Mar 2 15:24 mfxaudio++.h
-rw-rw-r-- 1 root root 4639 Mar 2 16:03 mfxbrc.h
-rw-r--r-- 1 1000 1000 4876 Mar 2 15:24 mfxcommon.h
-rw-rw-r-- 1 root root 6596 Mar 2 16:03 mfxdefs.h
-rw-r--r-- 1 1000 1000 7433 Mar 2 15:24 mfxdispatcherprefixedfunctions.h
-rw-r--r-- 1 1000 1000 2477 Mar 2 15:24 mfxenc.h
-rw-r--r-- 1 1000 1000 15517 Mar 2 15:24 mfxfei.h
-rw-rw-r-- 1 root root 6529 Mar 2 16:03 mfxfeihevc.h
-rw-r--r-- 1 1000 1000 2519 Mar 2 15:24 mfxjpeg.h
-rw-r--r-- 1 1000 1000 2604 Mar 2 15:24 mfxla.h
-rw-r--r-- 1 1000 1000 2533 Mar 2 15:24 mfxmvc.h
-rw-r--r-- 1 1000 1000 2540 Mar 2 15:24 mfxpak.h
-rw-rw-r-- 1 root root 11116 Mar 2 16:03 mfxplugin.h
-rw-r--r-- 1 1000 1000 28017 Mar 2 15:24 mfxplugin++.h
-rw-r--r-- 1 1000 1000 2136 Mar 2 15:24 mfxsession.h
-rw-rw-r-- 1 root root 50908 Mar 2 16:03 mfxstructures.h
-rw-r--r-- 1 1000 1000 5768 Mar 2 15:24 mfxvideo.h
-rw-r--r-- 1 1000 1000 10110 Mar 2 15:24 mfxvideo++.h
-rw-r--r-- 1 1000 1000 2175 Mar 2 15:24 mfxvp8.h
-rw-r--r-- 1 1000 1000 1147 Mar 2 15:24 mfxvstructures.h
As you can see, mfxdefs.h is definitely there...
EDIT2: Using NO_CMAKE_FIND_ROOT_PATH fixed it. Not sure why, looking at documentation now.