summaryrefslogtreecommitdiffstats
path: root/extra
diff options
context:
space:
mode:
Diffstat (limited to 'extra')
-rw-r--r--extra/brltty/.footprint.x86_64254
-rwxr-xr-xextra/consolekit/.md5sum.i6862
-rwxr-xr-xextra/consolekit/.md5sum.x86_642
-rwxr-xr-xextra/consolekit/Pkgfile4
-rw-r--r--extra/feh/Pkgfile2
-rw-r--r--extra/libproxy/.footprint.i6865
-rw-r--r--extra/libproxy/.footprint.x86_645
-rwxr-xr-xextra/libproxy/Pkgfile1
-rw-r--r--extra/myodbc/.md5sum.i6864
-rw-r--r--extra/myodbc/.md5sum.x86_644
-rw-r--r--extra/myodbc/Pkgfile24
-rw-r--r--extra/myodbc/myodbc-64bit.patch85
-rw-r--r--extra/myodbc/myodbc-add-mysys.patch29
-rw-r--r--extra/myodbc/myodbc-my-free.patch253
-rw-r--r--extra/myodbc/myodbc-shutdown.patch27
-rwxr-xr-xextra/polkit-qt/Pkgfile5
-rw-r--r--extra/polkit/.md5sum.i6861
-rw-r--r--extra/polkit/.md5sum.x86_641
-rwxr-xr-xextra/polkit/Pkgfile9
-rw-r--r--extra/polkit/polkit-101-CVE-2011-1485.patch909
-rw-r--r--extra/pyqt/.footprint.i6862
-rw-r--r--extra/pyqt/.footprint.x86_642
-rw-r--r--extra/pyqt/.md5sum.i6862
-rw-r--r--extra/pyqt/.md5sum.x86_642
-rw-r--r--extra/pyqt/Pkgfile2
-rw-r--r--extra/upower/.md5sum.i6862
-rw-r--r--extra/upower/.md5sum.x86_642
-rw-r--r--extra/upower/Pkgfile2
28 files changed, 1481 insertions, 161 deletions
diff --git a/extra/brltty/.footprint.x86_64 b/extra/brltty/.footprint.x86_64
index 163f2d7a0..11861576c 100644
--- a/extra/brltty/.footprint.x86_64
+++ b/extra/brltty/.footprint.x86_64
@@ -348,134 +348,134 @@ lrwxrwxrwx root/root usr/lib/libbrlapi.so.0.5 -> libbrlapi.so.0.5.5
drwxr-xr-x root/root usr/share/
drwxr-xr-x root/root usr/share/man/
drwxr-xr-x root/root usr/share/man/man1/
--rw-r--r-- root/root usr/share/man/man1/brltty.1
--rw-r--r-- root/root usr/share/man/man1/vstp.1
--rw-r--r-- root/root usr/share/man/man1/xbrlapi.1
+-rw-r--r-- root/root usr/share/man/man1/brltty.1.gz
+-rw-r--r-- root/root usr/share/man/man1/vstp.1.gz
+-rw-r--r-- root/root usr/share/man/man1/xbrlapi.1.gz
drwxr-xr-x root/root usr/share/man/man3/
--rw-r--r-- root/root usr/share/man/man3/brlapi__acceptAllKeys.3
--rw-r--r-- root/root usr/share/man/man3/brlapi__acceptKeyRanges.3
--rw-r--r-- root/root usr/share/man/man3/brlapi__acceptKeys.3
--rw-r--r-- root/root usr/share/man/man3/brlapi__closeConnection.3
--rw-r--r-- root/root usr/share/man/man3/brlapi__defaultExceptionHandler.3
--rw-r--r-- root/root usr/share/man/man3/brlapi__enterRawMode.3
--rw-r--r-- root/root usr/share/man/man3/brlapi__enterTtyMode.3
--rw-r--r-- root/root usr/share/man/man3/brlapi__enterTtyModeWithPath.3
--rw-r--r-- root/root usr/share/man/man3/brlapi__exceptionHandler_t.3
--rw-r--r-- root/root usr/share/man/man3/brlapi__getDisplaySize.3
--rw-r--r-- root/root usr/share/man/man3/brlapi__getDriverName.3
--rw-r--r-- root/root usr/share/man/man3/brlapi__ignoreAllKeys.3
--rw-r--r-- root/root usr/share/man/man3/brlapi__ignoreKeyRanges.3
--rw-r--r-- root/root usr/share/man/man3/brlapi__ignoreKeys.3
--rw-r--r-- root/root usr/share/man/man3/brlapi__leaveRawMode.3
--rw-r--r-- root/root usr/share/man/man3/brlapi__leaveTtyMode.3
--rw-r--r-- root/root usr/share/man/man3/brlapi__openConnection.3
--rw-r--r-- root/root usr/share/man/man3/brlapi__readKey.3
--rw-r--r-- root/root usr/share/man/man3/brlapi__recvRaw.3
--rw-r--r-- root/root usr/share/man/man3/brlapi__resumeDriver.3
--rw-r--r-- root/root usr/share/man/man3/brlapi__sendRaw.3
--rw-r--r-- root/root usr/share/man/man3/brlapi__setExceptionHandler.3
--rw-r--r-- root/root usr/share/man/man3/brlapi__setFocus.3
--rw-r--r-- root/root usr/share/man/man3/brlapi__strexception.3
--rw-r--r-- root/root usr/share/man/man3/brlapi__suspendDriver.3
--rw-r--r-- root/root usr/share/man/man3/brlapi__write.3
--rw-r--r-- root/root usr/share/man/man3/brlapi__writeDots.3
--rw-r--r-- root/root usr/share/man/man3/brlapi__writeText.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_acceptAllKeys.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_acceptKeyRanges.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_acceptKeys.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_authClientPacket_t.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_authServerPacket_t.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_closeConnection.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_connection.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_connectionSettings_t.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_constants.h.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_defaultExceptionHandler.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_deprecated.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_describeKeyCode.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_describedKeyCode_t.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_driverspecific.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_enterRawMode.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_enterTtyMode.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_enterTtyModeWithPath.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_errfun.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_errlist.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_errno.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_error.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_errorPacket_t.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_error_location.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_error_t.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_exceptionHandler_t.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_expandKeyCode.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_expandedKeyCode_t.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_fd_mutex.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_fileDescriptor.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_gaierrno.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_getDisplaySize.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_getDriverName.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_getDriverSpecificModePacket_t.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_getHandleSize.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_getPacketTypeName.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_getRaw.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_getTty.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_getTtyPath.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_handle_t.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_handles.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_header_t.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_ignoreAllKeys.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_ignoreKeyRanges.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_ignoreKeys.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_info.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_initializeConnection.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_keyCode_t.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_keycodes.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_keycodes.h.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_keys.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_leaveRaw.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_leaveRawMode.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_leaveTty.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_leaveTtyMode.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_libcerrno.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_nerr.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_openConnection.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_packetType_t.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_packet_t.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_perror.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_protocol.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_protocol.h.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_rangeType_all.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_rangeType_code.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_rangeType_command.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_rangeType_key.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_rangeType_t.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_rangeType_type.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_range_t.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_readKey.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_readPacket.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_readPacketContent.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_readPacketHeader.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_recvRaw.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_resume.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_resumeDriver.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_sendRaw.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_setExceptionHandler.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_setFocus.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_settings_t.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_strerror.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_strexception.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_suspend.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_suspendDriver.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_tty.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_unignoreKeyRange.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_unignoreKeySet.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_version.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_versionPacket_t.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_write.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_writeArgumentsPacket_t.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_writeArguments_t.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_writeDots.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_writePacket.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_writeStruct.3
--rw-r--r-- root/root usr/share/man/man3/brlapi_writeText.3
+-rw-r--r-- root/root usr/share/man/man3/brlapi__acceptAllKeys.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi__acceptKeyRanges.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi__acceptKeys.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi__closeConnection.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi__defaultExceptionHandler.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi__enterRawMode.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi__enterTtyMode.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi__enterTtyModeWithPath.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi__exceptionHandler_t.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi__getDisplaySize.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi__getDriverName.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi__ignoreAllKeys.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi__ignoreKeyRanges.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi__ignoreKeys.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi__leaveRawMode.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi__leaveTtyMode.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi__openConnection.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi__readKey.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi__recvRaw.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi__resumeDriver.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi__sendRaw.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi__setExceptionHandler.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi__setFocus.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi__strexception.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi__suspendDriver.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi__write.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi__writeDots.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi__writeText.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_acceptAllKeys.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_acceptKeyRanges.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_acceptKeys.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_authClientPacket_t.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_authServerPacket_t.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_closeConnection.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_connection.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_connectionSettings_t.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_constants.h.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_defaultExceptionHandler.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_deprecated.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_describeKeyCode.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_describedKeyCode_t.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_driverspecific.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_enterRawMode.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_enterTtyMode.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_enterTtyModeWithPath.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_errfun.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_errlist.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_errno.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_error.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_errorPacket_t.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_error_location.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_error_t.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_exceptionHandler_t.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_expandKeyCode.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_expandedKeyCode_t.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_fd_mutex.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_fileDescriptor.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_gaierrno.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_getDisplaySize.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_getDriverName.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_getDriverSpecificModePacket_t.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_getHandleSize.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_getPacketTypeName.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_getRaw.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_getTty.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_getTtyPath.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_handle_t.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_handles.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_header_t.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_ignoreAllKeys.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_ignoreKeyRanges.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_ignoreKeys.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_info.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_initializeConnection.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_keyCode_t.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_keycodes.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_keycodes.h.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_keys.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_leaveRaw.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_leaveRawMode.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_leaveTty.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_leaveTtyMode.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_libcerrno.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_nerr.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_openConnection.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_packetType_t.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_packet_t.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_perror.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_protocol.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_protocol.h.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_rangeType_all.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_rangeType_code.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_rangeType_command.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_rangeType_key.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_rangeType_t.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_rangeType_type.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_range_t.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_readKey.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_readPacket.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_readPacketContent.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_readPacketHeader.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_recvRaw.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_resume.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_resumeDriver.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_sendRaw.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_setExceptionHandler.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_setFocus.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_settings_t.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_strerror.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_strexception.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_suspend.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_suspendDriver.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_tty.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_unignoreKeyRange.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_unignoreKeySet.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_version.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_versionPacket_t.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_write.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_writeArgumentsPacket_t.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_writeArguments_t.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_writeDots.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_writePacket.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_writeStruct.3.gz
+-rw-r--r-- root/root usr/share/man/man3/brlapi_writeText.3.gz
drwxr-xr-x root/root var/
drwxr-xr-x root/root var/lib/
drwxrwxrwt root/root var/lib/BrlAPI/
diff --git a/extra/consolekit/.md5sum.i686 b/extra/consolekit/.md5sum.i686
index d20236aef..31954858c 100755
--- a/extra/consolekit/.md5sum.i686
+++ b/extra/consolekit/.md5sum.i686
@@ -1,3 +1,3 @@
-b57eb18eae8c4d3631d5f4f030218a29 ConsoleKit-0.4.4.tar.bz2
+f2657f93761206922d558471a936fbc3 ConsoleKit-0.4.5.tar.bz2
6fefa451d9fe2fc6d6269629d3529793 consolekit.logrotate
a8a4de71d9b0549b8143e5f6c2a36fc7 pam-foreground-compat.ck
diff --git a/extra/consolekit/.md5sum.x86_64 b/extra/consolekit/.md5sum.x86_64
index d20236aef..31954858c 100755
--- a/extra/consolekit/.md5sum.x86_64
+++ b/extra/consolekit/.md5sum.x86_64
@@ -1,3 +1,3 @@
-b57eb18eae8c4d3631d5f4f030218a29 ConsoleKit-0.4.4.tar.bz2
+f2657f93761206922d558471a936fbc3 ConsoleKit-0.4.5.tar.bz2
6fefa451d9fe2fc6d6269629d3529793 consolekit.logrotate
a8a4de71d9b0549b8143e5f6c2a36fc7 pam-foreground-compat.ck
diff --git a/extra/consolekit/Pkgfile b/extra/consolekit/Pkgfile
index 4a0ae0499..c47aab70b 100755
--- a/extra/consolekit/Pkgfile
+++ b/extra/consolekit/Pkgfile
@@ -6,8 +6,8 @@
# Run on: dbus,glib,xorg-libx11,policykit,polkit
name=consolekit
-version=0.4.4
-release=4
+version=0.4.5
+release=1
source=(http://www.freedesktop.org/software/ConsoleKit/dist/ConsoleKit-$version.tar.bz2
pam-foreground-compat.ck
consolekit.logrotate)
diff --git a/extra/feh/Pkgfile b/extra/feh/Pkgfile
index 143843eee..fa99d78d8 100644
--- a/extra/feh/Pkgfile
+++ b/extra/feh/Pkgfile
@@ -2,7 +2,7 @@
# URL: http://linuxbrit.co.uk/feh/
# Maintainer: NuTyX core team
# Packager: geantbrun at gmail dot com
-# Depends on: giblib xorg-libxt
+# Depends on: giblib xorg-libxt, xorg-libxcursor, xorg-libxdamage, xorg-libxrandr, xorg-libxinerama, curl
# Run on: giblib,xorg-libxt
name=feh
diff --git a/extra/libproxy/.footprint.i686 b/extra/libproxy/.footprint.i686
index cd0d5a5a6..2adde0486 100644
--- a/extra/libproxy/.footprint.i686
+++ b/extra/libproxy/.footprint.i686
@@ -10,11 +10,6 @@ lrwxrwxrwx root/root usr/lib/libmodman.so.1 -> libmodman.so.1.0.0
lrwxrwxrwx root/root usr/lib/libproxy.so -> libproxy.so.1
lrwxrwxrwx root/root usr/lib/libproxy.so.1 -> libproxy.so.1.0.0
-rwxr-xr-x root/root usr/lib/libproxy.so.1.0.0
-drwxr-xr-x root/root usr/lib/libproxy/
-drwxr-xr-x root/root usr/lib/libproxy/0.4.6/
-drwxr-xr-x root/root usr/lib/libproxy/0.4.6/modules/
--rwxr-xr-x root/root usr/lib/libproxy/0.4.6/modules/config_gnome.so
--rwxr-xr-x root/root usr/lib/libproxy/pxgconf
drwxr-xr-x root/root usr/lib/perl5/
drwxr-xr-x root/root usr/lib/perl5/site/
drwxr-xr-x root/root usr/lib/perl5/site/Net/
diff --git a/extra/libproxy/.footprint.x86_64 b/extra/libproxy/.footprint.x86_64
index cd0d5a5a6..2adde0486 100644
--- a/extra/libproxy/.footprint.x86_64
+++ b/extra/libproxy/.footprint.x86_64
@@ -10,11 +10,6 @@ lrwxrwxrwx root/root usr/lib/libmodman.so.1 -> libmodman.so.1.0.0
lrwxrwxrwx root/root usr/lib/libproxy.so -> libproxy.so.1
lrwxrwxrwx root/root usr/lib/libproxy.so.1 -> libproxy.so.1.0.0
-rwxr-xr-x root/root usr/lib/libproxy.so.1.0.0
-drwxr-xr-x root/root usr/lib/libproxy/
-drwxr-xr-x root/root usr/lib/libproxy/0.4.6/
-drwxr-xr-x root/root usr/lib/libproxy/0.4.6/modules/
--rwxr-xr-x root/root usr/lib/libproxy/0.4.6/modules/config_gnome.so
--rwxr-xr-x root/root usr/lib/libproxy/pxgconf
drwxr-xr-x root/root usr/lib/perl5/
drwxr-xr-x root/root usr/lib/perl5/site/
drwxr-xr-x root/root usr/lib/perl5/site/Net/
diff --git a/extra/libproxy/Pkgfile b/extra/libproxy/Pkgfile
index de4ffa322..3c4b97c2b 100755
--- a/extra/libproxy/Pkgfile
+++ b/extra/libproxy/Pkgfile
@@ -12,7 +12,6 @@ release=2
source=(http://libproxy.googlecode.com/files/libproxy-$version.tar.gz)
build() {
- unset MAKEFLAGS
cd $name-$version
mkdir build
cd build
diff --git a/extra/myodbc/.md5sum.i686 b/extra/myodbc/.md5sum.i686
index cae1d310e..1fe2395ab 100644
--- a/extra/myodbc/.md5sum.i686
+++ b/extra/myodbc/.md5sum.i686
@@ -1 +1,5 @@
+142a985fa0d3273df04399148ef27533 myodbc-64bit.patch
+8d019f9b6a10a6a56d835e7e4e22d215 myodbc-add-mysys.patch
+2d1636160af606323014b112c9481cf2 myodbc-my-free.patch
+ec43ad7b5c887a7de4b6024899ff886c myodbc-shutdown.patch
c64d8cec9de453bdf48fcb168643b943 mysql-connector-odbc-5.1.8.tar.gz
diff --git a/extra/myodbc/.md5sum.x86_64 b/extra/myodbc/.md5sum.x86_64
index cae1d310e..1fe2395ab 100644
--- a/extra/myodbc/.md5sum.x86_64
+++ b/extra/myodbc/.md5sum.x86_64
@@ -1 +1,5 @@
+142a985fa0d3273df04399148ef27533 myodbc-64bit.patch
+8d019f9b6a10a6a56d835e7e4e22d215 myodbc-add-mysys.patch
+2d1636160af606323014b112c9481cf2 myodbc-my-free.patch
+ec43ad7b5c887a7de4b6024899ff886c myodbc-shutdown.patch
c64d8cec9de453bdf48fcb168643b943 mysql-connector-odbc-5.1.8.tar.gz
diff --git a/extra/myodbc/Pkgfile b/extra/myodbc/Pkgfile
index 8821cee92..3ba68a1e9 100644
--- a/extra/myodbc/Pkgfile
+++ b/extra/myodbc/Pkgfile
@@ -8,13 +8,29 @@
name=myodbc
version=5.1.8
release=1
-source=(http://mirror.switch.ch/mirror/mysql/Downloads/Connector-ODBC/5.1/mysql-connector-odbc-$version.tar.gz )
+source=(http://mirror.switch.ch/mirror/mysql/Downloads/Connector-ODBC/5.1/mysql-connector-odbc-$version.tar.gz
+ myodbc-64bit.patch
+ myodbc-add-mysys.patch
+ myodbc-my-free.patch
+ myodbc-shutdown.patch )
build () {
cd mysql-connector-odbc-$version
- [ $NOEXTRACT -eq 1 ] || ./configure --prefix=/usr --sysconfdir=/etc --with-unixODBC=/usr \
- --with-mysql-path=/usr --without-x --disable-gui --enable-shared \
- --disable-static
+
+ [ $NOEXTRACT -eq 1 ] || patch -p1 < $SRC/myodbc-64bit.patch
+ [ $NOEXTRACT -eq 1 ] || patch -p1 < $SRC/myodbc-add-mysys.patch
+ [ $NOEXTRACT -eq 1 ] || patch -p1 < $SRC/myodbc-my-free.patch
+ [ $NOEXTRACT -eq 1 ] || patch -p1 < $SRC/myodbc-shutdown.patch
+
+ [ $NOEXTRACT -eq 1 ] || CFLAGS=-DTHREAD LDFLAGS=-lmysqld ./configure --prefix=/usr --sysconfdir=/etc --with-unixODBC=/usr \
+ --with-mysql-path=/usr --without-samples --enable-thread-safe \
+ --without-x --without-qt --disable-gui --enable-shared \
+ --disable-static --disable-test
+
+# [ $NOEXTRACT -eq 1 ] || CFLAGS=-DTHREAD LDFLAGS=-lmysqld ./configure --prefix=/usr \
+# --sysconfdir=/etc --with-unixODBC=/usr \
+# --with-mysql-path=/usr --without-x --disable-gui --enable-shared \
+# --disable-static
make
make DESTDIR=$PKG install
}
diff --git a/extra/myodbc/myodbc-64bit.patch b/extra/myodbc/myodbc-64bit.patch
new file mode 100644
index 000000000..ac62d816a
--- /dev/null
+++ b/extra/myodbc/myodbc-64bit.patch
@@ -0,0 +1,85 @@
+Fix some 64-bitness issues arising from unixODBC 2.2.14 changes.
+
+
+diff -Naur mysql-connector-odbc-5.1.8.orig/driver/utility.c mysql-connector-odbc-5.1.8/driver/utility.c
+--- mysql-connector-odbc-5.1.8.orig/driver/utility.c 2010-10-28 14:33:18.000000000 -0400
++++ mysql-connector-odbc-5.1.8/driver/utility.c 2010-12-23 17:15:37.516602586 -0500
+@@ -1205,7 +1205,7 @@
+ {
+ /* See comment for fill_transfer_oct_len_buff()*/
+ SQLLEN size= get_display_size(stmt, field);
+- sprintf(buff,size == SQL_NO_TOTAL ? "%d" : (sizeof(SQLLEN) == 4 ? "%lu" : "%lld"), size);
++ sprintf(buff, (size == SQL_NO_TOTAL ? "%ld" : "%lu"), size);
+
+ return size;
+ }
+@@ -1228,7 +1228,7 @@
+ */
+ SQLLEN len= get_transfer_octet_length(stmt, field);
+
+- sprintf(buff, len == SQL_NO_TOTAL ? "%d" : (sizeof(SQLLEN) == 4 ? "%lu" : "%lld"), len );
++ sprintf(buff, (len == SQL_NO_TOTAL ? "%ld" : "%lu"), len );
+
+ return len;
+ }
+@@ -1245,8 +1245,7 @@
+ SQLULEN fill_column_size_buff(char *buff, STMT *stmt, MYSQL_FIELD *field)
+ {
+ SQLULEN size= get_column_size(stmt, field);
+- sprintf(buff, (size== SQL_NO_TOTAL ? "%d" :
+- (sizeof(SQLULEN) == 4 ? "%lu" : "%llu")), size);
++ sprintf(buff, (size== SQL_NO_TOTAL ? "%ld" : "%lu"), size);
+ return size;
+ }
+
+diff -Naur mysql-connector-odbc-5.1.8.orig/test/my_catalog.c mysql-connector-odbc-5.1.8/test/my_catalog.c
+--- mysql-connector-odbc-5.1.8.orig/test/my_catalog.c 2010-10-28 14:33:18.000000000 -0400
++++ mysql-connector-odbc-5.1.8/test/my_catalog.c 2010-12-23 17:16:26.284605944 -0500
+@@ -599,7 +599,7 @@
+ fprintf(stdout, "# Column Name : %s\n", szColName);
+ fprintf(stdout, "# NameLengh : %d\n", pcbColName);
+ fprintf(stdout, "# DataType : %d\n", pfSqlType);
+- fprintf(stdout, "# ColumnSize : %d\n", pcbColDef);
++ fprintf(stdout, "# ColumnSize : %ld\n", pcbColDef);
+ fprintf(stdout, "# DecimalDigits : %d\n", pibScale);
+ fprintf(stdout, "# Nullable : %d\n", pfNullable);
+
+@@ -632,7 +632,7 @@
+
+ rc = SQLGetConnectAttr(hdbc, SQL_ATTR_CURRENT_CATALOG, db, sizeof(db), &len);
+ mycon(hdbc,rc);
+- fprintf(stdout,"current_catalog: %s (%ld)\n", db, len);
++ fprintf(stdout,"current_catalog: %s (%d)\n", db, len);
+ is_num(len, 4);
+ is_str(db, "test", 5);
+
+@@ -653,7 +653,7 @@
+
+ rc = SQLGetConnectAttr(hdbc, SQL_ATTR_CURRENT_CATALOG, db, 255, &len);
+ mycon(hdbc,rc);
+- fprintf(stdout,"current_catalog: %s (%ld)\n", db, len);
++ fprintf(stdout,"current_catalog: %s (%d)\n", db, len);
+ is_num(len, 17);
+ is_str(db, cur_db, 18);
+
+diff -Naur mysql-connector-odbc-5.1.8.orig/test/my_cursor.c mysql-connector-odbc-5.1.8/test/my_cursor.c
+--- mysql-connector-odbc-5.1.8.orig/test/my_cursor.c 2010-10-28 14:33:18.000000000 -0400
++++ mysql-connector-odbc-5.1.8/test/my_cursor.c 2010-12-23 17:12:16.632676933 -0500
+@@ -711,7 +711,7 @@
+
+ rc = SQLRowCount(hstmt1,&row_count);
+ mystmt(hstmt1,rc);
+- fprintf(stdout, "rows affected: %d\n", row_count);
++ fprintf(stdout, "rows affected: %ld\n", row_count);
+ myassert(row_count == 1);
+
+ rc = SQLExtendedFetch(hstmt,SQL_FETCH_NEXT,1,NULL,&rgfRowStatus);
+@@ -732,7 +732,7 @@
+
+ rc = SQLRowCount(hstmt1,&row_count);
+ mystmt(hstmt1,rc);
+- fprintf(stdout, "rows affected: %d\n", row_count);
++ fprintf(stdout, "rows affected: %ld\n", row_count);
+ myassert(row_count == 1);
+
+ SQLFreeStmt(hstmt,SQL_UNBIND);
diff --git a/extra/myodbc/myodbc-add-mysys.patch b/extra/myodbc/myodbc-add-mysys.patch
new file mode 100644
index 000000000..a30466114
--- /dev/null
+++ b/extra/myodbc/myodbc-add-mysys.patch
@@ -0,0 +1,29 @@
+Add files extracted from mysql into the driver build script.
+
+
+diff -Naur mysql-connector-odbc-5.1.8.orig/util/Makefile.am mysql-connector-odbc-5.1.8/util/Makefile.am
+--- mysql-connector-odbc-5.1.8.orig/util/Makefile.am 2010-10-28 14:33:17.000000000 -0400
++++ mysql-connector-odbc-5.1.8/util/Makefile.am 2010-12-23 18:09:00.359695597 -0500
+@@ -10,6 +10,22 @@
+ installer.c \
+ odbcinstw.c \
+ unicode_transcode.c \
++ array.c \
++ list.c \
++ my_alloc.c \
++ my_malloc.c \
++ string.c \
++ int2str.c \
++ is_prefix.c \
++ longlong2str.c \
++ strcend.c \
++ strend.c \
++ strfill.c \
++ strmake.c \
++ strmov.c \
++ strxmov.c \
++ mysys_err.h \
++ mysys_priv.h \
+ MYODBCUtil.h \
+ MYODBCUtilAllocDataSource.c \
+ MYODBCUtilAllocDriver.c \
diff --git a/extra/myodbc/myodbc-my-free.patch b/extra/myodbc/myodbc-my-free.patch
new file mode 100644
index 000000000..cf7730a59
--- /dev/null
+++ b/extra/myodbc/myodbc-my-free.patch
@@ -0,0 +1,253 @@
+Once again, mysql can't manage to ship a mysql-connector-odbc release
+on time ... mysql 5.5 changed the my_free() function and the released
+connector version is not up to speed. Can't use NEAR anymore, either.
+
+
+diff -Naur mysql-connector-odbc-5.1.8.orig/driver/catalog.c mysql-connector-odbc-5.1.8/driver/catalog.c
+--- mysql-connector-odbc-5.1.8.orig/driver/catalog.c 2010-10-28 14:33:18.000000000 -0400
++++ mysql-connector-odbc-5.1.8/driver/catalog.c 2010-12-23 17:50:52.916552525 -0500
+@@ -94,11 +94,11 @@
+ {
+ if (stmt->result)
+ {
+- my_free((char *)stmt->result, MYF(0));
++ my_free((char *)stmt->result);
+ }
+ if (stmt->result_array)
+ {
+- my_free((char *)stmt->result_array, MYF(0));
++ my_free((char *)stmt->result_array);
+ }
+ set_mem_error(&stmt->dbc->mysql);
+ return handle_connection_error(stmt);
+diff -Naur mysql-connector-odbc-5.1.8.orig/driver/catalog_no_i_s.c mysql-connector-odbc-5.1.8/driver/catalog_no_i_s.c
+--- mysql-connector-odbc-5.1.8.orig/driver/catalog_no_i_s.c 2010-10-28 14:33:18.000000000 -0400
++++ mysql-connector-odbc-5.1.8/driver/catalog_no_i_s.c 2010-12-23 17:51:41.493551970 -0500
+@@ -269,13 +269,13 @@
+ pthread_mutex_lock(&dbc->lock);
+ if (mysql_query(mysql, select))
+ {
+- my_free(select, MYF(0));
++ my_free(select);
+ pthread_mutex_unlock(&dbc->lock);
+ return NULL;
+ }
+ result= mysql_store_result(&dbc->mysql);
+ pthread_mutex_unlock(&dbc->lock);
+- my_free(select, MYF(0));
++ my_free(select);
+
+ return result;
+ }
+@@ -1094,7 +1094,7 @@
+ SQLFORE_KEYS_FIELDS *
+ row_count,
+ MYF(0));
+- my_free((char *)tempdata, MYF(0));
++ my_free((char *)tempdata);
+
+ if (!stmt->result_array)
+ {
+@@ -1323,12 +1323,12 @@
+ && (j != mypcREMARKS)
+ && (j != mypcCOLUMN_DEF)
+ && (j != mypcIS_NULLABLE))
+- my_free(((char**)cur_params->data)[j], MYF(0));
++ my_free(((char**)cur_params->data)[j]);
+ }
+ /* cleanup the list */
+ params= list_delete_forward(params);
+- my_free(cur_params->data, MYF(0));
+- my_free(cur_params, MYF(0));
++ my_free(cur_params->data);
++ my_free(cur_params);
+ }
+ }
+ }
+@@ -1675,7 +1675,7 @@
+ }
+
+ dynstr_free(&dynQuery);
+- my_free(params_r, MYF(0));
++ my_free(params_r);
+
+ return nReturn;
+ }
+diff -Naur mysql-connector-odbc-5.1.8.orig/driver/desc.c mysql-connector-odbc-5.1.8/driver/desc.c
+--- mysql-connector-odbc-5.1.8.orig/driver/desc.c 2010-10-28 14:33:18.000000000 -0400
++++ mysql-connector-odbc-5.1.8/driver/desc.c 2010-12-23 17:51:06.532607921 -0500
+@@ -65,7 +65,7 @@
+ */
+ if (my_init_dynamic_array(&desc->records, sizeof(DESCREC), 0, 0))
+ {
+- my_free((char *)desc, MYF(0));
++ my_free((char *)desc);
+ return NULL;
+ }
+ desc->desc_type= desc_type;
+@@ -111,7 +111,7 @@
+ if (aprec->par.alloced)
+ {
+ aprec->par.alloced= FALSE;
+- my_free(aprec->par.value, MYF(0));
++ my_free(aprec->par.value);
+ }
+ }
+ }
+diff -Naur mysql-connector-odbc-5.1.8.orig/driver/driver.h mysql-connector-odbc-5.1.8/driver/driver.h
+--- mysql-connector-odbc-5.1.8.orig/driver/driver.h 2010-10-28 14:33:18.000000000 -0400
++++ mysql-connector-odbc-5.1.8/driver/driver.h 2010-12-23 17:50:43.017608761 -0500
+@@ -113,7 +113,7 @@
+ /* Max Primary keys in a cursor * WHERE clause */
+ #define MY_MAX_PK_PARTS 32
+
+-#define x_free(A) { void *tmp= (A); if (tmp) my_free((char *) tmp,MYF(MY_WME+MY_FAE)); }
++#define x_free(A) { void *tmp= (A); if (tmp) my_free((char *) tmp); }
+
+
+ /* We don't make any assumption about what the default may be. */
+diff -Naur mysql-connector-odbc-5.1.8.orig/driver/execute.c mysql-connector-odbc-5.1.8/driver/execute.c
+--- mysql-connector-odbc-5.1.8.orig/driver/execute.c 2010-10-28 14:33:18.000000000 -0400
++++ mysql-connector-odbc-5.1.8/driver/execute.c 2010-12-23 17:49:52.799552481 -0500
+@@ -96,7 +96,7 @@
+ exit:
+ pthread_mutex_unlock(&stmt->dbc->lock);
+ if ( query != stmt->query )
+- my_free(query,MYF(0));
++ my_free(query);
+
+ /*
+ If the original query was modified, we reset stmt->query so that the
+@@ -104,7 +104,7 @@
+ */
+ if (stmt->orig_query)
+ {
+- my_free(stmt->query,MYF(0));
++ my_free(stmt->query);
+ stmt->query= stmt->orig_query;
+ stmt->query_end= stmt->orig_query_end;
+ stmt->orig_query= NULL;
+@@ -625,7 +625,7 @@
+
+ out:
+ if (free_data)
+- my_free(data, MYF(0));
++ my_free(data);
+
+ *toptr= to;
+ return SQL_SUCCESS;
+@@ -1060,7 +1060,7 @@
+ if ( cbValue == SQL_NULL_DATA )
+ {
+ if ( aprec->par.alloced )
+- my_free(aprec->par.value,MYF(0));
++ my_free(aprec->par.value);
+ aprec->par.alloced= FALSE;
+ aprec->par.value= NULL;
+ return SQL_SUCCESS;
+diff -Naur mysql-connector-odbc-5.1.8.orig/driver/handle.c mysql-connector-odbc-5.1.8/driver/handle.c
+--- mysql-connector-odbc-5.1.8.orig/driver/handle.c 2010-10-28 14:33:18.000000000 -0400
++++ mysql-connector-odbc-5.1.8/driver/handle.c 2010-12-23 17:50:17.425586339 -0500
+@@ -112,7 +112,7 @@
+ GlobalUnlock(GlobalHandle((HGLOBAL) henv));
+ GlobalFree(GlobalHandle((HGLOBAL) henv));
+ #else
+- if (henv) my_free((char*) henv,MYF(0));
++ if (henv) my_free((char*) henv);
+ myodbc_end();
+ #endif /* _UNIX_ */
+ return(SQL_SUCCESS);
+@@ -251,7 +251,8 @@
+ LIST *next;
+
+ dbc->env->connections= list_delete(dbc->env->connections,&dbc->list);
+- my_free(dbc->database,MYF(MY_ALLOW_ZERO_PTR));
++ if (dbc->database)
++ my_free(dbc->database);
+ if (dbc->ds)
+ ds_delete(dbc->ds);
+ pthread_mutex_destroy(&dbc->lock);
+@@ -268,7 +269,7 @@
+ GlobalUnlock(GlobalHandle((HGLOBAL) hdbc));
+ GlobalFree(GlobalHandle((HGLOBAL) hdbc));
+ #else
+- my_free((char*) hdbc,MYF(0));
++ my_free((char*) hdbc);
+ #endif
+ return SQL_SUCCESS;
+ }
+@@ -513,7 +514,7 @@
+ GlobalUnlock(GlobalHandle ((HGLOBAL) hstmt));
+ GlobalFree(GlobalHandle((HGLOBAL) hstmt));
+ #else
+- my_free((char*) hstmt,MYF(0));
++ my_free((char*) hstmt);
+ #endif /* _UNIX_*/
+ return SQL_SUCCESS;
+ }
+diff -Naur mysql-connector-odbc-5.1.8.orig/driver/options.c mysql-connector-odbc-5.1.8/driver/options.c
+--- mysql-connector-odbc-5.1.8.orig/driver/options.c 2010-10-28 14:33:18.000000000 -0400
++++ mysql-connector-odbc-5.1.8/driver/options.c 2010-12-23 17:50:28.864604596 -0500
+@@ -301,7 +301,7 @@
+ return SQL_ERROR;
+ }
+ }
+- my_free(dbc->database,MYF(0));
++ my_free(dbc->database);
+ dbc->database= my_strdup(db,MYF(MY_WME));
+ pthread_mutex_unlock(&dbc->lock);
+ }
+diff -Naur mysql-connector-odbc-5.1.8.orig/driver/prepare.c mysql-connector-odbc-5.1.8/driver/prepare.c
+--- mysql-connector-odbc-5.1.8.orig/driver/prepare.c 2010-10-28 14:33:18.000000000 -0400
++++ mysql-connector-odbc-5.1.8/driver/prepare.c 2010-12-23 17:51:17.175676805 -0500
+@@ -93,7 +93,7 @@
+ CLEAR_STMT_ERROR(stmt);
+
+ if (stmt->query)
+- my_free(stmt->query, MYF(0));
++ my_free(stmt->query);
+
+ if (dupe && szSqlStr)
+ stmt->query= (char *)szSqlStr;
+@@ -223,7 +223,7 @@
+ {
+ aprec->par.alloced= FALSE;
+ assert(aprec->par.value);
+- my_free(aprec->par.value,MYF(0));
++ my_free(aprec->par.value);
+ aprec->par.value = NULL;
+ }
+
+diff -Naur mysql-connector-odbc-5.1.8.orig/driver/utility.c mysql-connector-odbc-5.1.8/driver/utility.c
+--- mysql-connector-odbc-5.1.8.orig/driver/utility.c 2010-10-28 14:33:18.000000000 -0400
++++ mysql-connector-odbc-5.1.8/driver/utility.c 2010-12-23 17:49:05.498552376 -0500
+@@ -930,7 +930,7 @@
+ ulong max_length= stmt->stmt_options.max_length;
+ ulong *offset= &stmt->getdata.src_offset;
+ #if MYSQL_VERSION_ID >= 40100
+- char NEAR _dig_vec[] =
++ char _dig_vec[] =
+ "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
+ #endif
+
+@@ -2154,7 +2154,7 @@
+
+ my_bool reget_current_catalog(DBC FAR *dbc)
+ {
+- my_free(dbc->database,MYF(0));
++ my_free(dbc->database);
+ dbc->database= NULL;
+
+ if ( odbc_stmt(dbc, "select database()") )
+diff -Naur mysql-connector-odbc-5.1.8.orig/util/stringutil.h mysql-connector-odbc-5.1.8/util/stringutil.h
+--- mysql-connector-odbc-5.1.8.orig/util/stringutil.h 2010-10-28 14:33:17.000000000 -0400
++++ mysql-connector-odbc-5.1.8/util/stringutil.h 2010-12-23 17:51:51.848676475 -0500
+@@ -41,7 +41,7 @@
+ #include <sqlext.h>
+
+ #ifndef x_free
+-#define x_free(A) { void *tmp= (A); if (tmp) my_free((char *) tmp,MYF(MY_WME+MY_FAE)); }
++#define x_free(A) { void *tmp= (A); if (tmp) my_free((char *) tmp); }
+ #endif
+
+ #define myodbc_min(a, b) ((a) < (b) ? (a) : (b))
diff --git a/extra/myodbc/myodbc-shutdown.patch b/extra/myodbc/myodbc-shutdown.patch
new file mode 100644
index 000000000..ec0cf3d36
--- /dev/null
+++ b/extra/myodbc/myodbc-shutdown.patch
@@ -0,0 +1,27 @@
+myodbc_end is really only usable during Windows DLL unload, since it's not
+connection-specific and not thread-safe either. This bit of brain fade
+accounts for our bug #185343 and several bugs filed at mysql.com.
+
+Furthermore, my_end() isn't exported from libmysqlclient anymore.
+Hence, best fix is to turn the function into a no-op.
+
+
+diff -Naur mysql-connector-odbc-5.1.8.orig/driver/dll.c mysql-connector-odbc-5.1.8/driver/dll.c
+--- mysql-connector-odbc-5.1.8.orig/driver/dll.c 2010-10-28 14:33:18.000000000 -0400
++++ mysql-connector-odbc-5.1.8/driver/dll.c 2010-12-23 15:05:49.394608226 -0500
+@@ -94,6 +94,7 @@
+ */
+ void myodbc_end()
+ {
++#if 0
+ if (!--myodbc_inited)
+ {
+ my_free(decimal_point,MYF(0));
+@@ -121,6 +122,7 @@
+ my_end(0);
+ #endif
+ }
++#endif
+ }
+
+
diff --git a/extra/polkit-qt/Pkgfile b/extra/polkit-qt/Pkgfile
index 5abcd2cad..c90a41c07 100755
--- a/extra/polkit-qt/Pkgfile
+++ b/extra/polkit-qt/Pkgfile
@@ -7,7 +7,7 @@
name=polkit-qt
version=0.99.0
-release=1
+release=2
source=(ftp://ftp.kde.org/pub/kde/stable/apps/KDE4.x/admin/$name-1-$version.tar.bz2)
build() {
@@ -16,8 +16,7 @@ build() {
mkdir build
cd build
cmake ../ -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_BUILD_TYPE=Release \
- -DCMAKE_SKIP_RPATH=ON
+ -DCMAKE_BUILD_TYPE=Release
make
make DESTDIR=$PKG install
}
diff --git a/extra/polkit/.md5sum.i686 b/extra/polkit/.md5sum.i686
index 7b83a6558..bc220ff2b 100644
--- a/extra/polkit/.md5sum.i686
+++ b/extra/polkit/.md5sum.i686
@@ -1,2 +1,3 @@
f925ac93aba3c072977370c1e27feb7f polkit-0.101.tar.gz
+b2a4e882223701ebb7e96ed511ab92b6 polkit-101-CVE-2011-1485.patch
6564f95878297b954f0572bc1610dd15 polkit.pam
diff --git a/extra/polkit/.md5sum.x86_64 b/extra/polkit/.md5sum.x86_64
index 7b83a6558..bc220ff2b 100644
--- a/extra/polkit/.md5sum.x86_64
+++ b/extra/polkit/.md5sum.x86_64
@@ -1,2 +1,3 @@
f925ac93aba3c072977370c1e27feb7f polkit-0.101.tar.gz
+b2a4e882223701ebb7e96ed511ab92b6 polkit-101-CVE-2011-1485.patch
6564f95878297b954f0572bc1610dd15 polkit.pam
diff --git a/extra/polkit/Pkgfile b/extra/polkit/Pkgfile
index 80a2165b9..1fc4e0971 100755
--- a/extra/polkit/Pkgfile
+++ b/extra/polkit/Pkgfile
@@ -2,17 +2,20 @@
# URL: http://hal.freedesktop.org/docs/polkit
# Maintainer: NuTyX core team
# Packager: thierryn1 at hispeed dot ch
-# Depends on: dbus-glib, expat, eggdbus, gobject-introspection, linux-pam, intltool
+# Depends on: glib, expat, gobject-introspection, linux-pam, intltool
# Run on: dbus-glib,expat,eggdbus,linux-pam,intltool
name=polkit
version=0.101
-release=3
+release=1
source=(http://hal.freedesktop.org/releases/$name-$version.tar.gz
- polkit.pam)
+ polkit.pam
+ polkit-101-CVE-2011-1485.patch)
+
build() {
cd $name-$version
+ patch -Np1 -i ../polkit-101-CVE-2011-1485.patch
PYTHON=/usr/bin/python2 ./configure --prefix=/usr \
--sysconfdir=/etc \
--libexecdir=/usr/lib/polkit-1 \
diff --git a/extra/polkit/polkit-101-CVE-2011-1485.patch b/extra/polkit/polkit-101-CVE-2011-1485.patch
new file mode 100644
index 000000000..8d0f81781
--- /dev/null
+++ b/extra/polkit/polkit-101-CVE-2011-1485.patch
@@ -0,0 +1,909 @@
+From dd848a42a64a3b22a0cc60f6657b56ce9b6010ae Mon Sep 17 00:00:00 2001
+From: David Zeuthen <davidz@redhat.com>
+Date: Thu, 31 Mar 2011 16:59:09 +0000
+Subject: PolkitUnixProcess: Clarify that the real uid is returned, not the effective one
+
+On Linux, also switch to parsing /proc/<pid>/status instead of relying
+on the st_uid returned by stat(2) to be the uid we want.
+
+This was pointed out by Neel Mehta <nmehta@google.com>. Thanks!
+
+Signed-off-by: David Zeuthen <davidz@redhat.com>
+---
+diff --git a/src/polkit/polkitunixprocess.c b/src/polkit/polkitunixprocess.c
+index d95a1d4..876da69 100644
+--- a/src/polkit/polkitunixprocess.c
++++ b/src/polkit/polkitunixprocess.c
+@@ -24,9 +24,7 @@
+ #endif
+
+ #include <sys/types.h>
+-#ifndef HAVE_FREEBSD
+-#include <sys/stat.h>
+-#else
++#ifdef HAVE_FREEBSD
+ #include <sys/param.h>
+ #include <sys/sysctl.h>
+ #include <sys/user.h>
+@@ -34,6 +32,7 @@
+ #include <stdlib.h>
+ #include <string.h>
+ #include <errno.h>
++#include <stdio.h>
+
+ #include "polkitunixprocess.h"
+ #include "polkitsubject.h"
+@@ -208,6 +207,8 @@ polkit_unix_process_get_pid (PolkitUnixProcess *process)
+ *
+ * Gets the uid of the owner of @process.
+ *
++ * Note that this returns the real user-id (not the effective user-id) of @process.
++ *
+ * Returns: The UNIX user id of the owner for @process or 0 if @error is set.
+ **/
+ gint
+@@ -215,17 +216,21 @@ polkit_unix_process_get_owner (PolkitUnixProcess *process,
+ GError **error)
+ {
+ gint result;
++ gchar *contents;
++ gchar **lines;
+ #ifdef HAVE_FREEBSD
+ struct kinfo_proc p;
+ #else
+- struct stat statbuf;
+- char procbuf[32];
++ gchar filename[64];
++ guint n;
+ #endif
+
+ g_return_val_if_fail (POLKIT_IS_UNIX_PROCESS (process), 0);
+ g_return_val_if_fail (error == NULL || *error == NULL, 0);
+
+ result = 0;
++ lines = NULL;
++ contents = NULL;
+
+ #ifdef HAVE_FREEBSD
+ if (get_kinfo_proc (process->pid, &p) == 0)
+@@ -241,23 +246,52 @@ polkit_unix_process_get_owner (PolkitUnixProcess *process,
+
+ result = p.ki_uid;
+ #else
+- g_snprintf (procbuf, sizeof procbuf, "/proc/%d", process->pid);
+- if (stat (procbuf, &statbuf) != 0)
++
++ /* see 'man proc' for layout of the status file
++ *
++ * Uid, Gid: Real, effective, saved set, and file system UIDs (GIDs).
++ */
++ g_snprintf (filename, sizeof filename, "/proc/%d/status", process->pid);
++ if (!g_file_get_contents (filename,
++ &contents,
++ NULL,
++ error))
+ {
+- g_set_error (error,
+- POLKIT_ERROR,
+- POLKIT_ERROR_FAILED,
+- "stat() failed for /proc/%d: %s",
+- process->pid,
+- g_strerror (errno));
+ goto out;
+ }
++ lines = g_strsplit (contents, "\n", -1);
++ for (n = 0; lines != NULL && lines[n] != NULL; n++)
++ {
++ gint real_uid, effective_uid;
++ if (!g_str_has_prefix (lines[n], "Uid:"))
++ continue;
++ if (sscanf (lines[n] + 4, "%d %d", &real_uid, &effective_uid) != 2)
++ {
++ g_set_error (error,
++ POLKIT_ERROR,
++ POLKIT_ERROR_FAILED,
++ "Unexpected line `%s' in file %s",
++ lines[n],
++ filename);
++ goto out;
++ }
++ else
++ {
++ result = real_uid;
++ goto out;
++ }
++ }
+
+- result = statbuf.st_uid;
++ g_set_error (error,
++ POLKIT_ERROR,
++ POLKIT_ERROR_FAILED,
++ "Didn't find any line starting with `Uid:' in file %s",
++ filename);
+ #endif
+
+- out:
+-
++out:
++ g_strfreev (lines);
++ g_free (contents);
+ return result;
+ }
+
+--
+cgit v0.8.3-6-g21f6
+From 129b6223a19e7fb2753f8cad7957ac5402394076 Mon Sep 17 00:00:00 2001
+From: David Zeuthen <davidz@redhat.com>
+Date: Fri, 01 Apr 2011 16:09:45 +0000
+Subject: Make PolkitUnixProcess also record the uid of the process
+
+This is needed to avoid possible TOCTTOU issues since a process can
+change both its real uid and effective uid.
+
+Signed-off-by: David Zeuthen <davidz@redhat.com>
+---
+diff --git a/docs/polkit/polkit-1-sections.txt b/docs/polkit/polkit-1-sections.txt
+index 12141e3..9f4fcf8 100644
+--- a/docs/polkit/polkit-1-sections.txt
++++ b/docs/polkit/polkit-1-sections.txt
+@@ -145,10 +145,13 @@ POLKIT_UNIX_SESSION_GET_CLASS
+ PolkitUnixProcess
+ polkit_unix_process_new
+ polkit_unix_process_new_full
++polkit_unix_process_new_for_owner
++polkit_unix_process_set_pid
+ polkit_unix_process_get_pid
++polkit_unix_process_set_start_time
+ polkit_unix_process_get_start_time
+-polkit_unix_process_set_pid
+-polkit_unix_process_get_owner
++polkit_unix_process_set_uid
++polkit_unix_process_get_uid
+ <SUBSECTION Standard>
+ PolkitUnixProcessClass
+ POLKIT_UNIX_PROCESS
+diff --git a/src/polkit/polkitsubject.c b/src/polkit/polkitsubject.c
+index 577afec..d2c4c20 100644
+--- a/src/polkit/polkitsubject.c
++++ b/src/polkit/polkitsubject.c
+@@ -238,13 +238,18 @@ polkit_subject_from_string (const gchar *str,
+ {
+ gint scanned_pid;
+ guint64 scanned_starttime;
+- if (sscanf (str, "unix-process:%d:%" G_GUINT64_FORMAT, &scanned_pid, &scanned_starttime) == 2)
++ gint scanned_uid;
++ if (sscanf (str, "unix-process:%d:%" G_GUINT64_FORMAT ":%d", &scanned_pid, &scanned_starttime, &scanned_uid) == 3)
++ {
++ subject = polkit_unix_process_new_for_owner (scanned_pid, scanned_starttime, scanned_uid);
++ }
++ else if (sscanf (str, "unix-process:%d:%" G_GUINT64_FORMAT, &scanned_pid, &scanned_starttime) == 2)
+ {
+ subject = polkit_unix_process_new_full (scanned_pid, scanned_starttime);
+ }
+ else if (sscanf (str, "unix-process:%d", &scanned_pid) == 1)
+ {
+- subject = polkit_unix_process_new_full (scanned_pid, 0);
++ subject = polkit_unix_process_new (scanned_pid);
+ if (polkit_unix_process_get_start_time (POLKIT_UNIX_PROCESS (subject)) == 0)
+ {
+ g_object_unref (subject);
+@@ -297,6 +302,8 @@ polkit_subject_to_gvariant (PolkitSubject *subject)
+ g_variant_new_uint32 (polkit_unix_process_get_pid (POLKIT_UNIX_PROCESS (subject))));
+ g_variant_builder_add (&builder, "{sv}", "start-time",
+ g_variant_new_uint64 (polkit_unix_process_get_start_time (POLKIT_UNIX_PROCESS (subject))));
++ g_variant_builder_add (&builder, "{sv}", "uid",
++ g_variant_new_int32 (polkit_unix_process_get_uid (POLKIT_UNIX_PROCESS (subject))));
+ }
+ else if (POLKIT_IS_UNIX_SESSION (subject))
+ {
+@@ -395,6 +402,7 @@ polkit_subject_new_for_gvariant (GVariant *variant,
+ GVariant *v;
+ guint32 pid;
+ guint64 start_time;
++ gint32 uid;
+
+ v = lookup_asv (details_gvariant, "pid", G_VARIANT_TYPE_UINT32, error);
+ if (v == NULL)
+@@ -414,7 +422,18 @@ polkit_subject_new_for_gvariant (GVariant *variant,
+ start_time = g_variant_get_uint64 (v);
+ g_variant_unref (v);
+
+- ret = polkit_unix_process_new_full (pid, start_time);
++ v = lookup_asv (details_gvariant, "uid", G_VARIANT_TYPE_INT32, error);
++ if (v != NULL)
++ {
++ uid = g_variant_get_int32 (v);
++ g_variant_unref (v);
++ }
++ else
++ {
++ uid = -1;
++ }
++
++ ret = polkit_unix_process_new_for_owner (pid, start_time, uid);
+ }
+ else if (g_strcmp0 (kind, "unix-session") == 0)
+ {
+diff --git a/src/polkit/polkitunixprocess.c b/src/polkit/polkitunixprocess.c
+index 876da69..913be3a 100644
+--- a/src/polkit/polkitunixprocess.c
++++ b/src/polkit/polkitunixprocess.c
+@@ -62,6 +62,7 @@ struct _PolkitUnixProcess
+
+ gint pid;
+ guint64 start_time;
++ gint uid;
+ };
+
+ struct _PolkitUnixProcessClass
+@@ -74,6 +75,7 @@ enum
+ PROP_0,
+ PROP_PID,
+ PROP_START_TIME,
++ PROP_UID
+ };
+
+ static void subject_iface_init (PolkitSubjectIface *subject_iface);
+@@ -81,6 +83,9 @@ static void subject_iface_init (PolkitSubjectIface *subject_iface);
+ static guint64 get_start_time_for_pid (gint pid,
+ GError **error);
+
++static gint _polkit_unix_process_get_owner (PolkitUnixProcess *process,
++ GError **error);
++
+ #ifdef HAVE_FREEBSD
+ static gboolean get_kinfo_proc (gint pid, struct kinfo_proc *p);
+ #endif
+@@ -92,6 +97,7 @@ G_DEFINE_TYPE_WITH_CODE (PolkitUnixProcess, polkit_unix_process, G_TYPE_OBJECT,
+ static void
+ polkit_unix_process_init (PolkitUnixProcess *unix_process)
+ {
++ unix_process->uid = -1;
+ }
+
+ static void
+@@ -108,6 +114,10 @@ polkit_unix_process_get_property (GObject *object,
+ g_value_set_int (value, unix_process->pid);
+ break;
+
++ case PROP_UID:
++ g_value_set_int (value, unix_process->uid);
++ break;
++
+ case PROP_START_TIME:
+ g_value_set_uint64 (value, unix_process->start_time);
+ break;
+@@ -132,6 +142,14 @@ polkit_unix_process_set_property (GObject *object,
+ polkit_unix_process_set_pid (unix_process, g_value_get_int (value));
+ break;
+
++ case PROP_UID:
++ polkit_unix_process_set_uid (unix_process, g_value_get_int (value));
++ break;
++
++ case PROP_START_TIME:
++ polkit_unix_process_set_start_time (unix_process, g_value_get_uint64 (value));
++ break;
++
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+@@ -139,12 +157,39 @@ polkit_unix_process_set_property (GObject *object,
+ }
+
+ static void
++polkit_unix_process_constructed (GObject *object)
++{
++ PolkitUnixProcess *process = POLKIT_UNIX_PROCESS (object);
++
++ /* sets start_time and uid in case they are unset */
++
++ if (process->start_time == 0)
++ process->start_time = get_start_time_for_pid (process->pid, NULL);
++
++ if (process->uid == -1)
++ {
++ GError *error;
++ error = NULL;
++ process->uid = _polkit_unix_process_get_owner (process, &error);
++ if (error != NULL)
++ {
++ process->uid = -1;
++ g_error_free (error);
++ }
++ }
++
++ if (G_OBJECT_CLASS (polkit_unix_process_parent_class)->constructed != NULL)
++ G_OBJECT_CLASS (polkit_unix_process_parent_class)->constructed (object);
++}
++
++static void
+ polkit_unix_process_class_init (PolkitUnixProcessClass *klass)
+ {
+ GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+
+ gobject_class->get_property = polkit_unix_process_get_property;
+ gobject_class->set_property = polkit_unix_process_set_property;
++ gobject_class->constructed = polkit_unix_process_constructed;
+
+ /**
+ * PolkitUnixProcess:pid:
+@@ -156,7 +201,7 @@ polkit_unix_process_class_init (PolkitUnixProcessClass *klass)
+ g_param_spec_int ("pid",
+ "Process ID",
+ "The UNIX process ID",
+- -1,
++ 0,
+ G_MAXINT,
+ 0,
+ G_PARAM_CONSTRUCT |
+@@ -166,6 +211,27 @@ polkit_unix_process_class_init (PolkitUnixProcessClass *klass)
+ G_PARAM_STATIC_NICK));
+
+ /**
++ * PolkitUnixProcess:uid:
++ *
++ * The UNIX user id of the process or -1 if unknown.
++ *
++ * Note that this is the real user-id, not the effective user-id.
++ */
++ g_object_class_install_property (gobject_class,
++ PROP_UID,
++ g_param_spec_int ("uid",
++ "User ID",
++ "The UNIX user ID",
++ -1,
++ G_MAXINT,
++ -1,
++ G_PARAM_CONSTRUCT |
++ G_PARAM_READWRITE |
++ G_PARAM_STATIC_NAME |
++ G_PARAM_STATIC_BLURB |
++ G_PARAM_STATIC_NICK));
++
++ /**
+ * PolkitUnixProcess:start-time:
+ *
+ * The start time of the process.
+@@ -178,7 +244,8 @@ polkit_unix_process_class_init (PolkitUnixProcessClass *klass)
+ 0,
+ G_MAXUINT64,
+ 0,
+- G_PARAM_READABLE |
++ G_PARAM_CONSTRUCT |
++ G_PARAM_READWRITE |
+ G_PARAM_STATIC_NAME |
+ G_PARAM_STATIC_BLURB |
+ G_PARAM_STATIC_NICK));
+@@ -186,113 +253,50 @@ polkit_unix_process_class_init (PolkitUnixProcessClass *klass)
+ }
+
+ /**
+- * polkit_unix_process_get_pid:
++ * polkit_unix_process_get_uid:
+ * @process: A #PolkitUnixProcess.
+ *
+- * Gets the process id for @process.
++ * Gets the user id for @process. Note that this is the real user-id,
++ * not the effective user-id.
+ *
+- * Returns: The process id for @process.
++ * Returns: The user id for @process or -1 if unknown.
+ */
+ gint
+-polkit_unix_process_get_pid (PolkitUnixProcess *process)
++polkit_unix_process_get_uid (PolkitUnixProcess *process)
+ {
+- g_return_val_if_fail (POLKIT_IS_UNIX_PROCESS (process), 0);
+- return process->pid;
++ g_return_val_if_fail (POLKIT_IS_UNIX_PROCESS (process), -1);
++ return process->uid;
+ }
+
+ /**
+- * polkit_unix_process_get_owner:
++ * polkit_unix_process_set_uid:
+ * @process: A #PolkitUnixProcess.
+- * @error: (allow-none): Return location for error or %NULL.
++ * @uid: The user id to set for @process or -1 to unset it.
+ *
+- * Gets the uid of the owner of @process.
++ * Sets the (real, not effective) user id for @process.
++ */
++void
++polkit_unix_process_set_uid (PolkitUnixProcess *process,
++ gint uid)
++{
++ g_return_if_fail (POLKIT_IS_UNIX_PROCESS (process));
++ g_return_if_fail (uid >= -1);
++ process->uid = uid;
++}
++
++/**
++ * polkit_unix_process_get_pid:
++ * @process: A #PolkitUnixProcess.
+ *
+- * Note that this returns the real user-id (not the effective user-id) of @process.
++ * Gets the process id for @process.
+ *
+- * Returns: The UNIX user id of the owner for @process or 0 if @error is set.
+- **/
++ * Returns: The process id for @process.
++ */
+ gint
+-polkit_unix_process_get_owner (PolkitUnixProcess *process,
+- GError **error)
++polkit_unix_process_get_pid (PolkitUnixProcess *process)
+ {
+- gint result;
+- gchar *contents;
+- gchar **lines;
+-#ifdef HAVE_FREEBSD
+- struct kinfo_proc p;
+-#else
+- gchar filename[64];
+- guint n;
+-#endif
+-
+ g_return_val_if_fail (POLKIT_IS_UNIX_PROCESS (process), 0);
+- g_return_val_if_fail (error == NULL || *error == NULL, 0);
+-
+- result = 0;
+- lines = NULL;
+- contents = NULL;
+-
+-#ifdef HAVE_FREEBSD
+- if (get_kinfo_proc (process->pid, &p) == 0)
+- {
+- g_set_error (error,
+- POLKIT_ERROR,
+- POLKIT_ERROR_FAILED,
+- "get_kinfo_proc() failed for pid %d: %s",
+- process->pid,
+- g_strerror (errno));
+- goto out;
+- }
+-
+- result = p.ki_uid;
+-#else
+-
+- /* see 'man proc' for layout of the status file
+- *
+- * Uid, Gid: Real, effective, saved set, and file system UIDs (GIDs).
+- */
+- g_snprintf (filename, sizeof filename, "/proc/%d/status", process->pid);
+- if (!g_file_get_contents (filename,
+- &contents,
+- NULL,
+- error))
+- {
+- goto out;
+- }
+- lines = g_strsplit (contents, "\n", -1);
+- for (n = 0; lines != NULL && lines[n] != NULL; n++)
+- {
+- gint real_uid, effective_uid;
+- if (!g_str_has_prefix (lines[n], "Uid:"))
+- continue;
+- if (sscanf (lines[n] + 4, "%d %d", &real_uid, &effective_uid) != 2)
+- {
+- g_set_error (error,
+- POLKIT_ERROR,
+- POLKIT_ERROR_FAILED,
+- "Unexpected line `%s' in file %s",
+- lines[n],
+- filename);
+- goto out;
+- }
+- else
+- {
+- result = real_uid;
+- goto out;
+- }
+- }
+-
+- g_set_error (error,
+- POLKIT_ERROR,
+- POLKIT_ERROR_FAILED,
+- "Didn't find any line starting with `Uid:' in file %s",
+- filename);
+-#endif
+-
+-out:
+- g_strfreev (lines);
+- g_free (contents);
+- return result;
++ return process->pid;
+ }
+
+ /**
+@@ -311,6 +315,21 @@ polkit_unix_process_get_start_time (PolkitUnixProcess *process)
+ }
+
+ /**
++ * polkit_unix_process_set_start_time:
++ * @process: A #PolkitUnixProcess.
++ * @start_time: The start time for @pid.
++ *
++ * Set the start time of @process.
++ */
++void
++polkit_unix_process_set_start_time (PolkitUnixProcess *process,
++ guint64 start_time)
++{
++ g_return_if_fail (POLKIT_IS_UNIX_PROCESS (process));
++ process->start_time = start_time;
++}
++
++/**
+ * polkit_unix_process_set_pid:
+ * @process: A #PolkitUnixProcess.
+ * @pid: A process id.
+@@ -323,18 +342,17 @@ polkit_unix_process_set_pid (PolkitUnixProcess *process,
+ {
+ g_return_if_fail (POLKIT_IS_UNIX_PROCESS (process));
+ process->pid = pid;
+- if (pid != (gint) -1)
+- process->start_time = get_start_time_for_pid (pid, NULL);
+ }
+
+ /**
+ * polkit_unix_process_new:
+ * @pid: The process id.
+ *
+- * Creates a new #PolkitUnixProcess for @pid. The start time of the
+- * process will be looked up in using e.g. the
+- * <filename>/proc</filename> filesystem depending on the platform in
+- * use.
++ * Creates a new #PolkitUnixProcess for @pid.
++ *
++ * The uid and start time of the process will be looked up in using
++ * e.g. the <filename>/proc</filename> filesystem depending on the
++ * platform in use.
+ *
+ * Returns: (transfer full): A #PolkitSubject. Free with g_object_unref().
+ */
+@@ -353,22 +371,42 @@ polkit_unix_process_new (gint pid)
+ *
+ * Creates a new #PolkitUnixProcess object for @pid and @start_time.
+ *
++ * The uid of the process will be looked up in using e.g. the
++ * <filename>/proc</filename> filesystem depending on the platform in
++ * use.
++ *
+ * Returns: (transfer full): A #PolkitSubject. Free with g_object_unref().
+ */
+ PolkitSubject *
+ polkit_unix_process_new_full (gint pid,
+ guint64 start_time)
+ {
+- PolkitUnixProcess *process;
+-
+- process = POLKIT_UNIX_PROCESS (polkit_unix_process_new ((gint) -1));
+- process->pid = pid;
+- if (start_time != 0)
+- process->start_time = start_time;
+- else
+- process->start_time = get_start_time_for_pid (pid, NULL);
++ return POLKIT_SUBJECT (g_object_new (POLKIT_TYPE_UNIX_PROCESS,
++ "pid", pid,
++ "start_time", start_time,
++ NULL));
++}
+
+- return POLKIT_SUBJECT (process);
++/**
++ * polkit_unix_process_new_for_owner:
++ * @pid: The process id.
++ * @start_time: The start time for @pid or 0 to look it up in e.g. <filename>/proc</filename>.
++ * @uid: The (real, not effective) uid of the owner of @pid or -1 to look it up in e.g. <filename>/proc</filename>.
++ *
++ * Creates a new #PolkitUnixProcess object for @pid, @start_time and @uid.
++ *
++ * Returns: (transfer full): A #PolkitSubject. Free with g_object_unref().
++ */
++PolkitSubject *
++polkit_unix_process_new_for_owner (gint pid,
++ guint64 start_time,
++ gint uid)
++{
++ return POLKIT_SUBJECT (g_object_new (POLKIT_TYPE_UNIX_PROCESS,
++ "pid", pid,
++ "start_time", start_time,
++ "uid", uid,
++ NULL));
+ }
+
+ static guint
+@@ -616,3 +654,95 @@ out:
+
+ return start_time;
+ }
++
++static gint
++_polkit_unix_process_get_owner (PolkitUnixProcess *process,
++ GError **error)
++{
++ gint result;
++ gchar *contents;
++ gchar **lines;
++#ifdef HAVE_FREEBSD
++ struct kinfo_proc p;
++#else
++ gchar filename[64];
++ guint n;
++#endif
++
++ g_return_val_if_fail (POLKIT_IS_UNIX_PROCESS (process), 0);
++ g_return_val_if_fail (error == NULL || *error == NULL, 0);
++
++ result = 0;
++ lines = NULL;
++ contents = NULL;
++
++#ifdef HAVE_FREEBSD
++ if (get_kinfo_proc (process->pid, &p) == 0)
++ {
++ g_set_error (error,
++ POLKIT_ERROR,
++ POLKIT_ERROR_FAILED,
++ "get_kinfo_proc() failed for pid %d: %s",
++ process->pid,
++ g_strerror (errno));
++ goto out;
++ }
++
++ result = p.ki_uid;
++#else
++
++ /* see 'man proc' for layout of the status file
++ *
++ * Uid, Gid: Real, effective, saved set, and file system UIDs (GIDs).
++ */
++ g_snprintf (filename, sizeof filename, "/proc/%d/status", process->pid);
++ if (!g_file_get_contents (filename,
++ &contents,
++ NULL,
++ error))
++ {
++ goto out;
++ }
++ lines = g_strsplit (contents, "\n", -1);
++ for (n = 0; lines != NULL && lines[n] != NULL; n++)
++ {
++ gint real_uid, effective_uid;
++ if (!g_str_has_prefix (lines[n], "Uid:"))
++ continue;
++ if (sscanf (lines[n] + 4, "%d %d", &real_uid, &effective_uid) != 2)
++ {
++ g_set_error (error,
++ POLKIT_ERROR,
++ POLKIT_ERROR_FAILED,
++ "Unexpected line `%s' in file %s",
++ lines[n],
++ filename);
++ goto out;
++ }
++ else
++ {
++ result = real_uid;
++ goto out;
++ }
++ }
++
++ g_set_error (error,
++ POLKIT_ERROR,
++ POLKIT_ERROR_FAILED,
++ "Didn't find any line starting with `Uid:' in file %s",
++ filename);
++#endif
++
++out:
++ g_strfreev (lines);
++ g_free (contents);
++ return result;
++}
++
++/* deprecated public method */
++gint
++polkit_unix_process_get_owner (PolkitUnixProcess *process,
++ GError **error)
++{
++ return _polkit_unix_process_get_owner (process, error);
++}
+diff --git a/src/polkit/polkitunixprocess.h b/src/polkit/polkitunixprocess.h
+index b88cd03..531a57d 100644
+--- a/src/polkit/polkitunixprocess.h
++++ b/src/polkit/polkitunixprocess.h
+@@ -47,16 +47,24 @@ typedef struct _PolkitUnixProcess PolkitUnixProcess;
+ typedef struct _PolkitUnixProcessClass PolkitUnixProcessClass;
+
+ GType polkit_unix_process_get_type (void) G_GNUC_CONST;
+-PolkitSubject *polkit_unix_process_new (gint pid);
+-PolkitSubject *polkit_unix_process_new_full (gint pid,
+- guint64 start_time);
+-
++PolkitSubject *polkit_unix_process_new (gint pid);
++PolkitSubject *polkit_unix_process_new_full (gint pid,
++ guint64 start_time);
++PolkitSubject *polkit_unix_process_new_for_owner (gint pid,
++ guint64 start_time,
++ gint uid);
+ gint polkit_unix_process_get_pid (PolkitUnixProcess *process);
+ guint64 polkit_unix_process_get_start_time (PolkitUnixProcess *process);
++gint polkit_unix_process_get_uid (PolkitUnixProcess *process);
+ void polkit_unix_process_set_pid (PolkitUnixProcess *process,
+ gint pid);
++void polkit_unix_process_set_uid (PolkitUnixProcess *process,
++ gint uid);
++void polkit_unix_process_set_start_time (PolkitUnixProcess *process,
++ guint64 start_time);
++
+ gint polkit_unix_process_get_owner (PolkitUnixProcess *process,
+- GError **error);
++ GError **error) G_GNUC_DEPRECATED_FOR (polkit_unix_process_get_uid);
+
+ G_END_DECLS
+
+--
+cgit v0.8.3-6-g21f6
+From c23d74447c7615dc74dae259f0fc3688ec988867 Mon Sep 17 00:00:00 2001
+From: David Zeuthen <davidz@redhat.com>
+Date: Fri, 01 Apr 2011 16:12:27 +0000
+Subject: Use polkit_unix_process_get_uid() to get the owner of a process
+
+This avoids a TOCTTOU problem.
+
+Signed-off-by: David Zeuthen <davidz@redhat.com>
+---
+diff --git a/src/polkitbackend/polkitbackendsessionmonitor.c b/src/polkitbackend/polkitbackendsessionmonitor.c
+index 495f752..9c331b6 100644
+--- a/src/polkitbackend/polkitbackendsessionmonitor.c
++++ b/src/polkitbackend/polkitbackendsessionmonitor.c
+@@ -293,14 +293,15 @@ polkit_backend_session_monitor_get_user_for_subject (PolkitBackendSessionMonitor
+
+ if (POLKIT_IS_UNIX_PROCESS (subject))
+ {
+- local_error = NULL;
+- uid = polkit_unix_process_get_owner (POLKIT_UNIX_PROCESS (subject), &local_error);
+- if (local_error != NULL)
++ uid = polkit_unix_process_get_uid (POLKIT_UNIX_PROCESS (subject));
++ if ((gint) uid == -1)
+ {
+- g_propagate_prefixed_error (error, local_error, "Error getting user for process: ");
++ g_set_error (error,
++ POLKIT_ERROR,
++ POLKIT_ERROR_FAILED,
++ "Unix process subject does not have uid set");
+ goto out;
+ }
+-
+ ret = polkit_unix_user_new (uid);
+ }
+ else if (POLKIT_IS_SYSTEM_BUS_NAME (subject))
+--
+cgit v0.8.3-6-g21f6
+From 3b12cfac29dddd27f1f166a7574d8374cc1dccf2 Mon Sep 17 00:00:00 2001
+From: David Zeuthen <davidz@redhat.com>
+Date: Fri, 01 Apr 2011 16:13:15 +0000
+Subject: pkexec: Avoid TOCTTOU problems with parent process
+
+In a nutshell, the parent process may change its uid (either real- or
+effective uid) after launching pkexec. It can do this by exec()'ing
+e.g. a setuid root program.
+
+To avoid this problem, just use the uid the parent process had when it
+executed pkexec. This happens to be the same uid of the pkexec process
+itself.
+
+Additionally, remove some dubious code that allowed pkexec to continue
+when the parent process died as there is no reason to support
+something like that. Also ensure that the pkexec process is killed if
+the parent process dies.
+
+This problem was pointed out by Neel Mehta <nmehta@google.com>.
+
+Signed-off-by: David Zeuthen <davidz@redhat.com>
+---
+diff --git a/src/programs/pkexec.c b/src/programs/pkexec.c
+index 9217954..3e656be 100644
+--- a/src/programs/pkexec.c
++++ b/src/programs/pkexec.c
+@@ -35,6 +35,10 @@
+ #include <pwd.h>
+ #include <errno.h>
+
++#ifdef __linux__
++#include <sys/prctl.h>
++#endif
++
+ #include <glib/gi18n.h>
+
+ #ifdef POLKIT_AUTHFW_PAM
+@@ -423,7 +427,6 @@ main (int argc, char *argv[])
+ GPtrArray *saved_env;
+ gchar *opt_user;
+ pid_t pid_of_caller;
+- uid_t uid_of_caller;
+ gpointer local_agent_handle;
+
+ ret = 127;
+@@ -598,40 +601,49 @@ main (int argc, char *argv[])
+ */
+ g_type_init ();
+
+- /* now check if the program that invoked us is authorized */
++ /* make sure we are nuked if the parent process dies */
++#ifdef __linux__
++ if (prctl (PR_SET_PDEATHSIG, SIGTERM) != 0)
++ {
++ g_printerr ("prctl(PR_SET_PDEATHSIG, SIGTERM) failed: %s\n", g_strerror (errno));
++ goto out;
++ }
++#else
++#warning "Please add OS specific code to catch when the parent dies"
++#endif
++
++ /* Figure out the parent process */
+ pid_of_caller = getppid ();
+ if (pid_of_caller == 1)
+ {
+ /* getppid() can return 1 if the parent died (meaning that we are reaped
+- * by /sbin/init); get process group leader instead - for example, this
+- * happens when launching via gnome-panel (alt+f2, then 'pkexec gedit').
++ * by /sbin/init); In that case we simpy bail.
+ */
+- pid_of_caller = getpgrp ();
+- }
+-
+- subject = polkit_unix_process_new (pid_of_caller);
+- if (subject == NULL)
+- {
+- g_printerr ("No such process for pid %d: %s\n", (gint) pid_of_caller, error->message);
+- g_error_free (error);
++ g_printerr ("Refusing to render service to dead parents.\n");
+ goto out;
+ }
+
+- /* paranoia: check that the uid of pid_of_caller matches getuid() */
+- error = NULL;
+- uid_of_caller = polkit_unix_process_get_owner (POLKIT_UNIX_PROCESS (subject),
+- &error);
+- if (error != NULL)
+- {
+- g_printerr ("Error determing pid of caller (pid %d): %s\n", (gint) pid_of_caller, error->message);
+- g_error_free (error);
+- goto out;
+- }
+- if (uid_of_caller != getuid ())
+- {
+- g_printerr ("User of caller (%d) does not match our uid (%d)\n", uid_of_caller, getuid ());
+- goto out;
+- }
++ /* This process we want to check an authorization for is the process
++ * that launched us - our parent process.
++ *
++ * At the time the parent process fork()'ed and exec()'ed us, the
++ * process had the same real-uid that we have now. So we use this
++ * real-uid instead of of looking it up to avoid TOCTTOU issues
++ * (consider the parent process exec()'ing a setuid helper).
++ *
++ * On the other hand, the monotonic process start-time is guaranteed
++ * to never change so it's safe to look that up given only the PID
++ * since we are guaranteed to be nuked if the parent goes away
++ * (cf. the prctl(2) call above).
++ */
++ subject = polkit_unix_process_new_for_owner (pid_of_caller,
++ 0, /* 0 means "look up start-time in /proc" */
++ getuid ());
++ /* really double-check the invariants guaranteed by the PolkitUnixProcess class */
++ g_assert (subject != NULL);
++ g_assert (polkit_unix_process_get_pid (POLKIT_UNIX_PROCESS (subject)) == pid_of_caller);
++ g_assert (polkit_unix_process_get_uid (POLKIT_UNIX_PROCESS (subject)) >= 0);
++ g_assert (polkit_unix_process_get_start_time (POLKIT_UNIX_PROCESS (subject)) > 0);
+
+ error = NULL;
+ authority = polkit_authority_get_sync (NULL /* GCancellable* */, &error);
+--
+cgit v0.8.3-6-g21f6
+
diff --git a/extra/pyqt/.footprint.i686 b/extra/pyqt/.footprint.i686
index fd2216bf2..63c87f407 100644
--- a/extra/pyqt/.footprint.i686
+++ b/extra/pyqt/.footprint.i686
@@ -252,6 +252,7 @@ drwxr-xr-x root/root usr/share/sip/QtGui/
-rw-r--r-- root/root usr/share/sip/QtGui/qcolumnview.sip
-rw-r--r-- root/root usr/share/sip/QtGui/qcombobox.sip
-rw-r--r-- root/root usr/share/sip/QtGui/qcommandlinkbutton.sip
+-rw-r--r-- root/root usr/share/sip/QtGui/qcommonstyle.sip
-rw-r--r-- root/root usr/share/sip/QtGui/qcompleter.sip
-rw-r--r-- root/root usr/share/sip/QtGui/qcursor.sip
-rw-r--r-- root/root usr/share/sip/QtGui/qdatawidgetmapper.sip
@@ -526,7 +527,6 @@ drwxr-xr-x root/root usr/share/sip/QtTest/
-rw-r--r-- root/root usr/share/sip/QtTest/qtestkeyboard.sip
-rw-r--r-- root/root usr/share/sip/QtTest/qtestmouse.sip
-rw-r--r-- root/root usr/share/sip/QtTest/qtestsystem.sip
--rw-r--r-- root/root usr/share/sip/QtTest/qtesttouch.sip
drwxr-xr-x root/root usr/share/sip/QtWebKit/
-rw-r--r-- root/root usr/share/sip/QtWebKit/QtWebKitmod.sip
-rw-r--r-- root/root usr/share/sip/QtWebKit/qgraphicswebview.sip
diff --git a/extra/pyqt/.footprint.x86_64 b/extra/pyqt/.footprint.x86_64
index fd2216bf2..63c87f407 100644
--- a/extra/pyqt/.footprint.x86_64
+++ b/extra/pyqt/.footprint.x86_64
@@ -252,6 +252,7 @@ drwxr-xr-x root/root usr/share/sip/QtGui/
-rw-r--r-- root/root usr/share/sip/QtGui/qcolumnview.sip
-rw-r--r-- root/root usr/share/sip/QtGui/qcombobox.sip
-rw-r--r-- root/root usr/share/sip/QtGui/qcommandlinkbutton.sip
+-rw-r--r-- root/root usr/share/sip/QtGui/qcommonstyle.sip
-rw-r--r-- root/root usr/share/sip/QtGui/qcompleter.sip
-rw-r--r-- root/root usr/share/sip/QtGui/qcursor.sip
-rw-r--r-- root/root usr/share/sip/QtGui/qdatawidgetmapper.sip
@@ -526,7 +527,6 @@ drwxr-xr-x root/root usr/share/sip/QtTest/
-rw-r--r-- root/root usr/share/sip/QtTest/qtestkeyboard.sip
-rw-r--r-- root/root usr/share/sip/QtTest/qtestmouse.sip
-rw-r--r-- root/root usr/share/sip/QtTest/qtestsystem.sip
--rw-r--r-- root/root usr/share/sip/QtTest/qtesttouch.sip
drwxr-xr-x root/root usr/share/sip/QtWebKit/
-rw-r--r-- root/root usr/share/sip/QtWebKit/QtWebKitmod.sip
-rw-r--r-- root/root usr/share/sip/QtWebKit/qgraphicswebview.sip
diff --git a/extra/pyqt/.md5sum.i686 b/extra/pyqt/.md5sum.i686
index 4498b48ef..64b8a6b50 100644
--- a/extra/pyqt/.md5sum.i686
+++ b/extra/pyqt/.md5sum.i686
@@ -1 +1 @@
-d54fd1c37a74864faf42709c8102f254 PyQt-x11-gpl-4.8.3.tar.gz
+97c5dc1042feb5b3fe20baabad055af1 PyQt-x11-gpl-4.8.4.tar.gz
diff --git a/extra/pyqt/.md5sum.x86_64 b/extra/pyqt/.md5sum.x86_64
index 4498b48ef..64b8a6b50 100644
--- a/extra/pyqt/.md5sum.x86_64
+++ b/extra/pyqt/.md5sum.x86_64
@@ -1 +1 @@
-d54fd1c37a74864faf42709c8102f254 PyQt-x11-gpl-4.8.3.tar.gz
+97c5dc1042feb5b3fe20baabad055af1 PyQt-x11-gpl-4.8.4.tar.gz
diff --git a/extra/pyqt/Pkgfile b/extra/pyqt/Pkgfile
index 8bda14b9c..0c82d00a5 100644
--- a/extra/pyqt/Pkgfile
+++ b/extra/pyqt/Pkgfile
@@ -6,7 +6,7 @@
# Run on: dbus-python,sip,qscintilla,qt,phonon
name=pyqt
-version=4.8.3
+version=4.8.4
release=1
source=(http://www.riverbankcomputing.com/static/Downloads/PyQt4/PyQt-x11-gpl-$version.tar.gz)
build() {
diff --git a/extra/upower/.md5sum.i686 b/extra/upower/.md5sum.i686
index 53d977784..a3d082b3b 100644
--- a/extra/upower/.md5sum.i686
+++ b/extra/upower/.md5sum.i686
@@ -1 +1 @@
-cf10a756a93495e6076fecf1ac9d829b upower-0.9.8.tar.bz2
+8f1fb798f2ae754f25f00da7bc9e2ba3 upower-0.9.10.tar.bz2
diff --git a/extra/upower/.md5sum.x86_64 b/extra/upower/.md5sum.x86_64
index f03b267f1..a3d082b3b 100644
--- a/extra/upower/.md5sum.x86_64
+++ b/extra/upower/.md5sum.x86_64
@@ -1 +1 @@
-f92c2443ce09300992c20bee958f5370 upower-0.9.9.tar.bz2
+8f1fb798f2ae754f25f00da7bc9e2ba3 upower-0.9.10.tar.bz2
diff --git a/extra/upower/Pkgfile b/extra/upower/Pkgfile
index afd636551..e096d8da3 100644
--- a/extra/upower/Pkgfile
+++ b/extra/upower/Pkgfile
@@ -6,7 +6,7 @@
# Run on: libusb,polkit,dbus-glib
name=upower
-version=0.9.9
+version=0.9.10
release=1
source=(http://upower.freedesktop.org/releases/$name-$version.tar.bz2)