Hello community, here is the log from the commit of package insserv for openSUSE:Factory checked in at Fri Jun 18 06:49:15 CEST 2010. -------- --- insserv/insserv.changes 2010-06-10 17:22:43.000000000 +0200 +++ /mounts/work_src_done/STABLE/insserv/insserv.changes 2010-06-15 14:14:17.000000000 +0200 @@ -1,0 +2,5 @@ +Tue Jun 15 14:05:31 CEST 2010 - werner@suse.de + +- Do not forget the aliases in the makefiles + +------------------------------------------------------------------- calling whatdependson for head-i586 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ insserv.spec ++++++ --- /var/tmp/diff_new_pack.BOthpA/_old 2010-06-18 06:48:52.000000000 +0200 +++ /var/tmp/diff_new_pack.BOthpA/_new 2010-06-18 06:48:52.000000000 +0200 @@ -24,7 +24,7 @@ Provides: aaa_base:/sbin/insserv AutoReqProv: on Version: 1.14.0 -Release: 6 +Release: 7 Summary: A Program to Arrange Initialization Scripts Url: http://savannah.nongnu.org/projects/sysvinit/ Source0: http://download.savannah.gnu.org/releases/sysvinit/insserv-%{version}.tar.bz2 ++++++ insserv-1.14.0.dif ++++++ --- /var/tmp/diff_new_pack.BOthpA/_old 2010-06-18 06:48:52.000000000 +0200 +++ /var/tmp/diff_new_pack.BOthpA/_new 2010-06-18 06:48:52.000000000 +0200 @@ -263,37 +263,164 @@ if (serv->stopp->lvl & lvl) { # ifndef USE_KILL_IN_BOOT --- listing.c -+++ listing.c 2010-06-10 15:08:15.123424826 +0000 -@@ -534,7 +534,7 @@ out: ++++ listing.c 2010-06-15 12:03:15.358924922 +0000 +@@ -534,13 +534,11 @@ out: * Sort linked list of provides into start or stop order * during this set new start or stop order of the serives. */ -#undef SORT_REQUESTS -+#define SORT_REQUESTS 1 ++#define getdep(req) ((dir_t*)(req)->serv->dir) void lsort(const char type) { list_t sort = { &sort, &sort }; -@@ -560,7 +560,7 @@ void lsort(const char type) +-#ifdef SORT_REQUESTS +- list_t * this; +-#endif /* SORT_REQUESTS */ ++ list_t * ptr, * safe, * this; + int order; + + switch (type) { +@@ -554,24 +552,51 @@ void lsort(const char type) + } + } + join(&sort, d_start); +-#ifdef SORT_REQUESTS + list_for_each(this, s_start) { + service_t * serv = getservice(this); if (serv->attr.flags & SERV_DUPLET) continue; initial(&sort); - for (order = 0; order <= maxstop; order++) { +- list_t * ptr, * safe; + for (order = maxstop; order >= 0; order--) { - list_t * ptr, * safe; list_for_each_safe(ptr, safe, &serv->sort.rev) { req_t * rev = getreq(ptr); -@@ -589,7 +589,7 @@ void lsort(const char type) +- dir_t * dir = (dir_t*)rev->serv->dir; +- if (dir->stopp.deep == order) +- move_tail(ptr, &sort); ++ dir_t * dir = getdep(rev); ++ if (dir->stopp.deep == order) { ++ service_t *const orig = getorig(rev->serv); ++ list_t * chk; ++ boolean found = false; ++ ++ list_for_each_prev(chk, &sort) { /* check if service was already resorted */ ++ req_t * this = getreq(chk); ++ if (getdep(this)->stopp.deep != order) ++ break; /* added on tail always with same order */ ++ if (this->serv->dir == orig->dir) { ++ found = true; ++ } ++ } ++ ++ if (!found) { ++ if (rev->serv != orig) { /* replace alias with its original */ ++ req_t *restrict this; ++ if (posix_memalign((void*)&this, sizeof(void*), alignof(req_t)) != 0) ++ error("%s", strerror(errno)); ++ memset(this, 0, alignof(req_t)); ++ this->flags = rev->flags; ++ this->serv = orig; ++ replace(ptr, &this->list); ++ ptr = &this->list; ++ free(rev); ++ } ++ move_tail(ptr, &sort); ++ } else { /* already included */ ++ delete(ptr); ++ free(rev); ++ } ++ } + } + } + join(&sort, &serv->sort.rev); + } +-#endif /* SORT_REQUESTS */ + break; + default: + for (order = 0; order <= maxstart; order++) { +@@ -583,24 +608,52 @@ void lsort(const char type) + } + } + join(&sort, d_start); +-#ifdef SORT_REQUESTS + list_for_each(this, s_start) { + service_t * serv = getservice(this); if (serv->attr.flags & SERV_DUPLET) continue; initial(&sort); - for (order = 0; order <= maxstart; order++) { +- list_t * ptr, * safe; + for (order = maxstart; order >= 0; order--) { - list_t * ptr, * safe; list_for_each_safe(ptr, safe, &serv->sort.req) { req_t * req = getreq(ptr); +- dir_t * dir = (dir_t*)req->serv->dir; +- if (dir->start.deep == order) +- move_tail(ptr, &sort); ++ dir_t * dir = getdep(req); ++ if (dir->start.deep == order) { ++ service_t * orig = getorig(req->serv); ++ list_t * chk; ++ boolean found = false; ++ ++ list_for_each_prev(chk, &sort) { /* check if service was already resorted */ ++ req_t * this = getreq(chk); ++ if (getdep(this)->start.deep != order) ++ break; /* added on tail always with same order */ ++ if (this->serv->dir == orig->dir) { ++ found = true; ++ break; ++ } ++ } ++ ++ if (!found) { ++ if (req->serv != orig) { /* replace alias with its original */ ++ req_t *restrict this; ++ if (posix_memalign((void*)&this, sizeof(void*), alignof(req_t)) != 0) ++ error("%s", strerror(errno)); ++ memset(this, 0, alignof(req_t)); ++ this->flags = req->flags; ++ this->serv = orig; ++ replace(ptr, &this->list); ++ ptr = &this->list; ++ free(req); ++ } ++ move_tail(ptr, &sort); ++ } else { /* already included */ ++ delete(ptr); ++ free(req); ++ } ++ } + } + } + join(&sort, &serv->sort.req); + } +-#endif /* SORT_REQUESTS */ + break; + } + --- listing.h -+++ listing.h 2010-06-10 14:35:08.958924794 +0000 -@@ -181,6 +181,24 @@ static inline boolean list_empty(list_t ++++ listing.h 2010-06-15 10:52:04.446925086 +0000 +@@ -158,6 +158,18 @@ static inline void delete(list_t *restri + initial(entry); + } + ++/* ++ * Replace an entry by a new one. ++ */ ++static inline void replace(list_t *restrict old, list_t *restrict new) attribute((always_inline,nonnull(1,2))); ++static inline void replace(list_t *restrict old, list_t *restrict new) ++{ ++ new->next = old->next; ++ new->next->prev = new; ++ new->prev = old->prev; ++ new->prev->next = new; ++} ++ + static inline void join(list_t *restrict list, list_t *restrict head) attribute((always_inline,nonnull(1,2))); + static inline void join(list_t *restrict list, list_t *restrict head) + { +@@ -181,6 +193,24 @@ static inline boolean list_empty(list_t return head->next == head; } @@ -318,7 +445,7 @@ static inline void move_tail(list_t *restrict entry, list_t *restrict head) attribute((always_inline,nonnull(1,2))); static inline void move_tail(list_t *restrict entry, list_t *restrict head) { -@@ -379,6 +397,8 @@ static inline char * xstrdup(const char +@@ -379,6 +409,8 @@ static inline char * xstrdup(const char #define SERV_NOSTOP 0x0100 #define SERV_CMDLINE 0x0200 #define SERV_FIRST 0x0400 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org