Summary: | www-misc/zoneminder-1.24.2 need patch for amd64 for rtsp support | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Ron <root> |
Component: | New packages | Assignee: | Andreas K. Hüttel <dilfridge> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | root, web-apps |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | AMD64 | ||
OS: | Linux | ||
Whiteboard: | [dilfridge overlay] | ||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | 359605 | ||
Bug Blocks: |
Description
Ron
2010-09-23 01:35:31 UTC
(In reply to comment #0) > Perhaps the patch can be applied in the ebuild for only 64-bit systems The patch you pasted here looks like it should be a no-op on 32-bit machines, so unconditional application of the patch should be fine. (In reply to comment #1) > The patch you pasted here looks like it should be a no-op on 32-bit machines, > so unconditional application of the patch should be fine. It doesn't appear to work on 32-bit machines, at least my 32-bit gentoo vm: In file included from zmc.cpp:24: zm.h:37: error: 'uint8_t' does not name a type zm.h:38: error: 'uint16_t' does not name a type zm.h:39: error: 'uint32_t' does not name a type zm.h:40: error: 'uint64_t' does not name a type make[2]: *** [zmc.o] Error 1 make[2]: Leaving directory `/var/tmp/portage/www-misc/zoneminder-1.24.2/work/ZoneMinder-1.24.2/src' (In reply to comment #2) > It doesn't appear to work on 32-bit machines, at least my 32-bit gentoo vm: Weird. I did not test it (and have never even looked at Zoneminder), but it ought to work. Could you attach (or put in a pastebin) a post-processed copy of the failed file? Generate it by invoking the compiler with the same options, but change -c to -E and drop any -o <file>. (In reply to comment #3) > (In reply to comment #2) > > It doesn't appear to work on 32-bit machines, at least my 32-bit gentoo vm: > Weird. I did not test it (and have never even looked at Zoneminder), but it > ought to work. Could you attach (or put in a pastebin) a post-processed copy > of the failed file? Generate it by invoking the compiler with the same > options, but change -c to -E and drop any -o <file>. Not sure what you want me to do here. Zone minder uses a ./configure script to compile zoneminder. I believe its just that the datatypes such as "uint8_t" aren't available on 32-bit systems. The only other change I have that is non-standard is "CXXFLAGS=-D__STDC_CONSTANT_MACROS" to address the issue with ffmpeg-0.6 (see http://bugs.gentoo.org/show_bug.cgi?id=320081) The same patch on a x86_64 system compiles without any errors. Its has to be a include header issue, but I don't know where to apply the correct change. below is the configure script options: Compiling source in /var/tmp/portage/www-misc/zoneminder-1.24.2/work/ZoneMinder-1.24.2 ... ./configure --prefix=/usr --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --with-libarch=lib --with-mysql=/usr --with-ffmpeg --with-webdir=/var/www/zoneminder/htdocs --with-cgidir=/var/www/zoneminder/cgi-bin --with-webuser=apache --with-webgroup=apache --enable-debug=no --enable-crashtrace=no compile stalls right at the beginning: make all-recursive make[1]: Entering directory `/var/tmp/portage/www-misc/zoneminder-1.24.2/work/ZoneMinder-1.24.2' Making all in src make[2]: Entering directory `/var/tmp/portage/www-misc/zoneminder-1.24.2/work/ZoneMinder-1.24.2/src' i686-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I.. -I/usr/include -Iyes/include -Wall -Wno-sign-compare -fno-inline -Iyes/include -frepo -D__STDC_CONSTANT_MACROS -MT zmc.o -MD -MP -MF .deps/zmc.Tpo -c -o zmc.o zmc.cpp In file included from zmc.cpp:24: zm.h:37: error: 'uint8_t' does not name a type zm.h:38: error: 'uint16_t' does not name a type zm.h:39: error: 'uint32_t' does not name a type zm.h:40: error: 'uint64_t' does not name a type make[2]: *** [zmc.o] Error 1 make[2]: Leaving directory `/var/tmp/portage/www-misc/zoneminder-1.24.2/work/ZoneMinder-1.24.2/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/var/tmp/portage/www-misc/zoneminder-1.24.2/work/ZoneMinder-1.24.2' make: *** [all] Error 2 FWIW: After messing around with zm for a while on a x86_64 system I ran into a another issue with shm. Under the x86_64 system it does properly set the ipc share permissions to the correct user. if I start zm under the user apache (default), ipcs -m reports the owner as root. I checked and all of the zm processes are running under apache. This breaks zm as when /usr/bin/zmc tries to connect to the shm, it gets access denied because the shm owner is root. On the 32-bit vm ipcs -m shows the owner as appache. I looked in zm_monitor.cpp to see if where it was setting the owner and there is no call other than shmget. I suspect the shmget is suppose to set the shm handle owner to same user as the calling process. I am not sure if this is a bug in x86_64 system or in zoneminder. Another words even if this apache is applied its still broken because of the ipc shm owner glitch. I would show the the error, but I recompiled zm on my x86_64 system using mmap. That seems to work better, but its not perfect. For now I am going with a 32-bit vm to get around this problem. I think it may be best to wait until the developer updates zm to work on 64-bit systems. Thanks. Removed from main tree. Reopened for tracking and hopefully zoneminder revival Looking at the code this should be fixed in 1.25.0 |