diff options
Diffstat (limited to 'main/openrc')
-rw-r--r-- | main/openrc/APKBUILD | 4 | ||||
-rw-r--r-- | main/openrc/rc-sys-lxc.patch | 39 |
2 files changed, 42 insertions, 1 deletions
diff --git a/main/openrc/APKBUILD b/main/openrc/APKBUILD index 2cf5d626a..eea2cc3f4 100644 --- a/main/openrc/APKBUILD +++ b/main/openrc/APKBUILD @@ -2,7 +2,7 @@ pkgname=openrc pkgver=0.10.5 _ver=${pkgver/_git*/} -pkgrel=3 +pkgrel=4 pkgdesc="OpenRC manages the services, startup and shutdown of a host" url="http://git.overlays.gentoo.org/gitweb/?p=proj/openrc.git" arch="all" @@ -16,6 +16,7 @@ source="http://distfiles.gentoo.org/distfiles/$pkgname-$_ver.tar.bz2 0001-Force-root-be-rw-before-localmount.patch swap-umount-tmpfs.patch swap-ifexists.patch + rc-sys-lxc.patch hostname.initd hwdrivers.initd @@ -67,6 +68,7 @@ md5sums="720341f7be2ec2f118a792e29e030e2d openrc-0.10.5.tar.bz2 4fd036ff07ed9ad7fb76af6a3ffc0695 0001-Force-root-be-rw-before-localmount.patch c2af5e52da614a6cef02d1e4d537e360 swap-umount-tmpfs.patch 1c426b84d13a725ad493647b5253f239 swap-ifexists.patch +4a2ec4d9d988423fdafc332d2174ecdf rc-sys-lxc.patch c32e15b0858eef708497e7ee6355a055 hostname.initd 78e9f0df010ac8095c5e76a91a1d3b12 hwdrivers.initd 33ca3e558c42cdd17adccbc7807298f7 keymaps.initd diff --git a/main/openrc/rc-sys-lxc.patch b/main/openrc/rc-sys-lxc.patch new file mode 100644 index 000000000..c693245d3 --- /dev/null +++ b/main/openrc/rc-sys-lxc.patch @@ -0,0 +1,39 @@ +diff --git a/src/librc/librc.c b/src/librc/librc.c +index d82880f..40b975a 100644 +--- a/src/librc/librc.c ++++ b/src/librc/librc.c +@@ -168,7 +168,7 @@ file_regex(const char *file, const char *regex) + char *line = NULL; + size_t len = 0; + regex_t re; +- bool retval = false; ++ bool retval = true; + int result; + + if (!(fp = fopen(file, "r"))) +@@ -184,11 +184,21 @@ file_regex(const char *file, const char *regex) + } + + while ((rc_getline(&line, &len, fp))) { +- if (regexec(&re, line, 0, NULL, 0) == 0) +- retval = true; +- if (retval) +- break; ++ char *str = line; ++ /* some /proc files have \0 separated content so we have to ++ loop through the 'line' */ ++ do { ++ if (regexec(&re, str, 0, NULL, 0) == 0) ++ goto found; ++ str += strlen(str) + 1; ++ /* len is the size of allocated buffer and we don't ++ want call regexec BUFSIZE times. find next str */ ++ while (*str == '\0' && str < line + len) ++ str++; ++ } while (str < line + len); + } ++ retval = false; ++found: + fclose(fp); + free(line); + regfree(&re); |