Update to 0.9.9.2.

Changelog:

0.9.9.1 => 0.9.9.2

Functionality Enhancements

    * Tickets and Bindings related to a collection or principal are now listed in the Admin UI.

Bug Fixes

    * The CardDAV 'addressbook-query' report is enabled.
    * A bug is fixed in the database libraries which caused some valid hexadecimal strings to be treated as numbers.
    * The PAM auth method now parses the username field better (Jim Hague).
    * An ETag will now be sent in response to a PUT for non-Calendar resources as well as for calendaring ones.
    * Collection / Principal maintenance screens will no longer cause query errors during the create action.


0.9.9 => 0.9.9.1

  Functionality Enhancements

    * Initial support for vCard Extensions to WebDAV (CardDAV) - Draft
    * WebDAV Sync RFC (draft) support is updated to draft version -03
    * Support for /.well-known/caldav and /.well-known/carddav URLs (per RFC5785: Defining Well-Known URIs)

Bug Fixes

    * Free/busy handling has been completely rewritten.
    * LDAP group handling should be better
    * UTF8 calendars should now be more reliably imported.
    * There should be no need to override the DAV header.
    * Many others.

Other Changes

    * Some updated translations
    * Clients which set the Content-Type incorrectly on PUT should be accommodated with a warning logged.
    * Errors in the DAViCal configuration file should not generate output to the screen. This has been a common problem causing breakage in the DAV functionality. Errors will still be logged to the PHP error log (usually the Apache error log).
This commit is contained in:
jym 2010-11-12 19:13:53 +00:00
parent f180da504d
commit 72866ea787
4 changed files with 41 additions and 37 deletions

View file

@ -1,5 +1,5 @@
=========================================================================== ===========================================================================
$NetBSD: MESSAGE,v 1.2 2010/06/02 23:27:56 jym Exp $ $NetBSD: MESSAGE,v 1.3 2010/11/12 19:13:53 jym Exp $
For pkgsrc installations, DAViCal's package is installed in non-default For pkgsrc installations, DAViCal's package is installed in non-default
locations: locations:
@ -49,7 +49,9 @@ To complete the installation of DAViCal, follow these steps:
Include ${PKG_SYSCONFDIR}/davical.conf Include ${PKG_SYSCONFDIR}/davical.conf
then restart Apache. then restart Apache. Note that Davical requires the following PHP
extensions to be loaded: pdo.so, pdo_pgsql.so, pgsql.so, iconv.so and
gettext.so.
5. You should now be able to access DAViCal through the URL configured 5. You should now be able to access DAViCal through the URL configured
at step 4. At login page, enter the following credentials: at step 4. At login page, enter the following credentials:

View file

@ -1,8 +1,8 @@
# $NetBSD: Makefile,v 1.2 2010/06/02 23:27:56 jym Exp $ # $NetBSD: Makefile,v 1.3 2010/11/12 19:13:53 jym Exp $
# #
DISTNAME= davical-${DAVICAL_VERSION} DISTNAME= davical-${DAVICAL_VERSION}
DAVICAL_VERSION=0.9.9 DAVICAL_VERSION=0.9.9.2
CATEGORIES= www CATEGORIES= www
MASTER_SITES= http://debian.mcmillan.net.nz/packages/davical/ MASTER_SITES= http://debian.mcmillan.net.nz/packages/davical/
@ -32,9 +32,10 @@ INSTALLATION_DIRS= ${DOCDIR} ${EGDIR}/config
.include "../../lang/php/phpversion.mk" .include "../../lang/php/phpversion.mk"
DEPENDS+= ${APACHE_PKG_PREFIX}-${PHP_PKG_PREFIX}>=5.2:../../www/ap-php
DEPENDS+= ${PHP_PKG_PREFIX}-pgsql>=4.3.1:../../databases/php-pgsql DEPENDS+= ${PHP_PKG_PREFIX}-pgsql>=4.3.1:../../databases/php-pgsql
DEPENDS+= ${PHP_PKG_PREFIX}-pdo_pgsql>=${PHP_BASE_VERS}:../../databases/php-pdo_pgsql DEPENDS+= ${PHP_PKG_PREFIX}-pdo_pgsql>=${PHP_BASE_VERS}:../../databases/php-pdo_pgsql
DEPENDS+= ${PHP_PKG_PREFIX}-libawl>=0.42:../../devel/php-libawl DEPENDS+= ${PHP_PKG_PREFIX}-libawl>=0.45:../../devel/php-libawl
DEPENDS+= p5-DBD-postgresql>=2.16.1:../../databases/p5-DBD-postgresql DEPENDS+= p5-DBD-postgresql>=2.16.1:../../databases/p5-DBD-postgresql
DEPENDS+= p5-Class-DBI-Pg>=0.09:../../databases/p5-Class-DBI-Pg DEPENDS+= p5-Class-DBI-Pg>=0.09:../../databases/p5-Class-DBI-Pg
DEPENDS+= p5-YAML>=0.71:../../textproc/p5-YAML DEPENDS+= p5-YAML>=0.71:../../textproc/p5-YAML
@ -116,9 +117,6 @@ do-install:
. for d in ${PAXDIRS} . for d in ${PAXDIRS}
${INSTALL_DATA_DIR} ${DESTDIR}${DAVICALDIR}/${d} ${INSTALL_DATA_DIR} ${DESTDIR}${DAVICALDIR}/${d}
. endfor
. for d in ${PAXDIRS}
cd ${WRKSRC}/${d} && pax -rwpam . ${DESTDIR}${DAVICALDIR}/${d} cd ${WRKSRC}/${d} && pax -rwpam . ${DESTDIR}${DAVICALDIR}/${d}
. endfor . endfor

View file

@ -1,4 +1,4 @@
@comment $NetBSD: PLIST,v 1.1.1.1 2010/05/23 21:36:30 jym Exp $ @comment $NetBSD: PLIST,v 1.2 2010/11/12 19:13:53 jym Exp $
share/davical/dba/appuser_permissions.txt share/davical/dba/appuser_permissions.txt
share/davical/dba/base-data.sql share/davical/dba/base-data.sql
share/davical/dba/better_perms.sql share/davical/dba/better_perms.sql
@ -29,6 +29,7 @@ share/davical/dba/patches/1.2.5.sql
share/davical/dba/patches/1.2.6.sql share/davical/dba/patches/1.2.6.sql
share/davical/dba/patches/1.2.7.sql share/davical/dba/patches/1.2.7.sql
share/davical/dba/patches/1.2.8.sql share/davical/dba/patches/1.2.8.sql
share/davical/dba/patches/1.2.9.sql
share/davical/dba/rrule_functions-8.1.sql share/davical/dba/rrule_functions-8.1.sql
share/davical/dba/rrule_functions.sql share/davical/dba/rrule_functions.sql
share/davical/dba/rrule_tests.sql share/davical/dba/rrule_tests.sql
@ -57,9 +58,7 @@ share/davical/htdocs/public.php
share/davical/htdocs/setup.php share/davical/htdocs/setup.php
share/davical/htdocs/tools.php share/davical/htdocs/tools.php
share/davical/htdocs/upgrade.php share/davical/htdocs/upgrade.php
share/davical/inc/AwlDBDialect.php share/davical/htdocs/well-known.php
share/davical/inc/AwlDatabase.php
share/davical/inc/AwlQuery.php
share/davical/inc/CalDAVPrincipal.php share/davical/inc/CalDAVPrincipal.php
share/davical/inc/CalDAVRequest.php share/davical/inc/CalDAVRequest.php
share/davical/inc/DAVResource.php share/davical/inc/DAVResource.php
@ -80,34 +79,38 @@ share/davical/inc/caldav-OPTIONS.php
share/davical/inc/caldav-POST.php share/davical/inc/caldav-POST.php
share/davical/inc/caldav-PROPFIND.php share/davical/inc/caldav-PROPFIND.php
share/davical/inc/caldav-PROPPATCH.php share/davical/inc/caldav-PROPPATCH.php
share/davical/inc/caldav-PUT-functions.php
share/davical/inc/caldav-PUT.php share/davical/inc/caldav-PUT.php
share/davical/inc/caldav-PUT-functions.php
share/davical/inc/caldav-PUT-vcard.php
share/davical/inc/caldav-REPORT.php
share/davical/inc/caldav-REPORT-calquery.php share/davical/inc/caldav-REPORT-calquery.php
share/davical/inc/caldav-REPORT-cardquery.php
share/davical/inc/caldav-REPORT-expand-property.php share/davical/inc/caldav-REPORT-expand-property.php
share/davical/inc/caldav-REPORT-freebusy.php share/davical/inc/caldav-REPORT-freebusy.php
share/davical/inc/caldav-REPORT-multiget.php share/davical/inc/caldav-REPORT-multiget.php
share/davical/inc/caldav-REPORT-pps-set.php share/davical/inc/caldav-REPORT-pps-set.php
share/davical/inc/caldav-REPORT-principal.php share/davical/inc/caldav-REPORT-principal.php
share/davical/inc/caldav-REPORT-sync-collection.php share/davical/inc/caldav-REPORT-sync-collection.php
share/davical/inc/caldav-REPORT.php
share/davical/inc/caldav-client-v2.php share/davical/inc/caldav-client-v2.php
share/davical/inc/caldav-client.php share/davical/inc/caldav-client.php
share/davical/inc/check_UTF8.php share/davical/inc/check_UTF8.php
share/davical/inc/davical_configuration_missing.php share/davical/inc/davical_configuration_missing.php
share/davical/inc/drivers_ldap.php share/davical/inc/drivers_ldap.php
share/davical/inc/drivers_pwauth_pam.php
share/davical/inc/drivers_squid_pam.php share/davical/inc/drivers_squid_pam.php
share/davical/inc/freebusy-GET.php share/davical/inc/freebusy-functions.php
share/davical/inc/interactive-page.php share/davical/inc/interactive-page.php
share/davical/inc/iSchedule.php
share/davical/inc/log_caldav_action.php share/davical/inc/log_caldav_action.php
share/davical/inc/other_translated_strings.php share/davical/inc/other_translated_strings.php
share/davical/inc/page-footer.php share/davical/inc/page-footer.php
share/davical/inc/page-header.php share/davical/inc/page-header.php
share/davical/inc/pubsub.php share/davical/inc/pubsub.php
share/davical/inc/test-RRULE.php share/davical/inc/test-RRULE.php
share/davical/inc/vcard.php
share/davical/inc/ui/collection-edit.php share/davical/inc/ui/collection-edit.php
share/davical/inc/ui/principal-browse.php share/davical/inc/ui/principal-browse.php
share/davical/inc/ui/principal-edit.php share/davical/inc/ui/principal-edit.php
share/davical/inc/AwlUpgrader.php
share/davical/inc/DAVTicket.php share/davical/inc/DAVTicket.php
share/davical/inc/caldav-BIND.php share/davical/inc/caldav-BIND.php
share/davical/inc/caldav-DELTICKET.php share/davical/inc/caldav-DELTICKET.php
@ -136,17 +139,12 @@ share/doc/davical/INSTALL
share/doc/davical/README share/doc/davical/README
share/doc/davical/TODO share/doc/davical/TODO
share/doc/davical/VERSION share/doc/davical/VERSION
share/doc/davical/api/awl/AWLDB/AwlQuery.html
share/doc/davical/api/awl/AWLDB/_inc---AwlQuery.php.html
share/doc/davical/api/awl/AwlDatabase/AwlDBDialect.html
share/doc/davical/api/awl/AwlDatabase/AwlDatabase.html
share/doc/davical/api/awl/AwlDatabase/_inc---AwlDBDialect.php.html
share/doc/davical/api/awl/AwlDatabase/_inc---AwlDatabase.php.html
share/doc/davical/api/awl/caldav/CalDAVClient.html share/doc/davical/api/awl/caldav/CalDAVClient.html
share/doc/davical/api/awl/caldav/CalendarInfo.html share/doc/davical/api/awl/caldav/CalendarInfo.html
share/doc/davical/api/awl/caldav/RRule.html share/doc/davical/api/awl/caldav/RRule.html
share/doc/davical/api/awl/caldav/RepeatRule.html share/doc/davical/api/awl/caldav/RepeatRule.html
share/doc/davical/api/awl/caldav/RepeatRuleDateTime.html share/doc/davical/api/awl/caldav/RepeatRuleDateTime.html
share/doc/davical/api/awl/caldav/RepeatRuleTimeZone.html
share/doc/davical/api/awl/caldav/_inc---RRule-v2.php.html share/doc/davical/api/awl/caldav/_inc---RRule-v2.php.html
share/doc/davical/api/awl/caldav/_inc---RRule.php.html share/doc/davical/api/awl/caldav/_inc---RRule.php.html
share/doc/davical/api/awl/caldav/_inc---caldav-client-v2.php.html share/doc/davical/api/awl/caldav/_inc---caldav-client-v2.php.html
@ -155,13 +153,12 @@ share/doc/davical/api/awl/caldav/iCalDate.html
share/doc/davical/api/blank.html share/doc/davical/api/blank.html
share/doc/davical/api/classtrees_awl.html share/doc/davical/api/classtrees_awl.html
share/doc/davical/api/classtrees_davical.html share/doc/davical/api/classtrees_davical.html
share/doc/davical/api/davical/Admin/_htdocs---users.php.html
share/doc/davical/api/davical/DAViCalSession/DAViCalSession.html share/doc/davical/api/davical/DAViCalSession/DAViCalSession.html
share/doc/davical/api/davical/DAViCalSession/Tools.html share/doc/davical/api/davical/DAViCalSession/Tools.html
share/doc/davical/api/davical/DAViCalSession/_htdocs---tools.php.html share/doc/davical/api/davical/DAViCalSession/_htdocs---tools.php.html
share/doc/davical/api/davical/DAViCalSession/_inc---DAViCalSession.php.html share/doc/davical/api/davical/DAViCalSession/_inc---DAViCalSession.php.html
share/doc/davical/api/davical/DAViCalUser/DAViCalUser.html share/doc/davical/api/davical/DAVTicket/DAVTicket.html
share/doc/davical/api/davical/DAViCalUser/_inc---DAViCalUser.php.html share/doc/davical/api/davical/DAVTicket/_inc---DAVTicket.php.html
share/doc/davical/api/davical/HTTPAuthSession/HTTPAuthSession.html share/doc/davical/api/davical/HTTPAuthSession/HTTPAuthSession.html
share/doc/davical/api/davical/HTTPAuthSession/_inc---HTTPAuthSession.php.html share/doc/davical/api/davical/HTTPAuthSession/_inc---HTTPAuthSession.php.html
share/doc/davical/api/davical/Principal/CalDAVPrincipal.html share/doc/davical/api/davical/Principal/CalDAVPrincipal.html
@ -173,28 +170,26 @@ share/doc/davical/api/davical/Request/CalDAVRequest.html
share/doc/davical/api/davical/Request/_inc---CalDAVRequest.php.html share/doc/davical/api/davical/Request/_inc---CalDAVRequest.php.html
share/doc/davical/api/davical/Resource/DAVResource.html share/doc/davical/api/davical/Resource/DAVResource.html
share/doc/davical/api/davical/Resource/_inc---DAVResource.php.html share/doc/davical/api/davical/Resource/_inc---DAVResource.php.html
share/doc/davical/api/davical/VCard.html
share/doc/davical/api/davical/_htdocs---admin.php.html share/doc/davical/api/davical/_htdocs---admin.php.html
share/doc/davical/api/davical/_htdocs---collection.php.html share/doc/davical/api/davical/_htdocs---always.php.html
share/doc/davical/api/davical/_htdocs---freebusy.php.html share/doc/davical/api/davical/_htdocs---freebusy.php.html
share/doc/davical/api/davical/_htdocs---help.php.html share/doc/davical/api/davical/_htdocs---help.php.html
share/doc/davical/api/davical/_htdocs---index.php.html share/doc/davical/api/davical/_htdocs---index.php.html
share/doc/davical/api/davical/_htdocs---relationship_types.php.html
share/doc/davical/api/davical/_htdocs---roles.php.html
share/doc/davical/api/davical/_htdocs---setup.php.html share/doc/davical/api/davical/_htdocs---setup.php.html
share/doc/davical/api/davical/_htdocs---test.php.html share/doc/davical/api/davical/_htdocs---test.php.html
share/doc/davical/api/davical/_htdocs---testpdo.php.html
share/doc/davical/api/davical/_htdocs---upgrade.php.html share/doc/davical/api/davical/_htdocs---upgrade.php.html
share/doc/davical/api/davical/_htdocs---usr.php.html share/doc/davical/api/davical/_htdocs---well-known.php.html
share/doc/davical/api/davical/_inc---always.php.html
share/doc/davical/api/davical/_inc---caldav-LOCK.php.html share/doc/davical/api/davical/_inc---caldav-LOCK.php.html
share/doc/davical/api/davical/_inc---caldav-REPORT-calquery.php.html share/doc/davical/api/davical/_inc---caldav-REPORT-calquery.php.html
share/doc/davical/api/davical/_inc---caldav-REPORT-cardquery.php.html
share/doc/davical/api/davical/_inc---caldav-REPORT-expand-property.php.html share/doc/davical/api/davical/_inc---caldav-REPORT-expand-property.php.html
share/doc/davical/api/davical/_inc---caldav-REPORT-freebusy.php.html share/doc/davical/api/davical/_inc---caldav-REPORT-freebusy.php.html
share/doc/davical/api/davical/_inc---caldav-REPORT-multiget.php.html share/doc/davical/api/davical/_inc---caldav-REPORT-multiget.php.html
share/doc/davical/api/davical/_inc---caldav-REPORT-principal.php.html share/doc/davical/api/davical/_inc---caldav-REPORT-principal.php.html
share/doc/davical/api/davical/_inc---check_UTF8.php.html share/doc/davical/api/davical/_inc---check_UTF8.php.html
share/doc/davical/api/davical/_inc---davical_configuration_missing.php.html share/doc/davical/api/davical/_inc---davical_configuration_missing.php.html
share/doc/davical/api/davical/_inc---freebusy-GET.php.html share/doc/davical/api/davical/_inc---freebusy-functions.php.html
share/doc/davical/api/davical/_inc---interactive-page.php.html share/doc/davical/api/davical/_inc---interactive-page.php.html
share/doc/davical/api/davical/_inc---other_translated_strings.php.html share/doc/davical/api/davical/_inc---other_translated_strings.php.html
share/doc/davical/api/davical/_inc---page-footer.php.html share/doc/davical/api/davical/_inc---page-footer.php.html
@ -205,29 +200,38 @@ share/doc/davical/api/davical/_inc---test-RRULE.php.html
share/doc/davical/api/davical/_inc---ui---collection-edit.php.html share/doc/davical/api/davical/_inc---ui---collection-edit.php.html
share/doc/davical/api/davical/_inc---ui---principal-browse.php.html share/doc/davical/api/davical/_inc---ui---principal-browse.php.html
share/doc/davical/api/davical/_inc---ui---principal-edit.php.html share/doc/davical/api/davical/_inc---ui---principal-edit.php.html
share/doc/davical/api/davical/_inc---vcard.php.html
share/doc/davical/api/davical/authentication/_inc---auth-functions.php.html share/doc/davical/api/davical/authentication/_inc---auth-functions.php.html
share/doc/davical/api/davical/caldav/_htdocs---caldav.php.html share/doc/davical/api/davical/caldav/_htdocs---caldav.php.html
share/doc/davical/api/davical/caldav/_htdocs---public.php.html share/doc/davical/api/davical/caldav/_htdocs---public.php.html
share/doc/davical/api/davical/caldav/_inc---caldav-ACL.php.html share/doc/davical/api/davical/caldav/_inc---caldav-ACL.php.html
share/doc/davical/api/davical/caldav/_inc---caldav-BIND.php.html
share/doc/davical/api/davical/caldav/_inc---caldav-DELETE.php.html share/doc/davical/api/davical/caldav/_inc---caldav-DELETE.php.html
share/doc/davical/api/davical/caldav/_inc---caldav-DELTICKET.php.html
share/doc/davical/api/davical/caldav/_inc---caldav-GET.php.html share/doc/davical/api/davical/caldav/_inc---caldav-GET.php.html
share/doc/davical/api/davical/caldav/_inc---caldav-MKCOL.php.html share/doc/davical/api/davical/caldav/_inc---caldav-MKCOL.php.html
share/doc/davical/api/davical/caldav/_inc---caldav-MKTICKET.php.html
share/doc/davical/api/davical/caldav/_inc---caldav-MOVE.php.html share/doc/davical/api/davical/caldav/_inc---caldav-MOVE.php.html
share/doc/davical/api/davical/caldav/_inc---caldav-OPTIONS.php.html share/doc/davical/api/davical/caldav/_inc---caldav-OPTIONS.php.html
share/doc/davical/api/davical/caldav/_inc---caldav-POST.php.html share/doc/davical/api/davical/caldav/_inc---caldav-POST.php.html
share/doc/davical/api/davical/caldav/_inc---caldav-PROPPATCH.php.html share/doc/davical/api/davical/caldav/_inc---caldav-PROPPATCH.php.html
share/doc/davical/api/davical/caldav/_inc---caldav-PUT-default.php.html
share/doc/davical/api/davical/caldav/_inc---caldav-PUT-functions.php.html share/doc/davical/api/davical/caldav/_inc---caldav-PUT-functions.php.html
share/doc/davical/api/davical/caldav/_inc---caldav-PUT-vcard.php.html
share/doc/davical/api/davical/caldav/_inc---caldav-PUT.php.html share/doc/davical/api/davical/caldav/_inc---caldav-PUT.php.html
share/doc/davical/api/davical/caldav/_inc---caldav-REPORT-pps-set.php.html share/doc/davical/api/davical/caldav/_inc---caldav-REPORT-pps-set.php.html
share/doc/davical/api/davical/caldav/_inc---caldav-REPORT-sync-collection.php.html share/doc/davical/api/davical/caldav/_inc---caldav-REPORT-sync-collection.php.html
share/doc/davical/api/davical/caldav/_inc---caldav-REPORT.php.html share/doc/davical/api/davical/caldav/_inc---caldav-REPORT.php.html
share/doc/davical/api/davical/iSchedule/_inc---iSchedule.php.html
share/doc/davical/api/davical/iSchedule/iSchedule.html
share/doc/davical/api/davical/ldap/_inc---drivers_ldap.php.html share/doc/davical/api/davical/ldap/_inc---drivers_ldap.php.html
share/doc/davical/api/davical/ldap/_inc---drivers_squid_pam.php.html share/doc/davical/api/davical/ldap/_inc---drivers_squid_pam.php.html
share/doc/davical/api/davical/ldap/ldapDrivers.html share/doc/davical/api/davical/ldap/ldapDrivers.html
share/doc/davical/api/davical/ldap/squidPamDrivers.html share/doc/davical/api/davical/ldap/squidPamDrivers.html
share/doc/davical/api/davical/logging/_inc---log_caldav_action.php.html share/doc/davical/api/davical/logging/_inc---log_caldav_action.php.html
share/doc/davical/api/davical/propfind/_inc---caldav-PROPFIND.php.html share/doc/davical/api/davical/propfind/_inc---caldav-PROPFIND.php.html
share/doc/davical/api/davical/xmpp.html share/doc/davical/api/davical/pwauth/_inc---drivers_pwauth_pam.php.html
share/doc/davical/api/davical/pwauth/pwauthPamDrivers.html
share/doc/davical/api/elementindex.html share/doc/davical/api/elementindex.html
share/doc/davical/api/elementindex_awl.html share/doc/davical/api/elementindex_awl.html
share/doc/davical/api/elementindex_davical.html share/doc/davical/api/elementindex_davical.html

View file

@ -1,8 +1,8 @@
$NetBSD: distinfo,v 1.1.1.1 2010/05/23 21:36:30 jym Exp $ $NetBSD: distinfo,v 1.2 2010/11/12 19:13:53 jym Exp $
SHA1 (davical-0.9.9.tar.gz) = c1ec44757a769a5c999c8348958a8a6ad59379fc SHA1 (davical-0.9.9.2.tar.gz) = f5ff238a0efad88388d7cb703c52e0a99aa16af9
RMD160 (davical-0.9.9.tar.gz) = 74a4abecd7527b09e425dbff4b5c1cf845670205 RMD160 (davical-0.9.9.2.tar.gz) = b94225e0c0caadb9ff414c57313c9345558325db
Size (davical-0.9.9.tar.gz) = 1949981 bytes Size (davical-0.9.9.2.tar.gz) = 2213500 bytes
SHA1 (patch-aa) = d28795768c97a49ea667a68867e6318110253975 SHA1 (patch-aa) = d28795768c97a49ea667a68867e6318110253975
SHA1 (patch-ab) = 4a30513cac522527fb9f658e410ed9930111ecc3 SHA1 (patch-ab) = 4a30513cac522527fb9f658e410ed9930111ecc3
SHA1 (patch-ac) = 74e9b103d502886736dff4fa659fb3e50bae5032 SHA1 (patch-ac) = 74e9b103d502886736dff4fa659fb3e50bae5032