packages: epsilon/epsilon.spec, epsilon/epsilon-update.patch (NEW) - partia...
qboosh
qboosh at pld-linux.org
Sun Jan 22 14:56:07 CET 2012
Author: qboosh Date: Sun Jan 22 13:56:07 2012 GMT
Module: packages Tag: HEAD
---- Log message:
- partial update for current ecore/eina and libpng API; added obsolete library note
---- Files affected:
packages/epsilon:
epsilon.spec (1.23 -> 1.24) , epsilon-update.patch (NONE -> 1.1) (NEW)
---- Diffs:
================================================================
Index: packages/epsilon/epsilon.spec
diff -u packages/epsilon/epsilon.spec:1.23 packages/epsilon/epsilon.spec:1.24
--- packages/epsilon/epsilon.spec:1.23 Mon Aug 25 18:47:21 2008
+++ packages/epsilon/epsilon.spec Sun Jan 22 14:56:02 2012
@@ -2,8 +2,9 @@
#
# Conditional build:
%bcond_without static_libs # don't build static library
+%bcond_with epeg # use Epeg for JPEG scaling (no longer supported by configure)
#
-%define ecore_ver 0.9.9.044
+%define ecore_ver 1.0.0
%define edje_ver 0.9.9.044
%define epeg_ver 0.9.1.043
%define evas_ver 0.9.9.044
@@ -18,13 +19,17 @@
Group: X11/Libraries
Source0: %{name}-%{version}-%{_snap}.tar.bz2
# Source0-md5: b677b9c39aa2d5b467503faffd4b4879
+# this patch is probably incomplete, Ecore_List and Eina_List semantics differ
+Patch0: %{name}-update.patch
URL: http://enlightenment.org/
-# ecore-con ecore-evas ecore-file
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: ecore-devel >= %{ecore_ver}
+BuildRequires: ecore-evas-devel >= %{ecore_ver}
+BuildRequires: ecore-file-devel >= %{ecore_ver}
+BuildRequires: ecore-ipc-devel >= %{ecore_ver}
BuildRequires: edje-devel >= %{edje_ver}
-BuildRequires: epeg-devel >= %{epeg_ver}
+%{?with_epeg:BuildRequires: epeg-devel >= %{epeg_ver}}
BuildRequires: evas-devel >= %{evas_ver}
BuildRequires: imlib2-devel >= 1.0.0
BuildRequires: libpng-devel >= 1.2.0
@@ -42,12 +47,16 @@
library. The lib itself conforms to the standard put forth by
freedesktop.org . You can find out more information about it at
http://triq.net/~jens/thumbnail-spec/index.html .
+%if %{with epeg}
Epeg offers very noticeable speed increases to this standard, but it
is only available if the input image is a JPEG file. If the file is
anything other than jpg, the traditional freedesktop.org thumbnailing
will occur. To show the speed increase epeg offers, Epsilon can be
built with and without epeg.
+%endif
+
+Note: this library is obsolete; Ethumb should be used instead.
%description -l pl.UTF-8
Epsilon to mała, niezależna od ekranu i szybka biblioteka do
@@ -55,22 +64,27 @@
standardem opracowanym przez freedesktop.org . Więcej informacji
można znaleźć pod adresem
http://triq.net/~jens/thumbnail-spec/index.html .
+%if %{with epeg}
Epeg oferuje bardzo zauważalne przyspieszenie w stosunku do tego
standardu, ale jest ono dostępne tylko jeśli obrazek jest plikiem
JPEG. Jeśli plik jest innego typu, zostanie użyte tradycyjne
zachowanie freedesktop.org . Aby pokazać przyspieszenie oferowane
przez epeg, Epsilon może być zbudowany z lub bez epeg.
+%endif
+
+Uwaga: ta biblioteka jest przestarzała; zamiast niej należy używać
+biblioteki Ethumb.
%package libs
Summary: Epsilon library
Summary(pl.UTF-8): Biblioteka Epsilon
Group: X11/Libraries
-Requires: ecore-con >= %{ecore_ver}
Requires: ecore-evas >= %{ecore_ver}
Requires: ecore-file >= %{ecore_ver}
+Requires: ecore-ipc >= %{ecore_ver}
Requires: edje-libs >= %{edje_ver}
-Requires: epeg-libs >= %{epeg_ver}
+%{?with_epeg:Requires: epeg-libs >= %{epeg_ver}}
Requires: evas >= %{evas_ver}
Requires: imlib2 >= 1.0.0
@@ -85,10 +99,11 @@
Summary(pl.UTF-8): Plik nagłówkowy Epsilon
Group: X11/Development/Libraries
Requires: %{name}-libs = %{version}-%{release}
-# ecore-con ecore-evas ecore-file
-Requires: ecore-devel >= %{ecore_ver}
+Requires: ecore-evas-devel >= %{ecore_ver}
+Requires: ecore-file-devel >= %{ecore_ver}
+Requires: ecore-ipc-devel >= %{ecore_ver}
Requires: edje-devel >= %{edje_ver}
-Requires: epeg-devel >= %{epeg_ver}
+%{?with_epeg:Requires: epeg-devel >= %{epeg_ver}}
Requires: evas-devel >= %{evas_ver}
Requires: imlib2-devel >= 1.0.0
Requires: libpng-devel >= 1.2.0
@@ -127,6 +142,7 @@
%prep
%setup -q -n %{name}-%{version}-%{_snap}
+%patch0 -p1
%build
%{__libtoolize}
@@ -144,7 +160,7 @@
%{__make} install \
DESTDIR=$RPM_BUILD_ROOT
-rm -f $RPM_BUILD_ROOT%{_libdir}/epsilon/plugins/*.{la,a}
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/epsilon/plugins/*.{la,a}
%clean
rm -rf $RPM_BUILD_ROOT
@@ -189,6 +205,9 @@
All persons listed below can be reached at <cvs_login>@pld-linux.org
$Log$
+Revision 1.24 2012/01/22 13:56:02 qboosh
+- partial update for current ecore/eina and libpng API; added obsolete library note
+
Revision 1.23 2008/08/25 16:47:21 pablo
- updated to 20080813 snap
================================================================
Index: packages/epsilon/epsilon-update.patch
diff -u /dev/null packages/epsilon/epsilon-update.patch:1.1
--- /dev/null Sun Jan 22 14:56:07 2012
+++ packages/epsilon/epsilon-update.patch Sun Jan 22 14:56:02 2012
@@ -0,0 +1,727 @@
+--- epsilon-0.3.0.013-20080813/src/bin/epsilon_thumbd.c.orig 2008-05-22 05:36:25.000000000 +0200
++++ epsilon-0.3.0.013-20080813/src/bin/epsilon_thumbd.c 2012-01-22 14:01:15.587000345 +0100
+@@ -1,7 +1,7 @@
+ #include "epsilon_private.h"
+ #include <Ecore.h>
+-#include <Ecore_Data.h>
+ #include <Ecore_Ipc.h>
++#include <Eina.h>
+
+ #include <stdio.h>
+ #include <stdlib.h>
+@@ -36,7 +36,7 @@ struct _Epsilon_Client
+ {
+ unsigned int id;
+ Ecore_Ipc_Client *client;
+- Ecore_List *thumbs;
++ Eina_List *thumbs;
+
+ Epsilon_Ipc_End ipcend;
+ };
+@@ -60,7 +60,7 @@ struct _Epsilon_Entry
+ typedef struct _Epsilon_Worker Epsilon_Worker;
+ struct _Epsilon_Worker
+ {
+- Ecore_List *thumbs;
++ Eina_List *thumbs;
+ pid_t child;
+ double runtime;
+ Ecore_Ipc_Server *server;
+@@ -92,13 +92,13 @@ static Ecore_Event_Handler *worker_add =
+ static Ecore_Event_Handler *worker_del = NULL;
+ static Ecore_Event_Handler *worker_data = NULL;
+
+-static Ecore_List *queued_workers;
+-static Ecore_List *gworkers = NULL;
++static Eina_List *queued_workers;
++static Eina_List *gworkers = NULL;
+
+ static Ecore_Ipc_Server *thumb_server = NULL;
+ static Ecore_Ipc_Server *thumbd_server = NULL;
+
+-static Ecore_List *response_queue = NULL;
++static Eina_List *response_queue = NULL;
+
+ static char *epsilond_socket_path(char *name);
+ /* static int epsilond_entry_free(Epsilon_Entry *thumb); */
+@@ -109,7 +109,7 @@ int epsilond_cb_worker_add(void *data, i
+ int epsilond_cb_worker_del(void *data, int type, void *event);
+ int epsilond_cb_worker_data(void *data, int type, void *event);
+
+-void epsilond_init_thumbd_server(Ecore_List* workers)
++void epsilond_init_thumbd_server(Eina_List* workers)
+ {
+ char* buf;
+
+@@ -162,7 +162,7 @@ epsilond_cb_client_add(void *data, int t
+ {
+ Epsilon_Client *cl;
+ Ecore_Ipc_Event_Client_Add *e;
+- Ecore_List *clients = data;
++ Eina_List *clients = data;
+
+ e = event;
+ type = 0;
+@@ -178,7 +178,7 @@ epsilond_cb_client_add(void *data, int t
+ */
+ cl->id = client_id++;
+ cl->client = e->client;
+- ecore_list_append(clients, cl);
++ clients = eina_list_append(clients, cl);
+
+ if (debug) printf("Added client %d\n", cl->id);
+
+@@ -193,7 +193,7 @@ epsilond_cb_worker_add(void *data, int t
+ {
+ Epsilon_Client *cl;
+ Ecore_Ipc_Event_Client_Add *e;
+- Ecore_List *workers = data;
++ Eina_List *workers = data;
+
+ e = event;
+ data = NULL;
+@@ -210,7 +210,7 @@ epsilond_cb_worker_add(void *data, int t
+ */
+ cl->id = client_id++;
+ cl->client = e->client;
+- ecore_list_append(workers, cl);
++ workers = eina_list_append(workers, cl);
+
+ if (debug) printf("Added worker client %d\n", cl->id);
+
+@@ -222,7 +222,7 @@ epsilond_cb_client_del(void *data, int t
+ {
+ Ecore_Ipc_Event_Client_Del *e;
+ Epsilon_Client *cl;
+- Ecore_List *clients = data;
++ Eina_List *clients = data, *le;
+
+ e = event;
+ type = 0;
+@@ -234,10 +234,11 @@ epsilond_cb_client_del(void *data, int t
+ /*
+ * Search for the disconnecting client
+ */
+- ecore_list_first_goto(clients);
+- while ((cl = ecore_list_current(clients))) {
++ le = clients;
++ while (le) {
++ cl = le->data;
+ if (cl->client == e->client) {
+- ecore_list_remove(clients);
++ clients = eina_list_remove_list(clients, le);
+
+ /*
+ * Free thumbnail data associated with this client.
+@@ -247,7 +248,7 @@ epsilond_cb_client_del(void *data, int t
+
+ break;
+ }
+- ecore_list_next(clients);
++ le = eina_list_next(le);
+ }
+
+ ecore_ipc_client_del(e->client);
+@@ -260,7 +261,7 @@ epsilond_cb_worker_del(void *data, int t
+ {
+ Ecore_Ipc_Event_Client_Del *e;
+ Epsilon_Client *cl;
+- Ecore_List *workers = data;
++ Eina_List *workers = data, *le;
+
+ e = event;
+ type = 0;
+@@ -272,10 +273,11 @@ epsilond_cb_worker_del(void *data, int t
+ /*
+ * Search for the disconnecting client
+ */
+- ecore_list_first_goto(workers);
+- while ((cl = ecore_list_current(workers))) {
++ le = workers;
++ while (le) {
++ cl = le->data;
+ if (cl->client == e->client) {
+- ecore_list_remove(workers);
++ workers = eina_list_remove_list(workers, le);
+
+ /*
+ * Free thumbnail data associated with this client.
+@@ -285,7 +287,7 @@ epsilond_cb_worker_del(void *data, int t
+
+ break;
+ }
+- ecore_list_next(workers);
++ le = eina_list_next(le);
+ }
+
+ ecore_ipc_client_del(e->client);
+@@ -306,10 +308,8 @@ epsilon_client_thumb_add(Epsilon_Client
+ thumb->path = strdup(path);
+ thumb->size = strlen(path) + 1;
+
+- if (!cl->thumbs)
+- cl->thumbs = ecore_list_new();
+ if (debug) printf("Queueing %s\n", thumb->path);
+- ecore_list_append(cl->thumbs, thumb);
++ cl->thumbs = eina_list_append(cl->thumbs, thumb);
+ }
+
+ return 1;
+@@ -321,7 +321,7 @@ epsilond_cb_client_data(void *data, int
+ {
+ Ecore_Ipc_Event_Client_Data *e;
+ Epsilon_Client *cl;
+- Ecore_List *clients = data;
++ Eina_List *clients = data, *le;
+
+ e = event;
+ type = 0;
+@@ -335,8 +335,9 @@ epsilond_cb_client_data(void *data, int
+ /*
+ * Match the client sending the data.
+ */
+- ecore_list_first_goto(clients);
+- while ((cl = ecore_list_next(clients))) {
++ le = clients;
++ while (le) {
++ cl = le->data;
+ if (cl->client == e->client)
+ break;
+ }
+@@ -354,10 +355,8 @@ epsilond_cb_client_data(void *data, int
+ memcpy(msg2,msg,sizeof(Epsilon_Message)+msg->bufsize);
+
+ if (debug) printf("** Received %d : %s **\n",msg->mid, ((char *)msg + sizeof(Epsilon_Message)));
+- if (!cl->thumbs)
+- cl->thumbs = ecore_list_new();
+ msg2->nid = cl->id;
+- ecore_list_append(cl->thumbs, msg2);
++ cl->thumbs = eina_list_append(cl->thumbs, msg2);
+ }
+ else {
+ if (debug) printf("ERROR: No matching client for data\n");
+@@ -371,7 +370,7 @@ epsilond_cb_worker_data(void *data, int
+ {
+ Ecore_Ipc_Event_Client_Data *e;
+ Epsilon_Client *cl;
+- Ecore_List *workers;
++ Eina_List *workers, *le;
+
+ e = event;
+ workers = data;
+@@ -384,8 +383,9 @@ epsilond_cb_worker_data(void *data, int
+ /*
+ * Match the client data.
+ */
+- ecore_list_first_goto(workers);
+- while ((cl = ecore_list_next(workers))) {
++ le = workers;
++ while (le = eina_list_next(le)) {
++ cl = le->data;
+ if (cl->client == e->client)
+ break;
+ }
+@@ -406,7 +406,7 @@ epsilond_cb_worker_data(void *data, int
+ response->client = cl;
+ response->msg = calloc(1,sizeof(Epsilon_Message)+msg->bufsize);
+ memcpy(response->msg, msg, sizeof(Epsilon_Message)+msg->bufsize);
+- ecore_list_append(response_queue, response);
++ response_queue = eina_list_append(response_queue, response);
+ }
+ }
+ else {
+@@ -425,33 +425,35 @@ epsilond_client_dispatch(Epsilon_Client
+ /*
+ * Iterate over the thumbnails splitting them between threads.
+ */
+- while (ecore_list_count(cl->thumbs) > 0) {
+- available = ecore_list_count(queued_workers);
+-
+- while ((worker = ecore_list_current(queued_workers))) {
++ while (eina_list_count(cl->thumbs) > 0) {
++ available = eina_list_count(queued_workers);
+
++ Eina_List *le = queued_workers;
++ while (le) {
++ worker = le->data;
+ /*
+ * Don't dispatch work to active workers.
+ */
+- if (!worker->child && !ecore_list_count(worker->thumbs)) {
++ if (!worker->child && !eina_list_count(worker->thumbs)) {
+ Epsilon_Message *msg;
+
+ /*
+ * Get the next message on the queue and break
+ * out of the inner loop if NULL.
+ */
+- msg = ecore_list_first_remove(cl->thumbs);
++ msg = cl->thumbs->data;
++ cl->thumbs = eina_list_remove_list(cl->thumbs, cl->thumbs);
+ if (!msg)
+ break;
+
+ if (debug) printf("Dispatching message %d\n", msg->mid);
+- ecore_list_append(worker->thumbs, msg);
++ worker->thumbs = eina_list_append(worker->thumbs, msg);
+
+ if (debug) printf("Assigning %s to worker %p\n",
+ ((char *)msg + sizeof(Epsilon_Message)), worker);
+ if (debug) printf("Dispatched message %d\n", msg->mid);
+
+- ecore_list_next(queued_workers);
++ le = eina_list_next(le);
+ }
+ else {
+ available--;
+@@ -465,7 +467,7 @@ epsilond_client_dispatch(Epsilon_Client
+ * Only start over in the list if we reached the end.
+ */
+ if (!worker)
+- ecore_list_first_goto(queued_workers);
++ le = queued_workers;
+
+ if (!available)
+ break;
+@@ -478,18 +480,22 @@ static int
+ epsilond_worker_run(void *data)
+ {
+ Epsilon_Worker *worker;
+- Epsilon_Message *msg;
++ Epsilon_Message *msg = NULL;
+
+ worker = data;
+ if (debug) printf("Running worker thread %p for %d thumbnails\n", worker,
+- ecore_list_count(worker->thumbs));
++ eina_list_count(worker->thumbs));
+
+ /* FIXME: Do we want the fast exit point here?
+- if (!ecore_list_count(worker->thumbs))
++ if (!eina_list_count(worker->thumbs))
+ exit(0);
+ */
+
+- while ((msg = ecore_list_first_remove(worker->thumbs))) {
++ if(worker->thumbs != NULL) {
++ msg = worker->thumbs->data;
++ worker->thumbs = eina_list_remove_list(worker->thumbs, worker->thumbs);
++ }
++ while (msg) {
+ int status = 0;
+ char *path;
+ Epsilon *ep;
+@@ -538,6 +544,11 @@ epsilond_worker_run(void *data)
+ ecore_ipc_server_flush(worker->server);
+
+ free(msg);
++ if(worker->thumbs != NULL) {
++ msg = worker->thumbs->data;
++ worker->thumbs = eina_list_remove_list(worker->thumbs, worker->thumbs);
++ } else
++ msg = NULL;
+ }
+ ecore_ipc_server_flush(worker->server);
+ ecore_main_loop_quit();
+@@ -553,7 +564,6 @@ epsilond_worker_fork(Epsilon_Worker *wor
+ /*
+ * Begin iteration of the thumb list.
+ */
+- ecore_list_first_goto(worker->thumbs);
+
+ worker->runtime = ecore_time_get();
+ worker->child = fork();
+@@ -611,9 +621,9 @@ epsilond_idle_enterer(void *data)
+ {
+ int idle=0;
+ Epsilon_Client *cl;
+- Epsilon_Response *response;
++ Epsilon_Response *response = NULL;
+ Epsilon_Worker *worker;
+- Ecore_List *clients = data;
++ Eina_List *clients = data, *cle, *wle;
+
+ if (debug) printf("Idle state entered\n");
+
+@@ -621,12 +631,16 @@ epsilond_idle_enterer(void *data)
+ * Send responses for completed thumbnails
+ */
+ if (debug) printf("Preparing %d responses\n",
+- ecore_list_count(response_queue));
+- while ((response = ecore_list_first_remove(response_queue))) {
++ eina_list_count(response_queue));
++ if(response_queue != NULL) {
++ response = response_queue->data;
++ response_queue = eina_list_remove_list(response_queue, response_queue);
++ }
++ while (response) {
+ Epsilon_Message *msg = response->msg;
+
+- ecore_list_first_goto(clients);
+- while ((cl = ecore_list_next(clients))) {
++ cle = clients;
++ while (cle = eina_list_next(cle)) {
+ if (cl->id == msg->nid)
+ break;
+ }
+@@ -643,14 +657,20 @@ epsilond_idle_enterer(void *data)
+ if (debug) printf("Client: %p, Msg: %p\n",cl,msg);
+ }
+ free(response);
++ if(response_queue != NULL) {
++ response = response_queue->data;
++ response_queue = eina_list_remove_list(response_queue, response_queue);
++ } else
++ response = NULL;
+ }
+ if (debug) printf("Finished responses\n");
+
+ /*
+ * Collect completed worker threads.
+ */
+- ecore_list_first_goto(queued_workers);
+- while ((worker = ecore_list_next(queued_workers))) {
++ wle = queued_workers;
++ while (wle = eina_list_next(wle)) {
++ worker = wle->data;
+ int status = 0;
+
+ if (worker->child) {
+@@ -675,7 +695,7 @@ epsilond_idle_enterer(void *data)
+
+ if (debug) printf("Worker %d runtime: %f\n", worker->child, ecore_time_get() - worker->runtime);
+ } else {
+- if (debug) printf("Worker child pid not set, thumbs is: %d\n", ecore_list_count(worker->thumbs));
++ if (debug) printf("Worker child pid not set, thumbs is: %d\n", eina_list_count(worker->thumbs));
+ }
+ }
+
+@@ -684,11 +704,12 @@ epsilond_idle_enterer(void *data)
+ * hope of spreading the workload evenly and avoid stalling any one
+ * particular client longer than others.
+ */
+- ecore_list_first_goto(clients);
+- while ((cl = ecore_list_next(clients))) {
+- int available = ecore_list_count(queued_workers);
++ cle = clients;
++ while (cle = eina_list_next(cle)) {
++ cl = cle->data;
++ int available = eina_list_count(queued_workers);
+
+- if (cl->thumbs && ecore_list_count(cl->thumbs)) {
++ if (cl->thumbs && eina_list_count(cl->thumbs)) {
+ available = epsilond_client_dispatch(cl);
+ }
+
+@@ -702,17 +723,18 @@ epsilond_idle_enterer(void *data)
+
+ }
+
+- idle = ecore_list_count(queued_workers);
++ idle = eina_list_count(queued_workers);
+
+ if (debug) printf("Idle: %d\n", idle);
+
+ /*
+ * Fork off worker threads to begin thumbnailing.
+ */
+- ecore_list_first_goto(queued_workers);
+- while ((worker = ecore_list_next(queued_workers))) {
++ wle = queued_workers;
++ while (wle = eina_list_next(wle)) {
++ worker = wle->data;
+ if (!worker->child) {
+- if (ecore_list_count(worker->thumbs)) {
++ if (eina_list_count(worker->thumbs)) {
+ idle--;
+
+ running_workers++;
+@@ -733,7 +755,7 @@ epsilond_idle_enterer(void *data)
+ /*
+ * FIXME: Detect idle time and exit after a specified interval
+ */
+- if (idle == ecore_list_count(queued_workers)) {
++ if (idle == eina_list_count(queued_workers)) {
+ double now = ecore_time_get();
+ if (!idle_time)
+ idle_time = now;
+@@ -751,17 +773,17 @@ epsilond_init()
+ {
+ int wi;
+ char *buf;
+- Ecore_List *clients = NULL;
++ Eina_List *clients = NULL;
+
+ epsilon_init();
+
+ /*
+ * Create the accounting data for the clients and thumbnail queue.
+ */
+- clients = ecore_list_new();
+- gworkers = ecore_list_new();
+- response_queue = ecore_list_new();
+- queued_workers = ecore_list_new();
++ clients = NULL;
++ gworkers = NULL;
++ response_queue = NULL;
++ queued_workers = NULL;
<<Diff was trimmed, longer than 597 lines>>
---- CVS-web:
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/epsilon/epsilon.spec?r1=1.23&r2=1.24&f=u
More information about the pld-cvs-commit
mailing list