Cairo: bad xlib event (ShmCompletion?) in cairo_xlib_surface_create()

EDIT: the title of this thread has changed to reflect how the issue has been narrowed down.  As can be seen by the thread progress, I didn't initially suspect a cairo-xlib problem.  The original first post follows:
A less concatenated summary than the title:
A dwm-style array of function pointers declared as size 'LASTEvent' but only initalized with the events the given program should respond to seems to leave uninitialized (but declared) elements potentially holding stray data which could be treated as function pointers leading to a seg fault.
Details:
In the AUR package Slider-git, I have used an array of function pointers and a simple while loop for event handling.  This is modelled directly after dwm's event handling and it is an approach I've used effectively in a number of X11 programs.  Slider has recently started seg faulting immediately after start up.  I have traced the problem to responding to an event of type #65.
I have initialized the array of function pointers to have functions for ButtonPress and KeyPress as follows:
static void (*handler[LASTEvent])(XEvent *) = {
[ButtonPress] = buttonpress,
[KeyPress] = keypress,
buttonpress and keypress are defined functions with prototypes coming before the initalization of the handler array.
The main loop was as follows:
while (running && !XNextEvent(dpy,&ev))
if (handler[ev.type]) handler[ev.type](&ev);
The intend of these code segments is to declare an array of function pointers (handler) and initalize elements with numbers defined by the enum values "ButtonPress" and "KeyPress" to the relevant functions.  The main loop checks whether the received event has an initialized function pointer in the handler array, and if it does, that handler function is called.
This approach has worked well in many programs and is taken directly from dwm.
Recently slider has began segfaulting shortly after startup.  I have traced it to the main event loop, and further narrowed it down to a specific event type number (ev.type == 65).  Neither ButtonPress nor KeyPress are 65.  I found the following variation on the main loop does side-step the problem:
while (running && !XNextEvent(dpy,&ev)) {
if (ev.type == ButtonPress) buttonpress(&ev);
if (ev.type == KeyPress) keypress(&ev);
I have put this up on git as a temporary solution to the problem, but I'd like help understanding why this is needed.
I realize that the handler array is declared to have LASTEvent number of elements (LASTEvent being the last entry in an enum with all other event types - defined in Xlib.h).  So handler is an array of *many* elements each of a function pointer type.  In my code only two of those elements are actually initialized, and in any given program (such as dwm), only a subset of the pointers in such an array are initalized.
As the elements of the array that are not intended to be used are never explicitly zeroed out they are not null pointers.  Thus the conditional test in the while loop can pass as true on 'random' data left in the memory range of the handler array.  I therefore suspect that such a random 'junk' element is passing the conditional for a #65 event and my program is attempting to "call" a random address as if it was a function. Am I misinterpreting this?
This, in fact, seems like a likely or expected result of this type of event handling.  Yet many programs use this approach quite effectively.  What am I missing in how dwm does this or why doesn't this problem show up far more often?
(edit: typos)
Last edited by Trilby (2012-11-08 02:09:47)

My assessment was incorrect.
I just checked on the Xlib event enum.  There is no event #65 - in fact there are only 36 events (LASTEvent = 36).  So the segfault is coming from trying to read from outside the handler array.
Now the question is why on earth is Xlib sending my program an event with an event type value that is outside the acceptable range.
I've done some more debugging and found that this mystery event has send_event = True which means this is not a 'normal' event from the X server.  This explains how it can have an inappropriate event number.  It is also reported from a window other than my program's window (and not the root window).  As this problem only started with updates of poppler and cairo I'm wondering if one of them may be making a call to XSendEvent with a bad event number.  As I use a cairo-xlib surface and (AFAIK) poppler doesn't have any direct interaction with xlib, I'm thinking this may be a change in the cairo libary.
Now, off to go grep through all the cairo-xlib source code for any calls to XSendEvent.
I believe this is the relevant change in cairo-xlib: http://comments.gmane.org/gmane.comp.lib.cairo/23258
Now, to see if I can make sense of what they are doing.
I have confirmed that the bad event is being generated by cairo-xlib during an cairo_xlib_surface_create() by having the main thread wait until the rendering thread is complete.  If the main loop is delayed until after the rendering thread has completed and the XEvents are flushed (and discarded) then this will run as expected and the problem is solved.  If I do this without discarding the events, then the #65 event still comes through.
This seems like it may be a ShmCompletion event (X11/extentions/XShm.h), but these are entirely new to me.  I understand that cairo may use these internally, but why are such events being sent to my window?
Crap, now cairographics.org is down, so I can't even fetch the sources to start exploring.  Oh well, I guess that means troubleshooting is over for the evening.
Last edited by Trilby (2012-11-08 02:02:11)

Similar Messages

  • Drawing with cairo's Xlib backend

    Alright, so I'm new to cairo in general, and I'm working on a project written in C using cairo and xlib.
    One of the things it's meant to do is prompt the user for their password, and display the masked password (i.e. "******"). Now, the masked password should be updated on each keypress, which is easy to do. The naive solution, however, has a serious drawback, in that it draws the whole string on each keypress. Because the text is antialiased, this introduces visual artifacts that build up with each subsequent key press. And, should the user press backspace, the old password mask will still show under the new, shorter mask.
    Clearing the surface isn't an option, because there are other images that have been drawn with cairo on the surface. So, what I'm trying to figure out is how to selectively update part of a cairo surface while preserving what's already been drawn on it. I've looked through several demos of cairo, but none seem to tackle this issue; at most, they redraw the entire surface every time something is updated, which I could do, but it would introduce flickering as the background is a bit complicated and is drawn in several steps.
    Any help would be appreciated. Example projects to look at would also be great. I haven't found much that uses cairo and xlib directly outside of a handful of demos.

    Alright, so I'm new to cairo in general, and I'm working on a project written in C using cairo and xlib.
    One of the things it's meant to do is prompt the user for their password, and display the masked password (i.e. "******"). Now, the masked password should be updated on each keypress, which is easy to do. The naive solution, however, has a serious drawback, in that it draws the whole string on each keypress. Because the text is antialiased, this introduces visual artifacts that build up with each subsequent key press. And, should the user press backspace, the old password mask will still show under the new, shorter mask.
    Clearing the surface isn't an option, because there are other images that have been drawn with cairo on the surface. So, what I'm trying to figure out is how to selectively update part of a cairo surface while preserving what's already been drawn on it. I've looked through several demos of cairo, but none seem to tackle this issue; at most, they redraw the entire surface every time something is updated, which I could do, but it would introduce flickering as the background is a bit complicated and is drawn in several steps.
    Any help would be appreciated. Example projects to look at would also be great. I haven't found much that uses cairo and xlib directly outside of a handful of demos.

  • ISR/Adobe Sending back fields from BADI in event request_check

    Dear Forum,
    Within my BADI implementation I want to alter some form data, after some user data has been entered. This applies to calculated fields from rather complex HR related data. Far to complex for Formcalc, but definitly as a response to user input to be checked before the notification should be posted.
    I expected that altering formfields would be possible just by changing the table SPECIAL_DATA in the event int_service_request_check. However, this appears not so, where exactly the same does in the method int_service_request_init filled.
    I am sure that the altered table gets fine throughout ISR_PROCESS_EVENT_WD, but still my form shows the original (from int_service_request_init filled) content.
    Has anyone experienced this? Is there a workaround? Since dropdownlists somehow behave the same (however, not usable in my case) I believe it should be possible and I am looking forward to any anwser on this.
    Regards, Hans GM

    Chris,
    I have resolved the issue in our system, so maybe the same resolution will work for you.  The answer is in Note [1440741|http://service.sap.com/sap/support/notes/1440741].  In our system we are on HR SP 23, which contains all the code corrections from earlier versions of this Note, but does not contain the manual corrections described (essentially creating the characteristic or data type for ASYNC_BACKGROUND_SAVE).  I just had to set up the characteristic as described and our form now submits just fine.  I found this only by running the ABAP debugger on Method GET_EXTERNAL_DATA_VALUE of Class CL_IM_HRASR00ISR with a breakpoint set on the line "ASSERT sy-subrc EQ 0."  I just stepped through until I saw the return code turn to something other than 0, and made a note that it was looking for a fieldvalue of ASYNC_BACKGROUND_SAVE.  A search of Notes for this fieldvalue turned up 1440741, and that appears to have resolved the problem.  The problem was not so much with the form itself, but with the asynchronous background save in the workflow step.
    Hope this helps you!
    --Matt

  • BADI/BDT Event to Update Zfields into BUT000

    Hi
    I am looking for updating newly added Z fields of BUT000 table to databse.
    I got confused to two different solutions, as BADI and BUPT Events. Anyone suggest which is the right one. I have used BUPT Control- Screens to enable the Z fields under business partner BP. But got stuck in the next step which we need to update the values from screen to database.
    Can anyone throw some inputs on how to use BADI BUPA_GENERAL_UPDATE or BUPA_GENERAL_EXPORT?? or the SAVE Event. Need your valuable inputs.
    Its a bit urgent to me..pls.
    Cheers
    Manohar

    Hi Manohar,
    You had probably created another thread in the ABAP forum for this.
    BDT Events / BADI
    which has been solved.
    Please close this thread.
    Thanks, Debasish

  • CJ40/BADI/ BT events in CJ40 for transfering the Cost Planning Data

    Hi ,
    I need urgent help as i am unable to find any User Exit, Badi or BT events for CJ40 as my reuirement is to transfer the Cost Plannign Data into some third party System at the time of creation of Planning, so kindly help me in findinf out the Solution ASAP
    Thanks in Advance

    Thanks for reply,
    But it is also shoing same error...
    Combination T3329SOP-REV-MEXP-TRV/1399999 edited using detailed planning
    Message no. K8043
    Diagnosis
    The characteristic combination T3329SOP-REV-MEXP-TRV/1399999 for version 005 in fiscal year 2011 was processed through detailed planning.
    The plan data can only be changed by choosing Edit -> Detailed planning -> Change/Display.
    System response
    The entry readiness was cancelled
    Pl help me this regards, why syste, block this perticuler cost element 1399999 for the year 2011 only and for this wbs only.
    Thanks in Advance..

  • Cd rom has bad block event 7

    I keep gettinbg an event log error CDROM has a bad block, Error 7 and error 51 paging error.  Windows 7 freezes up.  Is my cd bad?  Is there anyway to restore the data on it.?

    Hi,
    I would like to know if other CD occurs the same issue.
    Usually this error is the result of a failing CD-ROM drive, or faulty media. You can try the following methods to troubleshoot the issue.
    Reinstall the device driver
    1. Restart your computer.
    2. Keep pressing F8 and then select Safe Mode.
    3. When booting in Safe Mode, go to Device Manage.
    4. Expand the "DVD/CD-ROM drives" item.
    5. Right click your CD-ROM device and choose Uninstall.
    6. Click OK to proceed.
    7. Restart your computer. The computer will automatically detect the
    device and install the driver.
    Remove the upper filter and lower filter values from the Registry
    1. Click the Start Button, type "regedit" (without quotation marks) in the Start Search box and then press ENTER.
    2. Navigate to the following key:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E965-E325-11CE-BFC1-08002BE10318}
    Note: This is the CD-ROM/DVD global class key.
    3. Right click the {36FC9E60-C465-11CF-8056-444553540000}  entry, choose "Export", select Desktop in the Save in box and type backup in File Name. Click Save.
    Note: The backup file is on the Desktop and named backup.reg. We can simply restore the registry by double-clicking the backup.reg file.
    4. Highlight this key {4D36E965-E325-11CE-BFC1-08002BE10318}, on the right pane, delete the upperfilter and lowerfilter entries if these strings are present.
    5. Restart your computer and check if the problem disappears.
    If the problem persists after trying all of the above methods but the CD can be read on other computer, it could be CD-ROM physically damaged. You need to contact
    the manufacture to fix the hardware issue.
    Best Regards,
    Niki
    Please remember to click "Mark as Answer" on the post that helps you, and to click "Unmark as Answer" if a marked post does not actually answer your question. This can be beneficial to other community members reading the thread.

  • Standard BADI in event management

    Hi,
    Can u kindly inform what are the various standard BADI/Function modules to track and trace events in event management from Transportation management ( TM 8.1).
    Indraneel

    I want to develop a printable Appraisal (with company brand, etc) for the Manager/employee print it when the process is completed.
    My question here is if, in the predefined process I can use a BadI when the manager click on the button "print" the system can call the developed form and print it.
    Thanks! 
    Sinani L.

  • ICal bug  -- leap year has broken reoccuring events

    Since last week , when there were 29 days in February instead of 28,  events in iCal which are re-occuring  (a meeting which occurs every month on the second Monday for example) is simply wrong.
    It is clear that this is an artifact of "Leap Year." The error compounds.
    In March in was off by one day -- scheduled on Tuesday instead of Monday. In April the error compounds... now scheduled on Friday in April.
    Events which were scheduled by data "appear" to be correct, but now I don't know that I can even trust them.
    This problem propigates through iCloud and infects my iPhone and iPads as well.
    iMac 10.7.3
    iPhone 5.1
    iPad 5.1
    Mac mini 10.6.8
    It turns out this Bug dates back to 2008!!!!!
    https://discussions.apple.com/message/6309125#6309125

    No. not really.
    I spent some time on the phone with Apple support and basically discovered that if I looked at the reoccurring event back in February (the previous month), it showed up correctly as an event being repeated as, in my case, "Custom, Every Month on the first Monday." However, then comparing that entry to the incorrect March entry, I noted the March entry was showing up as repeat "Every Month." (Which translated into every 30 or 31 days, looking at subsequent events.)
    Simply changing the bad March event back to the Custom "Every Month on the First Monday," and then applying it to the forward "worked around" the issue.
    We never did come up with any idea what caused the change. (i.e. the support person could find no references to any kind of similar problem.)
    I was told to go to "www.apple.com/feedback" and to select "iCal" from the list of "OS C Apps" near the bottom of the page, and report the problem.

  • Transferring projects and events to new external drive

    I have been using a 2 TB external hard drive to create both personal and commercial videos using iMovie '11. Due to space limitations on the 2 TB drive, I now want to transfer the commercial video projects and events to a new 1 TB external hard drive. I started by copying one project (and associated events). I then copied a second project that uses clips from the same events as the first project. As a result, I now have two copies of the events--one copy associated with project 1 and a second copy associated with project 2. Consequently, the 1 TB hard drive is filling up fast with twice as many events as I originally had before starting the transfer process. I also have a third related commercial project that I want to transfer to the new drive, but I'm afraid I'm going to fill up the drive sooner than I expected with a third set of events. Ugh!
    In effect, I want to move multiple related projects that use clips from the same events from one drive to another without losing associativity and without creating extraneous events. I would appreciate any help.

    Hi
    Yes there are somer IMPORTANT steps to take and not to take.
    • DO NOT - Move or alter any folder named iMovie Events or iMovie Projects on Desktop/Finder.
    If You do - iMovie get's confused and it might not allways be repairably.
    • DO
    The external hard disk
    MUST BE - Mac OS Extended formatted - UNIX(DOS/FAT32/Mac OS Exchange will not work for VIDEO !
    SHOULD BE - a FireWire one as USB/USB2 performs badly
    Moving Events and Projects - ARE DONE in the iMovie Program/Application and in resp. window
    Just drag from one hard disk HERE to the other one and new iMovie Proj/Event folders will
    be created and iMovie will find them.
    AND - answer the choise if You want a full Move or a Copy made.
    (Event's window can be changed to view Yearly - or - Yearly per hard disk connected
    top right hand corner of window - click small hard disk symbol.)
    Yours Bengt W

  • Cairo vs cairo-xcb in dependencies of awesome - awesome to community?

    Hi, guys. I would like to address arch development team here.
    I've walked through diff between PKGBUILDs of cairo (extra) and cairo-xcb (AUR) - they r so minor.
    Y can't PKGBUILD of cairo (extra) be changed to be equal to cairo-xcb's to allow cairo be awesome's dependency so that awesome can go to community?
    Thanks.
    P.S. I just want awesome in community so much

    The differences in code may be minor, but differences in application exist.  While I'm certainly no programmer, I do know that Cairo uses Xlib, whilst cairo-xcb utilizes XCB.   My understanding is that since the latter is a more experimental implementation of the X server not really not really put to use by the Xorg devs, packages using it get defaulted to the AUR.  Awesome depends on (was intended to utilize)  XCB, so swithcing the dependency to Cairo alone won't cut it.

  • Nomination Screen Item events locked

    Dear All,
    I have a requirement in the Nomination screen if The ticket is created the item status is complete and that makes my events/text tab Events uneditable.
    I want to control it even on completion it should be changeable, I heard it can be done with BADI  OIJ_TKT but am unable to get it.
    If any help would be appreciated.

    Please try to use these badis:
    Nomination Event Validation Add-In . OIJ_NOMHD_VALIDATION
    OIJ_LB_USER_FIELDS
    OIJ_LT_ACCOUNTING
    OIJ_NOMEV_VALIDATION
    I hope this may helpfull.
    Thank you,
    Thanks,
    AMS

  • Error message is not getting displayed in customized subscreen

    Hi Experts,
    I have created customized sub screen for transaction BP. There are two fields namely CPS applicable and PPS applicable.
    I am validating both fields against value if user enters same value as Y and Y . Then Error message should display
    saying that 'It should not be same and please change the entry'. Its working fine when press enter on the sub screen.
    But its not working where  if users try to save the entries without entering enter button.
    Please help me anyone regarding this issue.
    Thanks
    Ramesh Manoharan

    Hi ,
    you can do validations at Save Using BADI or Events ( please ref DEZ_'s Posting), in my case im using BADI to do validation , reason is...user was able to save witout going to the custom tab , thats y im using BADI and Screen(Custom) Validations.
    regards
    Prabhu

  • A135-S4527 Host Process for Windows Services stopped...

    I have started getting a Windows error: Host Process for Windows Services stopped working and was closed.  Laptop runs fine except my network connection says Connection Status: Unknown The service to detect this status is turned off and McAfee stopped working.  Can't run any of the MS tools either.  I am suspicous of conficker e but don't know how to detect or remove it.  Have seen the b variant on an XP machine at work, but the tools we used on it don't work on Vista.
    I am running Vista Home Edition (came on Laptop) upgraded to SP1 with auto-updates on.  McAfee was also set for auto-updates and nightly full scans, active e-mail and internet scanning.  No recent software downloads except for updates.
    Have been having the issue since about April 28.  Tried to restore but no dates exist past May 5.  Tried the F8 Startup recovery no problems found.  Have tried restarting services but they quickly stop again.  Uninstalled McAfee and tried AVG. It allowed defintion updates and I scanned all files.  No viruses, trojans or malware detected.
    Any suggestions?  I have a tasklstserv file I can copy and paste if it will help.

    That's a bad-sector event. At a command prompt (cmd.exe), run chkdsk /r.
       Event ID 7 Source Disk
    But it doesn't seem likely that's the cause of the message. When you get another one, note the time and check the Application and System logs for entries at that exact time.
    Thanks for the detailed information.
    What virus protection do you use?
    -Jerry

  • [SOLVED!] makepkg won't "make" (cd: src: no such file or directory)

    Here is an install log:
    checking for a BSD-compatible install... /bin/install -c
    checking whether build environment is sane... yes
    checking for a thread-safe mkdir -p... /bin/mkdir -p
    checking for gawk... gawk
    checking whether make sets $(MAKE)... yes
    checking for gcc... gcc
    checking for C compiler default output file name... a.out
    checking whether the C compiler works... yes
    checking whether we are cross compiling... no
    checking for suffix of executables...
    checking for suffix of object files... o
    checking whether we are using the GNU C compiler... yes
    checking whether gcc accepts -g... yes
    checking for gcc option to accept ISO C89... none needed
    checking for style of include used by make... GNU
    checking dependency style of gcc... gcc3
    checking build system type... i686-pc-linux-gnu
    checking host system type... i686-pc-linux-gnu
    checking for a sed that does not truncate output... /bin/sed
    checking for grep that handles long lines and -e... /bin/grep
    checking for egrep... /bin/grep -E
    checking for fgrep... /bin/grep -F
    checking for ld used by gcc... /usr/bin/ld
    checking if the linker (/usr/bin/ld) is GNU ld... yes
    checking for a BSD-compatible install... /bin/install -c
    checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
    checking the name lister (/usr/bin/nm -B) interface... BSD nm
    checking whether ln -s works... yes
    checking the maximum length of command line arguments... 1572864
    checking whether the shell understands some XSI constructs... yes
    checking whether the shell understands "+="... yes
    checking for /usr/bin/ld option to reload object files... -r
    checking for objdump... objdump
    checking how to recognize dependent libraries... pass_all
    checking for ar... ar
    checking for strip... strip
    checking for ranlib... ranlib
    checking command to parse /usr/bin/nm -B output from gcc object... ok
    checking how to run the C preprocessor... gcc -E
    checking for ANSI C header files... yes
    checking for sys/types.h... yes
    checking for sys/stat.h... yes
    checking for stdlib.h... yes
    checking for string.h... yes
    checking for memory.h... yes
    checking for strings.h... yes
    checking for inttypes.h... yes
    checking for stdint.h... yes
    checking for unistd.h... yes
    checking for dlfcn.h... yes
    checking for objdir... .libs
    checking if gcc supports -fno-rtti -fno-exceptions... no
    checking for gcc option to produce PIC... -fPIC -DPIC
    checking if gcc PIC flag -fPIC -DPIC works... yes
    checking if gcc static flag -static works... yes
    checking if gcc supports -c -o file.o... yes
    checking if gcc supports -c -o file.o... (cached) yes
    checking whether the gcc linker (/usr/bin/ld) supports shared libraries... yes
    checking whether -lc should be explicitly linked in... no
    checking dynamic linker characteristics... GNU/Linux ld.so
    checking how to hardcode library paths into programs... immediate
    checking whether stripping libraries is possible... yes
    checking if libtool supports shared libraries... yes
    checking whether to build shared libraries... yes
    checking whether to build static libraries... yes
    checking whether gcc and cc understand -c and -o together... yes
    checking for pkg-config... yes
    checking for pkg-config... /usr/bin/pkg-config
    checking pkg-config is at least version 0.19... yes
    checking for fopencookie... yes
    checking for funopen... no
    checking for ld used by GCC... /usr/bin/ld
    checking if the linker (/usr/bin/ld) is GNU ld... yes
    checking for shared library run path origin... done
    checking for iconv... yes
    checking for working iconv... yes
    checking for iconv declaration...
    extern size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
    checking alsa/asoundlib.h usability... yes
    checking alsa/asoundlib.h presence... yes
    checking for alsa/asoundlib.h... yes
    checking for snd_pcm_open in -lasound... yes
    checking signal.h usability... yes
    checking signal.h presence... yes
    checking for signal.h... yes
    checking for unistd.h... (cached) yes
    checking sys/utsname.h usability... yes
    checking sys/utsname.h presence... yes
    checking for sys/utsname.h... yes
    checking for sys/stat.h... (cached) yes
    checking linux/soundcard.h usability... yes
    checking linux/soundcard.h presence... yes
    checking for linux/soundcard.h... yes
    checking for alsa/asoundlib.h... (cached) yes
    checking dirent.h usability... yes
    checking dirent.h presence... yes
    checking for dirent.h... yes
    checking mcheck.h usability... yes
    checking mcheck.h presence... yes
    checking for mcheck.h... yes
    checking sys/statfs.h usability... yes
    checking sys/statfs.h presence... yes
    checking for sys/statfs.h... yes
    checking sys/param.h usability... yes
    checking sys/param.h presence... yes
    checking for sys/param.h... yes
    checking pthread.h usability... yes
    checking pthread.h presence... yes
    checking for pthread.h... yes
    checking assert.h usability... yes
    checking assert.h presence... yes
    checking for assert.h... yes
    checking errno.h usability... yes
    checking errno.h presence... yes
    checking for errno.h... yes
    checking time.h usability... yes
    checking time.h presence... yes
    checking for time.h... yes
    checking for sys/mount.h... yes
    checking sys/inotify.h usability... yes
    checking sys/inotify.h presence... yes
    checking for sys/inotify.h... yes
    checking for calloc... yes
    checking for malloc... yes
    checking for free... yes
    checking for popen... yes
    checking for sysinfo... yes
    checking for getloadavg... yes
    checking for memrchr... yes
    checking for strndup... yes
    checking for gethostbyname_r... yes
    checking for library containing clock_gettime... -lrt
    checking for struct statfs.f_fstypename... no
    checking zlib.h usability... yes
    checking zlib.h presence... yes
    checking for zlib.h... yes
    checking for db2x_xsltproc... no
    checking for db2x_manxml... no
    checking for xsltproc... no
    checking if /usr/bin/ld accepts -O1... yes
    configure: creating ./config.status
    config.status: creating Makefile
    config.status: creating data/Makefile
    config.status: creating doc/Makefile
    config.status: creating src/Makefile
    config.status: creating src/build.h
    config.status: creating lua/Makefile
    config.status: creating src/config.h
    config.status: src/config.h is unchanged
    config.status: executing depfiles commands
    config.status: executing libtool commands
    conky 1.7.2 configured successfully:
    Installing into: /usr
    System config dir: /etc
    C compiler flags: -Wall -W
    Libraries: -lm -lasound -lrt
    Linker flags: -Wl,-O1
    * X11:
    X11 support: no
    XDamage support: no
    XDBE support: no
    Xft support: no
    * Music detection:
    Audacious: no
    BMPx: no
    MPD: yes
    MOC: yes
    XMMS2: no
    * General:
    OpenMP:
    math: yes
    hddtemp: no
    portmon: no
    RSS: no
    Curl: no
    Weather
    METAR: no
    XOAP: no
    wireless: no
    IBM: no
    nvidia: no
    eve-online: no
    config-output: yes
    Imlib2: no
    ALSA mixer: yes
    apcupsd: yes
    I/O stats: yes
    * Lua (no) bindings:
    Cairo: no
    Imlib2: no
    Making all in src
    /bin/sh: line 17: cd: src: No such file or directory
    make: *** [all-recursive] Error 1
    A couple of months ago I stumbled upon this problem, but handfixed all entrances in Makefiles recursively, changing explicitly '/bin/sh' on '/bin/bash' (although, /bin/sh is a link on /bin/bash). Now I had do deploy archlinux on another machine and here's the problem, again.
    Last edited by cra (2009-10-27 12:43:53)

    Ok, I rm'ed the src and pkg subdirectories for package cairo-lcd, here's what I have:
    (Actually, no specific options for makepkg)
    [cra@cratop 07:47:47 ~/downloads/cairo-lcd]
    $ ls
    PKGBUILD cairo-1.8.8.tar.gz lcd-filter.patch
    [cra@cratop 07:48:46 ~/downloads/cairo-lcd]
    $ makepkg
    ==> Making package: cairo-lcd 1.8.8-1 i686 (Wed Oct 21 07:48:50 MSD 2009)
    ==> Checking Runtime Dependencies...
    ==> Checking Buildtime Dependencies...
    ==> Retrieving Sources...
    -> Found cairo-1.8.8.tar.gz in build dir
    -> Found lcd-filter.patch in build dir
    ==> Validating source files with md5sums...
    cairo-1.8.8.tar.gz ... Passed
    lcd-filter.patch ... Passed
    ==> Extracting Sources...
    -> bsdtar -x -f "cairo-1.8.8.tar.gz"
    ==> Entering fakeroot environment...
    ==> Starting build()...
    patching file doc/public/cairo-sections.txt
    Hunk #1 succeeded at 326 (offset 7 lines).
    patching file src/cairo-font-options.c
    patching file src/cairo-ft-font.c
    Hunk #2 succeeded at 742 (offset 3 lines).
    Hunk #3 succeeded at 1034 (offset 3 lines).
    Hunk #4 succeeded at 1091 (offset 3 lines).
    Hunk #5 succeeded at 1103 (offset 3 lines).
    Hunk #6 succeeded at 1124 (offset 3 lines).
    Hunk #7 succeeded at 1162 (offset 3 lines).
    Hunk #8 succeeded at 1225 (offset 3 lines).
    Hunk #9 succeeded at 1252 (offset 3 lines).
    Hunk #10 succeeded at 1500 (offset 3 lines).
    Hunk #11 succeeded at 1542 (offset 3 lines).
    Hunk #12 succeeded at 1578 (offset 3 lines).
    Hunk #13 succeeded at 1697 (offset 3 lines).
    Hunk #14 succeeded at 1726 (offset 3 lines).
    Hunk #15 succeeded at 2695 (offset 25 lines).
    patching file src/cairo-types-private.h
    Hunk #1 succeeded at 116 (offset 8 lines).
    patching file src/cairo-xlib-screen.c
    Hunk #1 succeeded at 143 with fuzz 1 (offset 11 lines).
    Hunk #2 succeeded at 159 (offset 11 lines).
    Hunk #3 succeeded at 257 (offset 11 lines).
    Hunk #4 succeeded at 287 (offset 11 lines).
    patching file src/cairo.h
    Hunk #1 succeeded at 1046 (offset 78 lines).
    Hunk #2 succeeded at 1171 (offset 78 lines).
    checking for a BSD-compatible install... /bin/install -c
    checking whether build environment is sane... yes
    checking for a thread-safe mkdir -p... /bin/mkdir -p
    checking for gawk... gawk
    checking whether make sets $(MAKE)... yes
    checking build system type... i686-pc-linux-gnu
    checking host system type... i686-pc-linux-gnu
    checking for style of include used by make... GNU
    checking for gcc... gcc
    checking for C compiler default output file name... a.out
    checking whether the C compiler works... yes
    checking whether we are cross compiling... no
    checking for suffix of executables...
    checking for suffix of object files... o
    checking whether we are using the GNU C compiler... yes
    checking whether gcc accepts -g... yes
    checking for gcc option to accept ISO C89... none needed
    checking dependency style of gcc... gcc3
    checking for a sed that does not truncate output... /bin/sed
    checking for grep that handles long lines and -e... /bin/grep
    checking for egrep... /bin/grep -E
    checking for fgrep... /bin/grep -F
    checking for ld used by gcc... /usr/bin/ld
    checking if the linker (/usr/bin/ld) is GNU ld... yes
    checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
    checking the name lister (/usr/bin/nm -B) interface... BSD nm
    checking whether ln -s works... yes
    checking the maximum length of command line arguments... 1572864
    checking whether the shell understands some XSI constructs... yes
    checking whether the shell understands "+="... yes
    checking for /usr/bin/ld option to reload object files... -r
    checking for objdump... objdump
    checking how to recognize dependent libraries... pass_all
    checking for ar... ar
    checking for strip... strip
    checking for ranlib... ranlib
    checking command to parse /usr/bin/nm -B output from gcc object... ok
    checking how to run the C preprocessor... gcc -E
    checking for ANSI C header files... yes
    checking for sys/types.h... yes
    checking for sys/stat.h... yes
    checking for stdlib.h... yes
    checking for string.h... yes
    checking for memory.h... yes
    checking for strings.h... yes
    checking for inttypes.h... yes
    checking for stdint.h... yes
    checking for unistd.h... yes
    checking for dlfcn.h... yes
    checking for objdir... .libs
    checking if gcc supports -fno-rtti -fno-exceptions... no
    checking for gcc option to produce PIC... -fPIC -DPIC
    checking if gcc PIC flag -fPIC -DPIC works... yes
    checking if gcc static flag -static works... yes
    checking if gcc supports -c -o file.o... yes
    checking if gcc supports -c -o file.o... (cached) yes
    checking whether the gcc linker (/usr/bin/ld) supports shared libraries... yes
    checking whether -lc should be explicitly linked in... no
    checking dynamic linker characteristics... GNU/Linux ld.so
    checking how to hardcode library paths into programs... immediate
    checking whether stripping libraries is possible... yes
    checking if libtool supports shared libraries... yes
    checking whether to build shared libraries... yes
    checking whether to build static libraries... no
    checking for bash... /bin/bash
    checking if dolt supports this host... yes, replacing libtool
    checking for pkg-config... /usr/bin/pkg-config
    checking pkg-config is at least version 0.9.0... yes
    checking whether to build gtk-doc documentation... no
    checking for gtkdoc-check... no
    checking for find... /usr/bin/find
    checking for xargs... /usr/bin/xargs
    checking for gcc... (cached) gcc
    checking whether we are using the GNU C compiler... (cached) yes
    checking whether gcc accepts -g... (cached) yes
    checking for gcc option to accept ISO C89... (cached) none needed
    checking dependency style of gcc... (cached) gcc3
    checking how to run the C preprocessor... gcc -E
    checking for g++... g++
    checking whether we are using the GNU C++ compiler... yes
    checking whether g++ accepts -g... yes
    checking dependency style of g++... gcc3
    checking whether we are using the GNU C++ compiler... (cached) yes
    checking whether g++ accepts -g... (cached) yes
    checking dependency style of g++... (cached) gcc3
    checking how to run the C++ preprocessor... g++ -E
    checking for ld used by g++... /usr/bin/ld
    checking if the linker (/usr/bin/ld) is GNU ld... yes
    checking whether the g++ linker (/usr/bin/ld) supports shared libraries... yes
    checking for g++ option to produce PIC... -fPIC -DPIC
    checking if g++ PIC flag -fPIC -DPIC works... yes
    checking if g++ static flag -static works... yes
    checking if g++ supports -c -o file.o... yes
    checking if g++ supports -c -o file.o... (cached) yes
    checking whether the g++ linker (/usr/bin/ld) supports shared libraries... yes
    checking dynamic linker characteristics... GNU/Linux ld.so
    checking how to hardcode library paths into programs... immediate
    checking whether gcc and cc understand -c and -o together... yes
    checking for inline... inline
    checking for pkg-config... (cached) /usr/bin/pkg-config
    checking pkg-config is at least version 0.9.0... yes
    checking whether byte ordering is bigendian... no
    checking whether float word ordering is bigendian... no
    checking for native atomic primitives... Intel
    checking whether atomic ops require a memory barrier... no
    checking for native Win32... no
    checking for Sun Solaris (non-POSIX ctime_r)... no
    checking for cos in -lm... yes
    checking for sched_yield in -lrt... yes
    checking for stdint.h... (cached) yes
    checking for inttypes.h... (cached) yes
    checking sys/int_types.h usability... no
    checking sys/int_types.h presence... no
    checking for sys/int_types.h... no
    checking for uint64_t... yes
    checking for uint128_t... no
    checking fcntl.h usability... yes
    checking fcntl.h presence... yes
    checking for fcntl.h... yes
    checking for unistd.h... (cached) yes
    checking signal.h usability... yes
    checking signal.h presence... yes
    checking for signal.h... yes
    checking for sys/stat.h... (cached) yes
    checking sys/socket.h usability... yes
    checking sys/socket.h presence... yes
    checking for sys/socket.h... yes
    checking sys/poll.h usability... yes
    checking sys/poll.h presence... yes
    checking for sys/poll.h... yes
    checking sys/un.h usability... yes
    checking sys/un.h presence... yes
    checking for sys/un.h... yes
    checking sched.h usability... yes
    checking sched.h presence... yes
    checking for sched.h... yes
    checking for sched_getaffinity... yes
    checking fenv.h usability... yes
    checking fenv.h presence... yes
    checking for fenv.h... yes
    checking for feenableexcept... yes
    checking for fedisableexcept... yes
    checking libgen.h usability... yes
    checking libgen.h presence... yes
    checking for libgen.h... yes
    checking byteswap.h usability... yes
    checking byteswap.h presence... yes
    checking for byteswap.h... yes
    checking for signal.h... (cached) yes
    checking setjmp.h usability... yes
    checking setjmp.h presence... yes
    checking for setjmp.h... yes
    checking for vasnprintf... no
    checking for link... yes
    checking for ctime_r... yes
    checking for drand48... yes
    checking for flockfile... yes
    checking windows.h usability... no
    checking windows.h presence... no
    checking for windows.h... no
    checking for supported warning flags...
    checking whether gcc supports -Wall... yes
    checking whether gcc supports -Wextra... yes
    checking whether gcc supports -Wsign-compare... yes
    checking whether gcc supports -Werror-implicit-function-declaration... yes
    checking whether gcc supports -Wpointer-arith... yes
    checking whether gcc supports -Wwrite-strings... yes
    checking whether gcc supports -Wstrict-prototypes... yes
    checking whether gcc supports -Wmissing-prototypes... yes
    checking whether gcc supports -Wmissing-declarations... yes
    checking whether gcc supports -Wnested-externs... yes
    checking whether gcc supports -Wpacked... yes
    checking whether gcc supports -Wswitch-enum... yes
    checking whether gcc supports -Wmissing-format-attribute... yes
    checking whether gcc supports -Wstrict-aliasing=2... yes
    checking whether gcc supports -Winit-self... yes
    checking whether gcc supports -Wunsafe-loop-optimizations... yes
    checking whether gcc supports -Wdeclaration-after-statement... yes
    checking whether gcc supports -Wold-style-definition... yes
    checking whether gcc supports -Wno-missing-field-initializers... yes
    checking whether gcc supports -Wno-unused-parameter... yes
    checking whether gcc supports -Wno-attributes... yes
    checking whether gcc supports -Wno-long-long... yes
    checking whether gcc supports -Winline... yes
    checking whether gcc supports -fno-strict-aliasing... yes
    checking whether gcc supports -fno-common... yes
    checking whether gcc supports -Wp,-D_FORTIFY_SOURCE=2... yes
    checking which warning flags were supported... -Wall -Wextra -Wsign-compare -Werror-implicit-function-declaration -Wpointer-arith -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Wpacked -Wswitch-enum -Wmissing-format-attribute -Wstrict-aliasing=2 -Winit-self -Wunsafe-loop-optimizations -Wdeclaration-after-statement -Wold-style-definition -Wno-missing-field-initializers -Wno-unused-parameter -Wno-attributes -Wno-long-long -Winline -fno-strict-aliasing -fno-common -Wp,-D_FORTIFY_SOURCE=2
    checking how to enable unused result warnings... __attribute__((__warn_unused_result__))
    checking how to allow undefined symbols in shared libraries used by test suite... checking whether gcc supports -Wl,--allow-shlib-undefined... yes
    -Wl,--allow-shlib-undefined
    checking for VALGRIND... no
    no
    checking for compress in -lz... yes
    checking zlib.h usability... yes
    checking zlib.h presence... yes
    checking for zlib.h... yes
    checking for X... libraries , headers
    checking for cairo's Xlib surface backend feature...
    checking for xlib... yes
    checking whether cairo's Xlib surface backend feature could be enabled... yes
    checking for cairo's Xlib Xrender surface backend feature...
    checking for xlib_xrender... yes
    checking whether cairo's Xlib Xrender surface backend feature could be enabled... yes
    checking for cairo's XCB surface backend feature...
    checking for xcb... yes
    checking whether cairo's XCB surface backend feature could be enabled... yes
    checking for cairo's Quartz surface backend feature...
    checking ApplicationServices/ApplicationServices.h usability... no
    checking ApplicationServices/ApplicationServices.h presence... no
    checking for ApplicationServices/ApplicationServices.h... no
    checking CoreGraphics/CoreGraphics.h usability... no
    checking CoreGraphics/CoreGraphics.h presence... no
    checking for CoreGraphics/CoreGraphics.h... no
    checking whether cairo's Quartz surface backend feature could be enabled... no (requires CoreGraphics framework)
    checking for cairo's Quartz font backend feature...
    checking whether cairo's Quartz font backend feature could be enabled... no (requires CoreGraphics framework)
    checking for cairo's Microsoft Windows surface backend feature...
    checking whether cairo's Microsoft Windows surface backend feature could be enabled... no (requires a Win32 platform)
    checking for cairo's Microsoft Windows font backend feature...
    checking whether cairo's Microsoft Windows font backend feature could be enabled... no (requires a Win32 platform)
    checking for cairo's PNG functions feature...
    checking for png... yes
    checking whether cairo's PNG functions feature could be enabled... yes
    checking for cairo's FreeType font backend feature...
    checking for FONTCONFIG... yes
    checking for FcFini... yes
    checking for FREETYPE... yes
    checking whether cairo's FreeType font backend feature could be enabled... yes
    checking for FT_Bitmap_Size.y_ppem... yes
    checking for FT_GlyphSlot_Embolden... yes
    checking for FT_Load_Sfnt_Table... yes
    checking for FT_Library_SetLcdFilter... yes
    checking pthread.h usability... yes
    checking pthread.h presence... yes
    checking for pthread.h... yes
    checking for cairo's PostScript surface backend feature...
    checking whether cairo's PostScript surface backend feature could be enabled... yes
    checking for gs... gs
    checking for LIBSPECTRE... yes
    checking for cairo's PDF surface backend feature...
    checking whether cairo's PDF surface backend feature could be enabled... yes
    checking for POPPLER... yes
    checking for poppler_page_render... yes
    checking for cairo's SVG surface backend feature...
    checking whether cairo's SVG surface backend feature could be enabled... yes
    checking for LIBRSVG... yes
    checking for rsvg_pixbuf_from_file... yes
    checking for cairo's image surface backend feature...
    checking for pixman... yes
    checking whether cairo's image surface backend feature could be enabled... yes
    checking for cairo's user font backend feature...
    checking whether cairo's user font backend feature could be enabled... yes
    checking for gtk... yes
    configure: creating ./config.status
    config.status: creating src/cairo.pc
    config.status: creating cairo-uninstalled.pc
    config.status: creating src/cairo-xlib.pc
    config.status: creating cairo-xlib-uninstalled.pc
    config.status: creating src/cairo-xlib-xrender.pc
    config.status: creating cairo-xlib-xrender-uninstalled.pc
    config.status: creating src/cairo-xcb.pc
    config.status: creating cairo-xcb-uninstalled.pc
    config.status: creating src/cairo-png.pc
    config.status: creating cairo-png-uninstalled.pc
    config.status: creating src/cairo-ft.pc
    config.status: creating cairo-ft-uninstalled.pc
    config.status: creating src/cairo-ps.pc
    config.status: creating cairo-ps-uninstalled.pc
    config.status: creating src/cairo-pdf.pc
    config.status: creating cairo-pdf-uninstalled.pc
    config.status: creating src/cairo-svg.pc
    config.status: creating cairo-svg-uninstalled.pc
    config.status: creating Makefile
    config.status: creating boilerplate/Makefile
    config.status: creating src/Makefile
    config.status: creating test/Makefile
    config.status: creating test/pdiff/Makefile
    config.status: creating perf/Makefile
    config.status: creating util/Makefile
    config.status: creating doc/Makefile
    config.status: creating doc/public/Makefile
    config.status: creating config.h
    config.status: executing depfiles commands
    config.status: executing libtool commands
    config.status: executing ./build/Makefile.win32.features commands
    config.status: creating ./build/Makefile.win32.features
    config.status: ./build/Makefile.win32.features is unchanged
    config.status: executing ./src/Makefile.am.features commands
    config.status: creating ./src/Makefile.am.features
    config.status: ./src/Makefile.am.features is unchanged
    config.status: executing ./src/Makefile.win32.features commands
    config.status: creating ./src/Makefile.win32.features
    config.status: ./src/Makefile.win32.features is unchanged
    config.status: executing ./boilerplate/Makefile.am.features commands
    config.status: creating ./boilerplate/Makefile.am.features
    config.status: ./boilerplate/Makefile.am.features is unchanged
    config.status: executing ./boilerplate/Makefile.win32.features commands
    config.status: creating ./boilerplate/Makefile.win32.features
    config.status: ./boilerplate/Makefile.win32.features is unchanged
    config.status: executing src/cairo-features.h commands
    config.status: creating src/cairo-features.h
    config.status: executing ./src/cairo-supported-features.h commands
    config.status: creating ./src/cairo-supported-features.h
    config.status: ./src/cairo-supported-features.h is unchanged
    config.status: executing ./build/Makefile.win32.features-h commands
    config.status: creating ./build/Makefile.win32.features-h
    config.status: ./build/Makefile.win32.features-h is unchanged
    cairo (version 1.8.8 [release]) will be compiled with:
    The following surface backends:
    Image: yes (always builtin)
    Xlib: yes
    Xlib Xrender: yes
    Quartz: no (requires CoreGraphics framework)
    Quartz-image: no (disabled, use --enable-quartz-image to enable)
    XCB: yes
    Win32: no (requires a Win32 platform)
    OS2: no (disabled, use --enable-os2 to enable)
    PostScript: yes
    PDF: yes
    SVG: yes
    glitz: no (disabled, use --enable-glitz to enable)
    BeOS: no (disabled, use --enable-beos to enable)
    DirectFB: no (disabled, use --enable-directfb to enable)
    The following font backends:
    User: yes (always builtin)
    FreeType: yes
    Win32: no (requires a Win32 platform)
    Quartz: no (requires CoreGraphics framework)
    The following functions:
    PNG functions: yes
    And the following internal features:
    gcov support: no
    test surfaces: no (disabled, use --enable-test-surfaces to enable)
    ps testing: yes
    pdf testing: yes
    svg testing: yes
    --- The XCB surface backend feature is still under active development and is
    --- included in this release only as a preview. It does NOT fully work yet
    --- and incompatible changes may yet be made to XCB surface backend specific
    --- API.
    make all-recursive
    make[1]: Entering directory `/home/cra/downloads/cairo-lcd/src/cairo-1.8.8'
    Making all in src
    /bin/sh: line 17: cd: src: No such file or directory
    make[1]: *** [all-recursive] Error 1
    make[1]: Leaving directory `/home/cra/downloads/cairo-lcd/src/cairo-1.8.8'
    make: *** [all] Error 2
    ==> ERROR: Build Failed.
    Aborting...
    [cra@cratop 07:49:13 ~/downloads/cairo-lcd]
    $

  • N level-Approval for contract workflow (WS14000148) in SRM

    Hi SDN'rs
                  I want to activate N level-Approval for contract workflow (WS14000148) in SRM  
    When I am creating the contract in SRM I can see the approvers in the approval preview.
    But when I release the contract and look at the approval privew there are no approvers
    and the status of the contract is released.
    We are on SRM Server 5.5 and SP 07.
    Here what I did
    1. I implemented the BADI 'BBP_WFL_APPROV_BADI' using the sample implementation and populated the approvers.
    2. I activated events SAVED,CHANGEVERSIONSAVED for WS14000148 in OOCU transaction.
    3. I see event linkages for WS14000148 for both events SAVED,CHANGEVERSIONSAVED in SWE2 transaction.
    4. I assigned role SAP_EC_BBP_PURCHASER to for subworkflow N step for contract WS14000147.
        ( User who is creating contract has this role)
    5. Consistency check for WS14000148 is green and WS14000147 is yellow in SWUD
    6. Event simulation for BUS2000113 and events SAVED,CHANGEVERSIONSAVED shows WS14000148 successfully started.
    I see dump in ST22 with errors TSV_TNEW_PAGE_ALLOC_FAILED and SYSTEM_NO_SHM_MEMORY with WF-BATCH is this any thing to do with that?
    If any one know what are the steps I am missing please let me know.
    Thanks
    A S

    Hi
    Please refer to these OSS notes which might help.
    <u>Refer to following OSS Notes -></u>
    Note 735026 - Memory problems at BBP_GETLIST_INDEX_FILL
    Note 932836 - BBP_GETLIST_INDEX_FILL: Activation not possible
    879528 WS14000148: Send mail to initiator incorrect
    901200 WS14000148 dia wrk item despite NO_FURTHER_APPROVAL_NEEDED=X
    879873 BUS2000113: The Object_ID attribute may be empty
    903015 BAdI Workflows: Events and parallel steps
    901068 BAdI Workflows: Enhancement of Note 896556
    769458 Dynamic workflows: No adjustment after document change
    972757 Occurence of the SYSTEM_NO_SHM_MEMORY runtime error
    741864 FinBasis: Termination TSV_TNEW_PAGE_ALLOC_FAILED
    864473 Deactivating the shared memory when searching by prefix
    928642 Container factory: Shared memory dump update
    Refer to these links.
    <b>http://help.sap.com/saphelp_srm50/helpdata/en/2c/e68d406b305537e10000000a1550b0/frameset.htm
    http://help.sap.com/saphelp_srm50/helpdata/en/26/0f8b41ed891609e10000000a155106/frameset.htm
    http://help.sap.com/saphelp_srm50/helpdata/en/6b/eca441eea7ef0be10000000a1550b0/frameset.htm
    http://help.sap.com/saphelp_srm50/helpdata/en/f7/a6a3415e34b05fe10000000a1550b0/frameset.htm
    http://help.sap.com/saphelp_srm50/helpdata/en/6b/eca441eea7ef0be10000000a1550b0/frameset.htm
    </b>
    <u>Also raise an OSS message with SAP as well.</u>
    Regards
    - Atul

Maybe you are looking for