Commit Graph

20 Commits

Author SHA1 Message Date
Carsten Haitzler 5bfdf26fb6 efreet caceh - fix coverity report
fix CID 1429935
2020-06-19 00:57:03 +01:00
Carsten Haitzler 125648cc92 efreetd - cache - add more statinfo work around 0 mtime distros
some distros 9notably in this case nixos) want to do reproducible
builds. to them this means going around setting mtime for all files to
0. this means efreetd not only thinks mtime is invalid/stupid (0 is
generally just that as midnight on jan 1 1970 is not exactly a
sensible dare for a modified timestamp of a file as no filesystem with
any sanity will have not been modified since that time), but it keeps
mtime at 0 even when things update. this totally breaks efreetd that
expects to find mtime increases over time as things change. it's
necessary because it has to perform a "are mu caches up to date" scan
of all file data it caches and it needs to know if it should rebuild
something based on this.

so this does a few things:

1. it makes mtime have to be an exact match to the cache, not cache
mtime >= file mtime. so any change forward or back is an inavlidation.
2. it now also uses ctime, mode, size, uid, gid, block count and if a
symlink, the sha1 of the symlink path in addition and any change to
these == invalid.

this adds a lot of code and changes how dirs get scanned a bit but it
means it can pick up changes on these 0 mtime distros.

interestingly the policy of mtime being 0 is to have a reprodcible fs
... but ctime still changes and is > 0, as does inode info, so it's
not actually possible to have it totally work... but they try still,
so this is a fix for that problem.

whilst i was doing thisi also noticed efreetd re-red dirs many times
due to icon theme inhritance. i also fixed that to do a LOT less
syscalls by only scanning a dir once as i was rejigging the scanning
code at the time anyway. this should optimize thr scan costs at
efreetd startup too.

@fix
@opt
2020-06-18 11:18:35 +01:00
Carsten Haitzler b376c2a902 efreet - look in /usr/local/share/pixmaps too 2020-04-16 13:04:03 +01:00
Vincent Torri a5267d3d9c remove Evil.h when not necessary, include evil_private.h when necessary
Test Plan: compilation

Reviewers: zmike, raster, cedric

Reviewed By: zmike

Subscribers: #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8925
2019-05-20 09:10:00 -04:00
Carsten Haitzler f4ce0d1b95 efreet icon cache creation binary - remove redundent check
found by PVS studio
2017-07-31 11:41:10 +09:00
Carsten Haitzler 8786449704 efreetd cache create - fix reallocs to bail on out of memory cleanly 2017-07-24 13:37:57 +09:00
Carsten Haitzler 53d6486ffa efreet icon cache create bin - check realloc results and handle
@fix
2017-07-16 15:56:02 +09:00
Mike Blumenkrantz 56469c55d9 efreet_icon_cache_create: null theme eet file to avoid double free
@fix
2015-12-16 13:40:00 -05:00
Vincent Torri 0497b9685c efl: add binary mode to open() calls
This allows better compatibility with Windows

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-12-05 21:06:04 +01:00
Vincent Torri 2c9848aa7e efreet: use ecore_file function instead of stat() in the icon cache code
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-10-12 17:21:59 -07:00
vivek d7c1987d0f efreet: pass the correct option from the user input.
Summary:
Pass the correct option -f for flush

@fix

Signed-off-by: vivek <vivek.ellur@samsung.com>

Reviewers: devilhorns, englebass

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1801

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2014-12-25 21:32:55 +01:00
Carsten Haitzler c69cf48746 recursive monitoring and scanning fix for icons and desktop files
this fixes T580 ... or SHOULD fix it. there is recursion detection
code now and it properly follows symlinks and dirs. it also properly
updates the file monitor tree for both icons and desktops and it only
monitors dirs, not files (as a dir picks up changes to child data).
tested and it seems not to recurse into self-referencing symlinks
(once it detects the loop) and detects changes nicely in all my tests.
2013-11-27 19:50:24 +09:00
Sebastian Dransfeld c483214170 efreet: Check for missing icon cache file
Fixes T196
2013-11-21 12:25:26 +01:00
Cedric Bail 2859d76402 efreet: set process priority on Windows too. 2013-07-12 08:42:08 +09:00
Cedric Bail 83de2e25ca efreet: it should be a #ifdef now... 2013-07-11 18:22:38 +09:00
Cedric Bail b887558afa efreet: use the correct guard. 2013-07-11 18:16:32 +09:00
Stefan Schmidt 531be113be efreet: Guard priority settign and getting functions for WIN32
These functions are not available on a mingw build. Not really needed
either so just ifdef them.
2013-07-09 09:06:21 +01:00
Sebastian Dransfeld 58fc3a8f32 efreet: Low priority for cache rebuild 2013-06-20 13:53:54 +02:00
Gustavo Sverzut Barbieri 0a2d116119 efl: eina_alloca.h to simplify alloca() usage.
having to replicate 18 lines per file just to access alloca() is
insane. Let's do that in Eina.h and avoid that crap :-/



SVN revision: 82082
2013-01-03 15:10:34 +00:00
Gustavo Sverzut Barbieri 4bc0210bd3 efl: merge efreet.
seems to be fine, pass distcheck and friends. please report.

changes:
 - documentation hierarchy fixes
 - replaced __UNUSED__ with EINA_UNUSED
 - replaced PKG_DATA_DIR with PACKAGE_DATA_DIR"/efreet"



SVN revision: 81889
2012-12-29 23:04:40 +00:00