From fedora-cvs-commits at redhat.com Wed Aug 1 12:09:52 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Wed, 1 Aug 2007 08:09:52 -0400 Subject: rpms/openais/devel revision-1406.patch, NONE, 1.1 revision-1407.patch, NONE, 1.1 revision-1408.patch, NONE, 1.1 revision-1409.patch, NONE, 1.1 .cvsignore, 1.7, 1.8 openais.spec, 1.19, 1.20 sources, 1.7, 1.8 revision-1223.patch, 1.1, NONE revision-1230.patch, 1.1, NONE revision-1245.patch, 1.1, NONE revision-1246.patch, 1.1, NONE revision-1248.patch, 1.1, NONE revision-1252.patch, 1.1, NONE revision-1256.patch, 1.1, NONE revision-1257.patch, 1.1, NONE revision-1258.patch, 1.1, NONE revision-1260.patch, 1.1, NONE revision-1261.patch, 1.1, NONE revision-1262.patch, 1.1, NONE revision-1263.patch, 1.1, NONE revision-1264.patch, 1.1, NONE revision-1265.patch, 1.1, NONE Message-ID: <200708011209.l71C9qnu005376@cvs.devel.redhat.com> Author: sdake Update of /cvs/dist/rpms/openais/devel In directory cvs.devel.redhat.com:/tmp/cvs-serv5341/devel Modified Files: .cvsignore openais.spec sources Added Files: revision-1406.patch revision-1407.patch revision-1408.patch revision-1409.patch Removed Files: revision-1223.patch revision-1230.patch revision-1245.patch revision-1246.patch revision-1248.patch revision-1252.patch revision-1256.patch revision-1257.patch revision-1258.patch revision-1260.patch revision-1261.patch revision-1262.patch revision-1263.patch revision-1264.patch revision-1265.patch Log Message: auto-import openais-0.80.3-2 on branch devel from openais-0.80.3-2.src.rpm revision-1406.patch: totemsrp.c | 30 +++++++++--------------------- 1 files changed, 9 insertions(+), 21 deletions(-) --- NEW FILE revision-1406.patch --- Index: exec/totemsrp.c =================================================================== --- exec/totemsrp.c (revision 1405) +++ exec/totemsrp.c (revision 1406) @@ -393,8 +393,6 @@ unsigned int my_token_seq; - unsigned int my_commit_token_seq; - /* * Timers */ @@ -619,8 +617,6 @@ instance->my_token_seq = SEQNO_START_TOKEN - 1; - instance->my_commit_token_seq = SEQNO_START_TOKEN - 1; - instance->memb_state = MEMB_STATE_OPERATIONAL; instance->set_aru = -1; @@ -1646,8 +1642,6 @@ struct totemsrp_instance *instance, int gather_from) { - instance->my_commit_token_seq = SEQNO_START_TOKEN - 1; - memb_set_merge ( &instance->my_id, 1, instance->my_proc_list, &instance->my_proc_list_entries); @@ -1733,8 +1727,6 @@ instance->memb_state = MEMB_STATE_COMMIT; - instance->my_commit_token_seq = SEQNO_START_TOKEN - 1; - /* * reset all flow control variables since we are starting a new ring */ @@ -3961,16 +3953,6 @@ addr = (struct srp_addr *)memb_commit_token->end_of_commit_token; memb_list = (struct memb_commit_token_memb_entry *)(addr + memb_commit_token->addr_entries); - if (sq_lte_compare (memb_commit_token->token_seq, - instance->my_commit_token_seq)) { - /* - * discard token - */ - return (0); - } - instance->my_commit_token_seq = memb_commit_token->token_seq; - - #ifdef TEST_DROP_COMMIT_TOKEN_PERCENTAGE if (random()%100 < TEST_DROP_COMMIT_TOKEN_PERCENTAGE) { return (0); @@ -3998,9 +3980,15 @@ break; case MEMB_STATE_COMMIT: -// if (memcmp (&memb_commit_token->ring_id, &instance->my_ring_id, -// sizeof (struct memb_ring_id)) == 0) { - if (memb_commit_token->ring_id.seq == instance->my_ring_id.seq) { + /* + * If retransmitted commit tokens are sent on this ring + * filter them out and only enter recovery once the + * commit token has traversed the array. This is + * determined by : + * memb_commit_token->memb_index == memb_commit_token->addr_entries) { + */ + if (memb_commit_token->ring_id.seq == instance->my_ring_id.seq && + memb_commit_token->memb_index == memb_commit_token->addr_entries) { memb_state_recovery_enter (instance, memb_commit_token); } break; revision-1407.patch: totemsrp.c | 2 ++ 1 files changed, 2 insertions(+) --- NEW FILE revision-1407.patch --- Index: exec/totemsrp.c =================================================================== --- exec/totemsrp.c (revision 1406) +++ exec/totemsrp.c (revision 1407) @@ -1548,6 +1548,8 @@ unsigned int new_memb_list_totemip[PROCESSOR_COUNT_MAX]; unsigned int left_list[PROCESSOR_COUNT_MAX]; + memb_consensus_reset (instance); + old_ring_state_reset (instance); ring_reset (instance); deliver_messages_from_recovery_to_regular (instance); revision-1408.patch: totemsrp.c | 17 +++++++++++------ 1 files changed, 11 insertions(+), 6 deletions(-) --- NEW FILE revision-1408.patch --- Index: exec/totemsrp.c =================================================================== --- exec/totemsrp.c (revision 1407) +++ exec/totemsrp.c (revision 1408) @@ -549,7 +549,8 @@ int fcc_mcasts_allowed); static void messages_free (struct totemsrp_instance *instance, unsigned int token_aru); -static void memb_ring_id_store (struct totemsrp_instance *instance); +static void memb_ring_id_set_and_store (struct totemsrp_instance *instance, + struct memb_ring_id *ring_id); static void memb_state_commit_token_update (struct totemsrp_instance *instance, struct memb_commit_token *commit_token); static void memb_state_commit_token_target_set (struct totemsrp_instance *instance, struct memb_commit_token *commit_token); static int memb_state_commit_token_send (struct totemsrp_instance *instance, struct memb_commit_token *memb_commit_token); @@ -1707,10 +1708,10 @@ memb_state_commit_token_target_set (instance, commit_token); + memb_ring_id_set_and_store (instance, &commit_token->ring_id); + memb_state_commit_token_send (instance, commit_token); - memcpy (&instance->my_ring_id, &commit_token->ring_id, - sizeof (struct memb_ring_id)); instance->token_ring_id_seq = instance->my_ring_id.seq; poll_timer_delete (instance->totemsrp_poll_handle, instance->memb_timer_state_gather_join_timeout); @@ -1920,7 +1921,6 @@ reset_token_timeout (instance); // REVIEWED reset_token_retransmit_timeout (instance); // REVIEWED - memb_ring_id_store (instance); instance->memb_state = MEMB_STATE_RECOVERY; return; @@ -2829,6 +2829,7 @@ } res = write (fd, &memb_ring_id->seq, sizeof (unsigned long long)); assert (res == sizeof (unsigned long long)); + fsync (fd); close (fd); } else { log_printf (instance->totemsrp_log_level_warning, @@ -2840,13 +2841,16 @@ instance->token_ring_id_seq = memb_ring_id->seq; } -static void memb_ring_id_store ( - struct totemsrp_instance *instance) +static void memb_ring_id_set_and_store ( + struct totemsrp_instance *instance, + struct memb_ring_id *ring_id) { char filename[256]; int fd; int res; + memcpy (&instance->my_ring_id, ring_id, sizeof (struct memb_ring_id)); + sprintf (filename, "%s/ringid_%s", rundir, totemip_print (&instance->my_id.addr[0])); @@ -2866,6 +2870,7 @@ //assert (fd > 0); res = write (fd, &instance->my_ring_id.seq, sizeof (unsigned long long)); assert (res == sizeof (unsigned long long)); + fsync (fd); close (fd); } revision-1409.patch: totempg.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletion(-) --- NEW FILE revision-1409.patch --- Index: exec/totempg.c =================================================================== --- exec/totempg.c (revision 1408) +++ exec/totempg.c (revision 1409) @@ -870,13 +870,14 @@ /* * Determine if a message of msg_size could be queued */ +#define FUZZY_AVAIL_SUBTRACT 5 static int send_ok ( int msg_size) { int avail = 0; int total; - avail = totemmrp_avail (); + avail = totemmrp_avail () - FUZZY_AVAIL_SUBTRACT; /* * msg size less then totempg_totem_config->net_mtu - 25 will take up Index: .cvsignore =================================================================== RCS file: /cvs/dist/rpms/openais/devel/.cvsignore,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- .cvsignore 16 Aug 2006 04:45:44 -0000 1.7 +++ .cvsignore 1 Aug 2007 12:09:50 -0000 1.8 @@ -1 +1 @@ -openais-0.80.1.tar.gz +openais-0.80.3.tar.gz Index: openais.spec =================================================================== RCS file: /cvs/dist/rpms/openais/devel/openais.spec,v retrieving revision 1.19 retrieving revision 1.20 diff -u -r1.19 -r1.20 --- openais.spec 14 Oct 2006 00:49:26 -0000 1.19 +++ openais.spec 1 Aug 2007 12:09:50 -0000 1.20 @@ -1,29 +1,19 @@ Name: openais Summary: The openais Standards-Based Cluster Framework executive and APIs -Version: 0.80.1 -Release: 6 +Version: 0.80.3 +Release: 2%{?dist} License: BSD Group: System Environment/Base URL: http://developer.osdl.org/dev/openais/ Source0: http://developer.osdl.org/dev/openais/downloads/openais-%{version}/openais-%{version}.tar.gz Patch0: openais-0.76-defaultconfig.patch -Patch1: revision-1223.patch -Patch2: revision-1230.patch -Patch3: revision-1245.patch -Patch4: revision-1246.patch -Patch5: revision-1248.patch -Patch6: revision-1252.patch -Patch7: revision-1256.patch -Patch8: revision-1257.patch -Patch9: revision-1258.patch -Patch10: revision-1260.patch -Patch11: revision-1261.patch -Patch12: revision-1262.patch -Patch13: revision-1263.patch -Patch14: revision-1264.patch -Patch15: revision-1265.patch +Patch1: revision-1406.patch +Patch2: revision-1407.patch +Patch3: revision-1408.patch +Patch4: revision-1409.patch + BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) -ExclusiveArch: i386 ppc x86_64 ppc64 ia64 s390 s390x +ExclusiveArch: i386 ppc x86_64 ppc64 ia64 s390 s390x alpha Requires(pre): /usr/sbin/useradd Requires(post): /sbin/chkconfig Requires(preun): /sbin/chkconfig @@ -47,20 +37,9 @@ %setup -q -n openais-%{version} %patch0 %patch1 -%patch2 +%patch2 %patch3 %patch4 -%patch5 -%patch6 -%patch7 -%patch8 -%patch9 -%patch10 -%patch11 -%patch12 -%patch13 -%patch14 -%patch15 %build # -O3 required for performance reasons @@ -103,6 +82,7 @@ %files %defattr(-,root,root,-) +%dir %{_docdir}/%{name}-%{version} %doc %{_docdir}/%{name}-%{version}/LICENSE %doc %{_docdir}/%{name}-%{version}/SECURITY %doc %{_docdir}/%{name}-%{version}/README.amf @@ -175,6 +155,7 @@ %{_includedir}/openais/service/print.h %{_includedir}/openais/service/swab.h %{_includedir}/openais/service/service.h +%{_includedir}/openais/service/timer.h %{_mandir}/man3/cpg_dispatch.3* %{_mandir}/man3/cpg_fd_get.3* %{_mandir}/man3/cpg_finalize.3* @@ -183,6 +164,9 @@ %{_mandir}/man3/cpg_leave.3* %{_mandir}/man3/cpg_mcast_joined.3* %{_mandir}/man3/cpg_membership_get.3* +%{_mandir}/man3/cpg_local_get.3* +%{_mandir}/man3/cpg_context_get.3* +%{_mandir}/man3/cpg_context_set.3* %{_mandir}/man3/evs_dispatch.3* %{_mandir}/man3/evs_fd_get.3* %{_mandir}/man3/evs_finalize.3* @@ -194,6 +178,131 @@ %{_mandir}/man3/evs_membership_get.3* %changelog +* Tue Aug 1 2007 Steven Dake - 0.80.3-2 +- Resolves: rhbz#209862 +- Add upstream revision 1406 - Filter commit token when it is retransmitted. +- Resolves: rhbz#249506 +- Add upstream revision 1407 - Reset consensus array on entering operational mode. +- Resolves: rhbz#249509 +- Add upstream revision 1408 - Store the ring id information properly when it changes. +- Resolves: rhbz#247733 +- Add upstream revision 1409 - Add subtractor to availability of message entries for the totem message queue +- This is the rhel5 version of 0.80.3-0 with some upstream patches. + +* Tue Jun 26 2007 Steven Dake - 0.80.3-1 +- Resolves: rhbz#243119 +- Resolves: rhbz#221190 +- Resolves: rhbz#224190 +- Resolves: rhbz#233892 +- Resolves: rhbz#236549 +- New upstream version including all previous revisions. +- This is the fc6 version of 0.80.3-1. + +* Tue Jun 26 2007 Steven Dake - 0.80.3-0 +- Resolves: rhbz#243119 +- Resolves: rhbz#221190 +- Resolves: rhbz#224190 +- Resolves: rhbz#233892 +- Resolves: rhbz#236549 +- New upstream version including all previous revisions. +- This is the rhel5 version of 0.80.3-0. + +* Mon Dec 18 2006 Steven Dake - 0.80.2-1 +- Resolves: rhbz#211357 +- This is the rhel5 version of 0.80.2-0. + +* Mon Dec 18 2006 Steven Dake - 0.80.2-0 +- Resolves: rhbz#211357 +- New upstream version including all prevision revisions. +- Fixes cpg ordering problem. +- Fixes ia64 unaligned problem. +- This is the fc6 version. + +* Tue Dec 5 2006 Steven Dake - 0.80.1-22 +- Resolves: rhbz#216492 +- This is the rhel5 version of 0.80.1-21. + +* Tue Dec 5 2006 Steven Dake - 0.80.1-21 +- Resolves: rhbz#216492 +- Add upstream revision 1319 - Increase outbound buffer size to 5000 messages. +- Add upstream revision 1316 - Improvements on segfault logging. +- This is the fc6 version. + +* Wed Nov 29 2006 Steven Dake - 0.80.1-20 +- Resolves: rhbz#216492 +- Need new res line to commit. This is the same as 0.80.1-18. + +* Wed Nov 29 2006 Steven Dake - 0.80.1-19 +- This is the rhel5 version of 0.80.1-18. + +* Wed Nov 29 2006 Steven Dake - 0.80.1-18 +- Add upstream revision 1315 - Fix compile error in libcpg. +- Add upstream revision 1314 - Change rundir to /var/openais. +- Add upstream revision 1313 - Flow control fixes for the CPG service. +- Add upstream revision 1312 - Correct usage of ERR_LIBRARY to SA_AIS_ERR_LIBRARY. +- Add upstream revision 1311 - handle case where POLLHUP and POLLERR are not uspported by OS. +- Add upstream revision 1309 - set default downcheck value to 1000ms. +- Add upstream revision 1308 - Remove invalid code and warnings detected by Intel compiler. +- This is the fc6 version. + +* Tue Nov 14 2006 Steven Dake - 0.80.1-17 +- This is the rhel5 version of 0.80.1-16. + +* Tue Nov 14 2006 Steven Dake - 0.80.1-16 +- Add upstream revision 1307 - Remove flow control compile warning. +- Add upstream revision 1306 - Make clean now really makes clean. +- Add upstream revision 1305 - Set scheduler SCHED_RR to max priority available + in system. +- Add upstream revision 1300 - Improve behavior of flow control of CPG service + during configuration changes. +- This is the fc6 version. + +* Thu Nov 9 2006 Steven Dake - 0.80.1-15 +- This is the rhel5 version of 0.80.1-14 + +* Thu Nov 9 2006 Steven Dake - 0.80.1-14 +- Add upstream revision 1296 - Remove compile warnings. +- Add upstream revision 1295 - The totem membership protocol was changed to +- Add upstream revision 1294 - modify location of ringid file to +- Add upstream revision 1293 - flush output of debug messages on exit or segv. + /var/run/openais and chdir here so cores are saved there. + match specifications. +- This is the fc6 version. + +* Fri Nov 3 2006 Steven Dake - 0.80.1-13 +- Add upstream revision 1286 - Fix checkpoint unlink operation under certain + conditions. This is the rhel5 version. + +* Fri Nov 3 2006 Steven Dake - 0.80.1-12 +- Add upstream revision 1286 - Fix checkpoint unlink operation under certain + conditions. This is the fc6 version. + +* Tue Oct 24 2006 Steven Dake - 0.80.1-11 +- Add upstream revision 1284 - Initialize variables for checkpoint sync. + +* Tue Oct 24 2006 Steven Dake - 0.80.1-10 +- Add %{?dist} to release field. + +* Tue Oct 24 2006 Steven Dake - 0.80.1-9 +- Add upstream revision 1270 - Resolve IPC segfault. +- Add upstream revision 1271 - Fix errors in ia64 alignment. +- Add upstream revision 1275 - pthread_mutex_destroy cleanup patch. +- Add upstream revision 1276 - Remove debug from makefile committed in revision 1275. +- Add upstream revision 1277 - Formatting changes. +- Add upstream revision 1278 - Patch testckpt to use proper seciton id size. +- Add upstream revision 1279 - Call abort in sync service when processing is interrupted. +- Add upstream revision 1282 - New generation checkpoint state machine. +- Add upstream revision 1283 - Fix memory leaks. + +* Wed Oct 18 2006 Steven Dake - 0.80.1-8 +- Add upstream revision 1268 - Align data in totem delivery on 4 byte + boundaries for ia64. +- Add upstream revision 1269 - Increase default stack size for IPC connections + on ia64. + +* Mon Oct 16 2006 Steven Dake - 0.80.1-7 +- Add upstream revision 1267 - rework of checkpoint synchronization. + * Thu Oct 12 2006 Steven Dake - 0.80.1-6 - Add upstream revision 1260 - Allocate the retransmission token in instance initialize instead of totemsrp_initialize. Index: sources =================================================================== RCS file: /cvs/dist/rpms/openais/devel/sources,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- sources 16 Aug 2006 04:45:44 -0000 1.7 +++ sources 1 Aug 2007 12:09:50 -0000 1.8 @@ -1 +1 @@ -7414d683d51cb00c46456125c7e1b2b0 openais-0.80.1.tar.gz +05ac1e10abd31f500641ff48ecf4238f openais-0.80.3.tar.gz --- revision-1223.patch DELETED --- --- revision-1230.patch DELETED --- --- revision-1245.patch DELETED --- --- revision-1246.patch DELETED --- --- revision-1248.patch DELETED --- --- revision-1252.patch DELETED --- --- revision-1256.patch DELETED --- --- revision-1257.patch DELETED --- --- revision-1258.patch DELETED --- --- revision-1260.patch DELETED --- --- revision-1261.patch DELETED --- --- revision-1262.patch DELETED --- --- revision-1263.patch DELETED --- --- revision-1264.patch DELETED --- --- revision-1265.patch DELETED --- From fedora-cvs-commits at redhat.com Wed Aug 1 12:55:02 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Wed, 1 Aug 2007 08:55:02 -0400 Subject: rpms/tcpdump/FC-6 tcpdump-3.9.4-bgp.patch, NONE, 1.1 tcpdump-3.9.4-droproot.patch, NONE, 1.1 tcpdump.spec, 1.57, 1.58 tcpdump-3.9.4-ring-buffers.patch, 1.1, NONE Message-ID: <200708011255.l71Ct26T005959@cvs.devel.redhat.com> Author: mlichvar Update of /cvs/dist/rpms/tcpdump/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv5940 Modified Files: tcpdump.spec Added Files: tcpdump-3.9.4-bgp.patch tcpdump-3.9.4-droproot.patch Removed Files: tcpdump-3.9.4-ring-buffers.patch Log Message: - fix buffer overflow in BGP dissector (#250290, CVE-2007-3798) - with -C option, drop root privileges before opening first savefile (#244860) tcpdump-3.9.4-bgp.patch: print-bgp.c | 47 +++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 39 insertions(+), 8 deletions(-) --- NEW FILE tcpdump-3.9.4-bgp.patch --- Index: tcpdump/print-bgp.c =================================================================== RCS file: /tcpdump/master/tcpdump/print-bgp.c,v retrieving revision 1.91.2.11 retrieving revision 1.91.2.12 diff -u -r1.91.2.11 -r1.91.2.12 --- tcpdump/print-bgp.c 26 Feb 2007 13:31:33 -0000 1.91.2.11 +++ tcpdump/print-bgp.c 14 Jul 2007 22:26:35 -0000 1.91.2.12 @@ -609,6 +609,26 @@ return -2; } +/* + * As I remember, some versions of systems have an snprintf() that + * returns -1 if the buffer would have overflowed. If the return + * value is negative, set buflen to 0, to indicate that we've filled + * the buffer up. + * + * If the return value is greater than buflen, that means that + * the buffer would have overflowed; again, set buflen to 0 in + * that case. + */ +#define UPDATE_BUF_BUFLEN(buf, buflen, strlen) \ + if (strlen<0) \ + buflen=0; \ + else if ((u_int)strlen>buflen) \ + buflen=0; \ + else { \ + buflen-=strlen; \ + buf+=strlen; \ + } + static int decode_labeled_vpn_l2(const u_char *pptr, char *buf, u_int buflen) { @@ -619,11 +639,13 @@ tlen=plen; pptr+=2; TCHECK2(pptr[0],15); + buf[0]='\0'; strlen=snprintf(buf, buflen, "RD: %s, CE-ID: %u, Label-Block Offset: %u, Label Base %u", bgp_vpn_rd_print(pptr), EXTRACT_16BITS(pptr+8), EXTRACT_16BITS(pptr+10), EXTRACT_24BITS(pptr+12)>>4); /* the label is offsetted by 4 bits so lets shift it right */ + UPDATE_BUF_BUFLEN(buf, buflen, strlen); pptr+=15; tlen-=15; @@ -639,23 +661,32 @@ switch(tlv_type) { case 1: - strlen+=snprintf(buf+strlen,buflen-strlen, "\n\t\tcircuit status vector (%u) length: %u: 0x", - tlv_type, - tlv_len); + if (buflen!=0) { + strlen=snprintf(buf,buflen, "\n\t\tcircuit status vector (%u) length: %u: 0x", + tlv_type, + tlv_len); + UPDATE_BUF_BUFLEN(buf, buflen, strlen); + } ttlv_len=ttlv_len/8+1; /* how many bytes do we need to read ? */ while (ttlv_len>0) { TCHECK(pptr[0]); - strlen+=snprintf(buf+strlen,buflen-strlen, "%02x",*pptr++); + if (buflen!=0) { + strlen=snprintf(buf,buflen, "%02x",*pptr++); + UPDATE_BUF_BUFLEN(buf, buflen, strlen); + } ttlv_len--; } break; default: - snprintf(buf+strlen,buflen-strlen, "\n\t\tunknown TLV #%u, length: %u", - tlv_type, - tlv_len); + if (buflen!=0) { + strlen=snprintf(buf,buflen, "\n\t\tunknown TLV #%u, length: %u", + tlv_type, + tlv_len); + UPDATE_BUF_BUFLEN(buf, buflen, strlen); + } break; } - tlen-=(tlv_len<<3); /* the tlv-length is expressed in bits so lets shift it tright */ + tlen-=(tlv_len<<3); /* the tlv-length is expressed in bits so lets shift it right */ } return plen+2; tcpdump-3.9.4-droproot.patch: tcpdump.1 | 7 ++++++- tcpdump.c | 7 ++++++- 2 files changed, 12 insertions(+), 2 deletions(-) --- NEW FILE tcpdump-3.9.4-droproot.patch --- --- tcpdump-3.9.4/tcpdump.c.droproot 2005-08-23 12:29:41.000000000 +0200 +++ tcpdump-3.9.4/tcpdump.c 2007-08-01 13:30:29.000000000 +0200 @@ -955,6 +955,11 @@ main(int argc, char **argv) (void)setsignal(SIGHUP, oldhandler); #endif /* WIN32 */ + if (Cflag != 0 && (getuid() == 0 || geteuid() == 0)) { + if (username || chroot_dir) + droproot(username, chroot_dir); + } + if (pcap_setfilter(pd, &fcode) < 0) error("%s", pcap_geterr(pd)); if (WFileName) { @@ -996,7 +1001,7 @@ main(int argc, char **argv) * We cannot do this earlier, because we want to be able to open * the file (if done) for writing before giving up permissions. */ - if (getuid() == 0 || geteuid() == 0) { + if (Cflag == 0 && (getuid() == 0 || geteuid() == 0)) { if (username || chroot_dir) droproot(username, chroot_dir); } --- tcpdump-3.9.4/tcpdump.1.droproot 2007-08-01 13:30:29.000000000 +0200 +++ tcpdump-3.9.4/tcpdump.1 2007-08-01 13:30:29.000000000 +0200 @@ -260,6 +260,9 @@ have the name specified with the flag, with a number after it, starting at 1 and continuing upward. The units of \fIfile_size\fP are millions of bytes (1,000,000 bytes, not 1,048,576 bytes). + +Note that when used with \fB\-Z\fR option (enabled by default), privileges +are dropped before opening first savefile. .TP .B \-d Dump the compiled packet-matching code in a human readable form to @@ -580,7 +583,9 @@ Drops privileges (if root) and changes u and the group ID to the primary group of .IR user . .IP -This behavior can also be enabled by default at compile time. +This behavior is enabled by default (\fB\-Z pcap\fR), and can +be disabled by \fB\-Z root\fR. + .IP "\fI expression\fP" .RS selects which packets will be dumped. Index: tcpdump.spec =================================================================== RCS file: /cvs/dist/rpms/tcpdump/FC-6/tcpdump.spec,v retrieving revision 1.57 retrieving revision 1.58 diff -u -r1.57 -r1.58 --- tcpdump.spec 15 Mar 2007 12:03:35 -0000 1.57 +++ tcpdump.spec 1 Aug 2007 12:55:00 -0000 1.58 @@ -2,8 +2,8 @@ %define PCAP_UID 77 %define PCAP_GID 77 -%define releaseno 10%{?dist} -%define arpwatch_release 17%{?dist} +%define releaseno 11%{?dist} +%define arpwatch_release 18%{?dist} %define pcap_release %{releaseno} %define tcpdump_release %{releaseno} @@ -44,8 +44,9 @@ Patch17: tcpdump-3.7.2-sctpdef.patch Patch19: tcpdump-3.8.2-rsvp-dos.patch Patch21: tcpdump-3.8.2-isis-dos.patch -Patch22: tcpdump-3.9.4-ring-buffers.patch +Patch22: tcpdump-3.9.4-droproot.patch Patch23: tcpdump-3.9.4-80211.patch +Patch24: tcpdump-3.9.4-bgp.patch Patch34: arpwatch-2.1a4-fhs.patch Patch35: arpwatch-2.1a10-man.patch @@ -163,8 +164,9 @@ %patch17 -p1 -b .sctpdef %patch19 -p1 -b .rsvp-dos %patch21 -p1 -b .isis-dos -%patch22 -p1 -b .ring +%patch22 -p1 -b .droproot %patch23 -p1 -b .80211 +%patch24 -p1 -b .bgp tar xzf %{SOURCE6} popd @@ -350,6 +352,10 @@ %{_vararpwatch}/massagevendor-old %changelog +* Wed Aug 01 2007 Miroslav Lichvar - 14:3.9.4-11.fc6 +- fix buffer overflow in BGP dissector (#250290, CVE-2007-3798) +- with -C option, drop root privileges before opening first savefile (#244860) + * Thu Mar 15 2007 Miroslav Lichvar - 14:3.9.4-10.fc6 - fix buffer overflow in 802.11 printer (#232349, CVE-2007-1218) - require /usr/sbin/sendmail (#232363) --- tcpdump-3.9.4-ring-buffers.patch DELETED --- From fedora-cvs-commits at redhat.com Wed Aug 1 13:25:26 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Wed, 1 Aug 2007 09:25:26 -0400 Subject: rpms/xen/FC-6 vnc-client-iterator.patch, NONE, 1.1 vnc-double-cleanup.patch, NONE, 1.1 xen.spec, 1.172, 1.173 Message-ID: <200708011325.l71DPQrk006400@cvs.devel.redhat.com> Author: armbru Update of /cvs/dist/rpms/xen/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv6382 Modified Files: xen.spec Added Files: vnc-client-iterator.patch vnc-double-cleanup.patch Log Message: More race conditions in LibVNCServer on client disconnect (bz 240012) vnc-client-iterator.patch: rfbserver.c | 38 ++++++++++++++++++++------------------ 1 files changed, 20 insertions(+), 18 deletions(-) --- NEW FILE vnc-client-iterator.patch --- rfbClientIterator is swarming with bugs: * Whoever added rfbClientListMutex didn't know what he was doing. * Reference counting is broken * The iterator normally skips closed entries (those with sock<0). But rfbClientConnectionGone() neglects to reset cl->sock. * Closed entries are *not* skipped when LIBVNCSERVER_HAVE_LIBPTHREAD is undefined. diff -rup a/LibVNCServer-0.8.2/libvncserver/rfbserver.c b/LibVNCServer-0.8.2/libvncserver/rfbserver.c --- a/LibVNCServer-0.8.2/libvncserver/rfbserver.c 2007-07-31 16:00:10.000000000 +0200 +++ b/LibVNCServer-0.8.2/libvncserver/rfbserver.c 2007-07-31 15:14:47.000000000 +0200 @@ -148,40 +148,42 @@ rfbGetClientIteratorWithClosed(rfbScreen rfbClientPtr rfbClientIteratorHead(rfbClientIteratorPtr i) { + rfbClientPtr cl; + LOCK(rfbClientListMutex); #ifdef LIBVNCSERVER_HAVE_LIBPTHREAD if(i->next != 0) { rfbDecrClientRef(i->next); - rfbIncrClientRef(i->screen->clientHead); } + rfbIncrClientRef(i->screen->clientHead); #endif - LOCK(rfbClientListMutex); - i->next = i->screen->clientHead; + cl = i->next = i->screen->clientHead; UNLOCK(rfbClientListMutex); - return i->next; + return cl; } rfbClientPtr rfbClientIteratorNext(rfbClientIteratorPtr i) { + rfbClientPtr cl; + LOCK(rfbClientListMutex); if(i->next == 0) { - LOCK(rfbClientListMutex); i->next = i->screen->clientHead; - UNLOCK(rfbClientListMutex); } else { - IF_PTHREADS(rfbClientPtr cl = i->next); + IF_PTHREADS(cl = i->next); i->next = i->next->next; IF_PTHREADS(rfbDecrClientRef(cl)); } + if(!i->closedToo) + while(i->next && i->next->sock<0) + i->next = i->next->next; #ifdef LIBVNCSERVER_HAVE_LIBPTHREAD - if(!i->closedToo) - while(i->next && i->next->sock<0) - i->next = i->next->next; - if(i->next) - rfbIncrClientRef(i->next); + if(i->next) + rfbIncrClientRef(i->next); #endif - - return i->next; + cl = i->next; + UNLOCK(rfbClientListMutex); + return cl; } void @@ -474,8 +476,11 @@ rfbClientConnectionGone(rfbClientPtr cl) if (cl->next) cl->next->prev = cl->prev; - if(cl->sock>0) + if(cl->sock>=0) { + FD_CLR(cl->sock,&(cl->screen->allFds)); close(cl->sock); + cl->sock = -1; + } if (cl->scaledScreen!=NULL) cl->scaledScreen->scaledScreenRefCount--; @@ -501,9 +506,6 @@ rfbClientConnectionGone(rfbClientPtr cl) UNLOCK(rfbClientListMutex); - if(cl->sock>=0) - FD_CLR(cl->sock,&(cl->screen->allFds)); - cl->clientGoneHook(cl); rfbLog("Client %s gone\n",cl->host); vnc-double-cleanup.patch: main.c | 4 +++- 1 files changed, 3 insertions(+), 1 deletion(-) --- NEW FILE vnc-double-cleanup.patch --- Both clientInput() and rfbScreenCleanup() call rfbClientConnectionGone(). This works only if clientInput() wins the race with a sufficient margin to take the client off the list before rfbScreenCleanup() sees it. Otherwise, rfbClientConnectionGone() is called twice, with potentially disastrous results. diff -rup xen-3.1.0-src/LibVNCServer-0.8.2/libvncserver/main.c xen-3.1.0-hacked/LibVNCServer-0.8.2/libvncserver/main.c --- xen-3.1.0-src/LibVNCServer-0.8.2/libvncserver/main.c 2007-07-30 14:41:46.000000000 +0200 +++ xen-3.1.0-hacked/LibVNCServer-0.8.2/libvncserver/main.c 2007-07-31 15:52:51.000000000 +0200 @@ -494,6 +494,8 @@ clientInput(void *data) pthread_t output_thread; pthread_create(&output_thread, NULL, clientOutput, (void *)cl); + rfbIncrClientRef(cl); + while (1) { fd_set rfds, wfds, efds; struct timeval tv; @@ -555,7 +557,7 @@ clientInput(void *data) UNLOCK(cl->updateMutex); IF_PTHREADS(pthread_join(output_thread, NULL)); - rfbClientConnectionGone(cl); + rfbDecrClientRef(cl); return NULL; } Index: xen.spec =================================================================== RCS file: /cvs/dist/rpms/xen/FC-6/xen.spec,v retrieving revision 1.172 retrieving revision 1.173 diff -u -r1.172 -r1.173 --- xen.spec 26 Jul 2007 14:16:11 -0000 1.172 +++ xen.spec 1 Aug 2007 13:25:24 -0000 1.173 @@ -86,6 +86,8 @@ Patch300: vnc-thread-fixes.patch Patch301: vnc-invalid-fd.patch Patch302: vnc-ref-counting.patch +Patch303: vnc-client-iterator.patch +Patch304: vnc-double-cleanup.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root BuildRequires: transfig libidn-devel zlib-devel texi2html SDL-devel curl-devel @@ -257,6 +259,10 @@ %patch301 -p2 # dangling pointer (race condition) %patch302 -p2 +# client iterator fixes +%patch303 -p2 +# double cleanup (race condition) +%patch304 -p2 popd %build @@ -361,7 +367,7 @@ %{_libdir}/*.a %changelog -* Wed Jul 25 2007 Markus Armbruster - 3.0.3-11.fc6 +* Wed Aug 1 2007 Markus Armbruster - 3.0.3-11.fc6 - VNC keymap fixes - Fix race conditions in LibVNCServer on client disconnect (bz 240012) From fedora-cvs-commits at redhat.com Wed Aug 1 17:59:07 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Wed, 1 Aug 2007 13:59:07 -0400 Subject: rpms/kernel/FC-6 linux-2.6-net-dst_entry-reorder-crash.patch, NONE, 1.1 linux-2.6-raid-autorun.patch, 1.2, 1.3 kernel-2.6.spec, 1.2999, 1.3000 Message-ID: <200708011759.l71Hx7YS010828@cvs.devel.redhat.com> Author: cebbert Update of /cvs/dist/rpms/kernel/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv10809 Modified Files: kernel-2.6.spec Added Files: linux-2.6-net-dst_entry-reorder-crash.patch linux-2.6-raid-autorun.patch Log Message: * Wed Aug 01 2007 Chuck Ebbert - fix crash in xfrm4 - restore md driver START_ARRAY ioctl linux-2.6-net-dst_entry-reorder-crash.patch: include/net/xfrm.h | 1 - net/xfrm/xfrm_policy.c | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) --- NEW FILE linux-2.6-net-dst_entry-reorder-crash.patch --- Gitweb: http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=bd0bf0765ea1fba80d7085e1f0375ec045631dc1 Commit: bd0bf0765ea1fba80d7085e1f0375ec045631dc1 Parent: 16751347a060a10c09b11593bb179fd5b0240c04 Author: Patrick McHardy AuthorDate: Wed Jul 18 01:55:52 2007 -0700 Committer: David S. Miller CommitDate: Wed Jul 18 01:55:52 2007 -0700 [XFRM]: Fix crash introduced by struct dst_entry reordering XFRM expects xfrm_dst->u.next to be same pointer as dst->next, which was broken by the dst_entry reordering in commit 1e19e02c~, causing an oops in xfrm_bundle_ok when walking the bundle upwards. Kill xfrm_dst->u.next and change the only user to use dst->next instead. Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller --- include/net/xfrm.h | 1 - net/xfrm/xfrm_policy.c | 2 +- 2 files changed, 1 insertions(+), 2 deletions(-) diff --git a/include/net/xfrm.h b/include/net/xfrm.h index ae959e9..a5f80bf 100644 --- a/include/net/xfrm.h +++ b/include/net/xfrm.h @@ -585,7 +585,6 @@ static inline int xfrm_sec_ctx_match(struct xfrm_sec_ctx *s1, struct xfrm_sec_ct struct xfrm_dst { union { - struct xfrm_dst *next; struct dst_entry dst; struct rtable rt; struct rt6_info rt6; diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c index 157bfbd..b48f06f 100644 --- a/net/xfrm/xfrm_policy.c +++ b/net/xfrm/xfrm_policy.c @@ -2141,7 +2141,7 @@ int xfrm_bundle_ok(struct xfrm_policy *pol, struct xfrm_dst *first, if (last == first) break; - last = last->u.next; + last = (struct xfrm_dst *)last->u.dst.next; last->child_mtu_cached = mtu; } linux-2.6-raid-autorun.patch: drivers/md/md.c | 82 ++++++++++++++++++++++++++++++++++++++++++++++ fs/compat_ioctl.c | 1 include/linux/raid/md_u.h | 2 - 3 files changed, 84 insertions(+), 1 deletion(-) Index: linux-2.6-raid-autorun.patch =================================================================== RCS file: linux-2.6-raid-autorun.patch diff -N linux-2.6-raid-autorun.patch --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ linux-2.6-raid-autorun.patch 1 Aug 2007 17:59:05 -0000 1.3 @@ -0,0 +1,119 @@ +--- vanilla/include/linux/raid/md_u.h.md 2006-11-29 16:57:37.000000000 -0500 ++++ vanilla/include/linux/raid/md_u.h 2007-01-23 16:12:28.000000000 -0500 +@@ -41,7 +41,7 @@ + + /* usage */ + #define RUN_ARRAY _IOW (MD_MAJOR, 0x30, mdu_param_t) +-/* 0x31 was START_ARRAY */ ++#define START_ARRAY _IO (MD_MAJOR, 0x31) + #define STOP_ARRAY _IO (MD_MAJOR, 0x32) + #define STOP_ARRAY_RO _IO (MD_MAJOR, 0x33) + #define RESTART_ARRAY_RW _IO (MD_MAJOR, 0x34) +--- vanilla/fs/compat_ioctl.h.md 2006-11-29 16:57:37.000000000 -0500 ++++ vanilla/fs/compat_ioctl.c 2007-01-23 16:12:28.000000000 -0500 +@@ -128,6 +128,7 @@ + ULONG_IOCTL(HOT_ADD_DISK) + ULONG_IOCTL(SET_DISK_FAULTY) + COMPATIBLE_IOCTL(RUN_ARRAY) ++ULONG_IOCTL(START_ARRAY) + COMPATIBLE_IOCTL(STOP_ARRAY) + COMPATIBLE_IOCTL(STOP_ARRAY_RO) + COMPATIBLE_IOCTL(RESTART_ARRAY_RW) +--- vanilla/drivers/md/md.c.md 2006-11-29 16:57:37.000000000 -0500 ++++ vanilla/drivers/md/md.c 2007-01-23 16:12:28.000000000 -0500 +@@ -3486,6 +3486,67 @@ + } + #endif /* !MODULE */ + ++/* ++ * import RAID devices based on one partition ++ * if possible, the array gets run as well. ++ */ ++ ++static int autostart_array(dev_t startdev) ++{ ++ char b[BDEVNAME_SIZE]; ++ int err = -EINVAL, i; ++ mdp_super_t *sb = NULL; ++ mdk_rdev_t *start_rdev = NULL, *rdev; ++ ++ start_rdev = md_import_device(startdev, 0, 0); ++ if (IS_ERR(start_rdev)) ++ return err; ++ ++ ++ /* NOTE: this can only work for 0.90.0 superblocks */ ++ sb = (mdp_super_t*)page_address(start_rdev->sb_page); ++ if (sb->major_version != 0 || ++ sb->minor_version != 90 ) { ++ printk(KERN_WARNING "md: can only autostart 0.90.0 arrays\n"); ++ export_rdev(start_rdev); ++ return err; ++ } ++ ++ if (test_bit(Faulty, &start_rdev->flags)) { ++ printk(KERN_WARNING ++ "md: can not autostart based on faulty %s!\n", ++ bdevname(start_rdev->bdev,b)); ++ export_rdev(start_rdev); ++ return err; ++ } ++ list_add(&start_rdev->same_set, &pending_raid_disks); ++ ++ for (i = 0; i < MD_SB_DISKS; i++) { ++ mdp_disk_t *desc = sb->disks + i; ++ dev_t dev = MKDEV(desc->major, desc->minor); ++ ++ if (!dev) ++ continue; ++ if (dev == startdev) ++ continue; ++ if (MAJOR(dev) != desc->major || MINOR(dev) != desc->minor) ++ continue; ++ rdev = md_import_device(dev, 0, 0); ++ if (IS_ERR(rdev)) ++ continue; ++ ++ list_add(&rdev->same_set, &pending_raid_disks); ++ } ++ ++ /* ++ * possibly return codes ++ */ ++ autorun_devices(0); ++ return 0; ++ ++} ++ ++ + static int get_version(void __user * arg) + { + mdu_version_t ver; +@@ -4243,6 +4304,27 @@ + goto abort; + } + ++ ++ if (cmd == START_ARRAY) { ++ /* START_ARRAY doesn't need to lock the array as autostart_array ++ * does the locking, and it could even be a different array ++ */ ++ static int cnt = 3; ++ if (cnt > 0 ) { ++ printk(KERN_WARNING ++ "md: %s(pid %d) used deprecated START_ARRAY ioctl. " ++ "This will not be supported beyond July 2006\n", ++ current->comm, current->pid); ++ cnt--; ++ } ++ err = autostart_array(new_decode_dev(arg)); ++ if (err) { ++ printk(KERN_WARNING "md: autostart failed!\n"); ++ goto abort; ++ } ++ goto done; ++ } ++ + err = mddev_lock(mddev); + if (err) { + printk(KERN_INFO Index: kernel-2.6.spec =================================================================== RCS file: /cvs/dist/rpms/kernel/FC-6/kernel-2.6.spec,v retrieving revision 1.2999 retrieving revision 1.3000 diff -u -r1.2999 -r1.3000 --- kernel-2.6.spec 30 Jul 2007 14:07:40 -0000 1.2999 +++ kernel-2.6.spec 1 Aug 2007 17:59:03 -0000 1.3000 @@ -534,6 +534,7 @@ Patch120: linux-2.6-ppc32-ucmpdi2.patch Patch130: linux-2.6-ibmvscsi-schizo.patch Patch140: linux-2.6-pmac-zilog.patch + Patch150: linux-2.6-build-nonintconfig.patch Patch160: linux-2.6-execshield.patch Patch170: linux-2.6-modsign-mpilib.patch @@ -567,6 +568,7 @@ Patch430: linux-2.6-net-silence-noisy-printks.patch Patch431: linux-2.6-tcp-sack-fix-leak-msgs.patch Patch432: linux-2.6-net_sched_fix_deadlock.patch +Patch433: linux-2.6-net-dst_entry-reorder-crash.patch Patch440: linux-2.6-sha_alignment.patch Patch450: linux-2.6-input-kill-stupid-messages.patch Patch451: linux-2.6-input-rfkill-wrong-size-flags.patch @@ -574,6 +576,7 @@ Patch480: linux-2.6-proc-self-maps-fix.patch Patch490: linux-2.6-softlockup-disable.patch Patch510: linux-2.6-silence-noise.patch +Patch520: linux-2.6-raid-autorun.patch Patch570: linux-2.6-selinux-mprotect-checks.patch Patch590: linux-2.6-unexport-symbols.patch Patch600: linux-2.6-vm-silence-atomic-alloc-failures.patch @@ -1208,6 +1211,8 @@ ApplyPatch linux-2.6-tcp-sack-fix-leak-msgs.patch # deadlock in net scheduler(s) ApplyPatch linux-2.6-net_sched_fix_deadlock.patch +# fix crash in xfrm4 +ApplyPatch linux-2.6-net-dst_entry-reorder-crash.patch # Misc fixes # Fix SHA1 alignment problem on ia64 @@ -1222,6 +1227,8 @@ ApplyPatch linux-2.6-softlockup-disable.patch # Silence some useless messages that still get printed with 'quiet' ApplyPatch linux-2.6-silence-noise.patch +# restore START_SRRAY ioctl for md driver +ApplyPatch linux-2.6-raid-autorun.patch # Fix the SELinux mprotect checks on executable mappings ApplyPatch linux-2.6-selinux-mprotect-checks.patch @@ -2241,6 +2248,10 @@ %endif %changelog +* Wed Aug 01 2007 Chuck Ebbert +- fix crash in xfrm4 +- restore md driver START_ARRAY ioctl + * Mon Jul 30 2007 Chuck Ebbert - sync the CFS scheduler timekeeping changes with upstream - fix DMI strings in HP notebook quirk for ALI controller From fedora-cvs-commits at redhat.com Thu Aug 2 05:20:38 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Thu, 2 Aug 2007 01:20:38 -0400 Subject: rpms/boost/devel boost-configure.patch, NONE, 1.1 boost-gcc-soname.patch, NONE, 1.1 boost-run-tests.patch, NONE, 1.1 boost-use-rpm-optflags.patch, NONE, 1.1 .cvsignore, 1.8, 1.9 boost.spec, 1.34, 1.35 sources, 1.10, 1.11 boost-base.patch, 1.3, NONE boost-bind-gcc41.patch, 1.1, NONE boost-config-compiler-gcc.patch, 1.2, NONE boost-cxxflags-debug.patch, 1.1, NONE boost-gcc-tools.patch, 1.6, NONE boost-python-vs-x86-64.patch, 1.1, NONE boost-runtests.patch, 1.2, NONE boost-serialization-warnings.patch, 1.1, NONE boost-spirit-warnings.patch, 1.2, NONE boost-thread.patch, 1.3, NONE Message-ID: <200708020520.l725KceX024613@cvs.devel.redhat.com> Author: bkoz Update of /cvs/dist/rpms/boost/devel In directory cvs.devel.redhat.com:/tmp/cvs-serv24581/devel Modified Files: .cvsignore boost.spec sources Added Files: boost-configure.patch boost-gcc-soname.patch boost-run-tests.patch boost-use-rpm-optflags.patch Removed Files: boost-base.patch boost-bind-gcc41.patch boost-config-compiler-gcc.patch boost-cxxflags-debug.patch boost-gcc-tools.patch boost-python-vs-x86-64.patch boost-runtests.patch boost-serialization-warnings.patch boost-spirit-warnings.patch boost-thread.patch Log Message: auto-import boost-1.34.1-1 on branch devel from boost-1.34.1-1.src.rpm boost-configure.patch: configure | 6 !!!!!! 1 files changed, 6 modifications(!) --- NEW FILE boost-configure.patch --- *** configure.orig 2007-01-16 01:39:00.000000000 +0100 --- configure 2007-01-19 03:53:08.000000000 +0100 *************** *** 9,15 **** BJAM="" TOOLSET="" ! BJAM_CONFIG="" BUILD="" PREFIX=/usr/local EPREFIX= --- 9,15 ---- BJAM="" TOOLSET="" ! BJAM_CONFIG="-d2 --layout=system variant=release debug-symbols=on" BUILD="" PREFIX=/usr/local EPREFIX= *************** INCLUDEDIR=$INCLUDEDIR *** 325,332 **** LIBS=$LIBS all: .dummy ! @echo "\$(BJAM) \$(BJAM_CONFIG) --user-config=user-config.jam \$(LIBS)" ! @\$(BJAM) \$(BJAM_CONFIG) --user-config=user-config.jam \$(LIBS) || \\ echo "Not all Boost libraries built properly." clean: .dummy --- 325,332 ---- LIBS=$LIBS all: .dummy ! @echo "\$(BJAM) \$(BJAM_CONFIG) --user-config=user-config.jam \$(LIBS) stage" ! @\$(BJAM) \$(BJAM_CONFIG) --user-config=user-config.jam \$(LIBS) stage || \\ echo "Not all Boost libraries built properly." clean: .dummy boost-gcc-soname.patch: gcc.jam | 5 !!!!! 1 files changed, 5 modifications(!) --- NEW FILE boost-gcc-soname.patch --- *** tools/build/v2/tools/gcc.jam.orig 2007-05-03 08:09:04.000000000 +0200 --- tools/build/v2/tools/gcc.jam 2007-06-26 20:37:44.000000000 +0200 *************** if [ os.name ] != NT && [ os.name ] != O *** 316,322 **** # expected, therefore it has been disabled. HAVE_SONAME = "" ; ! SONAME_OPTION = -h ; } --- 316,323 ---- # expected, therefore it has been disabled. HAVE_SONAME = "" ; ! SONAME_OPTION = -soname ; ! SONAME_VERSION = 2 ; } *************** rule link.dll ( targets * : sources * : *** 631,637 **** # Differ from 'link' above only by -shared. actions link.dll bind LIBRARIES { ! "$(CONFIG_COMMAND)" -L"$(LINKPATH)" -Wl,$(RPATH_OPTION:E=-R)$(SPACE)-Wl,"$(RPATH)" "$(.IMPLIB-COMMAND)$(<[1])" -o "$(<[-1])" $(HAVE_SONAME)-Wl,$(SONAME_OPTION)$(SPACE)-Wl,$(<[-1]:D=) -shared $(START-GROUP) "$(>)" "$(LIBRARIES)" -l$(FINDLIBS-ST) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS) } # Set up threading support. It's somewhat contrived, so perform it at the end, --- 632,638 ---- # Differ from 'link' above only by -shared. actions link.dll bind LIBRARIES { ! "$(CONFIG_COMMAND)" -L"$(LINKPATH)" -Wl,$(RPATH_OPTION:E=-R)$(SPACE)-Wl,"$(RPATH)" "$(.IMPLIB-COMMAND)$(<[1])" -o "$(<[-1])" $(HAVE_SONAME)-Wl,$(SONAME_OPTION)$(SPACE)-Wl,$(<[-1]:D=).$(SONAME_VERSION) -shared $(START-GROUP) "$(>)" "$(LIBRARIES)" -l$(FINDLIBS-ST) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS) } # Set up threading support. It's somewhat contrived, so perform it at the end, boost-run-tests.patch: run_tests.sh | 52 +++++++++++++++++++++++-----!!!!!!!!!!!!!!!!!!!!!!!! 1 files changed, 23 insertions(+), 5 deletions(-), 24 modifications(!) --- NEW FILE boost-run-tests.patch --- *** tools/regression/run_tests.sh.orig 2007-07-31 19:44:25.000000000 -0500 --- tools/regression/run_tests.sh 2007-08-01 12:17:25.000000000 -0500 *************** *** 15,21 **** # This can be either a non-exitent directory or an already complete Boost # source tree. # ! boost_root="$HOME/CVSROOTs/Boost/boost_regression" # # Wether to fetch the most current Boost code from CVS (yes/no): --- 15,21 ---- # This can be either a non-exitent directory or an already complete Boost # source tree. # ! boost_root="/usr/src/redhat/BUILD/boost_1_34_1" # # Wether to fetch the most current Boost code from CVS (yes/no): *************** test_tools=gcc *** 42,58 **** toolset=gcc # - # "comment_path" is the path to an html-file describing the test environment. - # The content of this file will be embedded in the status pages being produced. - # - comment_path="$boost_root/../regression_comment.html" - # # "test_dir" is the relative path to the directory to run the tests in, # defaults to "status" and runs all the tests, but could be a sub-directory # for example "libs/regex/test" to run the regex tests alone. # test_dir="status" ### DEFAULTS ARE OK FOR THESE. --- 42,59 ---- toolset=gcc # # "test_dir" is the relative path to the directory to run the tests in, # defaults to "status" and runs all the tests, but could be a sub-directory # for example "libs/regex/test" to run the regex tests alone. # test_dir="status" + # + # "comment_path" is the path to an html-file describing the test environment. + # The content of this file will be embedded in the status pages being produced. + # + comment_path="$boost_root/$test_dir/regression_comment.html" + ### DEFAULTS ARE OK FOR THESE. *************** exe_suffix= *** 71,76 **** --- 72,80 ---- # bjam="$boost_root/tools/jam/src/bin/bjam$exe_suffix" + # bjam options + bjam_flags="--layout=system variant=release -sICU_PATH=/usr --user-config=$boost_root/user-config.jam" + # # "process_jam_log", and "compiler_status" paths to built helper programs: # The location of the executables of the regression help programs. These *************** else *** 98,103 **** --- 102,115 ---- fi export BOOST_BUILD_PATH + # For shared objects. + old_ld_library_path=$LD_LIBRARY_PATH + old_ld_run_path=$LD_RUN_PATH + LD_LIBRARY_PATH="$boost_root/stage/lib:$old_ld_library_path" + LD_RUN_PATH="$boost_root/stage/lib:$old_ld_run_path" + export LD_LIBRARY_PATH + export LD_RUN_PATH + # # STEP 0: # *************** fi *** 126,137 **** # STEP 1: # rebuild bjam if required: # ! echo building bjam: ! cd "$boost_root/tools/jam/src" && \ ! LOCATE_TARGET=bin sh ./build.sh ! if test $? != 0 ; then ! echo "bjam build failed." ! exit 256 fi # --- 138,152 ---- # STEP 1: # rebuild bjam if required: # ! echo "finding or building bjam": ! if test ! -f "$bjam" ; then ! echo "building bjam": ! cd "$boost_root/tools/jam/src" && \ ! LOCATE_TARGET=bin sh ./build.sh ! if test $? != 0 ; then ! echo "bjam build failed." ! exit 256 ! fi fi # *************** fi *** 139,146 **** # rebuild the regression test helper programs if required: # echo building regression test helper programs: ! cd "$boost_root/tools/regression/build" && \ ! "$bjam" $toolset release if test $? != 0 ; then echo "helper program build failed." exit 256 --- 154,160 ---- # rebuild the regression test helper programs if required: # echo building regression test helper programs: ! cd "$boost_root/tools/regression/build" && "$bjam" $bjam_flags $toolset if test $? != 0 ; then echo "helper program build failed." exit 256 *************** for tool in $test_tools ; do *** 158,164 **** # echo running the $tool regression tests: cd "$boost_root/$test_dir" ! "$bjam" $tool --dump-tests 2>&1 | tee regress.log # # STEP 4: --- 172,180 ---- # echo running the $tool regression tests: cd "$boost_root/$test_dir" ! echo "

begin time: " `date` "

" >> "$comment_path" ! "$bjam" $bjam_flags $tool --dump-tests 2>&1 | tee regress.log ! echo "

end time: " `date` "

" >> "$comment_path" # # STEP 4: *************** if test $? != 0 ; then *** 185,190 **** --- 201,212 ---- exit 256 fi + # cleanup + LD_LIBRARY_PATH="$old_ld_library_path" + LD_RUN_PATH="$old_ld_run_path" + export LD_LIBRARY_PATH + export LD_RUN_PATH + echo "done!" boost-use-rpm-optflags.patch: gcc.jam | 2 !! 1 files changed, 2 modifications(!) --- NEW FILE boost-use-rpm-optflags.patch --- *** tools/build/v2/tools/gcc.jam.orig 2007-08-01 01:17:16.000000000 -0500 --- tools/build/v2/tools/gcc.jam 2007-08-01 01:17:46.000000000 -0500 *************** flags gcc.compile PCH_FILE on : off : -O0 ; ! flags gcc.compile OPTIONS speed : -O3 ; flags gcc.compile OPTIONS space : -Os ; flags gcc.compile OPTIONS off : -fno-inline ; --- 268,274 ---- # Declare flags and action for compilation flags gcc.compile OPTIONS off : -O0 ; ! flags gcc.compile OPTIONS speed : "$RPM_OPT_FLAGS" ; flags gcc.compile OPTIONS space : -Os ; flags gcc.compile OPTIONS off : -fno-inline ; Index: .cvsignore =================================================================== RCS file: /cvs/dist/rpms/boost/devel/.cvsignore,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- .cvsignore 4 Jan 2006 23:14:27 -0000 1.8 +++ .cvsignore 2 Aug 2007 05:20:35 -0000 1.9 @@ -1,3 +1 @@ -boost_1_33_0.tar.bz2 -boost-1.33.1.20051114.tar.bz2 -boost_1_33_1.tar.bz2 +boost_1_34_1.tar.bz2 Index: boost.spec =================================================================== RCS file: /cvs/dist/rpms/boost/devel/boost.spec,v retrieving revision 1.34 retrieving revision 1.35 diff -u -r1.34 -r1.35 --- boost.spec 2 Apr 2007 14:42:09 -0000 1.34 +++ boost.spec 2 Aug 2007 05:20:35 -0000 1.35 @@ -1,13 +1,16 @@ Name: boost Summary: The Boost C++ Libraries -Version: 1.33.1 -Release: 13%{?dist} +Version: 1.34.1 +Release: 1%{?dist} License: Boost Software License (GPL-Compatible, Free Software License) URL: http://www.boost.org/ Group: System Environment/Libraries -Source: %{name}_1_33_1.tar.bz2 -#Source: http://downloads.sourceforge.net/boost/boost_1_33_1.tar.bz2 +#Source: %{name}_1_34_1.tar.bz2 +Source: http://downloads.sourceforge.net/boost/boost_1_34_1.tar.bz2 +Obsoletes: boost-doc <= 1.30.2 +Obsoletes: boost-python <= 1.30.2 Provides: boost-python = %{version}-%{release} +Provides: boost-doc = %{version}-%{release} BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) BuildRequires: libstdc++-devel BuildRequires: bzip2-libs @@ -18,16 +21,10 @@ BuildRequires: python-devel BuildRequires: libicu BuildRequires: libicu-devel -Patch0: boost-base.patch -Patch1: boost-gcc-tools.patch -Patch2: boost-thread.patch -Patch3: boost-config-compiler-gcc.patch -Patch4: boost-runtests.patch -Patch5: boost-serialization-warnings.patch -Patch6: boost-spirit-warnings.patch -Patch7: boost-bind-gcc41.patch -Patch8: boost-cxxflags-debug.patch -Patch9: boost-python-vs-x86-64.patch +Patch0: boost-configure.patch +Patch1: boost-gcc-soname.patch +Patch2: boost-use-rpm-optflags.patch +Patch3: boost-run-tests.patch %description Boost provides free peer-reviewed portable C++ source libraries. The @@ -67,55 +64,69 @@ %prep rm -rf %{buildroot} -%setup -q -n %{name}_1_33_1 +%setup -q -n %{name}_1_34_1 %patch0 -p0 %patch1 -p0 %patch2 -p0 %patch3 -p0 -%patch4 -p0 -%patch5 -p0 -%patch6 -p0 -%patch7 -p0 -%patch8 -p0 -%patch9 -p0 %build -#build bjam -(cd tools/build/jam_src && ./build.sh) +BOOST_ROOT=`pwd` +staged_dir=stage +export BOOST_ROOT + +# build make tools, ie bjam, necessary for building libs, docs, and testing +(cd tools/jam/src && ./build.sh) +BJAM=`find tools/jam/src/ -name bjam -a -type f` -#build boost with bjam -BJAM=`find tools/build/jam_src/ -name bjam -a -type f` -#BUILD_FLAGS="-sTOOLS=gcc -sBUILD=release 1" -#BUILD_FLAGS="-sTOOLS=gcc -sBUILD=release" -BUILD_FLAGS="-d2 -sTOOLS=gcc -sBUILD=release" +#BUILD_FLAGS="--with-toolset=gcc --prefix=$RPM_BUILD_ROOT%{_prefix}" +BUILD_FLAGS="--with-toolset=gcc" PYTHON_VERSION=$(python -c 'import sys; print sys.version[:3]') -PYTHON_FLAGS="-sPYTHON_ROOT=/usr -sPYTHON_VERSION=$PYTHON_VERSION" -REGEX_FLAGS="-sHAVE_ICU=1" -$BJAM $PYTHON_FLAGS $REGEX_FLAGS $BUILD_FLAGS stage +PYTHON_FLAGS="--with-python-root=/usr --with-python-version=$PYTHON_VERSION" +REGEX_FLAGS="--with-icu" +./configure $BUILD_FLAGS $PYTHON_FLAGS $REGEX_FLAGS +make all + +# build docs, requires a network connection for docbook XSLT stylesheets +#cd ./doc +#chmod +x ../tools/boostbook/setup_boostbook.sh +#../tools/boostbook/setup_boostbook.sh +#$BOOST_ROOT/$BJAM --v2 -sICU_PATH=/usr --user-config=../user-config.jam html +#cd .. %check -BOOST_ROOT=`pwd`; -cd tools/regression; -(cd ./build && $BOOST_ROOT/$BJAM) -echo "

" `uname -a` "

" > regression_comment.html; -echo "" >> regression_comment.html; -echo "

" `g++ --version` "

" >> regression_comment.html; -chmod +x ./run_tests.sh; -#uncomment next line to run tests: warning, takes a long time -#./run_tests.sh; -results1=$BOOST_ROOT/status/results.html -results2=$BOOST_ROOT/status/results-links.html -if [ -f $results2 ] && [ -f $results2 ]; then - testdate=`date +%Y%m%d`; - testarch=`uname -m`; - email=bkoz at redhat.com - mail -s "$testdate boost regression $testarch 1" $email < $results1; - mail -s "$testdate boost regression $testarch 2" $email < $results2; +# --with tests activates checking +%define with_tests %{?_with_tests:1}%{!?_with_tests:0} +%define without_tests %{!?_with_tests:1}%{?_with_tests:0} + +%if %{with_tests} +echo "

" `uname -a` "

" > status/regression_comment.html +echo "" >> status/regression_comment.html +echo "

" `g++ --version` "

" >> status/regression_comment.html +echo "" >> status/regression_comment.html + +chmod +x tools/regression/run_tests.sh +./tools/regression/run_tests.sh + +results1=status/cs-`uname`.html +results2=status/cs-`uname`-links.html +email=benjamin.kosnik at gmail.com +if [ -f $results1 ] && [ -f $results2 ]; then + echo "sending results starting" + testdate=`date +%Y%m%d` + testarch=`uname -m` + results=boost-results-$testdate-$testarch.tar.bz2 + tar -cvf boost-results-$testdate-$testarch.tar $results1 $results2 + bzip2 -f boost-results-$testdate-$testarch.tar + echo | mutt -s "$testdate boost regression $testarch" -a $results $email + echo "sending results finished" +else + echo "error sending results" fi -cd ../..; - +%endif %install +rm -rf $RPM_BUILD_ROOT mkdir -p $RPM_BUILD_ROOT%{_libdir} mkdir -p $RPM_BUILD_ROOT%{_includedir} mkdir -p $RPM_BUILD_ROOT%{_docdir}/boost-%{version} @@ -125,16 +136,20 @@ NAME=`basename $i`; install -p -m 0644 $i $RPM_BUILD_ROOT%{_libdir}/$NAME; done; -for i in `find stage -type f -name \*.so.*`; do - NAME=`basename $i`; - install -p -m 755 $i $RPM_BUILD_ROOT%{_libdir}/$NAME; -done; -for i in `find stage -type l -name \*.so`; do - NAME=`basename $i`; - SONAME=$NAME.2; - ln -s $NAME.%{version} $SONAME; - mv $SONAME $RPM_BUILD_ROOT%{_libdir}/$SONAME; - mv $i $RPM_BUILD_ROOT%{_libdir}/$NAME; +for i in `find stage -type f -name \*.so`; do + NAME=$i; + SONAME=$i.2; + VNAME=$i.%{version}; + base=`basename $i`; + NAMEbase=$base; + SONAMEbase=$base.2; + VNAMEbase=$base.%{version}; + mv $i $VNAME; + ln -s $VNAMEbase $SONAME; + ln -s $VNAMEbase $NAME; + install -p -m 755 $VNAME $RPM_BUILD_ROOT%{_libdir}/$VNAMEbase; + mv $SONAME $RPM_BUILD_ROOT%{_libdir}/$SONAMEbase; + mv $NAME $RPM_BUILD_ROOT%{_libdir}/$NAMEbase; done; # install include files @@ -155,14 +170,15 @@ done cd ../..; +# remove scripts used to generate include files +find $RPM_BUILD_ROOT%{_includedir}/ \( -name '*.pl' -o -name '*.sh' \) -exec rm {} \; + %clean -rm -rf %{buildroot} +rm -rf $RPM_BUILD_ROOT -%post -/sbin/ldconfig +%post -p /sbin/ldconfig -%postun -/sbin/ldconfig +%postun -p /sbin/ldconfig %files %defattr(-, root, root, -) @@ -183,6 +199,16 @@ %doc %{_docdir}/boost-%{version} %changelog +* Tue Jul 31 2007 Benjamin Kosnik 1.34.1-1 +- Update to boost_1_34_1. +- Source via http. +- Philipp Thomas fix for RPM_OPT_FLAGS +- Philipp Thomas fix for .so sym links. +- (#225622) Patrice Dumas review comments. + +* Tue Jun 26 2007 Benjamin Kosnik 1.34.1.rc1-0.1 +- Update to boost_1_34_1_RC1. + * Mon Apr 02 2007 Benjamin Kosnik 1.33.1-13 - (#225622: Merge Review: boost) Change static to devel-static. @@ -209,6 +235,12 @@ Install static libs with 0644 permissions. Use %doc for doc files. +* Mon Jan 22 2007 Benjamin Kosnik 1.34.0-0.5 +- Update to boost.RC_1_34_0 snapshot as of 2007-01-19. +- Modify build procedures for boost build v2. +- Add *-mt variants for libraries, or at least variants that use + threads (regex and thread). + * Thu Nov 23 2006 Benjamin Kosnik 1.33.1-10 - (#182414: boost: put tests in %check section) via Rex Dieter - Fix EVR with %{?dist} tag via Gianluca Sforna Index: sources =================================================================== RCS file: /cvs/dist/rpms/boost/devel/sources,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- sources 4 Jan 2006 23:14:27 -0000 1.10 +++ sources 2 Aug 2007 05:20:35 -0000 1.11 @@ -1,3 +1 @@ -56fafc275dc0e195ec2f27e8769482cc boost_1_33_0.tar.bz2 -74785688e823771402cfa5753fe95b8a boost-1.33.1.20051114.tar.bz2 -2b999b2fb7798e1737d1fff8fac602ef boost_1_33_1.tar.bz2 +2d938467e8a448a2c9763e0a9f8ca7e5 boost_1_34_1.tar.bz2 --- boost-base.patch DELETED --- --- boost-bind-gcc41.patch DELETED --- --- boost-config-compiler-gcc.patch DELETED --- --- boost-cxxflags-debug.patch DELETED --- --- boost-gcc-tools.patch DELETED --- --- boost-python-vs-x86-64.patch DELETED --- --- boost-runtests.patch DELETED --- --- boost-serialization-warnings.patch DELETED --- --- boost-spirit-warnings.patch DELETED --- --- boost-thread.patch DELETED --- From fedora-cvs-commits at redhat.com Thu Aug 2 10:29:54 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Thu, 2 Aug 2007 06:29:54 -0400 Subject: rpms/util-linux/FC-6 util-linux-2.12a-mount-lockperm.patch, NONE, 1.1 util-linux-2.13-cal-3.patch, NONE, 1.1 util-linux-2.13-hwclock-systohc.patch, NONE, 1.1 util-linux-2.13-localedir.patch, NONE, 1.1 util-linux-2.13-mkdir_p.patch, 1.2, 1.3 util-linux-2.13-sfdisk-geo.patch, NONE, 1.1 util-linux-login.pamd, 1.1, 1.2 util-linux-remote.pamd, 1.1, 1.2 util-linux.spec, 1.153, 1.154 Message-ID: <200708021029.l72ATs1l028865@cvs.devel.redhat.com> Author: kzak Update of /cvs/dist/rpms/util-linux/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv28842 Modified Files: util-linux-login.pamd util-linux-remote.pamd util-linux.spec Added Files: util-linux-2.12a-mount-lockperm.patch util-linux-2.13-cal-3.patch util-linux-2.13-hwclock-systohc.patch util-linux-2.13-localedir.patch util-linux-2.13-mkdir_p.patch util-linux-2.13-sfdisk-geo.patch Log Message: * Thu Aug 2 2007 Karel Zak 2.13-0.47 - fix #236848 - mount/fstab.c:lock_mtab() should open with proper permissions - fix #213253 - "cal -3" generates improperly formatted output - fix #150493 - hwclock --systohc sets clock 0.5 seconds slow - fix #243930 - translation files exist, but are not being used - fix #228731 - sfdisk doesn't support DM-MP device (add default heads and sectors) - fix #217186 - /bin/sh: @MKINSTALLDIRS@: No such file or directory util-linux-2.12a-mount-lockperm.patch: fstab.c | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) --- NEW FILE util-linux-2.12a-mount-lockperm.patch --- From: Fl??vio Leitner Subject: mount should set proper permissions on locktime When creating the "/etc/mtab~" lockfile (specifically 'linktargetfile' in the lock_mtab function), the file is created with incorrect permissions ('000') which necessitates root to leverage CAP_DAC_OVERRIDE. If proper file modes (it would appear 0600 would be sufficient) were used in the open this would function properly with CAP_DAC_OVERRIDE revoked. --- util-linux-2.12a/mount/fstab.c.kzak 2007-07-31 12:13:26.000000000 +0200 +++ util-linux-2.12a/mount/fstab.c 2007-07-31 12:13:11.000000000 +0200 @@ -433,7 +433,7 @@ linktargetfile = xmalloc(strlen(MOUNTLOCK_LINKTARGET) + 20); sprintf(linktargetfile, MOUNTLOCK_LINKTARGET, getpid ()); - i = open (linktargetfile, O_WRONLY|O_CREAT, 0); + i = open (linktargetfile, O_WRONLY|O_CREAT, S_IRUSR|S_IWUSR); if (i < 0) { int errsv = errno; /* linktargetfile does not exist (as a file) util-linux-2.13-cal-3.patch: configure.ac | 1 + misc-utils/cal.c | 47 ++++++++++++++++++++++++++++++++++++++--------- 2 files changed, 39 insertions(+), 9 deletions(-) --- NEW FILE util-linux-2.13-cal-3.patch --- --- util-linux-2.13-pre7/misc-utils/cal.c.kzak 2007-07-09 14:54:39.000000000 +0200 +++ util-linux-2.13-pre7/misc-utils/cal.c 2007-07-09 14:54:39.000000000 +0200 @@ -87,9 +87,13 @@ putp(s); } -static char * +static const char * my_tgetstr(char *s, char *ss) { - return tigetstr(ss); + const char* ret = tigetstr(ss); + if (!ret || ret==(char*)-1) + return ""; + else + return ret; } #elif defined(HAVE_LIBTERMCAP) @@ -110,14 +114,20 @@ tputs (s, 1, putchar); } -static char * +static const char * my_tgetstr(char *s, char *ss) { - return tgetstr(s, &strbuf); + const char* ret = tgetstr(s, &strbuf); + if (!ret) + return ""; + else + return ret; } #endif const char *term=""; const char *Senter="", *Sexit="";/* enter and exit standout mode */ +int Slen; /* strlen of Senter+Sexit */ +char *Hrow; /* pointer to highlighted row in month */ #ifdef HAVE_LANGINFO_H # include @@ -262,6 +272,7 @@ if (ret > 0) { Senter = my_tgetstr("so","smso"); Sexit = my_tgetstr("se","rmso"); + Slen = strlen(Senter) + strlen(Sexit); } } #endif @@ -437,11 +448,18 @@ sprintf(out->s[1],"%s", julian ? j_day_headings : day_headings); for (row = 0; row < 6; row++) { - for (col = 0, p = lineout; col < 7; col++) - p = ascii_day(p, days[row * 7 + col]); + int has_hl = 0; + for (col = 0, p = lineout; col < 7; col++) { + int xd = days[row * 7 + col]; + if (xd != SPACE && (xd & TODAY_FLAG)) + has_hl = 1; + p = ascii_day(p, xd); + } *p = '\0'; trim_trailing_spaces(lineout); sprintf(out->s[row+2], "%s", lineout); + if (has_hl) + Hrow = out->s[row+2]; } } @@ -489,14 +507,25 @@ do_monthly(day, prev_month, prev_year, &out_prev); do_monthly(day, month, year, &out_curm); do_monthly(day, next_month, next_year, &out_next); + width = (julian ? J_WEEK_LEN : WEEK_LEN) -1; for (i = 0; i < 2; i++) printf("%s %s %s\n", out_prev.s[i], out_curm.s[i], out_next.s[i]); for (i = 2; i < FMT_ST_LINES; i++) { + int w1, w2, w3; + w1 = w2 = w3 = width; + +#if defined(HAVE_NCURSES) || defined(HAVE_LIBTERMCAP) + /* adjust width to allow for non printable characters */ + w1 += (out_prev.s[i] == Hrow ? Slen : 0); + w2 += (out_curm.s[i] == Hrow ? Slen : 0); + w3 += (out_next.s[i] == Hrow ? Slen : 0); +#endif snprintf(lineout, SIZE(lineout), "%-*s %-*s %-*s\n", - width, out_prev.s[i], - width, out_curm.s[i], - width, out_next.s[i]); + w1, out_prev.s[i], + w2, out_curm.s[i], + w3, out_next.s[i]); + #if defined(HAVE_NCURSES) || defined(HAVE_LIBTERMCAP) my_putstring(lineout); #else --- util-linux-2.13-pre7/configure.ac.kzak 2007-07-09 14:54:48.000000000 +0200 +++ util-linux-2.13-pre7/configure.ac 2007-07-09 14:55:11.000000000 +0200 @@ -71,6 +71,7 @@ if test x$ac_cv_header_ncurses_h = xyes || test x$ac_cv_header_ncurses_ncurses_h = xyes; then have_ncurses=yes AC_MSG_NOTICE([you have ncurses]) + AC_DEFINE(HAVE_NCURSES, 1, [Do we have -lncurses?]) else AC_MSG_NOTICE([you do not have ncurses]) fi util-linux-2.13-hwclock-systohc.patch: hwclock.c | 9 +++++++-- 1 files changed, 7 insertions(+), 2 deletions(-) --- NEW FILE util-linux-2.13-hwclock-systohc.patch --- commit 99c392d8ba163e35b9d562dd4bcf7dd476ad3573 Author: Karel Zak Date: Tue Mar 20 00:32:37 2007 +0100 hwclock: fix --systohc sets clock 0.5 seconds slow quote from rh150493: The kernel code, when setting the BIOS clock notes that the clock time ticks to the next second 0.5 seconds after adjusting it (see linux/arch/i386/kernel/time.c). hwclock --systohc sets the CMOS clock at the 1 second boundry and thus causes the clock to be wrong by 500ms each time it is reset. If the clock is set every shutdown then the clock will have a reboot-count related drift as well as the natural drift problems of the clock. Note that this also mucks up the drift calculations, of course. Signed-off-by: Karel Zak diff --git a/hwclock/hwclock.c b/hwclock/hwclock.c index 9731dad..820c388 100644 --- a/hwclock/hwclock.c +++ b/hwclock/hwclock.c @@ -517,14 +517,19 @@ set_hardware_clock_exact(const time_t sethwtime, "Delaying further to reach the next full second.\n"), time_diff(beginsystime, refsystime)); - /* Now delay some more until Hardware Clock time newhwtime arrives */ + /* + * Now delay some more until Hardware Clock time newhwtime arrives. The -500 + * ms is because the Hardware Clock always sets to your set time plus 500 ms + * (because it is designed to update to the next second precisely 500 ms + * after you finish the setting). + */ do { float tdiff; gettimeofday(&nowsystime, NULL); tdiff = time_diff(nowsystime, beginsystime); if (tdiff < 0) goto time_resync; /* probably time was reset */ - } while (time_diff(nowsystime, refsystime) < newhwtime - sethwtime); + } while (time_diff(nowsystime, refsystime) - 0.5 < newhwtime - sethwtime); set_hardware_clock(newhwtime, universal, testing); } util-linux-2.13-localedir.patch: include-Makefile.am | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) --- NEW FILE util-linux-2.13-localedir.patch --- --- util-linux-2.13-pre7/config/include-Makefile.am.kzak 2007-06-25 11:15:40.000000000 +0200 +++ util-linux-2.13-pre7/config/include-Makefile.am 2007-06-25 11:16:39.000000000 +0200 @@ -3,10 +3,10 @@ datadir = $(prefix)/usr/share infodir = $(datadir)/info mandir = $(datadir)/man +localedir = $(datadir)/locale -AM_CPPFLAGS = -include $(top_builddir)/config.h -I$(top_srcdir)/include +AM_CPPFLAGS = -include $(top_builddir)/config.h -I$(top_srcdir)/include \ + -DLOCALEDIR=\"$(localedir)\" DEFAULT_INCLUDES = -DEFS = -DLOCALEDIR=\"$(localedir)\" @DEFS@ - util-linux-2.13-mkdir_p.patch: Makefile.in.in | 33 +++++++++++++++++++++------------ 1 files changed, 21 insertions(+), 12 deletions(-) Index: util-linux-2.13-mkdir_p.patch =================================================================== RCS file: util-linux-2.13-mkdir_p.patch diff -N util-linux-2.13-mkdir_p.patch --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ util-linux-2.13-mkdir_p.patch 2 Aug 2007 10:29:52 -0000 1.3 @@ -0,0 +1,97 @@ +--- util-linux-2.13-pre7/po/Makefile.in.in.mkdir_p 2005-10-14 22:22:14.000000000 +0200 ++++ util-linux-2.13-pre7/po/Makefile.in.in 2006-12-17 00:06:29.000000000 +0100 +@@ -1,5 +1,5 @@ + # Makefile for PO directory in any package using GNU gettext. +-# Copyright (C) 1995-1997, 2000-2005 by Ulrich Drepper ++# Copyright (C) 1995-1997, 2000-2006 by Ulrich Drepper + # + # This file can be copied and used freely without restrictions. It can + # be used in projects which are not available under the GNU General Public +@@ -8,7 +8,7 @@ + # Please note that the actual code of GNU gettext is covered by the GNU + # General Public License and is *not* in the public domain. + # +-# Origin: gettext-0.14.4 ++# Origin: gettext-0.16 + + PACKAGE = @PACKAGE@ + VERSION = @VERSION@ +@@ -29,8 +29,18 @@ + + INSTALL = @INSTALL@ + INSTALL_DATA = @INSTALL_DATA@ +-MKINSTALLDIRS = @MKINSTALLDIRS@ +-mkinstalldirs = $(SHELL) $(MKINSTALLDIRS) ++ ++# We use $(mkdir_p). ++# In automake <= 1.9.x, $(mkdir_p) is defined either as "mkdir -p --" or as ++# "$(mkinstalldirs)" or as "$(install_sh) -d". For these automake versions, ++# @install_sh@ does not start with $(SHELL), so we add it. ++# In automake >= 1.10, @mkdir_p@ is derived from ${MKDIR_P}, which is defined ++# either as "/path/to/mkdir -p" or ".../install-sh -c -d". For these automake ++# versions, $(mkinstalldirs) and $(install_sh) are unused. ++mkinstalldirs = $(SHELL) @install_sh@ -d ++install_sh = $(SHELL) @install_sh@ ++MKDIR_P = @MKDIR_P@ ++mkdir_p = @mkdir_p@ + + GMSGFMT = @GMSGFMT@ + MSGFMT = @MSGFMT@ +@@ -158,7 +168,7 @@ + install-exec: + install-data: install-data- at USE_NLS@ + if test "$(PACKAGE)" = "gettext-tools"; then \ +- $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \ ++ $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ + for file in $(DISTFILES.common) Makevars.template; do \ + $(INSTALL_DATA) $(srcdir)/$$file \ + $(DESTDIR)$(gettextsrcdir)/$$file; \ +@@ -171,13 +181,13 @@ + fi + install-data-no: all + install-data-yes: all +- $(mkinstalldirs) $(DESTDIR)$(datadir) ++ $(mkdir_p) $(DESTDIR)$(datadir) + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + dir=$(localedir)/$$lang/LC_MESSAGES; \ +- $(mkinstalldirs) $(DESTDIR)$$dir; \ ++ $(mkdir_p) $(DESTDIR)$$dir; \ + if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \ + $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \ + echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \ +@@ -217,19 +227,19 @@ + installdirs-exec: + installdirs-data: installdirs-data- at USE_NLS@ + if test "$(PACKAGE)" = "gettext-tools"; then \ +- $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \ ++ $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ + else \ + : ; \ + fi + installdirs-data-no: + installdirs-data-yes: +- $(mkinstalldirs) $(DESTDIR)$(datadir) ++ $(mkdir_p) $(DESTDIR)$(datadir) + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + dir=$(localedir)/$$lang/LC_MESSAGES; \ +- $(mkinstalldirs) $(DESTDIR)$$dir; \ ++ $(mkdir_p) $(DESTDIR)$$dir; \ + for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ + if test -n "$$lc"; then \ + if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ +@@ -374,8 +384,7 @@ + + Makefile: Makefile.in.in Makevars $(top_builddir)/config.status @POMAKEFILEDEPS@ + cd $(top_builddir) \ +- && CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \ +- $(SHELL) ./config.status ++ && $(SHELL) ./config.status $(subdir)/$@.in po-directories + + force: + util-linux-2.13-sfdisk-geo.patch: sfdisk.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) --- NEW FILE util-linux-2.13-sfdisk-geo.patch --- --- util-linux-2.13-pre7/fdisk/sfdisk.c.kzak 2007-06-25 09:13:31.000000000 +0200 +++ util-linux-2.13-pre7/fdisk/sfdisk.c 2007-06-25 09:12:42.000000000 +0200 @@ -469,8 +469,8 @@ R = get_geometry(dev, fd, silent); - B.heads = (U.heads ? U.heads : R.heads); - B.sectors = (U.sectors ? U.sectors : R.sectors); + B.heads = (U.heads ? U.heads : (R.heads ? R.heads : 255)); + B.sectors = (U.sectors ? U.sectors : (R.sectors ? R.sectors : 63)); B.cylinders = (U.cylinders ? U.cylinders : R.cylinders); B.cylindersize = B.heads * B.sectors; Index: util-linux-login.pamd =================================================================== RCS file: /cvs/dist/rpms/util-linux/FC-6/util-linux-login.pamd,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- util-linux-login.pamd 21 Aug 2006 16:24:02 -0000 1.1 +++ util-linux-login.pamd 2 Aug 2007 10:29:52 -0000 1.2 @@ -6,9 +6,9 @@ password include system-auth # pam_selinux.so close should be the first session rule session required pam_selinux.so close +session optional pam_keyinit.so force revoke session include system-auth session required pam_loginuid.so session optional pam_console.so # pam_selinux.so open should only be followed by sessions to be executed in the user context session required pam_selinux.so open -session optional pam_keyinit.so force revoke Index: util-linux-remote.pamd =================================================================== RCS file: /cvs/dist/rpms/util-linux/FC-6/util-linux-remote.pamd,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- util-linux-remote.pamd 21 Aug 2006 16:24:02 -0000 1.1 +++ util-linux-remote.pamd 2 Aug 2007 10:29:52 -0000 1.2 @@ -6,9 +6,9 @@ password include system-auth # pam_selinux.so close should be the first session rule session required pam_selinux.so close +session optional pam_keyinit.so force revoke session include system-auth session required pam_loginuid.so session optional pam_console.so # pam_selinux.so open should only be followed by sessions to be executed in the user context session required pam_selinux.so open -session optional pam_keyinit.so force revoke Index: util-linux.spec =================================================================== RCS file: /cvs/dist/rpms/util-linux/FC-6/util-linux.spec,v retrieving revision 1.153 retrieving revision 1.154 diff -u -r1.153 -r1.154 --- util-linux.spec 9 Feb 2007 12:39:35 -0000 1.153 +++ util-linux.spec 2 Aug 2007 10:29:52 -0000 1.154 @@ -9,7 +9,7 @@ Summary: A collection of basic system utilities. Name: util-linux Version: 2.13 -Release: 0.46%{?dist} +Release: 0.47%{?dist} License: distributable Group: System Environment/Base @@ -222,10 +222,18 @@ Patch260: util-linux-2.13-partx-man.patch # 227903 - mount -f does not work with NFS-mounted file system Patch261: util-linux-2.13-mount-fake.patch - -# When adding patches, please make sure that it is easy to find out what bug # the -# patch fixes. -########### END upstreamable +# 236848 - mount/fstab.c:lock_mtab() should open with proper permissions +Patch262: util-linux-2.12a-mount-lockperm.patch +# 213253 - "cal -3" generates improperly formatted output +Patch263: util-linux-2.13-cal-3.patch +# 150493 - hwclock --systohc sets clock 0.5 seconds slow +Patch264: util-linux-2.13-hwclock-systohc.patch +# 243930 - translation files exist, but are not being used +Patch265: util-linux-2.13-localedir.patch +# 228731 - sfdisk doesn't support DM-MP device (add default heads and sectors) +Patch266: util-linux-2.13-sfdisk-geo.patch +# 217186 - /bin/sh: @MKINSTALLDIRS@: No such file or directory +Patch267: util-linux-2.13-mkdir_p.patch %description The util-linux package contains a large variety of low-level system @@ -316,6 +324,12 @@ %patch259 -p1 %patch260 -p1 %patch261 -p1 +%patch262 -p1 +%patch263 -p1 +%patch264 -p1 +%patch265 -p1 +%patch266 -p1 +%patch267 -p1 %build unset LINGUAS || : @@ -707,6 +721,14 @@ /sbin/losetup %changelog +* Thu Aug 2 2007 Karel Zak 2.13-0.47 +- fix #236848 - mount/fstab.c:lock_mtab() should open with proper permissions +- fix #213253 - "cal -3" generates improperly formatted output +- fix #150493 - hwclock --systohc sets clock 0.5 seconds slow +- fix #243930 - translation files exist, but are not being used +- fix #228731 - sfdisk doesn't support DM-MP device (add default heads and sectors) +- fix #217186 - /bin/sh: @MKINSTALLDIRS@: No such file or directory + * Fri Feb 9 2007 Karel Zak 2.13-0.46 - fix #227903 - mount -f does not work with NFS-mounted file system From fedora-cvs-commits at redhat.com Thu Aug 2 11:53:13 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Thu, 2 Aug 2007 07:53:13 -0400 Subject: rpms/util-linux/FC-6 util-linux-2.13-blockdev-errno.patch, NONE, 1.1 util-linux-2.13-blockdev-unsigned.patch, NONE, 1.1 util-linux.spec, 1.154, 1.155 Message-ID: <200708021153.l72BrCYK029786@cvs.devel.redhat.com> Author: kzak Update of /cvs/dist/rpms/util-linux/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv29767 Modified Files: util-linux.spec Added Files: util-linux-2.13-blockdev-errno.patch util-linux-2.13-blockdev-unsigned.patch Log Message: * Thu Aug 2 2007 Karel Zak 2.13-0.48 - fix #238918 - blockdev --getsize does not work properly on devices with more than 2^31 sectors util-linux-2.13-blockdev-errno.patch: blockdev.c | 7 +++++-- 1 files changed, 5 insertions(+), 2 deletions(-) --- NEW FILE util-linux-2.13-blockdev-errno.patch --- --- util-linux-2.13-pre7/disk-utils/blockdev.c.kzak 2007-08-02 13:43:16.000000000 +0200 +++ util-linux-2.13-pre7/disk-utils/blockdev.c 2007-08-02 13:43:16.000000000 +0200 @@ -9,6 +9,7 @@ #include #include #include +#include #include "nls.h" @@ -160,8 +161,10 @@ long long b; err = ioctl (fd, BLKGETSIZE, &sz); - if (err) - return err; + if (err) { + if (errno != EFBIG) + return err; + } err = ioctl(fd, BLKGETSIZE64, &b); if (err || b == 0 || b == sz) *sectors = sz; util-linux-2.13-blockdev-unsigned.patch: blockdev.c | 30 ++++++++++++++++++++++++++++-- 1 files changed, 28 insertions(+), 2 deletions(-) --- NEW FILE util-linux-2.13-blockdev-unsigned.patch --- --- util-linux-2.13-pre7/disk-utils/blockdev.c.kzak 2007-08-02 13:24:45.000000000 +0200 +++ util-linux-2.13-pre7/disk-utils/blockdev.c 2007-08-02 13:24:45.000000000 +0200 @@ -77,6 +77,8 @@ #define ARGINTG 4 #define ARGLINTG 5 #define ARGLLINTG 6 +#define ARGLU 7 +#define ARGLLU 8 long argval; char *argname; char *help; @@ -98,10 +100,10 @@ { "--setbsz", "BLKBSZSET", BLKBSZSET, ARGINTAP, 0, "BLOCKSIZE", N_("set blocksize") }, #endif #ifdef BLKGETSIZE - { "--getsize", "BLKGETSIZE", BLKGETSIZE, ARGLINTG, -1, NULL, N_("get 32-bit sector count") }, + { "--getsize", "BLKGETSIZE", BLKGETSIZE, ARGLU, -1, NULL, N_("get 32-bit sector count") }, #endif #ifdef BLKGETSIZE64 - { "--getsize64", "BLKGETSIZE64", BLKGETSIZE64, ARGLLINTG, -1, NULL, N_("get size in bytes") }, + { "--getsize64", "BLKGETSIZE64", BLKGETSIZE64, ARGLLU, -1, NULL, N_("get size in bytes") }, #endif #ifdef BLKRASET { "--setra", "BLKRASET", BLKRASET, ARGINTA, 0, "READAHEAD", N_("set readahead") }, @@ -286,6 +288,8 @@ int iarg; long larg; long long llarg; + unsigned long lu; + unsigned long long llu; int verbose = 0; for (i = 1; i < d; i++) { @@ -363,6 +367,15 @@ llarg = bdcms[j].argval; res = ioctl(fd, bdcms[j].ioc, &llarg); break; + case ARGLU: + lu = bdcms[j].argval; + res = ioctl(fd, bdcms[j].ioc, &lu); + break; + case ARGLLU: + llu = bdcms[j].argval; + res = ioctl(fd, bdcms[j].ioc, &llu); + break; + } if (res == -1) { perror(bdcms[j].iocname); @@ -389,6 +402,19 @@ else printf("%lld\n", llarg); break; + case ARGLU: + if (verbose) + printf("%s: %lu\n", _(bdcms[j].help), lu); + else + printf("%lu\n", lu); + break; + case ARGLLU: + if (verbose) + printf("%s: %llu\n", _(bdcms[j].help), llu); + else + printf("%llu\n", llu); + break; + default: if (verbose) printf(_("%s succeeded.\n"), _(bdcms[j].help)); Index: util-linux.spec =================================================================== RCS file: /cvs/dist/rpms/util-linux/FC-6/util-linux.spec,v retrieving revision 1.154 retrieving revision 1.155 diff -u -r1.154 -r1.155 --- util-linux.spec 2 Aug 2007 10:29:52 -0000 1.154 +++ util-linux.spec 2 Aug 2007 11:53:10 -0000 1.155 @@ -9,7 +9,7 @@ Summary: A collection of basic system utilities. Name: util-linux Version: 2.13 -Release: 0.47%{?dist} +Release: 0.48%{?dist} License: distributable Group: System Environment/Base @@ -234,6 +234,9 @@ Patch266: util-linux-2.13-sfdisk-geo.patch # 217186 - /bin/sh: @MKINSTALLDIRS@: No such file or directory Patch267: util-linux-2.13-mkdir_p.patch +# 238918 - blockdev --getsize does not work properly on devices with more than 2^31 sectors +Patch268: util-linux-2.13-blockdev-errno.patch +Patch269: util-linux-2.13-blockdev-unsigned.patch %description The util-linux package contains a large variety of low-level system @@ -330,6 +333,8 @@ %patch265 -p1 %patch266 -p1 %patch267 -p1 +%patch268 -p1 +%patch269 -p1 %build unset LINGUAS || : @@ -721,6 +726,9 @@ /sbin/losetup %changelog +* Thu Aug 2 2007 Karel Zak 2.13-0.48 +- fix #238918 - blockdev --getsize does not work properly on devices with more than 2^31 sectors + * Thu Aug 2 2007 Karel Zak 2.13-0.47 - fix #236848 - mount/fstab.c:lock_mtab() should open with proper permissions - fix #213253 - "cal -3" generates improperly formatted output From fedora-cvs-commits at redhat.com Thu Aug 2 16:55:52 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Thu, 2 Aug 2007 12:55:52 -0400 Subject: rpms/xorg-x11-xinit/FC-6 Xsession, 1.2, 1.3 xorg-x11-xinit.spec, 1.34, 1.35 Message-ID: <200708021655.l72Gtq7Q002812@cvs.devel.redhat.com> Author: sandmann Update of /cvs/dist/rpms/xorg-x11-xinit/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv2797 Modified Files: Xsession xorg-x11-xinit.spec Log Message: Fix bug 212167 Index: Xsession =================================================================== RCS file: /cvs/dist/rpms/xorg-x11-xinit/FC-6/Xsession,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- Xsession 16 Dec 2005 18:55:15 -0000 1.2 +++ Xsession 2 Aug 2007 16:55:50 -0000 1.3 @@ -12,7 +12,7 @@ if [ -z "$GDMSESSION" ]; then # GDM redirect output itself in a smarter fashion errfile="$HOME/.xsession-errors" - if cp /dev/null "$errfile" 2> /dev/null ; then + if ( unask 077 && cp /dev/null "$errfile" 2> /dev/null ); then chmod 600 "$errfile" exec > "$errfile" 2>&1 else Index: xorg-x11-xinit.spec =================================================================== RCS file: /cvs/dist/rpms/xorg-x11-xinit/FC-6/xorg-x11-xinit.spec,v retrieving revision 1.34 retrieving revision 1.35 diff -u -r1.34 -r1.35 --- xorg-x11-xinit.spec 11 Nov 2006 15:51:56 -0000 1.34 +++ xorg-x11-xinit.spec 2 Aug 2007 16:55:50 -0000 1.35 @@ -102,6 +102,9 @@ %{_mandir}/man1/xinit.1x* %changelog +* Thu Aug 2 2007 Soren Sandmann - 1.0.2-16 +- Fix bug 212167; CVE-2006-5214. + * Sat Nov 11 2006 Ray Strode - 1.0.2-15 - Apply patch that was added in 1.0.2-14 From fedora-cvs-commits at redhat.com Thu Aug 2 16:57:38 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Thu, 2 Aug 2007 12:57:38 -0400 Subject: rpms/xorg-x11-xinit/FC-6 xorg-x11-xinit.spec,1.35,1.36 Message-ID: <200708021657.l72GvcxH002886@cvs.devel.redhat.com> Author: sandmann Update of /cvs/dist/rpms/xorg-x11-xinit/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv2872 Modified Files: xorg-x11-xinit.spec Log Message: Bump release Index: xorg-x11-xinit.spec =================================================================== RCS file: /cvs/dist/rpms/xorg-x11-xinit/FC-6/xorg-x11-xinit.spec,v retrieving revision 1.35 retrieving revision 1.36 diff -u -r1.35 -r1.36 --- xorg-x11-xinit.spec 2 Aug 2007 16:55:50 -0000 1.35 +++ xorg-x11-xinit.spec 2 Aug 2007 16:57:36 -0000 1.36 @@ -3,7 +3,7 @@ Summary: X.Org X11 X Window System xinit startup scripts Name: xorg-x11-%{pkgname} Version: 1.0.2 -Release: 15%{?dist} +Release: 16%{?dist} License: MIT/X11 Group: User Interface/X URL: http://www.x.org From fedora-cvs-commits at redhat.com Thu Aug 2 17:50:26 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Thu, 2 Aug 2007 13:50:26 -0400 Subject: rpms/libgtop2/FC-6 .cvsignore, 1.28, 1.29 libgtop2.spec, 1.41, 1.42 sources, 1.28, 1.29 Message-ID: <200708021750.l72HoQ6N003985@cvs.devel.redhat.com> Author: sandmann Update of /cvs/dist/rpms/libgtop2/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv3965 Modified Files: .cvsignore libgtop2.spec sources Log Message: Bug 222637 Index: .cvsignore =================================================================== RCS file: /cvs/dist/rpms/libgtop2/FC-6/.cvsignore,v retrieving revision 1.28 retrieving revision 1.29 diff -u -r1.28 -r1.29 --- .cvsignore 20 Sep 2006 20:43:24 -0000 1.28 +++ .cvsignore 2 Aug 2007 17:50:23 -0000 1.29 @@ -1,2 +1,3 @@ libgtop-2.14.3.tar.bz2 libgtop-2.14.4.tar.bz2 +libgtop-2.14.9.tar.bz2 Index: libgtop2.spec =================================================================== RCS file: /cvs/dist/rpms/libgtop2/FC-6/libgtop2.spec,v retrieving revision 1.41 retrieving revision 1.42 diff -u -r1.41 -r1.42 --- libgtop2.spec 1 Oct 2006 21:17:33 -0000 1.41 +++ libgtop2.spec 2 Aug 2007 17:50:24 -0000 1.42 @@ -6,8 +6,8 @@ Name: libgtop2 Summary: libgtop library (version 2) -Version: 2.14.4 -Release: 2%{?dist} +Version: 2.14.9 +Release: 1%{?dist} License: GPL URL: ftp://ftp.gnome.org/pub/GNOME/sources/libgtop/2.0 Group: System Environment/Libraries @@ -86,6 +86,9 @@ %{_libdir}/pkgconfig/*.pc %changelog +* Thu Aug 02 2007 Soren Sandmann - 2.14.9-1 +- Update to libgtop-2.14.9 for b.r.c 222637 CVE-2007-0235 + * Sun Oct 01 2006 Jesse Keating - 2.14.4-2 - rebuilt for unwind info generation, broken in gcc-4.1.1-21 Index: sources =================================================================== RCS file: /cvs/dist/rpms/libgtop2/FC-6/sources,v retrieving revision 1.28 retrieving revision 1.29 diff -u -r1.28 -r1.29 --- sources 20 Sep 2006 20:43:24 -0000 1.28 +++ sources 2 Aug 2007 17:50:24 -0000 1.29 @@ -1 +1,2 @@ f13217814aed782b262e22735e5c02b2 libgtop-2.14.4.tar.bz2 +a228ccab58216f7fef97de9c2b6e328e libgtop-2.14.9.tar.bz2 From fedora-cvs-commits at redhat.com Thu Aug 2 18:09:08 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Thu, 2 Aug 2007 14:09:08 -0400 Subject: rpms/libgtop2/FC-6 libgtop2.spec,1.42,1.43 Message-ID: <200708021809.l72I98ex004819@cvs.devel.redhat.com> Author: sandmann Update of /cvs/dist/rpms/libgtop2/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv4805 Modified Files: libgtop2.spec Log Message: Buildrequire gtk-doc Index: libgtop2.spec =================================================================== RCS file: /cvs/dist/rpms/libgtop2/FC-6/libgtop2.spec,v retrieving revision 1.42 retrieving revision 1.43 diff -u -r1.42 -r1.43 --- libgtop2.spec 2 Aug 2007 17:50:24 -0000 1.42 +++ libgtop2.spec 2 Aug 2007 18:09:06 -0000 1.43 @@ -1,6 +1,7 @@ %define __libtoolize : %define glib2_version 2.0.1 +%define gtk_doc_version 1.4 %define po_package libgtop-2.0 @@ -18,6 +19,7 @@ BuildRequires: texinfo libtool gettext BuildRequires: intltool BuildRequires: autoconf automake +BuildRequires: gtk-doc >= %{gtk_doc_version} Patch: libgtop-2.0.2-prog_as.patch @@ -42,12 +44,12 @@ %build # prog_as patches configure.in libtoolize --force -aclocal-1.9 -automake-1.9 --add-missing +aclocal-1.10 +automake-1.10 --add-missing autoconf autoheader -%configure +%configure --disable-gtk-doc make %{?_smp_mflags} %install @@ -84,9 +86,13 @@ %{_libdir}/*.so %{_includedir}/libgtop-2.0 %{_libdir}/pkgconfig/*.pc +%{_datadir}/gtk-doc/* %changelog * Thu Aug 02 2007 Soren Sandmann - 2.14.9-1 +- BuildRequire gtk-doc, package documentation files in devel package + +* Thu Aug 02 2007 Soren Sandmann - 2.14.9-1 - Update to libgtop-2.14.9 for b.r.c 222637 CVE-2007-0235 * Sun Oct 01 2006 Jesse Keating - 2.14.4-2 From fedora-cvs-commits at redhat.com Thu Aug 2 18:13:32 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Thu, 2 Aug 2007 14:13:32 -0400 Subject: rpms/libgtop2/FC-6 libgtop2.spec,1.43,1.44 Message-ID: <200708021813.l72IDWmM005012@cvs.devel.redhat.com> Author: sandmann Update of /cvs/dist/rpms/libgtop2/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv4998 Modified Files: libgtop2.spec Log Message: Revert accidental auto* changes from 1.9 to 1.10 Index: libgtop2.spec =================================================================== RCS file: /cvs/dist/rpms/libgtop2/FC-6/libgtop2.spec,v retrieving revision 1.43 retrieving revision 1.44 diff -u -r1.43 -r1.44 --- libgtop2.spec 2 Aug 2007 18:09:06 -0000 1.43 +++ libgtop2.spec 2 Aug 2007 18:13:30 -0000 1.44 @@ -44,8 +44,8 @@ %build # prog_as patches configure.in libtoolize --force -aclocal-1.10 -automake-1.10 --add-missing +aclocal-1.9 +automake-1.9 --add-missing autoconf autoheader From fedora-cvs-commits at redhat.com Thu Aug 2 18:59:16 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Thu, 2 Aug 2007 14:59:16 -0400 Subject: rpms/gpart/FC-6 gpart.spec,1.8,1.9 Message-ID: <200708021859.l72IxG2O006527@cvs.devel.redhat.com> Author: dcantrel Update of /cvs/dist/rpms/gpart/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv6503 Modified Files: gpart.spec Log Message: License field updated to GPLv2+ Index: gpart.spec =================================================================== RCS file: /cvs/dist/rpms/gpart/FC-6/gpart.spec,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- gpart.spec 23 Oct 2006 21:37:36 -0000 1.8 +++ gpart.spec 2 Aug 2007 18:59:14 -0000 1.9 @@ -12,7 +12,7 @@ BuildRequires: glibc-kernheaders Buildroot: %{_tmppath}/%{name}-root -License: GPL +License: GPLv2+ Group: Applications/System %description From fedora-cvs-commits at redhat.com Thu Aug 2 19:11:41 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Thu, 2 Aug 2007 15:11:41 -0400 Subject: rpms/dhcp/FC-6 dhcp.spec,1.121,1.122 Message-ID: <200708021911.l72JBfrX007592@cvs.devel.redhat.com> Author: dcantrel Update of /cvs/dist/rpms/dhcp/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv7571 Modified Files: dhcp.spec Log Message: Change license short name to ISC. Index: dhcp.spec =================================================================== RCS file: /cvs/dist/rpms/dhcp/FC-6/dhcp.spec,v retrieving revision 1.121 retrieving revision 1.122 diff -u -r1.121 -r1.122 --- dhcp.spec 1 Apr 2007 15:48:55 -0000 1.121 +++ dhcp.spec 2 Aug 2007 19:11:39 -0000 1.122 @@ -10,7 +10,7 @@ Version: 3.0.5 Release: 4%{?dist} Epoch: 12 -License: distributable +License: ISC Group: System Environment/Daemons URL: http://isc.org/products/DHCP/ Source0: ftp://ftp.isc.org/isc/dhcp/dhcp-%{version}.tar.gz From fedora-cvs-commits at redhat.com Thu Aug 2 19:16:04 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Thu, 2 Aug 2007 15:16:04 -0400 Subject: rpms/dhcpv6/FC-6 dhcpv6.spec,1.43,1.44 Message-ID: <200708021916.l72JG43u007771@cvs.devel.redhat.com> Author: dcantrel Update of /cvs/dist/rpms/dhcpv6/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv7756 Modified Files: dhcpv6.spec Log Message: License for dhcpv6 is actually BSD, not GPL. Changed the field. Index: dhcpv6.spec =================================================================== RCS file: /cvs/dist/rpms/dhcpv6/FC-6/dhcpv6.spec,v retrieving revision 1.43 retrieving revision 1.44 diff -u -r1.43 -r1.44 --- dhcpv6.spec 29 Sep 2006 19:30:11 -0000 1.43 +++ dhcpv6.spec 2 Aug 2007 19:16:02 -0000 1.44 @@ -2,7 +2,7 @@ Name: dhcpv6 Version: 0.10 Release: 32%{?dist} -License: GPL +License: BSD Group: System Environment/Daemons URL: http://dhcpv6.sourceforge.net/ Source0: ftp://ftp.sourceforge.net/pub/sourceforge/d/dh/dhcp/dhcp-%{version}.tgz From fedora-cvs-commits at redhat.com Fri Aug 3 10:40:35 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Fri, 3 Aug 2007 06:40:35 -0400 Subject: rpms/strace/FC-6 .cvsignore, 1.21, 1.22 sources, 1.25, 1.26 strace.spec, 1.41, 1.42 Message-ID: <200708031040.l73AeZDm025978@cvs.devel.redhat.com> Author: roland Update of /cvs/dist/rpms/strace/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv25961 Modified Files: .cvsignore sources strace.spec Log Message: New upstream version 4.5.16 Index: .cvsignore =================================================================== RCS file: /cvs/dist/rpms/strace/FC-6/.cvsignore,v retrieving revision 1.21 retrieving revision 1.22 diff -u -r1.21 -r1.22 --- .cvsignore 17 Jan 2007 02:34:50 -0000 1.21 +++ .cvsignore 3 Aug 2007 10:40:33 -0000 1.22 @@ -1 +1 @@ -strace-4.5.15.tar.bz2 +strace-4.5.16.tar.bz2 Index: sources =================================================================== RCS file: /cvs/dist/rpms/strace/FC-6/sources,v retrieving revision 1.25 retrieving revision 1.26 diff -u -r1.25 -r1.26 --- sources 17 Jan 2007 02:34:50 -0000 1.25 +++ sources 3 Aug 2007 10:40:33 -0000 1.26 @@ -1 +1 @@ -ef40944118841803391d212cb64d3c5b strace-4.5.15.tar.bz2 +77f66d09aa82981bb6d65fa19a2c1ba9 strace-4.5.16.tar.bz2 Index: strace.spec =================================================================== RCS file: /cvs/dist/rpms/strace/FC-6/strace.spec,v retrieving revision 1.41 retrieving revision 1.42 diff -u -r1.41 -r1.42 --- strace.spec 17 Jan 2007 02:34:50 -0000 1.41 +++ strace.spec 3 Aug 2007 10:40:33 -0000 1.42 @@ -1,12 +1,12 @@ -Summary: Tracks and displays system calls associated with a running process. +Summary: Tracks and displays system calls associated with a running process Name: strace -Version: 4.5.15 +Version: 4.5.16 Release: 1%{?dist} License: BSD Group: Development/Debuggers URL: http://sourceforge.net/projects/strace/ Source0: http://dl.sourceforge.net/strace/%{name}-%{version}.tar.bz2 -BuildRoot: %{_tmppath}/%{name}-root +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) %define strace64_arches ppc64 @@ -44,13 +44,11 @@ %build %configure -make +make %{?_smp_mflags} %install rm -rf %{buildroot} -mkdir -p %{buildroot}%{_mandir}/man1 -mkdir -p %{buildroot}%{_bindir} -%makeinstall man1dir=%{buildroot}%{_mandir}/man1 +make DESTDIR=%{buildroot} install # remove unpackaged files from the buildroot rm -f %{buildroot}%{_bindir}/strace-graph @@ -64,6 +62,7 @@ %files %defattr(-,root,root) +%doc CREDITS ChangeLog COPYRIGHT NEWS PORTING README %{_bindir}/strace %{_mandir}/man1/* @@ -75,6 +74,16 @@ %changelog +* Fri Aug 3 2007 Roland McGrath - 4.5.16-1 +- fix multithread issues (#240962, #240961, #247907) +- fix spurious SIGSTOP on early interrupt (#240986) +- fix utime for biarch (#247185) +- fix -u error message (#247170) +- better futex syscall printing (##241467) +- fix argv/envp printing with small -s settings, and for biarch +- new syscalls: getcpu, eventfd, timerfd, signalfd, epoll_pwait, + move_pages, utimensat + * Tue Jan 16 2007 Roland McGrath - 4.5.15-1 - biarch fixes (#179740, #192193, #171626, #173050, #218433, #218043) - fix -ff -o behavior (#204950, #218435, #193808, #219423) @@ -372,7 +381,7 @@ - strace 3.1 patches carried along for now. * Sun May 16 1999 Jeff Johnson -- don't rely on (broken!) rpm %patch (#2735) +- don't rely on (broken!) rpm %%patch (#2735) * Tue Apr 06 1999 Preston Brown - strip binary From fedora-cvs-commits at redhat.com Fri Aug 3 13:01:04 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Fri, 3 Aug 2007 09:01:04 -0400 Subject: rpms/openssl/FC-6 openssl-0.9.7a-ssl-strict-matching.patch, NONE, 1.1 openssl-0.9.8b-cve-2007-3108.patch, NONE, 1.1 openssl-0.9.8b-test-use-localhost.patch, NONE, 1.1 openssl-0.9.8b-x509-add-dir.patch, NONE, 1.1 openssl.spec, 1.88, 1.89 Message-ID: <200708031301.l73D14WM027636@cvs.devel.redhat.com> Author: tmraz Update of /cvs/dist/rpms/openssl/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv27603 Modified Files: openssl.spec Added Files: openssl-0.9.7a-ssl-strict-matching.patch openssl-0.9.8b-cve-2007-3108.patch openssl-0.9.8b-test-use-localhost.patch openssl-0.9.8b-x509-add-dir.patch Log Message: * Fri Aug 3 2007 Tomas Mraz 0.9.8b-14 - use localhost in testsuite, hopefully fixes slow build in koji - CVE-2007-3108 - fix side channel attack on private keys (#250577) - make ssl session cache id matching strict (#233599) openssl-0.9.7a-ssl-strict-matching.patch: ssl_sess.c | 44 +++++++++++++++++++++++--------------------- 1 files changed, 23 insertions(+), 21 deletions(-) --- NEW FILE openssl-0.9.7a-ssl-strict-matching.patch --- *) In the SSL/TLS server implementation, be strict about session ID context matching (which matters if an application uses a single external cache for different purposes). Previously, out-of-context reuse was forbidden only if SSL_VERIFY_PEER was set. This did ensure strict client verification, but meant that, with applications using a single external cache for quite different requirements, clients could circumvent ciphersuite restrictions for a given session ID context by starting a session in a different context. diff -up openssl-0.9.7a/ssl/ssl_sess.c.strict-matching openssl-0.9.7a/ssl/ssl_sess.c --- openssl-0.9.7a/ssl/ssl_sess.c.strict-matching 2002-11-28 09:09:03.000000000 +0100 +++ openssl-0.9.7a/ssl/ssl_sess.c 2007-08-02 16:17:29.000000000 +0200 @@ -322,33 +322,35 @@ int ssl_get_prev_session(SSL *s, unsigne /* Now ret is non-NULL, and we own one of its reference counts. */ - if((s->verify_mode&SSL_VERIFY_PEER) - && (!s->sid_ctx_length || ret->sid_ctx_length != s->sid_ctx_length - || memcmp(ret->sid_ctx,s->sid_ctx,ret->sid_ctx_length))) - { + if (ret->sid_ctx_length != s->sid_ctx_length + || memcmp(ret->sid_ctx,s->sid_ctx,ret->sid_ctx_length)) + { /* We've found the session named by the client, but we don't * want to use it in this context. */ - - if (s->sid_ctx_length == 0) - { - /* application should have used SSL[_CTX]_set_session_id_context - * -- we could tolerate this and just pretend we never heard - * of this session, but then applications could effectively - * disable the session cache by accident without anyone noticing */ - SSLerr(SSL_F_SSL_GET_PREV_SESSION,SSL_R_SESSION_ID_CONTEXT_UNINITIALIZED); - fatal = 1; - goto err; - } - else - { #if 0 /* The client cannot always know when a session is not appropriate, - * so we shouldn't generate an error message. */ + * so we shouldn't generate an error message. */ - SSLerr(SSL_F_SSL_GET_PREV_SESSION,SSL_R_ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT); + SSLerr(SSL_F_SSL_GET_PREV_SESSION,SSL_R_ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT); #endif - goto err; /* treat like cache miss */ - } + goto err; /* treat like cache miss */ + } + + if((s->verify_mode & SSL_VERIFY_PEER) && s->sid_ctx_length == 0) + { + /* We can't be sure if this session is being used out of + * context, which is especially important for SSL_VERIFY_PEER. + * The application should have used SSL[_CTX]_set_session_id_context. + * + * For this error case, we generate an error instead of treating + * the event like a cache miss (otherwise it would be easy for + * applications to effectively disable the session cache by + * accident without anyone noticing). + */ + + SSLerr(SSL_F_SSL_GET_PREV_SESSION,SSL_R_SESSION_ID_CONTEXT_UNINITIALIZED); + fatal = 1; + goto err; } if (ret->cipher == NULL) openssl-0.9.8b-cve-2007-3108.patch: bn/bn.h | 15 ++- bn/bn_blind.c | 12 ++ bn/bn_div.c | 236 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++- bn/bn_gcd.c | 161 ++++++++++++++++++++++++++++++++++++++ bn/bn_lib.c | 2 bn/bn_mont.c | 69 ++++++++++------ rsa/rsa.h | 18 ++-- rsa/rsa_eay.c | 87 +++++++++++++++++---- rsa/rsa_gen.c | 33 +++++++ rsa/rsa_lib.c | 14 ++- rsa/rsa_test.c | 2 11 files changed, 585 insertions(+), 64 deletions(-) --- NEW FILE openssl-0.9.8b-cve-2007-3108.patch --- diff -up openssl-0.9.8b/crypto/rsa/rsa.h.no-branch openssl-0.9.8b/crypto/rsa/rsa.h --- openssl-0.9.8b/crypto/rsa/rsa.h.no-branch 2007-08-03 13:58:54.000000000 +0200 +++ openssl-0.9.8b/crypto/rsa/rsa.h 2007-08-03 13:58:58.000000000 +0200 @@ -189,13 +189,17 @@ struct rsa_st * default (ignoring RSA_FLAG_BLINDING), * but other engines might not need it */ -#define RSA_FLAG_NO_EXP_CONSTTIME 0x0100 /* new with 0.9.7h; the built-in RSA - * implementation now uses constant time - * modular exponentiation for secret exponents - * by default. This flag causes the - * faster variable sliding window method to - * be used for all exponents. - */ +#define RSA_FLAG_NO_CONSTTIME 0x0100 /* new with 0.9.8f; the built-in RSA + * implementation now uses constant time + * operations by default in private key operations, + * e.g., constant time modular exponentiation, + * modular inverse without leaking branches, + * division without leaking branches. This + * flag disables these constant time + * operations and results in faster RSA + * private key operations. + */ +#define RSA_FLAG_NO_EXP_CONSTTIME RSA_FLAG_NO_CONSTTIME /* deprecated name for the flag*/ #define RSA_PKCS1_PADDING 1 #define RSA_SSLV23_PADDING 2 diff -up openssl-0.9.8b/crypto/rsa/rsa_lib.c.no-branch openssl-0.9.8b/crypto/rsa/rsa_lib.c --- openssl-0.9.8b/crypto/rsa/rsa_lib.c.no-branch 2005-11-25 15:26:12.000000000 +0100 +++ openssl-0.9.8b/crypto/rsa/rsa_lib.c 2007-08-03 13:58:58.000000000 +0200 @@ -361,7 +361,8 @@ err: BN_BLINDING *RSA_setup_blinding(RSA *rsa, BN_CTX *in_ctx) { - BIGNUM *e; + BIGNUM local_n; + BIGNUM *e,*n; BN_CTX *ctx; BN_BLINDING *ret = NULL; @@ -400,7 +401,16 @@ BN_BLINDING *RSA_setup_blinding(RSA *rsa RAND_add(rsa->d->d, rsa->d->dmax * sizeof rsa->d->d[0], 0.0); } - ret = BN_BLINDING_create_param(NULL, e, rsa->n, ctx, + if (!(rsa->flags & RSA_FLAG_NO_CONSTTIME)) + { + /* Set BN_FLG_CONSTTIME flag */ + n = &local_n; + BN_with_flags(n, rsa->n, BN_FLG_CONSTTIME); + } + else + n = rsa->n; + + ret = BN_BLINDING_create_param(NULL, e, n, ctx, rsa->meth->bn_mod_exp, rsa->_method_mod_n); if (ret == NULL) { diff -up openssl-0.9.8b/crypto/rsa/rsa_gen.c.no-branch openssl-0.9.8b/crypto/rsa/rsa_gen.c --- openssl-0.9.8b/crypto/rsa/rsa_gen.c.no-branch 2006-03-14 00:12:08.000000000 +0100 +++ openssl-0.9.8b/crypto/rsa/rsa_gen.c 2007-08-03 13:58:58.000000000 +0200 @@ -85,6 +85,8 @@ int RSA_generate_key_ex(RSA *rsa, int bi static int rsa_builtin_keygen(RSA *rsa, int bits, BIGNUM *e_value, BN_GENCB *cb) { BIGNUM *r0=NULL,*r1=NULL,*r2=NULL,*r3=NULL,*tmp; + BIGNUM local_r0,local_d,local_p; + BIGNUM *pr0,*d,*p; int bitsp,bitsq,ok= -1,n=0; BN_CTX *ctx=NULL; @@ -165,16 +167,39 @@ static int rsa_builtin_keygen(RSA *rsa, if (!BN_sub(r1,rsa->p,BN_value_one())) goto err; /* p-1 */ if (!BN_sub(r2,rsa->q,BN_value_one())) goto err; /* q-1 */ if (!BN_mul(r0,r1,r2,ctx)) goto err; /* (p-1)(q-1) */ - if (!BN_mod_inverse(rsa->d,rsa->e,r0,ctx)) goto err; /* d */ + if (!(rsa->flags & RSA_FLAG_NO_CONSTTIME)) + { + pr0 = &local_r0; + BN_with_flags(pr0, r0, BN_FLG_CONSTTIME); + } + else + pr0 = r0; + if (!BN_mod_inverse(rsa->d,rsa->e,pr0,ctx)) goto err; /* d */ + + /* set up d for correct BN_FLG_CONSTTIME flag */ + if (!(rsa->flags & RSA_FLAG_NO_CONSTTIME)) + { + d = &local_d; + BN_with_flags(d, rsa->d, BN_FLG_CONSTTIME); + } + else + d = rsa->d; /* calculate d mod (p-1) */ - if (!BN_mod(rsa->dmp1,rsa->d,r1,ctx)) goto err; + if (!BN_mod(rsa->dmp1,d,r1,ctx)) goto err; /* calculate d mod (q-1) */ - if (!BN_mod(rsa->dmq1,rsa->d,r2,ctx)) goto err; + if (!BN_mod(rsa->dmq1,d,r2,ctx)) goto err; /* calculate inverse of q mod p */ - if (!BN_mod_inverse(rsa->iqmp,rsa->q,rsa->p,ctx)) goto err; + if (!(rsa->flags & RSA_FLAG_NO_CONSTTIME)) + { + p = &local_p; + BN_with_flags(p, rsa->p, BN_FLG_CONSTTIME); + } + else + p = rsa->p; + if (!BN_mod_inverse(rsa->iqmp,rsa->q,p,ctx)) goto err; ok=1; err: diff -up openssl-0.9.8b/crypto/rsa/rsa_eay.c.no-branch openssl-0.9.8b/crypto/rsa/rsa_eay.c --- openssl-0.9.8b/crypto/rsa/rsa_eay.c.no-branch 2007-08-03 13:58:54.000000000 +0200 +++ openssl-0.9.8b/crypto/rsa/rsa_eay.c 2007-08-03 13:58:58.000000000 +0200 @@ -429,11 +429,11 @@ static int RSA_eay_private_encrypt(int f BIGNUM local_d; BIGNUM *d = NULL; - if (!(rsa->flags & RSA_FLAG_NO_EXP_CONSTTIME)) + if (!(rsa->flags & RSA_FLAG_NO_CONSTTIME)) { BN_init(&local_d); d = &local_d; - BN_with_flags(d, rsa->d, BN_FLG_EXP_CONSTTIME); + BN_with_flags(d, rsa->d, BN_FLG_CONSTTIME); } else d = rsa->d; @@ -551,10 +551,10 @@ static int RSA_eay_private_decrypt(int f BIGNUM local_d; BIGNUM *d = NULL; - if (!(rsa->flags & RSA_FLAG_NO_EXP_CONSTTIME)) + if (!(rsa->flags & RSA_FLAG_NO_CONSTTIME)) { d = &local_d; - BN_with_flags(d, rsa->d, BN_FLG_EXP_CONSTTIME); + BN_with_flags(d, rsa->d, BN_FLG_CONSTTIME); } else d = rsa->d; @@ -724,8 +724,9 @@ err: static int RSA_eay_mod_exp(BIGNUM *r0, const BIGNUM *I, RSA *rsa, BN_CTX *ctx) { BIGNUM *r1,*m1,*vrfy; - BIGNUM local_dmp1, local_dmq1; - BIGNUM *dmp1, *dmq1; + BIGNUM local_dmp1,local_dmq1,local_c,local_r1; + BIGNUM *dmp1,*dmq1,*c,*pr1; + int bn_flags; int ret=0; BN_CTX_start(ctx); @@ -733,26 +734,72 @@ static int RSA_eay_mod_exp(BIGNUM *r0, c m1 = BN_CTX_get(ctx); vrfy = BN_CTX_get(ctx); + /* Make sure mod_inverse in montgomerey intialization use correct + * BN_FLG_CONSTTIME flag. + */ + bn_flags = rsa->p->flags; + if (!(rsa->flags & RSA_FLAG_NO_CONSTTIME)) + { + rsa->p->flags |= BN_FLG_CONSTTIME; + } MONT_HELPER(rsa, ctx, p, rsa->flags & RSA_FLAG_CACHE_PRIVATE, goto err); + /* We restore bn_flags back */ + rsa->p->flags = bn_flags; + + /* Make sure mod_inverse in montgomerey intialization use correct + * BN_FLG_CONSTTIME flag. + */ + bn_flags = rsa->q->flags; + if (!(rsa->flags & RSA_FLAG_NO_CONSTTIME)) + { + rsa->q->flags |= BN_FLG_CONSTTIME; + } MONT_HELPER(rsa, ctx, q, rsa->flags & RSA_FLAG_CACHE_PRIVATE, goto err); + /* We restore bn_flags back */ + rsa->q->flags = bn_flags; + MONT_HELPER(rsa, ctx, n, rsa->flags & RSA_FLAG_CACHE_PUBLIC, goto err); - if (!BN_mod(r1,I,rsa->q,ctx)) goto err; - if (!(rsa->flags & RSA_FLAG_NO_EXP_CONSTTIME)) + /* compute I mod q */ + if (!(rsa->flags & RSA_FLAG_NO_CONSTTIME)) + { + c = &local_c; + BN_with_flags(c, I, BN_FLG_CONSTTIME); + if (!BN_mod(r1,c,rsa->q,ctx)) goto err; + } + else + { + if (!BN_mod(r1,I,rsa->q,ctx)) goto err; + } + + /* compute r1^dmq1 mod q */ + if (!(rsa->flags & RSA_FLAG_NO_CONSTTIME)) { dmq1 = &local_dmq1; - BN_with_flags(dmq1, rsa->dmq1, BN_FLG_EXP_CONSTTIME); + BN_with_flags(dmq1, rsa->dmq1, BN_FLG_CONSTTIME); } else dmq1 = rsa->dmq1; if (!rsa->meth->bn_mod_exp(m1,r1,dmq1,rsa->q,ctx, rsa->_method_mod_q)) goto err; - if (!BN_mod(r1,I,rsa->p,ctx)) goto err; - if (!(rsa->flags & RSA_FLAG_NO_EXP_CONSTTIME)) + /* compute I mod p */ + if (!(rsa->flags & RSA_FLAG_NO_CONSTTIME)) + { + c = &local_c; + BN_with_flags(c, I, BN_FLG_CONSTTIME); + if (!BN_mod(r1,c,rsa->p,ctx)) goto err; + } + else + { + if (!BN_mod(r1,I,rsa->p,ctx)) goto err; + } + + /* compute r1^dmp1 mod p */ + if (!(rsa->flags & RSA_FLAG_NO_CONSTTIME)) { dmp1 = &local_dmp1; - BN_with_flags(dmp1, rsa->dmp1, BN_FLG_EXP_CONSTTIME); + BN_with_flags(dmp1, rsa->dmp1, BN_FLG_CONSTTIME); } else dmp1 = rsa->dmp1; @@ -766,7 +813,17 @@ static int RSA_eay_mod_exp(BIGNUM *r0, c if (!BN_add(r0,r0,rsa->p)) goto err; if (!BN_mul(r1,r0,rsa->iqmp,ctx)) goto err; - if (!BN_mod(r0,r1,rsa->p,ctx)) goto err; + + /* Turn BN_FLG_CONSTTIME flag on before division operation */ + if (!(rsa->flags & RSA_FLAG_NO_CONSTTIME)) + { + pr1 = &local_r1; + BN_with_flags(pr1, r1, BN_FLG_CONSTTIME); + } + else + pr1 = r1; + if (!BN_mod(r0,pr1,rsa->p,ctx)) goto err; + /* If p < q it is occasionally possible for the correction of * adding 'p' if r0 is negative above to leave the result still * negative. This can break the private key operations: the following @@ -799,10 +856,10 @@ static int RSA_eay_mod_exp(BIGNUM *r0, c BIGNUM local_d; BIGNUM *d = NULL; - if (!(rsa->flags & RSA_FLAG_NO_EXP_CONSTTIME)) + if (!(rsa->flags & RSA_FLAG_NO_CONSTTIME)) { d = &local_d; - BN_with_flags(d, rsa->d, BN_FLG_EXP_CONSTTIME); + BN_with_flags(d, rsa->d, BN_FLG_CONSTTIME); } else d = rsa->d; diff -up openssl-0.9.8b/crypto/rsa/rsa_test.c.no-branch openssl-0.9.8b/crypto/rsa/rsa_test.c --- openssl-0.9.8b/crypto/rsa/rsa_test.c.no-branch 2005-05-16 03:43:31.000000000 +0200 +++ openssl-0.9.8b/crypto/rsa/rsa_test.c 2007-08-03 13:58:58.000000000 +0200 @@ -242,7 +242,7 @@ int main(int argc, char *argv[]) clen = key3(key, ctext_ex); break; } - if (v/3 > 1) key->flags |= RSA_FLAG_NO_EXP_CONSTTIME; + if (v/3 >= 1) key->flags |= RSA_FLAG_NO_CONSTTIME; num = RSA_public_encrypt(plen, ptext_ex, ctext, key, RSA_PKCS1_PADDING); diff -up openssl-0.9.8b/crypto/bn/bn.h.no-branch openssl-0.9.8b/crypto/bn/bn.h --- openssl-0.9.8b/crypto/bn/bn.h.no-branch 2007-08-03 13:58:54.000000000 +0200 +++ openssl-0.9.8b/crypto/bn/bn.h 2007-08-03 13:58:58.000000000 +0200 @@ -245,8 +245,15 @@ extern "C" { #define BN_FLG_MALLOCED 0x01 #define BN_FLG_STATIC_DATA 0x02 -#define BN_FLG_EXP_CONSTTIME 0x04 /* avoid leaking exponent information through timings - * (BN_mod_exp_mont() will call BN_mod_exp_mont_consttime) */ +#define BN_FLG_CONSTTIME 0x04 /* avoid leaking exponent information through timing, + * BN_mod_exp_mont() will call BN_mod_exp_mont_consttime, + * BN_div() will call BN_div_no_branch, + * BN_mod_inverse() will call BN_mod_inverse_no_branch. + */ +#define BN_FLG_EXP_CONSTTIME BN_FLG_CONSTTIME /* deprecated name for the flag */ + /* avoid leaking exponent information through timings + * (BN_mod_exp_mont() will call BN_mod_exp_mont_consttime) */ + #ifndef OPENSSL_NO_DEPRECATED #define BN_FLG_FREE 0x8000 /* used for debuging */ #endif @@ -534,7 +541,7 @@ BN_MONT_CTX *BN_MONT_CTX_set_locked(BN_M #define BN_BLINDING_NO_UPDATE 0x00000001 #define BN_BLINDING_NO_RECREATE 0x00000002 -BN_BLINDING *BN_BLINDING_new(const BIGNUM *A, const BIGNUM *Ai, BIGNUM *mod); +BN_BLINDING *BN_BLINDING_new(const BIGNUM *A, const BIGNUM *Ai, /* const */ BIGNUM *mod); void BN_BLINDING_free(BN_BLINDING *b); int BN_BLINDING_update(BN_BLINDING *b,BN_CTX *ctx); int BN_BLINDING_convert(BIGNUM *n, BN_BLINDING *b, BN_CTX *ctx); @@ -546,7 +553,7 @@ void BN_BLINDING_set_thread_id(BN_BLINDI unsigned long BN_BLINDING_get_flags(const BN_BLINDING *); void BN_BLINDING_set_flags(BN_BLINDING *, unsigned long); BN_BLINDING *BN_BLINDING_create_param(BN_BLINDING *b, - const BIGNUM *e, BIGNUM *m, BN_CTX *ctx, + const BIGNUM *e, /* const */ BIGNUM *m, BN_CTX *ctx, int (*bn_mod_exp)(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx), BN_MONT_CTX *m_ctx); diff -up openssl-0.9.8b/crypto/bn/bn_mont.c.no-branch openssl-0.9.8b/crypto/bn/bn_mont.c --- openssl-0.9.8b/crypto/bn/bn_mont.c.no-branch 2007-08-03 13:58:54.000000000 +0200 +++ openssl-0.9.8b/crypto/bn/bn_mont.c 2007-08-03 13:58:58.000000000 +0200 @@ -159,6 +159,7 @@ int BN_from_montgomery(BIGNUM *ret, cons BIGNUM *n,*r; BN_ULONG *ap,*np,*rp,n0,v,*nrp; int al,nl,max,i,x,ri; + size_t m1,m2; BN_CTX_start(ctx); if ((r = BN_CTX_get(ctx)) == NULL) goto err; @@ -176,7 +177,6 @@ int BN_from_montgomery(BIGNUM *ret, cons max=(nl+al+1); /* allow for overflow (no?) XXX */ if (bn_wexpand(r,max) == NULL) goto err; - if (bn_wexpand(ret,max) == NULL) goto err; r->neg=a->neg^n->neg; np=n->d; @@ -228,37 +228,56 @@ int BN_from_montgomery(BIGNUM *ret, cons } bn_correct_top(r); - /* mont->ri will be a multiple of the word size */ -#if 0 - BN_rshift(ret,r,mont->ri); -#else + /* mont->ri will be a multiple of the word size and below code + * is kind of BN_rshift(ret,r,mont->ri) equivalent */ + if (r->top <= ri) + { + ret->top=0; + retn=1; + goto err; + } + al=r->top-ri; + if (bn_wexpand(ret,ri) == NULL) goto err; + x=0-(((al-ri)>>(sizeof(al)*8-1))&1); + ret->top=x=(ri&~x)|(al&x); /* min(ri,al) */ ret->neg = r->neg; - x=ri; + rp=ret->d; - ap= &(r->d[x]); - if (r->top < x) - al=0; - else - al=r->top-x; - ret->top=al; - al-=4; - for (i=0; id[ri]); + + v=bn_sub_words(rp,ap,np,ri); + /* this -----------------------^^ works even in alri) nrp=rp; else nrp=ap; */ + /* in other words if subtraction result is real, then + * trick unconditional memcpy below to perform in-place + * "refresh" instead of actual copy. */ + m1=0-(size_t)(((al-ri)>>(sizeof(al)*8-1))&1); /* al>(sizeof(al)*8-1))&1); /* al>ri */ + m1|=m2; /* (al!=ri) */ + m1|=(0-(size_t)v); /* (al!=ri || v) */ + m1&=~m2; /* (al!=ri || v) && !al>ri */ + nrp=(BN_ULONG *)(((size_t)rp&~m1)|((size_t)ap&m1)); + + /* 'iN,ctx)) goto err; if (!BN_add(t2,a,t1)) goto err; if (!BN_rshift(ret,t2,mont->ri)) goto err; -#endif /* MONT_WORD */ if (BN_ucmp(ret, &(mont->N)) >= 0) { if (!BN_usub(ret,ret,&(mont->N))) goto err; } +#endif /* MONT_WORD */ retn=1; bn_check_top(ret); err: diff -up openssl-0.9.8b/crypto/bn/bn_lib.c.no-branch openssl-0.9.8b/crypto/bn/bn_lib.c --- openssl-0.9.8b/crypto/bn/bn_lib.c.no-branch 2005-05-03 22:27:00.000000000 +0200 +++ openssl-0.9.8b/crypto/bn/bn_lib.c 2007-08-03 13:58:58.000000000 +0200 @@ -763,7 +763,7 @@ int BN_is_bit_set(const BIGNUM *a, int n i=n/BN_BITS2; j=n%BN_BITS2; if (a->top <= i) return 0; - return((a->d[i]&(((BN_ULONG)1)<d[i])>>j)&((BN_ULONG)1)); } int BN_mask_bits(BIGNUM *a, int n) diff -up openssl-0.9.8b/crypto/bn/bn_blind.c.no-branch openssl-0.9.8b/crypto/bn/bn_blind.c --- openssl-0.9.8b/crypto/bn/bn_blind.c.no-branch 2005-05-26 06:30:48.000000000 +0200 +++ openssl-0.9.8b/crypto/bn/bn_blind.c 2007-08-03 13:58:58.000000000 +0200 @@ -131,7 +131,7 @@ struct bn_blinding_st BN_MONT_CTX *m_ctx); }; -BN_BLINDING *BN_BLINDING_new(const BIGNUM *A, const BIGNUM *Ai, BIGNUM *mod) +BN_BLINDING *BN_BLINDING_new(const BIGNUM *A, const BIGNUM *Ai, /* const */ BIGNUM *mod) { BN_BLINDING *ret=NULL; @@ -151,7 +151,12 @@ BN_BLINDING *BN_BLINDING_new(const BIGNU { if ((ret->Ai = BN_dup(Ai)) == NULL) goto err; } - ret->mod = mod; + + /* save a copy of mod in the BN_BLINDING structure */ + if ((ret->mod = BN_dup(mod)) == NULL) goto err; + if (BN_get_flags(mod, BN_FLG_CONSTTIME) != 0) + BN_set_flags(ret->mod, BN_FLG_CONSTTIME); + ret->counter = BN_BLINDING_COUNTER; return(ret); err: @@ -167,6 +172,7 @@ void BN_BLINDING_free(BN_BLINDING *r) if (r->A != NULL) BN_free(r->A ); if (r->Ai != NULL) BN_free(r->Ai); if (r->e != NULL) BN_free(r->e ); + if (r->mod != NULL) BN_free(r->mod); OPENSSL_free(r); } @@ -278,7 +284,7 @@ void BN_BLINDING_set_flags(BN_BLINDING * } BN_BLINDING *BN_BLINDING_create_param(BN_BLINDING *b, - const BIGNUM *e, BIGNUM *m, BN_CTX *ctx, + const BIGNUM *e, /* const */ BIGNUM *m, BN_CTX *ctx, int (*bn_mod_exp)(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx), BN_MONT_CTX *m_ctx) diff -up openssl-0.9.8b/crypto/bn/bn_div.c.no-branch openssl-0.9.8b/crypto/bn/bn_div.c --- openssl-0.9.8b/crypto/bn/bn_div.c.no-branch 2005-08-29 01:20:43.000000000 +0200 +++ openssl-0.9.8b/crypto/bn/bn_div.c 2007-08-03 13:58:58.000000000 +0200 @@ -169,13 +169,15 @@ int BN_div(BIGNUM *dv, BIGNUM *rem, cons #endif /* OPENSSL_NO_ASM */ -/* BN_div computes dv := num / divisor, rounding towards zero, and sets up - * rm such that dv*divisor + rm = num holds. +/* BN_div[_no_branch] computes dv := num / divisor, rounding towards + * zero, and sets up rm such that dv*divisor + rm = num holds. * Thus: * dv->neg == num->neg ^ divisor->neg (unless the result is zero) * rm->neg == num->neg (unless the remainder is zero) * If 'dv' or 'rm' is NULL, the respective value is not returned. */ +static int BN_div_no_branch(BIGNUM *dv, BIGNUM *rm, const BIGNUM *num, + const BIGNUM *divisor, BN_CTX *ctx); int BN_div(BIGNUM *dv, BIGNUM *rm, const BIGNUM *num, const BIGNUM *divisor, BN_CTX *ctx) { @@ -185,6 +187,11 @@ int BN_div(BIGNUM *dv, BIGNUM *rm, const BN_ULONG d0,d1; int num_n,div_n; + if (BN_get_flags(num, BN_FLG_CONSTTIME) != 0) + { + return BN_div_no_branch(dv, rm, num, divisor, ctx); + } + bn_check_top(dv); bn_check_top(rm); bn_check_top(num); @@ -397,4 +404,229 @@ err: return(0); } + +/* BN_div_no_branch is a special version of BN_div. It does not contain + * branches that may leak sensitive information. + */ +static int BN_div_no_branch(BIGNUM *dv, BIGNUM *rm, const BIGNUM *num, + const BIGNUM *divisor, BN_CTX *ctx) + { + int norm_shift,i,loop; + BIGNUM *tmp,wnum,*snum,*sdiv,*res; + BN_ULONG *resp,*wnump; + BN_ULONG d0,d1; + int num_n,div_n; + + bn_check_top(dv); + bn_check_top(rm); + bn_check_top(num); + bn_check_top(divisor); + + if (BN_is_zero(divisor)) + { + BNerr(BN_F_BN_DIV,BN_R_DIV_BY_ZERO); + return(0); + } + + BN_CTX_start(ctx); + tmp=BN_CTX_get(ctx); + snum=BN_CTX_get(ctx); + sdiv=BN_CTX_get(ctx); + if (dv == NULL) + res=BN_CTX_get(ctx); + else res=dv; + if (sdiv == NULL || res == NULL) goto err; + + /* First we normalise the numbers */ + norm_shift=BN_BITS2-((BN_num_bits(divisor))%BN_BITS2); + if (!(BN_lshift(sdiv,divisor,norm_shift))) goto err; + sdiv->neg=0; + norm_shift+=BN_BITS2; + if (!(BN_lshift(snum,num,norm_shift))) goto err; + snum->neg=0; + + /* Since we don't know whether snum is larger than sdiv, + * we pad snum with enough zeroes without changing its + * value. + */ + if (snum->top <= sdiv->top+1) + { + if (bn_wexpand(snum, sdiv->top + 2) == NULL) goto err; + for (i = snum->top; i < sdiv->top + 2; i++) snum->d[i] = 0; + snum->top = sdiv->top + 2; + } + else + { + if (bn_wexpand(snum, snum->top + 1) == NULL) goto err; + snum->d[snum->top] = 0; + snum->top ++; + } + + div_n=sdiv->top; + num_n=snum->top; + loop=num_n-div_n; + /* Lets setup a 'window' into snum + * This is the part that corresponds to the current + * 'area' being divided */ + wnum.neg = 0; + wnum.d = &(snum->d[loop]); + wnum.top = div_n; + /* only needed when BN_ucmp messes up the values between top and max */ + wnum.dmax = snum->dmax - loop; /* so we don't step out of bounds */ + + /* Get the top 2 words of sdiv */ + /* div_n=sdiv->top; */ + d0=sdiv->d[div_n-1]; + d1=(div_n == 1)?0:sdiv->d[div_n-2]; + + /* pointer to the 'top' of snum */ + wnump= &(snum->d[num_n-1]); + + /* Setup to 'res' */ + res->neg= (num->neg^divisor->neg); + if (!bn_wexpand(res,(loop+1))) goto err; + res->top=loop-1; + resp= &(res->d[loop-1]); + + /* space for temp */ + if (!bn_wexpand(tmp,(div_n+1))) goto err; + + /* if res->top == 0 then clear the neg value otherwise decrease + * the resp pointer */ + if (res->top == 0) + res->neg = 0; + else + resp--; + + for (i=0; i 0x%08X\n", + n0, n1, d0, q); +#endif +#endif + +#ifndef REMAINDER_IS_ALREADY_CALCULATED + /* + * rem doesn't have to be BN_ULLONG. The least we + * know it's less that d0, isn't it? + */ + rem=(n1-q*d0)&BN_MASK2; +#endif + t2=(BN_ULLONG)d1*q; + + for (;;) + { + if (t2 <= ((((BN_ULLONG)rem)< 0x%08X\n", + n0, n1, d0, q); +#endif +#ifndef REMAINDER_IS_ALREADY_CALCULATED + rem=(n1-q*d0)&BN_MASK2; +#endif + +#if defined(BN_UMULT_LOHI) + BN_UMULT_LOHI(t2l,t2h,d1,q); +#elif defined(BN_UMULT_HIGH) + t2l = d1 * q; + t2h = BN_UMULT_HIGH(d1,q); +#else + t2l=LBITS(d1); t2h=HBITS(d1); + ql =LBITS(q); qh =HBITS(q); + mul64(t2l,t2h,ql,qh); /* t2=(BN_ULLONG)d1*q; */ +#endif + + for (;;) + { + if ((t2h < rem) || + ((t2h == rem) && (t2l <= wnump[-2]))) + break; + q--; + rem += d0; + if (rem < d0) break; /* don't let rem overflow */ + if (t2l < d1) t2h--; t2l -= d1; + } +#endif /* !BN_LLONG */ + } +#endif /* !BN_DIV3W */ + + l0=bn_mul_words(tmp->d,sdiv->d,div_n,q); + tmp->d[div_n]=l0; + wnum.d--; + /* ingore top values of the bignums just sub the two + * BN_ULONG arrays with bn_sub_words */ + if (bn_sub_words(wnum.d, wnum.d, tmp->d, div_n+1)) + { + /* Note: As we have considered only the leading + * two BN_ULONGs in the calculation of q, sdiv * q + * might be greater than wnum (but then (q-1) * sdiv + * is less or equal than wnum) + */ + q--; + if (bn_add_words(wnum.d, wnum.d, sdiv->d, div_n)) + /* we can't have an overflow here (assuming + * that q != 0, but if q == 0 then tmp is + * zero anyway) */ + (*wnump)++; + } + /* store part of the result */ + *resp = q; + } + bn_correct_top(snum); + if (rm != NULL) + { + /* Keep a copy of the neg flag in num because if rm==num + * BN_rshift() will overwrite it. + */ + int neg = num->neg; + BN_rshift(rm,snum,norm_shift); + if (!BN_is_zero(rm)) + rm->neg = neg; + bn_check_top(rm); + } + bn_correct_top(res); + BN_CTX_end(ctx); + return(1); +err: + bn_check_top(rm); + BN_CTX_end(ctx); + return(0); + } + #endif diff -up openssl-0.9.8b/crypto/bn/bn_gcd.c.no-branch openssl-0.9.8b/crypto/bn/bn_gcd.c --- openssl-0.9.8b/crypto/bn/bn_gcd.c.no-branch 2005-08-29 01:20:43.000000000 +0200 +++ openssl-0.9.8b/crypto/bn/bn_gcd.c 2007-08-03 13:58:58.000000000 +0200 @@ -203,6 +203,8 @@ err: /* solves ax == 1 (mod n) */ +static BIGNUM *BN_mod_inverse_no_branch(BIGNUM *in, + const BIGNUM *a, const BIGNUM *n, BN_CTX *ctx); BIGNUM *BN_mod_inverse(BIGNUM *in, const BIGNUM *a, const BIGNUM *n, BN_CTX *ctx) { @@ -210,6 +212,11 @@ BIGNUM *BN_mod_inverse(BIGNUM *in, BIGNUM *ret=NULL; int sign; + if (BN_get_flags(n, BN_FLG_CONSTTIME) != 0) + { + return BN_mod_inverse_no_branch(in, a, n, ctx); + } + bn_check_top(a); bn_check_top(n); @@ -491,3 +498,157 @@ err: bn_check_top(ret); return(ret); } + + +/* BN_mod_inverse_no_branch is a special version of BN_mod_inverse. + * It does not contain branches that may leak sensitive information. + */ +static BIGNUM *BN_mod_inverse_no_branch(BIGNUM *in, + const BIGNUM *a, const BIGNUM *n, BN_CTX *ctx) + { + BIGNUM *A,*B,*X,*Y,*M,*D,*T,*R=NULL; + BIGNUM local_A, local_B; + BIGNUM *pA, *pB; + BIGNUM *ret=NULL; + int sign; + + bn_check_top(a); + bn_check_top(n); + + BN_CTX_start(ctx); + A = BN_CTX_get(ctx); + B = BN_CTX_get(ctx); + X = BN_CTX_get(ctx); + D = BN_CTX_get(ctx); + M = BN_CTX_get(ctx); + Y = BN_CTX_get(ctx); + T = BN_CTX_get(ctx); + if (T == NULL) goto err; + + if (in == NULL) + R=BN_new(); + else + R=in; + if (R == NULL) goto err; + + BN_one(X); + BN_zero(Y); + if (BN_copy(B,a) == NULL) goto err; + if (BN_copy(A,n) == NULL) goto err; + A->neg = 0; + + if (B->neg || (BN_ucmp(B, A) >= 0)) + { + /* Turn BN_FLG_CONSTTIME flag on, so that when BN_div is invoked, + * BN_div_no_branch will be called eventually. + */ + pB = &local_B; + BN_with_flags(pB, B, BN_FLG_CONSTTIME); + if (!BN_nnmod(B, pB, A, ctx)) goto err; + } + sign = -1; + /* From B = a mod |n|, A = |n| it follows that + * + * 0 <= B < A, + * -sign*X*a == B (mod |n|), + * sign*Y*a == A (mod |n|). + */ + + while (!BN_is_zero(B)) + { + BIGNUM *tmp; + + /* + * 0 < B < A, + * (*) -sign*X*a == B (mod |n|), + * sign*Y*a == A (mod |n|) + */ + + /* Turn BN_FLG_CONSTTIME flag on, so that when BN_div is invoked, + * BN_div_no_branch will be called eventually. + */ + pA = &local_A; + BN_with_flags(pA, A, BN_FLG_CONSTTIME); + + /* (D, M) := (A/B, A%B) ... */ + if (!BN_div(D,M,pA,B,ctx)) goto err; + + /* Now + * A = D*B + M; + * thus we have + * (**) sign*Y*a == D*B + M (mod |n|). + */ + + tmp=A; /* keep the BIGNUM object, the value does not matter */ + + /* (A, B) := (B, A mod B) ... */ + A=B; + B=M; + /* ... so we have 0 <= B < A again */ + + /* Since the former M is now B and the former B is now A, + * (**) translates into + * sign*Y*a == D*A + B (mod |n|), + * i.e. + * sign*Y*a - D*A == B (mod |n|). + * Similarly, (*) translates into + * -sign*X*a == A (mod |n|). + * + * Thus, + * sign*Y*a + D*sign*X*a == B (mod |n|), + * i.e. + * sign*(Y + D*X)*a == B (mod |n|). + * + * So if we set (X, Y, sign) := (Y + D*X, X, -sign), we arrive back at + * -sign*X*a == B (mod |n|), + * sign*Y*a == A (mod |n|). + * Note that X and Y stay non-negative all the time. + */ + + if (!BN_mul(tmp,D,X,ctx)) goto err; + if (!BN_add(tmp,tmp,Y)) goto err; + + M=Y; /* keep the BIGNUM object, the value does not matter */ + Y=X; + X=tmp; + sign = -sign; + } + + /* + * The while loop (Euclid's algorithm) ends when + * A == gcd(a,n); + * we have + * sign*Y*a == A (mod |n|), + * where Y is non-negative. + */ + + if (sign < 0) + { + if (!BN_sub(Y,n,Y)) goto err; + } + /* Now Y*a == A (mod |n|). */ + + if (BN_is_one(A)) + { + /* Y*a == 1 (mod |n|) */ + if (!Y->neg && BN_ucmp(Y,n) < 0) + { + if (!BN_copy(R,Y)) goto err; + } + else + { + if (!BN_nnmod(R,Y,n,ctx)) goto err; + } + } + else + { + BNerr(BN_F_BN_MOD_INVERSE,BN_R_NO_INVERSE); + goto err; + } + ret=R; +err: + if ((ret == NULL) && (in == NULL)) BN_free(R); + BN_CTX_end(ctx); + bn_check_top(ret); + return(ret); + } openssl-0.9.8b-test-use-localhost.patch: ssltest.c | 13 +------------ 1 files changed, 1 insertion(+), 12 deletions(-) --- NEW FILE openssl-0.9.8b-test-use-localhost.patch --- diff -up openssl-0.9.8b/ssl/ssltest.c.use-localhost openssl-0.9.8b/ssl/ssltest.c --- openssl-0.9.8b/ssl/ssltest.c.use-localhost 2006-02-24 18:58:35.000000000 +0100 +++ openssl-0.9.8b/ssl/ssltest.c 2007-08-03 14:06:16.000000000 +0200 @@ -839,19 +839,8 @@ bad: #ifndef OPENSSL_NO_KRB5 if (c_ssl && c_ssl->kssl_ctx) { - char localhost[MAXHOSTNAMELEN+2]; - - if (gethostname(localhost, sizeof localhost-1) == 0) - { - localhost[sizeof localhost-1]='\0'; - if(strlen(localhost) == sizeof localhost-1) - { - BIO_printf(bio_err,"localhost name too long\n"); - goto end; - } kssl_ctx_setstring(c_ssl->kssl_ctx, KSSL_SERVER, - localhost); - } + "localhost"); } #endif /* OPENSSL_NO_KRB5 */ openssl-0.9.8b-x509-add-dir.patch: by_dir.c | 10 ++++++---- 1 files changed, 6 insertions(+), 4 deletions(-) --- NEW FILE openssl-0.9.8b-x509-add-dir.patch --- --- openssl-0.9.8b/crypto/x509/by_dir.c.add-dir 2005-07-03 15:15:53.000000000 +0200 +++ openssl-0.9.8b/crypto/x509/by_dir.c 2006-10-03 15:14:06.000000000 +0200 @@ -189,7 +189,7 @@ s=dir; p=s; - for (;;) + for (;;p++) { if ((*p == LIST_SEPARATOR_CHAR) || (*p == '\0')) { @@ -198,8 +198,11 @@ len=(int)(p-ss); if (len == 0) continue; for (j=0; jnum_dirs; j++) - if (strncmp(ctx->dirs[j],ss,(unsigned int)len) == 0) - continue; + if (strlen(ctx->dirs[j]) == len && + strncmp(ctx->dirs[j],ss,(unsigned int)len) == 0) + break; + if (jnum_dirs) + continue; if (ctx->num_dirs_alloced < (ctx->num_dirs+1)) { ctx->num_dirs_alloced+=10; @@ -231,7 +234,6 @@ ctx->num_dirs++; } if (*p == '\0') break; - p++; } return(1); } Index: openssl.spec =================================================================== RCS file: /cvs/dist/rpms/openssl/FC-6/openssl.spec,v retrieving revision 1.88 retrieving revision 1.89 diff -u -r1.88 -r1.89 --- openssl.spec 1 Dec 2006 09:42:43 -0000 1.88 +++ openssl.spec 3 Aug 2007 13:01:01 -0000 1.89 @@ -21,7 +21,7 @@ Summary: The OpenSSL toolkit Name: openssl Version: 0.9.8b -Release: 8.3%{?dist} +Release: 14%{?dist} Source: openssl-%{version}-usa.tar.bz2 Source1: hobble-openssl Source2: Makefile.certificate @@ -62,8 +62,12 @@ Patch60: openssl-0.9.8b-cve-2006-4343.patch Patch61: openssl-0.9.8b-aliasing-bug.patch Patch62: openssl-0.9.8b-x509-name-cmp.patch +Patch63: openssl-0.9.8b-x509-add-dir.patch +Patch64: openssl-0.9.8b-test-use-localhost.patch +Patch65: openssl-0.9.8b-cve-2007-3108.patch +Patch66: openssl-0.9.7a-ssl-strict-matching.patch -License: BSDish +License: OpenSSL Group: System Environment/Libraries URL: http://www.openssl.org/ BuildRoot: %{_tmppath}/%{name}-%{version}-root @@ -80,6 +84,7 @@ Summary: Files for development of applications which will use OpenSSL Group: Development/Libraries Requires: %{name} = %{version}-%{release}, krb5-devel, zlib-devel +Requires: pkgconfig %description devel OpenSSL is a toolkit for supporting cryptography. The openssl-devel @@ -133,6 +138,10 @@ %patch60 -p0 -b .client-dos %patch61 -p1 -b .aliasing-bug %patch62 -p1 -b .name-cmp +%patch63 -p1 -b .add-dir +%patch64 -p1 -b .use-localhost +%patch65 -p1 -b .no-branch +%patch66 -p1 -b .strict-matching # Modify the various perl scripts to reference perl in the right location. perl util/perlpath.pl `dirname %{__perl}` @@ -165,6 +174,9 @@ %ifarch s390x sslarch="linux-generic64 -DB_ENDIAN -DNO_ASM" %endif +%ifarch %{arm} +sslarch=linux-generic32 +%endif # ia64, x86_64, ppc, ppc64 are OK by default # Configure the build tree. Override OpenSSL defaults with known-good defaults # usable on all platforms. The Configure script already knows to use -fPIC and @@ -268,6 +280,9 @@ cat %{SOURCE3} RHNS-blurb.txt %{SOURCE4} > ca-bundle.crt install -m644 ca-bundle.crt $RPM_BUILD_ROOT%{_sysconfdir}/pki/tls/certs/ ln -s certs/ca-bundle.crt $RPM_BUILD_ROOT%{_sysconfdir}/pki/tls/cert.pem +# Reference timestamps to prevent multilib conflicts +touch -r %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/pki/tls/certs/ca-bundle.crt +touch -r %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/pki/tls/openssl.cnf # Fix libdir. pushd $RPM_BUILD_ROOT/%{_libdir}/pkgconfig @@ -367,6 +382,19 @@ %postun -p /sbin/ldconfig %changelog +* Fri Aug 3 2007 Tomas Mraz 0.9.8b-14 +- use localhost in testsuite, hopefully fixes slow build in koji +- CVE-2007-3108 - fix side channel attack on private keys (#250577) +- make ssl session cache id matching strict (#233599) + +* Wed Jul 25 2007 Tomas Mraz 0.9.8b-13 +- allow building on ARM architectures (#245417) +- use reference timestamps to prevent multilib conflicts (#218064) +- -devel package must require pkgconfig (#241031) + +* Mon Dec 11 2006 Tomas Mraz 0.9.8b-12 +- detect duplicates in add_dir properly (#206346) + * Thu Nov 30 2006 Tomas Mraz 0.9.8b-8.3 - the previous change still didn't make X509_NAME_cmp transitive From fedora-cvs-commits at redhat.com Fri Aug 3 18:03:17 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Fri, 3 Aug 2007 14:03:17 -0400 Subject: rpms/frysk/FC-5 .cvsignore, 1.24, 1.25 frysk.spec, 1.53, 1.54 sources, 1.25, 1.26 Message-ID: <200708031803.l73I3HXP001682@cvs.devel.redhat.com> Author: cagney Update of /cvs/dist/rpms/frysk/FC-5 In directory cvs.devel.redhat.com:/tmp/cvs-serv1653 Modified Files: .cvsignore frysk.spec sources Log Message: * Wed Jun 27 2007 Andew Cagney - 0.0.1.2007.08.03-1 - New upstream version 0.0.1.2007.08.03, Index: .cvsignore =================================================================== RCS file: /cvs/dist/rpms/frysk/FC-5/.cvsignore,v retrieving revision 1.24 retrieving revision 1.25 diff -u -r1.24 -r1.25 --- .cvsignore 27 Jun 2007 13:18:35 -0000 1.24 +++ .cvsignore 3 Aug 2007 18:03:15 -0000 1.25 @@ -1 +1 @@ -frysk-0.0.1.2007.06.21.rh2.tar.bz2 +frysk-0.0.1.2007.08.03.tar.bz2 Index: frysk.spec =================================================================== RCS file: /cvs/dist/rpms/frysk/FC-5/frysk.spec,v retrieving revision 1.53 retrieving revision 1.54 diff -u -r1.53 -r1.54 --- frysk.spec 27 Jun 2007 13:16:26 -0000 1.53 +++ frysk.spec 3 Aug 2007 18:03:15 -0000 1.54 @@ -1,6 +1,6 @@ Summary: Frysk execution analysis tool Name: frysk -Version: 0.0.1.2007.06.21.rh2 +Version: 0.0.1.2007.08.03 Release: 1%{?dist} License: GPL Group: Development/System @@ -144,18 +144,19 @@ make DESTDIR=$RPM_BUILD_ROOT install %{?_smp_mflags} # Fix timestamp of a generated script: -touch -r frysk-gui/frysk/gui/ChangeLog $RPM_BUILD_ROOT%{_datadir}/%{name}/dogtail_scripts/frysk_suite.py +touch -r ../frysk-gui/frysk/gui/FryskGui.javain \ + $RPM_BUILD_ROOT%{_datadir}/%{name}/dogtail_scripts/frysk_suite.py # ...and a few other ones: -# ... well, these are not installed by current tarball... -#for f in test2866.py test2985.py test3380.py; do -# touch -r frysk-gui/frysk/gui/test/dogtail_scripts/$f $RPM_BUILD_ROOT%{_datadir}/%{name}/test/$f -#done +for f in test2866.py test2985.py test3380.py; do + touch -r ../frysk-gui/frysk/gui/test/dogtail_scripts/$f \ + $RPM_BUILD_ROOT%{_datadir}/%{name}/dogtail_scripts/$f +done # Workaround for #211824: rm $RPM_BUILD_ROOT%{_datadir}/java/*.jar # We are not yet ready to be in the menu: -mv $RPM_BUILD_ROOT%{_datadir}/applications/frysk.desktop . +mv $RPM_BUILD_ROOT%{_datadir}/applications/frysk.desktop .. %post -p /sbin/ldconfig @@ -221,6 +222,9 @@ %{_datadir}/pixmaps/fryskTrayIcon48.png %changelog +* Wed Jun 27 2007 Andew Cagney - 0.0.1.2007.08.03-1 +- New upstream version 0.0.1.2007.08.03, + * Wed Jun 27 2007 Andew Cagney - 0.0.1.2007.06.21.rh2-1 - New upstream version. - Build out-of-tree. Index: sources =================================================================== RCS file: /cvs/dist/rpms/frysk/FC-5/sources,v retrieving revision 1.25 retrieving revision 1.26 diff -u -r1.25 -r1.26 --- sources 27 Jun 2007 13:18:35 -0000 1.25 +++ sources 3 Aug 2007 18:03:15 -0000 1.26 @@ -1 +1 @@ -2df540eb2e5e6456ccc0fad9d164400d frysk-0.0.1.2007.06.21.rh2.tar.bz2 +ebd0a5c96c72adc5554bdd88a3759c66 frysk-0.0.1.2007.08.03.tar.bz2 From fedora-cvs-commits at redhat.com Mon Aug 6 05:22:10 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Mon, 6 Aug 2007 01:22:10 -0400 Subject: rpms/man-pages-it/devel man-pages-it.spec,1.12,1.13 Message-ID: <200708060522.l765MAZp009614@cvs.devel.redhat.com> Author: dchen Update of /cvs/dist/rpms/man-pages-it/devel In directory cvs.devel.redhat.com:/tmp/cvs-serv9599/devel Modified Files: man-pages-it.spec Log Message: man6/sex.6 is removed. Index: man-pages-it.spec =================================================================== RCS file: /cvs/dist/rpms/man-pages-it/devel/man-pages-it.spec,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- man-pages-it.spec 12 Jul 2006 07:19:04 -0000 1.12 +++ man-pages-it.spec 6 Aug 2007 05:22:08 -0000 1.13 @@ -44,6 +44,7 @@ rm -f $RPM_BUILD_ROOT%{_mandir}/it/man1/{apropos.1,man.1,whatis.1}* rm -f $RPM_BUILD_ROOT%{_mandir}/it/man1/vim.1* rm -f $RPM_BUILD_ROOT%{_mandir}/it/man5/man.config.5* +rm -f $RPM_BUILD_ROOT%{_mandir}/it/man6/sex.6* rm -f $RPM_BUILD_ROOT%{_mandir}/it/man8/makewhatis.8* %clean @@ -56,6 +57,9 @@ %changelog +* Mon Aug 06 2007 Ding-Yi Chen - 0.3.0-17.2 +- remove sex.6 + * Wed Jul 12 2006 Jesse Keating - 0.3.0-17.1 - rebuild From fedora-cvs-commits at redhat.com Mon Aug 6 05:33:04 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Mon, 6 Aug 2007 01:33:04 -0400 Subject: rpms/man-pages-it/devel man-pages-it.spec,1.13,1.14 Message-ID: <200708060533.l765X4Hb009777@cvs.devel.redhat.com> Author: dchen Update of /cvs/dist/rpms/man-pages-it/devel In directory cvs.devel.redhat.com:/tmp/cvs-serv9760/devel Modified Files: man-pages-it.spec Log Message: convert spec to UTF8 Index: man-pages-it.spec =================================================================== RCS file: /cvs/dist/rpms/man-pages-it/devel/man-pages-it.spec,v retrieving revision 1.13 retrieving revision 1.14 diff -u -r1.13 -r1.14 --- man-pages-it.spec 6 Aug 2007 05:22:08 -0000 1.13 +++ man-pages-it.spec 6 Aug 2007 05:33:02 -0000 1.14 @@ -96,10 +96,10 @@ * Thu May 23 2002 Tim Powers - automated rebuild -* Wed Mar 13 2002 Trond Eivind Glomsr?d 0.3.0-7 +* Wed Mar 13 2002 Trond Eivind Glomsr??d 0.3.0-7 - Add URL -* Wed Apr 4 2001 Trond Eivind Glomsr?d +* Wed Apr 4 2001 Trond Eivind Glomsr??d - Add patch to fix roff errors in multiple man pages * Wed Jul 12 2000 Prospector @@ -111,8 +111,8 @@ * Mon Jun 19 2000 Matt Wilson - defattr root -* Sun Jun 11 2000 Trond Eivind Glomsr?d +* Sun Jun 11 2000 Trond Eivind Glomsr??d - use %%{_mandir} and %%{_tmppath} -* Mon May 15 2000 Trond Eivind Glomsr?d +* Mon May 15 2000 Trond Eivind Glomsr??d - first build From fedora-cvs-commits at redhat.com Mon Aug 6 07:12:02 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Mon, 6 Aug 2007 03:12:02 -0400 Subject: rpms/vixie-cron/FC-6 vixie-cron-4.1-hardlink.patch, NONE, 1.1 vixie-cron.spec, 1.85, 1.86 Message-ID: <200708060712.l767C24B010874@cvs.devel.redhat.com> Author: mmaslano Update of /cvs/dist/rpms/vixie-cron/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv10857 Modified Files: vixie-cron.spec Added Files: vixie-cron-4.1-hardlink.patch Log Message: Add patch for CVE. vixie-cron-4.1-hardlink.patch: database.c | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) --- NEW FILE vixie-cron-4.1-hardlink.patch --- --- vixie-cron-4.1/database.c.link 2007-03-27 17:59:59.000000000 +0200 +++ vixie-cron-4.1/database.c 2007-04-10 22:40:37.000000000 +0200 @@ -256,7 +256,7 @@ log_it(fname, getpid(), "WRONG FILE OWNER", tabname); goto next_crontab; } - if (statbuf->st_nlink != 1) { + if (pw && statbuf->st_nlink != 1) { log_it(fname, getpid(), "BAD LINK COUNT", tabname); goto next_crontab; } Index: vixie-cron.spec =================================================================== RCS file: /cvs/dist/rpms/vixie-cron/FC-6/vixie-cron.spec,v retrieving revision 1.85 retrieving revision 1.86 diff -u -r1.85 -r1.86 --- vixie-cron.spec 26 Feb 2007 15:18:07 -0000 1.85 +++ vixie-cron.spec 6 Aug 2007 07:12:00 -0000 1.86 @@ -10,7 +10,7 @@ Summary: The Vixie cron daemon for executing specified programs at set times. Name: vixie-cron Version: 4.1 -Release: 68%{?dist} +Release: 69%{?dist} Epoch: 4 License: distributable Group: System Environment/Base @@ -83,6 +83,7 @@ Patch63: vixie-cron-4.1-manual.patch Patch64: vixie-cron-4.1-_62newyear.patch Patch65: vixie-cron-4.1-_63newavc.patch +Patch66: vixie-cron-4.1-hardlink.patch Buildroot: %{_tmppath}/%{name}-%{version}-root Requires: syslog @@ -185,6 +186,7 @@ %patch63 -p1 -b .manual %patch64 -p1 -b ._62newyear %patch65 -p1 -b ._63newavc +%patch66 -p1 -b .hard %build make RPM_OPT_FLAGS="$RPM_OPT_FLAGS -g -DLINT -Dlint" \ @@ -257,6 +259,9 @@ %config(noreplace) /etc/sysconfig/crond %changelog +* Mon Aug 6 2007 Marcela Maslanova - 4:4.1-69 +- add patch for CVE #235882 + * Mon Feb 26 2007 Marcela Maslanova - 4:4.1-68 - update, patches 61-65 From fedora-cvs-commits at redhat.com Tue Aug 7 03:13:40 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Mon, 6 Aug 2007 23:13:40 -0400 Subject: rpms/autofs/FC-6 autofs-5.0.1-any-case-ldap-attr.patch, NONE, 1.1 autofs-5.0.2-fix-dnattr-parse.patch, NONE, 1.1 autofs.spec, 1.182, 1.183 Message-ID: <200708070313.l773DeZL003234@cvs.devel.redhat.com> Author: ikent Update of /cvs/dist/rpms/autofs/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv3217 Modified Files: autofs.spec Added Files: autofs-5.0.1-any-case-ldap-attr.patch autofs-5.0.2-fix-dnattr-parse.patch Log Message: * Tue Aug 7 2007 Ian Kent - 5.0.1-33 - fix parse confusion between attribute and attribute value. - fix LDAP case case sensitivity attribute match. autofs-5.0.1-any-case-ldap-attr.patch: master_tok.l | 10 +++++++++- 1 files changed, 9 insertions(+), 1 deletion(-) --- NEW FILE autofs-5.0.1-any-case-ldap-attr.patch --- diff --git a/lib/master_tok.l b/lib/master_tok.l index c15ef68..28d7d0d 100644 --- a/lib/master_tok.l +++ b/lib/master_tok.l @@ -98,7 +98,15 @@ DNSERVSTR2 (\/\/[[:alpha:]][[:alnum:]\-.]*(:[0-9]+)?\/) DNSERVSTR3 (([[:digit:]]{1,3}\.){3}[[:digit:]]{1,3}(:[0-9]+)?:) DNSERVSTR4 (\/\/([[:digit:]]{1,3}\.){3}[[:digit:]]{1,3}(:[0-9]+)?\/) DNSERVERSTR {DNSERVSTR1}|{DNSERVSTR2}|{DNSERVSTR3}|{DNSERVSTR4} -DNATTRSTR (cn|nisMapName|automountMapName|ou|dc|o|c) + +AT_CN ([cC][[nN]) +AT_NMN ([nN][iI][sS][Mm][aA][pP][Nn][aA][mM][eE]) +AT_AMN ([aA][uU][tT][oO][mM][oO][uU][nN][tT][Mm][aA][pP][Nn][aA][mM][eE]) +AT_OU ([oO][[uU]) +AT_DC ([dD][[cC]) +AT_O ([oO]) +AT_C ([cC]) +DNATTRSTR {AT_CN}|{AT_NMN}|{AT_AMN}|{AT_OU}|{AT_DC}|{AT_O}|{AT_C} DNNAMESTR ([[:alnum:]_.\-]+) INTMAP (-hosts|-null) autofs-5.0.2-fix-dnattr-parse.patch: master_tok.l | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) --- NEW FILE autofs-5.0.2-fix-dnattr-parse.patch --- diff --git a/lib/master_tok.l b/lib/master_tok.l index 9bfeefa..ff69a24 100644 --- a/lib/master_tok.l +++ b/lib/master_tok.l @@ -272,7 +272,7 @@ OPTTOUT (-t{OPTWS}|-t{OPTWS}={OPTWS}|--timeout{OPTWS}|--timeout{OPTWS}={OPTWS}) return DNSERVER; } - {DNATTRSTR} { + {DNATTRSTR}/"=" { strcpy(master_lval.strtype, master_text); return DNATTR; } Index: autofs.spec =================================================================== RCS file: /cvs/dist/rpms/autofs/FC-6/autofs.spec,v retrieving revision 1.182 retrieving revision 1.183 diff -u -r1.182 -r1.183 --- autofs.spec 18 Jul 2007 14:13:45 -0000 1.182 +++ autofs.spec 7 Aug 2007 03:13:37 -0000 1.183 @@ -4,7 +4,7 @@ Summary: A tool for automatically mounting and unmounting filesystems Name: autofs %define version 5.0.1 -%define release 0.rc3.32 +%define release 0.rc3.33 Version: %{version} Release: %{release} Epoch: 1 @@ -37,6 +37,8 @@ Patch24: autofs-5.0.1-rc3-map-update-source-only.patch Patch25: autofs-5.0.1-rc3-alarm-deadlock.patch Patch26: autofs-5.0.1-hi-res-time.patch +Patch27: autofs-5.0.1-any-case-ldap-attr.patch +Patch28: autofs-5.0.2-fix-dnattr-parse.patch Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: autoconf, hesiod-devel, openldap-devel, bison, flex, libxml2-devel, cyrus-sasl-devel, openssl-devel Conflicts: kernel < 2.6.17 @@ -105,6 +107,8 @@ %patch24 -p1 %patch25 -p1 %patch26 -p1 +%patch27 -p1 +%patch28 -p1 %build #CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=/usr --libdir=%{_libdir} @@ -161,6 +165,10 @@ %{_libdir}/autofs/* %changelog +* Tue Aug 7 2007 Ian Kent - 5.0.1-33 +- fix parse confusion between attribute and attribute value. +- fix LDAP case case sensitivity attribute match. + * Wed Jul 18 2007 Ian Kent - 5.0.1-32 - fix wait time resolution in alarm and state queue handlers (bz 247711). From fedora-cvs-commits at redhat.com Tue Aug 7 09:25:59 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Tue, 7 Aug 2007 05:25:59 -0400 Subject: rpms/dovecot/FC-6 dovecot-1.0.rc27-quota-warning.patch, NONE, 1.1 .cvsignore, 1.20, 1.21 dovecot.spec, 1.69, 1.70 sources, 1.21, 1.22 Message-ID: <200708070925.l779Pxn7011729@cvs.devel.redhat.com> Author: tjanouse Update of /cvs/dist/rpms/dovecot/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv11713 Modified Files: .cvsignore dovecot.spec sources Added Files: dovecot-1.0.rc27-quota-warning.patch Log Message: * Tue Aug 07 2007 Tomas Janousek - 1.0.3-6 - update to latest upstream (1.0.3 and sieve 1.0.2) - added the quota-warning patch dovecot-1.0.rc27-quota-warning.patch: quota-plugin.c | 17 ++++++- quota-private.h | 18 +++++++ quota.c | 136 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ quota.h | 4 + 4 files changed, 174 insertions(+), 1 deletion(-) --- NEW FILE dovecot-1.0.rc27-quota-warning.patch --- http://dovecot.org/list/dovecot/2007-April/021429.html diff -ru dovecot-1.0.rc27.orig/src/plugins/quota/quota-plugin.c dovecot-1.0.rc27/src/plugins/quota/quota-plugin.c --- dovecot-1.0.rc27.orig/src/plugins/quota/quota-plugin.c 2007-03-06 17:34:47.000000000 +0100 +++ dovecot-1.0.rc27/src/plugins/quota/quota-plugin.c 2007-03-31 22:18:55.000000000 +0200 @@ -21,9 +21,24 @@ env = getenv("QUOTA"); if (env != NULL) { + struct quota_setup *setup; + const char *name; + unsigned int i; quota_set = quota_init(); /* Currently we support only one quota setup */ - (void)quota_setup_init(quota_set, env, TRUE); + setup = quota_setup_init(quota_set, env, TRUE); + + name = "QUOTA_WARNING"; + env = getenv(name); + i = 1; + t_push(); + while (env != NULL) { + (void)quota_warning_init(setup, env); + + name = t_strdup_printf("QUOTA_WARNING%u", ++i); + env = getenv(name); + } + t_pop(); quota_next_hook_mail_storage_created = hook_mail_storage_created; diff -ru dovecot-1.0.rc27.orig/src/plugins/quota/quota-private.h dovecot-1.0.rc27/src/plugins/quota/quota-private.h --- dovecot-1.0.rc27.orig/src/plugins/quota/quota-private.h 2007-03-12 21:34:50.000000000 +0100 +++ dovecot-1.0.rc27/src/plugins/quota/quota-private.h 2007-03-17 00:06:23.000000000 +0100 @@ -22,6 +22,9 @@ /* List of quota roots. It's array because there shouldn't be many. */ array_t ARRAY_DEFINE(roots, struct quota_root *); + /* List of quota warnings. There should probably be few. */ + array_t ARRAY_DEFINE(warnings, struct quota_warning *); + unsigned int user_root:1; }; @@ -86,6 +89,21 @@ unsigned int idx; }; +enum quota_warning_limit_kind { + QUOTA_WARNING_NO_LIMIT, + QUOTA_WARNING_PERCENT_LIMIT, + QUOTA_WARNING_ABSOLUTE_LIMIT +}; + +struct quota_warning { + struct quota_setup *setup; + uint64_t storage_limit; + unsigned int count_limit; + enum quota_warning_limit_kind storage_limit_kind:2; + enum quota_warning_limit_kind count_limit_kind:2; + char *command; +}; + struct quota_transaction_context { array_t ARRAY_DEFINE(root_transactions, struct quota_root_transaction_context *); diff -ru dovecot-1.0.rc27.orig/src/plugins/quota/quota.c dovecot-1.0.rc27/src/plugins/quota/quota.c --- dovecot-1.0.rc27.orig/src/plugins/quota/quota.c 2007-03-06 17:34:47.000000000 +0100 +++ dovecot-1.0.rc27/src/plugins/quota/quota.c 2007-03-31 22:35:22.000000000 +0200 @@ -6,6 +6,8 @@ #include "quota-private.h" #include "quota-fs.h" +#include + unsigned int quota_module_id = 0; extern struct quota_backend quota_backend_dict; @@ -59,6 +61,7 @@ setup->data = i_strdup(data); setup->user_root = user_root; ARRAY_CREATE(&setup->roots, default_pool, struct quota_root *, 4); + ARRAY_CREATE(&setup->warnings, default_pool, struct quota_warning *, 4); t_push(); p = strchr(setup->data, ':'); @@ -107,6 +110,16 @@ } array_free(&setup->roots); + + while (array_count(&setup->warnings) > 0) { + struct quota_warning *const *warning; + + warning = array_idx(&setup->warnings, 0); + quota_warning_deinit(*warning); + } + + array_free(&setup->warnings); + i_free(setup->data); i_free(setup); } @@ -157,6 +170,82 @@ array_free(&module_contexts); } +struct quota_warning * +quota_warning_init(struct quota_setup *setup, const char *data) +{ + const char *p; + char *q; + const char *const *args; + unsigned long long val; + struct quota_warning *warning; + + warning = i_new(struct quota_warning, 1); + warning->setup = setup; + + p = strchr(data, ' '); + if (p == NULL) + i_fatal("quota warning: No command specified: %s", data); + warning->command = i_strdup(p+1); + + t_push(); + + args = t_strsplit(t_strdup_until(data, p), ":"); + for (; *args != '\0'; args++) { + if (strncmp(*args, "storage=", 8) == 0) { + val = strtoull(*args + 8, &q, 10); + if (q && (strcmp(q, "%") == 0)) { + warning->storage_limit = val; + warning->storage_limit_kind = + QUOTA_WARNING_PERCENT_LIMIT; + } else if (q && (strcmp(q, "k") == 0)) { + warning->storage_limit = val * 1024; + warning->storage_limit_kind = + QUOTA_WARNING_ABSOLUTE_LIMIT; + } else + i_error("quota warning: Malformed setting: %s", *args); + } else if (strncmp(*args, "messages=", 9) == 0) { + val = strtoull(*args + 8, &q, 10); + if (q && (strcmp(q, "%") == 0)) { + warning->count_limit = val; + warning->count_limit_kind = + QUOTA_WARNING_PERCENT_LIMIT; + } else if (q && (strcmp(q, "") == 0)) { + warning->count_limit = val; + warning->count_limit_kind = + QUOTA_WARNING_ABSOLUTE_LIMIT; + } else + i_error("quota warning: Malformed setting: %s", *args); + } else { + i_error("quota warning: Unknown setting: %s", *args); + } + } + + t_pop(); + + array_append(&setup->warnings, &warning, 1); + + return warning; +} + +void quota_warning_deinit(struct quota_warning *warning) +{ + struct quota_warning *const *warnings; + unsigned int i, count; + + /* remove from setup */ + warnings = array_get(&warning->setup->warnings, &count); + for (i = 0; i < count; i++) { + if (warnings[i] == warning) { + array_delete(&warning->setup->warnings, i, 1); + break; + } + } + i_assert(i != count); + + i_free(warning->command); + i_free(warning); +} + void quota_add_user_storage(struct quota *quota, struct mail_storage *storage) { struct quota_setup *const *setups; @@ -388,15 +477,62 @@ i_free(ctx); } +#define CHECK_PERCENT(val, cur, diff, limit) \ + (100 * ((limit) - (cur) - (diff)) > (val) * (limit)) +#define CHECK_ABSOLUTE(val, cur, diff, limit) \ + ((limit) - (cur) - (diff) > (val)) + +#define CHECK2_PERCENT(val, cur, diff, size, limit) \ + (CHECK_PERCENT(val, cur, diff, limit) \ + && !CHECK_PERCENT(val, cur, (diff)+(size), limit)) +#define CHECK2_ABSOLUTE(val, cur, diff, size, limit) \ + (CHECK_ABSOLUTE(val, cur, diff, limit) \ + && !CHECK_ABSOLUTE(val, cur, (diff)+(size), limit)) + +#define CHECK(kind, val, cur, diff, size, limit) \ + ((((kind) == QUOTA_WARNING_PERCENT_LIMIT) \ + && (CHECK2_PERCENT(val, cur, diff, size, limit))) \ + || (((kind) == QUOTA_WARNING_ABSOLUTE_LIMIT) \ + && (CHECK2_ABSOLUTE(val, cur, diff, size, limit)))) + int quota_default_try_alloc_bytes(struct quota_root_transaction_context *ctx, uoff_t size, bool *too_large_r) { + struct quota_warning *const * warnings; + unsigned int i, count; int ret; ret = quota_default_test_alloc_bytes(ctx, size, too_large_r); if (ret <= 0 || ctx->disabled) return ret; + warnings = array_get(&ctx->root->setup->warnings, &count); + + for (i = 0; i < count; i++) { + struct quota_warning *warning = warnings[i]; + bool run_command = FALSE; + + if (CHECK(warning->storage_limit_kind, + warning->storage_limit, + ctx->bytes_current, + ctx->bytes_diff, + size, + ctx->bytes_limit)) + run_command = TRUE; + + if (CHECK(warning->count_limit_kind, + warning->count_limit, + ctx->count_current, + ctx->count_diff, + 1, + ctx->count_limit)) + run_command = TRUE; + + if (run_command) + system(warning->command); + + } + ctx->count_diff++; ctx->bytes_diff += size; return 1; diff -ru dovecot-1.0.rc27.orig/src/plugins/quota/quota.h dovecot-1.0.rc27/src/plugins/quota/quota.h --- dovecot-1.0.rc27.orig/src/plugins/quota/quota.h 2007-03-06 17:34:47.000000000 +0100 +++ dovecot-1.0.rc27/src/plugins/quota/quota.h 2007-03-16 23:21:33.000000000 +0100 @@ -31,6 +31,10 @@ quota_root_init(struct quota_setup *setup, const char *name); void quota_root_deinit(struct quota_root *root); +struct quota_warning * +quota_warning_init(struct quota_setup *setup, const char *data); +void quota_warning_deinit(struct quota_warning *warning); + /* List all quota roots. Returned quota roots are freed by quota_deinit(). */ struct quota_root_iter *quota_root_iter_init(struct mailbox *box); struct quota_root *quota_root_iter_next(struct quota_root_iter *iter); Index: .cvsignore =================================================================== RCS file: /cvs/dist/rpms/dovecot/FC-6/.cvsignore,v retrieving revision 1.20 retrieving revision 1.21 diff -u -r1.20 -r1.21 --- .cvsignore 17 Jul 2007 11:11:27 -0000 1.20 +++ .cvsignore 7 Aug 2007 09:25:56 -0000 1.21 @@ -1,4 +1,4 @@ -dovecot-1.0.2.tar.gz -dovecot-1.0.2.tar.gz.sig -dovecot-sieve-1.0.1.tar.gz -dovecot-sieve-1.0.1.tar.gz.sig +dovecot-1.0.3.tar.gz +dovecot-1.0.3.tar.gz.sig +dovecot-sieve-1.0.2.tar.gz +dovecot-sieve-1.0.2.tar.gz.sig Index: dovecot.spec =================================================================== RCS file: /cvs/dist/rpms/dovecot/FC-6/dovecot.spec,v retrieving revision 1.69 retrieving revision 1.70 diff -u -r1.69 -r1.70 --- dovecot.spec 17 Jul 2007 11:11:27 -0000 1.69 +++ dovecot.spec 7 Aug 2007 09:25:56 -0000 1.70 @@ -1,9 +1,9 @@ -%define upstream 1.0.2 -%define sieve_upstream 1.0.1 -%define pkg_version 1.0.2 -%define my_release 5 +%define upstream 1.0.3 +%define sieve_upstream 1.0.2 +%define pkg_version 1.0.3 +%define my_release 6 %define pkg_release %{my_release}%{?dist} -%define pkg_sieve_version 1.0.1 +%define pkg_sieve_version 1.0.2 %define pkg_sieve_release %{my_release}%{?dist} Summary: Dovecot Secure imap server @@ -36,6 +36,7 @@ #Patch104: dovecot-1.0.beta2-lib64.patch Patch105: dovecot-1.0.rc7-mkcert-paths.patch #Patch105: dovecot-1.0.beta2-sqlite-check.patch +Patch106: dovecot-1.0.rc27-quota-warning.patch # XXX this patch needs review and forward porting #Patch105: dovecot-auth-log.patch @@ -107,6 +108,7 @@ %patch103 -p1 -b .mkcert-permissions #%patch104 -p1 -b .lib64 %patch105 -p1 -b .mkcert-paths +%patch106 -p1 -b .quota-warning %if %{build_sieve} %setup -q -n %{name}-%{upstream} -D -T -a 8 @@ -295,6 +297,10 @@ %changelog +* Tue Aug 07 2007 Tomas Janousek - 1.0.3-6 +- update to latest upstream (1.0.3 and sieve 1.0.2) +- added the quota-warning patch + * Tue Jul 17 2007 Tomas Janousek - 1.0.2-5 - update to latest upstream (1.0.2) Index: sources =================================================================== RCS file: /cvs/dist/rpms/dovecot/FC-6/sources,v retrieving revision 1.21 retrieving revision 1.22 diff -u -r1.21 -r1.22 --- sources 17 Jul 2007 11:11:27 -0000 1.21 +++ sources 7 Aug 2007 09:25:56 -0000 1.22 @@ -1,4 +1,4 @@ -769f0dd2750e7de521de3396999a09e5 dovecot-1.0.2.tar.gz -9f066b17b877b94a6a051cbe44f8011f dovecot-1.0.2.tar.gz.sig -b070d2177009bb555cd7e25c710047d5 dovecot-sieve-1.0.1.tar.gz -c9f5a39ef66e427968141f265c879d60 dovecot-sieve-1.0.1.tar.gz.sig +1d7cc3c4964789554553e7e4ea3f82b4 dovecot-1.0.3.tar.gz +7aeb01b6cee5388a1864e425ad04fa30 dovecot-1.0.3.tar.gz.sig +508926fc9ff8e0f6e13506e237d4916b dovecot-sieve-1.0.2.tar.gz +fdb27eafe011a7a1ed92531f334e4f8c dovecot-sieve-1.0.2.tar.gz.sig From fedora-cvs-commits at redhat.com Tue Aug 7 19:58:30 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Tue, 7 Aug 2007 15:58:30 -0400 Subject: rpms/rhgb/devel rhgb.spec,1.74,1.75 Message-ID: <200708071958.l77JwUT6031154@cvs.devel.redhat.com> Author: mclasen Update of /cvs/dist/rpms/rhgb/devel In directory cvs.devel.redhat.com:/tmp/cvs-serv31138 Modified Files: rhgb.spec Log Message: update license field Index: rhgb.spec =================================================================== RCS file: /cvs/dist/rpms/rhgb/devel/rhgb.spec,v retrieving revision 1.74 retrieving revision 1.75 diff -u -r1.74 -r1.75 --- rhgb.spec 18 Apr 2007 22:39:30 -0000 1.74 +++ rhgb.spec 7 Aug 2007 19:58:28 -0000 1.75 @@ -3,10 +3,10 @@ Summary: Red Hat Graphical Boot Name: rhgb Version: 0.17.6 -Release: 1%{?dist} +Release: 2%{?dist} URL: http://www.redhat.com/ Source0: %{name}-%{version}.tar.gz -License: GPL +License: GPLv2 Group: System Environment/Base BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) ExcludeArch: s390 s390x ppc64 @@ -50,6 +50,9 @@ %dir %{_sysconfdir}/rhgb/temp %changelog +* Tue Aug 7 2007 Matthias Clasen - 0.17.6-2 +- Update license field + * Wed Apr 18 2007 Matthias Clasen - 0.17.6-1 - Fix two swapped highlight colors From fedora-cvs-commits at redhat.com Wed Aug 8 18:56:45 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Wed, 8 Aug 2007 14:56:45 -0400 Subject: rpms/kernel/FC-6 linux-2.6-add_xt_statistic.h_to_hdrs.patch, NONE, 1.1 linux-2.6-amd-fix-broken-lapic-timer-detect.patch, NONE, 1.1 linux-2.6-slub-dont-bug-on-too-large-allocation.patch, NONE, 1.1 kernel-2.6.spec, 1.3000, 1.3001 Message-ID: <200708081856.l78Iuj0f027190@cvs.devel.redhat.com> Author: cebbert Update of /cvs/dist/rpms/kernel/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv27170 Modified Files: kernel-2.6.spec Added Files: linux-2.6-add_xt_statistic.h_to_hdrs.patch linux-2.6-amd-fix-broken-lapic-timer-detect.patch linux-2.6-slub-dont-bug-on-too-large-allocation.patch Log Message: * Wed Aug 08 2007 Chuck Ebbert - add xt_statistic.h to header list for iptables - detect broken lapic timer on some dual-core AMD systems - don't BUG on too-large memory allocation linux-2.6-add_xt_statistic.h_to_hdrs.patch: Kbuild | 1 + 1 files changed, 1 insertion(+) --- NEW FILE linux-2.6-add_xt_statistic.h_to_hdrs.patch --- Add xt_statistic.h to the list of headers to install. Apparently needed to build newer versions of iptables. Signed-off-by: Chuck Ebbert --- include/linux/netfilter/Kbuild | 1 + 1 file changed, 1 insertion(+) --- linux-2.6.22.noarch.orig/include/linux/netfilter/Kbuild +++ linux-2.6.22.noarch/include/linux/netfilter/Kbuild @@ -28,6 +28,7 @@ header-y += xt_policy.h header-y += xt_realm.h header-y += xt_sctp.h header-y += xt_state.h +header-y += xt_statistic.h header-y += xt_string.h header-y += xt_tcpmss.h header-y += xt_tcpudp.h linux-2.6-amd-fix-broken-lapic-timer-detect.patch: arch/i386/kernel/apic.c | 8 +++----- linux/arch/i386/kernel/cpu/amd.c | 7 ++++++- linux/include/asm-i386/apic.h | 2 ++ linux/include/asm-i386/cpufeature.h | 2 +- 4 files changed, 12 insertions(+), 7 deletions(-) --- NEW FILE linux-2.6-amd-fix-broken-lapic-timer-detect.patch --- =================================================================== --- linux.orig/arch/i386/kernel/apic.c +++ linux/arch/i386/kernel/apic.c @@ -61,8 +61,9 @@ static int enable_local_apic __initdata /* Local APIC timer verification ok */ static int local_apic_timer_verify_ok; -/* Disable local APIC timer from the kernel commandline or via dmi quirk */ -static int local_apic_timer_disabled; +/* Disable local APIC timer from the kernel commandline or via dmi quirk + or using CPU MSR check */ +int local_apic_timer_disabled; /* Local APIC timer works in C2 */ int local_apic_timer_c2_ok; EXPORT_SYMBOL_GPL(local_apic_timer_c2_ok); @@ -370,9 +371,6 @@ void __init setup_boot_APIC_clock(void) long delta, deltapm; int pm_referenced = 0; - if (boot_cpu_has(X86_FEATURE_LAPIC_TIMER_BROKEN)) - local_apic_timer_disabled = 1; - /* * The local apic timer can be disabled via the kernel * commandline or from the test above. Register the lapic Index: linux/arch/i386/kernel/cpu/amd.c =================================================================== --- linux.orig/arch/i386/kernel/cpu/amd.c +++ linux/arch/i386/kernel/cpu/amd.c @@ -3,6 +3,7 @@ #include #include #include +#include #include "cpu.h" @@ -22,6 +23,7 @@ extern void vide(void); __asm__(".align 4\nvide: ret"); +#ifdef CONFIG_X86_LOCAL_APIC #define ENABLE_C1E_MASK 0x18000000 #define CPUID_PROCESSOR_SIGNATURE 1 #define CPUID_XFAM 0x0ff00000 @@ -52,6 +54,7 @@ static __cpuinit int amd_apic_timer_brok } return 0; } +#endif int force_mwait __cpuinitdata; @@ -282,8 +285,10 @@ static void __cpuinit init_amd(struct cp if (cpuid_eax(0x80000000) >= 0x80000006) num_cache_leaves = 3; +#ifdef CONFIG_X86_LOCAL_APIC if (amd_apic_timer_broken()) - set_bit(X86_FEATURE_LAPIC_TIMER_BROKEN, c->x86_capability); + local_apic_timer_disabled = 1; +#endif if (c->x86 == 0x10 && !force_mwait) clear_bit(X86_FEATURE_MWAIT, c->x86_capability); Index: linux/include/asm-i386/apic.h =================================================================== --- linux.orig/include/asm-i386/apic.h +++ linux/include/asm-i386/apic.h @@ -116,6 +116,8 @@ extern void enable_NMI_through_LVT0 (voi extern int timer_over_8254; extern int local_apic_timer_c2_ok; +extern int local_apic_timer_disabled; + #else /* !CONFIG_X86_LOCAL_APIC */ static inline void lapic_shutdown(void) { } Index: linux/include/asm-i386/cpufeature.h =================================================================== --- linux.orig/include/asm-i386/cpufeature.h +++ linux/include/asm-i386/cpufeature.h @@ -79,7 +79,7 @@ #define X86_FEATURE_ARCH_PERFMON (3*32+11) /* Intel Architectural PerfMon */ #define X86_FEATURE_PEBS (3*32+12) /* Precise-Event Based Sampling */ #define X86_FEATURE_BTS (3*32+13) /* Branch Trace Store */ -#define X86_FEATURE_LAPIC_TIMER_BROKEN (3*32+ 14) /* lapic timer broken in C1 */ +/* 14 free */ #define X86_FEATURE_SYNC_RDTSC (3*32+15) /* RDTSC synchronizes the CPU */ /* Intel-defined CPU features, CPUID level 0x00000001 (ecx), word 4 */ linux-2.6-slub-dont-bug-on-too-large-allocation.patch: slub.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletion(-) --- NEW FILE linux-2.6-slub-dont-bug-on-too-large-allocation.patch --- Don't BUG on too-large allocation in SLUB. Taken from larger 2.6.23-rc1 commit. Signed-off-by: Chuck Ebbert --- mm/slub.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) --- linux-2.6.22.noarch.orig/mm/slub.c +++ linux-2.6.22.noarch/mm/slub.c @@ -2201,7 +2201,8 @@ static struct kmem_cache *get_slab(size_ return NULL; /* Allocation too large? */ - BUG_ON(index < 0); + if (index < 0) + return 0; #ifdef CONFIG_ZONE_DMA if ((flags & SLUB_DMA)) { Index: kernel-2.6.spec =================================================================== RCS file: /cvs/dist/rpms/kernel/FC-6/kernel-2.6.spec,v retrieving revision 1.3000 retrieving revision 1.3001 diff -u -r1.3000 -r1.3001 --- kernel-2.6.spec 1 Aug 2007 17:59:03 -0000 1.3000 +++ kernel-2.6.spec 8 Aug 2007 18:56:43 -0000 1.3001 @@ -529,12 +529,13 @@ Patch40: linux-2.6-x86-tune-generic.patch Patch50: linux-2.6-x86-vga-vidfail.patch Patch51: linux-2.6-i386-hpet-check-if-the-counter-works.patch -Patch95: linux-2.6-kvm-suspend.patch +Patch52: linux-2.6-amd-fix-broken-lapic-timer-detect.patch +Patch90: linux-2.6-kvm-suspend.patch + Patch100: linux-2.6-g5-therm-shutdown.patch Patch120: linux-2.6-ppc32-ucmpdi2.patch Patch130: linux-2.6-ibmvscsi-schizo.patch Patch140: linux-2.6-pmac-zilog.patch - Patch150: linux-2.6-build-nonintconfig.patch Patch160: linux-2.6-execshield.patch Patch170: linux-2.6-modsign-mpilib.patch @@ -569,6 +570,7 @@ Patch431: linux-2.6-tcp-sack-fix-leak-msgs.patch Patch432: linux-2.6-net_sched_fix_deadlock.patch Patch433: linux-2.6-net-dst_entry-reorder-crash.patch +Patch434: linux-2.6-add_xt_statistic.h_to_hdrs.patch Patch440: linux-2.6-sha_alignment.patch Patch450: linux-2.6-input-kill-stupid-messages.patch Patch451: linux-2.6-input-rfkill-wrong-size-flags.patch @@ -580,6 +582,7 @@ Patch570: linux-2.6-selinux-mprotect-checks.patch Patch590: linux-2.6-unexport-symbols.patch Patch600: linux-2.6-vm-silence-atomic-alloc-failures.patch +Patch601: linux-2.6-slub-dont-bug-on-too-large-allocation.patch Patch610: linux-2.6-defaults-fat-utf8.patch Patch620: linux-2.6-defaults-unicode-vt.patch Patch630: linux-2.6-defaults-nonmi.patch @@ -1112,6 +1115,8 @@ ApplyPatch linux-2.6-x86-vga-vidfail.patch # Check the hpet is counting. ApplyPatch linux-2.6-i386-hpet-check-if-the-counter-works.patch +# check all AMD CPU cores for broken lapic timer +ApplyPatch linux-2.6-amd-fix-broken-lapic-timer-detect.patch # patch to fix suspend with kvm loaded and guests running ApplyPatch linux-2.6-kvm-suspend.patch @@ -1213,6 +1218,8 @@ ApplyPatch linux-2.6-net_sched_fix_deadlock.patch # fix crash in xfrm4 ApplyPatch linux-2.6-net-dst_entry-reorder-crash.patch +# add header needed to build new iptables +ApplyPatch linux-2.6-add_xt_statistic.h_to_hdrs.patch # Misc fixes # Fix SHA1 alignment problem on ia64 @@ -1241,6 +1248,8 @@ # # Silence GFP_ATOMIC failures. ApplyPatch linux-2.6-vm-silence-atomic-alloc-failures.patch +# don't crash the machine when a too-large memory request arrives +ApplyPatch linux-2.6-slub-dont-bug-on-too-large-allocation.patch # Changes to upstream defaults. # Use UTF-8 by default on VFAT. @@ -2248,6 +2257,11 @@ %endif %changelog +* Wed Aug 08 2007 Chuck Ebbert +- add xt_statistic.h to header list for iptables +- detect broken lapic timer on some dual-core AMD systems +- don't BUG on too-large memory allocation + * Wed Aug 01 2007 Chuck Ebbert - fix crash in xfrm4 - restore md driver START_ARRAY ioctl From fedora-cvs-commits at redhat.com Wed Aug 8 22:18:47 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Wed, 8 Aug 2007 18:18:47 -0400 Subject: rpms/libdhcp/FC-6 libdhcp.spec,1.33,1.34 Message-ID: <200708082218.l78MIlcH000585@cvs.devel.redhat.com> Author: dcantrel Update of /cvs/dist/rpms/libdhcp/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv570 Modified Files: libdhcp.spec Log Message: * Wed Aug 08 2007 David Cantrell - 1.12-2 - Update License tag to GPLv2 Index: libdhcp.spec =================================================================== RCS file: /cvs/dist/rpms/libdhcp/FC-6/libdhcp.spec,v retrieving revision 1.33 retrieving revision 1.34 diff -u -r1.33 -r1.34 --- libdhcp.spec 14 Aug 2006 21:23:52 -0000 1.33 +++ libdhcp.spec 8 Aug 2007 22:18:45 -0000 1.34 @@ -1,8 +1,8 @@ Summary: A library for network interface configuration with DHCP Name: libdhcp Version: 1.12 -Release: 1 -License: GPL +Release: 2 +License: GPLv2 Group: Development/Libraries URL: http://people.redhat.com/dcantrel/%{name}/%{name}-%{version}.tar.gz Source0: %{name}-%{version}.tar.gz @@ -77,6 +77,9 @@ %{pkgcfgdir}/libdhcp.pc %changelog +* Wed Aug 08 2007 David Cantrell - 1.12-2 +- Update License tag to GPLv2 + * Mon Aug 14 2006 Peter Jones - 1.12-1 - Fixes for ppc and ppc64 (#201920) From fedora-cvs-commits at redhat.com Wed Aug 8 22:20:48 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Wed, 8 Aug 2007 18:20:48 -0400 Subject: rpms/dhcdbd/FC-6 dhcdbd.spec,1.38,1.39 Message-ID: <200708082220.l78MKmbf000727@cvs.devel.redhat.com> Author: dcantrel Update of /cvs/dist/rpms/dhcdbd/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv713 Modified Files: dhcdbd.spec Log Message: * Wed Aug 08 2007 David Cantrell - 2.1-3 - Update License tag to GPLv2 Index: dhcdbd.spec =================================================================== RCS file: /cvs/dist/rpms/dhcdbd/FC-6/dhcdbd.spec,v retrieving revision 1.38 retrieving revision 1.39 diff -u -r1.38 -r1.39 --- dhcdbd.spec 5 Mar 2007 18:57:02 -0000 1.38 +++ dhcdbd.spec 8 Aug 2007 22:20:46 -0000 1.39 @@ -7,8 +7,8 @@ Summary: DHCP D-BUS daemon (dhcdbd) controls dhclient sessions with D-BUS, stores and presents DHCP options. Name: dhcdbd Version: 2.1 -Release: 2%{?dist} -License: GPL +Release: 3%{?dist} +License: GPLv2 Group: System Environment/Daemons URL: http://people.redhat.com/dcantrel/%{name}/%{name}-%{version}.tar.bz2 Source0: %{name}-%{version}.tar.bz2 @@ -61,6 +61,9 @@ %doc README COPYING ChangeLog TODO %changelog +* Wed Aug 08 2007 David Cantrell - 2.1-3 +- Update License tag to GPLv2 + * Mon Mar 05 2007 David Cantrell - 2.1-2 - Run 'chkconfig --del dhcdbd' on package removal (#222514) From fedora-cvs-commits at redhat.com Wed Aug 8 22:22:33 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Wed, 8 Aug 2007 18:22:33 -0400 Subject: rpms/pyparted/FC-6 pyparted.spec,1.28,1.29 Message-ID: <200708082222.l78MMXMu000892@cvs.devel.redhat.com> Author: dcantrel Update of /cvs/dist/rpms/pyparted/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv875 Modified Files: pyparted.spec Log Message: * Wed Aug 08 2007 David Cantrell - 1.8.5-2 - Update License tag to GPLv2 Index: pyparted.spec =================================================================== RCS file: /cvs/dist/rpms/pyparted/FC-6/pyparted.spec,v retrieving revision 1.28 retrieving revision 1.29 diff -u -r1.28 -r1.29 --- pyparted.spec 1 Mar 2007 21:19:47 -0000 1.28 +++ pyparted.spec 8 Aug 2007 22:22:31 -0000 1.29 @@ -1,8 +1,8 @@ Summary: Python module for GNU parted Name: pyparted Version: 1.8.5 -Release: 1%{?dist} -License: GPL +Release: 2%{?dist} +License: GPLv2 Group: System Environment/Libraries Source0: http://people.redhat.com/dcantrel/%{name}/%{name}-%{version}.tar.gz @@ -41,6 +41,9 @@ %{_libdir}/python?.?/site-packages/*.so %changelog +* Wed Aug 08 2007 David Cantrell - 1.8.5-2 +- Update License tag to GPLv2 + * Thu Mar 01 2007 David Cantrell - 1.8.5-1 - Upgrade to pyparted-1.8.5 - Require parted >= 1.8.2 From fedora-cvs-commits at redhat.com Wed Aug 8 22:23:35 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Wed, 8 Aug 2007 18:23:35 -0400 Subject: rpms/parted/FC-6 parted.spec,1.92,1.93 Message-ID: <200708082223.l78MNZoP001009@cvs.devel.redhat.com> Author: dcantrel Update of /cvs/dist/rpms/parted/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv994 Modified Files: parted.spec Log Message: * Wed Aug 08 2007 David Cantrell - 1.8.2-3 - Update License tag to GPLv2+ Index: parted.spec =================================================================== RCS file: /cvs/dist/rpms/parted/FC-6/parted.spec,v retrieving revision 1.92 retrieving revision 1.93 diff -u -r1.92 -r1.93 --- parted.spec 21 Mar 2007 15:14:15 -0000 1.92 +++ parted.spec 8 Aug 2007 22:23:33 -0000 1.93 @@ -4,13 +4,13 @@ Summary: The GNU disk partition manipulation program. Name: parted Version: 1.8.2 -Release: 2%{?dist} +Release: 3%{?dist} Source: ftp://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.bz2 Patch0: %{name}-%{version}-large_sectors.patch Buildroot: %{_tmppath}/%{name}-root -License: GPL +License: GPLv2+ Group: Applications/System BuildRequires: e2fsprogs-devel libtermcap-devel readline-devel ncurses-devel BuildRequires: automake libtool gettext-devel texinfo @@ -92,6 +92,9 @@ %{_libdir}/*.so %changelog +* Wed Aug 08 2007 David Cantrell - 1.8.2-3 +- Update License tag to GPLv2+ + * Wed Mar 21 2007 David Cantrell - 1.8.2-2 - Handle 2048-byte logical sectors in linux_read() (#230984) From fedora-cvs-commits at redhat.com Thu Aug 9 13:27:30 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Thu, 9 Aug 2007 09:27:30 -0400 Subject: rpms/frysk/FC-6 .cvsignore, 1.44, 1.45 frysk.spec, 1.112, 1.113 sources, 1.44, 1.45 Message-ID: <200708091327.l79DRUYD018042@cvs.devel.redhat.com> Author: cagney Update of /cvs/dist/rpms/frysk/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv18023 Modified Files: .cvsignore frysk.spec sources Log Message: * Fri Aug 03 2007 Andew Cagney - 0.0.1.2007.08.03-2 - New upstream version 0.0.1.2007.08.03, - Run bootstrap.sh. - Add automake, autoconf, and libtool to BuildRequires. - Rename libfrysk-imports.so to libfrysk-sys.so; test-core to test-core* - Add fdebuginfo, fdebugrpm, fexe, fltrace, hpd-c, and test1 to install list. - Remove stray ChangeLog file. Index: .cvsignore =================================================================== RCS file: /cvs/dist/rpms/frysk/FC-6/.cvsignore,v retrieving revision 1.44 retrieving revision 1.45 diff -u -r1.44 -r1.45 --- .cvsignore 11 Feb 2007 15:41:36 -0000 1.44 +++ .cvsignore 9 Aug 2007 13:27:27 -0000 1.45 @@ -1 +1 @@ -frysk-0.0.1.2007.02.07.rh1.tar.bz2 +frysk-0.0.1.2007.08.03.tar.bz2 Index: frysk.spec =================================================================== RCS file: /cvs/dist/rpms/frysk/FC-6/frysk.spec,v retrieving revision 1.112 retrieving revision 1.113 diff -u -r1.112 -r1.113 --- frysk.spec 11 Feb 2007 15:41:36 -0000 1.112 +++ frysk.spec 9 Aug 2007 13:27:27 -0000 1.113 @@ -1,6 +1,6 @@ Summary: Frysk execution analysis tool Name: frysk -Version: 0.0.1.2007.02.07.rh1 +Version: 0.0.1.2007.08.03 Release: 1%{?dist} License: GPL Group: Development/System @@ -9,17 +9,6 @@ %define run_make_check 0 -%if %{run_make_check} -# Disable the test which fails when building on older kernel. -Patch0: frysk-xfail-2130.patch -%endif - -# Prevent a warning from a new g++: -Patch1: frysk-20060922-a-cast.patch - -# Temporarily disable install-dejagnu: -Patch2: frysk-no-dejagnu.patch - BuildRoot: %{_tmppath}/%{name}-%{version}-root Requires: glib-java >= 0.2.6 @@ -42,6 +31,7 @@ BuildRequires: transfig >= 3.2.0 BuildRequires: gnome-python2-gconf BuildRequires: audit-libs-devel +BuildRequires: automake autoconf libtool # Fedora Core >= 6 and RHEL: %if "%{?fedora}" != "5" @@ -104,11 +94,7 @@ %prep %setup -q -n %{name}-%{version} -%if %{run_make_check} -%patch0 -%endif -%patch1 -%patch2 +./bootstrap.sh %build @@ -126,7 +112,13 @@ uname -a gcc --version - +pwd +mkdir -p build +cd build + +# Capture the configure line +echo '../configure "$@"' > configure +chmod a+x configure # FIXME: Warnings should be fixed, not suppressed: RPM_OPT_FLAGS=${RPM_OPT_FLAGS/-Wp,-D_FORTIFY_SOURCE=2 /} %configure CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" --disable-arch32-tests @@ -149,21 +141,26 @@ # Workaround for bug #??: mkdir -p $RPM_BUILD_ROOT/usr/share/frysk +pwd +cd build make DESTDIR=$RPM_BUILD_ROOT install %{?_smp_mflags} # Fix timestamp of a generated script: -touch -r frysk-gui/frysk/gui/ChangeLog $RPM_BUILD_ROOT%{_datadir}/%{name}/dogtail_scripts/frysk_suite.py +touch -r ../frysk-gui/frysk/gui/FryskGui.javain \ + $RPM_BUILD_ROOT%{_datadir}/%{name}/dogtail_scripts/frysk_suite.py # ...and a few other ones: -# ... well, these are not installed by current tarball... -#for f in test2866.py test2985.py test3380.py; do -# touch -r frysk-gui/frysk/gui/test/dogtail_scripts/$f $RPM_BUILD_ROOT%{_datadir}/%{name}/test/$f -#done +for f in test2866.py test2985.py test3380.py; do + touch -r ../frysk-gui/frysk/gui/test/dogtail_scripts/$f \ + $RPM_BUILD_ROOT%{_datadir}/%{name}/dogtail_scripts/$f +done # Workaround for #211824: rm $RPM_BUILD_ROOT%{_datadir}/java/*.jar +# Stray file +rm $RPM_BUILD_ROOT%{_datadir}/%{name}/ChangeLog # We are not yet ready to be in the menu: -mv $RPM_BUILD_ROOT%{_datadir}/applications/frysk.desktop . +mv $RPM_BUILD_ROOT%{_datadir}/applications/frysk.desktop .. %post -p /sbin/ldconfig @@ -175,18 +172,22 @@ %files %defattr(-,root,root) %doc COPYING frysk-imports/common/EXCEPTION -%{_bindir}/ftrace -%{_bindir}/fstack +%{_bindir}/fcatch %{_bindir}/fcore +%{_bindir}/fdebuginfo +%{_bindir}/fdebugrpm +%{_bindir}/fexe +%{_bindir}/fhpd +%{_bindir}/fltrace %{_bindir}/fparser +%{_bindir}/fstack %{_bindir}/fstep -%{_bindir}/fcatch -%{_bindir}/fhpd +%{_bindir}/ftrace %{_libdir}/libfrysk-antlr.so %{_libdir}/libfrysk-cdtparser.so %{_libdir}/libfrysk-core.so %{_libdir}/libfrysk-getopt.so -%{_libdir}/libfrysk-imports.so +%{_libdir}/libfrysk-sys.so %{_libdir}/libfrysk-jdom.so %{_libdir}/libfrysk-jline.so %dir %{_datadir}/%{name} @@ -199,11 +200,13 @@ %dir %{_libdir}/%{name} %{_libdir}/%{name}/funit* %{_libdir}/%{name}/ftail +%{_libdir}/%{name}/hpd-c +%{_libdir}/%{name}/test1 %{_libdir}/%{name}/fsystest %{_libdir}/%{name}/sys-tests %{_libdir}/%{name}/test_main_looper %{_datadir}/%{name}/helloworld.o -%{_datadir}/%{name}/test-core +%{_datadir}/%{name}/test-core-* %{_datadir}/%{name}/test_looper.xml # Not installed by current tarballs. #%dir %{_datadir}/%{name}/test @@ -229,6 +232,19 @@ %{_datadir}/pixmaps/fryskTrayIcon48.png %changelog +* Fri Aug 03 2007 Andew Cagney - 0.0.1.2007.08.03-2 +- New upstream version 0.0.1.2007.08.03, +- Run bootstrap.sh. +- Add automake, autoconf, and libtool to BuildRequires. +- Rename libfrysk-imports.so to libfrysk-sys.so; test-core to test-core* +- Add fdebuginfo, fdebugrpm, fexe, fltrace, hpd-c, and test1 to install list. +- Remove stray ChangeLog file. + +* Wed Jun 27 2007 Andew Cagney - 0.0.1.2007.06.21.rh2-1 +- New upstream version. +- Build out-of-tree. +- Remove Patch0, Patch1, Patch2. + * Tue Feb 6 2007 Stepan Kasal - 0.0.1.2007.02.07.rh1-1 - New upstream version. - Add Gnome help files, test_looper.xml, and test_main_looper to the file Index: sources =================================================================== RCS file: /cvs/dist/rpms/frysk/FC-6/sources,v retrieving revision 1.44 retrieving revision 1.45 diff -u -r1.44 -r1.45 --- sources 11 Feb 2007 15:41:36 -0000 1.44 +++ sources 9 Aug 2007 13:27:27 -0000 1.45 @@ -1 +1 @@ -da2547c8e0dc5bd99367b9cd2708deab frysk-0.0.1.2007.02.07.rh1.tar.bz2 +ebd0a5c96c72adc5554bdd88a3759c66 frysk-0.0.1.2007.08.03.tar.bz2 From fedora-cvs-commits at redhat.com Thu Aug 9 15:19:36 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Thu, 9 Aug 2007 11:19:36 -0400 Subject: rpms/system-config-printer/FC-6 .cvsignore, 1.120, 1.121 sources, 1.124, 1.125 system-config-printer.spec, 1.95, 1.96 Message-ID: <200708091519.l79FJaX4020308@cvs.devel.redhat.com> Author: twaugh Update of /cvs/dist/rpms/system-config-printer/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv20292 Modified Files: .cvsignore sources system-config-printer.spec Log Message: * Thu Aug 9 2007 Tim Waugh 0.7.63.3-1 - 0.7.63.3: - Don't allow deletion of browsed printers (bug #250385). - Work around bad Boolean options in PPDs (bug #241809). - Resolves: rhbz#250385 rhbz#241809 Index: .cvsignore =================================================================== RCS file: /cvs/dist/rpms/system-config-printer/FC-6/.cvsignore,v retrieving revision 1.120 retrieving revision 1.121 diff -u -r1.120 -r1.121 --- .cvsignore 10 Jul 2007 13:47:18 -0000 1.120 +++ .cvsignore 9 Aug 2007 15:19:34 -0000 1.121 @@ -100,3 +100,4 @@ system-config-printer-0.7.52.1.tar.bz2 pycups-1.9.18.tar.bz2 system-config-printer-0.7.63.2.tar.bz2 +system-config-printer-0.7.63.3.tar.bz2 Index: sources =================================================================== RCS file: /cvs/dist/rpms/system-config-printer/FC-6/sources,v retrieving revision 1.124 retrieving revision 1.125 diff -u -r1.124 -r1.125 --- sources 10 Jul 2007 13:47:18 -0000 1.124 +++ sources 9 Aug 2007 15:19:34 -0000 1.125 @@ -1,2 +1,2 @@ 5038e4c6945c5183ad7061d6ee061205 pycups-1.9.24.tar.bz2 -dca0f218fa1f35732b7cbf5ce97c61d8 system-config-printer-0.7.63.2.tar.bz2 +3aeb83e328d383c7f57f3311ec9a9a42 system-config-printer-0.7.63.3.tar.bz2 Index: system-config-printer.spec =================================================================== RCS file: /cvs/dist/rpms/system-config-printer/FC-6/system-config-printer.spec,v retrieving revision 1.95 retrieving revision 1.96 diff -u -r1.95 -r1.96 --- system-config-printer.spec 10 Jul 2007 13:56:50 -0000 1.95 +++ system-config-printer.spec 9 Aug 2007 15:19:34 -0000 1.96 @@ -2,8 +2,8 @@ Summary: A printer administration tool Name: system-config-printer -Version: 0.7.63.2 -Release: 2%{?dist} +Version: 0.7.63.3 +Release: 1%{?dist} License: GPL Group: System Environment/Base Source0: system-config-printer-%{version}.tar.bz2 @@ -135,6 +135,11 @@ fi %changelog +* Thu Aug 9 2007 Tim Waugh 0.7.63.3-1 +- 0.7.63.3: + - Don't allow deletion of browsed printers (bug #250385). + - Work around bad Boolean options in PPDs (bug #241809). + * Tue Jul 10 2007 Tim Waugh 0.7.63.2-2 - Fixed desktop file. From fedora-cvs-commits at redhat.com Thu Aug 9 15:50:32 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Thu, 9 Aug 2007 11:50:32 -0400 Subject: rpms/cups/FC-6 cups-CVE-2007-3387.patch, NONE, 1.1 cups.spec, 1.339, 1.340 Message-ID: <200708091550.l79FoWp2021063@cvs.devel.redhat.com> Author: twaugh Update of /cvs/dist/rpms/cups/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv21042 Modified Files: cups.spec Added Files: cups-CVE-2007-3387.patch Log Message: * Thu Aug 9 2007 Tim Waugh 1:1.2.12-4 - Applied patch to fix CVE-2007-3387 (bug #251519). - Resolves: rhbz#251519 cups-CVE-2007-3387.patch: Stream.cxx | 12 +++++------- 1 files changed, 5 insertions(+), 7 deletions(-) --- NEW FILE cups-CVE-2007-3387.patch --- --- cups-1.2.12/pdftops/Stream.cxx.CVE-2007-3387 2006-02-13 03:08:11.000000000 +0000 +++ cups-1.2.12/pdftops/Stream.cxx 2007-08-09 16:29:28.000000000 +0100 @@ -411,15 +411,13 @@ ok = gFalse; nVals = width * nComps; - if (width <= 0 || nComps <= 0 || nBits <= 0 || - nComps >= INT_MAX / nBits || - width >= INT_MAX / nComps / nBits || - nVals * nBits + 7 < 0) { - return; - } pixBytes = (nComps * nBits + 7) >> 3; rowBytes = ((nVals * nBits + 7) >> 3) + pixBytes; - if (rowBytes <= 0) { + if (width <= 0 || nComps <= 0 || nBits <= 0 || + nComps > gfxColorMaxComps || + nBits > 16 || + width >= INT_MAX / nComps || // check for overflow in nVals + nVals >= (INT_MAX - 7) / nBits) { // check for overflow in rowBytes return; } predLine = (Guchar *)gmalloc(rowBytes); Index: cups.spec =================================================================== RCS file: /cvs/dist/rpms/cups/FC-6/cups.spec,v retrieving revision 1.339 retrieving revision 1.340 diff -u -r1.339 -r1.340 --- cups.spec 31 Jul 2007 12:22:29 -0000 1.339 +++ cups.spec 9 Aug 2007 15:50:30 -0000 1.340 @@ -6,7 +6,7 @@ Summary: Common Unix Printing System Name: cups Version: 1.2.12 -Release: 3%{?dist} +Release: 4%{?dist} License: GPL Group: System Environment/Daemons Source: ftp://ftp.easysw.com/pub/cups/%{version}/cups-%{version}-source.tar.bz2 @@ -48,6 +48,7 @@ Patch22: cups-logrotate.patch Patch24: cups-str2109.patch Patch25: cups-usb-paperout.patch +Patch26: cups-CVE-2007-3387.patch Patch100: cups-lspp.patch Epoch: 1 Url: http://www.cups.org/ @@ -157,6 +158,7 @@ %patch22 -p1 -b .logrotate %patch24 -p1 -b .str2109 %patch25 -p1 -b .usb-paperout +%patch26 -p1 -b .CVE-2007-3387 %if %lspp %patch100 -p1 -b .lspp @@ -441,6 +443,9 @@ %{cups_serverbin}/daemon/cups-lpd %changelog +* Thu Aug 9 2007 Tim Waugh 1:1.2.12-4 +- Applied patch to fix CVE-2007-3387 (bug #251519). + * Tue Jul 31 2007 Tim Waugh 1:1.2.12-3 - Better buildroot tag. - Moved LSPP access check and security attributes check in add_job() to From fedora-cvs-commits at redhat.com Thu Aug 9 15:54:07 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Thu, 9 Aug 2007 11:54:07 -0400 Subject: rpms/cups/FC-6 cups.spec,1.340,1.341 Message-ID: <200708091554.l79Fs75U021213@cvs.devel.redhat.com> Author: twaugh Update of /cvs/dist/rpms/cups/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv21199 Modified Files: cups.spec Log Message: Exclude s390: FC-6 build problems Index: cups.spec =================================================================== RCS file: /cvs/dist/rpms/cups/FC-6/cups.spec,v retrieving revision 1.340 retrieving revision 1.341 diff -u -r1.340 -r1.341 --- cups.spec 9 Aug 2007 15:50:30 -0000 1.340 +++ cups.spec 9 Aug 2007 15:54:05 -0000 1.341 @@ -60,6 +60,8 @@ Prereq: /usr/sbin/alternatives %endif +ExcludeArch: s390 + # Unconditionally obsolete LPRng so that upgrades work properly. Obsoletes: lpd lpr LPRng <= 3.8.15-3 Provides: lpd lpr From fedora-cvs-commits at redhat.com Thu Aug 9 16:07:26 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Thu, 9 Aug 2007 12:07:26 -0400 Subject: rpms/cups/FC-6 cups.spec,1.341,1.342 Message-ID: <200708091607.l79G7QUj021772@cvs.devel.redhat.com> Author: twaugh Update of /cvs/dist/rpms/cups/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv21758 Modified Files: cups.spec Log Message: Remove 'ExcludeArch' for next build. Index: cups.spec =================================================================== RCS file: /cvs/dist/rpms/cups/FC-6/cups.spec,v retrieving revision 1.341 retrieving revision 1.342 diff -u -r1.341 -r1.342 --- cups.spec 9 Aug 2007 15:54:05 -0000 1.341 +++ cups.spec 9 Aug 2007 16:07:24 -0000 1.342 @@ -60,8 +60,6 @@ Prereq: /usr/sbin/alternatives %endif -ExcludeArch: s390 - # Unconditionally obsolete LPRng so that upgrades work properly. Obsoletes: lpd lpr LPRng <= 3.8.15-3 Provides: lpd lpr From fedora-cvs-commits at redhat.com Thu Aug 9 16:15:05 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Thu, 9 Aug 2007 12:15:05 -0400 Subject: rpms/system-config-printer/FC-6 system-config-printer.spec, 1.96, 1.97 Message-ID: <200708091615.l79GF5sh021956@cvs.devel.redhat.com> Author: twaugh Update of /cvs/dist/rpms/system-config-printer/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv21921 Modified Files: system-config-printer.spec Log Message: Exclude s390: FC-6 build root problems Index: system-config-printer.spec =================================================================== RCS file: /cvs/dist/rpms/system-config-printer/FC-6/system-config-printer.spec,v retrieving revision 1.96 retrieving revision 1.97 diff -u -r1.96 -r1.97 --- system-config-printer.spec 9 Aug 2007 15:19:34 -0000 1.96 +++ system-config-printer.spec 9 Aug 2007 16:15:03 -0000 1.97 @@ -11,6 +11,8 @@ Source2: system-config-printer.pam Source3: system-config-printer.console +ExcludeArch: s390 + %{expand: %%define pyver %(python -c 'import sys;print(sys.version[0:3])')} BuildRequires: cups-devel >= 1.2 From fedora-cvs-commits at redhat.com Thu Aug 9 16:34:57 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Thu, 9 Aug 2007 12:34:57 -0400 Subject: rpms/system-config-printer/FC-6 system-config-printer.spec, 1.97, 1.98 Message-ID: <200708091634.l79GYvqG022463@cvs.devel.redhat.com> Author: twaugh Update of /cvs/dist/rpms/system-config-printer/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv22448 Modified Files: system-config-printer.spec Log Message: Remove ExcludeArch for next build. Index: system-config-printer.spec =================================================================== RCS file: /cvs/dist/rpms/system-config-printer/FC-6/system-config-printer.spec,v retrieving revision 1.97 retrieving revision 1.98 diff -u -r1.97 -r1.98 --- system-config-printer.spec 9 Aug 2007 16:15:03 -0000 1.97 +++ system-config-printer.spec 9 Aug 2007 16:34:54 -0000 1.98 @@ -11,8 +11,6 @@ Source2: system-config-printer.pam Source3: system-config-printer.console -ExcludeArch: s390 - %{expand: %%define pyver %(python -c 'import sys;print(sys.version[0:3])')} BuildRequires: cups-devel >= 1.2 From fedora-cvs-commits at redhat.com Thu Aug 9 20:36:24 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Thu, 9 Aug 2007 16:36:24 -0400 Subject: rpms/kernel/FC-6 linux-2.6-default_pci_no_msi.patch, NONE, 1.1 kernel-2.6.spec, 1.3001, 1.3002 Message-ID: <200708092036.l79KaOGh029955@cvs.devel.redhat.com> Author: cebbert Update of /cvs/dist/rpms/kernel/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv29934 Modified Files: kernel-2.6.spec Added Files: linux-2.6-default_pci_no_msi.patch Log Message: * Thu Aug 09 2007 Chuck Ebbert - disable PCI MSI by default linux-2.6-default_pci_no_msi.patch: Documentation/kernel-parameters.txt | 3 +++ drivers/pci/msi.c | 12 +++++++++++- drivers/pci/pci.c | 10 ++++++++++ drivers/pci/pci.h | 4 ++++ 4 files changed, 28 insertions(+), 1 deletion(-) --- NEW FILE linux-2.6-default_pci_no_msi.patch --- --- Documentation/kernel-parameters.txt | 3 +++ drivers/pci/msi.c | 12 +++++++++++- drivers/pci/pci.c | 10 ++++++++++ drivers/pci/pci.h | 4 ++++ 4 files changed, 28 insertions(+), 1 deletion(-) --- linux-2.6.22.noarch.orig/Documentation/kernel-parameters.txt +++ linux-2.6.22.noarch/Documentation/kernel-parameters.txt @@ -1276,6 +1276,9 @@ and is between 256 and 4096 characters. nomsi [MSI] If the PCI_MSI kernel config parameter is enabled, this kernel boot option can be used to disable the use of MSI interrupts system-wide. + msi [MSI] If the PCI_MSI kernel config parameter is + enabled, this kernel boot option can be used to + enable the use of MSI interrupts system-wide. nosort [IA-32] Don't sort PCI devices according to order given by the PCI BIOS. This sorting is done to get a device order compatible with --- linux-2.6.22.noarch.orig/drivers/pci/msi.c +++ linux-2.6.22.noarch/drivers/pci/msi.c @@ -23,7 +23,7 @@ #include "pci.h" #include "msi.h" -static int pci_msi_enable = 1; +static int pci_msi_enable = 0; static void msi_set_enable(struct pci_dev *dev, int enable) { @@ -673,6 +673,16 @@ void pci_no_msi(void) pci_msi_enable = 0; } +void pci_yes_msi(void) +{ + pci_msi_enable = 1; +} + +int pci_msi_enabled(void) +{ + return pci_msi_enable; +} + void pci_msi_init_pci_dev(struct pci_dev *dev) { INIT_LIST_HEAD(&dev->msi_list); --- linux-2.6.22.noarch.orig/drivers/pci/pci.c +++ linux-2.6.22.noarch/drivers/pci/pci.c @@ -1397,13 +1397,18 @@ static int __devinit pci_init(void) static int __devinit pci_setup(char *str) { + int msi_disabled_by_user = 0; + while (str) { char *k = strchr(str, ','); if (k) *k++ = 0; if (*str && (str = pcibios_setup(str)) && *str) { if (!strcmp(str, "nomsi")) { + msi_disabled_by_user = 1; pci_no_msi(); + } else if (!strcmp(str, "msi")) { + pci_yes_msi(); } else if (!strncmp(str, "cbiosize=", 9)) { pci_cardbus_io_size = memparse(str + 9, &str); } else if (!strncmp(str, "cbmemsize=", 10)) { @@ -1415,6 +1420,11 @@ static int __devinit pci_setup(char *str } str = k; } +#ifdef CONFIG_PCI_MSI + if (!pci_msi_enabled() && !msi_disabled_by_user) + printk(KERN_INFO "PCI Message Signaled Interrupts disabled " + "by default. Enable with \"pci=msi\".\n"); +#endif return 0; } early_param("pci", pci_setup); --- linux-2.6.22.noarch.orig/drivers/pci/pci.h +++ linux-2.6.22.noarch/drivers/pci/pci.h @@ -47,9 +47,13 @@ extern unsigned int pci_pm_d3_delay; #ifdef CONFIG_PCI_MSI void pci_no_msi(void); +void pci_yes_msi(void); +int pci_msi_enabled(void); extern void pci_msi_init_pci_dev(struct pci_dev *dev); #else static inline void pci_no_msi(void) { } +static inline void pci_yes_msi(void) { } +static inline int pci_msi_enabled(void) { return 0; } static inline void pci_msi_init_pci_dev(struct pci_dev *dev) { } #endif Index: kernel-2.6.spec =================================================================== RCS file: /cvs/dist/rpms/kernel/FC-6/kernel-2.6.spec,v retrieving revision 1.3001 retrieving revision 1.3002 diff -u -r1.3001 -r1.3002 --- kernel-2.6.spec 8 Aug 2007 18:56:43 -0000 1.3001 +++ kernel-2.6.spec 9 Aug 2007 20:36:22 -0000 1.3002 @@ -583,9 +583,14 @@ Patch590: linux-2.6-unexport-symbols.patch Patch600: linux-2.6-vm-silence-atomic-alloc-failures.patch Patch601: linux-2.6-slub-dont-bug-on-too-large-allocation.patch + Patch610: linux-2.6-defaults-fat-utf8.patch Patch620: linux-2.6-defaults-unicode-vt.patch Patch630: linux-2.6-defaults-nonmi.patch +Patch635: linux-2.6-usb-autosuspend-default-disable.patch +Patch636: linux-2.6-nohz-highres-disable.patch +Patch640: linux-2.6-default_pci_no_msi.patch + Patch660: linux-2.6-libata-ali-atapi-dma.patch Patch661: linux-2.6-libata-ich8m-add-pciid.patch Patch662: linux-2.6-ata-update-noncq.patch @@ -608,7 +613,6 @@ Patch742: linux-2.6-sdhci-clear-error-interrupt.patch Patch760: linux-2.6-usb-ftdi_sio-fix-oops.patch #Patch780: linux-2.6-clockevents-fix-resume-logic.patch -Patch781: linux-2.6-nohz-highres-disable.patch Patch790: linux-2.6-acpi-dock-oops.patch Patch791: linux-2.6-cpufreq-acpi-fix-msr-write.patch Patch800: linux-2.6-wakeups-hdaps.patch @@ -616,7 +620,6 @@ Patch900: linux-2.6-sched-cfs.patch Patch1000: linux-2.6-dmi-based-module-autoloading.patch Patch1010: linux-2.6-ondemand-timer.patch -Patch1020: linux-2.6-usb-autosuspend-default-disable.patch Patch1030: linux-2.6-nfs-nosharecache.patch Patch1400: linux-2.6-pcspkr-use-the-global-pit-lock.patch Patch1420: linux-2.6-seq_operations-leak.patch @@ -1094,8 +1097,6 @@ ApplyPatch linux-2.6-ondemand-timer.patch -# Some USB devices don't work after auto-suspend, disable by default. -ApplyPatch linux-2.6-usb-autosuspend-default-disable.patch # enable sysrq-c on all kernels, not only kexec ApplyPatch linux-2.6-sysrq-c.patch @@ -1258,6 +1259,12 @@ ApplyPatch linux-2.6-defaults-unicode-vt.patch # Disable NMI watchdog by default. ApplyPatch linux-2.6-defaults-nonmi.patch +# disable MSI by default +ApplyPatch linux-2.6-default_pci_no_msi.patch +# disable nohz and highres kernel options by default +ApplyPatch linux-2.6-nohz-highres-disable.patch +# Some USB devices don't work after auto-suspend, disable by default. +ApplyPatch linux-2.6-usb-autosuspend-default-disable.patch # Disable ATAPI DMA on ALI chipsets. ApplyPatch linux-2.6-libata-ali-atapi-dma.patch @@ -1309,8 +1316,6 @@ ApplyPatch linux-2.6-usb-ftdi_sio-fix-oops.patch # timers -# disable nohz and highres kernel options by default -ApplyPatch linux-2.6-nohz-highres-disable.patch # ACPI patches # Fix ACPI dock oops (#238054) @@ -2257,6 +2262,9 @@ %endif %changelog +* Thu Aug 09 2007 Chuck Ebbert +- disable PCI MSI by default + * Wed Aug 08 2007 Chuck Ebbert - add xt_statistic.h to header list for iptables - detect broken lapic timer on some dual-core AMD systems From fedora-cvs-commits at redhat.com Thu Aug 9 21:01:38 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Thu, 9 Aug 2007 17:01:38 -0400 Subject: rpms/kernel/FC-6 kernel-2.6.spec,1.3002,1.3003 Message-ID: <200708092101.l79L1cFj030762@cvs.devel.redhat.com> Author: cebbert Update of /cvs/dist/rpms/kernel/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv30725 Modified Files: kernel-2.6.spec Log Message: * Thu Aug 09 2007 Chuck Ebbert - disable CONFIG_SCSI_SCAN_ASYNC Index: kernel-2.6.spec =================================================================== RCS file: /cvs/dist/rpms/kernel/FC-6/kernel-2.6.spec,v retrieving revision 1.3002 retrieving revision 1.3003 diff -u -r1.3002 -r1.3003 --- kernel-2.6.spec 9 Aug 2007 20:36:22 -0000 1.3002 +++ kernel-2.6.spec 9 Aug 2007 21:01:34 -0000 1.3003 @@ -2263,6 +2263,9 @@ %changelog * Thu Aug 09 2007 Chuck Ebbert +- disable CONFIG_SCSI_SCAN_ASYNC + +* Thu Aug 09 2007 Chuck Ebbert - disable PCI MSI by default * Wed Aug 08 2007 Chuck Ebbert From fedora-cvs-commits at redhat.com Thu Aug 9 21:01:38 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Thu, 9 Aug 2007 17:01:38 -0400 Subject: rpms/kernel/FC-6/configs config-generic,1.272,1.273 Message-ID: <200708092101.l79L1c9i030774@cvs.devel.redhat.com> Author: cebbert Update of /cvs/dist/rpms/kernel/FC-6/configs In directory cvs.devel.redhat.com:/tmp/cvs-serv30725/configs Modified Files: config-generic Log Message: * Thu Aug 09 2007 Chuck Ebbert - disable CONFIG_SCSI_SCAN_ASYNC Index: config-generic =================================================================== RCS file: /cvs/dist/rpms/kernel/FC-6/configs/config-generic,v retrieving revision 1.272 retrieving revision 1.273 diff -u -r1.272 -r1.273 --- config-generic 23 Jul 2007 19:34:45 -0000 1.272 +++ config-generic 9 Aug 2007 21:01:36 -0000 1.273 @@ -399,7 +399,7 @@ CONFIG_SCSI_PROC_FS=y CONFIG_SCSI_TGT=m -CONFIG_SCSI_SCAN_ASYNC=y +# CONFIG_SCSI_SCAN_ASYNC is not set CONFIG_SCSI_SRP=m # From fedora-cvs-commits at redhat.com Thu Aug 9 21:26:52 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Thu, 9 Aug 2007 17:26:52 -0400 Subject: rpms/kernel/FC-6 Makefile.config, 1.52, 1.53 kernel-2.6.spec, 1.3003, 1.3004 Message-ID: <200708092126.l79LQqHN031499@cvs.devel.redhat.com> Author: cebbert Update of /cvs/dist/rpms/kernel/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv31484 Modified Files: Makefile.config kernel-2.6.spec Log Message: * Thu Aug 09 2007 Chuck Ebbert - hopefully add s390 back to the build (ugly hack, s390 overrides s390x, no -generic used) Index: Makefile.config =================================================================== RCS file: /cvs/dist/rpms/kernel/FC-6/Makefile.config,v retrieving revision 1.52 retrieving revision 1.53 diff -u -r1.52 -r1.53 --- Makefile.config 10 Jul 2007 01:23:51 -0000 1.52 +++ Makefile.config 9 Aug 2007 21:26:49 -0000 1.53 @@ -9,13 +9,14 @@ $(CFG)-i686.config $(CFG)-i686-PAE.config \ $(CFG)-i686-debug.config $(CFG)-i686-PAE-debug.config \ $(CFG)-x86_64.config $(CFG)-x86_64-debug.config \ + $(CFG)-s390.config \ $(CFG)-s390x.config \ $(CFG)-ppc.config $(CFG)-ppc-smp.config \ $(CFG)-ppc64.config $(CFG)-ppc64-kdump.config $(CFG)-ia64.config \ $(CFG)-i686-xen.config $(CFG)-x86_64-xen.config \ $(CFG)-ia64-xen.config -PLATFORMS = x86 x86_64 powerpc powerpc32 powerpc64 s390x ia64 # sparc sparc64 +PLATFORMS = x86 x86_64 powerpc powerpc32 powerpc64 s390 s390x ia64 # sparc sparc64 TEMPFILES = $(addprefix temp-, $(addsuffix -generic, $(PLATFORMS))) configs: $(CONFIGFILES) @@ -117,6 +118,9 @@ kernel-$(VERSION)-ppc64-kdump.config: configs/config-powerpc64-kdump kernel-$(VERSION)-ppc64.config perl merge.pl $^ powerpc > $@ +kernel-$(VERSION)-s390.config: configs/config-s390 temp-s390-generic + perl merge.pl $^ s390 > $@ + kernel-$(VERSION)-s390x.config: configs/config-s390x temp-s390-generic perl merge.pl $^ s390 > $@ Index: kernel-2.6.spec =================================================================== RCS file: /cvs/dist/rpms/kernel/FC-6/kernel-2.6.spec,v retrieving revision 1.3003 retrieving revision 1.3004 diff -u -r1.3003 -r1.3004 --- kernel-2.6.spec 9 Aug 2007 21:01:34 -0000 1.3003 +++ kernel-2.6.spec 9 Aug 2007 21:26:49 -0000 1.3004 @@ -247,7 +247,7 @@ %endif # don't sign modules on these platforms -%ifarch s390x sparc sparc64 ppc alpha +%ifarch s390 s390x sparc sparc64 ppc alpha %define with_modsign 0 %endif @@ -280,6 +280,13 @@ %define hdrarch powerpc %endif +%ifarch s390 +%define all_arch_configs $RPM_SOURCE_DIR/kernel-%{version}-s390.config +%define image_install_path boot +%define make_target image +%define kernel_image arch/s390/boot/image +%endif + %ifarch s390x %define all_arch_configs $RPM_SOURCE_DIR/kernel-%{version}-s390x.config %define image_install_path boot @@ -396,7 +403,7 @@ Release: %{pkg_release} # DO NOT CHANGE THE 'ExclusiveArch' LINE TO TEMPORARILY EXCLUDE AN ARCHITECTURE BUILD. # SET %nobuildarches (ABOVE) INSTEAD -ExclusiveArch: noarch %{all_x86} x86_64 ppc ppc64 ia64 sparc sparc64 s390x alpha alphaev56 +ExclusiveArch: noarch %{all_x86} x86_64 ppc ppc64 ia64 sparc sparc64 s390 s390x alpha alphaev56 ExclusiveOS: Linux Provides: kernel-drm = 4.3.0 Provides: kernel-drm-nouveau = 6 @@ -449,7 +456,8 @@ Source30: kernel-%{version}-ppc64.config Source31: kernel-%{version}-ppc64-kdump.config -Source35: kernel-%{version}-s390x.config +Source35: kernel-%{version}-s390.config +Source36: kernel-%{version}-s390x.config Source36: kernel-%{version}-ia64.config @@ -2263,6 +2271,10 @@ %changelog * Thu Aug 09 2007 Chuck Ebbert +- hopefully add s390 back to the build + (ugly hack, s390 overrides s390x, no -generic used) + +* Thu Aug 09 2007 Chuck Ebbert - disable CONFIG_SCSI_SCAN_ASYNC * Thu Aug 09 2007 Chuck Ebbert From fedora-cvs-commits at redhat.com Thu Aug 9 21:45:11 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Thu, 9 Aug 2007 17:45:11 -0400 Subject: rpms/kernel/FC-6 kernel-2.6.spec,1.3004,1.3005 Message-ID: <200708092145.l79LjBDT032006@cvs.devel.redhat.com> Author: cebbert Update of /cvs/dist/rpms/kernel/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv31965 Modified Files: kernel-2.6.spec Log Message: typo in s390 all-arch_configs Index: kernel-2.6.spec =================================================================== RCS file: /cvs/dist/rpms/kernel/FC-6/kernel-2.6.spec,v retrieving revision 1.3004 retrieving revision 1.3005 diff -u -r1.3004 -r1.3005 --- kernel-2.6.spec 9 Aug 2007 21:26:49 -0000 1.3004 +++ kernel-2.6.spec 9 Aug 2007 21:45:09 -0000 1.3005 @@ -281,7 +281,7 @@ %endif %ifarch s390 -%define all_arch_configs $RPM_SOURCE_DIR/kernel-%{version}-s390.config +%define all_arch_configs $RPM_SOURCE_DIR/kernel-%{version}-s390*.config %define image_install_path boot %define make_target image %define kernel_image arch/s390/boot/image From fedora-cvs-commits at redhat.com Thu Aug 9 22:52:54 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Thu, 9 Aug 2007 18:52:54 -0400 Subject: rpms/kernel/FC-6 Makefile.config, 1.53, 1.54 kernel-2.6.spec, 1.3005, 1.3006 Message-ID: <200708092252.l79Mqs1h001316@cvs.devel.redhat.com> Author: cebbert Update of /cvs/dist/rpms/kernel/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv1299 Modified Files: Makefile.config kernel-2.6.spec Log Message: * Thu Aug 09 2007 Chuck Ebbert - revert s390 changes Index: Makefile.config =================================================================== RCS file: /cvs/dist/rpms/kernel/FC-6/Makefile.config,v retrieving revision 1.53 retrieving revision 1.54 diff -u -r1.53 -r1.54 --- Makefile.config 9 Aug 2007 21:26:49 -0000 1.53 +++ Makefile.config 9 Aug 2007 22:52:51 -0000 1.54 @@ -9,14 +9,13 @@ $(CFG)-i686.config $(CFG)-i686-PAE.config \ $(CFG)-i686-debug.config $(CFG)-i686-PAE-debug.config \ $(CFG)-x86_64.config $(CFG)-x86_64-debug.config \ - $(CFG)-s390.config \ $(CFG)-s390x.config \ $(CFG)-ppc.config $(CFG)-ppc-smp.config \ $(CFG)-ppc64.config $(CFG)-ppc64-kdump.config $(CFG)-ia64.config \ $(CFG)-i686-xen.config $(CFG)-x86_64-xen.config \ $(CFG)-ia64-xen.config -PLATFORMS = x86 x86_64 powerpc powerpc32 powerpc64 s390 s390x ia64 # sparc sparc64 +PLATFORMS = x86 x86_64 powerpc powerpc32 powerpc64 s390x ia64 # sparc sparc64 TEMPFILES = $(addprefix temp-, $(addsuffix -generic, $(PLATFORMS))) configs: $(CONFIGFILES) @@ -118,9 +117,6 @@ kernel-$(VERSION)-ppc64-kdump.config: configs/config-powerpc64-kdump kernel-$(VERSION)-ppc64.config perl merge.pl $^ powerpc > $@ -kernel-$(VERSION)-s390.config: configs/config-s390 temp-s390-generic - perl merge.pl $^ s390 > $@ - kernel-$(VERSION)-s390x.config: configs/config-s390x temp-s390-generic perl merge.pl $^ s390 > $@ Index: kernel-2.6.spec =================================================================== RCS file: /cvs/dist/rpms/kernel/FC-6/kernel-2.6.spec,v retrieving revision 1.3005 retrieving revision 1.3006 diff -u -r1.3005 -r1.3006 --- kernel-2.6.spec 9 Aug 2007 21:45:09 -0000 1.3005 +++ kernel-2.6.spec 9 Aug 2007 22:52:51 -0000 1.3006 @@ -247,7 +247,7 @@ %endif # don't sign modules on these platforms -%ifarch s390 s390x sparc sparc64 ppc alpha +%ifarch s390x sparc sparc64 ppc alpha %define with_modsign 0 %endif @@ -280,13 +280,6 @@ %define hdrarch powerpc %endif -%ifarch s390 -%define all_arch_configs $RPM_SOURCE_DIR/kernel-%{version}-s390*.config -%define image_install_path boot -%define make_target image -%define kernel_image arch/s390/boot/image -%endif - %ifarch s390x %define all_arch_configs $RPM_SOURCE_DIR/kernel-%{version}-s390x.config %define image_install_path boot @@ -403,7 +396,7 @@ Release: %{pkg_release} # DO NOT CHANGE THE 'ExclusiveArch' LINE TO TEMPORARILY EXCLUDE AN ARCHITECTURE BUILD. # SET %nobuildarches (ABOVE) INSTEAD -ExclusiveArch: noarch %{all_x86} x86_64 ppc ppc64 ia64 sparc sparc64 s390 s390x alpha alphaev56 +ExclusiveArch: noarch %{all_x86} x86_64 ppc ppc64 ia64 sparc sparc64 s390x alpha alphaev56 ExclusiveOS: Linux Provides: kernel-drm = 4.3.0 Provides: kernel-drm-nouveau = 6 @@ -456,8 +449,7 @@ Source30: kernel-%{version}-ppc64.config Source31: kernel-%{version}-ppc64-kdump.config -Source35: kernel-%{version}-s390.config -Source36: kernel-%{version}-s390x.config +Source35: kernel-%{version}-s390x.config Source36: kernel-%{version}-ia64.config @@ -2271,6 +2263,9 @@ %changelog * Thu Aug 09 2007 Chuck Ebbert +- revert s390 changes + +* Thu Aug 09 2007 Chuck Ebbert - hopefully add s390 back to the build (ugly hack, s390 overrides s390x, no -generic used) From fedora-cvs-commits at redhat.com Fri Aug 10 01:32:53 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Thu, 9 Aug 2007 21:32:53 -0400 Subject: rpms/libvorbis/FC-6 r13149.patch, NONE, 1.1 r13151.patch, NONE, 1.1 r13153.patch, NONE, 1.1 r13154.patch, NONE, 1.1 r13155.patch, NONE, 1.1 r13160-CVE-2007-3106.patch, NONE, 1.1 r13162.patch, NONE, 1.1 r13167.patch, NONE, 1.1 r13168.patch, NONE, 1.1 r13169.patch, NONE, 1.1 r13170.patch, NONE, 1.1 r13172.patch, NONE, 1.1 r13179.patch, NONE, 1.1 r13211.patch, NONE, 1.1 r13215.patch, NONE, 1.1 r13217-CVE-2007-4065.patch, NONE, 1.1 libvorbis.spec, 1.24, 1.25 Message-ID: <200708100132.l7A1WrKU004373@cvs.devel.redhat.com> Author: besfahbo Update of /cvs/dist/rpms/libvorbis/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv4355 Modified Files: libvorbis.spec Added Files: r13149.patch r13151.patch r13153.patch r13154.patch r13155.patch r13160-CVE-2007-3106.patch r13162.patch r13167.patch r13168.patch r13169.patch r13170.patch r13172.patch r13179.patch r13211.patch r13215.patch r13217-CVE-2007-4065.patch Log Message: * Thu Aug 9 2007 Behdad Esfahbod - 1:1.1.2-3 - Add 16 patches to fix various CVEs. - Resolves: #250600 r13149.patch: info.c | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) --- NEW FILE r13149.patch --- Index: lib/info.c =================================================================== --- lib/info.c (revision 13148) +++ lib/info.c (revision 13149) @@ -211,7 +211,7 @@ static int _vorbis_unpack_info(vorbis_in if(vi->rate<1)goto err_out; if(vi->channels<1)goto err_out; - if(ci->blocksizes[0]<8)goto err_out; + if(ci->blocksizes[0]<64)goto err_out; if(ci->blocksizes[1]blocksizes[0])goto err_out; if(oggpack_read(opb,1)!=1)goto err_out; /* EOP check */ r13151.patch: floor1.c | 12 + res0.c | 469 ++++++++++++++++++++++++++++++++------------------------------- 2 files changed, 251 insertions(+), 230 deletions(-) --- NEW FILE r13151.patch --- Index: lib/floor1.c =================================================================== --- lib/floor1.c (revision 13150) +++ lib/floor1.c (revision 13151) @@ -358,7 +358,7 @@ static float FLOOR1_fromdB_LOOKUP[256]={ 0.82788260F, 0.88168307F, 0.9389798F, 1.F, }; -static void render_line(int x0,int x1,int y0,int y1,float *d){ +static void render_line(int n, int x0,int x1,int y0,int y1,float *d){ int dy=y1-y0; int adx=x1-x0; int ady=abs(dy); @@ -370,8 +370,12 @@ static void render_line(int x0,int x1,in ady-=abs(base*adx); - d[x]*=FLOOR1_fromdB_LOOKUP[y]; - while(++xx1)n=x1; + + if(x=adx){ err-=adx; @@ -1068,7 +1072,7 @@ static int floor1_inverse2(vorbis_block hy*=info->mult; hx=info->postlist[current]; - render_line(lx,hx,ly,hy,out); + render_line(n,lx,hx,ly,hy,out); lx=hx; ly=hy; Index: lib/res0.c =================================================================== --- lib/res0.c (revision 13150) +++ lib/res0.c (revision 13151) @@ -375,59 +375,63 @@ static long **_01class(vorbis_block *vb, /* move all this setup out later */ int samples_per_partition=info->grouping; int possible_partitions=info->partitions; - int n=info->end-info->begin; + int end=(info->endpcmend?info->end:vb->pcmend); + int n=end-info->begin; - int partvals=n/samples_per_partition; - long **partword=_vorbis_block_alloc(vb,ch*sizeof(*partword)); - float scale=100./samples_per_partition; - - /* we find the partition type for each partition of each - channel. We'll go back and do the interleaved encoding in a - bit. For now, clarity */ - - for(i=0;ibegin; - for(j=0;jmax)max=fabs(in[j][offset+k]); - ent+=fabs(rint(in[j][offset+k])); + if(n>0){ + int partvals=n/samples_per_partition; + long **partword=_vorbis_block_alloc(vb,ch*sizeof(*partword)); + float scale=100./samples_per_partition; + + /* we find the partition type for each partition of each + channel. We'll go back and do the interleaved encoding in a + bit. For now, clarity */ + + for(i=0;ibegin; + for(j=0;jmax)max=fabs(in[j][offset+k]); + ent+=fabs(rint(in[j][offset+k])); + } + ent*=scale; + + for(k=0;kclassmetric1[k] && + (info->classmetric2[k]<0 || (int)entclassmetric2[k])) + break; + + partword[j][i]=k; } - ent*=scale; - - for(k=0;kclassmetric1[k] && - (info->classmetric2[k]<0 || (int)entclassmetric2[k])) - break; - - partword[j][i]=k; } - } - + #ifdef TRAIN_RESAUX - { - FILE *of; - char buffer[80]; - - for(i=0;itrain_seq); - of=fopen(buffer,"a"); - for(j=0;jtrain_seq); + of=fopen(buffer,"a"); + for(j=0;jframes++; - - return(partword); + look->frames++; + + return(partword); + }else + return(0); } /* designed for stereo or other modes where the partition size is an @@ -442,50 +446,54 @@ static long **_2class(vorbis_block *vb,v /* move all this setup out later */ int samples_per_partition=info->grouping; int possible_partitions=info->partitions; - int n=info->end-info->begin; - - int partvals=n/samples_per_partition; - long **partword=_vorbis_block_alloc(vb,sizeof(*partword)); + int end=(info->endpcmend?info->end:vb->pcmend); + int n=end-info->begin; + if(n>0){ + int partvals=n/samples_per_partition; + long **partword=_vorbis_block_alloc(vb,sizeof(*partword)); + #if defined(TRAIN_RES) || defined (TRAIN_RESAUX) - FILE *of; - char buffer[80]; + FILE *of; + char buffer[80]; #endif - - partword[0]=_vorbis_block_alloc(vb,n*ch/samples_per_partition*sizeof(*partword[0])); - memset(partword[0],0,n*ch/samples_per_partition*sizeof(*partword[0])); - - for(i=0,l=info->begin/ch;imagmax)magmax=fabs(in[0][l]); - for(k=1;kangmax)angmax=fabs(in[k][l]); - l++; - } - - for(j=0;jclassmetric1[j] && - angmax<=info->classmetric2[j]) - break; - - partword[0][i]=j; - - } - + + partword[0]=_vorbis_block_alloc(vb,n*ch/samples_per_partition*sizeof(*partword[0])); + memset(partword[0],0,n*ch/samples_per_partition*sizeof(*partword[0])); + + for(i=0,l=info->begin/ch;imagmax)magmax=fabs(in[0][l]); + for(k=1;kangmax)angmax=fabs(in[k][l]); + l++; + } + + for(j=0;jclassmetric1[j] && + angmax<=info->classmetric2[j]) + break; + + partword[0][i]=j; + + } + #ifdef TRAIN_RESAUX - sprintf(buffer,"resaux_%d.vqd",look->train_seq); - of=fopen(buffer,"a"); - for(i=0;itrain_seq); + of=fopen(buffer,"a"); + for(i=0;iframes++; - - return(partword); + + look->frames++; + + return(partword); + }else + return(0); } static int _01forward(oggpack_buffer *opb, @@ -504,103 +512,106 @@ static int _01forward(oggpack_buffer *op int samples_per_partition=info->grouping; int possible_partitions=info->partitions; int partitions_per_word=look->phrasebook->dim; - int n=info->end-info->begin; - - int partvals=n/samples_per_partition; - long resbits[128]; - long resvals[128]; + int end=(info->endpcmend?info->end:vb->pcmend); + int n=end-info->begin; + if(n>0){ + int partvals=n/samples_per_partition; + long resbits[128]; + long resvals[128]; + #ifdef TRAIN_RES - for(i=0;ibegin;jend;j++){ - if(in[i][j]>look->tmax)look->tmax=in[i][j]; - if(in[i][j]tmin)look->tmin=in[i][j]; - } + for(i=0;ibegin;jlook->tmax)look->tmax=in[i][j]; + if(in[i][j]tmin)look->tmin=in[i][j]; + } #endif - - memset(resbits,0,sizeof(resbits)); - memset(resvals,0,sizeof(resvals)); - - /* we code the partition words for each channel, then the residual - words for a partition per channel until we've written all the - residual words for that partition word. Then write the next - partition channel words... */ - - for(s=0;sstages;s++){ - - for(i=0;iphrasebook->entries) - look->phrasebits+=vorbis_book_encode(look->phrasebook,val,opb); + + memset(resbits,0,sizeof(resbits)); + memset(resvals,0,sizeof(resvals)); + + /* we code the partition words for each channel, then the residual + words for a partition per channel until we've written all the + residual words for that partition word. Then write the next + partition channel words... */ + + for(s=0;sstages;s++){ + + for(i=0;iphrasebook->entries) + look->phrasebits+=vorbis_book_encode(look->phrasebook,val,opb); #if 0 /*def TRAIN_RES*/ - else - fprintf(stderr,"!"); + else + fprintf(stderr,"!"); #endif - + + } } - } - - /* now we encode interleaved residual values for the partitions */ - for(k=0;kbegin; - for(j=0;jsecondstages[partword[j][i]]&(1<partbooks[partword[j][i]][s]; - if(statebook){ - int ret; - long *accumulator=NULL; - + /* now we encode interleaved residual values for the partitions */ + for(k=0;kbegin; + + for(j=0;jsecondstages[partword[j][i]]&(1<partbooks[partword[j][i]][s]; + if(statebook){ + int ret; + long *accumulator=NULL; + #ifdef TRAIN_RES - accumulator=look->training_data[s][partword[j][i]]; - { - int l; - float *samples=in[j]+offset; - for(l=0;ltraining_min[s][partword[j][i]]) - look->training_min[s][partword[j][i]]=samples[l]; - if(samples[l]>look->training_max[s][partword[j][i]]) - look->training_max[s][partword[j][i]]=samples[l]; + accumulator=look->training_data[s][partword[j][i]]; + { + int l; + float *samples=in[j]+offset; + for(l=0;ltraining_min[s][partword[j][i]]) + look->training_min[s][partword[j][i]]=samples[l]; + if(samples[l]>look->training_max[s][partword[j][i]]) + look->training_max[s][partword[j][i]]=samples[l]; + } } - } #endif - - ret=encode(opb,in[j]+offset,samples_per_partition, - statebook,accumulator); - - look->postbits+=ret; - resbits[partword[j][i]]+=ret; + + ret=encode(opb,in[j]+offset,samples_per_partition, + statebook,accumulator); + + look->postbits+=ret; + resbits[partword[j][i]]+=ret; + } } } } } } - } - + /*{ long total=0; long totalbits=0; fprintf(stderr,"%d :: ",vb->mode); for(k=0;kgrouping; int partitions_per_word=look->phrasebook->dim; - int n=info->end-info->begin; + int end=(info->endpcmend?info->end:vb->pcmend); + int n=end-info->begin; - int partvals=n/samples_per_partition; - int partwords=(partvals+partitions_per_word-1)/partitions_per_word; - int ***partword=alloca(ch*sizeof(*partword)); - - for(j=0;jstages;s++){ - - /* each loop decodes on partition codeword containing - partitions_pre_word partitions */ - for(i=0,l=0;iphrasebook,&vb->opb); - if(temp==-1)goto eopbreak; - partword[j][l]=look->decodemap[temp]; - if(partword[j][l]==NULL)goto errout; - } - } + if(n>0){ + int partvals=n/samples_per_partition; + int partwords=(partvals+partitions_per_word-1)/partitions_per_word; + int ***partword=alloca(ch*sizeof(*partword)); + + for(j=0;jstages;s++){ - /* now we decode residual values for the partitions */ - for(k=0;kbegin+i*samples_per_partition; - if(info->secondstages[partword[j][l][k]]&(1<partbooks[partword[j][l][k]][s]; - if(stagebook){ - if(decodepart(stagebook,in[j]+offset,&vb->opb, - samples_per_partition)==-1)goto eopbreak; - } + /* each loop decodes on partition codeword containing + partitions_per_word partitions */ + for(i=0,l=0;iphrasebook,&vb->opb); + + if(temp==-1)goto eopbreak; + partword[j][l]=look->decodemap[temp]; + if(partword[j][l]==NULL)goto errout; } } - } + + /* now we decode residual values for the partitions */ + for(k=0;kbegin+i*samples_per_partition; + if(info->secondstages[partword[j][l][k]]&(1<partbooks[partword[j][l][k]][s]; + if(stagebook){ + if(decodepart(stagebook,in[j]+offset,&vb->opb, + samples_per_partition)==-1)goto eopbreak; + } + } + } + } + } } - errout: eopbreak: return(0); @@ -833,41 +847,44 @@ int res2_inverse(vorbis_block *vb,vorbis /* move all this setup out later */ int samples_per_partition=info->grouping; int partitions_per_word=look->phrasebook->dim; - int n=info->end-info->begin; + int end=(info->endpcmend?info->end:vb->pcmend); + int n=end-info->begin; - int partvals=n/samples_per_partition; - int partwords=(partvals+partitions_per_word-1)/partitions_per_word; - int **partword=_vorbis_block_alloc(vb,partwords*sizeof(*partword)); - - for(i=0;istages;s++){ - for(i=0,l=0;iphrasebook,&vb->opb); - if(temp==-1)goto eopbreak; - partword[l]=look->decodemap[temp]; - if(partword[l]==NULL)goto errout; - } - - /* now we decode residual values for the partitions */ - for(k=0;ksecondstages[partword[l][k]]&(1<partbooks[partword[l][k]][s]; - - if(stagebook){ - if(vorbis_book_decodevv_add(stagebook,in, - i*samples_per_partition+info->begin,ch, - &vb->opb,samples_per_partition)==-1) - goto eopbreak; - } + if(n>0){ + int partvals=n/samples_per_partition; + int partwords=(partvals+partitions_per_word-1)/partitions_per_word; + int **partword=_vorbis_block_alloc(vb,partwords*sizeof(*partword)); + + + for(i=0;istages;s++){ + for(i=0,l=0;iphrasebook,&vb->opb); + if(temp==-1)goto eopbreak; + partword[l]=look->decodemap[temp]; + if(partword[l]==NULL)goto errout; } - } + + /* now we decode residual values for the partitions */ + for(k=0;ksecondstages[partword[l][k]]&(1<partbooks[partword[l][k]][s]; + + if(stagebook){ + if(vorbis_book_decodevv_add(stagebook,in, + i*samples_per_partition+info->begin,ch, + &vb->opb,samples_per_partition)==-1) + goto eopbreak; + } + } + } + } } - errout: eopbreak: return(0); r13153.patch: res0.c | 10 +++++----- 1 files changed, 5 insertions(+), 5 deletions(-) --- NEW FILE r13153.patch --- Index: lib/res0.c =================================================================== --- lib/res0.c (revision 13152) +++ lib/res0.c (revision 13153) @@ -375,7 +375,7 @@ static long **_01class(vorbis_block *vb, /* move all this setup out later */ int samples_per_partition=info->grouping; int possible_partitions=info->partitions; - int end=(info->endpcmend?info->end:vb->pcmend); + int end=(info->endpcmend/2?info->end:vb->pcmend/2); int n=end-info->begin; if(n>0){ @@ -446,7 +446,7 @@ static long **_2class(vorbis_block *vb,v /* move all this setup out later */ int samples_per_partition=info->grouping; int possible_partitions=info->partitions; - int end=(info->endpcmend?info->end:vb->pcmend); + int end=(info->endpcmend/2?info->end:vb->pcmend/2); int n=end-info->begin; if(n>0){ @@ -512,7 +512,7 @@ static int _01forward(oggpack_buffer *op int samples_per_partition=info->grouping; int possible_partitions=info->partitions; int partitions_per_word=look->phrasebook->dim; - int end=(info->endpcmend?info->end:vb->pcmend); + int end=(info->endpcmend/2?info->end:vb->pcmend/2); int n=end-info->begin; if(n>0){ @@ -628,7 +628,7 @@ static int _01inverse(vorbis_block *vb,v /* move all this setup out later */ int samples_per_partition=info->grouping; int partitions_per_word=look->phrasebook->dim; - int end=(info->endpcmend?info->end:vb->pcmend); + int end=(info->endpcmend/2?info->end:vb->pcmend/2); int n=end-info->begin; if(n>0){ @@ -847,7 +847,7 @@ int res2_inverse(vorbis_block *vb,vorbis /* move all this setup out later */ int samples_per_partition=info->grouping; int partitions_per_word=look->phrasebook->dim; - int end=(info->endpcmend?info->end:vb->pcmend); + int end=(info->endpcmend/2?info->end:vb->pcmend/2); int n=end-info->begin; if(n>0){ r13154.patch: res0.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) --- NEW FILE r13154.patch --- Index: lib/res0.c =================================================================== --- lib/res0.c (revision 13153) +++ lib/res0.c (revision 13154) @@ -847,15 +847,15 @@ int res2_inverse(vorbis_block *vb,vorbis /* move all this setup out later */ int samples_per_partition=info->grouping; int partitions_per_word=look->phrasebook->dim; - int end=(info->endpcmend/2?info->end:vb->pcmend/2); - int n=end-info->begin; + int max=(vb->pcmend*ch)>>1; + int end=(info->endend:max); + int n=info->end-info->begin; if(n>0){ int partvals=n/samples_per_partition; int partwords=(partvals+partitions_per_word-1)/partitions_per_word; int **partword=_vorbis_block_alloc(vb,partwords*sizeof(*partword)); - for(i=0;iphrasebook->dim; int max=(vb->pcmend*ch)>>1; int end=(info->endend:max); - int n=info->end-info->begin; + int n=end-info->begin; if(n>0){ int partvals=n/samples_per_partition; r13160-CVE-2007-3106.patch: info.c | 21 +++++++++++++++------ 1 files changed, 15 insertions(+), 6 deletions(-) --- NEW FILE r13160-CVE-2007-3106.patch --- Index: lib/info.c =================================================================== --- lib/info.c (revision 13159) +++ lib/info.c (revision 13160) @@ -139,7 +139,7 @@ void vorbis_comment_clear(vorbis_comment memset(vc,0,sizeof(*vc)); } -/* blocksize 0 is guaranteed to be short, 1 is guarantted to be long. +/* blocksize 0 is guaranteed to be short, 1 is guaranteed to be long. They may be equal, but short will never ge greater than long */ int vorbis_info_blocksize(vorbis_info *vi,int zo){ codec_setup_info *ci = vi->codec_setup; @@ -162,14 +162,23 @@ void vorbis_info_clear(vorbis_info *vi){ if(ci->mode_param[i])_ogg_free(ci->mode_param[i]); for(i=0;imaps;i++) /* unpack does the range checking */ - _mapping_P[ci->map_type[i]]->free_info(ci->map_param[i]); + if(ci->map_param[i]) /* this may be cleaning up an aborted + unpack, in which case the below type + cannot be trusted */ + _mapping_P[ci->map_type[i]]->free_info(ci->map_param[i]); for(i=0;ifloors;i++) /* unpack does the range checking */ - _floor_P[ci->floor_type[i]]->free_info(ci->floor_param[i]); + if(ci->floor_param[i]) /* this may be cleaning up an aborted + unpack, in which case the below type + cannot be trusted */ + _floor_P[ci->floor_type[i]]->free_info(ci->floor_param[i]); for(i=0;iresidues;i++) /* unpack does the range checking */ - _residue_P[ci->residue_type[i]]->free_info(ci->residue_param[i]); - + if(ci->residue_param[i]) /* this may be cleaning up an aborted + unpack, in which case the below type + cannot be trusted */ + _residue_P[ci->residue_type[i]]->free_info(ci->residue_param[i]); + for(i=0;ibooks;i++){ if(ci->book_param[i]){ /* knows if the book was not alloced */ @@ -416,7 +425,7 @@ static int _vorbis_pack_info(oggpack_buf } static int _vorbis_pack_comment(oggpack_buffer *opb,vorbis_comment *vc){ - char temp[]="Xiph.Org libVorbis I 20050304"; + char temp[]="Xiph.Org libVorbis I 20070621"; int bytes = strlen(temp); /* preamble */ r13162.patch: block.c | 24 ++++++++++++++---------- info.c | 16 +++++++++------- psy.c | 5 ++++- vorbisfile.c | 6 +++--- 4 files changed, 30 insertions(+), 21 deletions(-) --- NEW FILE r13162.patch --- Index: lib/psy.c =================================================================== --- lib/psy.c (revision 13161) +++ lib/psy.c (revision 13162) @@ -553,7 +553,10 @@ static void bark_noise_hybridmp(int n,co int i; int lo, hi; - float R, A, B, D; + float R=0.f; + float A=0.f; + float B=0.f; + float D=1.f; float w, x, y; tN = tX = tXX = tY = tXY = 0.f; Index: lib/info.c =================================================================== --- lib/info.c (revision 13161) +++ lib/info.c (revision 13162) @@ -135,8 +135,8 @@ void vorbis_comment_clear(vorbis_comment if(vc->user_comments)_ogg_free(vc->user_comments); if(vc->comment_lengths)_ogg_free(vc->comment_lengths); if(vc->vendor)_ogg_free(vc->vendor); + memset(vc,0,sizeof(*vc)); } - memset(vc,0,sizeof(*vc)); } /* blocksize 0 is guaranteed to be short, 1 is guaranteed to be long. @@ -600,12 +600,14 @@ int vorbis_analysis_headerout(vorbis_dsp memset(op_comm,0,sizeof(*op_comm)); memset(op_code,0,sizeof(*op_code)); - if(b->header)_ogg_free(b->header); - if(b->header1)_ogg_free(b->header1); - if(b->header2)_ogg_free(b->header2); - b->header=NULL; - b->header1=NULL; - b->header2=NULL; + if(b){ + if(b->header)_ogg_free(b->header); + if(b->header1)_ogg_free(b->header1); + if(b->header2)_ogg_free(b->header2); + b->header=NULL; + b->header1=NULL; + b->header2=NULL; + } return(ret); } Index: lib/vorbisfile.c =================================================================== --- lib/vorbisfile.c (revision 13161) +++ lib/vorbisfile.c (revision 13162) @@ -986,8 +986,8 @@ int ov_raw_seek(OggVorbis_File *vf,ogg_i ogg_packet op; int lastblock=0; int accblock=0; - int thisblock; - int eosflag; + int thisblock=0; + int eosflag=0; ogg_stream_init(&work_os,vf->current_serialno); /* get the memory ready */ ogg_stream_reset(&work_os); /* eliminate the spurious OV_HOLE @@ -1009,7 +1009,7 @@ int ov_raw_seek(OggVorbis_File *vf,ogg_i }else{ if(eosflag) - ogg_stream_packetout(&vf->os,NULL); + ogg_stream_packetout(&vf->os,NULL); else if(lastblock)accblock+=(lastblock+thisblock)>>2; } Index: lib/block.c =================================================================== --- lib/block.c (revision 13161) +++ lib/block.c (revision 13162) @@ -326,20 +326,23 @@ void vorbis_dsp_clear(vorbis_dsp_state * } if(b->flr){ - for(i=0;ifloors;i++) - _floor_P[ci->floor_type[i]]-> - free_look(b->flr[i]); + if(ci) + for(i=0;ifloors;i++) + _floor_P[ci->floor_type[i]]-> + free_look(b->flr[i]); _ogg_free(b->flr); } if(b->residue){ - for(i=0;iresidues;i++) - _residue_P[ci->residue_type[i]]-> - free_look(b->residue[i]); + if(ci) + for(i=0;iresidues;i++) + _residue_P[ci->residue_type[i]]-> + free_look(b->residue[i]); _ogg_free(b->residue); } if(b->psy){ - for(i=0;ipsys;i++) - _vp_psy_clear(b->psy+i); + if(ci) + for(i=0;ipsys;i++) + _vp_psy_clear(b->psy+i); _ogg_free(b->psy); } @@ -352,8 +355,9 @@ void vorbis_dsp_clear(vorbis_dsp_state * } if(v->pcm){ - for(i=0;ichannels;i++) - if(v->pcm[i])_ogg_free(v->pcm[i]); + if(vi) + for(i=0;ichannels;i++) + if(v->pcm[i])_ogg_free(v->pcm[i]); _ogg_free(v->pcm); if(v->pcmret)_ogg_free(v->pcmret); } r13167.patch: res0.c | 317 +++++++++++++++++++++++++++++++---------------------------------- 1 files changed, 154 insertions(+), 163 deletions(-) --- NEW FILE r13167.patch --- Index: lib/res0.c =================================================================== --- lib/res0.c (revision 13166) +++ lib/res0.c (revision 13167) @@ -375,63 +375,59 @@ static long **_01class(vorbis_block *vb, /* move all this setup out later */ int samples_per_partition=info->grouping; int possible_partitions=info->partitions; - int end=(info->endpcmend/2?info->end:vb->pcmend/2); - int n=end-info->begin; + int n=info->end-info->begin; - if(n>0){ - int partvals=n/samples_per_partition; - long **partword=_vorbis_block_alloc(vb,ch*sizeof(*partword)); - float scale=100./samples_per_partition; - - /* we find the partition type for each partition of each - channel. We'll go back and do the interleaved encoding in a - bit. For now, clarity */ - - for(i=0;ibegin; - for(j=0;jmax)max=fabs(in[j][offset+k]); - ent+=fabs(rint(in[j][offset+k])); - } - ent*=scale; - - for(k=0;kclassmetric1[k] && - (info->classmetric2[k]<0 || (int)entclassmetric2[k])) - break; - - partword[j][i]=k; + int partvals=n/samples_per_partition; + long **partword=_vorbis_block_alloc(vb,ch*sizeof(*partword)); + float scale=100./samples_per_partition; + + /* we find the partition type for each partition of each + channel. We'll go back and do the interleaved encoding in a + bit. For now, clarity */ + + for(i=0;ibegin; + for(j=0;jmax)max=fabs(in[j][offset+k]); + ent+=fabs(rint(in[j][offset+k])); } + ent*=scale; + + for(k=0;kclassmetric1[k] && + (info->classmetric2[k]<0 || (int)entclassmetric2[k])) + break; + + partword[j][i]=k; } - + } + #ifdef TRAIN_RESAUX - { - FILE *of; - char buffer[80]; - - for(i=0;itrain_seq); - of=fopen(buffer,"a"); - for(j=0;jtrain_seq); + of=fopen(buffer,"a"); + for(j=0;jframes++; - - return(partword); - }else - return(0); + look->frames++; + + return(partword); } /* designed for stereo or other modes where the partition size is an @@ -446,54 +442,50 @@ static long **_2class(vorbis_block *vb,v /* move all this setup out later */ int samples_per_partition=info->grouping; int possible_partitions=info->partitions; - int end=(info->endpcmend/2?info->end:vb->pcmend/2); - int n=end-info->begin; + int n=info->end-info->begin; - if(n>0){ - int partvals=n/samples_per_partition; - long **partword=_vorbis_block_alloc(vb,sizeof(*partword)); - + int partvals=n/samples_per_partition; + long **partword=_vorbis_block_alloc(vb,sizeof(*partword)); + #if defined(TRAIN_RES) || defined (TRAIN_RESAUX) - FILE *of; - char buffer[80]; + FILE *of; + char buffer[80]; #endif + + partword[0]=_vorbis_block_alloc(vb,n*ch/samples_per_partition*sizeof(*partword[0])); + memset(partword[0],0,n*ch/samples_per_partition*sizeof(*partword[0])); + + for(i=0,l=info->begin/ch;imagmax)magmax=fabs(in[0][l]); + for(k=1;kangmax)angmax=fabs(in[k][l]); + l++; + } - partword[0]=_vorbis_block_alloc(vb,n*ch/samples_per_partition*sizeof(*partword[0])); - memset(partword[0],0,n*ch/samples_per_partition*sizeof(*partword[0])); + for(j=0;jclassmetric1[j] && + angmax<=info->classmetric2[j]) + break; - for(i=0,l=info->begin/ch;imagmax)magmax=fabs(in[0][l]); - for(k=1;kangmax)angmax=fabs(in[k][l]); - l++; - } - - for(j=0;jclassmetric1[j] && - angmax<=info->classmetric2[j]) - break; - - partword[0][i]=j; - - } + partword[0][i]=j; + } + #ifdef TRAIN_RESAUX - sprintf(buffer,"resaux_%d.vqd",look->train_seq); - of=fopen(buffer,"a"); - for(i=0;itrain_seq); + of=fopen(buffer,"a"); + for(i=0;iframes++; - - return(partword); - }else - return(0); + + look->frames++; + + return(partword); } static int _01forward(oggpack_buffer *opb, @@ -512,93 +504,91 @@ static int _01forward(oggpack_buffer *op int samples_per_partition=info->grouping; int possible_partitions=info->partitions; int partitions_per_word=look->phrasebook->dim; - int end=(info->endpcmend/2?info->end:vb->pcmend/2); - int n=end-info->begin; + int n=info->end-info->begin; - if(n>0){ - int partvals=n/samples_per_partition; - long resbits[128]; - long resvals[128]; - + int partvals=n/samples_per_partition; + long resbits[128]; + long resvals[128]; + #ifdef TRAIN_RES - for(i=0;ibegin;jlook->tmax)look->tmax=in[i][j]; - if(in[i][j]tmin)look->tmin=in[i][j]; - } + for(i=0;ibegin;jlook->tmax)look->tmax=in[i][j]; + if(in[i][j]tmin)look->tmin=in[i][j]; + } #endif + + memset(resbits,0,sizeof(resbits)); + memset(resvals,0,sizeof(resvals)); + + /* we code the partition words for each channel, then the residual + words for a partition per channel until we've written all the + residual words for that partition word. Then write the next + partition channel words... */ + + for(s=0;sstages;s++){ - memset(resbits,0,sizeof(resbits)); - memset(resvals,0,sizeof(resvals)); - - /* we code the partition words for each channel, then the residual - words for a partition per channel until we've written all the - residual words for that partition word. Then write the next - partition channel words... */ - - for(s=0;sstages;s++){ + for(i=0;iphrasebook->entries) - look->phrasebits+=vorbis_book_encode(look->phrasebook,val,opb); + /* first we encode a partition codeword for each channel */ + if(s==0){ + for(j=0;jphrasebook->entries) + look->phrasebits+=vorbis_book_encode(look->phrasebook,val,opb); #if 0 /*def TRAIN_RES*/ - else - fprintf(stderr,"!"); + else + fprintf(stderr,"!"); #endif - - } + } - - /* now we encode interleaved residual values for the partitions */ - for(k=0;kbegin; + } + + /* now we encode interleaved residual values for the partitions */ + for(k=0;kbegin; - for(j=0;jsecondstages[partword[j][i]]&(1<partbooks[partword[j][i]][s]; - if(statebook){ - int ret; - long *accumulator=NULL; - + for(j=0;jsecondstages[partword[j][i]]&(1<partbooks[partword[j][i]][s]; + if(statebook){ + int ret; + long *accumulator=NULL; + #ifdef TRAIN_RES - accumulator=look->training_data[s][partword[j][i]]; - { - int l; - float *samples=in[j]+offset; - for(l=0;ltraining_min[s][partword[j][i]]) - look->training_min[s][partword[j][i]]=samples[l]; - if(samples[l]>look->training_max[s][partword[j][i]]) - look->training_max[s][partword[j][i]]=samples[l]; - } + accumulator=look->training_data[s][partword[j][i]]; + { + int l; + float *samples=in[j]+offset; + for(l=0;ltraining_min[s][partword[j][i]]) + look->training_min[s][partword[j][i]]=samples[l]; + if(samples[l]>look->training_max[s][partword[j][i]]) + look->training_max[s][partword[j][i]]=samples[l]; } -#endif - - ret=encode(opb,in[j]+offset,samples_per_partition, - statebook,accumulator); - - look->postbits+=ret; - resbits[partword[j][i]]+=ret; } +#endif + + ret=encode(opb,in[j]+offset,samples_per_partition, + statebook,accumulator); + + look->postbits+=ret; + resbits[partword[j][i]]+=ret; } } } } } - + } + /*{ long total=0; long totalbits=0; @@ -611,7 +601,7 @@ static int _01forward(oggpack_buffer *op fprintf(stderr,":: %ld:%1.2g\n",total,(double)totalbits/total); }*/ - } + return(0); } @@ -628,7 +618,8 @@ static int _01inverse(vorbis_block *vb,v /* move all this setup out later */ int samples_per_partition=info->grouping; int partitions_per_word=look->phrasebook->dim; - int end=(info->endpcmend/2?info->end:vb->pcmend/2); + int max=vb->pcmend>>1; + int end=(info->endend:max); int n=end-info->begin; if(n>0){ r13168.patch: psych_16.h | 7 +++++++ psych_44.h | 0 setup_16.h | 2 +- setup_22.h | 2 +- 4 files changed, 9 insertions(+), 2 deletions(-) --- NEW FILE r13168.patch --- Index: lib/modes/psych_16.h =================================================================== --- lib/modes/psych_16.h (revision 13167) +++ lib/modes/psych_16.h (revision 13168) @@ -112,6 +112,13 @@ static noise3 _psy_noisebias_16[4]={ {-30,-30,-30,-30,-26,-26,-26,-26,-26,-26,-26,-26,-26,-24,-20,-20,-20}}}, }; +static noiseguard _psy_noiseguards_16[4]={ + {10,10,-1}, + {10,10,-1}, + {20,20,-1}, + {20,20,-1}, +}; + static double _noise_thresh_16[4]={ .3,.5,.5,.5 }; static int _noise_start_16[3]={ 256,256,9999 }; Index: lib/modes/psych_44.h =================================================================== --- lib/modes/psych_44.h (revision 13167) +++ lib/modes/psych_44.h (revision 13168) Index: lib/modes/setup_22.h =================================================================== --- lib/modes/setup_22.h (revision 13167) +++ lib/modes/setup_22.h (revision 13168) @@ -44,7 +44,7 @@ ve_setup_data_template ve_setup_22_stere _vp_tonemask_adj_16, _vp_tonemask_adj_16, - _psy_noiseguards_8, + _psy_noiseguards_16, _psy_noisebias_16_impulse, _psy_noisebias_16_short, _psy_noisebias_16_short, Index: lib/modes/setup_16.h =================================================================== --- lib/modes/setup_16.h (revision 13167) +++ lib/modes/setup_16.h (revision 13168) @@ -65,7 +65,7 @@ ve_setup_data_template ve_setup_16_stere _vp_tonemask_adj_16, _vp_tonemask_adj_16, - _psy_noiseguards_8, + _psy_noiseguards_16, _psy_noisebias_16_impulse, _psy_noisebias_16_short, _psy_noisebias_16_short, r13169.patch: codebook.c | 1 + info.c | 2 +- res0.c | 8 +++++--- 3 files changed, 7 insertions(+), 4 deletions(-) --- NEW FILE r13169.patch --- Index: lib/codebook.c =================================================================== --- lib/codebook.c (revision 13168) +++ lib/codebook.c (revision 13169) @@ -255,6 +255,7 @@ int vorbis_staticbook_unpack(oggpack_buf /* returns the number of bits ************************************************/ int vorbis_book_encode(codebook *book, int a, oggpack_buffer *b){ + if(a<0 || a>=book->c->entries)return(0); oggpack_write(b,book->codelist[a],book->c->lengthlist[a]); return(book->c->lengthlist[a]); } Index: lib/info.c =================================================================== --- lib/info.c (revision 13168) +++ lib/info.c (revision 13169) @@ -425,7 +425,7 @@ static int _vorbis_pack_info(oggpack_buf } static int _vorbis_pack_comment(oggpack_buffer *opb,vorbis_comment *vc){ - char temp[]="Xiph.Org libVorbis I 20070621"; + char temp[]="Xiph.Org libVorbis I 20070622"; int bytes = strlen(temp); /* preamble */ Index: lib/res0.c =================================================================== --- lib/res0.c (revision 13168) +++ lib/res0.c (revision 13169) @@ -336,7 +336,7 @@ static int local_book_besterror(codebook } } - { + if(best>-1){ float *ptr=book->valuelist+best*dim; for(i=0;i0) + acc[entry]++; #endif - + bits+=vorbis_book_encode(book,entry,opb); + } return(bits); r13170.patch: books/coupled/res_books_stereo.h | 308 --------------------------------------- modes/residue_16.h | 4 modes/residue_8.h | 24 ++- 3 files changed, 20 insertions(+), 316 deletions(-) --- NEW FILE r13170.patch --- Index: lib/modes/residue_16.h =================================================================== --- lib/modes/residue_16.h (revision 13169) +++ lib/modes/residue_16.h (revision 13170) @@ -21,7 +21,7 @@ static static_bookblock _resbook_16s_0={ { {0}, {0,0,&_16c0_s_p1_0}, - {0,0,&_16c0_s_p2_0}, + {0}, {0,0,&_16c0_s_p3_0}, {0,0,&_16c0_s_p4_0}, {0,0,&_16c0_s_p5_0}, @@ -35,7 +35,7 @@ static static_bookblock _resbook_16s_1={ { {0}, {0,0,&_16c1_s_p1_0}, - {0,0,&_16c1_s_p2_0}, + {0}, {0,0,&_16c1_s_p3_0}, {0,0,&_16c1_s_p4_0}, {0,0,&_16c1_s_p5_0}, Index: lib/modes/residue_8.h =================================================================== --- lib/modes/residue_8.h (revision 13169) +++ lib/modes/residue_8.h (revision 13170) @@ -22,17 +22,29 @@ static static_bookblock _resbook_8s_0={ { - {0},{0,0,&_8c0_s_p1_0},{0,0,&_8c0_s_p2_0},{0,0,&_8c0_s_p3_0}, - {0,0,&_8c0_s_p4_0},{0,0,&_8c0_s_p5_0},{0,0,&_8c0_s_p6_0}, - {&_8c0_s_p7_0,&_8c0_s_p7_1},{&_8c0_s_p8_0,&_8c0_s_p8_1}, + {0}, + {0,0,&_8c0_s_p1_0}, + {0}, + {0,0,&_8c0_s_p3_0}, + {0,0,&_8c0_s_p4_0}, + {0,0,&_8c0_s_p5_0}, + {0,0,&_8c0_s_p6_0}, + {&_8c0_s_p7_0,&_8c0_s_p7_1}, + {&_8c0_s_p8_0,&_8c0_s_p8_1}, {&_8c0_s_p9_0,&_8c0_s_p9_1,&_8c0_s_p9_2} } }; static static_bookblock _resbook_8s_1={ { - {0},{0,0,&_8c1_s_p1_0},{0,0,&_8c1_s_p2_0},{0,0,&_8c1_s_p3_0}, - {0,0,&_8c1_s_p4_0},{0,0,&_8c1_s_p5_0},{0,0,&_8c1_s_p6_0}, - {&_8c1_s_p7_0,&_8c1_s_p7_1},{&_8c1_s_p8_0,&_8c1_s_p8_1}, + {0}, + {0,0,&_8c1_s_p1_0}, + {0}, + {0,0,&_8c1_s_p3_0}, + {0,0,&_8c1_s_p4_0}, + {0,0,&_8c1_s_p5_0}, + {0,0,&_8c1_s_p6_0}, + {&_8c1_s_p7_0,&_8c1_s_p7_1}, + {&_8c1_s_p8_0,&_8c1_s_p8_1}, {&_8c1_s_p9_0,&_8c1_s_p9_1,&_8c1_s_p9_2} } }; Index: lib/books/coupled/res_books_stereo.h =================================================================== --- lib/books/coupled/res_books_stereo.h (revision 13169) +++ lib/books/coupled/res_books_stereo.h (revision 13170) @@ -462,83 +462,6 @@ static static_codebook _16c0_s_p1_0 = { 0 }; -static long _vq_quantlist__16c0_s_p2_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__16c0_s_p2_0[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static float _vq_quantthresh__16c0_s_p2_0[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__16c0_s_p2_0[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__16c0_s_p2_0 = { - _vq_quantthresh__16c0_s_p2_0, - _vq_quantmap__16c0_s_p2_0, - 5, - 5 -}; - -static static_codebook _16c0_s_p2_0 = { - 4, 625, - _vq_lengthlist__16c0_s_p2_0, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__16c0_s_p2_0, - NULL, - &_vq_auxt__16c0_s_p2_0, - NULL, - 0 -}; - static long _vq_quantlist__16c0_s_p3_0[] = { 2, 1, @@ -1652,83 +1575,6 @@ static static_codebook _16c1_s_p1_0 = { 0 }; -static long _vq_quantlist__16c1_s_p2_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__16c1_s_p2_0[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static float _vq_quantthresh__16c1_s_p2_0[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__16c1_s_p2_0[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__16c1_s_p2_0 = { - _vq_quantthresh__16c1_s_p2_0, - _vq_quantmap__16c1_s_p2_0, - 5, - 5 -}; - -static static_codebook _16c1_s_p2_0 = { - 4, 625, - _vq_lengthlist__16c1_s_p2_0, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__16c1_s_p2_0, - NULL, - &_vq_auxt__16c1_s_p2_0, - NULL, - 0 -}; - static long _vq_quantlist__16c1_s_p3_0[] = { 2, 1, @@ -3764,83 +3610,6 @@ static static_codebook _8c0_s_p1_0 = { 0 }; -static long _vq_quantlist__8c0_s_p2_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__8c0_s_p2_0[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static float _vq_quantthresh__8c0_s_p2_0[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__8c0_s_p2_0[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__8c0_s_p2_0 = { - _vq_quantthresh__8c0_s_p2_0, - _vq_quantmap__8c0_s_p2_0, - 5, - 5 -}; - -static static_codebook _8c0_s_p2_0 = { - 4, 625, - _vq_lengthlist__8c0_s_p2_0, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__8c0_s_p2_0, - NULL, - &_vq_auxt__8c0_s_p2_0, - NULL, - 0 -}; - static long _vq_quantlist__8c0_s_p3_0[] = { 2, 1, @@ -4933,83 +4702,6 @@ static static_codebook _8c1_s_p1_0 = { 0 }; -static long _vq_quantlist__8c1_s_p2_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__8c1_s_p2_0[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static float _vq_quantthresh__8c1_s_p2_0[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__8c1_s_p2_0[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__8c1_s_p2_0 = { - _vq_quantthresh__8c1_s_p2_0, - _vq_quantmap__8c1_s_p2_0, - 5, - 5 -}; - -static static_codebook _8c1_s_p2_0 = { - 4, 625, - _vq_lengthlist__8c1_s_p2_0, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__8c1_s_p2_0, - NULL, - &_vq_auxt__8c1_s_p2_0, - NULL, - 0 -}; - static long _vq_quantlist__8c1_s_p3_0[] = { 2, 1, r13172.patch: codebook.c | 172 ++++++++++++++++++++++++++++++++--------------------------- sharedbook.c | 133 ++++++++++++++++++++++----------------------- 2 files changed, 162 insertions(+), 143 deletions(-) --- NEW FILE r13172.patch --- Index: lib/codebook.c =================================================================== --- lib/codebook.c (revision 13171) +++ lib/codebook.c (revision 13172) @@ -311,7 +311,7 @@ STIN long decode_packed_entry_number(cod int read=book->dec_maxlength; long lo,hi; long lok = oggpack_look(b,book->dec_firsttablen); - + if (lok >= 0) { long entry = book->dec_firsttable[lok]; if(entry&0x80000000UL){ @@ -325,24 +325,24 @@ STIN long decode_packed_entry_number(cod lo=0; hi=book->used_entries; } - + lok = oggpack_look(b, read); - + while(lok<0 && read>1) lok = oggpack_look(b, --read); if(lok<0)return -1; - + /* bisect search for the codeword in the ordered list */ { ogg_uint32_t testword=bitreverse((ogg_uint32_t)lok); - + while(hi-lo>1){ long p=(hi-lo)>>1; long test=book->codelist[lo+p]>testword; lo+=p&(test-1); hi-=p&(-test); - } - + } + if(book->dec_codelengths[lo]<=read){ oggpack_adv(b, book->dec_codelengths[lo]); return(lo); @@ -350,6 +350,7 @@ STIN long decode_packed_entry_number(cod } oggpack_adv(b, read); + return(-1); } @@ -369,104 +370,121 @@ STIN long decode_packed_entry_number(cod /* returns the [original, not compacted] entry number or -1 on eof *********/ long vorbis_book_decode(codebook *book, oggpack_buffer *b){ - long packed_entry=decode_packed_entry_number(book,b); - if(packed_entry>=0) - return(book->dec_index[packed_entry]); - + if(book->used_entries>0){ + long packed_entry=decode_packed_entry_number(book,b); + if(packed_entry>=0) + return(book->dec_index[packed_entry]); + } + /* if there's no dec_index, the codebook unpacking isn't collapsed */ - return(packed_entry); + return(-1); } /* returns 0 on OK or -1 on eof *************************************/ long vorbis_book_decodevs_add(codebook *book,float *a,oggpack_buffer *b,int n){ - int step=n/book->dim; - long *entry = alloca(sizeof(*entry)*step); - float **t = alloca(sizeof(*t)*step); - int i,j,o; - - for (i = 0; i < step; i++) { - entry[i]=decode_packed_entry_number(book,b); - if(entry[i]==-1)return(-1); - t[i] = book->valuelist+entry[i]*book->dim; + if(book->used_entries>0){ + int step=n/book->dim; + long *entry = alloca(sizeof(*entry)*step); + float **t = alloca(sizeof(*t)*step); + int i,j,o; + + for (i = 0; i < step; i++) { + entry[i]=decode_packed_entry_number(book,b); + if(entry[i]==-1)return(-1); + t[i] = book->valuelist+entry[i]*book->dim; + } + for(i=0,o=0;idim;i++,o+=step) + for (j=0;jdim;i++,o+=step) - for (j=0;jused_entries>0){ + int i,j,entry; + float *t; + + if(book->dim>8){ + for(i=0;ivaluelist+entry*book->dim; + for (j=0;jdim;) + a[i++]+=t[j++]; + } + }else{ + for(i=0;ivaluelist+entry*book->dim; + j=0; + switch((int)book->dim){ + case 8: + a[i++]+=t[j++]; + case 7: + a[i++]+=t[j++]; + case 6: + a[i++]+=t[j++]; + case 5: + a[i++]+=t[j++]; + case 4: + a[i++]+=t[j++]; + case 3: + a[i++]+=t[j++]; + case 2: + a[i++]+=t[j++]; + case 1: + a[i++]+=t[j++]; + case 0: + break; + } + } + } + } + return(0); +} - if(book->dim>8){ +long vorbis_book_decodev_set(codebook *book,float *a,oggpack_buffer *b,int n){ + if(book->used_entries>0){ + int i,j,entry; + float *t; + for(i=0;ivaluelist+entry*book->dim; for (j=0;jdim;) - a[i++]+=t[j++]; + a[i++]=t[j++]; } }else{ + int i,j; + for(i=0;ivaluelist+entry*book->dim; - j=0; - switch((int)book->dim){ - case 8: - a[i++]+=t[j++]; - case 7: - a[i++]+=t[j++]; - case 6: - a[i++]+=t[j++]; - case 5: - a[i++]+=t[j++]; - case 4: - a[i++]+=t[j++]; - case 3: - a[i++]+=t[j++]; - case 2: - a[i++]+=t[j++]; - case 1: - a[i++]+=t[j++]; - case 0: - break; - } + for (j=0;jdim;) + a[i++]=0.f; } - } - return(0); -} - -long vorbis_book_decodev_set(codebook *book,float *a,oggpack_buffer *b,int n){ - int i,j,entry; - float *t; - - for(i=0;ivaluelist+entry*book->dim; - for (j=0;jdim;) - a[i++]=t[j++]; } return(0); } long vorbis_book_decodevv_add(codebook *book,float **a,long offset,int ch, oggpack_buffer *b,int n){ + long i,j,entry; int chptr=0; - - for(i=offset/ch;i<(offset+n)/ch;){ - entry = decode_packed_entry_number(book,b); - if(entry==-1)return(-1); - { - const float *t = book->valuelist+entry*book->dim; - for (j=0;jdim;j++){ - a[chptr++][i]+=t[j]; - if(chptr==ch){ - chptr=0; - i++; + if(book->used_entries>0){ + for(i=offset/ch;i<(offset+n)/ch;){ + entry = decode_packed_entry_number(book,b); + if(entry==-1)return(-1); + { + const float *t = book->valuelist+entry*book->dim; + for (j=0;jdim;j++){ + a[chptr++][i]+=t[j]; + if(chptr==ch){ + chptr=0; + i++; + } } } } Index: lib/sharedbook.c =================================================================== --- lib/sharedbook.c (revision 13171) +++ lib/sharedbook.c (revision 13172) @@ -329,30 +329,31 @@ int vorbis_book_init_decode(codebook *c, c->used_entries=n; c->dim=s->dim; - /* two different remappings go on here. - - First, we collapse the likely sparse codebook down only to - actually represented values/words. This collapsing needs to be - indexed as map-valueless books are used to encode original entry - positions as integers. - - Second, we reorder all vectors, including the entry index above, - by sorted bitreversed codeword to allow treeless decode. */ + if(n>0){ + + /* two different remappings go on here. + + First, we collapse the likely sparse codebook down only to + actually represented values/words. This collapsing needs to be + indexed as map-valueless books are used to encode original entry + positions as integers. + + Second, we reorder all vectors, including the entry index above, + by sorted bitreversed codeword to allow treeless decode. */ - { /* perform sort */ ogg_uint32_t *codes=_make_words(s->lengthlist,s->entries,c->used_entries); ogg_uint32_t **codep=alloca(sizeof(*codep)*n); if(codes==NULL)goto err_out; - + for(i=0;icodelist=_ogg_malloc(n*sizeof(*c->codelist)); /* the index is a reverse index */ @@ -364,66 +365,66 @@ int vorbis_book_init_decode(codebook *c, for(i=0;icodelist[sortindex[i]]=codes[i]; _ogg_free(codes); - } - - c->valuelist=_book_unquantize(s,n,sortindex); - c->dec_index=_ogg_malloc(n*sizeof(*c->dec_index)); - - for(n=0,i=0;ientries;i++) - if(s->lengthlist[i]>0) - c->dec_index[sortindex[n++]]=i; - c->dec_codelengths=_ogg_malloc(n*sizeof(*c->dec_codelengths)); - for(n=0,i=0;ientries;i++) - if(s->lengthlist[i]>0) - c->dec_codelengths[sortindex[n++]]=s->lengthlist[i]; - c->dec_firsttablen=_ilog(c->used_entries)-4; /* this is magic */ - if(c->dec_firsttablen<5)c->dec_firsttablen=5; - if(c->dec_firsttablen>8)c->dec_firsttablen=8; - - tabn=1<dec_firsttablen; - c->dec_firsttable=_ogg_calloc(tabn,sizeof(*c->dec_firsttable)); - c->dec_maxlength=0; - - for(i=0;idec_maxlengthdec_codelengths[i]) - c->dec_maxlength=c->dec_codelengths[i]; - if(c->dec_codelengths[i]<=c->dec_firsttablen){ - ogg_uint32_t orig=bitreverse(c->codelist[i]); - for(j=0;j<(1<<(c->dec_firsttablen-c->dec_codelengths[i]));j++) - c->dec_firsttable[orig|(j<dec_codelengths[i])]=i+1; + c->valuelist=_book_unquantize(s,n,sortindex); + c->dec_index=_ogg_malloc(n*sizeof(*c->dec_index)); + + for(n=0,i=0;ientries;i++) + if(s->lengthlist[i]>0) + c->dec_index[sortindex[n++]]=i; + + c->dec_codelengths=_ogg_malloc(n*sizeof(*c->dec_codelengths)); + for(n=0,i=0;ientries;i++) + if(s->lengthlist[i]>0) + c->dec_codelengths[sortindex[n++]]=s->lengthlist[i]; + + c->dec_firsttablen=_ilog(c->used_entries)-4; /* this is magic */ + if(c->dec_firsttablen<5)c->dec_firsttablen=5; + if(c->dec_firsttablen>8)c->dec_firsttablen=8; + + tabn=1<dec_firsttablen; + c->dec_firsttable=_ogg_calloc(tabn,sizeof(*c->dec_firsttable)); + c->dec_maxlength=0; + + for(i=0;idec_maxlengthdec_codelengths[i]) + c->dec_maxlength=c->dec_codelengths[i]; + if(c->dec_codelengths[i]<=c->dec_firsttablen){ + ogg_uint32_t orig=bitreverse(c->codelist[i]); + for(j=0;j<(1<<(c->dec_firsttablen-c->dec_codelengths[i]));j++) + c->dec_firsttable[orig|(j<dec_codelengths[i])]=i+1; + } } - } - - /* now fill in 'unused' entries in the firsttable with hi/lo search - hints for the non-direct-hits */ - { - ogg_uint32_t mask=0xfffffffeUL<<(31-c->dec_firsttablen); - long lo=0,hi=0; - - for(i=0;idec_firsttablen); - if(c->dec_firsttable[bitreverse(word)]==0){ - while((lo+1)codelist[lo+1]<=word)lo++; - while( hi=(c->codelist[hi]&mask))hi++; - - /* we only actually have 15 bits per hint to play with here. - In order to overflow gracefully (nothing breaks, efficiency - just drops), encode as the difference from the extremes. */ - { - unsigned long loval=lo; - unsigned long hival=n-hi; - - if(loval>0x7fff)loval=0x7fff; - if(hival>0x7fff)hival=0x7fff; - c->dec_firsttable[bitreverse(word)]= - 0x80000000UL | (loval<<15) | hival; + + /* now fill in 'unused' entries in the firsttable with hi/lo search + hints for the non-direct-hits */ + { + ogg_uint32_t mask=0xfffffffeUL<<(31-c->dec_firsttablen); + long lo=0,hi=0; + + for(i=0;idec_firsttablen); + if(c->dec_firsttable[bitreverse(word)]==0){ + while((lo+1)codelist[lo+1]<=word)lo++; + while( hi=(c->codelist[hi]&mask))hi++; + + /* we only actually have 15 bits per hint to play with here. + In order to overflow gracefully (nothing breaks, efficiency + just drops), encode as the difference from the extremes. */ + { + unsigned long loval=lo; + unsigned long hival=n-hi; + + if(loval>0x7fff)loval=0x7fff; + if(hival>0x7fff)hival=0x7fff; + c->dec_firsttable[bitreverse(word)]= + 0x80000000UL | (loval<<15) | hival; + } } } } } - return(0); err_out: r13179.patch: info.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletion(-) --- NEW FILE r13179.patch --- Index: lib/info.c =================================================================== --- lib/info.c (revision 13178) +++ lib/info.c (revision 13179) @@ -222,7 +222,8 @@ static int _vorbis_unpack_info(vorbis_in if(vi->channels<1)goto err_out; if(ci->blocksizes[0]<64)goto err_out; if(ci->blocksizes[1]blocksizes[0])goto err_out; - + if(ci->blocksizes[1]>8192)goto err_out; + if(oggpack_read(opb,1)!=1)goto err_out; /* EOP check */ return(0); r13211.patch: vorbisfile.c | 102 ++++++++++++++++++++++++++++++++++++++--------------------- 1 files changed, 66 insertions(+), 36 deletions(-) --- NEW FILE r13211.patch --- Index: lib/vorbisfile.c =================================================================== --- lib/vorbisfile.c (revision 13210) +++ lib/vorbisfile.c (revision 13211) @@ -73,15 +73,17 @@ static long _get_data(OggVorbis_File *vf } /* save a tiny smidge of verbosity to make the code more readable */ -static void _seek_helper(OggVorbis_File *vf,ogg_int64_t offset){ +static int _seek_helper(OggVorbis_File *vf,ogg_int64_t offset){ if(vf->datasource){ - (vf->callbacks.seek_func)(vf->datasource, offset, SEEK_SET); + if((vf->callbacks.seek_func)(vf->datasource, offset, SEEK_SET) == -1) + return OV_EREAD; vf->offset=offset; ogg_sync_reset(&vf->oy); }else{ /* shouldn't happen unless someone writes a broken callback */ - return; + return OV_EFAULT; } + return 0; } /* The read/seek functions track absolute position within the stream */ @@ -145,7 +147,10 @@ static ogg_int64_t _get_prev_page(OggVor begin-=CHUNKSIZE; if(begin<0) begin=0; - _seek_helper(vf,begin); + + ret=_seek_helper(vf,begin); + if(ret)return(ret); + while(vf->offsetoffset); if(ret==OV_EREAD)return(OV_EREAD); @@ -158,7 +163,9 @@ static ogg_int64_t _get_prev_page(OggVor } /* we have the offset. Actually snork and hold the page now */ - _seek_helper(vf,offset); + ret=_seek_helper(vf,offset); + if(ret)return(ret); + ret=_get_next_page(vf,og,CHUNKSIZE); if(ret<0) /* this shouldn't be possible */ @@ -193,7 +200,9 @@ static int _bisect_forward_serialno(OggV bisect=(searched+endsearched)/2; } - _seek_helper(vf,bisect); + ret=_seek_helper(vf,bisect); + if(ret)return(ret); + ret=_get_next_page(vf,&og,-1); if(ret==OV_EREAD)return(OV_EREAD); if(ret<0 || ogg_page_serialno(&og)!=currentno){ @@ -204,7 +213,9 @@ static int _bisect_forward_serialno(OggV } } - _seek_helper(vf,next); + ret=_seek_helper(vf,next); + if(ret)return(ret); + ret=_get_next_page(vf,&og,-1); if(ret==OV_EREAD)return(OV_EREAD); @@ -303,17 +314,23 @@ static void _prefetch_all_headers(OggVor if(i==0){ /* we already grabbed the initial header earlier. Just set the offset */ vf->dataoffsets[i]=dataoffset; - _seek_helper(vf,dataoffset); + ret=_seek_helper(vf,dataoffset); + if(ret) + vf->dataoffsets[i]=-1; }else{ /* seek to the location of the initial header */ - _seek_helper(vf,vf->offsets[i]); - if(_fetch_headers(vf,vf->vi+i,vf->vc+i,NULL,NULL)<0){ - vf->dataoffsets[i]=-1; + ret=_seek_helper(vf,vf->offsets[i]); + if(ret){ + vf->dataoffsets[i]=-1; }else{ - vf->dataoffsets[i]=vf->offset; + if(_fetch_headers(vf,vf->vi+i,vf->vc+i,NULL,NULL)<0){ + vf->dataoffsets[i]=-1; + }else{ + vf->dataoffsets[i]=vf->offset; + } } } @@ -367,21 +384,27 @@ static void _prefetch_all_headers(OggVor get the last page of the stream */ { ogg_int64_t end=vf->offsets[i+1]; - _seek_helper(vf,end); - - while(1){ - ret=_get_prev_page(vf,&og); - if(ret<0){ - /* this should not be possible */ - vorbis_info_clear(vf->vi+i); - vorbis_comment_clear(vf->vc+i); - break; - } - if(ogg_page_granulepos(&og)!=-1){ - vf->pcmlengths[i*2+1]=ogg_page_granulepos(&og)-vf->pcmlengths[i*2]; - break; + ret=_seek_helper(vf,end); + if(ret){ + /* this should not be possible */ + vorbis_info_clear(vf->vi+i); + vorbis_comment_clear(vf->vc+i); + }else{ + + while(1){ + ret=_get_prev_page(vf,&og); + if(ret<0){ + /* this should not be possible */ + vorbis_info_clear(vf->vi+i); + vorbis_comment_clear(vf->vc+i); + break; + } + if(ogg_page_granulepos(&og)!=-1){ + vf->pcmlengths[i*2+1]=ogg_page_granulepos(&og)-vf->pcmlengths[i*2]; + break; + } + vf->offset=ret; } - vf->offset=ret; } } } @@ -951,6 +974,7 @@ double ov_time_total(OggVorbis_File *vf, int ov_raw_seek(OggVorbis_File *vf,ogg_int64_t pos){ ogg_stream_state work_os; + int ret; if(vf->ready_stateseekable) @@ -967,7 +991,8 @@ int ov_raw_seek(OggVorbis_File *vf,ogg_i vf->current_serialno); /* must set serialno */ vorbis_synthesis_restart(&vf->vd); - _seek_helper(vf,pos); + ret=_seek_helper(vf,pos); + if(ret)return(ret); /* we need to make sure the pcm_offset is set, but we don't want to advance the raw cursor past good packets just to get to the first @@ -1098,7 +1123,7 @@ int ov_pcm_seek_page(OggVorbis_File *vf, int link=-1; ogg_int64_t result=0; ogg_int64_t total=ov_pcm_total(vf,-1); - + if(vf->ready_stateseekable)return(OV_ENOSEEK); @@ -1139,8 +1164,9 @@ int ov_pcm_seek_page(OggVorbis_File *vf, bisect=begin+1; } - _seek_helper(vf,bisect); - + result=_seek_helper(vf,bisect); + if(result) goto seek_error; + while(beginoffset); if(result==OV_EREAD) goto seek_error; @@ -1151,7 +1177,8 @@ int ov_pcm_seek_page(OggVorbis_File *vf, if(bisect==0) goto seek_error; bisect-=CHUNKSIZE; if(bisect<=begin)bisect=begin+1; - _seek_helper(vf,bisect); + result=_seek_helper(vf,bisect); + if(result) goto seek_error; } }else{ ogg_int64_t granulepos=ogg_page_granulepos(&og); @@ -1171,7 +1198,8 @@ int ov_pcm_seek_page(OggVorbis_File *vf, end=result; bisect-=CHUNKSIZE; /* an endless loop otherwise. */ if(bisect<=begin)bisect=begin+1; - _seek_helper(vf,bisect); + result=_seek_helper(vf,bisect); + if(result) goto seek_error; }else{ end=result; endtime=granulepos; @@ -1190,10 +1218,11 @@ int ov_pcm_seek_page(OggVorbis_File *vf, ogg_packet op; /* seek */ - _seek_helper(vf,best); + result=_seek_helper(vf,best); vf->pcm_offset=-1; - - if(_get_next_page(vf,&og,-1)<0)return(OV_EOF); /* shouldn't happen */ + if(result) goto seek_error; + result=_get_next_page(vf,&og,-1); + if(result<0) goto seek_error; if(link!=vf->current_link){ /* Different link; dump entire decode machine */ @@ -1219,7 +1248,8 @@ int ov_pcm_seek_page(OggVorbis_File *vf, get one with a granulepos or without the 'continued' flag set. Then just use raw_seek for simplicity. */ - _seek_helper(vf,best); + result=_seek_helper(vf,best); + if(result<0) goto seek_error; while(1){ result=_get_prev_page(vf,&og); r13215.patch: vorbisfile.c | 26 +++++++++++++++++--------- 1 files changed, 17 insertions(+), 9 deletions(-) --- NEW FILE r13215.patch --- Index: lib/vorbisfile.c =================================================================== --- lib/vorbisfile.c (revision 13214) +++ lib/vorbisfile.c (revision 13215) @@ -1330,8 +1330,14 @@ int ov_pcm_seek_page(OggVorbis_File *vf, if(result) goto seek_error; } }else{ - ogg_int64_t granulepos=ogg_page_granulepos(&og); + ogg_int64_t granulepos; + + if(ogg_page_serialno(&og)!=vf->serialnos[link]) + continue; + + granulepos=ogg_page_granulepos(&og); if(granulepos==-1)continue; + if(granuleposoffset; /* raw offset of next page */ @@ -1378,7 +1384,7 @@ int ov_pcm_seek_page(OggVorbis_File *vf, _decode_clear(vf); vf->current_link=link; - vf->current_serialno=ogg_page_serialno(&og); + vf->current_serialno=vf->serialnos[link]; vf->ready_state=STREAMSET; }else{ @@ -1403,8 +1409,9 @@ int ov_pcm_seek_page(OggVorbis_File *vf, while(1){ result=_get_prev_page(vf,&og); if(result<0) goto seek_error; - if(ogg_page_granulepos(&og)>-1 || - !ogg_page_continued(&og)){ + if(ogg_page_serialno(&og)==vf->current_serialno && + (ogg_page_granulepos(&og)>-1 || + !ogg_page_continued(&og))){ return ov_raw_seek(vf,result); } vf->offset=result; @@ -1495,19 +1502,20 @@ int ov_pcm_seek(OggVorbis_File *vf,ogg_i /* suck in a new page */ if(_get_next_page(vf,&og,-1)<0)break; - if(vf->current_serialno!=ogg_page_serialno(&og))_decode_clear(vf); + if(ogg_page_bos(&og))_decode_clear(vf); if(vf->ready_statecurrent_serialno=ogg_page_serialno(&og); for(link=0;linklinks;link++) - if(vf->serialnos[link]==vf->current_serialno)break; - if(link==vf->links)return(OV_EBADLINK); + if(vf->serialnos[link]==serialno)break; + if(link==vf->links) continue; vf->current_link=link; - ogg_stream_reset_serialno(&vf->os,vf->current_serialno); vf->ready_state=STREAMSET; + vf->current_serialno=ogg_page_serialno(&og); + ogg_stream_reset_serialno(&vf->os,serialno); ret=_make_decode_ready(vf); if(ret)return ret; lastblock=0; r13217-CVE-2007-4065.patch: vorbisfile.c | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) --- NEW FILE r13217-CVE-2007-4065.patch --- Index: lib/vorbisfile.c =================================================================== --- lib/vorbisfile.c (revision 13216) +++ lib/vorbisfile.c (revision 13217) @@ -1356,7 +1355,7 @@ int ov_pcm_seek_page(OggVorbis_File *vf, result=_seek_helper(vf,bisect); if(result) goto seek_error; }else{ - end=result; + end=bisect; endtime=granulepos; break; } Index: libvorbis.spec =================================================================== RCS file: /cvs/dist/rpms/libvorbis/FC-6/libvorbis.spec,v retrieving revision 1.24 retrieving revision 1.25 diff -u -r1.24 -r1.25 --- libvorbis.spec 12 Jul 2006 06:58:43 -0000 1.24 +++ libvorbis.spec 10 Aug 2007 01:32:50 -0000 1.25 @@ -7,11 +7,30 @@ License: BSD URL: http://www.xiph.org/ Source: http://www.xiph.org/ogg/vorbis/download/%{name}-%{version}.tar.gz -Patch: libvorbis-1.0-m4.patch BuildRoot: %{_tmppath}/%{name}-%{version}-root Requires: libogg >= 2:1.1 BuildPrereq: libogg-devel >= 2:1.1 +Patch0: libvorbis-1.0-m4.patch + +# It was a black day... +Patch1: r13149.patch +Patch2: r13151.patch +Patch3: r13153.patch +Patch4: r13154.patch +Patch5: r13155.patch +Patch6: r13160-CVE-2007-3106.patch +Patch7: r13162.patch +Patch8: r13167.patch +Patch9: r13168.patch +Patch10: r13169.patch +Patch11: r13170.patch +Patch12: r13172.patch +Patch13: r13179.patch +Patch14: r13211.patch +Patch15: r13215.patch +Patch16: r13217-CVE-2007-4065.patch + %description Ogg Vorbis is a fully open, non-proprietary, patent-and royalty-free, general-purpose compressed audio format for audio and music at fixed @@ -34,7 +53,27 @@ %prep %setup -q -%patch -p1 -b .m4-patch + +%patch0 -p1 -b .m4-patch + +%patch1 -p0 -b r13149 +%patch2 -p0 -b r13151 +%patch3 -p0 -b r13153 +%patch4 -p0 -b r13154 +%patch5 -p0 -b r13155 +%patch6 -p0 -b r13160-CVE-2007-3106 +%patch7 -p0 -b r13162 +%patch8 -p0 -b r13167 +%patch9 -p0 -b r13168 +%patch10 -p0 -b r13169 +%patch11 -p0 -b r13170 +%patch12 -p0 -b r13172 +%patch13 -p0 -b r13179 +%patch14 -p0 -b r13211 +%patch15 -p0 -b r13215 +%patch16 -p0 -b r13217-CVE-2007-4065 + + perl -p -i -e "s/-O20/$RPM_OPT_FLAGS/" configure perl -p -i -e "s/-ffast-math//" configure # link to .pdf spec rather than ship redundant copy @@ -82,6 +121,10 @@ %postun -p /sbin/ldconfig %changelog +* Thu Aug 9 2007 Behdad Esfahbod - 1:1.1.2-3 +- Add 16 patches to fix various CVEs. +- Resolves: #250600 + * Wed Jul 12 2006 Jesse Keating - 1:1.1.2-1.2.1 - rebuild From fedora-cvs-commits at redhat.com Fri Aug 10 01:33:30 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Thu, 9 Aug 2007 21:33:30 -0400 Subject: rpms/libvorbis/FC-6 libvorbis.spec,1.25,1.26 Message-ID: <200708100133.l7A1XUZg004494@cvs.devel.redhat.com> Author: besfahbo Update of /cvs/dist/rpms/libvorbis/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv4479 Modified Files: libvorbis.spec Log Message: Fix revision Index: libvorbis.spec =================================================================== RCS file: /cvs/dist/rpms/libvorbis/FC-6/libvorbis.spec,v retrieving revision 1.25 retrieving revision 1.26 diff -u -r1.25 -r1.26 --- libvorbis.spec 10 Aug 2007 01:32:50 -0000 1.25 +++ libvorbis.spec 10 Aug 2007 01:33:27 -0000 1.26 @@ -1,7 +1,7 @@ Summary: The Vorbis General Audio Compression Codec. Name: libvorbis Version: 1.1.2 -Release: 1.2.1 +Release: 2 Epoch: 1 Group: System Environment/Libraries License: BSD @@ -121,7 +121,7 @@ %postun -p /sbin/ldconfig %changelog -* Thu Aug 9 2007 Behdad Esfahbod - 1:1.1.2-3 +* Thu Aug 9 2007 Behdad Esfahbod - 1:1.1.2-2 - Add 16 patches to fix various CVEs. - Resolves: #250600 From fedora-cvs-commits at redhat.com Fri Aug 10 01:34:26 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Thu, 9 Aug 2007 21:34:26 -0400 Subject: rpms/libvorbis/FC-6 libvorbis.spec,1.26,1.27 Message-ID: <200708100134.l7A1YQ5h004563@cvs.devel.redhat.com> Author: besfahbo Update of /cvs/dist/rpms/libvorbis/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv4548 Modified Files: libvorbis.spec Log Message: Add %{?dist} to release Index: libvorbis.spec =================================================================== RCS file: /cvs/dist/rpms/libvorbis/FC-6/libvorbis.spec,v retrieving revision 1.26 retrieving revision 1.27 diff -u -r1.26 -r1.27 --- libvorbis.spec 10 Aug 2007 01:33:27 -0000 1.26 +++ libvorbis.spec 10 Aug 2007 01:34:24 -0000 1.27 @@ -1,7 +1,7 @@ Summary: The Vorbis General Audio Compression Codec. Name: libvorbis Version: 1.1.2 -Release: 2 +Release: 2%{?dist} Epoch: 1 Group: System Environment/Libraries License: BSD From fedora-cvs-commits at redhat.com Fri Aug 10 12:59:19 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Fri, 10 Aug 2007 08:59:19 -0400 Subject: rpms/tetex/FC-6 tetex-3.0-CVE-2007-3387.patch, NONE, 1.1 tetex.spec, 1.104, 1.105 tetex-3.0-mktexlsrfix.patch, 1.1, NONE Message-ID: <200708101259.l7ACxJ7r015765@cvs.devel.redhat.com> Author: jnovy Update of /cvs/dist/rpms/tetex/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv15739 Modified Files: tetex.spec Added Files: tetex-3.0-CVE-2007-3387.patch Removed Files: tetex-3.0-mktexlsrfix.patch Log Message: - backport upstream fix for xpdf integer overflow CVE-2007-3387 (#251515) - don't mess up file contexts while running texhash (#235032) tetex-3.0-CVE-2007-3387.patch: Stream.cc | 9 +++++++++ 1 files changed, 9 insertions(+) --- NEW FILE tetex-3.0-CVE-2007-3387.patch --- --- tetex-src-3.0/libs/xpdf/xpdf/Stream.cc.CVE-2007-3387 2007-07-26 17:13:02.000000000 +0200 +++ tetex-src-3.0/libs/xpdf/xpdf/Stream.cc 2007-07-26 17:21:58.000000000 +0200 @@ -15,6 +15,7 @@ #include #include #include +#include #ifndef WIN32 #include #endif @@ -32,6 +33,7 @@ #include "JBIG2Stream.h" #include "JPXStream.h" #include "Stream-CCITT.h" +#include "GfxState.h" #ifdef __DJGPP__ static GBool setDJSYSFLAGS = gFalse; @@ -429,6 +431,13 @@ StreamPredictor::StreamPredictor(Stream if (rowBytes < 0) { return; } + if (width <= 0 || nComps <= 0 || nBits <= 0 || + nComps > gfxColorMaxComps || + nBits > 16 || + width >= INT_MAX / nComps || // check for overflow in nVals + nVals >= (INT_MAX - 7) / nBits) { // check for overflow in rowBytes + return; + } predLine = (Guchar *)gmalloc(rowBytes); memset(predLine, 0, rowBytes); predIdx = rowBytes; Index: tetex.spec =================================================================== RCS file: /cvs/dist/rpms/tetex/FC-6/tetex.spec,v retrieving revision 1.104 retrieving revision 1.105 diff -u -r1.104 -r1.105 --- tetex.spec 11 Apr 2007 10:33:05 -0000 1.104 +++ tetex.spec 10 Aug 2007 12:59:16 -0000 1.105 @@ -11,7 +11,7 @@ Summary: The TeX text formatting system. Name: tetex Version: 3.0 -Release: 34%{?dist} +Release: 35%{?dist} License: distributable Group: Applications/Publishing Requires: tmpwatch, dialog, ed @@ -88,8 +88,8 @@ Patch21: tetex-3.0-dvipdfm.patch Patch22: tetex-3.0-selinux.patch Patch23: tetex-3.0-footfix.patch -Patch24: tetex-3.0-mktexlsrfix.patch -Patch25: tetex-3.0-CVE-2007-0650.patch +Patch24: tetex-3.0-CVE-2007-0650.patch +Patch25: tetex-3.0-CVE-2007-3387.patch ###### # Japanization patches @@ -309,10 +309,10 @@ %patch22 -p1 -b .selinux # fix para option in footmisc package (#188701) %patch23 -p1 -b .footfix -# don't inherit incorrect permissions for ls-R from parent directory (#220239) -%patch24 -p1 -b .mktexlsrfix # fix a couple of string overflows in makeindex - CVE-2007-0650 (#225491) -%patch25 -p1 -b .CVE-2007-0650 +%patch24 -p1 -b .CVE-2007-0650 +# fix xpdf integer overflow CVE-2007-3387 (#248194) +%patch25 -p1 -b .CVE-2007-3387 %if %{enable_japanese} mkdir texmf/ptex-texmf @@ -865,6 +865,10 @@ %defattr(-,root,root) %changelog +* Fri Aug 10 2007 Jindrich Novy 3.0-35 +- backport upstream fix for xpdf integer overflow CVE-2007-3387 (#251515) +- don't mess up file contexts while running texhash (#235032) + * Wed Apr 14 2007 Jindrich Novy 3.0-34 - update nomencl package from CTAN (#234466) - texdoc now searches in $TEXDOCS instead of $TEXMF/doc (#232769) --- tetex-3.0-mktexlsrfix.patch DELETED --- From fedora-cvs-commits at redhat.com Fri Aug 10 16:41:08 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Fri, 10 Aug 2007 12:41:08 -0400 Subject: rpms/kernel/FC-6 linux-2.6-drivers_pci_no_mmconf.patch, NONE, 1.1 linux-2.6-serial-revert-platform-conversion.patch, NONE, 1.1 patch-2.6.22.2.bz2.sign, NONE, 1.1 .cvsignore, 1.566, 1.567 kernel-2.6.spec, 1.3006, 1.3007 linux-2.6-sched-cfs.patch, 1.10, 1.11 linux-2.6-utrace-ptrace-compat-ia64.patch, 1.1, 1.2 linux-2.6-utrace-regset-ia64.patch, 1.1, 1.2 sources, 1.530, 1.531 upstream, 1.450, 1.451 linux-2.6-acpi-dock-oops.patch, 1.2, NONE linux-2.6-bluetooth-hangup-tty-before-rfcomm.patch, 1.1, NONE linux-2.6-cpufreq-acpi-fix-msr-write.patch, 1.1, NONE linux-2.6-i386-hpet-check-if-the-counter-works.patch, 1.1, NONE linux-2.6-input-rfkill-wrong-size-flags.patch, 1.1, NONE linux-2.6-ipc-shm-fix-user-leakage.patch, 1.1, NONE linux-2.6-jbd-fix-transaction-dropping.patch, 1.1, NONE linux-2.6-libata-ich8m-add-pciid.patch, 1.1, NONE linux-2.6-libata-unbreak-smart-2.patch, 1.2, NONE linux-2.6-libata-unbreak-smart.patch, 1.1, NONE linux-2.6-net-dst_entry-reorder-crash.patch, 1.1, NONE linux-2.6-net_sched_fix_deadlock.! patch, 1.1, NONE linux-2.6-seq_operations-leak.patch, 1.1, NONE linux-2.6-tcp-sack-fix-leak-msgs.patch, 1.1, NONE linux-2.6-usb-ftdi_sio-fix-oops.patch, 1.1, NONE patch-2.6.22.1.bz2.sign, 1.1, NONE Message-ID: <200708101641.l7AGf898021341@cvs.devel.redhat.com> Author: cebbert Update of /cvs/dist/rpms/kernel/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv21325 Modified Files: .cvsignore kernel-2.6.spec linux-2.6-sched-cfs.patch linux-2.6-utrace-ptrace-compat-ia64.patch linux-2.6-utrace-regset-ia64.patch sources upstream Added Files: linux-2.6-drivers_pci_no_mmconf.patch linux-2.6-serial-revert-platform-conversion.patch patch-2.6.22.2.bz2.sign Removed Files: linux-2.6-acpi-dock-oops.patch linux-2.6-bluetooth-hangup-tty-before-rfcomm.patch linux-2.6-cpufreq-acpi-fix-msr-write.patch linux-2.6-i386-hpet-check-if-the-counter-works.patch linux-2.6-input-rfkill-wrong-size-flags.patch linux-2.6-ipc-shm-fix-user-leakage.patch linux-2.6-jbd-fix-transaction-dropping.patch linux-2.6-libata-ich8m-add-pciid.patch linux-2.6-libata-unbreak-smart-2.patch linux-2.6-libata-unbreak-smart.patch linux-2.6-net-dst_entry-reorder-crash.patch linux-2.6-net_sched_fix_deadlock.patch linux-2.6-seq_operations-leak.patch linux-2.6-tcp-sack-fix-leak-msgs.patch linux-2.6-usb-ftdi_sio-fix-oops.patch patch-2.6.22.1.bz2.sign Log Message: * Fri Aug 10 2007 Chuck Ebbert - 2.6.22.2 - don't use incremental patches for -stable - update CFS scheduler with upstream patches - serial: revert changes to port detection - update utrace - disable PCI MMCONFIG by default linux-2.6-drivers_pci_no_mmconf.patch: Documentation/kernel-parameters.txt | 2 ++ arch/i386/pci/common.c | 6 +++++- 2 files changed, 7 insertions(+), 1 deletion(-) --- NEW FILE linux-2.6-drivers_pci_no_mmconf.patch --- Disable MMCONFIG by default, add kernel parameter to enable it. Original mmconfig patch by Kyle McMartin Signed-off-by: Chuck Ebbert --- linux-2.6.20.noarch.orig/Documentation/kernel-parameters.txt +++ linux-2.6.20.noarch/Documentation/kernel-parameters.txt @@ -1197,6 +1197,8 @@ and is between 256 and 4096 characters. Mechanism 1. conf2 [IA-32] Force use of PCI Configuration Mechanism 2. + mmconf [IA-32,X86_64] Enable use of MMCONFIG for PCI + Configuration nommconf [IA-32,X86_64] Disable use of MMCONFIG for PCI Configuration nomsi [MSI] If the PCI_MSI kernel config parameter is --- linux-2.6.20.noarch.orig/arch/i386/pci/common.c +++ linux-2.6.20.noarch/arch/i386/pci/common.c @@ -18,7 +18,7 @@ #include "pci.h" unsigned int pci_probe = PCI_PROBE_BIOS | PCI_PROBE_CONF1 | PCI_PROBE_CONF2 | - PCI_PROBE_MMCONF; + 0; /* was PCI_PROBE_MMCONF */ static int pci_bf_sort; int pci_routeirq; @@ -292,6 +292,10 @@ char * __devinit pcibios_setup(char *st pci_probe &= ~PCI_PROBE_MMCONF; return NULL; } + else if (!strcmp(str, "mmconf")) { + pci_probe |= PCI_PROBE_MMCONF; + return NULL; + } #endif else if (!strcmp(str, "noacpi")) { acpi_noirq_set(); linux-2.6-serial-revert-platform-conversion.patch: arch/i386/kernel/legacy_serial.c | 67 ---------------------------------- b/Documentation/kernel-parameters.txt | 5 -- b/arch/i386/kernel/Makefile | 1 b/arch/x86_64/kernel/Makefile | 2 - b/drivers/serial/Kconfig | 14 ++----- b/include/asm-i386/serial.h | 16 ++++++++ b/include/asm-x86_64/serial.h | 16 ++++++++ 7 files changed, 37 insertions(+), 84 deletions(-) --- NEW FILE linux-2.6-serial-revert-platform-conversion.patch --- Gitweb: http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=57d4810ea0d9ca58a7bcc1336607f0cede0a2abf Commit: 57d4810ea0d9ca58a7bcc1336607f0cede0a2abf Parent: a583f1b54249b11ad1ffd14c6e74d28fcbc59c07 Author: Andrew Morton AuthorDate: Tue Jul 31 00:38:02 2007 -0700 Committer: Linus Torvalds CommitDate: Tue Jul 31 15:39:38 2007 -0700 revert "x86, serial: convert legacy COM ports to platform devices" Revert 7e92b4fc345f5b6f57585fbe5ffdb0f24d7c9b26. It broke S??bastien Dugu??'s machine and Jeff said (persuasively) This seems like it will break decades-long-working stuff, in favor of breaking new ground in our favorite area, "trusting the BIOS." It's just not worth it for serial ports, IMO. Serial ports are something that just shouldn't break at this late stage in the game. My new Intel platform boxes don't even have serial ports, so I question the value of messing with serial port probing even more... because... just wait a year, and your box won't have a serial port either! :) I certainly don't object to the use of platform devices (or isa_driver), but the probe change seems questionable. That's sorta analagous to rewriting the floppy driver probe routine. Sure you could do it... but why risk all that damage and go through debugging all over again? It seems clear from this report that we cannot, should not, trust BIOS for something (a) so simple and (b) that has been working for over a decade. Much discussion ensued and we've decided to have another go at all of this. Cc: S??bastien Dugu?? Cc: Bjorn Helgaas Cc: Len Brown Cc: Adam Belay Cc: Matthew Garrett Cc: Russell King Cc: Jeff Garzik Acked-by: Alan Cox Cc: Michal Piotrowski Cc: Sascha Sommer Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- Documentation/kernel-parameters.txt | 5 --- arch/i386/kernel/Makefile | 1 - arch/i386/kernel/legacy_serial.c | 67 ----------------------------------- arch/x86_64/kernel/Makefile | 2 - drivers/serial/Kconfig | 14 +++----- include/asm-i386/serial.h | 16 ++++++++ include/asm-x86_64/serial.h | 16 ++++++++ 7 files changed, 37 insertions(+), 84 deletions(-) diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index d763ebe..efdb42f 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt @@ -864,11 +864,6 @@ and is between 256 and 4096 characters. It is defined in the file lasi= [HW,SCSI] PARISC LASI driver for the 53c700 chip Format: addr:,irq: - legacy_serial.force [HW,IA-32,X86-64] - Probe for COM ports at legacy addresses even - if PNPBIOS or ACPI should describe them. This - is for working around firmware defects. - llsc*= [IA64] See function print_params() in arch/ia64/sn/kernel/llsc4.c. diff --git a/arch/i386/kernel/Makefile b/arch/i386/kernel/Makefile index dbe5e87..9d33b00 100644 --- a/arch/i386/kernel/Makefile +++ b/arch/i386/kernel/Makefile @@ -35,7 +35,6 @@ obj-y += sysenter.o vsyscall.o obj-$(CONFIG_ACPI_SRAT) += srat.o obj-$(CONFIG_EFI) += efi.o efi_stub.o obj-$(CONFIG_DOUBLEFAULT) += doublefault.o -obj-$(CONFIG_SERIAL_8250) += legacy_serial.o obj-$(CONFIG_VM86) += vm86.o obj-$(CONFIG_EARLY_PRINTK) += early_printk.o obj-$(CONFIG_HPET_TIMER) += hpet.o diff --git a/arch/i386/kernel/legacy_serial.c b/arch/i386/kernel/legacy_serial.c deleted file mode 100644 index 2151011..0000000 --- a/arch/i386/kernel/legacy_serial.c +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Legacy COM port devices for x86 platforms without PNPBIOS or ACPI. - * Data taken from include/asm-i386/serial.h. - * - * (c) Copyright 2007 Hewlett-Packard Development Company, L.P. - * Bjorn Helgaas - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#include -#include -#include -#include - -/* Standard COM flags (except for COM4, because of the 8514 problem) */ -#ifdef CONFIG_SERIAL_DETECT_IRQ -#define COM_FLAGS (UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | UPF_AUTO_IRQ) -#define COM4_FLAGS (UPF_BOOT_AUTOCONF | UPF_AUTO_IRQ) -#else -#define COM_FLAGS (UPF_BOOT_AUTOCONF | UPF_SKIP_TEST) -#define COM4_FLAGS UPF_BOOT_AUTOCONF -#endif - -#define PORT(_base,_irq,_flags) \ - { \ - .iobase = _base, \ - .irq = _irq, \ - .uartclk = 1843200, \ - .iotype = UPIO_PORT, \ - .flags = _flags, \ - } - -static struct plat_serial8250_port x86_com_data[] = { - PORT(0x3F8, 4, COM_FLAGS), - PORT(0x2F8, 3, COM_FLAGS), - PORT(0x3E8, 4, COM_FLAGS), - PORT(0x2E8, 3, COM4_FLAGS), - { }, -}; - -static struct platform_device x86_com_device = { - .name = "serial8250", - .id = PLAT8250_DEV_PLATFORM, - .dev = { - .platform_data = x86_com_data, - }, -}; - -static int force_legacy_probe; -module_param_named(force, force_legacy_probe, bool, 0); -MODULE_PARM_DESC(force, "Force legacy serial port probe"); - -static int __init serial8250_x86_com_init(void) -{ - if (pnp_platform_devices && !force_legacy_probe) - return -ENODEV; - - return platform_device_register(&x86_com_device); -} - -module_init(serial8250_x86_com_init); - -MODULE_AUTHOR("Bjorn Helgaas"); -MODULE_LICENSE("GPL"); -MODULE_DESCRIPTION("Generic 8250/16x50 legacy probe module"); diff --git a/arch/x86_64/kernel/Makefile b/arch/x86_64/kernel/Makefile index d1d18c1..ff5d8c9 100644 --- a/arch/x86_64/kernel/Makefile +++ b/arch/x86_64/kernel/Makefile @@ -32,7 +32,6 @@ obj-$(CONFIG_EARLY_PRINTK) += early_printk.o obj-$(CONFIG_IOMMU) += pci-gart.o aperture.o obj-$(CONFIG_CALGARY_IOMMU) += pci-calgary.o tce.o obj-$(CONFIG_SWIOTLB) += pci-swiotlb.o -obj-$(CONFIG_SERIAL_8250) += legacy_serial.o obj-$(CONFIG_KPROBES) += kprobes.o obj-$(CONFIG_X86_PM_TIMER) += pmtimer.o obj-$(CONFIG_X86_VSMP) += vsmp.o @@ -51,7 +50,6 @@ CFLAGS_vsyscall.o := $(PROFILING) -g0 therm_throt-y += ../../i386/kernel/cpu/mcheck/therm_throt.o bootflag-y += ../../i386/kernel/bootflag.o -legacy_serial-y += ../../i386/kernel/legacy_serial.o cpuid-$(subst m,y,$(CONFIG_X86_CPUID)) += ../../i386/kernel/cpuid.o topology-y += ../../i386/kernel/topology.o microcode-$(subst m,y,$(CONFIG_MICROCODE)) += ../../i386/kernel/microcode.o diff --git a/drivers/serial/Kconfig b/drivers/serial/Kconfig index 18f6297..819fc3e 100644 --- a/drivers/serial/Kconfig +++ b/drivers/serial/Kconfig @@ -88,21 +88,17 @@ config SERIAL_8250_PCI depends on SERIAL_8250 && PCI default SERIAL_8250 help - Say Y here if you have PCI serial ports. - - To compile this driver as a module, choose M here: the module - will be called 8250_pci. + This builds standard PCI serial support. You may be able to + disable this feature if you only need legacy serial support. + Saves about 9K. config SERIAL_8250_PNP tristate "8250/16550 PNP device support" if EMBEDDED depends on SERIAL_8250 && PNP default SERIAL_8250 help - Say Y here if you have serial ports described by PNPBIOS or ACPI. - These are typically ports built into the system board. - - To compile this driver as a module, choose M here: the module - will be called 8250_pnp. + This builds standard PNP serial support. You may be able to + disable this feature if you only need legacy serial support. config SERIAL_8250_HP300 tristate diff --git a/include/asm-i386/serial.h b/include/asm-i386/serial.h index 57a4306..bd67480 100644 --- a/include/asm-i386/serial.h +++ b/include/asm-i386/serial.h @@ -11,3 +11,19 @@ * megabits/second; but this requires the faster clock. */ #define BASE_BAUD ( 1843200 / 16 ) + +/* Standard COM flags (except for COM4, because of the 8514 problem) */ +#ifdef CONFIG_SERIAL_DETECT_IRQ +#define STD_COM_FLAGS (ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST | ASYNC_AUTO_IRQ) +#define STD_COM4_FLAGS (ASYNC_BOOT_AUTOCONF | ASYNC_AUTO_IRQ) +#else +#define STD_COM_FLAGS (ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST) +#define STD_COM4_FLAGS ASYNC_BOOT_AUTOCONF +#endif + +#define SERIAL_PORT_DFNS \ + /* UART CLK PORT IRQ FLAGS */ \ + { 0, BASE_BAUD, 0x3F8, 4, STD_COM_FLAGS }, /* ttyS0 */ \ + { 0, BASE_BAUD, 0x2F8, 3, STD_COM_FLAGS }, /* ttyS1 */ \ + { 0, BASE_BAUD, 0x3E8, 4, STD_COM_FLAGS }, /* ttyS2 */ \ + { 0, BASE_BAUD, 0x2E8, 3, STD_COM4_FLAGS }, /* ttyS3 */ diff --git a/include/asm-x86_64/serial.h b/include/asm-x86_64/serial.h index 8ebd765..b0496e0 100644 --- a/include/asm-x86_64/serial.h +++ b/include/asm-x86_64/serial.h @@ -11,3 +11,19 @@ * megabits/second; but this requires the faster clock. */ #define BASE_BAUD ( 1843200 / 16 ) + +/* Standard COM flags (except for COM4, because of the 8514 problem) */ +#ifdef CONFIG_SERIAL_DETECT_IRQ +#define STD_COM_FLAGS (ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST | ASYNC_AUTO_IRQ) +#define STD_COM4_FLAGS (ASYNC_BOOT_AUTOCONF | ASYNC_AUTO_IRQ) +#else +#define STD_COM_FLAGS (ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST) +#define STD_COM4_FLAGS ASYNC_BOOT_AUTOCONF +#endif + +#define SERIAL_PORT_DFNS \ + /* UART CLK PORT IRQ FLAGS */ \ + { 0, BASE_BAUD, 0x3F8, 4, STD_COM_FLAGS }, /* ttyS0 */ \ + { 0, BASE_BAUD, 0x2F8, 3, STD_COM_FLAGS }, /* ttyS1 */ \ + { 0, BASE_BAUD, 0x3E8, 4, STD_COM_FLAGS }, /* ttyS2 */ \ + { 0, BASE_BAUD, 0x2E8, 3, STD_COM4_FLAGS }, /* ttyS3 */ --- NEW FILE patch-2.6.22.2.bz2.sign --- -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.7 (GNU/Linux) Comment: See http://www.kernel.org/signature.html for info iD8DBQBGu4u2yGugalF9Dw4RAlLtAJ4zDg1R8uIdb8zAJ/z1PlmQKqzLDQCdFwOl Sap9NPoyvbhqOBCc2/AOL4Y= =fHUk -----END PGP SIGNATURE----- Index: .cvsignore =================================================================== RCS file: /cvs/dist/rpms/kernel/FC-6/.cvsignore,v retrieving revision 1.566 retrieving revision 1.567 diff -u -r1.566 -r1.567 --- .cvsignore 11 Jul 2007 19:38:48 -0000 1.566 +++ .cvsignore 10 Aug 2007 16:41:05 -0000 1.567 @@ -3,4 +3,4 @@ temp-* kernel-2.6.22 linux-2.6.22.tar.bz2 -patch-2.6.22.1.bz2 +patch-2.6.22.2.bz2 Index: kernel-2.6.spec =================================================================== RCS file: /cvs/dist/rpms/kernel/FC-6/kernel-2.6.spec,v retrieving revision 1.3006 retrieving revision 1.3007 diff -u -r1.3006 -r1.3007 --- kernel-2.6.spec 9 Aug 2007 22:52:51 -0000 1.3006 +++ kernel-2.6.spec 10 Aug 2007 16:41:05 -0000 1.3007 @@ -30,7 +30,7 @@ ## If this is a released kernel ## %if 0%{?released_kernel} # Do we have a 2.6.21.y update to apply? -%define stable_update 1 +%define stable_update 2 # Set rpm version accordingly %if 0%{?stable_update} %define stablerev .%{stable_update} @@ -475,15 +475,7 @@ # For a stable release kernel %if 0%{?stable_update} -Patch00: patch-2.6.%{base_sublevel}.1.bz2 -# at present, you'll have to manually uncomment needed incrementals -# here to get up to 2.6.%{base_sublevel}.%{stable_update}, but they will -# all be automatically applied -#Patch01: patch-2.6.%{base_sublevel}.1-2.bz2 -#Patch02: patch-2.6.%{base_sublevel}.2-3.bz2 -#Patch03: patch-2.6.%{base_sublevel}.3-4.bz2 -#Patch04: patch-2.6.%{base_sublevel}.4-5.bz2 -#Patch05: patch-2.6.%{base_sublevel}.5-6.bz2 +Patch00: patch-2.6.%{base_sublevel}.%{stable_update}.bz2 # non-released_kernel case # These are automagically defined by the rcrev and gitrev values set up @@ -528,9 +520,9 @@ Patch35: linux-2.6-irq-dont-mask-interrupts-_reversed_.patch Patch40: linux-2.6-x86-tune-generic.patch Patch50: linux-2.6-x86-vga-vidfail.patch -Patch51: linux-2.6-i386-hpet-check-if-the-counter-works.patch Patch52: linux-2.6-amd-fix-broken-lapic-timer-detect.patch Patch90: linux-2.6-kvm-suspend.patch +Patch91: linux-2.6-serial-revert-platform-conversion.patch Patch100: linux-2.6-g5-therm-shutdown.patch Patch120: linux-2.6-ppc32-ucmpdi2.patch @@ -559,21 +551,16 @@ Patch340: linux-2.6-debug-sysfs-crash-debugging.patch Patch350: linux-2.6-devmem.patch Patch370: linux-2.6-crash-driver.patch -Patch380: linux-2.6-bluetooth-hangup-tty-before-rfcomm.patch Patch390: linux-2.6-dev-get-driver-properly.patch Patch400: linux-2.6-scsi-cpqarray-set-master.patch Patch401: linux-2.6-aacraid-ioctl-security.patch Patch420: linux-2.6-squashfs.patch -Patch421: linux-2.6-jbd-fix-transaction-dropping.patch Patch422: linux-2.6-gfs2-update.patch Patch430: linux-2.6-net-silence-noisy-printks.patch -Patch431: linux-2.6-tcp-sack-fix-leak-msgs.patch -Patch432: linux-2.6-net_sched_fix_deadlock.patch -Patch433: linux-2.6-net-dst_entry-reorder-crash.patch Patch434: linux-2.6-add_xt_statistic.h_to_hdrs.patch Patch440: linux-2.6-sha_alignment.patch + Patch450: linux-2.6-input-kill-stupid-messages.patch -Patch451: linux-2.6-input-rfkill-wrong-size-flags.patch Patch460: linux-2.6-serial-460800.patch Patch480: linux-2.6-proc-self-maps-fix.patch Patch490: linux-2.6-softlockup-disable.patch @@ -581,6 +568,7 @@ Patch520: linux-2.6-raid-autorun.patch Patch570: linux-2.6-selinux-mprotect-checks.patch Patch590: linux-2.6-unexport-symbols.patch + Patch600: linux-2.6-vm-silence-atomic-alloc-failures.patch Patch601: linux-2.6-slub-dont-bug-on-too-large-allocation.patch @@ -590,31 +578,28 @@ Patch635: linux-2.6-usb-autosuspend-default-disable.patch Patch636: linux-2.6-nohz-highres-disable.patch Patch640: linux-2.6-default_pci_no_msi.patch +Patch641: linux-2.6-drivers_pci_no_mmconf.patch Patch660: linux-2.6-libata-ali-atapi-dma.patch -Patch661: linux-2.6-libata-ich8m-add-pciid.patch Patch662: linux-2.6-ata-update-noncq.patch Patch663: linux-2.6-ata-quirk.patch -Patch664: linux-2.6-libata-unbreak-smart.patch -Patch666: linux-2.6-libata-unbreak-smart-2.patch Patch667: linux-2.6-libata-ata_piix_fix_pio-mwdma-programming.patch Patch668: linux-2.6-libata_pata_atiixp_add_ati_sb700.patch Patch669: linux-2.6-libata-restore-combined-mode.patch Patch670: linux-2.6-libata-pata_hpt37x-fix-2.6.22-clock-pll.patch Patch671: linux-2.6-libata-pata_ali-fix-hp-detect.patch + Patch680: git-wireless-dev.patch Patch690: linux-2.6-e1000-ich9.patch Patch710: linux-2.6-bcm43xx-pci-neuter.patch Patch712: linux-2.6-sky2-restore-workarounds.patch Patch713: linux-2.6-net-atl1-fix-typo-in-dma-setup.patch Patch714: linux-2.6-net-atl1-fix-typo-in-dma_req_block.patch + Patch740: linux-2.6-sdhci-ene-controller-quirk.patch Patch741: linux-2.6-sdhci-fix-interrupt-mask.patch Patch742: linux-2.6-sdhci-clear-error-interrupt.patch -Patch760: linux-2.6-usb-ftdi_sio-fix-oops.patch #Patch780: linux-2.6-clockevents-fix-resume-logic.patch -Patch790: linux-2.6-acpi-dock-oops.patch -Patch791: linux-2.6-cpufreq-acpi-fix-msr-write.patch Patch800: linux-2.6-wakeups-hdaps.patch Patch801: linux-2.6-wakeups.patch Patch900: linux-2.6-sched-cfs.patch @@ -622,8 +607,6 @@ Patch1010: linux-2.6-ondemand-timer.patch Patch1030: linux-2.6-nfs-nosharecache.patch Patch1400: linux-2.6-pcspkr-use-the-global-pit-lock.patch -Patch1420: linux-2.6-seq_operations-leak.patch -Patch1421: linux-2.6-ipc-shm-fix-user-leakage.patch %endif @@ -1036,15 +1019,10 @@ %else # Update to latest upstream. + # released_kernel with stable_update available case %if 0%{?stable_update} -ApplyPatch patch-2.6.%{base_sublevel}.1.bz2 -if [ %{stable_update} -ge 2 ]; then - for p in `seq 2 %{stable_update}`; do - let o=p-1 - ApplyPatch patch-2.6.%{base_sublevel}.$o-$p.bz2 - done -fi +ApplyPatch patch-2.6.%{base_sublevel}.%{stable_update}.bz2 # non-released_kernel case %else @@ -1114,13 +1092,13 @@ # for the installer cd that wants to automatically fall back to textmode # in that case ApplyPatch linux-2.6-x86-vga-vidfail.patch -# Check the hpet is counting. -ApplyPatch linux-2.6-i386-hpet-check-if-the-counter-works.patch # check all AMD CPU cores for broken lapic timer ApplyPatch linux-2.6-amd-fix-broken-lapic-timer-detect.patch # patch to fix suspend with kvm loaded and guests running ApplyPatch linux-2.6-kvm-suspend.patch +# revert to old legacy serial port detection +ApplyPatch linux-2.6-serial-revert-platform-conversion.patch # # PowerPC @@ -1187,7 +1165,6 @@ # # bluetooth # -ApplyPatch linux-2.6-bluetooth-hangup-tty-before-rfcomm.patch # # driver core @@ -1205,20 +1182,12 @@ # Filesystem patches. # Squashfs ApplyPatch linux-2.6-squashfs.patch -# jbd: fix transaction dropping -ApplyPatch linux-2.6-jbd-fix-transaction-dropping.patch # gfs2 update to latest ApplyPatch linux-2.6-gfs2-update.patch # Networking # Disable easy to trigger printk's. ApplyPatch linux-2.6-net-silence-noisy-printks.patch -# fix leak in tcp SACk processing -ApplyPatch linux-2.6-tcp-sack-fix-leak-msgs.patch -# deadlock in net scheduler(s) -ApplyPatch linux-2.6-net_sched_fix_deadlock.patch -# fix crash in xfrm4 -ApplyPatch linux-2.6-net-dst_entry-reorder-crash.patch # add header needed to build new iptables ApplyPatch linux-2.6-add_xt_statistic.h_to_hdrs.patch @@ -1227,8 +1196,6 @@ ApplyPatch linux-2.6-sha_alignment.patch # The input layer spews crap no-one cares about. ApplyPatch linux-2.6-input-kill-stupid-messages.patch -# rfkill driver screws up flags -ApplyPatch linux-2.6-input-rfkill-wrong-size-flags.patch # Allow to use 480600 baud on 16C950 UARTs ApplyPatch linux-2.6-serial-460800.patch # Add a safety net to softlockup so that it doesn't prevent installs. @@ -1261,6 +1228,8 @@ ApplyPatch linux-2.6-defaults-nonmi.patch # disable MSI by default ApplyPatch linux-2.6-default_pci_no_msi.patch +# disable MMCONFIG by default +ApplyPatch linux-2.6-drivers_pci_no_mmconf.patch # disable nohz and highres kernel options by default ApplyPatch linux-2.6-nohz-highres-disable.patch # Some USB devices don't work after auto-suspend, disable by default. @@ -1269,15 +1238,10 @@ # Disable ATAPI DMA on ALI chipsets. ApplyPatch linux-2.6-libata-ali-atapi-dma.patch # libata: don't initialize sg in ata_exec_internal() if DMA_NONE -# libata add ich8m (santa rosa) pata controller ID -ApplyPatch linux-2.6-libata-ich8m-add-pciid.patch # libata: update the noncq list ApplyPatch linux-2.6-ata-update-noncq.patch # ia64 ata quirk ApplyPatch linux-2.6-ata-quirk.patch -# Unbreak SMART on libata. -ApplyPatch linux-2.6-libata-unbreak-smart.patch -ApplyPatch linux-2.6-libata-unbreak-smart-2.patch # NSIA ApplyPatch linux-2.6-libata-ata_piix_fix_pio-mwdma-programming.patch # add ID for sb700 to the pata driver @@ -1313,15 +1277,10 @@ # USB # -ApplyPatch linux-2.6-usb-ftdi_sio-fix-oops.patch # timers # ACPI patches -# Fix ACPI dock oops (#238054) -ApplyPatch linux-2.6-acpi-dock-oops.patch -# acpi-cpufreq: fix register writes -ApplyPatch linux-2.6-cpufreq-acpi-fix-msr-write.patch # Fix excessive wakeups # Make hdaps timer only tick when in use. @@ -1336,10 +1295,6 @@ ApplyPatch linux-2.6-pcspkr-use-the-global-pit-lock.patch -# fix leaks of struct seq_operations -ApplyPatch linux-2.6-seq_operations-leak.patch -# fix leaks of ref to user struct -ApplyPatch linux-2.6-ipc-shm-fix-user-leakage.patch # END OF PATCH APPLICATIONS @@ -2262,6 +2217,14 @@ %endif %changelog +* Fri Aug 10 2007 Chuck Ebbert +- 2.6.22.2 +- don't use incremental patches for -stable +- update CFS scheduler with upstream patches +- serial: revert changes to port detection +- update utrace +- disable PCI MMCONFIG by default + * Thu Aug 09 2007 Chuck Ebbert - revert s390 changes linux-2.6-sched-cfs.patch: b/drivers/rtc/class.c | 5 b/drivers/s390/net/ctcmain.c | 6 b/drivers/s390/net/netiucv.c | 4 b/include/linux/time.h | 2 b/kernel/acct.c | 2 b/kernel/hrtimer.c | 2 b/kernel/sched.c | 26 b/kernel/sched_fair.c | 16 b/kernel/time.c | 16 b/kernel/time/timekeeping.c | 16 b/kernel/tsacct.c | 2 b/net/rxrpc/af_rxrpc.c | 2 b/net/rxrpc/ar-connection.c | 4 b/net/rxrpc/ar-transport.c | 4 b/net/rxrpc/rxkad.c | 2 include/linux/time.h | 6 kernel/hrtimer.c | 4 kernel/sched.c | 14 kernel/time/timekeeping.c | 25 linux/Documentation/kernel-parameters.txt | 43 linux/Documentation/sched-design-CFS.txt | 119 + linux/arch/i386/kernel/smpboot.c | 12 linux/arch/i386/kernel/tsc.c | 9 linux/arch/ia64/kernel/setup.c | 6 linux/arch/mips/kernel/smp.c | 11 linux/arch/sparc/kernel/smp.c | 10 linux/arch/sparc64/kernel/smp.c | 27 linux/block/cfq-iosched.c | 3 linux/fs/proc/array.c | 59 linux/fs/proc/base.c | 71 linux/include/asm-generic/bitops/sched.h | 21 linux/include/linux/hardirq.h | 13 linux/include/linux/sched.h | 258 +- linux/include/linux/topology.h | 14 linux/init/main.c | 5 linux/kernel/delayacct.c | 10 linux/kernel/exit.c | 5 linux/kernel/fork.c | 5 linux/kernel/posix-cpu-timers.c | 34 linux/kernel/sched.c | 2983 +++++++++++------------------- linux/kernel/sched_debug.c | 276 ++ linux/kernel/sched_fair.c | 1108 +++++++++++ linux/kernel/sched_idletask.c | 71 linux/kernel/sched_rt.c | 255 ++ linux/kernel/sched_stats.h | 235 ++ linux/kernel/softirq.c | 1 linux/kernel/sysctl.c | 76 47 files changed, 3721 insertions(+), 2177 deletions(-) Index: linux-2.6-sched-cfs.patch =================================================================== RCS file: /cvs/dist/rpms/kernel/FC-6/linux-2.6-sched-cfs.patch,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- linux-2.6-sched-cfs.patch 30 Jul 2007 14:07:41 -0000 1.10 +++ linux-2.6-sched-cfs.patch 10 Aug 2007 16:41:06 -0000 1.11 @@ -39,6 +39,19 @@ [17c38b7490b3f0300c7812aefdae2ddda7ab4112] Cache xtime every call to update_wall_time +[mingo/254753dc321ea2b753ca9bc58ac329557a20efac][merged inline] +sched: make the multiplication table more accurate + +[mingo/a69edb55605117cc0f20aa36c49c20b96590774d][merged inline] +sched: fix update_stats_enqueue() reniced codepath + +[mingo/7cff8cf61cac15fa29a1ca802826d2bcbca66152][appended] +sched: refine negative nice level granularity + +[mingo/f1a438d813d416fa9f4be4e6dbd10b54c5938d89][merged inline] +sched: reorder update_cpu_load(rq) with the ->task_tick() call + + Index: linux/Documentation/kernel-parameters.txt =================================================================== --- linux.orig/Documentation/kernel-parameters.txt @@ -2269,7 +2282,7 @@ } /* -@@ -791,53 +717,141 @@ static inline int __normal_prio(struct t +@@ -791,53 +717,144 @@ static inline int __normal_prio(struct t * this code will need modification */ #define TIME_SLICE_NICE_ZERO DEF_TIMESLICE @@ -2299,11 +2312,14 @@ + * it's +10% CPU usage. + */ +static const int prio_to_weight[40] = { -+/* -20 */ 88818, 71054, 56843, 45475, 36380, 29104, 23283, 18626, 14901, 11921, -+/* -10 */ 9537, 7629, 6103, 4883, 3906, 3125, 2500, 2000, 1600, 1280, -+/* 0 */ NICE_0_LOAD /* 1024 */, -+/* 1 */ 819, 655, 524, 419, 336, 268, 215, 172, 137, -+/* 10 */ 110, 87, 70, 56, 45, 36, 29, 23, 18, 15, ++ /* -20 */ 88761, 71755, 56483, 46273, 36291, ++ /* -15 */ 29154, 23254, 18705, 14949, 11916, ++ /* -10 */ 9548, 7620, 6100, 4904, 3906, ++ /* -5 */ 3121, 2501, 1991, 1586, 1277, ++ /* 0 */ 1024, 820, 655, 526, 423, ++ /* 5 */ 335, 272, 215, 172, 137, ++ /* 10 */ 110, 87, 70, 56, 45, ++ /* 15 */ 36, 29, 23, 18, 15, +}; -static void set_load_weight(struct task_struct *p) @@ -2324,14 +2340,14 @@ - p->load_weight = PRIO_TO_LOAD_WEIGHT(p->static_prio); -} +static const u32 prio_to_wmult[40] = { -+ 48356, 60446, 75558, 94446, 118058, 147573, -+ 184467, 230589, 288233, 360285, 450347, -+ 562979, 703746, 879575, 1099582, 1374389, -+ 1717986, 2147483, 2684354, 3355443, 4194304, -+ 5244160, 6557201, 8196502, 10250518, 12782640, -+ 16025997, 19976592, 24970740, 31350126, 39045157, -+ 49367440, 61356675, 76695844, 95443717, 119304647, -+ 148102320, 186737708, 238609294, 286331153, ++ /* -20 */ 48388, 59856, 76040, 92818, 118348, ++ /* -15 */ 147320, 184698, 229616, 287308, 360437, ++ /* -10 */ 449829, 563644, 704093, 875809, 1099582, ++ /* -5 */ 1376151, 1717300, 2157191, 2708050, 3363326, ++ /* 0 */ 4194304, 5237765, 6557202, 8165337, 10153587, ++ /* 5 */ 12820798, 15790321, 19976592, 24970740, 31350126, ++ /* 10 */ 39045157, 49367440, 61356676, 76695844, 95443717, ++ /* 15 */ 119304647, 148102320, 186737708, 238609294, 286331153, +}; static inline void @@ -4147,9 +4163,9 @@ - update_cpu_clock(p, rq, now); + spin_lock(&rq->lock); ++ update_cpu_load(rq); + if (curr != rq->idle) /* FIXME: needed? */ + curr->sched_class->task_tick(rq, curr); -+ update_cpu_load(rq); + spin_unlock(&rq->lock); - if (!idle_at_tick) @@ -5896,7 +5912,7 @@ =================================================================== --- /dev/null +++ linux/kernel/sched_fair.c -@@ -0,0 +1,1107 @@ +@@ -0,0 +1,1108 @@ +/* + * Completely Fair Scheduling (CFS) Class (SCHED_NORMAL/SCHED_BATCH) + * @@ -6287,7 +6303,8 @@ + (WMULT_SHIFT - NICE_0_SHIFT); + } else { + tmp = se->wait_runtime; -+ key -= (tmp * se->load.weight) >> NICE_0_SHIFT; ++ key -= (tmp * se->load.inv_weight) >> ++ (WMULT_SHIFT - NICE_0_SHIFT); + } + } + @@ -8264,3 +8281,55 @@ } - EXPORT_SYMBOL(current_kernel_time); +From: Ingo Molnar +Date: Thu, 9 Aug 2007 09:16:52 +0000 (+0200) +Subject: sched: refine negative nice level granularity +X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Fmingo%2Flinux-2.6-sched.git;a=commitdiff_plain;h=7cff8cf61cac15fa29a1ca802826d2bcbca66152 + +sched: refine negative nice level granularity + +refine the granularity of negative nice level tasks: let them +reschedule more often to offset the effect of them consuming +their wait_runtime proportionately slower. (This makes nice-0 +task scheduling smoother in the presence of negatively +reniced tasks.) + +Signed-off-by: Ingo Molnar +--- + +diff --git a/kernel/sched_fair.c b/kernel/sched_fair.c +index 7a632c5..e91db32 100644 +--- a/kernel/sched_fair.c ++++ b/kernel/sched_fair.c +@@ -222,21 +222,25 @@ niced_granularity(struct sched_entity *curr, unsigned long granularity) + { + u64 tmp; + ++ if (likely(curr->load.weight == NICE_0_LOAD)) ++ return granularity; + /* +- * Negative nice levels get the same granularity as nice-0: ++ * Positive nice levels get the same granularity as nice-0: + */ +- if (likely(curr->load.weight >= NICE_0_LOAD)) +- return granularity; ++ if (likely(curr->load.weight < NICE_0_LOAD)) { ++ tmp = curr->load.weight * (u64)granularity; ++ return (long) (tmp >> NICE_0_SHIFT); ++ } + /* +- * Positive nice level tasks get linearly finer ++ * Negative nice level tasks get linearly finer + * granularity: + */ +- tmp = curr->load.weight * (u64)granularity; ++ tmp = curr->load.inv_weight * (u64)granularity; + + /* + * It will always fit into 'long': + */ +- return (long) (tmp >> NICE_0_SHIFT); ++ return (long) (tmp >> WMULT_SHIFT); + } + + static inline void linux-2.6-utrace-ptrace-compat-ia64.patch: ia32/sys_ia32.c | 40 ++ kernel/ptrace.c | 1016 ++++++-------------------------------------------------- 2 files changed, 159 insertions(+), 897 deletions(-) Index: linux-2.6-utrace-ptrace-compat-ia64.patch =================================================================== RCS file: /cvs/dist/rpms/kernel/FC-6/linux-2.6-utrace-ptrace-compat-ia64.patch,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- linux-2.6-utrace-ptrace-compat-ia64.patch 19 Jul 2007 17:46:36 -0000 1.1 +++ linux-2.6-utrace-ptrace-compat-ia64.patch 10 Aug 2007 16:41:06 -0000 1.2 @@ -8,12 +8,14 @@ --- - arch/ia64/ia32/sys_ia32.c | 40 ++ - arch/ia64/kernel/ptrace.c | 1016 +++++---------------------------------------- + arch/ia64/ia32/sys_ia32.c | 40 + + arch/ia64/kernel/ptrace.c | 1016 +++++----------------------------------------- 2 files changed, 159 insertions(+), 897 deletions(-) ---- linux-2.6/arch/ia64/ia32/sys_ia32.c -+++ linux-2.6/arch/ia64/ia32/sys_ia32.c +Index: b/arch/ia64/ia32/sys_ia32.c +=================================================================== +--- a/arch/ia64/ia32/sys_ia32.c ++++ b/arch/ia64/ia32/sys_ia32.c @@ -2340,6 +2340,46 @@ const struct utrace_regset_view utrace_i }; #endif @@ -61,9 +63,11 @@ typedef struct { unsigned int ss_sp; unsigned int ss_flags; ---- linux-2.6/arch/ia64/kernel/ptrace.c -+++ linux-2.6/arch/ia64/kernel/ptrace.c -@@ -554,81 +554,6 @@ ia64_sync_user_rbs (struct task_struct * +Index: b/arch/ia64/kernel/ptrace.c +=================================================================== +--- a/arch/ia64/kernel/ptrace.c ++++ b/arch/ia64/kernel/ptrace.c +@@ -573,81 +573,6 @@ ia64_sync_user_rbs (struct task_struct * return 0; } @@ -145,7 +149,7 @@ /* * Write f32-f127 back to task->thread.fph if it has been modified. */ -@@ -792,828 +717,6 @@ access_nat_bits (struct task_struct *chi +@@ -811,828 +736,6 @@ access_nat_bits (struct task_struct *chi return 0; } @@ -974,7 +978,7 @@ /* "asmlinkage" so the input arguments are preserved... */ -@@ -1667,6 +770,9 @@ syscall_trace_leave (long arg0, long arg +@@ -1694,6 +797,9 @@ syscall_trace_leave (long arg0, long arg } } @@ -984,7 +988,7 @@ /* Utrace implementation starts here */ typedef struct utrace_get { -@@ -2454,3 +1560,119 @@ const struct utrace_regset_view *utrace_ +@@ -2506,3 +1612,119 @@ const struct utrace_regset_view *utrace_ #endif return &utrace_ia64_native; } linux-2.6-utrace-regset-ia64.patch: arch/ia64/ia32/sys_ia32.c | 472 +++++++++++++++++++++++ arch/ia64/kernel/ptrace.c | 856 +++++++++++++++++++++++++++++++++++++++++++ include/asm-ia64/elf.h | 24 + include/asm-ia64/tracehook.h | 7 4 files changed, 1357 insertions(+), 2 deletions(-) Index: linux-2.6-utrace-regset-ia64.patch =================================================================== RCS file: /cvs/dist/rpms/kernel/FC-6/linux-2.6-utrace-regset-ia64.patch,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- linux-2.6-utrace-regset-ia64.patch 19 Jul 2007 17:46:36 -0000 1.1 +++ linux-2.6-utrace-regset-ia64.patch 10 Aug 2007 16:41:06 -0000 1.2 @@ -9,14 +9,16 @@ --- - arch/ia64/ia32/sys_ia32.c | 472 +++++++++++++++++++++++++ - arch/ia64/kernel/ptrace.c | 804 ++++++++++++++++++++++++++++++++++++++++++ - include/asm-ia64/tracehook.h | 7 + arch/ia64/ia32/sys_ia32.c | 472 +++++++++++++++++++++++ + arch/ia64/kernel/ptrace.c | 856 +++++++++++++++++++++++++++++++++++++++++++ include/asm-ia64/elf.h | 24 + - 4 files changed, 1305 insertions(+), 2 deletions(-) + include/asm-ia64/tracehook.h | 7 + 4 files changed, 1357 insertions(+), 2 deletions(-) ---- linux-2.6/arch/ia64/ia32/sys_ia32.c -+++ linux-2.6/arch/ia64/ia32/sys_ia32.c +Index: b/arch/ia64/ia32/sys_ia32.c +=================================================================== +--- a/arch/ia64/ia32/sys_ia32.c ++++ b/arch/ia64/ia32/sys_ia32.c @@ -44,6 +44,7 @@ #include #include @@ -503,8 +505,10 @@ typedef struct { unsigned int ss_sp; unsigned int ss_flags; ---- linux-2.6/arch/ia64/kernel/ptrace.c -+++ linux-2.6/arch/ia64/kernel/ptrace.c +Index: b/arch/ia64/kernel/ptrace.c +=================================================================== +--- a/arch/ia64/kernel/ptrace.c ++++ b/arch/ia64/kernel/ptrace.c @@ -3,6 +3,9 @@ * * Copyright (C) 1999-2005 Hewlett-Packard Co @@ -532,7 +536,33 @@ #include #ifdef CONFIG_PERFMON #include -@@ -548,6 +554,7 @@ ia64_sync_user_rbs (struct task_struct * +@@ -522,6 +528,25 @@ ia64_get_user_rbs_end (struct task_struc + return (unsigned long) ia64_rse_skip_regs(bspstore, ndirty); + } + ++long ++ia64_sync_kernel_rbs (struct task_struct *child, struct switch_stack *sw, ++ unsigned long user_rbs_start, unsigned long user_rbs_end) ++{ ++ unsigned long addr, val; ++ long ret; ++ ++ /* now copy word for word from user rbs to kernel rbs: */ ++ for (addr = user_rbs_start; addr < user_rbs_end; addr += 8) { ++ if (access_process_vm(child, addr, &val, sizeof(val), 0) ++ != sizeof(val)) ++ return -EIO; ++ ret = ia64_poke(child, sw, user_rbs_end, addr, val); ++ if (ret < 0) ++ return ret; ++ } ++ return 0; ++} ++ + /* + * Synchronize (i.e, write) the RSE backing store living in kernel + * space to the VM of the CHILD task. SW and PT are the pointers to +@@ -548,6 +573,7 @@ ia64_sync_user_rbs (struct task_struct * return 0; } @@ -540,7 +570,7 @@ static inline int thread_matches (struct task_struct *thread, unsigned long addr) { -@@ -620,6 +627,7 @@ find_thread_for_addr (struct task_struct +@@ -620,6 +646,7 @@ find_thread_for_addr (struct task_struct mmput(mm); return child; } @@ -548,7 +578,7 @@ /* * Write f32-f127 back to task->thread.fph if it has been modified. -@@ -664,6 +672,7 @@ ia64_sync_fph (struct task_struct *task) +@@ -664,6 +691,7 @@ ia64_sync_fph (struct task_struct *task) psr->dfh = 1; } @@ -556,7 +586,7 @@ static int access_fr (struct unw_frame_info *info, int regnum, int hi, unsigned long *data, int write_access) -@@ -682,6 +691,7 @@ access_fr (struct unw_frame_info *info, +@@ -682,6 +710,7 @@ access_fr (struct unw_frame_info *info, *data = fpval.u.bits[hi]; return ret; } @@ -564,7 +594,7 @@ /* * Change the machine-state of CHILD such that it will return via the normal -@@ -782,6 +792,7 @@ access_nat_bits (struct task_struct *chi +@@ -782,6 +811,7 @@ access_nat_bits (struct task_struct *chi return 0; } @@ -572,7 +602,7 @@ static int access_uarea (struct task_struct *child, unsigned long addr, unsigned long *data, int write_access) -@@ -1248,7 +1259,9 @@ ptrace_getregs (struct task_struct *chil +@@ -1248,7 +1278,9 @@ ptrace_getregs (struct task_struct *chil ret = retval ? -EIO : 0; return ret; } @@ -582,7 +612,7 @@ static long ptrace_setregs (struct task_struct *child, struct pt_all_user_regs __user *ppr) { -@@ -1394,6 +1407,7 @@ ptrace_setregs (struct task_struct *chil +@@ -1394,6 +1426,7 @@ ptrace_setregs (struct task_struct *chil ret = retval ? -EIO : 0; return ret; } @@ -590,7 +620,7 @@ /* * Called by kernel/ptrace.c when detaching.. -@@ -1411,6 +1425,7 @@ ptrace_disable (struct task_struct *chil +@@ -1411,6 +1444,7 @@ ptrace_disable (struct task_struct *chil child_psr->tb = 0; } @@ -598,7 +628,7 @@ asmlinkage long sys_ptrace (long request, pid_t pid, unsigned long addr, unsigned long data) { -@@ -1598,6 +1613,7 @@ sys_ptrace (long request, pid_t pid, uns +@@ -1598,6 +1632,7 @@ sys_ptrace (long request, pid_t pid, uns unlock_kernel(); return ret; } @@ -606,7 +636,27 @@ /* "asmlinkage" so the input arguments are preserved... */ -@@ -1650,3 +1666,791 @@ syscall_trace_leave (long arg0, long arg +@@ -1609,6 +1644,10 @@ syscall_trace_enter (long arg0, long arg + if (test_thread_flag(TIF_SYSCALL_TRACE)) + tracehook_report_syscall(®s, 0); + ++ /* copy user rbs to kernel rbs */ ++ if (test_thread_flag(TIF_RESTORE_RSE)) ++ ia64_sync_krbs(current); ++ + if (unlikely(current->audit_context)) { + long syscall; + int arch; +@@ -1645,8 +1684,825 @@ syscall_trace_leave (long arg0, long arg + if (test_thread_flag(TIF_SYSCALL_TRACE)) + tracehook_report_syscall(®s, 1); + ++ /* copy user rbs to kernel rbs */ ++ if (test_thread_flag(TIF_RESTORE_RSE)) ++ ia64_sync_krbs(current); ++ + if (test_thread_flag(TIF_SINGLESTEP)) { + force_sig(SIGTRAP, current); /* XXX */ tracehook_report_syscall_step(®s); } } @@ -1254,9 +1304,34 @@ + const struct utrace_regset *regset, + int now) +{ ++ if (test_and_set_tsk_thread_flag(target, TIF_RESTORE_RSE)) ++ return 0; ++ tsk_set_notify_resume(target); + return do_regset_call(do_gpregs_writeback, target, regset, 0, 0, NULL, NULL); +} + ++static void do_gpregs_readback(struct unw_frame_info *info, void *arg) ++{ ++ struct pt_regs *pt; ++ utrace_getset_t *dst = arg; ++ unsigned long urbs_end; ++ ++ if (unw_unwind_to_user(info) < 0) ++ return; ++ pt = task_pt_regs(dst->target); ++ urbs_end = ia64_get_user_rbs_end(dst->target, pt, NULL); ++ dst->ret = ia64_sync_kernel_rbs(dst->target, info->sw, pt->ar_bspstore, urbs_end); ++} ++/* ++ * This is called to read back the register backing store. ++ */ ++long ia64_sync_krbs(struct task_struct *target) ++{ ++ clear_tsk_thread_flag(target, TIF_RESTORE_RSE); ++ tsk_clear_notify_resume(target); ++ return do_regset_call(do_gpregs_readback, target, NULL, 0, 0, NULL, NULL); ++} ++ +static int +fpregs_active(struct task_struct *target, const struct utrace_regset *regset) +{ @@ -1398,8 +1473,10 @@ +#endif + return &utrace_ia64_native; +} ---- linux-2.6/include/asm-ia64/tracehook.h -+++ linux-2.6/include/asm-ia64/tracehook.h +Index: b/include/asm-ia64/tracehook.h +=================================================================== +--- a/include/asm-ia64/tracehook.h ++++ b/include/asm-ia64/tracehook.h @@ -67,7 +67,10 @@ static inline int tracehook_single_step_ static inline void tracehook_abort_syscall(struct pt_regs *regs) @@ -1413,8 +1490,10 @@ -#endif +#endif /* asm/tracehook.h */ ---- linux-2.6/include/asm-ia64/elf.h -+++ linux-2.6/include/asm-ia64/elf.h +Index: b/include/asm-ia64/elf.h +=================================================================== +--- a/include/asm-ia64/elf.h ++++ b/include/asm-ia64/elf.h @@ -154,6 +154,30 @@ extern void ia64_init_addr_space (void); #define ELF_NGREG 128 /* we really need just 72 but let's leave some headroom... */ #define ELF_NFPREG 128 /* f0 and f1 could be omitted, but so what... */ Index: sources =================================================================== RCS file: /cvs/dist/rpms/kernel/FC-6/sources,v retrieving revision 1.530 retrieving revision 1.531 diff -u -r1.530 -r1.531 --- sources 11 Jul 2007 19:38:48 -0000 1.530 +++ sources 10 Aug 2007 16:41:06 -0000 1.531 @@ -1,2 +1,2 @@ 2e230d005c002fb3d38a3ca07c0200d0 linux-2.6.22.tar.bz2 -a29ac92cd688d591afd3fec48905e329 patch-2.6.22.1.bz2 +1bf6e4e5100b9af1f5eb361cff5a443e patch-2.6.22.2.bz2 Index: upstream =================================================================== RCS file: /cvs/dist/rpms/kernel/FC-6/upstream,v retrieving revision 1.450 retrieving revision 1.451 diff -u -r1.450 -r1.451 --- upstream 11 Jul 2007 19:38:48 -0000 1.450 +++ upstream 10 Aug 2007 16:41:06 -0000 1.451 @@ -1,2 +1,2 @@ linux-2.6.22.tar.bz2 -patch-2.6.22.1.bz2 +patch-2.6.22.2.bz2 --- linux-2.6-acpi-dock-oops.patch DELETED --- --- linux-2.6-bluetooth-hangup-tty-before-rfcomm.patch DELETED --- --- linux-2.6-cpufreq-acpi-fix-msr-write.patch DELETED --- --- linux-2.6-i386-hpet-check-if-the-counter-works.patch DELETED --- --- linux-2.6-input-rfkill-wrong-size-flags.patch DELETED --- --- linux-2.6-ipc-shm-fix-user-leakage.patch DELETED --- --- linux-2.6-jbd-fix-transaction-dropping.patch DELETED --- --- linux-2.6-libata-ich8m-add-pciid.patch DELETED --- --- linux-2.6-libata-unbreak-smart-2.patch DELETED --- --- linux-2.6-libata-unbreak-smart.patch DELETED --- --- linux-2.6-net-dst_entry-reorder-crash.patch DELETED --- --- linux-2.6-net_sched_fix_deadlock.patch DELETED --- --- linux-2.6-seq_operations-leak.patch DELETED --- --- linux-2.6-tcp-sack-fix-leak-msgs.patch DELETED --- --- linux-2.6-usb-ftdi_sio-fix-oops.patch DELETED --- --- patch-2.6.22.1.bz2.sign DELETED --- From fedora-cvs-commits at redhat.com Mon Aug 13 07:32:03 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Mon, 13 Aug 2007 03:32:03 -0400 Subject: rpms/sane-backends/FC-6 sane-backends-1.0.18-glibc-2.7.patch, NONE, 1.1 sane-backends-1.0.18-udev-098.patch, 1.3, 1.4 sane-backends.spec, 1.83, 1.84 sane-backends-1.0.18-udev-new-kernels.patch, 1.4, NONE Message-ID: <200708130732.l7D7W3Vx024546@cvs.devel.redhat.com> Author: nphilipp Update of /cvs/dist/rpms/sane-backends/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv24526 Modified Files: sane-backends-1.0.18-udev-098.patch sane-backends.spec Added Files: sane-backends-1.0.18-glibc-2.7.patch Removed Files: sane-backends-1.0.18-udev-new-kernels.patch Log Message: make udev rules more robust (#243953) bring code in shape for glibc-2.7 sane-backends-1.0.18-glibc-2.7.patch: backend/mustek_pp.c | 2 +- backend/pixma_common.c | 2 +- backend/plustek_pp.c | 2 +- sanei/sanei_scsi.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) --- NEW FILE sane-backends-1.0.18-glibc-2.7.patch --- --- sane-backends-1.0.18/sanei/sanei_scsi.c.glibc-2.7 2005-11-24 23:08:49.000000000 +0100 +++ sane-backends-1.0.18/sanei/sanei_scsi.c 2007-08-08 15:01:07.000000000 +0200 @@ -5028,7 +5028,7 @@ sanei_scsi_find_devices (const char *fin (*plugInInterface)->Release (plugInInterface); IOObjectRelease (scsiDevice); - ioReturnValue = (*scsiDeviceInterface)->open (scsiDeviceInterface); + ioReturnValue = ((*scsiDeviceInterface)->open) (scsiDeviceInterface); if (ioReturnValue != kIOReturnSuccess) { DBG (5, "Error opening SCSI interface (0x%08x)\n", ioReturnValue); --- sane-backends-1.0.18/backend/pixma_common.c.glibc-2.7 2006-06-11 22:53:05.000000000 +0200 +++ sane-backends-1.0.18/backend/pixma_common.c 2007-08-08 15:01:18.000000000 +0200 @@ -449,7 +449,7 @@ pixma_open (unsigned devnr, pixma_t ** h strncpy (s->id, pixma_get_device_id (devnr), sizeof (s->id)); s->ops = s->cfg->ops; s->scanning = 0; - error = s->ops->open (s); + error = (s->ops->open) (s); if (error < 0) goto rollback; *handle = s; --- sane-backends-1.0.18/backend/plustek_pp.c.glibc-2.7 2006-02-19 12:32:24.000000000 +0100 +++ sane-backends-1.0.18/backend/plustek_pp.c 2007-08-08 14:56:45.000000000 +0200 @@ -258,7 +258,7 @@ static int drvopen( Plustek_Device *dev DBG( _DBG_INFO, "drvopen()\n" ); - handle = dev->open((const char*)dev->name, (void *)dev ); + handle = (dev->open)((const char*)dev->name, (void *)dev ); tsecs = 0; --- sane-backends-1.0.18/backend/mustek_pp.c.glibc-2.7 2005-04-16 15:06:37.000000000 +0200 +++ sane-backends-1.0.18/backend/mustek_pp.c 2007-08-08 15:01:30.000000000 +0200 @@ -1152,7 +1152,7 @@ sane_open (SANE_String_Const devicename, } - if ((status = dev->func->open (dev->port, dev->caps, &fd)) != SANE_STATUS_GOOD) { + if ((status = (dev->func->open) (dev->port, dev->caps, &fd)) != SANE_STATUS_GOOD) { DBG (1, "sane_open: could not open device (%s)\n", sane_strstatus (status)); sane-backends-1.0.18-udev-098.patch: sane-desc.c | 50 +++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 43 insertions(+), 7 deletions(-) Index: sane-backends-1.0.18-udev-098.patch =================================================================== RCS file: /cvs/dist/rpms/sane-backends/FC-6/sane-backends-1.0.18-udev-098.patch,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- sane-backends-1.0.18-udev-098.patch 22 Jul 2007 21:28:20 -0000 1.3 +++ sane-backends-1.0.18-udev-098.patch 13 Aug 2007 07:32:00 -0000 1.4 @@ -1,11 +1,83 @@ ---- sane-backends-1.0.18/tools/sane-desc.c.udev-098 2007-07-22 23:23:51.000000000 +0200 -+++ sane-backends-1.0.18/tools/sane-desc.c 2007-07-22 23:24:37.000000000 +0200 -@@ -3187,7 +3187,7 @@ print_udev (void) +--- sane-backends-1.0.18/tools/sane-desc.c.udev-098 2007-08-07 14:56:03.000000000 +0200 ++++ sane-backends-1.0.18/tools/sane-desc.c 2007-08-08 12:45:27.000000000 +0200 +@@ -3153,14 +3153,14 @@ print_udev_header (void) + ("#\n" + "# udev rules file for supported USB devices\n" + "#\n" +- "# To add a USB device, add a rule to the list below between the SUBSYSTEM...\n" +- "# and LABEL... lines.\n" ++ "# To add support for a USB device, add rules to the \"usb\" and \"usb_device\"\n" ++ "# lists below between their respective \"# BEGIN ...\" and \"# END ...\" lines.\n" + "#\n" + "# To run a script when your device is plugged in, add RUN=\"/path/to/script\"\n" +- "# to the appropriate rule.\n"); ++ "# to the appropriate rules.\n"); + printf + ("#\n" +- "# The following list already contains a lot of scanners. If your scanner\n" ++ "# The following lists already contains a lot of scanners. If your scanner\n" + "# isn't mentioned there, add it as explained above and mail the entry to\n" + "# the sane-devel mailing list (sane-devel at lists.alioth.debian.org).\n" + "#\n"); +@@ -3169,11 +3169,44 @@ print_udev_header (void) + static void + print_udev (void) + { +- usbid_type *usbid = create_usbids_table (); ++ usbid_type *usbid_first = create_usbids_table (); ++ usbid_type *usbid = usbid_first; + + print_udev_header (); ++ + printf ("\nACTION!=\"add\", GOTO=\"libsane_rules_end\"\n"); +- printf ("SUBSYSTEM!=\"usb_device\", GOTO=\"libsane_rules_end\"\n\n"); ++ printf ("\nATTR{dev}!=\"?*\", GOTO=\"libsane_rules_end\"\n"); ++ printf ("SUBSYSTEM==\"usb\", GOTO=\"libsane_usb_rules\"\n"); ++ printf ("SUBSYSTEM==\"usb_device\", GOTO=\"libsane_usb_device_rules\"\n\n"); ++ printf ("GOTO=\"libsane_rules_end\"\n\n"); ++ ++ /* SUBSYSTEM=="usb" -> ATTR{} */ ++ printf ("LABEL=\"libsane_usb_rules\"\n\n"); ++ printf ("# BEGIN scanner rules for SUBSYSTEM==\"usb\"\n"); ++ while (usbid) ++ { ++ manufacturer_model_type * name = usbid->name; ++ ++ printf ("# "); ++ while (name) ++ { ++ if (name != usbid->name) ++ printf (" | "); ++ printf ("%s", name->name); ++ name = name->next; ++ } ++ printf ("\n"); ++ printf ("ATTR{idVendor}==\"%s\", ATTR{idProduct}==\"%s\", SYMLINK+=\"scanner-%%k\"\n", ++ usbid->usb_vendor_id + 2, usbid->usb_product_id + 2); ++ usbid = usbid->next; ++ } ++ printf ("# END scanner rules for SUBSYSTEM==\"usb\"\n"); ++ printf ("GOTO=\"libsane_rules_end\"\n\n"); ++ ++ /* SUBSYSTEM=="usb_device" -> ATTRS{} */ ++ printf ("LABEL=\"libsane_usb_device_rules\"\n\n"); ++ printf ("# BEGIN scanner rules for SUBSYSTEM==\"usb_device\"\n"); ++ usbid = usbid_first; + while (usbid) + { + manufacturer_model_type * name = usbid->name; +@@ -3187,10 +3220,13 @@ print_udev (void) name = name->next; } printf ("\n"); - printf ("SYSFS{idVendor}==\"%s\", SYSFS{idProduct}==\"%s\", SYMLINK+=\"scanner-%%k\"\n", -+ printf ("ATTR{idVendor}==\"%s\", ATTR{idProduct}==\"%s\", SYMLINK+=\"scanner-%%k\"\n", ++ printf ("ATTRS{idVendor}==\"%s\", ATTRS{idProduct}==\"%s\", SYMLINK+=\"scanner-%%k\"\n", usbid->usb_vendor_id + 2, usbid->usb_product_id + 2); usbid = usbid->next; } ++ printf ("# END scanner rules for SUBSYSTEM==\"usb_device\"\n"); ++ printf ("GOTO=\"libsane_rules_end\"\n"); ++ + printf ("\nLABEL=\"libsane_rules_end\"\n"); + } + Index: sane-backends.spec =================================================================== RCS file: /cvs/dist/rpms/sane-backends/FC-6/sane-backends.spec,v retrieving revision 1.83 retrieving revision 1.84 diff -u -r1.83 -r1.84 --- sane-backends.spec 24 Jul 2007 17:29:25 -0000 1.83 +++ sane-backends.spec 13 Aug 2007 07:32:00 -0000 1.84 @@ -24,7 +24,7 @@ Summary: Scanner access software Name: sane-backends Version: 1.0.18 -Release: 12%{?dist} +Release: 14%{?dist} License: GPL (programs), relaxed LGPL (libraries), and public domain (docs) Group: System Environment/Libraries Source0: ftp://ftp.sane-project.org/pub/sane/%{name}-%{version}/%{name}-%{version}.tar.gz @@ -36,8 +36,8 @@ Patch5: sane-backends-1.0.18-logical_vs_binary.patch Patch6: sane-backends-1.0.18-usb_reset.patch Patch7: sane-backends-1.0.18-udev-symlink.patch -Patch8: sane-backends-1.0.18-udev-new-kernels.patch -Patch9: sane-backends-1.0.18-udev-098.patch +Patch8: sane-backends-1.0.18-udev-098.patch +Patch9: sane-backends-1.0.18-glibc-2.7.patch URL: http://www.sane-project.org BuildRoot: %{_tmppath}/%{name}-%{version}-root-%(%__id_u -n) BuildRequires: tetex-latex libusb-devel libieee1284-devel libjpeg-devel @@ -124,12 +124,13 @@ %patch5 -p1 -b .logical_vs_binary %patch6 -p1 -b .usb_reset %patch7 -p1 -b .udev-symlink -%patch8 -p1 -b .udev-new-kernels %if %udev_098 -%patch9 -p1 -b .udev-098 +%patch8 -p1 -b .udev-098 %endif +%patch9 -p1 -b .glibc-2.7 + for i in agfafocus avision coolscan2 umax_pp; do iconv -f iso-8859-1 -t utf-8 < "doc/sane-$i.man" > "doc/sane-$i.man_" mv "doc/sane-$i.man_" "doc/sane-$i.man" @@ -248,6 +249,13 @@ %{_libdir}/pkgconfig/sane-backends.pc %changelog +* Wed Aug 08 2007 Nils Philippsen - 1.0.18-14 +- make udev rules more robust (#243953) +- bring code in shape for glibc-2.7 + +* Wed Jul 25 2007 Jeremy Katz - 1.0.18-13 +- rebuild for toolchain bug + * Tue Jul 24 2007 Nils Philippsen - 1.0.18-12 - fix typo in spec file --- sane-backends-1.0.18-udev-new-kernels.patch DELETED --- From fedora-cvs-commits at redhat.com Mon Aug 13 07:55:41 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Mon, 13 Aug 2007 03:55:41 -0400 Subject: rpms/rpm/FC-6 rpm-4.4.2.1-checksignals.patch, NONE, 1.1 rpm-4.4.2.1-checkterminate-noexit.patch, NONE, 1.1 rpm-4.4.2.1-checkterminate.patch, NONE, 1.1 rpm-4.4.2.1-config-mtime.patch, NONE, 1.1 rpm-4.4.2.1-python-exithook.patch, NONE, 1.1 rpm-4.4.2.1-strict-docdir.patch, NONE, 1.1 .cvsignore, 1.15, 1.16 rpm.spec, 1.215, 1.216 sources, 1.120, 1.121 mono-find-provides, 1.1, NONE mono-find-requires, 1.1, NONE rpm-4.4.1-fileconflicts.patch, 1.1, NONE rpm-4.4.1-hkp-disable.patch, 1.1, NONE rpm-4.4.1-noconfigdep.patch, 1.1, NONE rpm-4.4.1-nonmerged.patch, 1.1, NONE rpm-4.4.1-ordererase.patch, 1.1, NONE rpm-4.4.1-prepostun.patch, 1.1, NONE rpm-4.4.2-contextverify.patch, 1.2, NONE rpm-4.4.2-cronpath.patch, 1.1, NONE rpm-4.4.2-db3-param.patch, 1.1, NONE rpm-4.4.2-debugedit-ppc-reloc.patch, 1.1, NONE rpm-4.4.2-debugpaths.patch, 1.1, NONE rpm-4.4.2-doxy.patch, 1.1, NONE rpm-4.4.2-exclude.patch, 1.1, NONE rpm-4.4.2-excluded-size.patch, 1.1, NONE rpm-4.4.2-file-softmagic.patch, 1.1, NONE rpm-4.4.2-gnuhash.patch, 1.3, NONE rpm-4.4.2-! ia32e-install.patch, 1.1, NONE rpm-4.4.2-mono.patch, 1.1, NONE rpm-4.4.2-multi-digest.patch, 1.1, NONE rpm-4.4.2-netsharedpath.patch, 1.1, NONE rpm-4.4.2-no-large-mmap.patch, 1.1, NONE rpm-4.4.2-no-ppc-asm.patch, 1.1, NONE rpm-4.4.2-noselinux-verify.patch, 1.1, NONE rpm-4.4.2-perlmainprov.patch, 1.1, NONE rpm-4.4.2-perlreq.patch, 1.1, NONE rpm-4.4.2-popt-charset.patch, 1.1, NONE rpm-4.4.2-python-aslist.patch, 1.1, NONE rpm-4.4.2-rpmio-ipv6.patch, 1.1, NONE rpm-4.4.2-rpmsq-deadlock.patch, 1.1, NONE rpm-4.4.2-teCount-assert.patch, 1.1, NONE rpm-4.4.2-userlock.patch, 1.1, NONE rpm-4.4.2-vercmp.patch, 1.1, NONE Message-ID: <200708130755.l7D7tfI0025066@cvs.devel.redhat.com> Author: pmatilai Update of /cvs/dist/rpms/rpm/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv25038/FC-6 Modified Files: .cvsignore rpm.spec sources Added Files: rpm-4.4.2.1-checksignals.patch rpm-4.4.2.1-checkterminate-noexit.patch rpm-4.4.2.1-checkterminate.patch rpm-4.4.2.1-config-mtime.patch rpm-4.4.2.1-python-exithook.patch rpm-4.4.2.1-strict-docdir.patch Removed Files: mono-find-provides mono-find-requires rpm-4.4.1-fileconflicts.patch rpm-4.4.1-hkp-disable.patch rpm-4.4.1-noconfigdep.patch rpm-4.4.1-nonmerged.patch rpm-4.4.1-ordererase.patch rpm-4.4.1-prepostun.patch rpm-4.4.2-contextverify.patch rpm-4.4.2-cronpath.patch rpm-4.4.2-db3-param.patch rpm-4.4.2-debugedit-ppc-reloc.patch rpm-4.4.2-debugpaths.patch rpm-4.4.2-doxy.patch rpm-4.4.2-exclude.patch rpm-4.4.2-excluded-size.patch rpm-4.4.2-file-softmagic.patch rpm-4.4.2-gnuhash.patch rpm-4.4.2-ia32e-install.patch rpm-4.4.2-mono.patch rpm-4.4.2-multi-digest.patch rpm-4.4.2-netsharedpath.patch rpm-4.4.2-no-large-mmap.patch rpm-4.4.2-no-ppc-asm.patch rpm-4.4.2-noselinux-verify.patch rpm-4.4.2-perlmainprov.patch rpm-4.4.2-perlreq.patch rpm-4.4.2-popt-charset.patch rpm-4.4.2-python-aslist.patch rpm-4.4.2-rpmio-ipv6.patch rpm-4.4.2-rpmsq-deadlock.patch rpm-4.4.2-teCount-assert.patch rpm-4.4.2-userlock.patch rpm-4.4.2-vercmp.patch Log Message: auto-import rpm-4.4.2.1-1.fc7 on branch FC-6 from rpm-4.4.2.1-1.fc7.src.rpm rpm-4.4.2.1-checksignals.patch: rpmmodule.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 50 insertions(+) --- NEW FILE rpm-4.4.2.1-checksignals.patch --- changeset: 6176:c0237c16e2e3 user: Panu Matilainen date: Fri Jul 20 10:41:15 2007 +0300 files: python/rpmmodule.c description: Add python methods for checking pending signals from rpmsqCaught. - a thin wrapper for rpmdbCheckSignals() from rpm5.org / Jeff Johnson - a function taking a list of signals to check and returning list caught signals (python doesn't know about signal sets so rpmsqCaught needs wrapping) diff -r d8e2ec20c948 -r c0237c16e2e3 python/rpmmodule.c --- a/python/rpmmodule.c Wed Jul 18 16:05:56 2007 +0300 +++ b/python/rpmmodule.c Fri Jul 20 10:41:15 2007 +0300 @@ -7,6 +7,7 @@ #include #include /* XXX for rpmCheckSig */ #include +#include #include "legacy.h" #include "misc.h" @@ -58,6 +59,50 @@ static PyObject * archScore(PyObject * s } /** + * */ +static PyObject * signalsCaught(PyObject * self, PyObject * check) +{ + PyObject *caught, *o; + Py_ssize_t llen; + int signum, i; + sigset_t newMask, oldMask; + + if (!PyList_Check(check)) { + PyErr_SetString(PyExc_TypeError, "list expected"); + return NULL; + } + + llen = PyList_Size(check); + caught = PyList_New(0); + + /* block signals while checking for them */ + (void) sigfillset(&newMask); + (void) sigprocmask(SIG_BLOCK, &newMask, &oldMask); + + for (i = 0; i < llen; i++) { + o = PyList_GetItem(check, i); + signum = PyInt_AsLong(o); + if (sigismember(&rpmsqCaught, signum)) { + PyList_Append(caught, o); + } + } + (void) sigprocmask(SIG_SETMASK, &oldMask, NULL); + + return caught; +} + +/** + * */ +static PyObject * checkSignals(PyObject * self, PyObject * args) +{ + if (!PyArg_ParseTuple(args, ":checkSignals")) return NULL; + rpmdbCheckSignals(); + Py_INCREF(Py_None); + return Py_None; +} + + +/** */ static PyObject * setLogFile (PyObject * self, PyObject * args, PyObject *kwds) { @@ -145,6 +190,11 @@ static PyMethodDef rpmModuleMethods[] = { "archscore", (PyCFunction) archScore, METH_VARARGS|METH_KEYWORDS, NULL }, + + { "signalsCaught", (PyCFunction) signalsCaught, METH_O, + NULL }, + { "checkSignals", (PyCFunction) checkSignals, METH_VARARGS, + NULL }, { "headerLoad", (PyCFunction) hdrLoad, METH_VARARGS|METH_KEYWORDS, NULL }, rpm-4.4.2.1-checkterminate-noexit.patch: python/rpmmodule.c | 2 -- rpmdb/rpmdb.c | 26 ++++++++++++++------------ rpmdb/rpmdb.h | 12 +++++++----- 3 files changed, 21 insertions(+), 19 deletions(-) --- NEW FILE rpm-4.4.2.1-checkterminate-noexit.patch --- changeset: 6179:fb37e4dccbf3 tag: tip user: Panu Matilainen date: Sat Jul 21 15:05:19 2007 +0300 files: python/rpmmodule.c rpmdb/rpmdb.c rpmdb/rpmdb.h description: Make rpmdbCheckTerminate() non-terminating. This allows use in exit handler without affecting exit code, and permits caller to do its own cleanup if necessary. diff -r e9ced408b17f -r fb37e4dccbf3 python/rpmmodule.c --- a/python/rpmmodule.c Fri Jul 20 11:23:11 2007 +0300 +++ b/python/rpmmodule.c Sat Jul 21 15:05:19 2007 +0300 @@ -229,8 +229,6 @@ static PyMethodDef rpmModuleMethods[] = /* * Force clean up of open iterators and dbs on exit. -* This ends up calling exit() while we're already exiting but exit -* handlers will only get called once so it wont loop. */ static void rpm_exithook(void) { diff -r e9ced408b17f -r fb37e4dccbf3 rpmdb/rpmdb.c --- a/rpmdb/rpmdb.c Fri Jul 20 11:23:11 2007 +0300 +++ b/rpmdb/rpmdb.c Sat Jul 21 15:05:19 2007 +0300 @@ -707,7 +707,7 @@ int rpmdbCheckTerminate(int terminate) sigset_t newMask, oldMask; static int terminating = 0; - if (terminating) return 0; + if (terminating) return 1; (void) sigfillset(&newMask); /* block all signals */ (void) sigprocmask(SIG_BLOCK, &newMask, &oldMask); @@ -724,10 +724,6 @@ int rpmdbCheckTerminate(int terminate) rpmdb db; rpmdbMatchIterator mi; -/*@-abstract@*/ /* sigset_t is abstract type */ - rpmMessage(RPMMESS_DEBUG, "Exiting on signal(0x%lx) ...\n", *((unsigned long *)&rpmsqCaught)); -/*@=abstract@*/ - /*@-branchstate@*/ while ((mi = rpmmiRock) != NULL) { /*@i@*/ rpmmiRock = mi->mi_next; @@ -743,14 +739,20 @@ int rpmdbCheckTerminate(int terminate) (void) rpmdbClose(db); } /*@=newreftrans@*/ + } + sigprocmask(SIG_SETMASK, &oldMask, NULL); + return terminating; +} + +int rpmdbCheckSignals(void) +{ + if (rpmdbCheckTerminate(0)) { +/*@-abstract@*/ /* sigset_t is abstract type */ + rpmMessage(RPMMESS_DEBUG, "Exiting on signal(0x%lx) ...\n", *((unsigned long *)&rpmsqCaught)); exit(EXIT_FAILURE); - } - return sigprocmask(SIG_SETMASK, &oldMask, NULL); -} - -int rpmdbCheckSignals(void) -{ - return rpmdbCheckTerminate(0); +/*@=abstract@*/ + } + return 0; } /** diff -r e9ced408b17f -r fb37e4dccbf3 rpmdb/rpmdb.h --- a/rpmdb/rpmdb.h Fri Jul 20 11:23:11 2007 +0300 +++ b/rpmdb/rpmdb.h Sat Jul 21 15:05:19 2007 +0300 @@ -1039,8 +1039,7 @@ Header rpmdbNextIterator(/*@null@*/ rpmd /*@modifies mi, rpmGlobalMacroContext, fileSystem, internalState @*/; /** \ingroup rpmdb - * Check rpmdb signal handler for trapped signal exit. Just a compatibility - * wrapper for rpmdbCheckTerminate() + * Check for and exit on termination signals. */ /*@mayexit@*/ int rpmdbCheckSignals(void) @@ -1048,10 +1047,13 @@ int rpmdbCheckSignals(void) /*@modifies fileSystem, internalState @*/; /** \ingroup rpmdb - * Check rpmdb signal handler for trapped signal or requested exit. + * Check rpmdb signal handler for trapped signal and/or requested exit, + * clean up any open iterators and databases on termination condition. + * On non-zero exit any open references to rpmdb are invalid and cannot + * be accessed anymore, calling process should terminate immediately. * @param terminate 0 to only check for signals, 1 to terminate anyway - */ -/*@mayexit@*/ + * @return 0 to continue, 1 if termination cleanup was done. + */ int rpmdbCheckTerminate(int terminate); /** \ingroup rpmdb rpm-4.4.2.1-checkterminate.patch: rpmdb.c | 22 ++++++++++++++-------- rpmdb.h | 10 +++++++++- 2 files changed, 23 insertions(+), 9 deletions(-) --- NEW FILE rpm-4.4.2.1-checkterminate.patch --- changeset: 6177:6acd7701e4df user: Panu Matilainen date: Fri Jul 20 11:19:56 2007 +0300 files: rpmdb/rpmdb.c rpmdb/rpmdb.h description: Support explicitly asking from rpmdb cleanup + termination. New rpmdbCheckTerminate() function which checks for termination signals and allows requesting termination via parameter as well. Make rpmdbCheckSignals() just a wrapper that calls it with terminate=0. diff -r c0237c16e2e3 -r 6acd7701e4df rpmdb/rpmdb.c --- a/rpmdb/rpmdb.c Fri Jul 20 10:41:15 2007 +0300 +++ b/rpmdb/rpmdb.c Fri Jul 20 11:19:56 2007 +0300 @@ -700,14 +700,14 @@ static rpmdb rpmdbRock; /*@unchecked@*/ /*@exposed@*/ /*@null@*/ static rpmdbMatchIterator rpmmiRock; -int rpmdbCheckSignals(void) +int rpmdbCheckTerminate(int terminate) /*@globals rpmdbRock, rpmmiRock @*/ /*@modifies rpmdbRock, rpmmiRock @*/ { sigset_t newMask, oldMask; - static int terminate = 0; - - if (terminate) return 0; + static int terminating = 0; + + if (terminating) return 0; (void) sigfillset(&newMask); /* block all signals */ (void) sigprocmask(SIG_BLOCK, &newMask, &oldMask); @@ -716,10 +716,11 @@ int rpmdbCheckSignals(void) || sigismember(&rpmsqCaught, SIGQUIT) || sigismember(&rpmsqCaught, SIGHUP) || sigismember(&rpmsqCaught, SIGTERM) - || sigismember(&rpmsqCaught, SIGPIPE)) - terminate = 1; - - if (terminate) { + || sigismember(&rpmsqCaught, SIGPIPE) + || terminate) + terminating = 1; + + if (terminating) { rpmdb db; rpmdbMatchIterator mi; @@ -745,6 +746,11 @@ int rpmdbCheckSignals(void) exit(EXIT_FAILURE); } return sigprocmask(SIG_SETMASK, &oldMask, NULL); +} + +int rpmdbCheckSignals(void) +{ + return rpmdbCheckTerminate(0); } /** diff -r c0237c16e2e3 -r 6acd7701e4df rpmdb/rpmdb.h --- a/rpmdb/rpmdb.h Fri Jul 20 10:41:15 2007 +0300 +++ b/rpmdb/rpmdb.h Fri Jul 20 11:19:56 2007 +0300 @@ -1039,12 +1039,20 @@ Header rpmdbNextIterator(/*@null@*/ rpmd /*@modifies mi, rpmGlobalMacroContext, fileSystem, internalState @*/; /** \ingroup rpmdb - * Check rpmdb signal handler for trapped signal exit. + * Check rpmdb signal handler for trapped signal exit. Just a compatibility + * wrapper for rpmdbCheckTerminate() */ /*@mayexit@*/ int rpmdbCheckSignals(void) /*@globals fileSystem, internalState @*/ /*@modifies fileSystem, internalState @*/; + +/** \ingroup rpmdb + * Check rpmdb signal handler for trapped signal or requested exit. + * @param terminate 0 to only check for signals, 1 to terminate anyway + */ +/*@mayexit@*/ +int rpmdbCheckTerminate(int terminate); /** \ingroup rpmdb * Destroy rpm database iterator. rpm-4.4.2.1-config-mtime.patch: rpmfi.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ rpmfi.h | 8 ++++++++ transaction.c | 6 +++--- 3 files changed, 55 insertions(+), 3 deletions(-) --- NEW FILE rpm-4.4.2.1-config-mtime.patch --- changeset: 6235:0d4b8cfd8dc9 tag: tip user: Panu Matilainen date: Thu Aug 09 15:15:24 2007 +0300 files: lib/rpmfi.c lib/rpmfi.h lib/transaction.c description: Avoid unnecessary .rpmnew and .rpmsave files (rhbz#128622) Don't create .rpmnew and .rpmsave files when file/symlink on disk differs just by timestamp. Patch by Tomas Mraz. diff -r debbc872bbb3 -r 0d4b8cfd8dc9 lib/rpmfi.c --- a/lib/rpmfi.c Thu Aug 09 14:18:11 2007 +0300 +++ b/lib/rpmfi.c Thu Aug 09 15:15:24 2007 +0300 @@ -22,6 +22,7 @@ #include "rpmte.h" #include "rpmts.h" +#include "legacy.h" /* XXX domd5 */ #include "misc.h" /* XXX stripTrailingChar */ #include "rpmmacro.h" /* XXX rpmCleanPath */ #include "legacy.h" @@ -625,6 +626,49 @@ fileAction rpmfiDecideFate(const rpmfi o * merge the difference ala CVS, but... */ return save; +} +/*@=boundsread@*/ + +/*@-boundsread@*/ +int rpmfiConfigConflict(const rpmfi fi) +{ + const char * fn = rpmfiFN(fi); + int flags = rpmfiFFlags(fi); + char buffer[1024]; + fileTypes newWhat, diskWhat; + struct stat sb; + + if (!(flags & RPMFILE_CONFIG) || lstat(fn, &sb)) { + return 0; + } + + diskWhat = whatis((int_16)sb.st_mode); + newWhat = whatis(rpmfiFMode(fi)); + + if (newWhat != LINK && newWhat != REG) + return 1; + + if (diskWhat != newWhat) + return 1; + + memset(buffer, 0, sizeof(buffer)); + if (newWhat == REG) { + const unsigned char * nmd5; + if (domd5(fn, (unsigned char *)buffer, 0, NULL)) + return 0; /* assume file has been removed */ + nmd5 = rpmfiMD5(fi); + if (nmd5 && !memcmp(nmd5, buffer, 16)) + return 0; /* unmodified config file */ + } else /* newWhat == LINK */ { + const char * nFLink; + if (readlink(fn, buffer, sizeof(buffer) - 1) == -1) + return 0; /* assume file has been removed */ + nFLink = rpmfiFLink(fi); + if (nFLink && !strcmp(nFLink, buffer)) + return 0; /* unmodified config file */ + } + + return 1; } /*@=boundsread@*/ diff -r debbc872bbb3 -r 0d4b8cfd8dc9 lib/rpmfi.h --- a/lib/rpmfi.h Thu Aug 09 14:18:11 2007 +0300 +++ b/lib/rpmfi.h Thu Aug 09 15:15:24 2007 +0300 @@ -620,6 +620,14 @@ fileAction rpmfiDecideFate(const rpmfi o /*@modifies nfi, fileSystem, internalState @*/; /** + * Return whether file is conflicting config + * @param fi file info + * @return 1 if config file and file on disk conflicts + */ +int rpmfiConfigConflict(const rpmfi fi) + /*@*/; + +/** * Return formatted string representation of package disposition. * @param fi file info set * @return formatted string diff -r debbc872bbb3 -r 0d4b8cfd8dc9 lib/transaction.c --- a/lib/transaction.c Thu Aug 09 14:18:11 2007 +0300 +++ b/lib/transaction.c Thu Aug 09 15:15:24 2007 +0300 @@ -547,7 +547,7 @@ static void handleOverlappedFiles(const /*@-boundswrite@*/ switch (rpmteType(p)) { case TR_ADDED: - { struct stat sb; + { int reportConflicts = !(rpmtsFilterFlags(ts) & RPMPROB_FILTER_REPLACENEWFILES); int done = 0; @@ -556,7 +556,7 @@ static void handleOverlappedFiles(const /* XXX is this test still necessary? */ if (fi->actions[i] != FA_UNKNOWN) /*@switchbreak@*/ break; - if ((FFlags & RPMFILE_CONFIG) && !lstat(fn, &sb)) { + if (rpmfiConfigConflict(fi)) { /* Here is a non-overlapped pre-existing config file. */ fi->actions[i] = (FFlags & RPMFILE_NOREPLACE) ? FA_ALTNAME : FA_BACKUP; @@ -613,7 +613,7 @@ assert(otherFi != NULL); /* Try to get the disk accounting correct even if a conflict. */ fixupSize = rpmfiFSize(otherFi); - if ((FFlags & RPMFILE_CONFIG) && !lstat(fn, &sb)) { + if (rpmfiConfigConflict(fi)) { /* Here is an overlapped pre-existing config file. */ fi->actions[i] = (FFlags & RPMFILE_NOREPLACE) ? FA_ALTNAME : FA_SKIP; rpm-4.4.2.1-python-exithook.patch: rpmmodule.c | 17 +++++++++++++++++ 1 files changed, 17 insertions(+) --- NEW FILE rpm-4.4.2.1-python-exithook.patch --- changeset: 6178:e9ced408b17f tag: tip user: Panu Matilainen date: Fri Jul 20 11:23:11 2007 +0300 files: python/rpmmodule.c description: Force rpmdb clean termination on exit from python. Python process tracebacking with active iterators can and will otherwise leave stale locks around (as is presumably the reason for rhbz#235389 and various other locking issues) diff -r 6acd7701e4df -r e9ced408b17f python/rpmmodule.c --- a/python/rpmmodule.c Fri Jul 20 11:19:56 2007 +0300 +++ b/python/rpmmodule.c Fri Jul 20 11:23:11 2007 +0300 @@ -227,6 +227,16 @@ static PyMethodDef rpmModuleMethods[] = { NULL } } ; +/* +* Force clean up of open iterators and dbs on exit. +* This ends up calling exit() while we're already exiting but exit +* handlers will only get called once so it wont loop. +*/ +static void rpm_exithook(void) +{ + rpmdbCheckTerminate(1); +} + /** */ static char rpm__doc__[] = @@ -263,6 +273,13 @@ void init_rpm(void) m = Py_InitModule3("_rpm", rpmModuleMethods, rpm__doc__); if (m == NULL) + return; + + /* + * treat error to register rpm cleanup hook as fatal, tracebacks + * can and will leave stale locks around if we can't clean up + */ + if (Py_AtExit(rpm_exithook) == -1) return; rpmReadConfigFiles(NULL, NULL); rpm-4.4.2.1-strict-docdir.patch: files.c | 8 +++++--- 1 files changed, 5 insertions(+), 3 deletions(-) --- NEW FILE rpm-4.4.2.1-strict-docdir.patch --- diff -r e1802883bd62 -r cf3b54441b8a build/files.c --- a/build/files.c Sat Jul 21 15:48:03 2007 +0300 +++ b/build/files.c Mon Jul 23 10:02:54 2007 +0300 @@ -1065,7 +1065,6 @@ static int compareFileListRecs(const voi /** * Test if file is located in a %docdir. - * @bug Use of strstr(3) might result in false positives. * @param fl package file tree walk data * @param fileName file path * @return 1 if doc file, 0 if not @@ -1073,9 +1072,12 @@ static int isDoc(FileList fl, const char static int isDoc(FileList fl, const char * fileName) /*@*/ { int x = fl->docDirCount; - + size_t k, l; + + k = strlen(fileName); while (x--) { - if (strstr(fileName, fl->docDirs[x]) == fileName) + l = strlen(fl->docDirs[x]); + if (l < k && strncmp(fileName, fl->docDirs[x], l) == 0 && fileName[l] == '/') return 1; } return 0; Index: .cvsignore =================================================================== RCS file: /cvs/dist/rpms/rpm/FC-6/.cvsignore,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- .cvsignore 21 Jul 2005 21:26:50 -0000 1.15 +++ .cvsignore 13 Aug 2007 07:55:37 -0000 1.16 @@ -1,3 +1 @@ -rpm-4.3.3.tar.gz -rpm-4.4.1.tar.gz -rpm-4.4.2.tar.gz +rpm-4.4.2.1.tar.gz Index: rpm.spec =================================================================== RCS file: /cvs/dist/rpms/rpm/FC-6/rpm.spec,v retrieving revision 1.215 retrieving revision 1.216 diff -u -r1.215 -r1.216 --- rpm.spec 27 Apr 2007 14:29:01 -0000 1.215 +++ rpm.spec 13 Aug 2007 07:55:37 -0000 1.216 @@ -1,96 +1,64 @@ -%define with_python_subpackage 1%{nil} -%define with_python_version 2.4%{nil} -%define with_bzip2 1%{nil} -%define with_apidocs 1%{nil} +%define with_python_version 2.5%{nil} +%define with_apidocs 1%{nil} -# XXX legacy requires './' payload prefix to be omitted from rpm packages. -%define _noPayloadPrefix 1 - -%define __prefix %{?_prefix}%{!?_prefix:/usr} +%define __prefix %{?_prefix}%{!?_prefix:/usr} %{?!_lib: %define _lib lib} %{expand: %%define __share %(if [ -d %{__prefix}/share/man ]; then echo /share ; else echo %%{nil} ; fi)} -%define __bindir %{__prefix}/bin -%define __includedir %{__prefix}/include -%define __libdir %{__prefix}/%{_lib} -%define __mandir %{__prefix}%{__share}/man +%define __bindir %{__prefix}/bin +%define __includedir %{__prefix}/include +%define __libdir %{__prefix}/%{_lib} +%define __mandir %{__prefix}%{__share}/man -Summary: The RPM package management system. +Summary: The RPM package management system Name: rpm -%define version 4.4.2 -Version: %{version} +Version: 4.4.2.1 %{expand: %%define rpm_version %{version}} -Release: 33%{?dist} +Release: 1%{?dist} Group: System Environment/Base -Source: ftp://wraptastic.org/pub/rpm-4.4.x/rpm-%{rpm_version}.tar.gz -Source1: mono-find-provides -Source2: mono-find-requires -Patch0: rpm-4.4.1-hkp-disable.patch -Patch1: rpm-4.4.1-fileconflicts.patch -Patch2: rpm-4.4.1-prereq.patch -Patch3: rpm-4.4.1-nonmerged.patch -Patch4: rpm-4.4.1-prepostun.patch -Patch5: rpm-4.4.1-ordererase.patch +Url: http://www.rpm.org/ +Source: rpm-%{rpm_version}.tar.gz +Patch1: rpm-4.4.1-prereq.patch +Patch2: rpm-4.4.2-ghost-conflicts.patch +Patch3: rpm-4.4.2-trust.patch +Patch4: rpm-4.4.2-devel-autodep.patch +Patch5: rpm-4.4.2-rpmfc-skip.patch Patch6: rpm-4.4.2-matchpathcon.patch -Patch7: rpm-4.4.2-perlreq.patch -Patch8: rpm-4.4.2-db3-param.patch -Patch9: rpm-4.4.2-contextverify.patch -Patch10: rpm-4.4.2-popt-charset.patch -Patch11: rpm-4.4.2-ghost-conflicts.patch -Patch12: rpm-4.4.2-exclude.patch -Patch13: rpm-4.4.2-excluded-size.patch -Patch14: rpm-4.4.2-cronpath.patch -Patch15: rpm-4.4.2-mono.patch -Patch16: rpm-4.4.2-file-softmagic.patch -Patch17: rpm-4.4.2-no-large-mmap.patch -Patch18: rpm-4.4.2-perlmainprov.patch -Patch19: rpm-4.4.2-rpmsq-deadlock.patch -Patch20: rpm-4.4.2-netsharedpath.patch -Patch21: rpm-4.4.2-userlock.patch -Patch22: rpm-4.4.2-vercmp.patch -Patch23: rpm-4.4.2-doxy.patch -Patch24: rpm-4.4.2-trust.patch -Patch25: rpm-4.4.2-devel-autodep.patch -Patch26: rpm-4.4.2-rpmfc-skip.patch -Patch27: rpm-4.4.2-noselinux-verify.patch -Patch28: rpm-4.4.2-python-aslist.patch -Patch29: rpm-4.4.2-rpmio-ipv6.patch -Patch30: rpm-4.4.2-gnuhash.patch -Patch31: rpm-4.4.2-debugedit-ppc-reloc.patch -Patch32: rpm-4.4.2-debugpaths.patch -Patch33: rpm-4.4.2-no-ppc-asm.patch -License: GPL -Conflicts: patch < 2.5 -%ifos linux -Prereq: fileutils shadow-utils -%endif -Requires: popt = 1.10.2 -Obsoletes: rpm-perl < %{version} +Patch7: rpm-4.4.2.1-checksignals.patch +Patch8: rpm-4.4.2.1-checkterminate.patch +Patch9: rpm-4.4.2.1-python-exithook.patch +Patch10: rpm-4.4.2.1-checkterminate-noexit.patch +Patch11: rpm-4.4.2.1-config-mtime.patch +Patch12: rpm-4.4.2.1-strict-docdir.patch +# XXX Beware, this is one murky license, partially GPL/LGPL dual-licensed +# and several different components with their own licenses included... +License: (GPLv2 and LGPLv2 with exceptions) and BSD and MIT and Sleepycat +Requires(pre): shadow-utils +Requires(postun): shadow-utils +Requires(post): coreutils +Requires: popt >= 1.10.2.1 +Requires: crontabs +Requires: logrotate BuildRequires: autoconf BuildRequires: elfutils-devel >= 0.112 +BuildRequires: elfutils-libelf-devel-static -BuildRequires: sed readline-devel zlib-devel +BuildRequires: readline-devel zlib-devel BuildRequires: beecrypt-devel >= 4.1.2 Requires: beecrypt >= 4.1.2 -BuildRequires: neon-devel +BuildConflicts: neon-devel BuildRequires: sqlite-devel BuildRequires: gettext-devel BuildRequires: libselinux-devel -#XXX: lua fix this BuildRequires: ncurses-devel - -# XXX Red Hat 5.2 has not bzip2 or python -%if %{with_bzip2} BuildRequires: bzip2-devel >= 0.9.0c-2 -%endif -%if %{with_python_subpackage} BuildRequires: python-devel >= %{with_python_version} -%endif +BuildRequires: doxygen -BuildRoot: %{_tmppath}/%{name}-root +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) %description The RPM Package Manager (RPM) is a powerful command line driven @@ -100,19 +68,18 @@ the package like its version, a description, etc. %package libs -Summary: Libraries for manipulating RPM packages. +Summary: Libraries for manipulating RPM packages Group: Development/Libraries -Requires: rpm = %{rpm_version}-%{release} +Requires: rpm = %{version}-%{release} %description libs This package contains the RPM shared libraries. %package devel -Summary: Development files for manipulating RPM packages. +Summary: Development files for manipulating RPM packages Group: Development/Libraries -Requires: rpm = %{rpm_version}-%{release} +Requires: rpm = %{version}-%{release} Requires: beecrypt >= 4.1.2 -Requires: neon-devel Requires: sqlite-devel Requires: libselinux-devel Requires: elfutils-libelf-devel @@ -129,21 +96,21 @@ will manipulate RPM packages and databases. %package build -Summary: Scripts and executable programs used to build packages. +Summary: Scripts and executable programs used to build packages Group: Development/Tools -Requires: rpm = %{rpm_version}-%{release}, patch >= 2.5, file, elfutils +Requires: rpm = %{version}-%{release}, patch >= 2.5, file +Requires: elfutils >= 0.128 +Requires: findutils Provides: rpmbuild(VendorConfig) = 4.1-1 %description build The rpm-build package contains the scripts and executable programs that are used to build packages using the RPM Package Manager. -%if %{with_python_subpackage} %package python -Summary: Python bindings for apps which will manipulate RPM packages. +Summary: Python bindings for apps which will manipulate RPM packages Group: Development/Libraries -Requires: rpm = %{rpm_version}-%{release} -Requires: python >= %{with_python_version} +Requires: rpm = %{version}-%{release} %description python The rpm-python package contains a module that permits applications @@ -152,12 +119,12 @@ This package should be installed if you want to develop Python programs that will manipulate RPM packages and databases. -%endif %package -n popt -Summary: A C library for parsing command line parameters. +Summary: A C library for parsing command line parameters Group: Development/Libraries -Version: 1.10.2 +Version: 1.10.2.1 +License: MIT %description -n popt Popt is a C library for parsing command line parameters. Popt was @@ -170,69 +137,32 @@ shell-like rules. %prep -%setup -q -%patch0 -p1 -b .nohkp -%patch1 -p1 -b .fileconflicts -%patch2 -p1 -b .prereq -%patch3 -p1 -b .rpmal -%patch4 -p1 -b .prepostun -%patch5 -p1 -b .ordererase -# patch 6 moved -%patch7 -p1 -b .perlreq -%patch8 -p1 -b .param -%patch10 -p1 -b .charset -%patch11 -p1 -b .ghostconflicts -#patch12 -p1 -b .exclude -%patch13 -p1 -b .excludedsize -%patch14 -p1 -b .cronpath -%patch15 -p1 -b .mono -%patch16 -p1 -b .magic -%patch17 -p1 -b .no_large_mmap -%patch18 -p1 -b .perlmainprov -%patch19 -p1 -b .deadlock -%patch20 -p1 -b .netsharedpath -%patch21 -p1 -b .userlock -%patch22 -p1 -b .vercmp -%patch23 -p1 -b .doxy -%patch24 -p1 -b .trust -%patch25 -p1 -b .develdeps -%patch26 -p1 -b .fcskip -%patch27 -p0 -b .nosever -%patch6 -p1 -b .matchpathcon -%patch28 -p1 -b .aslist -%patch29 -p1 -b .ipv6 -%patch30 -p1 -b .gnuhash -%patch31 -p0 -b .dbgppc -%patch32 -p1 -b .dbgpaths -%patch33 -p1 -b .noppcasm - -# rebuild configure for ipv6 -autoconf +%setup -q -n %{name}-%{rpm_version} +%patch1 -p1 -b .prereq +%patch2 -p1 -b .ghostconflicts +%patch3 -p1 -b .trust +%patch4 -p1 -b .develdeps +%patch5 -p1 -b .fcskip +%patch6 -p1 -b .matchpathcon +%patch7 -p1 -b .checksignals +%patch8 -p1 -b .checkterminate +%patch9 -p1 -b .py-exithook +%patch10 -p1 -b .checkterminate-noexit +%patch11 -p1 -b .config-mtime +%patch12 -p1 -b .strict-docdir %build # XXX rpm needs functioning nptl for configure tests unset LD_ASSUME_KERNEL || : -%if %{with_python_subpackage} WITH_PYTHON="--with-python=%{with_python_version}" -%else -WITH_PYTHON="--without-python" -%endif -%ifos linux CFLAGS="$RPM_OPT_FLAGS"; export CFLAGS ./configure --prefix=%{__prefix} --sysconfdir=/etc \ - --localstatedir=/var --infodir='${prefix}%{__share}/info' \ - --mandir='${prefix}%{__share}/man' \ - $WITH_PYTHON --enable-posixmutexes --without-javaglue -%else -export CPPFLAGS=-I%{__prefix}/include -CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=%{__prefix} $WITH_PYTHON \ - --without-javaglue -%endif - -make -C zlib || : + --localstatedir=/var --infodir='${prefix}%{__share}/info' \ + --mandir='${prefix}%{__share}/man' \ + $WITH_PYTHON --enable-posixmutexes --without-javaglue make %{?_smp_mflags} @@ -248,9 +178,9 @@ # workaround to #132435, # and from linking to included zlib for i in librpm.la librpmbuild.la librpmdb.la librpmio.la ; do - sed -i -e 's~-L'"$RPM_BUILD_ROOT"'[^ ]* ~~g' \ - -e 's~-L'"$RPM_BUILD_DIR"'[^ ]* ~~g' \ - "$RPM_BUILD_ROOT%{__libdir}/$i" + sed -i -e 's~-L'"$RPM_BUILD_ROOT"'[^ ]* ~~g' \ + -e 's~-L'"$RPM_BUILD_DIR"'[^ ]* ~~g' \ + "$RPM_BUILD_ROOT%{__libdir}/$i" done # Clean up dangling symlinks @@ -264,8 +194,6 @@ rm -f "$RPM_BUILD_ROOT"/"$i" done -%ifos linux - # Save list of packages through cron mkdir -p ${RPM_BUILD_ROOT}/etc/cron.daily install -m 755 scripts/rpm.daily ${RPM_BUILD_ROOT}/etc/cron.daily/rpm @@ -278,60 +206,42 @@ mkdir -p $RPM_BUILD_ROOT/var/spool/repackage mkdir -p $RPM_BUILD_ROOT/var/lib/rpm for dbi in \ - Basenames Conflictname Dirnames Group Installtid Name Packages \ - Providename Provideversion Requirename Requireversion Triggername \ - Filemd5s Pubkeys Sha1header Sigmd5 \ - __db.001 __db.002 __db.003 __db.004 __db.005 __db.006 __db.007 \ - __db.008 __db.009 + Basenames Conflictname Dirnames Group Installtid Name Packages \ + Providename Provideversion Requirename Requireversion Triggername \ + Filemd5s Pubkeys Sha1header Sigmd5 \ + __db.001 __db.002 __db.003 __db.004 __db.005 __db.006 __db.007 \ + __db.008 __db.009 do touch $RPM_BUILD_ROOT/var/lib/rpm/$dbi done -%endif +%find_lang %{name} +%find_lang popt -%if %{with_apidocs} -gzip -9n apidocs/man/man*/* || : -%endif +# copy db and file/libmagic license info to distinct names +cp -p db/LICENSE LICENSE-bdb +cp -p file/LEGAL.NOTICE LEGAL.NOTICE-file +cp -p lua/COPYRIGHT COPYRIGHT-lua # Get rid of unpackaged files { cd $RPM_BUILD_ROOT rm -f .%{_libdir}/lib*.la - rm -f .%{__prefix}/lib/rpm/{Specfile.pm,cpanflute,cpanflute2,rpmdiff,rpmdiff.cgi,sql.prov,sql.req,tcl.req} + rm -f .%{__prefix}/lib/rpm/{Specfile.pm,cpanflute,cpanflute2,rpmdiff,rpmdiff.cgi,sql.prov,sql.req,tcl.req,rpm.*} rm -rf .%{__mandir}/{fr,ko} -%if %{with_python_subpackage} rm -f .%{__libdir}/python%{with_python_version}/site-packages/*.{a,la} rm -f .%{__libdir}/python%{with_python_version}/site-packages/rpm/*.{a,la} rm -f .%{__libdir}/python%{with_python_version}/site-packages/rpmdb/*.{a,la} -%endif } -# Install mono find-provides/requires -install -m 755 %{SOURCE1} $RPM_BUILD_ROOT/usr/lib/rpm -install -m 755 %{SOURCE2} $RPM_BUILD_ROOT/usr/lib/rpm - %clean rm -rf $RPM_BUILD_ROOT %pre -%ifos linux -if [ -f /var/lib/rpm/packages.rpm ]; then - echo " -You have (unsupported) - /var/lib/rpm/packages.rpm db1 format installed package headers -Please install rpm-4.0.4 first, and do - rpm --rebuilddb -to convert your database from db1 to db3 format. -" - exit 1 -fi -/usr/sbin/groupadd -g 37 rpm > /dev/null 2>&1 -/usr/sbin/useradd -r -d /var/lib/rpm -u 37 -g 37 rpm -s /sbin/nologin > /dev/null 2>&1 -%endif +/usr/sbin/groupadd -g 37 rpm > /dev/null 2>&1 +/usr/sbin/useradd -r -d /var/lib/rpm -u 37 -g 37 rpm -s /sbin/nologin > /dev/null 2>&1 exit 0 %post -%ifos linux - # Establish correct rpmdb ownership. /bin/chown rpm.rpm /var/lib/rpm/[A-Z]* @@ -341,16 +251,15 @@ [ -w /var/lib/rpm/__db.001 ] && /usr/lib/rpm/rpmdb_stat -CA -h /var/lib/rpm 2>&1 | grep "db_stat: Program version 4.3 doesn't match environment version" 2>&1 > /dev/null && - rm -f /var/lib/rpm/__db* + rm -f /var/lib/rpm/__db* -%endif exit 0 -%ifos linux %postun if [ $1 = 0 ]; then - /usr/sbin/userdel rpm - /usr/sbin/groupdel rpm + /usr/sbin/userdel rpm > /dev/null 2>&1 + /usr/sbin/groupdel rpm > /dev/null 2>&1 + fi exit 0 @@ -362,120 +271,87 @@ %post -n popt -p /sbin/ldconfig %postun -n popt -p /sbin/ldconfig -%endif - -%if %{with_python_subpackage} -%post python -p /sbin/ldconfig -%postun python -p /sbin/ldconfig -%endif - -%define rpmattr %attr(0755, rpm, rpm) -%files -%defattr(-,root,root) -%doc RPM-PGP-KEY RPM-GPG-KEY BETA-GPG-KEY CHANGES GROUPS doc/manual/[a-z]* -# XXX comment these lines out if building with rpm that knows not %pubkey attr -%pubkey RPM-PGP-KEY -%pubkey RPM-GPG-KEY -%pubkey BETA-GPG-KEY -%attr(0755, rpm, rpm) /bin/rpm - -%ifos linux -%config(noreplace,missingok) /etc/cron.daily/rpm -%config(noreplace,missingok) /etc/logrotate.d/rpm -%dir /etc/rpm -#%config(noreplace,missingok) /etc/rpm/macros.* -%attr(0755, rpm, rpm) %dir /var/lib/rpm -%attr(0755, rpm, rpm) %dir /var/spool/repackage - -%define rpmdbattr %attr(0644, rpm, rpm) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) -%rpmdbattr /var/lib/rpm/* -%endif +%define rpmattr %attr(0755, rpm, rpm) -%rpmattr %{__bindir}/rpm2cpio -%rpmattr %{__bindir}/gendiff -%rpmattr %{__bindir}/rpmdb -#%rpmattr %{__bindir}/rpm[eiu] -%rpmattr %{__bindir}/rpmsign -%rpmattr %{__bindir}/rpmquery -%rpmattr %{__bindir}/rpmverify - -%attr(0755, rpm, rpm) %dir %{__prefix}/lib/rpm -%rpmattr %{__prefix}/lib/rpm/config.guess -%rpmattr %{__prefix}/lib/rpm/config.sub -%rpmattr %{__prefix}/lib/rpm/convertrpmrc.sh -%rpmattr %{__prefix}/lib/rpm/freshen.sh -%attr(0644, rpm, rpm) %{__prefix}/lib/rpm/macros -%rpmattr %{__prefix}/lib/rpm/mkinstalldirs -%rpmattr %{__prefix}/lib/rpm/rpm.* -%rpmattr %{__prefix}/lib/rpm/rpm2cpio.sh -%rpmattr %{__prefix}/lib/rpm/rpm[deiukqv] -%rpmattr %{__prefix}/lib/rpm/tgpg -%attr(0644, rpm, rpm) %{__prefix}/lib/rpm/rpmpopt* -%attr(0644, rpm, rpm) %{__prefix}/lib/rpm/rpmrc +%files -f %{name}.lang +%defattr(-,root,root,-) +%doc CHANGES GROUPS COPYING LICENSE-bdb LEGAL.NOTICE-file CREDITS ChangeLog +%doc COPYRIGHT-lua doc/manual/[a-z]* +%attr(0755, rpm, rpm) /bin/rpm + +/etc/cron.daily/rpm +%config(noreplace,missingok) /etc/logrotate.d/rpm +%dir /etc/rpm +#%config(noreplace,missingok) /etc/rpm/macros.* +%attr(0755, rpm, rpm) %dir /var/lib/rpm +%attr(0755, rpm, rpm) %dir /var/spool/repackage + +%define rpmdbattr %attr(0644, rpm, rpm) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) +%rpmdbattr /var/lib/rpm/* + +%rpmattr %{__bindir}/rpm2cpio +%rpmattr %{__bindir}/gendiff +%rpmattr %{__bindir}/rpmdb +#%rpmattr %{__bindir}/rpm[eiu] +%rpmattr %{__bindir}/rpmsign +%rpmattr %{__bindir}/rpmquery +%rpmattr %{__bindir}/rpmverify + +%attr(0755, rpm, rpm) %dir %{__prefix}/lib/rpm +%rpmattr %{__prefix}/lib/rpm/config.guess +%rpmattr %{__prefix}/lib/rpm/config.sub +%rpmattr %{__prefix}/lib/rpm/convertrpmrc.sh +%rpmattr %{__prefix}/lib/rpm/freshen.sh +%attr(0644, rpm, rpm) %{__prefix}/lib/rpm/macros +%rpmattr %{__prefix}/lib/rpm/mkinstalldirs +%rpmattr %{__prefix}/lib/rpm/rpm2cpio.sh +%rpmattr %{__prefix}/lib/rpm/rpm[deiukqv] +%rpmattr %{__prefix}/lib/rpm/tgpg +%attr(0644, rpm, rpm) %{__prefix}/lib/rpm/rpmpopt* +%attr(0644, rpm, rpm) %{__prefix}/lib/rpm/rpmrc %ifarch i386 i486 i586 i686 athlon pentium3 pentium4 -%attr(-, rpm, rpm) %{__prefix}/lib/rpm/i[3456]86* -%attr(-, rpm, rpm) %{__prefix}/lib/rpm/athlon* -%attr(-, rpm, rpm) %{__prefix}/lib/rpm/pentium* +%attr(-, rpm, rpm) %{__prefix}/lib/rpm/i[3456]86* +%attr(-, rpm, rpm) %{__prefix}/lib/rpm/athlon* +%attr(-, rpm, rpm) %{__prefix}/lib/rpm/pentium* %endif %ifarch alpha alphaev5 alphaev56 alphapca56 alphaev6 alphaev67 -%attr(-, rpm, rpm) %{__prefix}/lib/rpm/alpha* +%attr(-, rpm, rpm) %{__prefix}/lib/rpm/alpha* %endif %ifarch sparc sparcv8 sparcv9 sparc64 -%attr(-, rpm, rpm) %{__prefix}/lib/rpm/sparc* +%attr(-, rpm, rpm) %{__prefix}/lib/rpm/sparc* %endif %ifarch ia64 -%attr(-, rpm, rpm) %{__prefix}/lib/rpm/ia64* +%attr(-, rpm, rpm) %{__prefix}/lib/rpm/ia64* %endif %ifarch powerpc ppc ppciseries ppcpseries ppcmac ppc64 -%attr(-, rpm, rpm) %{__prefix}/lib/rpm/ppc* +%attr(-, rpm, rpm) %{__prefix}/lib/rpm/ppc* %endif %ifarch s390 s390x -%attr(-, rpm, rpm) %{__prefix}/lib/rpm/s390* +%attr(-, rpm, rpm) %{__prefix}/lib/rpm/s390* %endif %ifarch armv3l armv4l -%attr(-, rpm, rpm) %{__prefix}/lib/rpm/armv[34][lb]* +%attr(-, rpm, rpm) %{__prefix}/lib/rpm/armv[34][lb]* %endif %ifarch mips mipsel -%attr(-, rpm, rpm) %{__prefix}/lib/rpm/mips* +%attr(-, rpm, rpm) %{__prefix}/lib/rpm/mips* %endif %ifarch x86_64 -%attr(-, rpm, rpm) %{__prefix}/lib/rpm/x86_64* +%attr(-, rpm, rpm) %{__prefix}/lib/rpm/x86_64* %endif -%attr(-, rpm, rpm) %{__prefix}/lib/rpm/noarch* +%attr(-, rpm, rpm) %{__prefix}/lib/rpm/noarch* -%rpmattr %{__prefix}/lib/rpm/rpmdb_* -%rpmattr %{__prefix}/lib/rpm/rpmfile - -%lang(cs) %{__prefix}/*/locale/cs/LC_MESSAGES/rpm.mo -%lang(da) %{__prefix}/*/locale/da/LC_MESSAGES/rpm.mo -%lang(de) %{__prefix}/*/locale/de/LC_MESSAGES/rpm.mo -%lang(fi) %{__prefix}/*/locale/fi/LC_MESSAGES/rpm.mo -%lang(fr) %{__prefix}/*/locale/fr/LC_MESSAGES/rpm.mo -%lang(gl) %{__prefix}/*/locale/gl/LC_MESSAGES/rpm.mo -%lang(is) %{__prefix}/*/locale/is/LC_MESSAGES/rpm.mo -%lang(ja) %{__prefix}/*/locale/ja/LC_MESSAGES/rpm.mo -%lang(ko) %{__prefix}/*/locale/ko/LC_MESSAGES/rpm.mo -%lang(no) %{__prefix}/*/locale/no/LC_MESSAGES/rpm.mo -%lang(pl) %{__prefix}/*/locale/pl/LC_MESSAGES/rpm.mo -%lang(pt) %{__prefix}/*/locale/pt/LC_MESSAGES/rpm.mo -%lang(pt_BR) %{__prefix}/*/locale/pt_BR/LC_MESSAGES/rpm.mo -%lang(ro) %{__prefix}/*/locale/ro/LC_MESSAGES/rpm.mo -%lang(ru) %{__prefix}/*/locale/ru/LC_MESSAGES/rpm.mo -%lang(sk) %{__prefix}/*/locale/sk/LC_MESSAGES/rpm.mo -%lang(sl) %{__prefix}/*/locale/sl/LC_MESSAGES/rpm.mo -%lang(sr) %{__prefix}/*/locale/sr/LC_MESSAGES/rpm.mo -%lang(sv) %{__prefix}/*/locale/sv/LC_MESSAGES/rpm.mo -%lang(tr) %{__prefix}/*/locale/tr/LC_MESSAGES/rpm.mo +%rpmattr %{__prefix}/lib/rpm/rpmdb_* +%rpmattr %{__prefix}/lib/rpm/rpmfile %{__mandir}/man1/gendiff.1* %{__mandir}/man8/rpm.8* %{__mandir}/man8/rpm2cpio.8* -%lang(ja) %{__mandir}/ja/man[18]/*.[18]* -%lang(pl) %{__mandir}/pl/man[18]/*.[18]* -%lang(ru) %{__mandir}/ru/man[18]/*.[18]* -%lang(sk) %{__mandir}/sk/man[18]/*.[18]* +%lang(ja) %{__mandir}/ja/man[18]/*.[18]* +%lang(pl) %{__mandir}/pl/man[18]/*.[18]* +%lang(ru) %{__mandir}/ru/man[18]/*.[18]* +%lang(sk) %{__mandir}/sk/man[18]/*.[18]* %files libs %defattr(-,root,root) @@ -493,53 +369,53 @@ %dir %{__prefix}/src/redhat/SRPMS %dir %{__prefix}/src/redhat/RPMS %{__prefix}/src/redhat/RPMS/* -%rpmattr %{__bindir}/rpmbuild -%rpmattr %{__prefix}/lib/rpm/brp-* -%rpmattr %{__prefix}/lib/rpm/check-files -%rpmattr %{__prefix}/lib/rpm/check-prereqs -%rpmattr %{__prefix}/lib/rpm/config.site -%rpmattr %{__prefix}/lib/rpm/cross-build -%rpmattr %{__prefix}/lib/rpm/debugedit -%rpmattr %{__prefix}/lib/rpm/find-debuginfo.sh -%rpmattr %{__prefix}/lib/rpm/find-lang.sh -%rpmattr %{__prefix}/lib/rpm/find-prov.pl -%rpmattr %{__prefix}/lib/rpm/find-provides -%rpmattr %{__prefix}/lib/rpm/find-provides.perl -%rpmattr %{__prefix}/lib/rpm/find-req.pl -%rpmattr %{__prefix}/lib/rpm/find-requires -%rpmattr %{__prefix}/lib/rpm/find-requires.perl -%rpmattr %{__prefix}/lib/rpm/get_magic.pl -%rpmattr %{__prefix}/lib/rpm/getpo.sh -%rpmattr %{__prefix}/lib/rpm/http.req -%rpmattr %{__prefix}/lib/rpm/javadeps -%rpmattr %{__prefix}/lib/rpm/magic -%rpmattr %{__prefix}/lib/rpm/magic.mgc -%rpmattr %{__prefix}/lib/rpm/magic.mime -%rpmattr %{__prefix}/lib/rpm/magic.mime.mgc -%rpmattr %{__prefix}/lib/rpm/magic.prov -%rpmattr %{__prefix}/lib/rpm/magic.req -%rpmattr %{__prefix}/lib/rpm/mono-find-provides -%rpmattr %{__prefix}/lib/rpm/mono-find-requires -%rpmattr %{__prefix}/lib/rpm/perldeps.pl -%rpmattr %{__prefix}/lib/rpm/perl.prov -%rpmattr %{__prefix}/lib/rpm/perl.req -%rpmattr %{__prefix}/lib/rpm/pythondeps.sh - -%rpmattr %{__prefix}/lib/rpm/rpm[bt] -%rpmattr %{__prefix}/lib/rpm/rpmdeps -%rpmattr %{__prefix}/lib/rpm/trpm -%rpmattr %{__prefix}/lib/rpm/u_pkg.sh -%rpmattr %{__prefix}/lib/rpm/vpkg-provides.sh -%rpmattr %{__prefix}/lib/rpm/vpkg-provides2.sh +%rpmattr %{__bindir}/rpmbuild +%rpmattr %{__prefix}/lib/rpm/brp-* +%rpmattr %{__prefix}/lib/rpm/check-buildroot +%rpmattr %{__prefix}/lib/rpm/check-files +%rpmattr %{__prefix}/lib/rpm/check-prereqs +%rpmattr %{__prefix}/lib/rpm/check-rpaths* +%attr(0644, rpm, rpm) %{__prefix}/lib/rpm/config.site +%rpmattr %{__prefix}/lib/rpm/cross-build +%rpmattr %{__prefix}/lib/rpm/debugedit +%rpmattr %{__prefix}/lib/rpm/find-debuginfo.sh +%rpmattr %{__prefix}/lib/rpm/find-lang.sh +%rpmattr %{__prefix}/lib/rpm/find-prov.pl +%rpmattr %{__prefix}/lib/rpm/find-provides +%rpmattr %{__prefix}/lib/rpm/find-provides.perl +%rpmattr %{__prefix}/lib/rpm/find-req.pl +%rpmattr %{__prefix}/lib/rpm/find-requires +%rpmattr %{__prefix}/lib/rpm/find-requires.perl +%rpmattr %{__prefix}/lib/rpm/get_magic.pl +%rpmattr %{__prefix}/lib/rpm/getpo.sh +%rpmattr %{__prefix}/lib/rpm/http.req +%rpmattr %{__prefix}/lib/rpm/javadeps +%attr(0644, rpm, rpm) %{__prefix}/lib/rpm/magic +%attr(0644, rpm, rpm) %{__prefix}/lib/rpm/magic.mgc +%attr(0644, rpm, rpm) %{__prefix}/lib/rpm/magic.mime +%attr(0644, rpm, rpm) %{__prefix}/lib/rpm/magic.mime.mgc +%rpmattr %{__prefix}/lib/rpm/magic.prov +%rpmattr %{__prefix}/lib/rpm/magic.req +%rpmattr %{__prefix}/lib/rpm/mono-find-provides +%rpmattr %{__prefix}/lib/rpm/mono-find-requires +%rpmattr %{__prefix}/lib/rpm/perldeps.pl +%rpmattr %{__prefix}/lib/rpm/perl.prov +%rpmattr %{__prefix}/lib/rpm/perl.req +%rpmattr %{__prefix}/lib/rpm/pythondeps.sh + +%rpmattr %{__prefix}/lib/rpm/rpm[bt] +%rpmattr %{__prefix}/lib/rpm/rpmdeps +%rpmattr %{__prefix}/lib/rpm/trpm +%rpmattr %{__prefix}/lib/rpm/u_pkg.sh +%rpmattr %{__prefix}/lib/rpm/vpkg-provides.sh +%rpmattr %{__prefix}/lib/rpm/vpkg-provides2.sh %{__mandir}/man8/rpmbuild.8* %{__mandir}/man8/rpmdeps.8* -%if %{with_python_subpackage} %files python %defattr(-,root,root) %{__libdir}/python%{with_python_version}/site-packages/rpm -%endif %files devel %defattr(-,root,root) @@ -557,43 +433,13 @@ %{__libdir}/librpmbuild.so %{__mandir}/man8/rpmcache.8* %{__mandir}/man8/rpmgraph.8* -%rpmattr %{__prefix}/lib/rpm/rpmcache -%rpmattr %{__bindir}/rpmgraph +%rpmattr %{__prefix}/lib/rpm/rpmcache +%rpmattr %{__bindir}/rpmgraph -%files -n popt +%files -n popt -f popt.lang %defattr(-,root,root) %{__libdir}/libpopt.so.* %{__mandir}/man3/popt.3* -%lang(cs) %{__prefix}/*/locale/cs/LC_MESSAGES/popt.mo -%lang(da) %{__prefix}/*/locale/da/LC_MESSAGES/popt.mo -%lang(de) %{__prefix}/*/locale/de/LC_MESSAGES/popt.mo -%lang(es) %{__prefix}/*/locale/es/LC_MESSAGES/popt.mo -%lang(eu_ES) %{__prefix}/*/locale/eu_ES/LC_MESSAGES/popt.mo -%lang(fi) %{__prefix}/*/locale/fi/LC_MESSAGES/popt.mo -%lang(fr) %{__prefix}/*/locale/fr/LC_MESSAGES/popt.mo -%lang(gl) %{__prefix}/*/locale/gl/LC_MESSAGES/popt.mo -%lang(hu) %{__prefix}/*/locale/hu/LC_MESSAGES/popt.mo -%lang(id) %{__prefix}/*/locale/id/LC_MESSAGES/popt.mo -%lang(is) %{__prefix}/*/locale/is/LC_MESSAGES/popt.mo -%lang(it) %{__prefix}/*/locale/it/LC_MESSAGES/popt.mo -%lang(ja) %{__prefix}/*/locale/ja/LC_MESSAGES/popt.mo -%lang(ko) %{__prefix}/*/locale/ko/LC_MESSAGES/popt.mo -%lang(no) %{__prefix}/*/locale/no/LC_MESSAGES/popt.mo -%lang(pl) %{__prefix}/*/locale/pl/LC_MESSAGES/popt.mo -%lang(pt) %{__prefix}/*/locale/pt/LC_MESSAGES/popt.mo -%lang(pt_BR) %{__prefix}/*/locale/pt_BR/LC_MESSAGES/popt.mo -%lang(ro) %{__prefix}/*/locale/ro/LC_MESSAGES/popt.mo -%lang(ru) %{__prefix}/*/locale/ru/LC_MESSAGES/popt.mo -%lang(sk) %{__prefix}/*/locale/sk/LC_MESSAGES/popt.mo -%lang(sl) %{__prefix}/*/locale/sl/LC_MESSAGES/popt.mo -%lang(sr) %{__prefix}/*/locale/sr/LC_MESSAGES/popt.mo -%lang(sv) %{__prefix}/*/locale/sv/LC_MESSAGES/popt.mo -%lang(tr) %{__prefix}/*/locale/tr/LC_MESSAGES/popt.mo -%lang(uk) %{__prefix}/*/locale/uk/LC_MESSAGES/popt.mo -%lang(wa) %{__prefix}/*/locale/wa/LC_MESSAGES/popt.mo -%lang(zh) %{__prefix}/*/locale/zh/LC_MESSAGES/popt.mo -%lang(zh_CN) %{__prefix}/*/locale/zh_CN/LC_MESSAGES/popt.mo -%lang(zh_TW) %{__prefix}/*/locale/zh_TW/LC_MESSAGES/popt.mo # XXX These may end up in popt-devel but it hardly seems worth the effort. %{__libdir}/libpopt.a @@ -601,9 +447,76 @@ %{__includedir}/popt.h %changelog -* Fri Apr 27 2007 Paul Nasrat - 4.4.2-33 +* Mon Aug 13 2007 Panu Matilainen - 4.4.2.1-1 +- update to 4.4.2.1 (#247749 and others) +- drop upstreamed patches and sources +- loosen up popt-dependency to prepare for splitting it off +- avoid unnecessary .rpmsave / .rpmnew files by Tomas Mraz (#29470, #128622) +- stricter docdir checking by Ralf S. Engelschall (#246819) +- license clarifications +- include full ChangeLog as doc +- require logrotate (#248629) +- allow checking for pending signals from python (#181434) +- add hook to python for cleaning up on unclean exit (#245389) +- spec / package (review) cleanups: +- use find_lang instead of manually listing translations +- remove useless rpm 3.x upgrade check from preinstall script +- use Fedora recommended buildroot +- don't include useless, ancient GPG keys +- add rpm, db, file and lua licenses to docs +- use scriptlet dependency markers instead of PreReq +- post scriptlet requires coreutils +- main package doesn't require patch, rpm-build does +- buildrequire doxygen once more to resurrect apidocs +- remove useless/doubly packaged files from /usr/lib/rpm +- fix bunch of file permissions + +* Tue May 01 2007 Paul Nasrat - 4.4.2-46 +- Configurable policy for prefered ELF (#235757) + +* Mon Apr 23 2007 Paul Nasrat - 4.4.2-45 +- Fix debugedit for relative paths (#232222) + +* Mon Apr 16 2007 Paul Nasrat - 4.4.2-44 +- Set default verify flags for %%doc (#235353) +- Revert to old configure line + +* Mon Apr 16 2007 Paul Nasrat - 4.4.2-43 +- Log failures for fork failing (OLPC) +- Gendiff enhancement from Enrico Scholz (#146981) + +* Wed Apr 04 2007 Paul Nasrat - 4.4.2-42 - Remove ppc64 inline asm (#233145) +* Tue Mar 13 2007 Paul Nasrat - 4.4.2-41 +- Fix potential segfault when no rpmloc_path (#231146) +- Fix debugedit for relative paths (#232222) +- Spec cleanup + +* Mon Feb 19 2007 Jeremy Katz - 4.4.2-40 +- rpm-build should require findutils + +* Wed Jan 17 2007 Deepak Bhole 4.4.2-39%{?dist} +- Added a missing BR for elfutils-libelf-devel-static (needed for -lelf) + +* Mon Dec 11 2006 Jeremy Katz - 4.4.2-38 +- python: dbmatch keys can be unicode objects also (#219008) + +* Wed Dec 6 2006 Jeremy Katz - 4.4.2-37 +- rebuild for python 2.5 + +* Mon Nov 20 2006 Paul Nasrat - 4.4.2-36 +- Fix ordering issues (#196590) + +* Tue Oct 31 2006 Paul Nasrat - 4.4.2-35 +- Flush query buffer patch from jbj (#212833) + +* Tue Oct 31 2006 Paul Nasrat - 4.4.2-34 +- Debuginfo extraction with O0 + +* Wed Oct 25 2006 Paul Nasrat - 4.4.2-33 +- Fix for ordering (#202540, #202542, #202543, #202544) + * Thu Sep 07 2006 Paul Nasrat - 4.4.2-32 - Various debuginfo fixes (#165434, #165418, #149113, #205339) @@ -693,7 +606,7 @@ * Mon Nov 28 2005 Paul Nasrat - 4.4.2-8 - Add elfutils Build Requires to rpmbuild (#155129) -- Don't do conflicts if both files %ghost(#155256) +- Don't do conflicts if both files %%ghost(#155256) - Fix popt charset for various languages (#172155) - Don't include .la file (#174261) Index: sources =================================================================== RCS file: /cvs/dist/rpms/rpm/FC-6/sources,v retrieving revision 1.120 retrieving revision 1.121 diff -u -r1.120 -r1.121 --- sources 21 Jul 2005 21:26:50 -0000 1.120 +++ sources 13 Aug 2007 07:55:37 -0000 1.121 @@ -1 +1 @@ -e24ce468082479fe850c9d6563f56db5 rpm-4.4.2.tar.gz +4298abc7a0b4c33b4bf1665adbeeabae rpm-4.4.2.1.tar.gz --- mono-find-provides DELETED --- --- mono-find-requires DELETED --- --- rpm-4.4.1-fileconflicts.patch DELETED --- --- rpm-4.4.1-hkp-disable.patch DELETED --- --- rpm-4.4.1-noconfigdep.patch DELETED --- --- rpm-4.4.1-nonmerged.patch DELETED --- --- rpm-4.4.1-ordererase.patch DELETED --- --- rpm-4.4.1-prepostun.patch DELETED --- --- rpm-4.4.2-contextverify.patch DELETED --- --- rpm-4.4.2-cronpath.patch DELETED --- --- rpm-4.4.2-db3-param.patch DELETED --- --- rpm-4.4.2-debugedit-ppc-reloc.patch DELETED --- --- rpm-4.4.2-debugpaths.patch DELETED --- --- rpm-4.4.2-doxy.patch DELETED --- --- rpm-4.4.2-exclude.patch DELETED --- --- rpm-4.4.2-excluded-size.patch DELETED --- --- rpm-4.4.2-file-softmagic.patch DELETED --- --- rpm-4.4.2-gnuhash.patch DELETED --- --- rpm-4.4.2-ia32e-install.patch DELETED --- --- rpm-4.4.2-mono.patch DELETED --- --- rpm-4.4.2-multi-digest.patch DELETED --- --- rpm-4.4.2-netsharedpath.patch DELETED --- --- rpm-4.4.2-no-large-mmap.patch DELETED --- --- rpm-4.4.2-no-ppc-asm.patch DELETED --- --- rpm-4.4.2-noselinux-verify.patch DELETED --- --- rpm-4.4.2-perlmainprov.patch DELETED --- --- rpm-4.4.2-perlreq.patch DELETED --- --- rpm-4.4.2-popt-charset.patch DELETED --- --- rpm-4.4.2-python-aslist.patch DELETED --- --- rpm-4.4.2-rpmio-ipv6.patch DELETED --- --- rpm-4.4.2-rpmsq-deadlock.patch DELETED --- --- rpm-4.4.2-teCount-assert.patch DELETED --- --- rpm-4.4.2-userlock.patch DELETED --- --- rpm-4.4.2-vercmp.patch DELETED --- From fedora-cvs-commits at redhat.com Mon Aug 13 08:51:38 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Mon, 13 Aug 2007 04:51:38 -0400 Subject: rpms/rpm/FC-6 rpm-4.4.2.1-checksignals.patch, 1.1, 1.2 rpm.spec, 1.216, 1.217 Message-ID: <200708130851.l7D8pcnN026750@cvs.devel.redhat.com> Author: pmatilai Update of /cvs/dist/rpms/rpm/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv26733 Modified Files: rpm-4.4.2.1-checksignals.patch rpm.spec Log Message: - fixup for python 2.4 rpm-4.4.2.1-checksignals.patch: rpmmodule.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 50 insertions(+) Index: rpm-4.4.2.1-checksignals.patch =================================================================== RCS file: /cvs/dist/rpms/rpm/FC-6/rpm-4.4.2.1-checksignals.patch,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- rpm-4.4.2.1-checksignals.patch 13 Aug 2007 07:55:37 -0000 1.1 +++ rpm-4.4.2.1-checksignals.patch 13 Aug 2007 08:51:35 -0000 1.2 @@ -29,7 +29,7 @@ +static PyObject * signalsCaught(PyObject * self, PyObject * check) +{ + PyObject *caught, *o; -+ Py_ssize_t llen; ++ int llen; + int signum, i; + sigset_t newMask, oldMask; + Index: rpm.spec =================================================================== RCS file: /cvs/dist/rpms/rpm/FC-6/rpm.spec,v retrieving revision 1.216 retrieving revision 1.217 diff -u -r1.216 -r1.217 --- rpm.spec 13 Aug 2007 07:55:37 -0000 1.216 +++ rpm.spec 13 Aug 2007 08:51:35 -0000 1.217 @@ -1,4 +1,4 @@ -%define with_python_version 2.5%{nil} +%define with_python_version 2.4%{nil} %define with_apidocs 1%{nil} %define __prefix %{?_prefix}%{!?_prefix:/usr} From fedora-cvs-commits at redhat.com Mon Aug 13 11:01:42 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Mon, 13 Aug 2007 07:01:42 -0400 Subject: rpms/dovecot/FC-6 dovecot.spec,1.70,1.71 Message-ID: <200708131101.l7DB1gMg028835@cvs.devel.redhat.com> Author: tjanouse Update of /cvs/dist/rpms/dovecot/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv28821 Modified Files: dovecot.spec Log Message: Typo. Index: dovecot.spec =================================================================== RCS file: /cvs/dist/rpms/dovecot/FC-6/dovecot.spec,v retrieving revision 1.70 retrieving revision 1.71 diff -u -r1.70 -r1.71 --- dovecot.spec 7 Aug 2007 09:25:56 -0000 1.70 +++ dovecot.spec 13 Aug 2007 11:01:39 -0000 1.71 @@ -86,13 +86,13 @@ %if %{build_sieve} %package sieve Requires: %{name} = %{version}-%{release} -Summary: CMU Cieve plugin for dovecot LDA +Summary: CMU Sieve plugin for dovecot LDA Group: System Environment/Daemons Version: %{pkg_sieve_version} Release: %{pkg_sieve_release} %description sieve -This package provides the CMU Cieve plugin for dovecot LDA. +This package provides the CMU Sieve plugin for dovecot LDA. %endif %define version %{pkg_version} From fedora-cvs-commits at redhat.com Mon Aug 13 15:49:33 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Mon, 13 Aug 2007 11:49:33 -0400 Subject: rpms/dhcp/FC-6 dhcp-3.0.5-xen-checksum.patch, NONE, 1.1 dhcp.spec, 1.122, 1.123 Message-ID: <200708131549.l7DFnXkZ003432@cvs.devel.redhat.com> Author: dcantrel Update of /cvs/dist/rpms/dhcp/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv3415 Modified Files: dhcp.spec Added Files: dhcp-3.0.5-xen-checksum.patch Log Message: * Fri Jun 08 2007 David Cantrell - 12:3.0.5-5 - Skip checksum check on local packets so dhcpd runs correctly in Xen guests (#221964, #219681) - Update license tag to ISC dhcp-3.0.5-xen-checksum.patch: common/bpf.c | 3 +- common/dlpi.c | 2 - common/lpf.c | 79 ++++++++++++++++++++++++++++++++++++++++++------------ common/nit.c | 2 - common/packet.c | 5 ++- common/upf.c | 2 - dhcpd.conf.sample |only includes/dhcpd.h | 2 - 8 files changed, 71 insertions(+), 24 deletions(-) --- NEW FILE dhcp-3.0.5-xen-checksum.patch --- diff -ur dhcp-3.0.5.orig/common/bpf.c dhcp-3.0.5/common/bpf.c --- dhcp-3.0.5.orig/common/bpf.c 2004-11-25 04:39:15.000000000 +1100 +++ dhcp-3.0.5/common/bpf.c 2007-01-10 15:39:38.000000000 +1100 @@ -478,7 +478,8 @@ interface -> rbuf, interface -> rbuf_offset, from, - hdr.bh_caplen); + hdr.bh_caplen, + 0); /* If the IP or UDP checksum was bad, skip the packet... */ if (offset < 0) { diff -ur dhcp-3.0.5.orig/common/dlpi.c dhcp-3.0.5/common/dlpi.c --- dhcp-3.0.5.orig/common/dlpi.c 2004-11-25 04:39:15.000000000 +1100 +++ dhcp-3.0.5/common/dlpi.c 2007-01-10 15:40:57.000000000 +1100 @@ -679,7 +679,7 @@ length -= offset; #endif offset = decode_udp_ip_header (interface, dbuf, bufix, - from, length); + from, length, 0); /* If the IP or UDP checksum was bad, skip the packet... */ if (offset < 0) { diff -ur dhcp-3.0.5.orig/common/lpf.c dhcp-3.0.5/common/lpf.c --- dhcp-3.0.5.orig/common/lpf.c 2007-01-10 15:49:04.000000000 +1100 +++ dhcp-3.0.5/common/lpf.c 2007-01-25 08:54:25.000000000 +1100 @@ -34,16 +34,31 @@ #include "dhcpd.h" #if defined (USE_LPF_SEND) || defined (USE_LPF_RECEIVE) #include +#include #include #include #include #include +#include #include #include "includes/netinet/ip.h" #include "includes/netinet/udp.h" #include "includes/netinet/if_ether.h" +#ifndef PACKET_AUXDATA +#define PACKET_AUXDATA 8 + +struct tpacket_auxdata +{ + __u32 tp_status; + __u32 tp_len; + __u32 tp_snaplen; + __u16 tp_mac; + __u16 tp_net; +}; +#endif + /* Reinitializes the specified interface after an address change. This is not required for packet-filter APIs. */ @@ -69,10 +84,14 @@ struct interface_info *info; { int sock; - struct sockaddr sa; + union { + struct sockaddr_ll ll; + struct sockaddr common; + } sa; + struct ifreq ifr; /* Make an LPF socket. */ - if ((sock = socket(PF_PACKET, SOCK_PACKET, + if ((sock = socket(PF_PACKET, SOCK_RAW, htons((short)ETH_P_ALL))) < 0) { if (errno == ENOPROTOOPT || errno == EPROTONOSUPPORT || errno == ESOCKTNOSUPPORT || errno == EPFNOSUPPORT || @@ -87,11 +106,16 @@ log_fatal ("Open a socket for LPF: %m"); } + memset (&ifr, 0, sizeof ifr); + strncpy (ifr.ifr_name, (const char *)info -> ifp, sizeof ifr.ifr_name); + if (ioctl (sock, SIOCGIFINDEX, &ifr)) + log_fatal ("Failed to get interface index: %m"); + /* Bind to the interface name */ memset (&sa, 0, sizeof sa); - sa.sa_family = AF_PACKET; - strncpy (sa.sa_data, (const char *)info -> ifp, sizeof sa.sa_data); - if (bind (sock, &sa, sizeof sa)) { + sa.ll.sll_family = AF_PACKET; + sa.ll.sll_ifindex = ifr.ifr_ifindex; + if (bind (sock, &sa.common, sizeof sa)) { if (errno == ENOPROTOOPT || errno == EPROTONOSUPPORT || errno == ESOCKTNOSUPPORT || errno == EPFNOSUPPORT || errno == EAFNOSUPPORT || errno == EINVAL) { @@ -171,9 +195,18 @@ void if_register_receive (info) struct interface_info *info; { + int val; + /* Open a LPF device and hang it on this interface... */ info -> rfdesc = if_register_lpf (info); + val = 1; + if (setsockopt (info -> rfdesc, SOL_PACKET, PACKET_AUXDATA, &val, + sizeof val) < 0) { + if (errno != ENOPROTOOPT) + log_fatal ("Failed to set auxiliary packet data: %m"); + } + #if defined (HAVE_TR_SUPPORT) if (info -> hw_address.hbuf [0] == HTYPE_IEEE802) lpf_tr_filter_setup (info); @@ -292,7 +325,6 @@ double hh [16]; double ih [1536 / sizeof (double)]; unsigned char *buf = (unsigned char *)ih; - struct sockaddr sa; int result; int fudge; @@ -310,15 +342,7 @@ (unsigned char *)raw, len); memcpy (buf + ibufp, raw, len); - /* For some reason, SOCK_PACKET sockets can't be connected, - so we have to do a sentdo every time. */ - memset (&sa, 0, sizeof sa); - sa.sa_family = AF_PACKET; - strncpy (sa.sa_data, - (const char *)interface -> ifp, sizeof sa.sa_data); - - result = sendto (interface -> wfdesc, - buf + fudge, ibufp + len - fudge, 0, &sa, sizeof sa); + result = write (interface -> wfdesc, buf + fudge, ibufp + len - fudge); if (result < 0) log_error ("send_packet: %m"); return result; @@ -335,13 +359,34 @@ { int length = 0; int offset = 0; + int nocsum = 0; unsigned char ibuf [1536]; unsigned bufix = 0; + unsigned char cmsgbuf[CMSG_LEN(sizeof(struct tpacket_auxdata))]; + struct iovec iov = { + .iov_base = ibuf, + .iov_len = sizeof ibuf, + }; + struct msghdr msg = { + .msg_iov = &iov, + .msg_iovlen = 1, + .msg_control = cmsgbuf, + .msg_controllen = sizeof(cmsgbuf), + }; + struct cmsghdr *cmsg; - length = read (interface -> rfdesc, ibuf, sizeof ibuf); + length = recvmsg (interface -> rfdesc, &msg, 0); if (length <= 0) return length; + for (cmsg = CMSG_FIRSTHDR(&msg); cmsg; cmsg = CMSG_NXTHDR(&msg, cmsg)) { + if (cmsg->cmsg_level == SOL_PACKET && + cmsg->cmsg_type == PACKET_AUXDATA) { + struct tpacket_auxdata *aux = (void *)CMSG_DATA(cmsg); + nocsum = aux->tp_status & TP_STATUS_CSUMNOTREADY; + } + } + bufix = 0; /* Decode the physical header... */ offset = decode_hw_header (interface, ibuf, bufix, hfrom); @@ -358,7 +403,7 @@ /* Decode the IP and UDP headers... */ offset = decode_udp_ip_header (interface, ibuf, bufix, from, - (unsigned)length); + (unsigned)length, nocsum); /* If the IP or UDP checksum was bad, skip the packet... */ if (offset < 0) diff -ur dhcp-3.0.5.orig/common/nit.c dhcp-3.0.5/common/nit.c --- dhcp-3.0.5.orig/common/nit.c 2004-11-25 04:39:15.000000000 +1100 +++ dhcp-3.0.5/common/nit.c 2007-01-10 15:39:47.000000000 +1100 @@ -370,7 +370,7 @@ /* Decode the IP and UDP headers... */ offset = decode_udp_ip_header (interface, ibuf, bufix, - from, length); + from, length, 0); /* If the IP or UDP checksum was bad, skip the packet... */ if (offset < 0) diff -ur dhcp-3.0.5.orig/common/packet.c dhcp-3.0.5/common/packet.c --- dhcp-3.0.5.orig/common/packet.c 2007-01-10 15:49:04.000000000 +1100 +++ dhcp-3.0.5/common/packet.c 2007-01-10 15:40:47.000000000 +1100 @@ -211,12 +211,13 @@ /* UDP header and IP header decoded together for convenience. */ -ssize_t decode_udp_ip_header (interface, buf, bufix, from, buflen) +ssize_t decode_udp_ip_header (interface, buf, bufix, from, buflen, nocsum) struct interface_info *interface; unsigned char *buf; unsigned bufix; struct sockaddr_in *from; unsigned buflen; + int nocsum; { unsigned char *data; struct ip ip; @@ -319,7 +320,7 @@ (u_int32_t)ulen)))); udp_packets_seen++; - if (usum && usum != sum) { + if (!nocsum && usum && usum != sum) { udp_packets_bad_checksum++; if (udp_packets_seen > 4 && (udp_packets_seen / udp_packets_bad_checksum) < 2) { diff -ur dhcp-3.0.5.orig/common/upf.c dhcp-3.0.5/common/upf.c --- dhcp-3.0.5.orig/common/upf.c 2004-11-25 04:39:16.000000000 +1100 +++ dhcp-3.0.5/common/upf.c 2007-01-10 15:39:59.000000000 +1100 @@ -321,7 +321,7 @@ /* Decode the IP and UDP headers... */ offset = decode_udp_ip_header (interface, ibuf, bufix, - from, length); + from, length, 0); /* If the IP or UDP checksum was bad, skip the packet... */ if (offset < 0) Only in dhcp-3.0.5: dhcpd.conf.sample diff -ur dhcp-3.0.5.orig/includes/dhcpd.h dhcp-3.0.5/includes/dhcpd.h --- dhcp-3.0.5.orig/includes/dhcpd.h 2007-01-10 15:49:04.000000000 +1100 +++ dhcp-3.0.5/includes/dhcpd.h 2007-01-10 15:41:08.000000000 +1100 @@ -1948,7 +1948,7 @@ unsigned, struct hardware *)); ssize_t decode_udp_ip_header PROTO ((struct interface_info *, unsigned char *, unsigned, struct sockaddr_in *, - unsigned)); + unsigned, int)); /* ethernet.c */ void assemble_ethernet_header PROTO ((struct interface_info *, unsigned char *, Index: dhcp.spec =================================================================== RCS file: /cvs/dist/rpms/dhcp/FC-6/dhcp.spec,v retrieving revision 1.122 retrieving revision 1.123 diff -u -r1.122 -r1.123 --- dhcp.spec 2 Aug 2007 19:11:39 -0000 1.122 +++ dhcp.spec 13 Aug 2007 15:49:30 -0000 1.123 @@ -8,7 +8,7 @@ Summary: DHCP (Dynamic Host Configuration Protocol) server and relay agent. Name: dhcp Version: 3.0.5 -Release: 4%{?dist} +Release: 5%{?dist} Epoch: 12 License: ISC Group: System Environment/Daemons @@ -20,20 +20,21 @@ Source4: dhcpd.conf Source5: libdhcp4client.pc -Patch0: dhcp-3.0.5-extended-new-option-info.patch -Patch1: dhcp-3.0.5-Makefile.patch -Patch2: dhcp-3.0.5-version.patch -Patch3: dhcp-3.0.5-client.patch -Patch4: dhcp-3.0.5-common.patch -Patch5: dhcp-3.0.5-dhcpctl.patch -Patch6: dhcp-3.0.5-dst.patch -Patch7: dhcp-3.0.5-includes.patch -Patch8: dhcp-3.0.5-omapip.patch -Patch9: dhcp-3.0.5-minires.patch -Patch10: dhcp-3.0.5-server.patch -Patch11: dhcp-3.0.5-libdhcp4client.patch -Patch12: dhcp-3.0.5-timeouts.patch -Patch13: dhcp-3.0.5-fix-warnings.patch +Patch0: %{name}-3.0.5-extended-new-option-info.patch +Patch1: %{name}-3.0.5-Makefile.patch +Patch2: %{name}-3.0.5-version.patch +Patch3: %{name}-3.0.5-client.patch +Patch4: %{name}-3.0.5-common.patch +Patch5: %{name}-3.0.5-dhcpctl.patch +Patch6: %{name}-3.0.5-dst.patch +Patch7: %{name}-3.0.5-includes.patch +Patch8: %{name}-3.0.5-omapip.patch +Patch9: %{name}-3.0.5-minires.patch +Patch10: %{name}-3.0.5-server.patch +Patch11: %{name}-3.0.5-libdhcp4client.patch +Patch12: %{name}-3.0.5-timeouts.patch +Patch13: %{name}-3.0.5-fix-warnings.patch +Patch14: %{name}-3.0.5-xen-checksum.patch BuildRoot: %{_tmppath}/%{name}-%{version}-root Requires(post): chkconfig, coreutils @@ -142,6 +143,9 @@ # Fix up anything that fails -Wall -Werror %patch13 -p1 -b .warnings +# Fix Xen host networking problems (partial checksums) +%patch14 -p1 -b .xen + # Rename Registry.pm to Registry.perlmodule so find-requires doesn't pick it # up as a script that we need to add dependencies for (preserve permissions) cp -p contrib/ms2isc/Registry.pm contrib/ms2isc/Registry.perlmodule @@ -346,6 +350,11 @@ %{_libdir}/libdhcp4client.so %changelog +* Fri Jun 08 2007 David Cantrell - 12:3.0.5-5 +- Skip checksum check on local packets so dhcpd runs correctly in Xen + guests (#221964, #219681) +- Update license tag to ISC + * Sun Apr 01 2007 David Cantrell - 12:3.0.5-4 - Make sure rpm doesn't pick up dependencies for contrib/ms2isc/Registry.pm in the /usr/share/doc/dhcp-3.0.5 directory (#234688) From fedora-cvs-commits at redhat.com Tue Aug 14 17:52:52 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Tue, 14 Aug 2007 13:52:52 -0400 Subject: rpms/kernel/FC-6/configs config-generic,1.273,1.274 Message-ID: <200708141752.l7EHqqfU019347@cvs.devel.redhat.com> Author: cebbert Update of /cvs/dist/rpms/kernel/FC-6/configs In directory cvs.devel.redhat.com:/tmp/cvs-serv19317/configs Modified Files: config-generic Log Message: * Tue Aug 14 2007 Chuck Ebbert - set CONFIG_NET_RADIO (#251094) Index: config-generic =================================================================== RCS file: /cvs/dist/rpms/kernel/FC-6/configs/config-generic,v retrieving revision 1.273 retrieving revision 1.274 diff -u -r1.273 -r1.274 --- config-generic 9 Aug 2007 21:01:36 -0000 1.273 +++ config-generic 14 Aug 2007 17:52:50 -0000 1.274 @@ -3073,7 +3073,7 @@ # CONFIG_WDT is not set # CONFIG_VIDEO_PMS is not set -# CONFIG_RADIO_ADAPTERS is not set +CONFIG_RADIO_ADAPTERS=y # CONFIG_RADIO_CADET is not set # CONFIG_RADIO_RTRACK is not set # CONFIG_RADIO_RTRACK2 is not set From fedora-cvs-commits at redhat.com Tue Aug 14 17:52:52 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Tue, 14 Aug 2007 13:52:52 -0400 Subject: rpms/kernel/FC-6 kernel-2.6.spec,1.3007,1.3008 Message-ID: <200708141752.l7EHqqVF019340@cvs.devel.redhat.com> Author: cebbert Update of /cvs/dist/rpms/kernel/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv19317 Modified Files: kernel-2.6.spec Log Message: * Tue Aug 14 2007 Chuck Ebbert - set CONFIG_NET_RADIO (#251094) Index: kernel-2.6.spec =================================================================== RCS file: /cvs/dist/rpms/kernel/FC-6/kernel-2.6.spec,v retrieving revision 1.3007 retrieving revision 1.3008 diff -u -r1.3007 -r1.3008 --- kernel-2.6.spec 10 Aug 2007 16:41:05 -0000 1.3007 +++ kernel-2.6.spec 14 Aug 2007 17:52:49 -0000 1.3008 @@ -2217,6 +2217,9 @@ %endif %changelog +* Tue Aug 14 2007 Chuck Ebbert +- set CONFIG_NET_RADIO (#251094) + * Fri Aug 10 2007 Chuck Ebbert - 2.6.22.2 - don't use incremental patches for -stable From fedora-cvs-commits at redhat.com Tue Aug 14 21:05:30 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Tue, 14 Aug 2007 17:05:30 -0400 Subject: rpms/kernel/FC-6 linux-2.6-input-ff-create-limit-memory.patch, NONE, 1.1 kernel-2.6.spec, 1.3008, 1.3009 linux-2.6-sched-cfs.patch, 1.11, 1.12 linux-2.6-slub-dont-bug-on-too-large-allocation.patch, 1.1, NONE Message-ID: <200708142105.l7EL5UBI025897@cvs.devel.redhat.com> Author: cebbert Update of /cvs/dist/rpms/kernel/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv25868 Modified Files: kernel-2.6.spec linux-2.6-sched-cfs.patch Added Files: linux-2.6-input-ff-create-limit-memory.patch Removed Files: linux-2.6-slub-dont-bug-on-too-large-allocation.patch Log Message: * Tue Aug 14 2007 Chuck Ebbert - update CFS scheduler - revert "don't BUG on too-large memory allocation" - limit memory allocated by input force feedback drivers linux-2.6-input-ff-create-limit-memory.patch: ff-core.c | 8 ++++++-- 1 files changed, 6 insertions(+), 2 deletions(-) --- NEW FILE linux-2.6-input-ff-create-limit-memory.patch --- Don't let ff drivers allocate >1MB of kernel memory. --- drivers/input/ff-core.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) --- linux-2.6.22.noarch.orig/drivers/input/ff-core.c +++ linux-2.6.22.noarch/drivers/input/ff-core.c @@ -306,6 +306,7 @@ int input_ff_create(struct input_dev *de { struct ff_device *ff; int i; + int needed_mem; if (!max_effects) { printk(KERN_ERR @@ -313,8 +314,11 @@ int input_ff_create(struct input_dev *de return -EINVAL; } - ff = kzalloc(sizeof(struct ff_device) + - max_effects * sizeof(struct file *), GFP_KERNEL); + needed_mem = sizeof(struct ff_device) + max_effects * sizeof(struct file *); + if (needed_mem > 1024 * 1024) + return -ENOMEM; + + ff = kzalloc(needed_mem, GFP_KERNEL); if (!ff) return -ENOMEM; Index: kernel-2.6.spec =================================================================== RCS file: /cvs/dist/rpms/kernel/FC-6/kernel-2.6.spec,v retrieving revision 1.3008 retrieving revision 1.3009 diff -u -r1.3008 -r1.3009 --- kernel-2.6.spec 14 Aug 2007 17:52:49 -0000 1.3008 +++ kernel-2.6.spec 14 Aug 2007 21:05:27 -0000 1.3009 @@ -570,7 +570,7 @@ Patch590: linux-2.6-unexport-symbols.patch Patch600: linux-2.6-vm-silence-atomic-alloc-failures.patch -Patch601: linux-2.6-slub-dont-bug-on-too-large-allocation.patch +Patch601: linux-2.6-input-ff-create-limit-memory.patch Patch610: linux-2.6-defaults-fat-utf8.patch Patch620: linux-2.6-defaults-unicode-vt.patch @@ -1216,8 +1216,8 @@ # # Silence GFP_ATOMIC failures. ApplyPatch linux-2.6-vm-silence-atomic-alloc-failures.patch -# don't crash the machine when a too-large memory request arrives -ApplyPatch linux-2.6-slub-dont-bug-on-too-large-allocation.patch +# don't let input FF drivers allocate too much memory +ApplyPatch linux-2.6-input-ff-create-limit-memory.patch # Changes to upstream defaults. # Use UTF-8 by default on VFAT. @@ -2218,6 +2218,11 @@ %changelog * Tue Aug 14 2007 Chuck Ebbert +- update CFS scheduler +- revert "don't BUG on too-large memory allocation" +- limit memory allocated by input force feedback drivers + +* Tue Aug 14 2007 Chuck Ebbert - set CONFIG_NET_RADIO (#251094) * Fri Aug 10 2007 Chuck Ebbert linux-2.6-sched-cfs.patch: b/drivers/rtc/class.c | 5 b/drivers/s390/net/ctcmain.c | 6 b/drivers/s390/net/netiucv.c | 4 b/include/linux/time.h | 2 b/kernel/acct.c | 2 b/kernel/hrtimer.c | 2 b/kernel/sched.c | 26 b/kernel/sched_fair.c | 16 b/kernel/time.c | 16 b/kernel/time/timekeeping.c | 16 b/kernel/tsacct.c | 2 b/net/rxrpc/af_rxrpc.c | 2 b/net/rxrpc/ar-connection.c | 4 b/net/rxrpc/ar-transport.c | 4 b/net/rxrpc/rxkad.c | 2 include/linux/time.h | 6 kernel/hrtimer.c | 4 kernel/sched.c | 31 kernel/sched_fair.c | 12 kernel/time/timekeeping.c | 25 linux/Documentation/kernel-parameters.txt | 43 linux/Documentation/sched-design-CFS.txt | 119 + linux/arch/i386/kernel/smpboot.c | 12 linux/arch/i386/kernel/tsc.c | 9 linux/arch/ia64/kernel/setup.c | 6 linux/arch/mips/kernel/smp.c | 11 linux/arch/sparc/kernel/smp.c | 10 linux/arch/sparc64/kernel/smp.c | 27 linux/block/cfq-iosched.c | 3 linux/fs/proc/array.c | 59 linux/fs/proc/base.c | 71 linux/include/asm-generic/bitops/sched.h | 21 linux/include/linux/hardirq.h | 13 linux/include/linux/sched.h | 258 +- linux/include/linux/topology.h | 14 linux/init/main.c | 5 linux/kernel/delayacct.c | 10 linux/kernel/exit.c | 5 linux/kernel/fork.c | 5 linux/kernel/posix-cpu-timers.c | 34 linux/kernel/sched.c | 2981 +++++++++++------------------- linux/kernel/sched_debug.c | 276 ++ linux/kernel/sched_fair.c | 1108 +++++++++++ linux/kernel/sched_idletask.c | 71 linux/kernel/sched_rt.c | 255 ++ linux/kernel/sched_stats.h | 235 ++ linux/kernel/softirq.c | 1 linux/kernel/sysctl.c | 76 48 files changed, 3739 insertions(+), 2186 deletions(-) Index: linux-2.6-sched-cfs.patch =================================================================== RCS file: /cvs/dist/rpms/kernel/FC-6/linux-2.6-sched-cfs.patch,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- linux-2.6-sched-cfs.patch 10 Aug 2007 16:41:06 -0000 1.11 +++ linux-2.6-sched-cfs.patch 14 Aug 2007 21:05:28 -0000 1.12 @@ -51,6 +51,18 @@ [mingo/f1a438d813d416fa9f4be4e6dbd10b54c5938d89][merged inline] sched: reorder update_cpu_load(rq) with the ->task_tick() call +[018a2212950457b1093e504cd834aa0fe749da6c][merged inline] +remove unused load_balance_class + +[018a2212950457b1093e504cd834aa0fe749da6c] +improve rq-clock overflow logic + +[de0cf899bbf06b6f64a5dce9c59d74c41b6b4232] +sched: run_rebalance_domains: s/SCHED_IDLE/CPU_IDLE/ + +[5d2b3d3695a841231b65b5536a70dc29961c5611] +sched: fix sleeper bonus + Index: linux/Documentation/kernel-parameters.txt =================================================================== @@ -1698,7 +1710,7 @@ /* * This is part of a global counter where only the total sum -@@ -260,14 +210,18 @@ struct rq { +@@ -260,14 +210,16 @@ struct rq { */ unsigned long nr_uninterruptible; @@ -1717,8 +1729,6 @@ + unsigned int clock_warps, clock_overflows; + unsigned int clock_unstable_events; + -+ struct sched_class *load_balance_class; -+ atomic_t nr_iowait; #ifdef CONFIG_SMP @@ -8333,3 +8343,159 @@ } static inline void +Gitweb: http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=529c77261bccd9d37f110f58b0753d95beaa9fa2 +Commit: 529c77261bccd9d37f110f58b0753d95beaa9fa2 +Parent: ac07860264bd2b18834d3fa3be47032115524cea +Author: Ingo Molnar +AuthorDate: Fri Aug 10 23:05:11 2007 +0200 +Committer: Ingo Molnar +CommitDate: Fri Aug 10 23:05:11 2007 +0200 + + sched: improve rq-clock overflow logic + + improve the rq-clock overflow logic: limit the absolute rq->clock + delta since the last scheduler tick, instead of limiting the delta + itself. + + tested by Arjan van de Ven - whole laptop was misbehaving due to + an incorrectly calibrated cpu_khz confusing sched_clock(). + + Signed-off-by: Ingo Molnar + Signed-off-by: Arjan van de Ven +--- + kernel/sched.c | 15 +++++++++++++-- + 1 files changed, 13 insertions(+), 2 deletions(-) + +diff --git a/kernel/sched.c b/kernel/sched.c +index b0afd8d..6247e4a 100644 +--- a/kernel/sched.c ++++ b/kernel/sched.c +@@ -263,6 +263,7 @@ struct rq { + + unsigned int clock_warps, clock_overflows; + unsigned int clock_unstable_events; ++ u64 tick_timestamp; + + atomic_t nr_iowait; + +@@ -341,8 +342,11 @@ static void __update_rq_clock(struct rq *rq) + /* + * Catch too large forward jumps too: + */ +- if (unlikely(delta > 2*TICK_NSEC)) { +- clock++; ++ if (unlikely(clock + delta > rq->tick_timestamp + TICK_NSEC)) { ++ if (clock < rq->tick_timestamp + TICK_NSEC) ++ clock = rq->tick_timestamp + TICK_NSEC; ++ else ++ clock++; + rq->clock_overflows++; + } else { + if (unlikely(delta > rq->clock_max_delta)) +@@ -3308,8 +3312,15 @@ void scheduler_tick(void) + int cpu = smp_processor_id(); + struct rq *rq = cpu_rq(cpu); + struct task_struct *curr = rq->curr; ++ u64 next_tick = rq->tick_timestamp + TICK_NSEC; + + spin_lock(&rq->lock); ++ /* ++ * Let rq->clock advance by at least TICK_NSEC: ++ */ ++ if (unlikely(rq->clock < next_tick)) ++ rq->clock = next_tick; ++ rq->tick_timestamp = rq->clock; + update_cpu_load(rq); + if (curr != rq->idle) /* FIXME: needed? */ + curr->sched_class->task_tick(rq, curr); +Gitweb: http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=de0cf899bbf06b6f64a5dce9c59d74c41b6b4232 +Commit: de0cf899bbf06b6f64a5dce9c59d74c41b6b4232 +Parent: 5d2b3d3695a841231b65b5536a70dc29961c5611 +Author: Oleg Nesterov +AuthorDate: Sun Aug 12 18:08:19 2007 +0200 +Committer: Ingo Molnar +CommitDate: Sun Aug 12 18:08:19 2007 +0200 + + sched: run_rebalance_domains: s/SCHED_IDLE/CPU_IDLE/ + + rebalance_domains(SCHED_IDLE) looks strange (typo), change it to CPU_IDLE. + + the effect of this bug was slightly more agressive idle-balancing on + SMP than intended. + + Signed-off-by: Oleg Nesterov + Signed-off-by: Ingo Molnar +--- + kernel/sched.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/kernel/sched.c b/kernel/sched.c +index c02659f..45e17b8 100644 +--- a/kernel/sched.c ++++ b/kernel/sched.c +@@ -3106,7 +3106,7 @@ static void run_rebalance_domains(struct softirq_action *h) + if (need_resched()) + break; + +- rebalance_domains(balance_cpu, SCHED_IDLE); ++ rebalance_domains(balance_cpu, CPU_IDLE); + + rq = cpu_rq(balance_cpu); + if (time_after(this_rq->next_balance, rq->next_balance)) +Gitweb: http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=5d2b3d3695a841231b65b5536a70dc29961c5611 +Commit: 5d2b3d3695a841231b65b5536a70dc29961c5611 +Parent: 6707de00fdec3e3225192fe3dcd21323a8936b1f +Author: Ingo Molnar +AuthorDate: Sun Aug 12 18:08:19 2007 +0200 +Committer: Ingo Molnar +CommitDate: Sun Aug 12 18:08:19 2007 +0200 + + sched: fix sleeper bonus + + Peter Ziljstra noticed that the sleeper bonus deduction code + was not properly rate-limited: a task that scheduled more + frequently would get a disproportionately large deduction. + So limit the deduction to delta_exec. + + Signed-off-by: Ingo Molnar +--- + kernel/sched_fair.c | 12 ++++++------ + 1 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/kernel/sched_fair.c b/kernel/sched_fair.c +index c5af389..fedbb51 100644 +--- a/kernel/sched_fair.c ++++ b/kernel/sched_fair.c +@@ -75,7 +75,7 @@ enum { + + unsigned int sysctl_sched_features __read_mostly = + SCHED_FEAT_FAIR_SLEEPERS *1 | +- SCHED_FEAT_SLEEPER_AVG *1 | ++ SCHED_FEAT_SLEEPER_AVG *0 | + SCHED_FEAT_SLEEPER_LOAD_AVG *1 | + SCHED_FEAT_PRECISE_CPU_LOAD *1 | + SCHED_FEAT_START_DEBIT *1 | +@@ -304,11 +304,9 @@ __update_curr(struct cfs_rq *cfs_rq, struct sched_entity *curr) + delta_mine = calc_delta_mine(delta_exec, curr->load.weight, lw); + + if (cfs_rq->sleeper_bonus > sysctl_sched_stat_granularity) { +- delta = calc_delta_mine(cfs_rq->sleeper_bonus, +- curr->load.weight, lw); +- if (unlikely(delta > cfs_rq->sleeper_bonus)) +- delta = cfs_rq->sleeper_bonus; +- ++ delta = min(cfs_rq->sleeper_bonus, (u64)delta_exec); ++ delta = calc_delta_mine(delta, curr->load.weight, lw); ++ delta = min((u64)delta, cfs_rq->sleeper_bonus); + cfs_rq->sleeper_bonus -= delta; + delta_mine -= delta; + } +@@ -521,6 +519,8 @@ static void __enqueue_sleeper(struct cfs_rq *cfs_rq, struct sched_entity *se) + * Track the amount of bonus we've given to sleepers: + */ + cfs_rq->sleeper_bonus += delta_fair; ++ if (unlikely(cfs_rq->sleeper_bonus > sysctl_sched_runtime_limit)) ++ cfs_rq->sleeper_bonus = sysctl_sched_runtime_limit; + + schedstat_add(cfs_rq, wait_runtime, se->wait_runtime); + } --- linux-2.6-slub-dont-bug-on-too-large-allocation.patch DELETED --- From fedora-cvs-commits at redhat.com Wed Aug 15 15:22:35 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Wed, 15 Aug 2007 11:22:35 -0400 Subject: rpms/kernel/FC-6/configs config-generic,1.274,1.275 Message-ID: <200708151522.l7FFMZ7l014649@cvs.devel.redhat.com> Author: linville Update of /cvs/dist/rpms/kernel/FC-6/configs In directory cvs.devel.redhat.com:/tmp/cvs-serv14614/configs Modified Files: config-generic Log Message: remove b44 bits from git-wireless-dev.patch (broken and unnecessary) Index: config-generic =================================================================== RCS file: /cvs/dist/rpms/kernel/FC-6/configs/config-generic,v retrieving revision 1.274 retrieving revision 1.275 diff -u -r1.274 -r1.275 --- config-generic 14 Aug 2007 17:52:50 -0000 1.274 +++ config-generic 15 Aug 2007 15:22:33 -0000 1.275 @@ -1095,7 +1095,6 @@ CONFIG_ADAPTEC_STARFIRE=m CONFIG_ADAPTEC_STARFIRE_NAPI=y CONFIG_B44=m -CONFIG_B44_PCI=y CONFIG_BNX2=m CONFIG_QLA3XXX=m CONFIG_ATL1=m From fedora-cvs-commits at redhat.com Wed Aug 15 15:22:35 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Wed, 15 Aug 2007 11:22:35 -0400 Subject: rpms/kernel/FC-6 git-wireless-dev.patch, 1.1, 1.2 kernel-2.6.spec, 1.3009, 1.3010 Message-ID: <200708151522.l7FFMZWa014640@cvs.devel.redhat.com> Author: linville Update of /cvs/dist/rpms/kernel/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv14614 Modified Files: git-wireless-dev.patch kernel-2.6.spec Log Message: remove b44 bits from git-wireless-dev.patch (broken and unnecessary) git-wireless-dev.patch: .mailmap | 1 CREDITS | 31 MAINTAINERS | 55 drivers/Kconfig | 2 drivers/Makefile | 1 drivers/misc/Kconfig | 5 drivers/misc/Makefile | 1 drivers/misc/eeprom_93cx6.c | 347 drivers/net/wireless/Kconfig | 2 drivers/net/wireless/Makefile | 3 drivers/net/wireless/bcm43xx/Kconfig | 1 drivers/net/wireless/mac80211/Kconfig | 7 drivers/net/wireless/mac80211/Makefile | 7 drivers/net/wireless/mac80211/README | 2 drivers/net/wireless/mac80211/adm8211/Kconfig | 25 drivers/net/wireless/mac80211/adm8211/Makefile | 1 drivers/net/wireless/mac80211/adm8211/adm8211.c | 2165 ++++ drivers/net/wireless/mac80211/adm8211/adm8211.h | 620 + drivers/net/wireless/mac80211/bcm43xx/Kconfig | 101 drivers/net/wireless/mac80211/bcm43xx/Makefile | 18 drivers/net/wireless/mac80211/bcm43xx/bcm43xx.h | 885 + drivers/net/wireless/mac80211/bcm43xx/bcm43xx_debugfs.c | 433 drivers/net/wireless/mac80211/bcm43xx/bcm43xx_debugfs.h | 110 drivers/net/wireless/mac80211/bcm43xx/bcm43xx_dma.c | 1383 ++ drivers/net/wireless/mac80211/bcm43xx/bcm43xx_dma.h | 361 drivers/net/wireless/mac80211/bcm43xx/bcm43xx_leds.c | 300 drivers/net/wireless/mac80211/bcm43xx/bcm43xx_leds.h | 56 drivers/net/wireless/mac80211/bcm43xx/bcm43xx_lo.c | 1111 ++ drivers/net/wireless/mac80211/bcm43xx/bcm43xx_lo.h | 92 drivers/net/wireless/mac80211/bcm43xx/bcm43xx_main.c | 4022 +++++++ drivers/net/wireless/mac80211/bcm43xx/bcm43xx_main.h | 156 drivers/net/wireless/mac80211/bcm43xx/bcm43xx_pcmcia.c | 163 drivers/net/wireless/mac80211/bcm43xx/bcm43xx_pcmcia.h | 22 drivers/net/wireless/mac80211/bcm43xx/bcm43xx_phy.c | 4322 ++++++++ drivers/net/wireless/mac80211/bcm43xx/bcm43xx_phy.h | 309 drivers/net/wireless/mac80211/bcm43xx/bcm43xx_pio.c | 671 + drivers/net/wireless/mac80211/bcm43xx/bcm43xx_pio.h | 170 drivers/net/wireless/mac80211/bcm43xx/bcm43xx_power.c | 82 drivers/net/wireless/mac80211/bcm43xx/bcm43xx_power.h | 41 drivers/net/wireless/mac80211/bcm43xx/bcm43xx_sysfs.c | 232 drivers/net/wireless/mac80211/bcm43xx/bcm43xx_sysfs.h | 9 drivers/net/wireless/mac80211/bcm43xx/bcm43xx_tables.c | 376 drivers/net/wireless/mac80211/bcm43xx/bcm43xx_tables.h | 28 drivers/net/wireless/mac80211/bcm43xx/bcm43xx_xmit.c | 603 + drivers/net/wireless/mac80211/bcm43xx/bcm43xx_xmit.h | 250 drivers/net/wireless/mac80211/iwlwifi/Kconfig | 96 drivers/net/wireless/mac80211/iwlwifi/Makefile | 29 drivers/net/wireless/mac80211/iwlwifi/base.c | 8375 ++++++++++++++++ drivers/net/wireless/mac80211/iwlwifi/iwl-3945-hw.h | 90 drivers/net/wireless/mac80211/iwlwifi/iwl-3945-rs.c | 969 + drivers/net/wireless/mac80211/iwlwifi/iwl-3945-rs.h | 221 drivers/net/wireless/mac80211/iwlwifi/iwl-3945.c | 2445 ++++ drivers/net/wireless/mac80211/iwlwifi/iwl-3945.h | 52 drivers/net/wireless/mac80211/iwlwifi/iwl-4965-hw.h | 979 + drivers/net/wireless/mac80211/iwlwifi/iwl-4965-rs.c | 2013 +++ drivers/net/wireless/mac80211/iwlwifi/iwl-4965-rs.h | 285 drivers/net/wireless/mac80211/iwlwifi/iwl-4965.c | 4379 ++++++++ drivers/net/wireless/mac80211/iwlwifi/iwl-4965.h | 247 drivers/net/wireless/mac80211/iwlwifi/iwl-channel.h | 161 drivers/net/wireless/mac80211/iwlwifi/iwl-commands.h | 701 + drivers/net/wireless/mac80211/iwlwifi/iwl-debug.h | 140 drivers/net/wireless/mac80211/iwlwifi/iwl-eeprom.h | 335 drivers/net/wireless/mac80211/iwlwifi/iwl-helpers.h | 363 drivers/net/wireless/mac80211/iwlwifi/iwl-hw.h | 1507 ++ drivers/net/wireless/mac80211/iwlwifi/iwl-io.h | 474 drivers/net/wireless/mac80211/iwlwifi/iwl-priv.h | 303 drivers/net/wireless/mac80211/iwlwifi/iwl-spectrum.h | 91 drivers/net/wireless/mac80211/iwlwifi/iwlwifi.h | 658 + drivers/net/wireless/mac80211/p54/Kconfig | 10 drivers/net/wireless/mac80211/p54/Makefile | 4 drivers/net/wireless/mac80211/p54/net2280.h | 452 drivers/net/wireless/mac80211/p54/prism54.h | 79 drivers/net/wireless/mac80211/p54/prism54common.c | 954 + drivers/net/wireless/mac80211/p54/prism54common.h | 329 drivers/net/wireless/mac80211/p54/prism54pci.c | 688 + drivers/net/wireless/mac80211/p54/prism54pci.h | 106 drivers/net/wireless/mac80211/p54/prism54usb.c | 898 + drivers/net/wireless/mac80211/p54/prism54usb.h | 133 drivers/net/wireless/mac80211/rt2x00/Kconfig | 130 drivers/net/wireless/mac80211/rt2x00/Makefile | 22 drivers/net/wireless/mac80211/rt2x00/rt2400pci.c | 1802 +++ drivers/net/wireless/mac80211/rt2x00/rt2400pci.h | 931 + drivers/net/wireless/mac80211/rt2x00/rt2500pci.c | 2029 +++ drivers/net/wireless/mac80211/rt2x00/rt2500pci.h | 1198 ++ drivers/net/wireless/mac80211/rt2x00/rt2500usb.c | 1837 +++ drivers/net/wireless/mac80211/rt2x00/rt2500usb.h | 733 + drivers/net/wireless/mac80211/rt2x00/rt2x00.h | 1085 ++ drivers/net/wireless/mac80211/rt2x00/rt2x00debug.c | 360 drivers/net/wireless/mac80211/rt2x00/rt2x00debug.h | 66 drivers/net/wireless/mac80211/rt2x00/rt2x00dev.c | 764 + drivers/net/wireless/mac80211/rt2x00/rt2x00firmware.c | 130 drivers/net/wireless/mac80211/rt2x00/rt2x00firmware.h | 49 drivers/net/wireless/mac80211/rt2x00/rt2x00lib.h | 119 drivers/net/wireless/mac80211/rt2x00/rt2x00mac.c | 433 drivers/net/wireless/mac80211/rt2x00/rt2x00pci.c | 598 + drivers/net/wireless/mac80211/rt2x00/rt2x00pci.h | 83 drivers/net/wireless/mac80211/rt2x00/rt2x00rfkill.c | 133 drivers/net/wireless/mac80211/rt2x00/rt2x00rfkill.h | 51 drivers/net/wireless/mac80211/rt2x00/rt2x00usb.c | 620 + drivers/net/wireless/mac80211/rt2x00/rt2x00usb.h | 120 drivers/net/wireless/mac80211/rt2x00/rt61pci.c | 2443 ++++ drivers/net/wireless/mac80211/rt2x00/rt61pci.h | 1345 ++ drivers/net/wireless/mac80211/rt2x00/rt73usb.c | 2049 +++ drivers/net/wireless/mac80211/rt2x00/rt73usb.h | 934 + drivers/net/wireless/mac80211/rtl818x/Kconfig | 9 drivers/net/wireless/mac80211/rtl818x/Makefile | 2 drivers/net/wireless/mac80211/rtl818x/rtl8187.h | 131 drivers/net/wireless/mac80211/rtl818x/rtl8187_dev.c | 731 + drivers/net/wireless/mac80211/rtl818x/rtl8187_rtl8225.c | 744 + drivers/net/wireless/mac80211/rtl818x/rtl8187_rtl8225.h | 30 drivers/net/wireless/mac80211/rtl818x/rtl818x.h | 212 drivers/net/wireless/mac80211/zd1211rw/Kconfig | 19 drivers/net/wireless/mac80211/zd1211rw/Makefile | 11 drivers/net/wireless/mac80211/zd1211rw/zd_chip.c | 1684 +++ drivers/net/wireless/mac80211/zd1211rw/zd_chip.h | 913 + drivers/net/wireless/mac80211/zd1211rw/zd_def.h | 57 drivers/net/wireless/mac80211/zd1211rw/zd_ieee80211.h | 67 drivers/net/wireless/mac80211/zd1211rw/zd_mac.c | 942 + drivers/net/wireless/mac80211/zd1211rw/zd_mac.h | 199 drivers/net/wireless/mac80211/zd1211rw/zd_rf.c | 177 drivers/net/wireless/mac80211/zd1211rw/zd_rf.h | 108 drivers/net/wireless/mac80211/zd1211rw/zd_rf_al2230.c | 437 drivers/net/wireless/mac80211/zd1211rw/zd_rf_al7230b.c | 492 drivers/net/wireless/mac80211/zd1211rw/zd_rf_rf2959.c | 279 drivers/net/wireless/mac80211/zd1211rw/zd_rf_uw2453.c | 534 + drivers/net/wireless/mac80211/zd1211rw/zd_usb.c | 1445 ++ drivers/net/wireless/mac80211/zd1211rw/zd_usb.h | 267 drivers/net/wireless/mac80211/zd1211rw/zd_util.c | 82 drivers/net/wireless/mac80211/zd1211rw/zd_util.h | 29 drivers/net/wireless/zd1211rw/Kconfig | 1 drivers/ssb/Kconfig | 93 drivers/ssb/Makefile | 11 drivers/ssb/driver_chipcommon.c | 402 drivers/ssb/driver_mipscore.c | 258 drivers/ssb/driver_pcicore.c | 556 + drivers/ssb/main.c | 1054 ++ drivers/ssb/pci.c | 672 + drivers/ssb/pcihost_wrapper.c | 104 drivers/ssb/pcmcia.c | 256 drivers/ssb/scan.c | 407 drivers/ssb/ssb_private.h | 151 drivers/usb/host/Kconfig | 13 drivers/usb/host/ohci-hcd.c | 21 drivers/usb/host/ohci-ssb.c | 254 include/linux/eeprom_93cx6.h | 77 include/linux/ieee80211.h | 231 include/linux/nl80211.h | 263 include/linux/ssb/ssb.h | 403 include/linux/ssb/ssb_driver_chipcommon.h | 387 include/linux/ssb/ssb_driver_extif.h | 163 include/linux/ssb/ssb_driver_mips.h | 47 include/linux/ssb/ssb_driver_pci.h | 108 include/linux/ssb/ssb_regs.h | 294 include/net/cfg80211.h | 117 include/net/iw_handler.h | 8 include/net/mac80211.h | 25 net/mac80211/Kconfig | 4 net/mac80211/Makefile | 3 net/mac80211/debugfs.c | 61 net/mac80211/debugfs_netdev.c | 345 net/mac80211/debugfs_sta.c | 5 net/mac80211/hostapd_ioctl.h | 236 net/mac80211/ieee80211.c | 157 net/mac80211/ieee80211_cfg.c | 8 net/mac80211/ieee80211_i.h | 112 net/mac80211/ieee80211_iface.c | 17 net/mac80211/ieee80211_ioctl.c | 1620 ++- net/mac80211/ieee80211_sta.c | 951 + net/mac80211/rc80211_lowest.c | 105 net/mac80211/rc80211_simple.c | 12 net/mac80211/regdomain.c | 157 net/mac80211/sta_info.c | 34 net/mac80211/sta_info.h | 15 net/mac80211/wme.c | 48 net/mac80211/wpa.c | 190 net/wireless/Kconfig | 17 net/wireless/Makefile | 1 net/wireless/core.c | 143 net/wireless/core.h | 32 net/wireless/nl80211.c | 994 + net/wireless/nl80211.h | 24 net/wireless/sysfs.c | 50 182 files changed, 89282 insertions(+), 248 deletions(-) Index: git-wireless-dev.patch =================================================================== RCS file: /cvs/dist/rpms/kernel/FC-6/git-wireless-dev.patch,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- git-wireless-dev.patch 10 Jul 2007 01:23:51 -0000 1.1 +++ git-wireless-dev.patch 15 Aug 2007 15:22:32 -0000 1.2 @@ -9618,1493 +9618,6 @@ + The driver supports both read as well as write commands. endmenu ---- linux-2.6.21.noarch/drivers/net/b44.h.orig 2007-04-25 23:08:32.000000000 -0400 -+++ linux-2.6.21.noarch/drivers/net/b44.h 2007-06-25 09:55:35.000000000 -0400 -@@ -129,6 +129,7 @@ - #define RXCONFIG_FLOW 0x00000020 /* Flow Control Enable */ - #define RXCONFIG_FLOW_ACCEPT 0x00000040 /* Accept Unicast Flow Control Frame */ - #define RXCONFIG_RFILT 0x00000080 /* Reject Filter */ -+#define RXCONFIG_CAM_ABSENT 0x00000100 /* CAM Absent */ - #define B44_RXMAXLEN 0x0404UL /* EMAC RX Max Packet Length */ - #define B44_TXMAXLEN 0x0408UL /* EMAC TX Max Packet Length */ - #define B44_MDIO_CTRL 0x0410UL /* EMAC MDIO Control */ -@@ -227,76 +228,6 @@ - #define B44_RX_PAUSE 0x05D4UL /* MIB RX Pause Packets */ - #define B44_RX_NPAUSE 0x05D8UL /* MIB RX Non-Pause Packets */ - --/* Silicon backplane register definitions */ --#define B44_SBIMSTATE 0x0F90UL /* SB Initiator Agent State */ --#define SBIMSTATE_PC 0x0000000f /* Pipe Count */ --#define SBIMSTATE_AP_MASK 0x00000030 /* Arbitration Priority */ --#define SBIMSTATE_AP_BOTH 0x00000000 /* Use both timeslices and token */ --#define SBIMSTATE_AP_TS 0x00000010 /* Use timeslices only */ --#define SBIMSTATE_AP_TK 0x00000020 /* Use token only */ --#define SBIMSTATE_AP_RSV 0x00000030 /* Reserved */ --#define SBIMSTATE_IBE 0x00020000 /* In Band Error */ --#define SBIMSTATE_TO 0x00040000 /* Timeout */ --#define B44_SBINTVEC 0x0F94UL /* SB Interrupt Mask */ --#define SBINTVEC_PCI 0x00000001 /* Enable interrupts for PCI */ --#define SBINTVEC_ENET0 0x00000002 /* Enable interrupts for enet 0 */ --#define SBINTVEC_ILINE20 0x00000004 /* Enable interrupts for iline20 */ --#define SBINTVEC_CODEC 0x00000008 /* Enable interrupts for v90 codec */ --#define SBINTVEC_USB 0x00000010 /* Enable interrupts for usb */ --#define SBINTVEC_EXTIF 0x00000020 /* Enable interrupts for external i/f */ --#define SBINTVEC_ENET1 0x00000040 /* Enable interrupts for enet 1 */ --#define B44_SBTMSLOW 0x0F98UL /* SB Target State Low */ --#define SBTMSLOW_RESET 0x00000001 /* Reset */ --#define SBTMSLOW_REJECT 0x00000002 /* Reject */ --#define SBTMSLOW_CLOCK 0x00010000 /* Clock Enable */ --#define SBTMSLOW_FGC 0x00020000 /* Force Gated Clocks On */ --#define SBTMSLOW_PE 0x40000000 /* Power Management Enable */ --#define SBTMSLOW_BE 0x80000000 /* BIST Enable */ --#define B44_SBTMSHIGH 0x0F9CUL /* SB Target State High */ --#define SBTMSHIGH_SERR 0x00000001 /* S-error */ --#define SBTMSHIGH_INT 0x00000002 /* Interrupt */ --#define SBTMSHIGH_BUSY 0x00000004 /* Busy */ --#define SBTMSHIGH_GCR 0x20000000 /* Gated Clock Request */ --#define SBTMSHIGH_BISTF 0x40000000 /* BIST Failed */ --#define SBTMSHIGH_BISTD 0x80000000 /* BIST Done */ --#define B44_SBIDHIGH 0x0FFCUL /* SB Identification High */ --#define SBIDHIGH_RC_MASK 0x0000000f /* Revision Code */ --#define SBIDHIGH_CC_MASK 0x0000fff0 /* Core Code */ --#define SBIDHIGH_CC_SHIFT 4 --#define SBIDHIGH_VC_MASK 0xffff0000 /* Vendor Code */ --#define SBIDHIGH_VC_SHIFT 16 -- --/* SSB PCI config space registers. */ --#define SSB_PMCSR 0x44 --#define SSB_PE 0x100 --#define SSB_BAR0_WIN 0x80 --#define SSB_BAR1_WIN 0x84 --#define SSB_SPROM_CONTROL 0x88 --#define SSB_BAR1_CONTROL 0x8c -- --/* SSB core and host control registers. */ --#define SSB_CONTROL 0x0000UL --#define SSB_ARBCONTROL 0x0010UL --#define SSB_ISTAT 0x0020UL --#define SSB_IMASK 0x0024UL --#define SSB_MBOX 0x0028UL --#define SSB_BCAST_ADDR 0x0050UL --#define SSB_BCAST_DATA 0x0054UL --#define SSB_PCI_TRANS_0 0x0100UL --#define SSB_PCI_TRANS_1 0x0104UL --#define SSB_PCI_TRANS_2 0x0108UL --#define SSB_SPROM 0x0800UL -- --#define SSB_PCI_MEM 0x00000000 --#define SSB_PCI_IO 0x00000001 --#define SSB_PCI_CFG0 0x00000002 --#define SSB_PCI_CFG1 0x00000003 --#define SSB_PCI_PREF 0x00000004 --#define SSB_PCI_BURST 0x00000008 --#define SSB_PCI_MASK0 0xfc000000 --#define SSB_PCI_MASK1 0xfc000000 --#define SSB_PCI_MASK2 0xc0000000 -- - /* 4400 PHY registers */ - #define B44_MII_AUXCTRL 24 /* Auxiliary Control */ - #define MII_AUXCTRL_DUPLEX 0x0001 /* Full Duplex */ -@@ -346,10 +277,12 @@ struct rx_header { - - struct ring_info { - struct sk_buff *skb; -- DECLARE_PCI_UNMAP_ADDR(mapping); -+ dma_addr_t mapping; - }; - - #define B44_MCAST_TABLE_SIZE 32 -+#define B44_PHY_ADDR_NO_PHY 30 -+#define B44_MDC_RATIO 5000000 - - #define B44_STAT_REG_DECLARE \ - _B44(tx_good_octets) \ -@@ -410,6 +343,8 @@ B44_STAT_REG_DECLARE - #undef _B44 - }; - -+struct ssb_device; -+ - struct b44 { - spinlock_t lock; - -@@ -452,8 +387,7 @@ struct b44 { - struct net_device_stats stats; - struct b44_hw_stats hw_stats; - -- void __iomem *regs; -- struct pci_dev *pdev; -+ struct ssb_device *sdev; - struct net_device *dev; - - dma_addr_t rx_ring_dma, tx_ring_dma; -@@ -461,7 +395,6 @@ struct b44 { - u32 rx_pending; - u32 tx_pending; - u8 phy_addr; -- u8 core_unit; - - struct mii_if_info mii_if; - }; ---- linux-2.6.21.noarch/drivers/net/b44.c.orig 2007-06-25 09:16:43.000000000 -0400 -+++ linux-2.6.21.noarch/drivers/net/b44.c 2007-06-25 09:55:35.000000000 -0400 -@@ -1,8 +1,11 @@ --/* b44.c: Broadcom 4400 device driver. -+/* b44.c: Broadcom 44xx/47xx Fast Ethernet device driver. - * - * Copyright (C) 2002 David S. Miller (davem at redhat.com) -- * Fixed by Pekka Pietikainen (pp at ee.oulu.fi) -+ * Copyright (C) 2004 Pekka Pietikainen (pp at ee.oulu.fi) -+ * Copyright (C) 2004 Florian Schirmer (jolt at tuxbox.org) -+ * Copyright (C) 2006 Felix Fietkau (nbd at openwrt.org) - * Copyright (C) 2006 Broadcom Corporation. -+ * Copyright (C) 2007 Michael Buesch - * - * Distribute under GPL. - */ -@@ -20,17 +23,18 @@ - #include - #include - #include -+#include - - #include - #include - #include - -+ - #include "b44.h" - - #define DRV_MODULE_NAME "b44" - #define PFX DRV_MODULE_NAME ": " --#define DRV_MODULE_VERSION "1.01" --#define DRV_MODULE_RELDATE "Jun 16, 2006" -+#define DRV_MODULE_VERSION "2.0" - - #define B44_DEF_MSG_ENABLE \ - (NETIF_MSG_DRV | \ -@@ -84,10 +88,10 @@ - #define B44_ETHIPV4UDP_HLEN 42 - - static char version[] __devinitdata = -- DRV_MODULE_NAME ".c:v" DRV_MODULE_VERSION " (" DRV_MODULE_RELDATE ")\n"; -+ DRV_MODULE_NAME ".c:v" DRV_MODULE_VERSION "\n"; - --MODULE_AUTHOR("Florian Schirmer, Pekka Pietikainen, David S. Miller"); --MODULE_DESCRIPTION("Broadcom 4400 10/100 PCI ethernet driver"); -+MODULE_AUTHOR("Felix Fietkau, Florian Schirmer, Pekka Pietikainen, David S. Miller"); -+MODULE_DESCRIPTION("Broadcom 44xx/47xx 10/100 PCI ethernet driver"); - MODULE_LICENSE("GPL"); - MODULE_VERSION(DRV_MODULE_VERSION); - -@@ -95,18 +99,28 @@ static int b44_debug = -1; /* -1 == use - module_param(b44_debug, int, 0); - MODULE_PARM_DESC(b44_debug, "B44 bitmapped debugging message enable value"); - --static struct pci_device_id b44_pci_tbl[] = { -- { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_BCM4401, -- PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, -- { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_BCM4401B0, -- PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, -- { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_BCM4401B1, -- PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, -- { } /* terminate list with empty entry */ --}; - -+#ifdef CONFIG_B44_PCI -+static const struct pci_device_id b44_pci_tbl[] = { -+ { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_BCM4401) }, -+ { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_BCM4401B0) }, -+ { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_BCM4401B1) }, -+ { 0 } /* terminate list with empty entry */ -+}; - MODULE_DEVICE_TABLE(pci, b44_pci_tbl); - -+static struct pci_driver b44_pci_driver = { -+ .name = DRV_MODULE_NAME, -+ .id_table = b44_pci_tbl, -+}; -+#endif /* CONFIG_B44_PCI */ -+ -+static const struct ssb_device_id b44_ssb_tbl[] = { -+ SSB_DEVICE(SSB_VENDOR_BROADCOM, SSB_DEV_ETHERNET, SSB_ANY_REV), -+ SSB_DEVTABLE_END -+}; -+MODULE_DEVICE_TABLE(ssb, b44_ssb_tbl); -+ - static void b44_halt(struct b44 *); - static void b44_init_rings(struct b44 *); - -@@ -118,6 +132,7 @@ static void b44_init_hw(struct b44 *, in - - static int dma_desc_align_mask; - static int dma_desc_sync_size; -+static int instance; - - static const char b44_gstrings[][ETH_GSTRING_LEN] = { - #define _B44(x...) # x, -@@ -125,35 +140,35 @@ B44_STAT_REG_DECLARE - #undef _B44 - }; - --static inline void b44_sync_dma_desc_for_device(struct pci_dev *pdev, -- dma_addr_t dma_base, -- unsigned long offset, -- enum dma_data_direction dir) --{ -- dma_sync_single_range_for_device(&pdev->dev, dma_base, -- offset & dma_desc_align_mask, -- dma_desc_sync_size, dir); --} -- --static inline void b44_sync_dma_desc_for_cpu(struct pci_dev *pdev, -- dma_addr_t dma_base, -- unsigned long offset, -- enum dma_data_direction dir) --{ -- dma_sync_single_range_for_cpu(&pdev->dev, dma_base, -- offset & dma_desc_align_mask, -- dma_desc_sync_size, dir); -+static inline void b44_sync_dma_desc_for_device(struct ssb_device *sdev, -+ dma_addr_t dma_base, -+ unsigned long offset, -+ enum dma_data_direction dir) -+{ -+ dma_sync_single_range_for_device(sdev->dev, dma_base, -+ offset & dma_desc_align_mask, -+ dma_desc_sync_size, dir); -+} -+ -+static inline void b44_sync_dma_desc_for_cpu(struct ssb_device *sdev, -+ dma_addr_t dma_base, -+ unsigned long offset, -+ enum dma_data_direction dir) -+{ -+ dma_sync_single_range_for_cpu(sdev->dev, dma_base, -+ offset & dma_desc_align_mask, -+ dma_desc_sync_size, dir); - } - - static inline unsigned long br32(const struct b44 *bp, unsigned long reg) - { -- return readl(bp->regs + reg); -+ return ssb_read32(bp->sdev, reg); - } - - static inline void bw32(const struct b44 *bp, - unsigned long reg, unsigned long val) - { -- writel(val, bp->regs + reg); -+ ssb_write32(bp->sdev, reg, val); - } - - static int b44_wait_bit(struct b44 *bp, unsigned long reg, -@@ -181,117 +196,29 @@ static int b44_wait_bit(struct b44 *bp, - return 0; - } - --/* Sonics SiliconBackplane support routines. ROFL, you should see all the -- * buzz words used on this company's website :-) -- * -- * All of these routines must be invoked with bp->lock held and -- * interrupts disabled. -- */ -- --#define SB_PCI_DMA 0x40000000 /* Client Mode PCI memory access space (1 GB) */ --#define BCM4400_PCI_CORE_ADDR 0x18002000 /* Address of PCI core on BCM4400 cards */ -- --static u32 ssb_get_core_rev(struct b44 *bp) --{ -- return (br32(bp, B44_SBIDHIGH) & SBIDHIGH_RC_MASK); --} -- --static u32 ssb_pci_setup(struct b44 *bp, u32 cores) --{ -- u32 bar_orig, pci_rev, val; -- -- pci_read_config_dword(bp->pdev, SSB_BAR0_WIN, &bar_orig); -- pci_write_config_dword(bp->pdev, SSB_BAR0_WIN, BCM4400_PCI_CORE_ADDR); -- pci_rev = ssb_get_core_rev(bp); -- -- val = br32(bp, B44_SBINTVEC); -- val |= cores; -- bw32(bp, B44_SBINTVEC, val); -- -- val = br32(bp, SSB_PCI_TRANS_2); -- val |= SSB_PCI_PREF | SSB_PCI_BURST; -- bw32(bp, SSB_PCI_TRANS_2, val); -- -- pci_write_config_dword(bp->pdev, SSB_BAR0_WIN, bar_orig); -- -- return pci_rev; --} -- --static void ssb_core_disable(struct b44 *bp) --{ -- if (br32(bp, B44_SBTMSLOW) & SBTMSLOW_RESET) -- return; -- -- bw32(bp, B44_SBTMSLOW, (SBTMSLOW_REJECT | SBTMSLOW_CLOCK)); -- b44_wait_bit(bp, B44_SBTMSLOW, SBTMSLOW_REJECT, 100000, 0); -- b44_wait_bit(bp, B44_SBTMSHIGH, SBTMSHIGH_BUSY, 100000, 1); -- bw32(bp, B44_SBTMSLOW, (SBTMSLOW_FGC | SBTMSLOW_CLOCK | -- SBTMSLOW_REJECT | SBTMSLOW_RESET)); -- br32(bp, B44_SBTMSLOW); -- udelay(1); -- bw32(bp, B44_SBTMSLOW, (SBTMSLOW_REJECT | SBTMSLOW_RESET)); -- br32(bp, B44_SBTMSLOW); -- udelay(1); --} -- --static void ssb_core_reset(struct b44 *bp) -+static inline void __b44_cam_read(struct b44 *bp, unsigned char *data, int index) - { - u32 val; - -- ssb_core_disable(bp); -- bw32(bp, B44_SBTMSLOW, (SBTMSLOW_RESET | SBTMSLOW_CLOCK | SBTMSLOW_FGC)); -- br32(bp, B44_SBTMSLOW); -- udelay(1); -- -- /* Clear SERR if set, this is a hw bug workaround. */ -- if (br32(bp, B44_SBTMSHIGH) & SBTMSHIGH_SERR) -- bw32(bp, B44_SBTMSHIGH, 0); -- -- val = br32(bp, B44_SBIMSTATE); -- if (val & (SBIMSTATE_IBE | SBIMSTATE_TO)) -- bw32(bp, B44_SBIMSTATE, val & ~(SBIMSTATE_IBE | SBIMSTATE_TO)); -- -- bw32(bp, B44_SBTMSLOW, (SBTMSLOW_CLOCK | SBTMSLOW_FGC)); -- br32(bp, B44_SBTMSLOW); -- udelay(1); -- -- bw32(bp, B44_SBTMSLOW, (SBTMSLOW_CLOCK)); -- br32(bp, B44_SBTMSLOW); -- udelay(1); --} -+ bw32(bp, B44_CAM_CTRL, (CAM_CTRL_READ | -+ (index << CAM_CTRL_INDEX_SHIFT))); - --static int ssb_core_unit(struct b44 *bp) --{ --#if 0 -- u32 val = br32(bp, B44_SBADMATCH0); -- u32 base; -+ b44_wait_bit(bp, B44_CAM_CTRL, CAM_CTRL_BUSY, 100, 1); - -- type = val & SBADMATCH0_TYPE_MASK; -- switch (type) { -- case 0: -- base = val & SBADMATCH0_BS0_MASK; -- break; -+ val = br32(bp, B44_CAM_DATA_LO); - -- case 1: -- base = val & SBADMATCH0_BS1_MASK; -- break; -+ data[2] = (val >> 24) & 0xFF; -+ data[3] = (val >> 16) & 0xFF; -+ data[4] = (val >> 8) & 0xFF; -+ data[5] = (val >> 0) & 0xFF; - -- case 2: -- default: -- base = val & SBADMATCH0_BS2_MASK; -- break; -- }; --#endif -- return 0; --} -+ val = br32(bp, B44_CAM_DATA_HI); - --static int ssb_is_core_up(struct b44 *bp) --{ -- return ((br32(bp, B44_SBTMSLOW) & (SBTMSLOW_RESET | SBTMSLOW_REJECT | SBTMSLOW_CLOCK)) -- == SBTMSLOW_CLOCK); -+ data[0] = (val >> 8) & 0xFF; -+ data[1] = (val >> 0) & 0xFF; - } - --static void __b44_cam_write(struct b44 *bp, unsigned char *data, int index) -+static inline void __b44_cam_write(struct b44 *bp, unsigned char *data, int index) - { - u32 val; - -@@ -327,14 +254,14 @@ static void b44_enable_ints(struct b44 * - bw32(bp, B44_IMASK, bp->imask); - } - --static int b44_readphy(struct b44 *bp, int reg, u32 *val) -+static int __b44_readphy(struct b44 *bp, int phy_addr, int reg, u32 *val) - { - int err; - - bw32(bp, B44_EMAC_ISTAT, EMAC_INT_MII); - bw32(bp, B44_MDIO_DATA, (MDIO_DATA_SB_START | - (MDIO_OP_READ << MDIO_DATA_OP_SHIFT) | -- (bp->phy_addr << MDIO_DATA_PMD_SHIFT) | -+ (phy_addr << MDIO_DATA_PMD_SHIFT) | - (reg << MDIO_DATA_RA_SHIFT) | - (MDIO_TA_VALID << MDIO_DATA_TA_SHIFT))); - err = b44_wait_bit(bp, B44_EMAC_ISTAT, EMAC_INT_MII, 100, 0); -@@ -343,18 +270,34 @@ static int b44_readphy(struct b44 *bp, i - return err; - } - --static int b44_writephy(struct b44 *bp, int reg, u32 val) -+static int __b44_writephy(struct b44 *bp, int phy_addr, int reg, u32 val) - { - bw32(bp, B44_EMAC_ISTAT, EMAC_INT_MII); - bw32(bp, B44_MDIO_DATA, (MDIO_DATA_SB_START | - (MDIO_OP_WRITE << MDIO_DATA_OP_SHIFT) | -- (bp->phy_addr << MDIO_DATA_PMD_SHIFT) | -+ (phy_addr << MDIO_DATA_PMD_SHIFT) | - (reg << MDIO_DATA_RA_SHIFT) | - (MDIO_TA_VALID << MDIO_DATA_TA_SHIFT) | - (val & MDIO_DATA_DATA))); - return b44_wait_bit(bp, B44_EMAC_ISTAT, EMAC_INT_MII, 100, 0); - } - -+static inline int b44_readphy(struct b44 *bp, int reg, u32 *val) -+{ -+ if (bp->phy_addr == B44_PHY_ADDR_NO_PHY) -+ return 0; -+ -+ return __b44_readphy(bp, bp->phy_addr, reg, val); -+} -+ -+static inline int b44_writephy(struct b44 *bp, int reg, u32 val) -+{ -+ if (bp->phy_addr == B44_PHY_ADDR_NO_PHY) -+ return 0; -+ -+ return __b44_writephy(bp, bp->phy_addr, reg, val); -+} -+ - /* miilib interface */ - /* FIXME FIXME: phy_id is ignored, bp->phy_addr use is unconditional - * due to code existing before miilib use was added to this driver. -@@ -383,6 +326,8 @@ static int b44_phy_reset(struct b44 *bp) - u32 val; - int err; - -+ if (bp->phy_addr == B44_PHY_ADDR_NO_PHY) -+ return 0; - err = b44_writephy(bp, MII_BMCR, BMCR_RESET); - if (err) - return err; -@@ -441,11 +386,52 @@ static void b44_set_flow_ctrl(struct b44 - __b44_set_flow_ctrl(bp, pause_enab); - } - -+#ifdef SSB_DRIVER_MIPS -+extern char *nvram_get(char *name); -+static void b44_wap54g10_workaround(struct b44 *bp) -+{ -+ const char *str; -+ u32 val; -+ int err; -+ -+ /* -+ * workaround for bad hardware design in Linksys WAP54G v1.0 -+ * see https://dev.openwrt.org/ticket/146 -+ * check and reset bit "isolate" -+ */ -+ str = nvram_get("boardnum"); -+ if (!str) -+ return; -+ if (simple_strtoul(str, NULL, 0) == 2) { -+ err = __b44_readphy(bp, 0, MII_BMCR, &val); -+ if (err) -+ goto error; -+ if (!(val & BMCR_ISOLATE)) -+ return; -+ val &= ~BMCR_ISOLATE; -+ err = __b44_writephy(bp, 0, MII_BMCR, val); -+ if (err) -+ goto error; -+ } -+ return; -+error: -+ printk(KERN_WARNING PFX "PHY: cannot reset MII transceiver isolate bit.\n"); -+} -+#else -+static inline void b44_wap54g10_workaround(struct b44 *bp) -+{ -+} -+#endif -+ - static int b44_setup_phy(struct b44 *bp) - { - u32 val; - int err; - -+ b44_wap54g10_workaround(bp); -+ -+ if (bp->phy_addr == B44_PHY_ADDR_NO_PHY) -+ return 0; - if ((err = b44_readphy(bp, B44_MII_ALEDCTRL, &val)) != 0) - goto out; - if ((err = b44_writephy(bp, B44_MII_ALEDCTRL, -@@ -541,6 +527,19 @@ static void b44_check_phy(struct b44 *bp - { - u32 bmsr, aux; - -+ if (bp->phy_addr == B44_PHY_ADDR_NO_PHY) { -+ bp->flags |= B44_FLAG_100_BASE_T; -+ bp->flags |= B44_FLAG_FULL_DUPLEX; -+ if (!netif_carrier_ok(bp->dev)) { -+ u32 val = br32(bp, B44_TX_CTRL); -+ val |= TX_CTRL_DUPLEX; -+ bw32(bp, B44_TX_CTRL, val); -+ netif_carrier_on(bp->dev); -+ b44_link_report(bp); -+ } -+ return; -+ } -+ - if (!b44_readphy(bp, MII_BMSR, &bmsr) && - !b44_readphy(bp, B44_MII_AUXCTRL, &aux) && - (bmsr != 0xffff)) { -@@ -617,10 +616,10 @@ static void b44_tx(struct b44 *bp) - - BUG_ON(skb == NULL); - -- pci_unmap_single(bp->pdev, -- pci_unmap_addr(rp, mapping), -+ dma_unmap_single(bp->sdev->dev, -+ rp->mapping, - skb->len, -- PCI_DMA_TODEVICE); -+ DMA_TO_DEVICE); - rp->skb = NULL; - dev_kfree_skb_irq(skb); - } -@@ -657,9 +656,9 @@ static int b44_alloc_rx_skb(struct b44 * - if (skb == NULL) - return -ENOMEM; - -- mapping = pci_map_single(bp->pdev, skb->data, -+ mapping = dma_map_single(bp->sdev->dev, skb->data, - RX_PKT_BUF_SZ, -- PCI_DMA_FROMDEVICE); -+ DMA_FROM_DEVICE); - - /* Hardware bug work-around, the chip is unable to do PCI DMA - to/from anything above 1GB :-( */ -@@ -667,18 +666,19 @@ static int b44_alloc_rx_skb(struct b44 * - mapping + RX_PKT_BUF_SZ > DMA_30BIT_MASK) { - /* Sigh... */ - if (!dma_mapping_error(mapping)) -- pci_unmap_single(bp->pdev, mapping, RX_PKT_BUF_SZ,PCI_DMA_FROMDEVICE); -+ dma_unmap_single(bp->sdev->dev, mapping, -+ RX_PKT_BUF_SZ, DMA_FROM_DEVICE); - dev_kfree_skb_any(skb); - skb = __dev_alloc_skb(RX_PKT_BUF_SZ,GFP_DMA); - if (skb == NULL) - return -ENOMEM; -- mapping = pci_map_single(bp->pdev, skb->data, -+ mapping = dma_map_single(bp->sdev->dev, skb->data, - RX_PKT_BUF_SZ, -- PCI_DMA_FROMDEVICE); -+ DMA_FROM_DEVICE); - if (dma_mapping_error(mapping) || - mapping + RX_PKT_BUF_SZ > DMA_30BIT_MASK) { - if (!dma_mapping_error(mapping)) -- pci_unmap_single(bp->pdev, mapping, RX_PKT_BUF_SZ,PCI_DMA_FROMDEVICE); -+ dma_unmap_single(bp->sdev->dev, mapping, RX_PKT_BUF_SZ,DMA_FROM_DEVICE); - dev_kfree_skb_any(skb); - return -ENOMEM; - } -@@ -693,7 +693,7 @@ static int b44_alloc_rx_skb(struct b44 * - rh->flags = 0; - - map->skb = skb; -- pci_unmap_addr_set(map, mapping, mapping); -+ map->mapping = mapping; - - if (src_map != NULL) - src_map->skb = NULL; -@@ -707,9 +707,9 @@ static int b44_alloc_rx_skb(struct b44 * - dp->addr = cpu_to_le32((u32) mapping + bp->rx_offset + bp->dma_offset); - - if (bp->flags & B44_FLAG_RX_RING_HACK) -- b44_sync_dma_desc_for_device(bp->pdev, bp->rx_ring_dma, -- dest_idx * sizeof(dp), -- DMA_BIDIRECTIONAL); -+ b44_sync_dma_desc_for_device(bp->sdev, bp->rx_ring_dma, -+ dest_idx * sizeof(dp), -+ DMA_BIDIRECTIONAL); - - return RX_PKT_BUF_SZ; - } -@@ -732,13 +732,12 @@ static void b44_recycle_rx(struct b44 *b - rh = (struct rx_header *) src_map->skb->data; - rh->len = 0; - rh->flags = 0; -- pci_unmap_addr_set(dest_map, mapping, -- pci_unmap_addr(src_map, mapping)); -+ dest_map->mapping = src_map->mapping; - - if (bp->flags & B44_FLAG_RX_RING_HACK) -- b44_sync_dma_desc_for_cpu(bp->pdev, bp->rx_ring_dma, -- src_idx * sizeof(src_desc), -- DMA_BIDIRECTIONAL); -+ b44_sync_dma_desc_for_cpu(bp->sdev, bp->rx_ring_dma, -+ src_idx * sizeof(src_desc), -+ DMA_BIDIRECTIONAL); - - ctrl = src_desc->ctrl; - if (dest_idx == (B44_RX_RING_SIZE - 1)) -@@ -752,13 +751,13 @@ static void b44_recycle_rx(struct b44 *b - src_map->skb = NULL; - - if (bp->flags & B44_FLAG_RX_RING_HACK) -- b44_sync_dma_desc_for_device(bp->pdev, bp->rx_ring_dma, -- dest_idx * sizeof(dest_desc), -- DMA_BIDIRECTIONAL); -- -- pci_dma_sync_single_for_device(bp->pdev, le32_to_cpu(src_desc->addr), -- RX_PKT_BUF_SZ, -- PCI_DMA_FROMDEVICE); -+ b44_sync_dma_desc_for_device(bp->sdev, bp->rx_ring_dma, -+ dest_idx * sizeof(dest_desc), -+ DMA_BIDIRECTIONAL); -+ -+ dma_sync_single_for_device(bp->sdev->dev, le32_to_cpu(src_desc->addr), -+ RX_PKT_BUF_SZ, -+ DMA_FROM_DEVICE); - } - - static int b44_rx(struct b44 *bp, int budget) -@@ -774,13 +773,13 @@ static int b44_rx(struct b44 *bp, int bu - while (cons != prod && budget > 0) { - struct ring_info *rp = &bp->rx_buffers[cons]; - struct sk_buff *skb = rp->skb; -- dma_addr_t map = pci_unmap_addr(rp, mapping); -+ dma_addr_t map = rp->mapping; - struct rx_header *rh; - u16 len; - -- pci_dma_sync_single_for_cpu(bp->pdev, map, -+ dma_sync_single_for_cpu(bp->sdev->dev, map, - RX_PKT_BUF_SZ, -- PCI_DMA_FROMDEVICE); -+ DMA_FROM_DEVICE); - rh = (struct rx_header *) skb->data; - len = le16_to_cpu(rh->len); - if ((len > (RX_PKT_BUF_SZ - bp->rx_offset)) || -@@ -812,11 +811,11 @@ static int b44_rx(struct b44 *bp, int bu - skb_size = b44_alloc_rx_skb(bp, cons, bp->rx_prod); - if (skb_size < 0) - goto drop_it; -- pci_unmap_single(bp->pdev, map, -- skb_size, PCI_DMA_FROMDEVICE); -+ dma_unmap_single(bp->sdev->dev, map, -+ skb_size, DMA_FROM_DEVICE); - /* Leave out rx_header */ -- skb_put(skb, len+bp->rx_offset); -- skb_pull(skb,bp->rx_offset); -+ skb_put(skb, len+bp->rx_offset); -+ skb_pull(skb,bp->rx_offset); - } else { - struct sk_buff *copy_skb; - -@@ -985,23 +984,24 @@ static int b44_start_xmit(struct sk_buff - goto err_out; - } - -- mapping = pci_map_single(bp->pdev, skb->data, len, PCI_DMA_TODEVICE); -+ mapping = dma_map_single(bp->sdev->dev, skb->data, len, DMA_TO_DEVICE); - if (dma_mapping_error(mapping) || mapping + len > DMA_30BIT_MASK) { - /* Chip can't handle DMA to/from >1GB, use bounce buffer */ - if (!dma_mapping_error(mapping)) -- pci_unmap_single(bp->pdev, mapping, len, PCI_DMA_TODEVICE); -+ dma_unmap_single(bp->sdev->dev, mapping, len, -+ DMA_TO_DEVICE); - - bounce_skb = __dev_alloc_skb(TX_PKT_BUF_SZ, - GFP_ATOMIC|GFP_DMA); - if (!bounce_skb) - goto err_out; - -- mapping = pci_map_single(bp->pdev, bounce_skb->data, -- len, PCI_DMA_TODEVICE); -+ mapping = dma_map_single(bp->sdev->dev, bounce_skb->data, -+ len, DMA_TO_DEVICE); - if (dma_mapping_error(mapping) || mapping + len > DMA_30BIT_MASK) { - if (!dma_mapping_error(mapping)) -- pci_unmap_single(bp->pdev, mapping, -- len, PCI_DMA_TODEVICE); -+ dma_unmap_single(bp->sdev->dev, mapping, -+ len, DMA_TO_DEVICE); - dev_kfree_skb_any(bounce_skb); - goto err_out; - } -@@ -1014,7 +1014,7 @@ static int b44_start_xmit(struct sk_buff - - entry = bp->tx_prod; - bp->tx_buffers[entry].skb = skb; -- pci_unmap_addr_set(&bp->tx_buffers[entry], mapping, mapping); -+ bp->tx_buffers[entry].mapping = mapping; - - ctrl = (len & DESC_CTRL_LEN); - ctrl |= DESC_CTRL_IOC | DESC_CTRL_SOF | DESC_CTRL_EOF; -@@ -1025,9 +1025,9 @@ static int b44_start_xmit(struct sk_buff - bp->tx_ring[entry].addr = cpu_to_le32((u32) mapping+bp->dma_offset); - - if (bp->flags & B44_FLAG_TX_RING_HACK) -- b44_sync_dma_desc_for_device(bp->pdev, bp->tx_ring_dma, -- entry * sizeof(bp->tx_ring[0]), -- DMA_TO_DEVICE); -+ b44_sync_dma_desc_for_device(bp->sdev, bp->tx_ring_dma, -+ entry * sizeof(bp->tx_ring[0]), -+ DMA_TO_DEVICE); - - entry = NEXT_TX(entry); - -@@ -1100,10 +1100,8 @@ static void b44_free_rings(struct b44 *b - - if (rp->skb == NULL) - continue; -- pci_unmap_single(bp->pdev, -- pci_unmap_addr(rp, mapping), -- RX_PKT_BUF_SZ, -- PCI_DMA_FROMDEVICE); -+ dma_unmap_single(bp->sdev->dev, rp->mapping, RX_PKT_BUF_SZ, -+ DMA_FROM_DEVICE); - dev_kfree_skb_any(rp->skb); - rp->skb = NULL; - } -@@ -1114,10 +1112,8 @@ static void b44_free_rings(struct b44 *b - - if (rp->skb == NULL) - continue; -- pci_unmap_single(bp->pdev, -- pci_unmap_addr(rp, mapping), -- rp->skb->len, -- PCI_DMA_TODEVICE); -+ dma_unmap_single(bp->sdev->dev, rp->mapping, rp->skb->len, -+ DMA_TO_DEVICE); - dev_kfree_skb_any(rp->skb); - rp->skb = NULL; - } -@@ -1139,14 +1135,14 @@ static void b44_init_rings(struct b44 *b - memset(bp->tx_ring, 0, B44_TX_RING_BYTES); - - if (bp->flags & B44_FLAG_RX_RING_HACK) -- dma_sync_single_for_device(&bp->pdev->dev, bp->rx_ring_dma, -- DMA_TABLE_BYTES, -- PCI_DMA_BIDIRECTIONAL); -+ dma_sync_single_for_device(bp->sdev->dev, bp->rx_ring_dma, -+ DMA_TABLE_BYTES, -+ DMA_BIDIRECTIONAL); - - if (bp->flags & B44_FLAG_TX_RING_HACK) -- dma_sync_single_for_device(&bp->pdev->dev, bp->tx_ring_dma, -- DMA_TABLE_BYTES, -- PCI_DMA_TODEVICE); -+ dma_sync_single_for_device(bp->sdev->dev, bp->tx_ring_dma, -+ DMA_TABLE_BYTES, -+ DMA_TO_DEVICE); - - for (i = 0; i < bp->rx_pending; i++) { - if (b44_alloc_rx_skb(bp, -1, i) < 0) -@@ -1166,24 +1162,24 @@ static void b44_free_consistent(struct b - bp->tx_buffers = NULL; - if (bp->rx_ring) { - if (bp->flags & B44_FLAG_RX_RING_HACK) { -- dma_unmap_single(&bp->pdev->dev, bp->rx_ring_dma, -- DMA_TABLE_BYTES, -- DMA_BIDIRECTIONAL); -+ dma_unmap_single(bp->sdev->dev, bp->rx_ring_dma, -+ DMA_TABLE_BYTES, -+ DMA_BIDIRECTIONAL); - kfree(bp->rx_ring); - } else -- pci_free_consistent(bp->pdev, DMA_TABLE_BYTES, -+ dma_free_coherent(bp->sdev->dev, DMA_TABLE_BYTES, - bp->rx_ring, bp->rx_ring_dma); - bp->rx_ring = NULL; - bp->flags &= ~B44_FLAG_RX_RING_HACK; - } - if (bp->tx_ring) { - if (bp->flags & B44_FLAG_TX_RING_HACK) { -- dma_unmap_single(&bp->pdev->dev, bp->tx_ring_dma, -- DMA_TABLE_BYTES, -- DMA_TO_DEVICE); -+ dma_unmap_single(bp->sdev->dev, bp->tx_ring_dma, -+ DMA_TABLE_BYTES, -+ DMA_TO_DEVICE); - kfree(bp->tx_ring); - } else -- pci_free_consistent(bp->pdev, DMA_TABLE_BYTES, -+ dma_free_coherent(bp->sdev->dev, DMA_TABLE_BYTES, - bp->tx_ring, bp->tx_ring_dma); - bp->tx_ring = NULL; - bp->flags &= ~B44_FLAG_TX_RING_HACK; -@@ -1194,22 +1190,22 @@ static void b44_free_consistent(struct b - * Must not be invoked with interrupt sources disabled and - * the hardware shutdown down. Can sleep. - */ --static int b44_alloc_consistent(struct b44 *bp) -+static int b44_alloc_consistent(struct b44 *bp, gfp_t gfp) - { - int size; - - size = B44_RX_RING_SIZE * sizeof(struct ring_info); -- bp->rx_buffers = kzalloc(size, GFP_KERNEL); -+ bp->rx_buffers = kzalloc(size, gfp); - if (!bp->rx_buffers) - goto out_err; - - size = B44_TX_RING_SIZE * sizeof(struct ring_info); -- bp->tx_buffers = kzalloc(size, GFP_KERNEL); -+ bp->tx_buffers = kzalloc(size, gfp); - if (!bp->tx_buffers) - goto out_err; - - size = DMA_TABLE_BYTES; -- bp->rx_ring = pci_alloc_consistent(bp->pdev, size, &bp->rx_ring_dma); -+ bp->rx_ring = dma_alloc_coherent(bp->sdev->dev, size, &bp->rx_ring_dma, gfp); - if (!bp->rx_ring) { - /* Allocation may have failed due to pci_alloc_consistent - insisting on use of GFP_DMA, which is more restrictive -@@ -1217,13 +1213,13 @@ static int b44_alloc_consistent(struct b - struct dma_desc *rx_ring; - dma_addr_t rx_ring_dma; - -- rx_ring = kzalloc(size, GFP_KERNEL); -+ rx_ring = kzalloc(size, gfp); - if (!rx_ring) - goto out_err; - -- rx_ring_dma = dma_map_single(&bp->pdev->dev, rx_ring, -- DMA_TABLE_BYTES, -- DMA_BIDIRECTIONAL); -+ rx_ring_dma = dma_map_single(bp->sdev->dev, rx_ring, -+ DMA_TABLE_BYTES, -+ DMA_BIDIRECTIONAL); - - if (dma_mapping_error(rx_ring_dma) || - rx_ring_dma + size > DMA_30BIT_MASK) { -@@ -1236,21 +1232,21 @@ static int b44_alloc_consistent(struct b - bp->flags |= B44_FLAG_RX_RING_HACK; - } - -- bp->tx_ring = pci_alloc_consistent(bp->pdev, size, &bp->tx_ring_dma); -+ bp->tx_ring = dma_alloc_coherent(bp->sdev->dev, size, &bp->tx_ring_dma, gfp); - if (!bp->tx_ring) { -- /* Allocation may have failed due to pci_alloc_consistent -+ /* Allocation may have failed due to dma_alloc_coherent - insisting on use of GFP_DMA, which is more restrictive - than necessary... */ - struct dma_desc *tx_ring; - dma_addr_t tx_ring_dma; - -- tx_ring = kzalloc(size, GFP_KERNEL); -+ tx_ring = kzalloc(size, gfp); - if (!tx_ring) - goto out_err; - -- tx_ring_dma = dma_map_single(&bp->pdev->dev, tx_ring, -- DMA_TABLE_BYTES, -- DMA_TO_DEVICE); -+ tx_ring_dma = dma_map_single(bp->sdev->dev, tx_ring, -+ DMA_TABLE_BYTES, -+ DMA_TO_DEVICE); - - if (dma_mapping_error(tx_ring_dma) || - tx_ring_dma + size > DMA_30BIT_MASK) { -@@ -1285,7 +1281,9 @@ static void b44_clear_stats(struct b44 * - /* bp->lock is held. */ - static void b44_chip_reset(struct b44 *bp) - { -- if (ssb_is_core_up(bp)) { -+ struct ssb_device *sdev = bp->sdev; -+ -+ if (ssb_device_is_enabled(bp->sdev)) { - bw32(bp, B44_RCV_LAZY, 0); - bw32(bp, B44_ENET_CTRL, ENET_CTRL_DISABLE); - b44_wait_bit(bp, B44_ENET_CTRL, ENET_CTRL_DISABLE, 200, 1); -@@ -1297,19 +1295,25 @@ static void b44_chip_reset(struct b44 *b - } - bw32(bp, B44_DMARX_CTRL, 0); - bp->rx_prod = bp->rx_cons = 0; -- } else { -- ssb_pci_setup(bp, (bp->core_unit == 0 ? -- SBINTVEC_ENET0 : -- SBINTVEC_ENET1)); -- } -- -- ssb_core_reset(bp); -+ } else -+ ssb_pcicore_dev_irqvecs_enable(&sdev->bus->pcicore, sdev); - -+ ssb_device_enable(bp->sdev, 0); - b44_clear_stats(bp); - -- /* Make PHY accessible. */ -- bw32(bp, B44_MDIO_CTRL, (MDIO_CTRL_PREAMBLE | -- (0x0d & MDIO_CTRL_MAXF_MASK))); -+ switch (sdev->bus->bustype) { -+ case SSB_BUSTYPE_SSB: -+ bw32(bp, B44_MDIO_CTRL, (MDIO_CTRL_PREAMBLE | -+ (((ssb_clockspeed(sdev->bus) + (B44_MDC_RATIO / 2)) / B44_MDC_RATIO) -+ & MDIO_CTRL_MAXF_MASK))); -+ break; -+ case SSB_BUSTYPE_PCI: -+ case SSB_BUSTYPE_PCMCIA: -+ bw32(bp, B44_MDIO_CTRL, (MDIO_CTRL_PREAMBLE | -+ (0x0d & MDIO_CTRL_MAXF_MASK))); -+ break; -+ } -+ - br32(bp, B44_MDIO_CTRL); - - if (!(br32(bp, B44_DEVCTRL) & DEVCTRL_IPP)) { -@@ -1352,6 +1356,7 @@ static int b44_set_mac_addr(struct net_d - { - struct b44 *bp = netdev_priv(dev); - struct sockaddr *addr = p; -+ u32 val; - - if (netif_running(dev)) - return -EBUSY; -@@ -1362,7 +1367,11 @@ static int b44_set_mac_addr(struct net_d - memcpy(dev->dev_addr, addr->sa_data, dev->addr_len); - - spin_lock_irq(&bp->lock); -- __b44_set_mac_addr(bp); -+ -+ val = br32(bp, B44_RXCONFIG); -+ if (!(val & RXCONFIG_CAM_ABSENT)) -+ __b44_set_mac_addr(bp); -+ - spin_unlock_irq(&bp->lock); - - return 0; -@@ -1419,7 +1428,7 @@ static int b44_open(struct net_device *d - struct b44 *bp = netdev_priv(dev); - int err; - -- err = b44_alloc_consistent(bp); -+ err = b44_alloc_consistent(bp, GFP_KERNEL); - if (err) - goto out; - -@@ -1448,18 +1457,6 @@ out: - return err; - } - --#if 0 --/*static*/ void b44_dump_state(struct b44 *bp) --{ -- u32 val32, val32_2, val32_3, val32_4, val32_5; -- u16 val16; -- -- pci_read_config_word(bp->pdev, PCI_STATUS, &val16); -- printk("DEBUG: PCI status [%04x] \n", val16); -- --} --#endif -- - #ifdef CONFIG_NET_POLL_CONTROLLER - /* - * Polling receive - used by netconsole and other diagnostic tools -@@ -1571,10 +1568,25 @@ static void b44_setup_pseudo_magicp(stru - - } - -+#ifdef CONFIG_B44_PCI -+static void b44_setup_wol_pci(struct b44 *bp) -+{ -+ u16 val; -+ -+ if (bp->sdev->bus->bustype != SSB_BUSTYPE_SSB) { -+ val = br32(bp, SSB_TMSLOW); -+ bw32(bp, SSB_TMSLOW, val | SSB_TMSLOW_PE); -+ pci_read_config_word(bp->sdev->bus->host_pci, SSB_PMCSR, &val); -+ pci_write_config_word(bp->sdev->bus->host_pci, SSB_PMCSR, val | SSB_PE); -+ } -+} -+#else -+static inline void b44_setup_wol_pci(struct b44 *bp) { } -+#endif /* CONFIG_B44_PCI */ -+ - static void b44_setup_wol(struct b44 *bp) - { - u32 val; -- u16 pmval; - - bw32(bp, B44_RXCONFIG, RXCONFIG_ALLMULTI); - -@@ -1598,13 +1610,7 @@ static void b44_setup_wol(struct b44 *bp - } else { - b44_setup_pseudo_magicp(bp); - } -- -- val = br32(bp, B44_SBTMSLOW); -- bw32(bp, B44_SBTMSLOW, val | SBTMSLOW_PE); -- -- pci_read_config_word(bp->pdev, SSB_PMCSR, &pmval); -- pci_write_config_word(bp->pdev, SSB_PMCSR, pmval | SSB_PE); -- -+ b44_setup_wol_pci(bp); - } - - static int b44_close(struct net_device *dev) -@@ -1619,9 +1625,6 @@ static int b44_close(struct net_device * - - spin_lock_irq(&bp->lock); - --#if 0 -- b44_dump_state(bp); --#endif - b44_halt(bp); - b44_free_rings(bp); - netif_carrier_off(dev); -@@ -1704,7 +1707,7 @@ static void __b44_set_rx_mode(struct net - - val = br32(bp, B44_RXCONFIG); - val &= ~(RXCONFIG_PROMISC | RXCONFIG_ALLMULTI); -- if (dev->flags & IFF_PROMISC) { -+ if ((dev->flags & IFF_PROMISC) || (val & RXCONFIG_CAM_ABSENT)) { - val |= RXCONFIG_PROMISC; - bw32(bp, B44_RXCONFIG, val); - } else { -@@ -1752,11 +1755,19 @@ static void b44_set_msglevel(struct net_ - static void b44_get_drvinfo (struct net_device *dev, struct ethtool_drvinfo *info) - { - struct b44 *bp = netdev_priv(dev); -- struct pci_dev *pci_dev = bp->pdev; -+ struct ssb_bus *bus = bp->sdev->bus; - -- strcpy (info->driver, DRV_MODULE_NAME); -- strcpy (info->version, DRV_MODULE_VERSION); -- strcpy (info->bus_info, pci_name(pci_dev)); -+ strncpy(info->driver, DRV_MODULE_NAME, sizeof(info->driver)); -+ strncpy(info->version, DRV_MODULE_VERSION, sizeof(info->driver)); -+ switch (bus->bustype) { -+ case SSB_BUSTYPE_PCI: -+ strncpy(info->bus_info, pci_name(bus->host_pci), sizeof(info->bus_info)); -+ break; -+ case SSB_BUSTYPE_PCMCIA: -+ case SSB_BUSTYPE_SSB: -+ strncpy(info->bus_info, "SSB", sizeof(info->bus_info)); -+ break; -+ } - } - - static int b44_nway_reset(struct net_device *dev) -@@ -2056,33 +2067,23 @@ out: - return err; - } - --/* Read 128-bytes of EEPROM. */ --static int b44_read_eeprom(struct b44 *bp, u8 *data) --{ -- long i; -- __le16 *ptr = (__le16 *) data; -- -- for (i = 0; i < 128; i += 2) -- ptr[i / 2] = cpu_to_le16(readw(bp->regs + 4096 + i)); -- -- return 0; --} -- - static int __devinit b44_get_invariants(struct b44 *bp) - { -- u8 eeprom[128]; -- int err; -- -- err = b44_read_eeprom(bp, &eeprom[0]); -- if (err) -- goto out; -- -- bp->dev->dev_addr[0] = eeprom[79]; -- bp->dev->dev_addr[1] = eeprom[78]; -- bp->dev->dev_addr[2] = eeprom[81]; -- bp->dev->dev_addr[3] = eeprom[80]; -- bp->dev->dev_addr[4] = eeprom[83]; -- bp->dev->dev_addr[5] = eeprom[82]; -+ struct ssb_device *sdev = bp->sdev; -+ int err = 0; -+ u8 *addr; -+ -+ bp->dma_offset = ssb_dma_translation(sdev); -+ -+ if (sdev->bus->bustype == SSB_BUSTYPE_SSB && -+ instance > 1) { -+ addr = sdev->bus->sprom.r1.et1mac; -+ bp->phy_addr = sdev->bus->sprom.r1.et1phyaddr; -+ } else { -+ addr = sdev->bus->sprom.r1.et0mac; -+ bp->phy_addr = sdev->bus->sprom.r1.et0phyaddr; -+ } -+ memcpy(bp->dev->dev_addr, addr, 6); - - if (!is_valid_ether_addr(&bp->dev->dev_addr[0])){ - printk(KERN_ERR PFX "Invalid MAC address found in EEPROM\n"); -@@ -2091,108 +2092,55 @@ static int __devinit b44_get_invariants( - - memcpy(bp->dev->perm_addr, bp->dev->dev_addr, bp->dev->addr_len); - -- bp->phy_addr = eeprom[90] & 0x1f; -- - /* With this, plus the rx_header prepended to the data by the - * hardware, we'll land the ethernet header on a 2-byte boundary. - */ - bp->rx_offset = 30; -- - bp->imask = IMASK_DEF; -- -- bp->core_unit = ssb_core_unit(bp); -- bp->dma_offset = SB_PCI_DMA; -- - /* XXX - really required? - bp->flags |= B44_FLAG_BUGGY_TXPTR; -- */ -+ */ - -- if (ssb_get_core_rev(bp) >= 7) -- bp->flags |= B44_FLAG_B0_ANDLATER; -+ if (bp->sdev->id.revision >= 7) -+ bp->flags |= B44_FLAG_B0_ANDLATER; - --out: - return err; - } - --static int __devinit b44_init_one(struct pci_dev *pdev, -- const struct pci_device_id *ent) -+static int __devinit b44_init_one(struct ssb_device *sdev, -+ const struct ssb_device_id *ent) - { - static int b44_version_printed = 0; -- unsigned long b44reg_base, b44reg_len; - struct net_device *dev; - struct b44 *bp; - int err, i; - -+ instance++; -+ - if (b44_version_printed++ == 0) - printk(KERN_INFO "%s", version); - -- err = pci_enable_device(pdev); -- if (err) { -- dev_err(&pdev->dev, "Cannot enable PCI device, " -- "aborting.\n"); -- return err; -- } -- -- if (!(pci_resource_flags(pdev, 0) & IORESOURCE_MEM)) { -- dev_err(&pdev->dev, -- "Cannot find proper PCI device " -- "base address, aborting.\n"); -- err = -ENODEV; -- goto err_out_disable_pdev; -- } -- -- err = pci_request_regions(pdev, DRV_MODULE_NAME); -- if (err) { -- dev_err(&pdev->dev, -- "Cannot obtain PCI resources, aborting.\n"); -- goto err_out_disable_pdev; -- } -- -- pci_set_master(pdev); -- -- err = pci_set_dma_mask(pdev, (u64) DMA_30BIT_MASK); -- if (err) { -- dev_err(&pdev->dev, "No usable DMA configuration, aborting.\n"); -- goto err_out_free_res; -- } -- -- err = pci_set_consistent_dma_mask(pdev, (u64) DMA_30BIT_MASK); -- if (err) { -- dev_err(&pdev->dev, "No usable DMA configuration, aborting.\n"); -- goto err_out_free_res; -- } -- -- b44reg_base = pci_resource_start(pdev, 0); -- b44reg_len = pci_resource_len(pdev, 0); -- - dev = alloc_etherdev(sizeof(*bp)); - if (!dev) { -- dev_err(&pdev->dev, "Etherdev alloc failed, aborting.\n"); -+ dev_err(sdev->dev, "Etherdev alloc failed, aborting.\n"); - err = -ENOMEM; -- goto err_out_free_res; -+ goto out; - } - - SET_MODULE_OWNER(dev); -- SET_NETDEV_DEV(dev,&pdev->dev); -+ SET_NETDEV_DEV(dev, sdev->dev); - - /* No interesting netdevice features in this card... */ - dev->features |= 0; - - bp = netdev_priv(dev); -- bp->pdev = pdev; -+ bp->sdev = sdev; - bp->dev = dev; - - bp->msg_enable = netif_msg_init(b44_debug, B44_DEF_MSG_ENABLE); - - spin_lock_init(&bp->lock); - -- bp->regs = ioremap(b44reg_base, b44reg_len); -- if (bp->regs == 0UL) { -- dev_err(&pdev->dev, "Cannot map device registers, aborting.\n"); -- err = -ENOMEM; -- goto err_out_free_dev; -- } -- - bp->rx_pending = B44_DEF_RX_RING_PENDING; - bp->tx_pending = B44_DEF_TX_RING_PENDING; - -@@ -2211,16 +2159,22 @@ static int __devinit b44_init_one(struct - dev->poll_controller = b44_poll_controller; - #endif - dev->change_mtu = b44_change_mtu; -- dev->irq = pdev->irq; -+ dev->irq = sdev->irq; - SET_ETHTOOL_OPS(dev, &b44_ethtool_ops); - - netif_carrier_off(dev); - -+ err = ssb_dma_set_mask(sdev, DMA_30BIT_MASK); -+ if (err) { -+ dev_err(sdev->dev, -+ "Required 30BIT DMA mask unsupported by the system.\n"); -+ goto err_out_free_dev; -+ } - err = b44_get_invariants(bp); - if (err) { -- dev_err(&pdev->dev, -+ dev_err(sdev->dev, - "Problem fetching invariants of chip, aborting.\n"); -- goto err_out_iounmap; -+ goto err_out_free_dev; - } - - bp->mii_if.dev = dev; -@@ -2239,61 +2193,47 @@ static int __devinit b44_init_one(struct - - err = register_netdev(dev); - if (err) { -- dev_err(&pdev->dev, "Cannot register net device, aborting.\n"); -- goto err_out_iounmap; -+ dev_err(sdev->dev, "Cannot register net device, aborting.\n"); -+ goto out; - } - -- pci_set_drvdata(pdev, dev); -- -- pci_save_state(bp->pdev); -+ ssb_set_drvdata(sdev, dev); - - /* Chip reset provides power to the b44 MAC & PCI cores, which - * is necessary for MAC register access. - */ - b44_chip_reset(bp); - -- printk(KERN_INFO "%s: Broadcom 4400 10/100BaseT Ethernet ", dev->name); -+ printk(KERN_INFO "%s: Broadcom 44xx/47xx 10/100BaseT Ethernet ", dev->name); - for (i = 0; i < 6; i++) - printk("%2.2x%c", dev->dev_addr[i], - i == 5 ? '\n' : ':'); - - return 0; - --err_out_iounmap: -- iounmap(bp->regs); -- - err_out_free_dev: - free_netdev(dev); - --err_out_free_res: -- pci_release_regions(pdev); -- --err_out_disable_pdev: -- pci_disable_device(pdev); -- pci_set_drvdata(pdev, NULL); -+out: - return err; - } - --static void __devexit b44_remove_one(struct pci_dev *pdev) -+static void __devexit b44_remove_one(struct ssb_device *pdev) - { -- struct net_device *dev = pci_get_drvdata(pdev); -- struct b44 *bp = netdev_priv(dev); -+ struct net_device *dev = ssb_get_drvdata(pdev); - - unregister_netdev(dev); -- iounmap(bp->regs); - free_netdev(dev); -- pci_release_regions(pdev); -- pci_disable_device(pdev); -- pci_set_drvdata(pdev, NULL); -+ ssb_set_drvdata(pdev, NULL); - } - --static int b44_suspend(struct pci_dev *pdev, pm_message_t state) -+static int b44_suspend(struct ssb_device *sdev, pm_message_t state) - { -- struct net_device *dev = pci_get_drvdata(pdev); -+ struct net_device *dev = ssb_get_drvdata(sdev); - struct b44 *bp = netdev_priv(dev); - - if (!netif_running(dev)) -- return 0; -+ return 0; - - del_timer_sync(&bp->timer); - -@@ -2311,33 +2251,22 @@ static int b44_suspend(struct pci_dev *p - b44_init_hw(bp, B44_PARTIAL_RESET); - b44_setup_wol(bp); - } -- pci_disable_device(pdev); -+ - return 0; - } - --static int b44_resume(struct pci_dev *pdev) -+static int b44_resume(struct ssb_device *sdev) - { -- struct net_device *dev = pci_get_drvdata(pdev); -+ struct net_device *dev = ssb_get_drvdata(sdev); - struct b44 *bp = netdev_priv(dev); - int rc = 0; - -- pci_restore_state(pdev); -- rc = pci_enable_device(pdev); -- if (rc) { -- printk(KERN_ERR PFX "%s: pci_enable_device failed\n", -- dev->name); -- return rc; -- } -- -- pci_set_master(pdev); -- - if (!netif_running(dev)) - return 0; - - rc = request_irq(dev->irq, b44_interrupt, IRQF_SHARED, dev->name, dev); - if (rc) { - printk(KERN_ERR PFX "%s: request_irq failed\n", dev->name); -- pci_disable_device(pdev); - return rc; - } - -@@ -2356,29 +2285,53 @@ static int b44_resume(struct pci_dev *pd - return 0; - } - --static struct pci_driver b44_driver = { -+static struct ssb_driver b44_ssb_driver = { - .name = DRV_MODULE_NAME, -- .id_table = b44_pci_tbl, -+ .id_table = b44_ssb_tbl, - .probe = b44_init_one, - .remove = __devexit_p(b44_remove_one), -- .suspend = b44_suspend, -- .resume = b44_resume, -+ .suspend = b44_suspend, -+ .resume = b44_resume, - }; - -+static inline int b44_pci_init(void) -+{ -+ int err = 0; -+#ifdef CONFIG_B44_PCI -+ err = ssb_pcihost_register(&b44_pci_driver); -+#endif -+ return err; -+} -+ -+static inline void b44_pci_exit(void) -+{ -+#ifdef CONFIG_B44_PCI -+ ssb_pcihost_unregister(&b44_pci_driver); -+#endif -+} -+ - static int __init b44_init(void) - { - unsigned int dma_desc_align_size = dma_get_cache_alignment(); -+ int err; - - /* Setup paramaters for syncing RX/TX DMA descriptors */ - dma_desc_align_mask = ~(dma_desc_align_size - 1); - dma_desc_sync_size = max_t(unsigned int, dma_desc_align_size, sizeof(struct dma_desc)); - -- return pci_register_driver(&b44_driver); -+ err = b44_pci_init(); -+ if (err) -+ return err; -+ err = ssb_driver_register(&b44_ssb_driver); -+ if (err) -+ b44_pci_exit(); -+ return err; - } - - static void __exit b44_cleanup(void) - { -- pci_unregister_driver(&b44_driver); -+ ssb_driver_unregister(&b44_ssb_driver); -+ b44_pci_exit(); - } - - module_init(b44_init); ---- linux-2.6.21.noarch/drivers/net/Kconfig.orig 2007-06-25 09:16:43.000000000 -0400 -+++ linux-2.6.21.noarch/drivers/net/Kconfig 2007-06-25 09:55:35.000000000 -0400 -@@ -1387,18 +1387,36 @@ config APRICOT - called apricot. - - config B44 -- tristate "Broadcom 4400 ethernet support" -- depends on NET_PCI && PCI -+ tristate "Broadcom 440x/47xx ethernet support" -+ select SSB - select MII - help -- If you have a network (Ethernet) controller of this type, say Y and -- read the Ethernet-HOWTO, available from -+ If you have a network (Ethernet) controller of this type, say Y -+ or M and read the Ethernet-HOWTO, available from - . - -+ If you have a Broadcom 440x PCI device (and if you don't -+ know, you _do_ have one) you must also select the options -+ "EISA, VLB, PCI and on board controllers" above and -+ "Broadcom 440x PCI device support" below. -+ - To compile this driver as a module, choose M here and read - . The module will be - called b44. - -+config B44_PCI -+ bool "Broadcom 440x PCI device support" -+ depends on B44 && NET_PCI -+ select SSB_PCIHOST -+ select SSB_DRIVER_PCICORE -+ default y -+ help -+ Support for Broadcom 440x PCI devices. -+ -+ Say Y, unless you know what you are doing. -+ If you say N here I will _not_ listen to your -+ bugreports! -+ - config FORCEDETH - tristate "nForce Ethernet support" - depends on NET_PCI && PCI --- linux-2.6.21.noarch/drivers/net/wireless/zd1211rw/Kconfig.orig 2007-06-25 09:16:46.000000000 -0400 +++ linux-2.6.21.noarch/drivers/net/wireless/zd1211rw/Kconfig 2007-06-25 09:55:35.000000000 -0400 @@ -1,6 +1,7 @@ Index: kernel-2.6.spec =================================================================== RCS file: /cvs/dist/rpms/kernel/FC-6/kernel-2.6.spec,v retrieving revision 1.3009 retrieving revision 1.3010 diff -u -r1.3009 -r1.3010 --- kernel-2.6.spec 14 Aug 2007 21:05:27 -0000 1.3009 +++ kernel-2.6.spec 15 Aug 2007 15:22:32 -0000 1.3010 @@ -2217,6 +2217,9 @@ %endif %changelog +* Wed Aug 15 2007 John W. Linville +- Remove b44 bits from git-wireless-dev.patch (broken and unnecessary) + * Tue Aug 14 2007 Chuck Ebbert - update CFS scheduler - revert "don't BUG on too-large memory allocation" From fedora-cvs-commits at redhat.com Wed Aug 15 16:30:51 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Wed, 15 Aug 2007 12:30:51 -0400 Subject: rpms/sane-backends/FC-6 sane-backends-1.0.18-epson-cx5000.patch, NONE, 1.1 sane-backends.spec, 1.84, 1.85 Message-ID: <200708151630.l7FGUpA6016844@cvs.devel.redhat.com> Author: nphilipp Update of /cvs/dist/rpms/sane-backends/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv16826 Modified Files: sane-backends.spec Added Files: sane-backends-1.0.18-epson-cx5000.patch Log Message: enable support for Epson CX-5000 sane-backends-1.0.18-epson-cx5000.patch: backend/epson_usb.c | 1 + doc/descriptions/epson.desc | 5 +++++ 2 files changed, 6 insertions(+) --- NEW FILE sane-backends-1.0.18-epson-cx5000.patch --- --- sane-backends-1.0.18/doc/descriptions/epson.desc.epson-cx5000 2006-06-22 20:21:08.000000000 +0200 +++ sane-backends-1.0.18/doc/descriptions/epson.desc 2007-08-15 08:43:19.000000000 +0200 @@ -207,6 +207,11 @@ :usbid "0x04b8" "0x0819" :status :good +:model "CX-5000" +:interface "USB" +:usbid "0x04b8" "0x082b" +:status :good + :model "CX-5200" :interface "USB" :usbid "0x04b8" "0x0801" --- sane-backends-1.0.18/backend/epson_usb.c.epson-cx5000 2006-06-11 22:24:19.000000000 +0200 +++ sane-backends-1.0.18/backend/epson_usb.c 2007-08-15 08:46:01.000000000 +0200 @@ -39,6 +39,7 @@ SANE_Word sanei_epson_usb_product_ids[] 0x815, /* LP-A500 / AcuLaser CX11 */ 0x819, /* CX4800 */ 0x820, /* CX4200 */ + 0x82b, /* CX5000 */ 0 /* last entry - this is used for devices that are specified in the config file as "usb " */ }; Index: sane-backends.spec =================================================================== RCS file: /cvs/dist/rpms/sane-backends/FC-6/sane-backends.spec,v retrieving revision 1.84 retrieving revision 1.85 diff -u -r1.84 -r1.85 --- sane-backends.spec 13 Aug 2007 07:32:00 -0000 1.84 +++ sane-backends.spec 15 Aug 2007 16:30:49 -0000 1.85 @@ -24,7 +24,7 @@ Summary: Scanner access software Name: sane-backends Version: 1.0.18 -Release: 14%{?dist} +Release: 15%{?dist} License: GPL (programs), relaxed LGPL (libraries), and public domain (docs) Group: System Environment/Libraries Source0: ftp://ftp.sane-project.org/pub/sane/%{name}-%{version}/%{name}-%{version}.tar.gz @@ -38,6 +38,7 @@ Patch7: sane-backends-1.0.18-udev-symlink.patch Patch8: sane-backends-1.0.18-udev-098.patch Patch9: sane-backends-1.0.18-glibc-2.7.patch +Patch10: sane-backends-1.0.18-epson-cx5000.patch URL: http://www.sane-project.org BuildRoot: %{_tmppath}/%{name}-%{version}-root-%(%__id_u -n) BuildRequires: tetex-latex libusb-devel libieee1284-devel libjpeg-devel @@ -130,6 +131,7 @@ %endif %patch9 -p1 -b .glibc-2.7 +%patch10 -p1 -b .epson-cx5000 for i in agfafocus avision coolscan2 umax_pp; do iconv -f iso-8859-1 -t utf-8 < "doc/sane-$i.man" > "doc/sane-$i.man_" @@ -249,6 +251,9 @@ %{_libdir}/pkgconfig/sane-backends.pc %changelog +* Wed Aug 15 2007 Nils Philippsen - 1.0.18-15 +- enable support for Epson CX-5000 + * Wed Aug 08 2007 Nils Philippsen - 1.0.18-14 - make udev rules more robust (#243953) - bring code in shape for glibc-2.7 From fedora-cvs-commits at redhat.com Wed Aug 15 20:35:35 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Wed, 15 Aug 2007 16:35:35 -0400 Subject: rpms/kernel/FC-6 patch-2.6.22.3.bz2.sign, NONE, 1.1 .cvsignore, 1.567, 1.568 kernel-2.6.spec, 1.3010, 1.3011 sources, 1.531, 1.532 upstream, 1.451, 1.452 linux-2.6-libata_pata_atiixp_add_ati_sb700.patch, 1.1, NONE linux-2.6-ondemand-timer.patch, 1.1, NONE patch-2.6.22.2.bz2.sign, 1.1, NONE Message-ID: <200708152035.l7FKZZ5Y025010@cvs.devel.redhat.com> Author: cebbert Update of /cvs/dist/rpms/kernel/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv24995 Modified Files: .cvsignore kernel-2.6.spec sources upstream Added Files: patch-2.6.22.3.bz2.sign Removed Files: linux-2.6-libata_pata_atiixp_add_ati_sb700.patch linux-2.6-ondemand-timer.patch patch-2.6.22.2.bz2.sign Log Message: * Wed Aug 15 2007 Chuck Ebbert - Linux 2.6.22.3 --- NEW FILE patch-2.6.22.3.bz2.sign --- -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.7 (GNU/Linux) Comment: See http://www.kernel.org/signature.html for info iD8DBQBGw0V5yGugalF9Dw4RAljcAJ91z2EvWo8fhdPizRcSotjaecvJ5ACfdYhS je/AHxyGfZdr2ZzPJMrLrA8= =BgBL -----END PGP SIGNATURE----- Index: .cvsignore =================================================================== RCS file: /cvs/dist/rpms/kernel/FC-6/.cvsignore,v retrieving revision 1.567 retrieving revision 1.568 diff -u -r1.567 -r1.568 --- .cvsignore 10 Aug 2007 16:41:05 -0000 1.567 +++ .cvsignore 15 Aug 2007 20:35:31 -0000 1.568 @@ -3,4 +3,4 @@ temp-* kernel-2.6.22 linux-2.6.22.tar.bz2 -patch-2.6.22.2.bz2 +patch-2.6.22.3.bz2 Index: kernel-2.6.spec =================================================================== RCS file: /cvs/dist/rpms/kernel/FC-6/kernel-2.6.spec,v retrieving revision 1.3010 retrieving revision 1.3011 diff -u -r1.3010 -r1.3011 --- kernel-2.6.spec 15 Aug 2007 15:22:32 -0000 1.3010 +++ kernel-2.6.spec 15 Aug 2007 20:35:31 -0000 1.3011 @@ -30,7 +30,7 @@ ## If this is a released kernel ## %if 0%{?released_kernel} # Do we have a 2.6.21.y update to apply? -%define stable_update 2 +%define stable_update 3 # Set rpm version accordingly %if 0%{?stable_update} %define stablerev .%{stable_update} @@ -584,7 +584,6 @@ Patch662: linux-2.6-ata-update-noncq.patch Patch663: linux-2.6-ata-quirk.patch Patch667: linux-2.6-libata-ata_piix_fix_pio-mwdma-programming.patch -Patch668: linux-2.6-libata_pata_atiixp_add_ati_sb700.patch Patch669: linux-2.6-libata-restore-combined-mode.patch Patch670: linux-2.6-libata-pata_hpt37x-fix-2.6.22-clock-pll.patch Patch671: linux-2.6-libata-pata_ali-fix-hp-detect.patch @@ -604,7 +603,6 @@ Patch801: linux-2.6-wakeups.patch Patch900: linux-2.6-sched-cfs.patch Patch1000: linux-2.6-dmi-based-module-autoloading.patch -Patch1010: linux-2.6-ondemand-timer.patch Patch1030: linux-2.6-nfs-nosharecache.patch Patch1400: linux-2.6-pcspkr-use-the-global-pit-lock.patch @@ -1073,9 +1071,6 @@ # setuid /proc/self/maps fix. (dependent on utrace) ApplyPatch linux-2.6-proc-self-maps-fix.patch -ApplyPatch linux-2.6-ondemand-timer.patch - - # enable sysrq-c on all kernels, not only kexec ApplyPatch linux-2.6-sysrq-c.patch @@ -1244,8 +1239,6 @@ ApplyPatch linux-2.6-ata-quirk.patch # NSIA ApplyPatch linux-2.6-libata-ata_piix_fix_pio-mwdma-programming.patch -# add ID for sb700 to the pata driver -ApplyPatch linux-2.6-libata_pata_atiixp_add_ati_sb700.patch # restore the ugly libata COMBINED_MODE hacks ApplyPatch linux-2.6-libata-restore-combined-mode.patch # fix hpt37x PLL regression @@ -2217,6 +2210,9 @@ %endif %changelog +* Wed Aug 15 2007 Chuck Ebbert +- Linux 2.6.22.3 + * Wed Aug 15 2007 John W. Linville - Remove b44 bits from git-wireless-dev.patch (broken and unnecessary) Index: sources =================================================================== RCS file: /cvs/dist/rpms/kernel/FC-6/sources,v retrieving revision 1.531 retrieving revision 1.532 diff -u -r1.531 -r1.532 --- sources 10 Aug 2007 16:41:06 -0000 1.531 +++ sources 15 Aug 2007 20:35:33 -0000 1.532 @@ -1,2 +1,2 @@ 2e230d005c002fb3d38a3ca07c0200d0 linux-2.6.22.tar.bz2 -1bf6e4e5100b9af1f5eb361cff5a443e patch-2.6.22.2.bz2 +2ada3008a04887c7aac105644333bd31 patch-2.6.22.3.bz2 Index: upstream =================================================================== RCS file: /cvs/dist/rpms/kernel/FC-6/upstream,v retrieving revision 1.451 retrieving revision 1.452 diff -u -r1.451 -r1.452 --- upstream 10 Aug 2007 16:41:06 -0000 1.451 +++ upstream 15 Aug 2007 20:35:33 -0000 1.452 @@ -1,2 +1,2 @@ linux-2.6.22.tar.bz2 -patch-2.6.22.2.bz2 +patch-2.6.22.3.bz2 --- linux-2.6-libata_pata_atiixp_add_ati_sb700.patch DELETED --- --- linux-2.6-ondemand-timer.patch DELETED --- --- patch-2.6.22.2.bz2.sign DELETED --- From fedora-cvs-commits at redhat.com Thu Aug 16 20:17:20 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Thu, 16 Aug 2007 16:17:20 -0400 Subject: rpms/libvirt/FC-6 .cvsignore, 1.13, 1.14 libvirt.spec, 1.46, 1.47 sources, 1.21, 1.22 Message-ID: <200708162017.l7GKHK0K023242@cvs.devel.redhat.com> Author: veillard Update of /cvs/dist/rpms/libvirt/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv23222 Modified Files: .cvsignore libvirt.spec sources Log Message: Preparing an update to libvirt-0.3.1, Daniel Index: .cvsignore =================================================================== RCS file: /cvs/dist/rpms/libvirt/FC-6/.cvsignore,v retrieving revision 1.13 retrieving revision 1.14 diff -u -r1.13 -r1.14 --- .cvsignore 29 Sep 2006 09:32:55 -0000 1.13 +++ .cvsignore 16 Aug 2007 20:17:18 -0000 1.14 @@ -10,3 +10,4 @@ libvirt-0.1.5.tar.gz libvirt-0.1.6.tar.gz libvirt-0.1.7.tar.gz +libvirt-0.3.1.tar.gz Index: libvirt.spec =================================================================== RCS file: /cvs/dist/rpms/libvirt/FC-6/libvirt.spec,v retrieving revision 1.46 retrieving revision 1.47 diff -u -r1.46 -r1.47 --- libvirt.spec 11 Jun 2007 11:55:40 -0000 1.46 +++ libvirt.spec 16 Aug 2007 20:17:18 -0000 1.47 @@ -8,7 +8,7 @@ Summary: Library providing a simple API for virtualization Name: libvirt -Version: 0.2.3 +Version: 0.3.1 Release: 1%{?_extra_release} License: LGPL Group: Development/Libraries @@ -20,12 +20,15 @@ Requires: libxml2 Requires: readline Requires: ncurses +Requires: bridge-utils +Requires: iptables BuildRequires: xen-devel BuildRequires: libxml2-devel BuildRequires: readline-devel BuildRequires: ncurses-devel BuildRequires: gettext BuildRequires: libsysfs-devel +BuildRequires: gnutls-devel BuildRequires: /sbin/iptables Obsoletes: libvir ExclusiveArch: i386 x86_64 ia64 @@ -40,6 +43,8 @@ Group: Development/Libraries Requires: libvirt = %{version} Requires: pkgconfig +Requires: xen-devel +Requires: gnutls-devel Obsoletes: libvir-devel %description devel @@ -63,14 +68,15 @@ %patch0 -p1 %build -%configure --with-init-script=redhat --with-qemud-pid-file=%{_localstatedir}/run/libvirt_qemud.pid +%configure --with-init-script=redhat --with-qemud-pid-file=%{_localstatedir}/run/libvirt_qemud.pid --with-remote-file=%{_localstatedir}/run/libvirtd.pid make %install rm -fr %{buildroot} %makeinstall -(cd docs/examples ; make clean ; rm -rf .deps) +(cd docs/examples ; make clean ; rm -rf .deps Makefile Makefile.in) +(cd docs/examples/python ; rm -f Makefile Makefile.in) rm -f $RPM_BUILD_ROOT%{_libdir}/*.la rm -f $RPM_BUILD_ROOT%{_libdir}/*.a rm -f $RPM_BUILD_ROOT%{_libdir}/python*/site-packages/*.la @@ -131,18 +137,17 @@ %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/networks/ %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/networks/autostart %{_sysconfdir}/rc.d/init.d/libvirtd -%dir %{_sysconfdir}/libvirt -%dir %{_sysconfdir}/libvirt/qemu -%dir %{_sysconfdir}/libvirt/qemu/networks -%dir %{_sysconfdir}/libvirt/qemu/networks/autostart +%config(noreplace) %{_sysconfdir}/sysconfig/libvirtd %dir %{_datadir}/libvirt/ %dir %{_datadir}/libvirt/networks/ %{_datadir}/libvirt/networks/default.xml %dir %{_localstatedir}/run/libvirt/ %dir %{_localstatedir}/lib/libvirt/ +%dir %attr(0700, root, root) %{_localstatedir}/log/libvirt/qemu/ %attr(4755, root, root) %{_libexecdir}/libvirt_proxy -%attr(0755, root, root) %{_sbindir}/libvirt_qemud +%attr(0755, root, root) %{_sbindir}/libvirtd %doc docs/libvirt.rng +%doc docs/network.rng %files devel %defattr(-, root, root) @@ -172,6 +177,15 @@ %doc docs/examples/python %changelog +* Thu Aug 16 2007 Daniel Veillard - 0.3.1-1.fc6 +- update to 0.3.1 +- Secure remote access support +- unification of daemons +- localtime clock support +- PS/2 and USB input devices +- lots of assorted bugfixes and cleanups +- documentation and localization improvements + * Mon Jun 11 2007 Daniel Veillard - 0.2.3-1.fc6 - Release of 0.2.3 - lot of assorted bugfixes and cleanups Index: sources =================================================================== RCS file: /cvs/dist/rpms/libvirt/FC-6/sources,v retrieving revision 1.21 retrieving revision 1.22 diff -u -r1.21 -r1.22 --- sources 11 Jun 2007 11:55:40 -0000 1.21 +++ sources 16 Aug 2007 20:17:18 -0000 1.22 @@ -1 +1 @@ -3b9e192de1777c8ec801d16cbf1c7819 libvirt-0.2.3.tar.gz +9b8a2a917dbaa028dff9d7bb03ca36ae libvirt-0.3.1.tar.gz From fedora-cvs-commits at redhat.com Sat Aug 18 07:49:49 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Sat, 18 Aug 2007 03:49:49 -0400 Subject: rpms/perl/FC-6 perl.spec,1.100,1.101 Message-ID: <200708180749.l7I7nnVb003118@cvs.devel.redhat.com> Author: skasal Update of /cvs/dist/rpms/perl/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv3101 Modified Files: perl.spec Log Message: - Fix the License tags. Index: perl.spec =================================================================== RCS file: /cvs/dist/rpms/perl/FC-6/perl.spec,v retrieving revision 1.100 retrieving revision 1.101 diff -u -r1.100 -r1.101 --- perl.spec 1 Oct 2006 03:09:52 -0000 1.100 +++ perl.spec 18 Aug 2007 07:49:46 -0000 1.101 @@ -46,7 +46,11 @@ Summary: The Perl programming language Group: Development/Languages -License: Artistic or GPL +# Modules Tie::File and Getopt::Long are licenced under "GPLv2+ or Artistic," +# we have to reflect that in the sub-package containing them. +# FIXME: Digest::MD5 has a must-advertise-RSA license with an exception, +# the tag does not reflect that (yet). +License: (GPL+ or Artistic) and (GPLv2+ or Artistic) Url: http://www.perl.org/ Source0: http://www.cpan.org/authors/id/N/NW/NWCLARK/%{name}-%{version}.tar.bz2 @@ -278,6 +282,7 @@ %package suidperl Summary: suidperl, for use with setuid perl scripts Group: Development/Languages +License: (GPL+ or Artistic) Requires: perl = %{perlepoch}:%{perlver}-%{perlrel} %description suidperl @@ -589,6 +594,9 @@ %endif %changelog +* Sat Aug 18 2007 Stepan Kasal - 4:5.8.8-11 +- Fix the License tags. + * Sat Sep 30 2006 Robin Norwood - 4:5.8.8-10 - bugzilla: 208731 - remove directory support for old perl versions From fedora-cvs-commits at redhat.com Sat Aug 18 08:43:36 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Sat, 18 Aug 2007 04:43:36 -0400 Subject: rpms/perl/FC-6 perl.spec,1.101,1.102 Message-ID: <200708180843.l7I8haDX004417@cvs.devel.redhat.com> Author: skasal Update of /cvs/dist/rpms/perl/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv4402 Modified Files: perl.spec Log Message: fix typo Index: perl.spec =================================================================== RCS file: /cvs/dist/rpms/perl/FC-6/perl.spec,v retrieving revision 1.101 retrieving revision 1.102 diff -u -r1.101 -r1.102 --- perl.spec 18 Aug 2007 07:49:46 -0000 1.101 +++ perl.spec 18 Aug 2007 08:43:33 -0000 1.102 @@ -5,7 +5,7 @@ %define multilib_64_archs x86_64 s390x ppc64 sparc64 %define perlver 5.8.8 -%define perlrel 10 +%define perlrel 11 %define perlepoch 4 %{?!perl_debugging: %define perl_debugging 0} @@ -282,7 +282,7 @@ %package suidperl Summary: suidperl, for use with setuid perl scripts Group: Development/Languages -License: (GPL+ or Artistic) +License: GPL+ or Artistic Requires: perl = %{perlepoch}:%{perlver}-%{perlrel} %description suidperl From fedora-cvs-commits at redhat.com Sun Aug 19 21:43:46 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Sun, 19 Aug 2007 17:43:46 -0400 Subject: rpms/elfutils/FC-6 .cvsignore, 1.36, 1.37 elfutils-portability.patch, 1.29, 1.30 elfutils.spec, 1.81, 1.82 sources, 1.37, 1.38 Message-ID: <200708192143.l7JLhkAj005935@cvs.devel.redhat.com> Author: roland Update of /cvs/dist/rpms/elfutils/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv5914 Modified Files: .cvsignore elfutils-portability.patch elfutils.spec sources Log Message: New upstream version 0.129 Index: .cvsignore =================================================================== RCS file: /cvs/dist/rpms/elfutils/FC-6/.cvsignore,v retrieving revision 1.36 retrieving revision 1.37 diff -u -r1.36 -r1.37 --- .cvsignore 8 Jun 2007 22:55:02 -0000 1.36 +++ .cvsignore 19 Aug 2007 21:43:44 -0000 1.37 @@ -1,3 +1,3 @@ testfile16.symtab.bz2 testfile16.symtab.debug.bz2 -elfutils-0.128.tar.gz +elfutils-0.129.tar.gz elfutils-portability.patch: ChangeLog | 15 ++++++++ Makefile.in | 2 + backends/ChangeLog | 8 ++++ backends/Makefile.am | 6 ++- backends/Makefile.in | 8 ++-- config/Makefile.in | 2 + configure | 92 +++++++++++++++++++++++++++++++++++++++++++++++++-- configure.ac | 28 +++++++++++++++ lib/ChangeLog | 5 ++ lib/Makefile.am | 3 + lib/Makefile.in | 6 ++- libasm/ChangeLog | 5 ++ libasm/Makefile.am | 3 + libasm/Makefile.in | 6 ++- libcpu/ChangeLog | 5 ++ libcpu/Makefile.am | 3 + libcpu/Makefile.in | 4 +- libdw/ChangeLog | 5 ++ libdw/Makefile.am | 3 + libdw/Makefile.in | 7 ++- libdwfl/ChangeLog | 5 ++ libdwfl/Makefile.am | 3 + libdwfl/Makefile.in | 6 ++- libebl/ChangeLog | 5 ++ libebl/Makefile.am | 3 + libebl/Makefile.in | 6 ++- libelf/ChangeLog | 5 ++ libelf/Makefile.am | 6 ++- libelf/Makefile.in | 8 ++-- libelf/common.h | 4 +- m4/Makefile.in | 2 + src/ChangeLog | 13 +++++++ src/Makefile.am | 3 + src/Makefile.in | 6 ++- src/findtextrel.c | 6 ++- src/strings.c | 9 ++++ src/strip.c | 20 +++++++++-- tests/ChangeLog | 5 ++ tests/Makefile.am | 5 +- tests/Makefile.in | 6 ++- 40 files changed, 301 insertions(+), 41 deletions(-) Index: elfutils-portability.patch =================================================================== RCS file: /cvs/dist/rpms/elfutils/FC-6/elfutils-portability.patch,v retrieving revision 1.29 retrieving revision 1.30 diff -u -r1.29 -r1.30 --- elfutils-portability.patch 8 Jun 2007 22:55:02 -0000 1.29 +++ elfutils-portability.patch 19 Aug 2007 21:43:44 -0000 1.30 @@ -479,7 +479,7 @@ libcpu_i386_a_SOURCES = i386_dis.c --- elfutils/libdw/ChangeLog +++ elfutils/libdw/ChangeLog -@@ -370,6 +370,11 @@ +@@ -386,6 +386,11 @@ 2005-05-31 Roland McGrath @@ -543,7 +543,7 @@ $(COMPILE))) --- elfutils/libdwfl/ChangeLog +++ elfutils/libdwfl/ChangeLog -@@ -504,6 +504,11 @@ +@@ -531,6 +531,11 @@ 2005-07-21 Roland McGrath @@ -604,7 +604,7 @@ --- elfutils/libebl/ChangeLog +++ elfutils/libebl/ChangeLog -@@ -469,6 +469,11 @@ +@@ -476,6 +476,11 @@ * Makefile.am (libebl_*_so_SOURCES): Set to $(*_SRCS) so dependency tracking works right. @@ -665,7 +665,7 @@ --- elfutils/libelf/ChangeLog +++ elfutils/libelf/ChangeLog -@@ -225,6 +225,11 @@ +@@ -234,6 +234,11 @@ If section content hasn't been read yet, do it before looking for the block size. If no section data present, infer size of section header. @@ -797,7 +797,7 @@ YACC = @YACC@ --- elfutils/src/ChangeLog +++ elfutils/src/ChangeLog -@@ -176,6 +176,10 @@ +@@ -220,6 +220,10 @@ * elflint.c (valid_e_machine): Add EM_ALPHA. Reported by Christian Aichinger . @@ -808,7 +808,7 @@ 2006-08-08 Ulrich Drepper * elflint.c (check_dynamic): Don't require DT_HASH for DT_SYMTAB. -@@ -252,6 +256,10 @@ +@@ -296,6 +300,10 @@ * Makefile.am: Add hacks to create dependency files for non-generic linker. @@ -819,7 +819,7 @@ 2006-06-12 Ulrich Drepper * ldgeneric.c (ld_generic_generate_sections): Don't create .interp -@@ -600,6 +608,11 @@ +@@ -644,6 +652,11 @@ * readelf.c (print_debug_loc_section): Fix indentation for larger address size. @@ -980,7 +980,7 @@ cannot set access and modification date of '%s'"), fname); --- elfutils/tests/ChangeLog +++ elfutils/tests/ChangeLog -@@ -525,6 +525,11 @@ +@@ -549,6 +549,11 @@ * Makefile.am (TESTS): Add run-elflint-test.sh. (EXTRA_DIST): Add run-elflint-test.sh and testfile18.bz2. @@ -1012,7 +1012,7 @@ endif --- elfutils/tests/Makefile.in +++ elfutils/tests/Makefile.in -@@ -315,6 +315,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ +@@ -322,6 +322,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ @@ -1020,7 +1020,7 @@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -@@ -344,6 +345,7 @@ SHELL = @SHELL@ +@@ -351,6 +352,7 @@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ @@ -1028,7 +1028,7 @@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ YACC = @YACC@ -@@ -398,10 +400,10 @@ sysconfdir = @sysconfdir@ +@@ -405,10 +407,10 @@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ Index: elfutils.spec =================================================================== RCS file: /cvs/dist/rpms/elfutils/FC-6/elfutils.spec,v retrieving revision 1.81 retrieving revision 1.82 diff -u -r1.81 -r1.82 --- elfutils.spec 8 Jun 2007 22:55:02 -0000 1.81 +++ elfutils.spec 19 Aug 2007 21:43:44 -0000 1.82 @@ -1,5 +1,5 @@ -%define eu_version 0.128 -%define eu_release 2 +%define eu_version 0.129 +%define eu_release 1 %if %{?_with_compat:1}%{!?_with_compat:0} %define compat 1 @@ -22,7 +22,7 @@ %else Release: 0.%{eu_release} %endif -License: GPL +License: GPLv2 with exceptions Group: Development/Tools Source: elfutils-%{version}.tar.gz Patch1: elfutils-portability.patch @@ -153,9 +153,6 @@ %patch2 -p1 -# XXX trivial patch for 0.128 -sed -i /ifndef/s/PACKAGE/PACKAGE_NAME/ libdwfl/libdwflP.h - %build # Remove -Wall from default flags. The makefiles enable enough warnings # themselves, and they use -Werror. Appending -Wall defeats the cases where @@ -262,6 +259,13 @@ %{_libdir}/libelf.a %changelog +* Tue Aug 14 2007 Roland McGrath - 0.129-1 +- Update to 0.129 + - readelf: new options --hex-dump (or -x), --strings (or -p) (#250973) + - addr2line: new option --symbols (or -S) + - libdw: dwarf_getscopes fixes (#230235) + - libdwfl: dwfl_module_addrsym fixes (#249490) + * Fri Jun 8 2007 Roland McGrath - 0.128-2 - Update to 0.128 - new program: unstrip Index: sources =================================================================== RCS file: /cvs/dist/rpms/elfutils/FC-6/sources,v retrieving revision 1.37 retrieving revision 1.38 diff -u -r1.37 -r1.38 --- sources 8 Jun 2007 22:55:02 -0000 1.37 +++ sources 19 Aug 2007 21:43:44 -0000 1.38 @@ -1,3 +1,3 @@ 07a924423a05b1bf6d0f9fe8b35dbe6b testfile16.symtab.bz2 bd40d1aaca8eaf1c7aea54bf4b29bda2 testfile16.symtab.debug.bz2 -4da87e49616101ec256e313218c421ef elfutils-0.128.tar.gz +237bb2ea0c37b41e69c5a50b956a56c1 elfutils-0.129.tar.gz From fedora-cvs-commits at redhat.com Mon Aug 20 09:04:23 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Mon, 20 Aug 2007 05:04:23 -0400 Subject: rpms/smartmontools/FC-6 smartmontools.spec,1.27,1.28 Message-ID: <200708200904.l7K94NlS016634@cvs.devel.redhat.com> Author: tsmetana Update of /cvs/dist/rpms/smartmontools/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv16619 Modified Files: smartmontools.spec Log Message: * Mon Aug 20 2007 Tomas Smetana - 1:5.37-1.2 - update license tag Index: smartmontools.spec =================================================================== RCS file: /cvs/dist/rpms/smartmontools/FC-6/smartmontools.spec,v retrieving revision 1.27 retrieving revision 1.28 diff -u -r1.27 -r1.28 --- smartmontools.spec 26 Apr 2007 13:35:32 -0000 1.27 +++ smartmontools.spec 20 Aug 2007 09:04:21 -0000 1.28 @@ -1,10 +1,10 @@ Summary: Tools for monitoring SMART capable hard disks Name: smartmontools Version: 5.37 -Release: 1.1%{?dist} +Release: 1.2%{?dist} Epoch: 1 Group: System Environment/Base -License: GPL +License: GPLv2+ URL: http://smartmontools.sourceforge.net/ Source0: http://prdownloads.sourceforge.net/%{name}/%{name}-%{version}.tar.gz Source1: smartd.initd @@ -75,6 +75,9 @@ %changelog +* Mon Aug 20 2007 Tomas Smetana - 1:5.37-1.2 +- update license tag + * Thu Apr 26 2007 Tomas Smetana - 1:5.37-1.1 - fix wrong version in changelog - rebuild From fedora-cvs-commits at redhat.com Mon Aug 20 10:32:59 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Mon, 20 Aug 2007 06:32:59 -0400 Subject: rpms/sysstat/FC-6 sysstat-7.0.0-cve_2007_3852.patch, NONE, 1.1 sysstat.spec, 1.46, 1.47 Message-ID: <200708201032.l7KAWxFq017931@cvs.devel.redhat.com> Author: varekova Update of /cvs/dist/rpms/sysstat/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv17914 Modified Files: sysstat.spec Added Files: sysstat-7.0.0-cve_2007_3852.patch Log Message: - fix cve-2007-3852 - sysstat insecure temporary file usage sysstat-7.0.0-cve_2007_3852.patch: sysstat.in | 11 +++++------ 1 files changed, 5 insertions(+), 6 deletions(-) --- NEW FILE sysstat-7.0.0-cve_2007_3852.patch --- --- sysstat-7.0.0/sysstat.in.pom 2007-08-20 12:02:24.000000000 +0200 +++ sysstat-7.0.0/sysstat.in 2007-08-20 12:26:21.000000000 +0200 @@ -27,22 +27,21 @@ # RETVAL=0 -# Remove flag indicating that sadc was successfully launched -rm -f /tmp/sysstat.run # See how we were called. case "$1" in start) + exitCodeIndicator="$(mktemp /tmp/sysstat-XXXXXX)" || exit 1 echo -n "Calling the system activity data collector (sadc): " - SU SA_LIB_DIR/sadc -F -L - && touch /tmp/sysstat.run QUOTE + SU SA_LIB_DIR/sadc -F -L - || rm -f ${exitCodeIndicator} QUOTE # Try to guess if sadc was successfully launched. The difficulty # here is that the exit code is lost when the above command is # run via "su foo -c ..." - if [ ! -f /tmp/sysstat.run ]; then - RETVAL=1 + if [ -f "${exitCodeIndicator}" ]; then + rm -f ${exitCodeIndicator} else - rm -f /tmp/sysstat.run + RETVAL=1 fi echo ;; Index: sysstat.spec =================================================================== RCS file: /cvs/dist/rpms/sysstat/FC-6/sysstat.spec,v retrieving revision 1.46 retrieving revision 1.47 diff -u -r1.46 -r1.47 --- sysstat.spec 22 Jan 2007 09:27:28 -0000 1.46 +++ sysstat.spec 20 Aug 2007 10:32:56 -0000 1.47 @@ -1,6 +1,6 @@ Name: sysstat Version: 7.0.0 -Release: 4%{?dist} +Release: 5%{?dist} Summary: The sar and iostat system monitoring commands. License: GPL Group: Applications/System @@ -16,6 +16,7 @@ Patch8: sysstat-7.0.0-nfs.patch Patch9: sysstat-7.0.0-nfs2.patch Patch10: sysstat-7.0.0-realloc.patch +Patch11: sysstat-7.0.0-cve_2007_3852.patch BuildRoot: %{_tmppath}/%{name}-%{version}-root @@ -38,6 +39,7 @@ %patch8 -p1 -b .nfs %patch9 -p1 -b .nfs2 %patch10 -p1 -b .realloc +%patch11 -p1 -b .cve3852 %build # FIXME: I need to fix the upstream Makefile to use LIBDIR et al. properly and @@ -117,6 +119,10 @@ /var/log/sa %changelog +* Mon Aug 20 2007 Ivana Varekova - 7.0.0-5 +- fix cve-2007-3852 - + sysstat insecure temporary file usage + * Mon Jan 22 2007 Ivana Varekova - 7.0.0-4 - Resolves: 223566 sysstat complains "realloc: Success" From fedora-cvs-commits at redhat.com Tue Aug 21 10:01:15 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Tue, 21 Aug 2007 06:01:15 -0400 Subject: rpms/rhythmbox/FC-6 .cvsignore, 1.25, 1.26 rhythmbox.spec, 1.90, 1.91 sources, 1.28, 1.29 rhythmbox-0.9.8-magnatune-buy-confirmation.patch, 1.2, NONE Message-ID: <200708211001.l7LA1F3a016925@cvs.devel.redhat.com> Author: bnocera Update of /cvs/dist/rpms/rhythmbox/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv16889 Modified Files: .cvsignore rhythmbox.spec sources Removed Files: rhythmbox-0.9.8-magnatune-buy-confirmation.patch Log Message: * Tue Aug 21 2007 - Bastien Nocera - 0.10.1-1.fc6 - Update to 0.10.1 - Removed upstreamed patch0 Index: .cvsignore =================================================================== RCS file: /cvs/dist/rpms/rhythmbox/FC-6/.cvsignore,v retrieving revision 1.25 retrieving revision 1.26 diff -u -r1.25 -r1.26 --- .cvsignore 15 Mar 2007 14:37:44 -0000 1.25 +++ .cvsignore 21 Aug 2007 10:01:13 -0000 1.26 @@ -1 +1 @@ -rhythmbox-0.9.8.tar.bz2 +rhythmbox-0.10.1.tar.bz2 Index: rhythmbox.spec =================================================================== RCS file: /cvs/dist/rpms/rhythmbox/FC-6/rhythmbox.spec,v retrieving revision 1.90 retrieving revision 1.91 diff -u -r1.90 -r1.91 --- rhythmbox.spec 28 Mar 2007 15:09:31 -0000 1.90 +++ rhythmbox.spec 21 Aug 2007 10:01:13 -0000 1.91 @@ -2,8 +2,8 @@ Name: rhythmbox Summary: Music Management Application -Version: 0.9.8 -Release: 2%{?dist} +Version: 0.10.1 +Release: 1%{?dist} License: GPL Group: Applications/Multimedia URL: http://www.gnome.org/projects/rhythmbox/ @@ -42,8 +42,6 @@ ExcludeArch: s390 s390x -Patch0: rhythmbox-0.9.8-magnatune-buy-confirmation.patch - %description Rhythmbox is an integrated music management application based on the powerful GStreamer media framework. It has a number of features, including an easy to @@ -53,8 +51,6 @@ %prep %setup -q -%patch0 -p2 -b .magnatune - %build # work around a gstreamer bug @@ -144,6 +140,10 @@ %{_libexecdir}/rhythmbox-metadata %changelog +* Tue Aug 21 2007 - Bastien Nocera - 0.10.1-1.fc6 +- Update to 0.10.1 +- Removed upstreamed patch0 + * Wed Mar 28 2007 - Bastien Nocera - 0.9.8-2.fc6 - Add upstream patch for bug 234216 Index: sources =================================================================== RCS file: /cvs/dist/rpms/rhythmbox/FC-6/sources,v retrieving revision 1.28 retrieving revision 1.29 diff -u -r1.28 -r1.29 --- sources 15 Mar 2007 14:37:44 -0000 1.28 +++ sources 21 Aug 2007 10:01:13 -0000 1.29 @@ -1 +1 @@ -648400feb794538207b4fe95f0917d1f rhythmbox-0.9.8.tar.bz2 +6ab510d54654d2973f91b5d0de54f854 rhythmbox-0.10.1.tar.bz2 --- rhythmbox-0.9.8-magnatune-buy-confirmation.patch DELETED --- From fedora-cvs-commits at redhat.com Tue Aug 21 20:11:24 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Tue, 21 Aug 2007 16:11:24 -0400 Subject: rpms/kernel/FC-6 patch-2.6.22.4.bz2.sign, NONE, 1.1 .cvsignore, 1.568, 1.569 kernel-2.6.spec, 1.3011, 1.3012 sources, 1.532, 1.533 upstream, 1.452, 1.453 patch-2.6.22.3.bz2.sign, 1.1, NONE Message-ID: <200708212011.l7LKBOci031162@cvs.devel.redhat.com> Author: cebbert Update of /cvs/dist/rpms/kernel/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv31141 Modified Files: .cvsignore kernel-2.6.spec sources upstream Added Files: patch-2.6.22.4.bz2.sign Removed Files: patch-2.6.22.3.bz2.sign Log Message: * Tue Aug 21 2007 Chuck Ebbert - Linux 2.6.22.4 --- NEW FILE patch-2.6.22.4.bz2.sign --- -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.7 (GNU/Linux) Comment: See http://www.kernel.org/signature.html for info iD8DBQBGym08yGugalF9Dw4RAqVXAJwKdQDyuwiG2d05Qtt+c+yJ8DkSNwCdEr2c 1Bm6ccKvTP07YOiRl5wZZcs= =WbgR -----END PGP SIGNATURE----- Index: .cvsignore =================================================================== RCS file: /cvs/dist/rpms/kernel/FC-6/.cvsignore,v retrieving revision 1.568 retrieving revision 1.569 diff -u -r1.568 -r1.569 --- .cvsignore 15 Aug 2007 20:35:31 -0000 1.568 +++ .cvsignore 21 Aug 2007 20:11:21 -0000 1.569 @@ -3,4 +3,4 @@ temp-* kernel-2.6.22 linux-2.6.22.tar.bz2 -patch-2.6.22.3.bz2 +patch-2.6.22.4.bz2 Index: kernel-2.6.spec =================================================================== RCS file: /cvs/dist/rpms/kernel/FC-6/kernel-2.6.spec,v retrieving revision 1.3011 retrieving revision 1.3012 diff -u -r1.3011 -r1.3012 --- kernel-2.6.spec 15 Aug 2007 20:35:31 -0000 1.3011 +++ kernel-2.6.spec 21 Aug 2007 20:11:21 -0000 1.3012 @@ -30,7 +30,7 @@ ## If this is a released kernel ## %if 0%{?released_kernel} # Do we have a 2.6.21.y update to apply? -%define stable_update 3 +%define stable_update 4 # Set rpm version accordingly %if 0%{?stable_update} %define stablerev .%{stable_update} @@ -2210,6 +2210,9 @@ %endif %changelog +* Tue Aug 21 2007 Chuck Ebbert +- Linux 2.6.22.4 + * Wed Aug 15 2007 Chuck Ebbert - Linux 2.6.22.3 Index: sources =================================================================== RCS file: /cvs/dist/rpms/kernel/FC-6/sources,v retrieving revision 1.532 retrieving revision 1.533 diff -u -r1.532 -r1.533 --- sources 15 Aug 2007 20:35:33 -0000 1.532 +++ sources 21 Aug 2007 20:11:22 -0000 1.533 @@ -1,2 +1,2 @@ 2e230d005c002fb3d38a3ca07c0200d0 linux-2.6.22.tar.bz2 -2ada3008a04887c7aac105644333bd31 patch-2.6.22.3.bz2 +9041cc4a8570b5762a68b23235b6acd4 patch-2.6.22.4.bz2 Index: upstream =================================================================== RCS file: /cvs/dist/rpms/kernel/FC-6/upstream,v retrieving revision 1.452 retrieving revision 1.453 diff -u -r1.452 -r1.453 --- upstream 15 Aug 2007 20:35:33 -0000 1.452 +++ upstream 21 Aug 2007 20:11:22 -0000 1.453 @@ -1,2 +1,2 @@ linux-2.6.22.tar.bz2 -patch-2.6.22.3.bz2 +patch-2.6.22.4.bz2 --- patch-2.6.22.3.bz2.sign DELETED --- From fedora-cvs-commits at redhat.com Tue Aug 21 21:00:27 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Tue, 21 Aug 2007 17:00:27 -0400 Subject: rpms/kernel/FC-6 linux-2.6-gfs-locking-exports.patch, NONE, 1.1 linux-2.6-net-sky2-dont-clear-phy-power-bits.patch, NONE, 1.1 linux-2.6-x86_64-e820_hole_size.patch, NONE, 1.1 patch-2.6.22.5-rc1.bz2, NONE, 1.1 kernel-2.6.spec, 1.3012, 1.3013 linux-2.6-serial-revert-platform-conversion.patch, 1.1, NONE linux-2.6-sky2-restore-workarounds.patch, 1.1, NONE Message-ID: <200708212100.l7LL0RZk032755@cvs.devel.redhat.com> Author: cebbert Update of /cvs/dist/rpms/kernel/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv32733 Modified Files: kernel-2.6.spec Added Files: linux-2.6-gfs-locking-exports.patch linux-2.6-net-sky2-dont-clear-phy-power-bits.patch linux-2.6-x86_64-e820_hole_size.patch patch-2.6.22.5-rc1.bz2 Removed Files: linux-2.6-serial-revert-platform-conversion.patch linux-2.6-sky2-restore-workarounds.patch Log Message: * Tue Aug 21 2007 Chuck Ebbert - 2.6.22.5-rc1 - fix e820 memory hole sizing on x86_64 - export GFS2 symbols for lock modules - sky2: don't clear PHY power bits linux-2.6-gfs-locking-exports.patch: locking.c | 4 +++- 1 files changed, 3 insertions(+), 1 deletion(-) --- NEW FILE linux-2.6-gfs-locking-exports.patch --- Please add the following patch to the Fedora kernel (F-7, FC-6 & devel). This was originally in the FC-6 kernel but seems to have vanished. This patch isn't going to get sent upstream for various reasons but we need it in Fedora so that the GFS kernel stuff will build against the GFS2 lock modules. Steve. ----------------------------------------------------------------------------- --- linux-2.6.17.noarch/fs/gfs2/locking.c~ 2006-08-10 13:33:09.000000000 -0400 +++ linux-2.6.17.noarch/fs/gfs2/locking.c 2006-08-10 13:33:23.000000000 -0400 @@ -188,4 +188,6 @@ void __init gfs2_init_lmh(void) EXPORT_SYMBOL_GPL(gfs2_register_lockproto); EXPORT_SYMBOL_GPL(gfs2_unregister_lockproto); - +EXPORT_SYMBOL_GPL(gfs2_withdraw_lockproto); +EXPORT_SYMBOL_GPL(gfs2_mount_lockproto); +EXPORT_SYMBOL_GPL(gfs2_unmount_lockproto); linux-2.6-net-sky2-dont-clear-phy-power-bits.patch: sky2.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) --- NEW FILE linux-2.6-net-sky2-dont-clear-phy-power-bits.patch --- There are special PHY settings available on Yukon EC-U chip that should not get cleared. This should solve mysterious errors on some motherboards (like Gigabyte DS-3). Signed-off-by: Stephen Hemminger --- a/drivers/net/sky2.c 2007-08-21 11:08:27.000000000 -0700 +++ b/drivers/net/sky2.c 2007-08-21 11:09:03.000000000 -0700 @@ -657,8 +657,8 @@ static void sky2_mac_init(struct sky2_hw int i; const u8 *addr = hw->dev[port]->dev_addr; - sky2_write32(hw, SK_REG(port, GPHY_CTRL), GPC_RST_SET); - sky2_write32(hw, SK_REG(port, GPHY_CTRL), GPC_RST_CLR); + sky2_write8(hw, SK_REG(port, GPHY_CTRL), GPC_RST_SET); + sky2_write8(hw, SK_REG(port, GPHY_CTRL), GPC_RST_CLR); sky2_write8(hw, SK_REG(port, GMAC_CTRL), GMC_RST_CLR); linux-2.6-x86_64-e820_hole_size.patch: arch/x86_64/kernel/e820.c | 54 ++++++++++++---------------- b/arch/x86_64/kernel/e820.c | 82 +++++++++++++++++++++++++------------------- b/arch/x86_64/mm/numa.c | 8 +--- 3 files changed, 73 insertions(+), 71 deletions(-) --- NEW FILE linux-2.6-x86_64-e820_hole_size.patch --- Gitweb: http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3af044e0f832cfa3fcdce14dc30678b79dd36995 Commit: 3af044e0f832cfa3fcdce14dc30678b79dd36995 Parent: 34feb2c83beb3bdf13535a36770f7e50b47ef299 Author: David Rientjes AuthorDate: Sat Jul 21 17:10:31 2007 +0200 Committer: Linus Torvalds CommitDate: Sat Jul 21 18:37:10 2007 -0700 x86_64: extract helper function from e820_register_active_regions The logic in e820_find_active_regions() for determining the true active regions for an e820 entry given a range of PFN's is needed for e820_hole_size() as well. e820_hole_size() is called from the NUMA emulation code to determine the reserved area within an address range on a per-node basis. Its logic should duplicate that of finding active regions in an e820 entry because these are the only true ranges we may register anyway. [akpm at linux-foundation.org: cleanup] Cc: Mel Gorman Signed-off-by: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Andi Kleen Signed-off-by: Linus Torvalds --- arch/x86_64/kernel/e820.c | 82 ++++++++++++++++++++++++++------------------ 1 files changed, 48 insertions(+), 34 deletions(-) diff --git a/arch/x86_64/kernel/e820.c b/arch/x86_64/kernel/e820.c index 13c6c37..2570643 100644 --- a/arch/x86_64/kernel/e820.c +++ b/arch/x86_64/kernel/e820.c @@ -289,47 +289,61 @@ void __init e820_mark_nosave_regions(void) } } -/* Walk the e820 map and register active regions within a node */ -void __init -e820_register_active_regions(int nid, unsigned long start_pfn, - unsigned long end_pfn) +/* + * Finds an active region in the address range from start_pfn to end_pfn and + * returns its range in ei_startpfn and ei_endpfn for the e820 entry. + */ +static int __init e820_find_active_region(const struct e820entry *ei, + unsigned long start_pfn, + unsigned long end_pfn, + unsigned long *ei_startpfn, + unsigned long *ei_endpfn) { - int i; - unsigned long ei_startpfn, ei_endpfn; - for (i = 0; i < e820.nr_map; i++) { - struct e820entry *ei = &e820.map[i]; - ei_startpfn = round_up(ei->addr, PAGE_SIZE) >> PAGE_SHIFT; - ei_endpfn = round_down(ei->addr + ei->size, PAGE_SIZE) - >> PAGE_SHIFT; + *ei_startpfn = round_up(ei->addr, PAGE_SIZE) >> PAGE_SHIFT; + *ei_endpfn = round_down(ei->addr + ei->size, PAGE_SIZE) >> PAGE_SHIFT; - /* Skip map entries smaller than a page */ - if (ei_startpfn >= ei_endpfn) - continue; + /* Skip map entries smaller than a page */ + if (*ei_startpfn >= *ei_endpfn) + return 0; - /* Check if end_pfn_map should be updated */ - if (ei->type != E820_RAM && ei_endpfn > end_pfn_map) - end_pfn_map = ei_endpfn; + /* Check if end_pfn_map should be updated */ + if (ei->type != E820_RAM && *ei_endpfn > end_pfn_map) + end_pfn_map = *ei_endpfn; - /* Skip if map is outside the node */ - if (ei->type != E820_RAM || - ei_endpfn <= start_pfn || - ei_startpfn >= end_pfn) - continue; + /* Skip if map is outside the node */ + if (ei->type != E820_RAM || *ei_endpfn <= start_pfn || + *ei_startpfn >= end_pfn) + return 0; - /* Check for overlaps */ - if (ei_startpfn < start_pfn) - ei_startpfn = start_pfn; - if (ei_endpfn > end_pfn) - ei_endpfn = end_pfn; + /* Check for overlaps */ + if (*ei_startpfn < start_pfn) + *ei_startpfn = start_pfn; + if (*ei_endpfn > end_pfn) + *ei_endpfn = end_pfn; - /* Obey end_user_pfn to save on memmap */ - if (ei_startpfn >= end_user_pfn) - continue; - if (ei_endpfn > end_user_pfn) - ei_endpfn = end_user_pfn; + /* Obey end_user_pfn to save on memmap */ + if (*ei_startpfn >= end_user_pfn) + return 0; + if (*ei_endpfn > end_user_pfn) + *ei_endpfn = end_user_pfn; - add_active_range(nid, ei_startpfn, ei_endpfn); - } + return 1; +} + +/* Walk the e820 map and register active regions within a node */ +void __init +e820_register_active_regions(int nid, unsigned long start_pfn, + unsigned long end_pfn) +{ + unsigned long ei_startpfn; + unsigned long ei_endpfn; + int i; + + for (i = 0; i < e820.nr_map; i++) + if (e820_find_active_region(&e820.map[i], + start_pfn, end_pfn, + &ei_startpfn, &ei_endpfn)) + add_active_range(nid, ei_startpfn, ei_endpfn); } /* Gitweb: http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a7e96629efcab1ccea3a376f3f5683c8d9e882c1 Commit: a7e96629efcab1ccea3a376f3f5683c8d9e882c1 Parent: bc2cea6a34fdb30f118ec75db39a46a191870607 Author: David Rientjes AuthorDate: Sat Jul 21 17:11:29 2007 +0200 Committer: Linus Torvalds CommitDate: Sat Jul 21 18:37:14 2007 -0700 x86_64: fix e820_hole_size based on address ranges e820_hole_size() now uses the newly extracted helper function, e820_find_active_region(), to determine the size of usable RAM in a range of PFN's. This was previously broken because of two reasons: - The start and end PFN's of each e820 entry were not properly rounded prior to excluding those entries in the range, and - Entries smaller than a page were not properly excluded from being accumulated. This resulted in emulated nodes being incorrectly mapped to ranges that were completely reserved and not candidates for being registered as active ranges. Signed-off-by: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Andi Kleen Signed-off-by: Linus Torvalds --- arch/x86_64/kernel/e820.c | 54 +++++++++++++++++++------------------------- arch/x86_64/mm/numa.c | 8 +----- 2 files changed, 25 insertions(+), 37 deletions(-) diff --git a/arch/x86_64/kernel/e820.c b/arch/x86_64/kernel/e820.c index 2570643..62e051b 100644 --- a/arch/x86_64/kernel/e820.c +++ b/arch/x86_64/kernel/e820.c @@ -194,37 +194,6 @@ unsigned long __init e820_end_of_ram(void) } /* - * Find the hole size in the range. - */ -unsigned long __init e820_hole_size(unsigned long start, unsigned long end) -{ - unsigned long ram = 0; - int i; - - for (i = 0; i < e820.nr_map; i++) { - struct e820entry *ei = &e820.map[i]; - unsigned long last, addr; - - if (ei->type != E820_RAM || - ei->addr+ei->size <= start || - ei->addr >= end) - continue; - - addr = round_up(ei->addr, PAGE_SIZE); - if (addr < start) - addr = start; - - last = round_down(ei->addr + ei->size, PAGE_SIZE); - if (last >= end) - last = end; - - if (last > addr) - ram += last - addr; - } - return ((end - start) - ram); -} - -/* * Mark e820 reserved areas as busy for the resource manager. */ void __init e820_reserve_resources(void) @@ -364,6 +333,29 @@ void __init add_memory_region(unsigned long start, unsigned long size, int type) e820.nr_map++; } +/* + * Find the hole size (in bytes) in the memory range. + * @start: starting address of the memory range to scan + * @end: ending address of the memory range to scan + */ +unsigned long __init e820_hole_size(unsigned long start, unsigned long end) +{ + unsigned long start_pfn = start >> PAGE_SHIFT; + unsigned long end_pfn = end >> PAGE_SHIFT; + unsigned long ei_startpfn; + unsigned long ei_endpfn; + unsigned long ram = 0; + int i; + + for (i = 0; i < e820.nr_map; i++) { + if (e820_find_active_region(&e820.map[i], + start_pfn, end_pfn, + &ei_startpfn, &ei_endpfn)) + ram += ei_endpfn - ei_startpfn; + } + return end - start - (ram << PAGE_SHIFT); +} + void __init e820_print_map(char *who) { int i; diff --git a/arch/x86_64/mm/numa.c b/arch/x86_64/mm/numa.c index 30bf804..0191b1c 100644 --- a/arch/x86_64/mm/numa.c +++ b/arch/x86_64/mm/numa.c @@ -273,9 +273,6 @@ void __init numa_init_array(void) #ifdef CONFIG_NUMA_EMU /* Numa emulation */ -#define E820_ADDR_HOLE_SIZE(start, end) \ - (e820_hole_size((start) >> PAGE_SHIFT, (end) >> PAGE_SHIFT) << \ - PAGE_SHIFT) char *cmdline __initdata; /* @@ -319,7 +316,7 @@ static int __init split_nodes_equally(struct bootnode *nodes, u64 *addr, return -1; if (num_nodes > MAX_NUMNODES) num_nodes = MAX_NUMNODES; - size = (max_addr - *addr - E820_ADDR_HOLE_SIZE(*addr, max_addr)) / + size = (max_addr - *addr - e820_hole_size(*addr, max_addr)) / num_nodes; /* * Calculate the number of big nodes that can be allocated as a result @@ -347,7 +344,7 @@ static int __init split_nodes_equally(struct bootnode *nodes, u64 *addr, if (i == num_nodes + node_start - 1) end = max_addr; else - while (end - *addr - E820_ADDR_HOLE_SIZE(*addr, end) < + while (end - *addr - e820_hole_size(*addr, end) < size) { end += FAKE_NODE_MIN_SIZE; if (end > max_addr) { @@ -488,7 +485,6 @@ out: numa_init_array(); return 0; } -#undef E820_ADDR_HOLE_SIZE #endif /* CONFIG_NUMA_EMU */ void __init numa_initmem_init(unsigned long start_pfn, unsigned long end_pfn) --- NEW FILE patch-2.6.22.5-rc1.bz2 --- BZh91AY&SY??fd K?L?X?y??s?#???I?DDUV5% ??in??^???W?Y???????Z>"?lWfU?f????K????%!wmZU?K?)#?n""1EPK(?3??????SQ????,???)?n??kP?~O?U?????#?(?Va??C?Hz]??&?4*Nr K???#!K???UWEU]]??t???????d???IwVYv?UX?R? ]PU\* ?a?C???=?o?G???Y?????;??l????mW??x???dHO?h???; ????1????????y??zf????yn?? ????.??=?Y?N?r#?;?c?N?4?w0?s.????%?((8&?$???????F?`VT2P??,\?@I??????0???H?????? ????n?L????Z=^??6????? G????i%B? ? ??`(?K???9pH~?p??.x?H? ??w?s?h???b?U|%?b*????????T_o??ca??v?KC'?? ??C=?cs??D???????vy????w??k??2TI?!?t?(???? (:?@d????`? }?{?o?N?~?='??4q ???*?2??;T/????u??t????????>GV8%?@??m?ES7????c???/n??v?Fc???-???Q???D?_?c?4??w?5?^?2T;?}????????n??QD??7Y?T?*]P?j+????l/?e??$??Ig^?x???Ou}??1? ??1+*?????< ?t?_v??u??? a???L?wC???t????y????(?%????Z4|?A<6y?N3T?1????????#?w^9|?????l%???b/ e9???w? 3 ?K? mk ??g?2p???=?Js?>z=6?8?Qc???M?p??>???D??uEt6?????????+O????????w??????? ?F?????')??:?Y?\?sr????$??ux?:>???Nn???A??"??? <% S???$??)rD??? q?N?u?BJ??? ??5????ntx??9?T?$??c!?p*?x?%b|???8T??H?<J?-??>Z???=??????(??l??9???L?V???b??g?8?'_#4?7????s??%?h?Nf??X?w?]o???????????u5?f?.?y?????0??Rz??? ???Y?^?d??q???}?E????????Q.???%? ?s^????y??????>R?X?yd???%???^???@??S*H?????#?P???v?,pH?")3?,??Vt!b??N????S9Ro????????8??a?j??u?D6b?x?????s?v?k?=G??:??S#???????{? k?E??T?b???9b??)~?o?=q^?$~?#???f6??Go>?s"?H??)?D  > \??5?#??!r;?? m?? ?,?AQ?V?#?.t?N ybh?a0?"P?7?>?????E????f???? ???r???Qk??2??Y????=???d??Z?r????/~$??|??9?U)???2u?C ??u? ?&?????????TJ2?z(???O?)k????? w???0j??3 ????9??'?4??Tv?[??n5?MF??8???`n3??G?)??]????$????#8?y??Ny????j?o??????b?(?(??$1:??of? (??(??3I?L`??:??1`?\?QN?????`1??a? ??? ?|????b? 3:?Z*?W[??}?9?$??7?P g??w?'9??c?C?Bb?B|}}~1??C???fA?X_m at j??????r?P(??Zg??/ y?J???UY????bC?=+0_XM?'?|tI ????0??;?N?? ?oL?Ec?#2(d???U??B|?I.c?VIRK@?R????~? ?$"?o??2??]?&8???????QqQ?>? QQ?? 1I??????????Yd?~ ????*?l???:?#????? ?u ?-?0M?[+?????cv??{Y?R?WB??????HG1yr+????:??X?d???K???vn+???????????? ??i?e???,fD?????,??q???s?B???????0l? ??.g5??v$?,M ???'Z?????n?? 5 @??y ?D?? ??Pr?^??9??X2kE??? ?]? r??8?A?????]????ab6<?? +- 2.6.22.5-rc1 +- fix e820 memory hole sizing on x86_64 +- export GFS2 symbols for lock modules +- sky2: don't clear PHY power bits + +* Tue Aug 21 2007 Chuck Ebbert - Linux 2.6.22.4 * Wed Aug 15 2007 Chuck Ebbert --- linux-2.6-serial-revert-platform-conversion.patch DELETED --- --- linux-2.6-sky2-restore-workarounds.patch DELETED --- From fedora-cvs-commits at redhat.com Thu Aug 23 11:19:40 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Thu, 23 Aug 2007 07:19:40 -0400 Subject: rpms/tzdata/FC-6 .cvsignore, 1.33, 1.34 sources, 1.35, 1.36 tzdata.spec, 1.43, 1.44 Message-ID: <200708231119.l7NBJeIK023588@cvs.devel.redhat.com> Author: pmachata Update of /cvs/dist/rpms/tzdata/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv23571 Modified Files: .cvsignore sources tzdata.spec Log Message: - Fix licensing tag. - Upstream 2007g - Egypt switches the September 7, not September 28 - Daviess, Dubous, Knox, Martin, and Pike Counties, Indiana, switch from central to eastern time in November - South Australia, Tasmania, Victoria, New South Wales and Lord Howe Island are changing their DST rules effective next year - Sync several Antarctic station's rules with the New Zealand - leapseconds contain changes from the most recent IERS bulletin Index: .cvsignore =================================================================== RCS file: /cvs/dist/rpms/tzdata/FC-6/.cvsignore,v retrieving revision 1.33 retrieving revision 1.34 diff -u -r1.33 -r1.34 --- .cvsignore 25 Jun 2007 13:12:15 -0000 1.33 +++ .cvsignore 23 Aug 2007 11:19:38 -0000 1.34 @@ -1,3 +1,3 @@ -tzcode2007f.tar.gz -tzdata2007f.tar.gz +tzcode2007g.tar.gz +tzdata2007g.tar.gz tzdata-base-0.tar.bz2 Index: sources =================================================================== RCS file: /cvs/dist/rpms/tzdata/FC-6/sources,v retrieving revision 1.35 retrieving revision 1.36 diff -u -r1.35 -r1.36 --- sources 25 Jun 2007 13:12:15 -0000 1.35 +++ sources 23 Aug 2007 11:19:38 -0000 1.36 @@ -1,3 +1,3 @@ -fdfa8b941827a33e7a43aaf039ea9b67 tzcode2007f.tar.gz -799ca289ee9e2f22ce6e3f9fb9c5f847 tzdata2007f.tar.gz +a5da1f7650c541fa61f9ddd0c10b5332 tzcode2007g.tar.gz +04152531a69c07b6cb08bacfd425aae1 tzdata2007g.tar.gz 906a4c98cc5240f416524a256b039c42 tzdata-base-0.tar.bz2 Index: tzdata.spec =================================================================== RCS file: /cvs/dist/rpms/tzdata/FC-6/tzdata.spec,v retrieving revision 1.43 retrieving revision 1.44 diff -u -r1.43 -r1.44 --- tzdata.spec 25 Jun 2007 13:12:15 -0000 1.43 +++ tzdata.spec 23 Aug 2007 11:19:38 -0000 1.44 @@ -1,10 +1,10 @@ Summary: Timezone data Name: tzdata -Version: 2007f +Version: 2007g %define tzdata_version %{version} %define tzcode_version %{version} Release: 1%{?dist} -License: GPL +License: Public Domain, LGPLv2+ Group: System Environment/Base Source0: tzdata-base-0.tar.bz2 Source1: ftp://elsie.nci.nih.gov/pub/tzdata%{tzdata_version}.tar.gz @@ -52,6 +52,17 @@ %doc tzcode%{tzcode_version}/tz-link.html %changelog +* Thu Aug 23 2007 Petr Machata - 2007g-1 +- Fix licensing tag. +- Upstream 2007g + - Egypt switches the September 7, not September 28 + - Daviess, Dubous, Knox, Martin, and Pike Counties, Indiana, switch + from central to eastern time in November + - South Australia, Tasmania, Victoria, New South Wales and Lord Howe + Island are changing their DST rules effective next year + - Sync several Antarctic station's rules with the New Zealand + - leapseconds contain changes from the most recent IERS bulletin + * Mon Jun 25 2007 Petr Machata - 2007f-1 - Upstream 2007f - New Zealand is extending DST, starting later this year. From fedora-cvs-commits at redhat.com Thu Aug 23 13:58:35 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Thu, 23 Aug 2007 09:58:35 -0400 Subject: rpms/dmraid/devel dmraid-1.0.0.rc14-nv-segfault.patch, NONE, 1.1 dmraid.spec, 1.82, 1.83 Message-ID: <200708231358.l7NDwZta027471@cvs.devel.redhat.com> Author: heinzm Update of /cvs/dist/rpms/dmraid/devel In directory cvs.devel.redhat.com:/tmp/cvs-serv27451 Modified Files: dmraid.spec Added Files: dmraid-1.0.0.rc14-nv-segfault.patch Log Message: nv big endian segfault fix dmraid-1.0.0.rc14-nv-segfault.patch: nv.c | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) --- NEW FILE dmraid-1.0.0.rc14-nv-segfault.patch --- --- ./lib/format/ataraid/nv.c.bigendian 2007-08-16 13:32:05.000000000 +0100 +++ ./lib/format/ataraid/nv.c 2007-08-16 13:32:21.000000000 +0100 @@ -155,7 +155,7 @@ CVT32(nv->unitFlags); CVT32(array->version); - while (i--); + while (i--) CVT32(array->signature[i]); CVT32(array->raidLevel); Index: dmraid.spec =================================================================== RCS file: /cvs/dist/rpms/dmraid/devel/dmraid.spec,v retrieving revision 1.82 retrieving revision 1.83 diff -u -r1.82 -r1.83 --- dmraid.spec 18 Apr 2007 20:46:12 -0000 1.82 +++ dmraid.spec 23 Aug 2007 13:58:33 -0000 1.83 @@ -7,7 +7,7 @@ Summary: Device-mapper RAID tool and library. Name: dmraid Version: 1.0.0.rc14 -Release: 3%{?dist} +Release: 4%{?dist} License: GPL Group: System Environment/Base URL: http://people.redhat.com/heinzm/sw/dmraid @@ -19,6 +19,7 @@ Requires(post): ldconfig Source: ftp://people.redhat.com/heinzm/sw/dmraid/src/%{name}-%{version}.tar.bz2 Patch0: dmraid-1.0.0.rc14-jmicron-name.patch +Patch1: dmraid-1.0.0.rc14-nv-segfault.patch %description DMRAID supports RAID device discovery, RAID set activation and display of @@ -35,6 +36,7 @@ %prep %setup -q -n dmraid/%{version} %patch0 -p1 -b .jmicron-name +%patch1 -p0 -b .nv-segfault %build %configure --prefix=${RPM_BUILD_ROOT}/usr --sbindir=${RPM_BUILD_ROOT}/sbin --libdir=${RPM_BUILD_ROOT}/%{_libdir} --mandir=${RPM_BUILD_ROOT}/%{_mandir} --includedir=${RPM_BUILD_ROOT}/%{_includedir} --enable-debug --enable-libselinux --enable-libsepol --enable-static_link @@ -80,6 +82,9 @@ %{_libdir}/libdmraid.so %changelog +* Wed Aug 22 2007 Heinz Mauelshagen - 1.0.0.rc14-4 +- Fix nv segfault on big endian archs (Bryn Reeves) + * Wed Apr 18 2007 Peter Jones - 1.0.0.rc14-3 - Fix jmicron name parsing (#219058) From fedora-cvs-commits at redhat.com Thu Aug 23 18:08:50 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Thu, 23 Aug 2007 14:08:50 -0400 Subject: rpms/kernel/FC-6 linux-2.6-sched-cfs-v2.6.22.5-v20.2.patch, NONE, 1.1 linux-2.6-timekeeping-fixes.patch, NONE, 1.1 patch-2.6.22.5.bz2.sign, NONE, 1.1 .cvsignore, 1.569, 1.570 kernel-2.6.spec, 1.3013, 1.3014 sources, 1.533, 1.534 upstream, 1.453, 1.454 linux-2.6-sched-cfs.patch, 1.12, NONE patch-2.6.22.4.bz2.sign, 1.1, NONE patch-2.6.22.5-rc1.bz2, 1.1, NONE Message-ID: <200708231808.l7NI8oGe003042@cvs.devel.redhat.com> Author: cebbert Update of /cvs/dist/rpms/kernel/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv3026 Modified Files: .cvsignore kernel-2.6.spec sources upstream Added Files: linux-2.6-sched-cfs-v2.6.22.5-v20.2.patch linux-2.6-timekeeping-fixes.patch patch-2.6.22.5.bz2.sign Removed Files: linux-2.6-sched-cfs.patch patch-2.6.22.4.bz2.sign patch-2.6.22.5-rc1.bz2 Log Message: * Thu Aug 23 2007 Chuck Ebbert - 2.6.22.5 - CFS scheduler v20.2 linux-2.6-sched-cfs-v2.6.22.5-v20.2.patch: Documentation/kernel-parameters.txt | 43 Documentation/sched-design-CFS.txt | 119 + arch/i386/kernel/smpboot.c | 12 arch/i386/kernel/tsc.c | 14 arch/ia64/kernel/setup.c | 6 arch/mips/kernel/smp.c | 11 arch/sparc/kernel/smp.c | 10 arch/sparc64/kernel/smp.c | 27 block/cfq-iosched.c | 3 drivers/acpi/processor_idle.c | 32 fs/proc/array.c | 59 fs/proc/base.c | 71 include/asm-generic/bitops/sched.h | 21 include/linux/cpu.h | 2 include/linux/hardirq.h | 13 include/linux/sched.h | 288 ++ include/linux/topology.h | 15 init/main.c | 5 kernel/delayacct.c | 10 kernel/exit.c | 5 kernel/fork.c | 4 kernel/posix-cpu-timers.c | 34 kernel/sched.c | 3618 +++++++++++++++--------------------- kernel/sched_debug.c | 286 ++ kernel/sched_fair.c | 1099 ++++++++++ kernel/sched_idletask.c | 71 kernel/sched_rt.c | 229 ++ kernel/sched_stats.h | 237 ++ kernel/softirq.c | 1 kernel/sysctl.c | 76 lib/Kconfig.debug | 9 31 files changed, 4133 insertions(+), 2297 deletions(-) --- NEW FILE linux-2.6-sched-cfs-v2.6.22.5-v20.2.patch --- Index: linux-cfs-2.6.22.5.q/Documentation/kernel-parameters.txt =================================================================== --- linux-cfs-2.6.22.5.q.orig/Documentation/kernel-parameters.txt +++ linux-cfs-2.6.22.5.q/Documentation/kernel-parameters.txt @@ -1009,49 +1009,6 @@ and is between 256 and 4096 characters. mga= [HW,DRM] - migration_cost= - [KNL,SMP] debug: override scheduler migration costs - Format: ,,... - This debugging option can be used to override the - default scheduler migration cost matrix. The numbers - are indexed by 'CPU domain distance'. - E.g. migration_cost=1000,2000,3000 on an SMT NUMA - box will set up an intra-core migration cost of - 1 msec, an inter-core migration cost of 2 msecs, - and an inter-node migration cost of 3 msecs. - - WARNING: using the wrong values here can break - scheduler performance, so it's only for scheduler - development purposes, not production environments. - - migration_debug= - [KNL,SMP] migration cost auto-detect verbosity - Format=<0|1|2> - If a system's migration matrix reported at bootup - seems erroneous then this option can be used to - increase verbosity of the detection process. - We default to 0 (no extra messages), 1 will print - some more information, and 2 will be really - verbose (probably only useful if you also have a - serial console attached to the system). - - migration_factor= - [KNL,SMP] multiply/divide migration costs by a factor - Format= - This debug option can be used to proportionally - increase or decrease the auto-detected migration - costs for all entries of the migration matrix. - E.g. migration_factor=150 will increase migration - costs by 50%. (and thus the scheduler will be less - eager migrating cache-hot tasks) - migration_factor=80 will decrease migration costs - by 20%. (thus the scheduler will be more eager to - migrate tasks) - - WARNING: using the wrong values here can break - scheduler performance, so it's only for scheduler - development purposes, not production environments. - mousedev.tap_time= [MOUSE] Maximum time between finger touching and leaving touchpad surface for touch to be considered Index: linux-cfs-2.6.22.5.q/Documentation/sched-design-CFS.txt =================================================================== --- /dev/null +++ linux-cfs-2.6.22.5.q/Documentation/sched-design-CFS.txt @@ -0,0 +1,119 @@ + +This is the CFS scheduler. + +80% of CFS's design can be summed up in a single sentence: CFS basically +models an "ideal, precise multi-tasking CPU" on real hardware. + +"Ideal multi-tasking CPU" is a (non-existent :-)) CPU that has 100% +physical power and which can run each task at precise equal speed, in +parallel, each at 1/nr_running speed. For example: if there are 2 tasks +running then it runs each at 50% physical power - totally in parallel. + +On real hardware, we can run only a single task at once, so while that +one task runs, the other tasks that are waiting for the CPU are at a +disadvantage - the current task gets an unfair amount of CPU time. In +CFS this fairness imbalance is expressed and tracked via the per-task +p->wait_runtime (nanosec-unit) value. "wait_runtime" is the amount of +time the task should now run on the CPU for it to become completely fair +and balanced. + +( small detail: on 'ideal' hardware, the p->wait_runtime value would + always be zero - no task would ever get 'out of balance' from the + 'ideal' share of CPU time. ) + +CFS's task picking logic is based on this p->wait_runtime value and it +is thus very simple: it always tries to run the task with the largest +p->wait_runtime value. In other words, CFS tries to run the task with +the 'gravest need' for more CPU time. So CFS always tries to split up +CPU time between runnable tasks as close to 'ideal multitasking +hardware' as possible. + +Most of the rest of CFS's design just falls out of this really simple +concept, with a few add-on embellishments like nice levels, +multiprocessing and various algorithm variants to recognize sleepers. + +In practice it works like this: the system runs a task a bit, and when +the task schedules (or a scheduler tick happens) the task's CPU usage is +'accounted for': the (small) time it just spent using the physical CPU +is deducted from p->wait_runtime. [minus the 'fair share' it would have +gotten anyway]. Once p->wait_runtime gets low enough so that another +task becomes the 'leftmost task' of the time-ordered rbtree it maintains +(plus a small amount of 'granularity' distance relative to the leftmost +task so that we do not over-schedule tasks and trash the cache) then the +new leftmost task is picked and the current task is preempted. + +The rq->fair_clock value tracks the 'CPU time a runnable task would have +fairly gotten, had it been runnable during that time'. So by using +rq->fair_clock values we can accurately timestamp and measure the +'expected CPU time' a task should have gotten. All runnable tasks are +sorted in the rbtree by the "rq->fair_clock - p->wait_runtime" key, and +CFS picks the 'leftmost' task and sticks to it. As the system progresses +forwards, newly woken tasks are put into the tree more and more to the +right - slowly but surely giving a chance for every task to become the +'leftmost task' and thus get on the CPU within a deterministic amount of +time. + +Some implementation details: + + - the introduction of Scheduling Classes: an extensible hierarchy of + scheduler modules. These modules encapsulate scheduling policy + details and are handled by the scheduler core without the core + code assuming about them too much. + + - sched_fair.c implements the 'CFS desktop scheduler': it is a + replacement for the vanilla scheduler's SCHED_OTHER interactivity + code. + + I'd like to give credit to Con Kolivas for the general approach here: + he has proven via RSDL/SD that 'fair scheduling' is possible and that + it results in better desktop scheduling. Kudos Con! + + The CFS patch uses a completely different approach and implementation + from RSDL/SD. My goal was to make CFS's interactivity quality exceed + that of RSDL/SD, which is a high standard to meet :-) Testing + feedback is welcome to decide this one way or another. [ and, in any + case, all of SD's logic could be added via a kernel/sched_sd.c module + as well, if Con is interested in such an approach. ] + + CFS's design is quite radical: it does not use runqueues, it uses a + time-ordered rbtree to build a 'timeline' of future task execution, + and thus has no 'array switch' artifacts (by which both the vanilla + scheduler and RSDL/SD are affected). + + CFS uses nanosecond granularity accounting and does not rely on any + jiffies or other HZ detail. Thus the CFS scheduler has no notion of + 'timeslices' and has no heuristics whatsoever. There is only one + central tunable: + + /proc/sys/kernel/sched_granularity_ns + + which can be used to tune the scheduler from 'desktop' (low + latencies) to 'server' (good batching) workloads. It defaults to a + setting suitable for desktop workloads. SCHED_BATCH is handled by the + CFS scheduler module too. + + Due to its design, the CFS scheduler is not prone to any of the + 'attacks' that exist today against the heuristics of the stock + scheduler: fiftyp.c, thud.c, chew.c, ring-test.c, massive_intr.c all + work fine and do not impact interactivity and produce the expected + behavior. + + the CFS scheduler has a much stronger handling of nice levels and + SCHED_BATCH: both types of workloads should be isolated much more + agressively than under the vanilla scheduler. + + ( another detail: due to nanosec accounting and timeline sorting, + sched_yield() support is very simple under CFS, and in fact under + CFS sched_yield() behaves much better than under any other + scheduler i have tested so far. ) + + - sched_rt.c implements SCHED_FIFO and SCHED_RR semantics, in a simpler + way than the vanilla scheduler does. It uses 100 runqueues (for all + 100 RT priority levels, instead of 140 in the vanilla scheduler) + and it needs no expired array. + + - reworked/sanitized SMP load-balancing: the runqueue-walking + assumptions are gone from the load-balancing code now, and + iterators of the scheduling modules are used. The balancing code got + quite a bit simpler as a result. + Index: linux-cfs-2.6.22.5.q/arch/i386/kernel/smpboot.c =================================================================== --- linux-cfs-2.6.22.5.q.orig/arch/i386/kernel/smpboot.c +++ linux-cfs-2.6.22.5.q/arch/i386/kernel/smpboot.c @@ -941,17 +941,6 @@ exit: } #endif -static void smp_tune_scheduling(void) -{ - if (cpu_khz) { - /* cache size in kB */ - long cachesize = boot_cpu_data.x86_cache_size; - - if (cachesize > 0) - max_cache_size = cachesize * 1024; - } -} - /* * Cycle through the processors sending APIC IPIs to boot each. [...8403 lines suppressed...] +{ + unsigned long long now = sched_clock(), delta = 0; + + if (t->sched_info.last_queued) + delta = now - t->sched_info.last_queued; + sched_info_dequeued(t); + t->sched_info.run_delay += delta; + t->sched_info.last_arrival = now; + t->sched_info.pcnt++; + + rq_sched_info_arrive(task_rq(t), delta); +} + +/* + * Called when a process is queued into either the active or expired + * array. The time is noted and later used to determine how long we + * had to wait for us to reach the cpu. Since the expired queue will + * become the active queue after active queue is empty, without dequeuing + * and requeuing any tasks, we are interested in queuing to either. It + * is unusual but not impossible for tasks to be dequeued and immediately + * requeued in the same or another array: this can happen in sched_yield(), + * set_user_nice(), and even load_balance() as it moves tasks from runqueue + * to runqueue. + * + * This function is only called from enqueue_task(), but also only updates + * the timestamp if it is already not set. It's assumed that + * sched_info_dequeued() will clear that stamp when appropriate. + */ +static inline void sched_info_queued(struct task_struct *t) +{ + if (unlikely(sched_info_on())) + if (!t->sched_info.last_queued) + t->sched_info.last_queued = sched_clock(); +} + +/* + * Called when a process ceases being the active-running process, either + * voluntarily or involuntarily. Now we can calculate how long we ran. + */ +static inline void sched_info_depart(struct task_struct *t) +{ + unsigned long long delta = sched_clock() - t->sched_info.last_arrival; + + t->sched_info.cpu_time += delta; + rq_sched_info_depart(task_rq(t), delta); +} + +/* + * Called when tasks are switched involuntarily due, typically, to expiring + * their time slice. (This may also be called when switching to or from + * the idle task.) We are only called when prev != next. + */ +static inline void +__sched_info_switch(struct task_struct *prev, struct task_struct *next) +{ + struct rq *rq = task_rq(prev); + + /* + * prev now departs the cpu. It's not interesting to record + * stats about how efficient we were at scheduling the idle + * process, however. + */ + if (prev != rq->idle) + sched_info_depart(prev); + + if (next != rq->idle) + sched_info_arrive(next); +} +static inline void +sched_info_switch(struct task_struct *prev, struct task_struct *next) +{ + if (unlikely(sched_info_on())) + __sched_info_switch(prev, next); +} +#else +#define sched_info_queued(t) do { } while (0) +#define sched_info_switch(t, next) do { } while (0) +#endif /* CONFIG_SCHEDSTATS || CONFIG_TASK_DELAY_ACCT */ + Index: linux-cfs-2.6.22.5.q/kernel/softirq.c =================================================================== --- linux-cfs-2.6.22.5.q.orig/kernel/softirq.c +++ linux-cfs-2.6.22.5.q/kernel/softirq.c @@ -488,7 +488,6 @@ void __init softirq_init(void) static int ksoftirqd(void * __bind_cpu) { - set_user_nice(current, 19); current->flags |= PF_NOFREEZE; set_current_state(TASK_INTERRUPTIBLE); Index: linux-cfs-2.6.22.5.q/kernel/sysctl.c =================================================================== --- linux-cfs-2.6.22.5.q.orig/kernel/sysctl.c +++ linux-cfs-2.6.22.5.q/kernel/sysctl.c @@ -206,8 +206,84 @@ static ctl_table root_table[] = { { .ctl_name = 0 } }; +static unsigned long min_sched_granularity_ns = 100000; /* 100 usecs */ +static unsigned long max_sched_granularity_ns = 1000000000; /* 1 second */ +static unsigned long min_wakeup_granularity_ns; /* 0 usecs */ +static unsigned long max_wakeup_granularity_ns = 1000000000; /* 1 second */ + static ctl_table kern_table[] = { { + .ctl_name = CTL_UNNUMBERED, + .procname = "sched_granularity_ns", + .data = &sysctl_sched_granularity, + .maxlen = sizeof(unsigned int), + .mode = 0644, + .proc_handler = &proc_dointvec_minmax, + .strategy = &sysctl_intvec, + .extra1 = &min_sched_granularity_ns, + .extra2 = &max_sched_granularity_ns, + }, + { + .ctl_name = CTL_UNNUMBERED, + .procname = "sched_wakeup_granularity_ns", + .data = &sysctl_sched_wakeup_granularity, + .maxlen = sizeof(unsigned int), + .mode = 0644, + .proc_handler = &proc_dointvec_minmax, + .strategy = &sysctl_intvec, + .extra1 = &min_wakeup_granularity_ns, + .extra2 = &max_wakeup_granularity_ns, + }, + { + .ctl_name = CTL_UNNUMBERED, + .procname = "sched_batch_wakeup_granularity_ns", + .data = &sysctl_sched_batch_wakeup_granularity, + .maxlen = sizeof(unsigned int), + .mode = 0644, + .proc_handler = &proc_dointvec_minmax, + .strategy = &sysctl_intvec, + .extra1 = &min_wakeup_granularity_ns, + .extra2 = &max_wakeup_granularity_ns, + }, + { + .ctl_name = CTL_UNNUMBERED, + .procname = "sched_stat_granularity_ns", + .data = &sysctl_sched_stat_granularity, + .maxlen = sizeof(unsigned int), + .mode = 0644, + .proc_handler = &proc_dointvec_minmax, + .strategy = &sysctl_intvec, + .extra1 = &min_wakeup_granularity_ns, + .extra2 = &max_wakeup_granularity_ns, + }, + { + .ctl_name = CTL_UNNUMBERED, + .procname = "sched_runtime_limit_ns", + .data = &sysctl_sched_runtime_limit, + .maxlen = sizeof(unsigned int), + .mode = 0644, + .proc_handler = &proc_dointvec_minmax, + .strategy = &sysctl_intvec, + .extra1 = &min_sched_granularity_ns, + .extra2 = &max_sched_granularity_ns, + }, + { + .ctl_name = CTL_UNNUMBERED, + .procname = "sched_child_runs_first", + .data = &sysctl_sched_child_runs_first, + .maxlen = sizeof(unsigned int), + .mode = 0644, + .proc_handler = &proc_dointvec, + }, + { + .ctl_name = CTL_UNNUMBERED, + .procname = "sched_features", + .data = &sysctl_sched_features, + .maxlen = sizeof(unsigned int), + .mode = 0644, + .proc_handler = &proc_dointvec, + }, + { .ctl_name = KERN_PANIC, .procname = "panic", .data = &panic_timeout, Index: linux-cfs-2.6.22.5.q/lib/Kconfig.debug =================================================================== --- linux-cfs-2.6.22.5.q.orig/lib/Kconfig.debug +++ linux-cfs-2.6.22.5.q/lib/Kconfig.debug @@ -105,6 +105,15 @@ config DETECT_SOFTLOCKUP can be detected via the NMI-watchdog, on platforms that support it.) +config SCHED_DEBUG + bool "Collect scheduler debugging info" + depends on DEBUG_KERNEL && PROC_FS + default y + help + If you say Y here, the /proc/sched_debug file will be provided + that can help debug the scheduler. The runtime overhead of this + option is minimal. + config SCHEDSTATS bool "Collect scheduler statistics" depends on DEBUG_KERNEL && PROC_FS linux-2.6-timekeeping-fixes.patch: b/drivers/rtc/class.c | 5 +++-- b/drivers/s390/net/ctcmain.c | 6 +++--- b/drivers/s390/net/netiucv.c | 4 ++-- b/include/linux/time.h | 2 +- b/kernel/acct.c | 2 +- b/kernel/hrtimer.c | 2 +- b/kernel/time.c | 16 ---------------- b/kernel/time/timekeeping.c | 16 ++++++++++++++++ b/kernel/tsacct.c | 2 +- b/net/rxrpc/af_rxrpc.c | 2 +- b/net/rxrpc/ar-connection.c | 4 ++-- b/net/rxrpc/ar-transport.c | 4 ++-- b/net/rxrpc/rxkad.c | 2 +- include/linux/time.h | 6 +----- kernel/hrtimer.c | 4 ---- kernel/time/timekeeping.c | 25 +++++++++++++++++++++++-- 16 files changed, 58 insertions(+), 44 deletions(-) --- NEW FILE linux-2.6-timekeeping-fixes.patch --- Gitweb: http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=2c6b47de17c75d553de3e2fb426d8298d2074585 Commit: 2c6b47de17c75d553de3e2fb426d8298d2074585 Parent: 0de085bb474f64e4fdb2f1ff3268590792648c7b Author: john stultz AuthorDate: Tue Jul 24 17:47:43 2007 -0700 Committer: Linus Torvalds CommitDate: Wed Jul 25 10:09:20 2007 -0700 Cleanup non-arch xtime uses, use get_seconds() or current_kernel_time(). This avoids use of the kernel-internal "xtime" variable directly outside of the actual time-related functions. Instead, use the helper functions that we already have available to us. This doesn't actually change any behaviour, but this will allow us to fix the fact that "xtime" isn't updated very often with CONFIG_NO_HZ (because much of the realtime information is maintained as separate offsets to 'xtime'), which has caused interfaces that use xtime directly to get a time that is out of sync with the real-time clock by up to a third of a second or so. Signed-off-by: John Stultz Cc: Ingo Molnar Cc: Thomas Gleixner Signed-off-by: Linus Torvalds --- drivers/rtc/class.c | 5 +++-- drivers/s390/net/ctcmain.c | 6 +++--- drivers/s390/net/netiucv.c | 4 ++-- include/linux/time.h | 2 +- kernel/acct.c | 2 +- kernel/hrtimer.c | 2 +- kernel/time.c | 16 ---------------- kernel/time/timekeeping.c | 16 ++++++++++++++++ kernel/tsacct.c | 2 +- net/rxrpc/af_rxrpc.c | 2 +- net/rxrpc/ar-connection.c | 4 ++-- net/rxrpc/ar-transport.c | 4 ++-- net/rxrpc/rxkad.c | 2 +- 13 files changed, 34 insertions(+), 33 deletions(-) diff --git a/drivers/rtc/class.c b/drivers/rtc/class.c index 8b3cd31..10ab3b7 100644 --- a/drivers/rtc/class.c +++ b/drivers/rtc/class.c @@ -46,6 +46,7 @@ static int rtc_suspend(struct device *dev, pm_message_t mesg) { struct rtc_device *rtc = to_rtc_device(dev); struct rtc_time tm; + struct timespec ts = current_kernel_time(); if (strncmp(rtc->dev.bus_id, CONFIG_RTC_HCTOSYS_DEVICE, @@ -57,8 +58,8 @@ static int rtc_suspend(struct device *dev, pm_message_t mesg) /* RTC precision is 1 second; adjust delta for avg 1/2 sec err */ set_normalized_timespec(&delta, - xtime.tv_sec - oldtime, - xtime.tv_nsec - (NSEC_PER_SEC >> 1)); + ts.tv_sec - oldtime, + ts.tv_nsec - (NSEC_PER_SEC >> 1)); return 0; } diff --git a/drivers/s390/net/ctcmain.c b/drivers/s390/net/ctcmain.c index b20fd06..92e8a37 100644 --- a/drivers/s390/net/ctcmain.c +++ b/drivers/s390/net/ctcmain.c @@ -674,7 +674,7 @@ ch_action_txdone(fsm_instance * fi, int event, void *arg) int first = 1; int i; unsigned long duration; - struct timespec done_stamp = xtime; + struct timespec done_stamp = current_kernel_time(); DBF_TEXT(trace, 4, __FUNCTION__); @@ -730,7 +730,7 @@ ch_action_txdone(fsm_instance * fi, int event, void *arg) spin_unlock(&ch->collect_lock); ch->ccw[1].count = ch->trans_skb->len; fsm_addtimer(&ch->timer, CTC_TIMEOUT_5SEC, CH_EVENT_TIMER, ch); - ch->prof.send_stamp = xtime; + ch->prof.send_stamp = current_kernel_time(); rc = ccw_device_start(ch->cdev, &ch->ccw[0], (unsigned long) ch, 0xff, 0); ch->prof.doios_multi++; @@ -2281,7 +2281,7 @@ transmit_skb(struct channel *ch, struct sk_buff *skb) fsm_newstate(ch->fsm, CH_STATE_TX); fsm_addtimer(&ch->timer, CTC_TIMEOUT_5SEC, CH_EVENT_TIMER, ch); spin_lock_irqsave(get_ccwdev_lock(ch->cdev), saveflags); - ch->prof.send_stamp = xtime; + ch->prof.send_stamp = current_kernel_time(); rc = ccw_device_start(ch->cdev, &ch->ccw[ccw_idx], (unsigned long) ch, 0xff, 0); spin_unlock_irqrestore(get_ccwdev_lock(ch->cdev), saveflags); diff --git a/drivers/s390/net/netiucv.c b/drivers/s390/net/netiucv.c index 3d28e1a..2688894 100644 --- a/drivers/s390/net/netiucv.c +++ b/drivers/s390/net/netiucv.c @@ -753,7 +753,7 @@ static void conn_action_txdone(fsm_instance *fi, int event, void *arg) header.next = 0; memcpy(skb_put(conn->tx_buff, NETIUCV_HDRLEN), &header, NETIUCV_HDRLEN); - conn->prof.send_stamp = xtime; + conn->prof.send_stamp = current_kernel_time(); txmsg.class = 0; txmsg.tag = 0; rc = iucv_message_send(conn->path, &txmsg, 0, 0, @@ -1185,7 +1185,7 @@ static int netiucv_transmit_skb(struct iucv_connection *conn, memcpy(skb_put(nskb, NETIUCV_HDRLEN), &header, NETIUCV_HDRLEN); fsm_newstate(conn->fsm, CONN_STATE_TX); - conn->prof.send_stamp = xtime; + conn->prof.send_stamp = current_kernel_time(); msg.tag = 1; msg.class = 0; diff --git a/include/linux/time.h b/include/linux/time.h index e6aea51..71181df 100644 --- a/include/linux/time.h +++ b/include/linux/time.h @@ -107,7 +107,7 @@ static inline unsigned long get_seconds(void) struct timespec current_kernel_time(void); #define CURRENT_TIME (current_kernel_time()) -#define CURRENT_TIME_SEC ((struct timespec) { xtime.tv_sec, 0 }) +#define CURRENT_TIME_SEC ((struct timespec) { get_seconds(), 0 }) extern void do_gettimeofday(struct timeval *tv); extern int do_settimeofday(struct timespec *tv); diff --git a/kernel/acct.c b/kernel/acct.c index 70d0d88..24f0f8b 100644 --- a/kernel/acct.c +++ b/kernel/acct.c @@ -468,7 +468,7 @@ static void do_acct_process(struct file *file) } #endif do_div(elapsed, AHZ); - ac.ac_btime = xtime.tv_sec - elapsed; + ac.ac_btime = get_seconds() - elapsed; /* we really need to bite the bullet and change layout */ ac.ac_uid = current->uid; ac.ac_gid = current->gid; diff --git a/kernel/hrtimer.c b/kernel/hrtimer.c index eb1ddeb..a7bb05e 100644 --- a/kernel/hrtimer.c +++ b/kernel/hrtimer.c @@ -144,7 +144,7 @@ static void hrtimer_get_softirq_time(struct hrtimer_cpu_base *base) #ifdef CONFIG_NO_HZ getnstimeofday(&xts); #else - xts = xtime; + xts = current_kernel_time(); #endif tom = wall_to_monotonic; } while (read_seqretry(&xtime_lock, seq)); diff --git a/kernel/time.c b/kernel/time.c index 5b81da0..2289a8d 100644 --- a/kernel/time.c +++ b/kernel/time.c @@ -215,22 +215,6 @@ asmlinkage long sys_adjtimex(struct timex __user *txc_p) return copy_to_user(txc_p, &txc, sizeof(struct timex)) ? -EFAULT : ret; } -inline struct timespec current_kernel_time(void) -{ - struct timespec now; - unsigned long seq; - - do { - seq = read_seqbegin(&xtime_lock); - - now = xtime; - } while (read_seqretry(&xtime_lock, seq)); - - return now; -} - -EXPORT_SYMBOL(current_kernel_time); - /** * current_fs_time - Return FS time * @sb: Superblock. diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c index 88c8102..07a3f14 100644 --- a/kernel/time/timekeeping.c +++ b/kernel/time/timekeeping.c @@ -509,3 +509,19 @@ void monotonic_to_bootbased(struct timespec *ts) change_clocksource(); update_vsyscall(&xtime, clock); } + +struct timespec current_kernel_time(void) +{ + struct timespec now; + unsigned long seq; + + do { + seq = read_seqbegin(&xtime_lock); + + now = xtime; + } while (read_seqretry(&xtime_lock, seq)); + + return now; +} + +EXPORT_SYMBOL(current_kernel_time); diff --git a/kernel/tsacct.c b/kernel/tsacct.c index 658f638..c122131 100644 --- a/kernel/tsacct.c +++ b/kernel/tsacct.c @@ -39,7 +39,7 @@ void bacct_add_tsk(struct taskstats *stats, struct task_struct *tsk) ac_etime = timespec_to_ns(&ts); do_div(ac_etime, NSEC_PER_USEC); stats->ac_etime = ac_etime; - stats->ac_btime = xtime.tv_sec - ts.tv_sec; + stats->ac_btime = get_seconds() - ts.tv_sec; if (thread_group_leader(tsk)) { stats->ac_exitcode = tsk->exit_code; if (tsk->flags & PF_FORKNOEXEC) diff --git a/net/rxrpc/af_rxrpc.c b/net/rxrpc/af_rxrpc.c index 16a68df..c58fa0d 100644 --- a/net/rxrpc/af_rxrpc.c +++ b/net/rxrpc/af_rxrpc.c @@ -787,7 +787,7 @@ static int __init af_rxrpc_init(void) BUILD_BUG_ON(sizeof(struct rxrpc_skb_priv) > sizeof(dummy_skb->cb)); - rxrpc_epoch = htonl(xtime.tv_sec); + rxrpc_epoch = htonl(get_seconds()); ret = -ENOMEM; rxrpc_call_jar = kmem_cache_create( diff --git a/net/rxrpc/ar-connection.c b/net/rxrpc/ar-connection.c index 482750e..372b244 100644 --- a/net/rxrpc/ar-connection.c +++ b/net/rxrpc/ar-connection.c @@ -791,7 +791,7 @@ void rxrpc_put_connection(struct rxrpc_connection *conn) ASSERTCMP(atomic_read(&conn->usage), >, 0); - conn->put_time = xtime.tv_sec; + conn->put_time = get_seconds(); if (atomic_dec_and_test(&conn->usage)) { _debug("zombie"); rxrpc_queue_delayed_work(&rxrpc_connection_reap, 0); @@ -835,7 +835,7 @@ void rxrpc_connection_reaper(struct work_struct *work) _enter(""); - now = xtime.tv_sec; + now = get_seconds(); earliest = ULONG_MAX; write_lock_bh(&rxrpc_connection_lock); diff --git a/net/rxrpc/ar-transport.c b/net/rxrpc/ar-transport.c index d43d78f..bb282a6 100644 --- a/net/rxrpc/ar-transport.c +++ b/net/rxrpc/ar-transport.c @@ -183,7 +183,7 @@ void rxrpc_put_transport(struct rxrpc_transport *trans) ASSERTCMP(atomic_read(&trans->usage), >, 0); - trans->put_time = xtime.tv_sec; + trans->put_time = get_seconds(); if (unlikely(atomic_dec_and_test(&trans->usage))) _debug("zombie"); /* let the reaper determine the timeout to avoid a race with @@ -219,7 +219,7 @@ static void rxrpc_transport_reaper(struct work_struct *work) _enter(""); - now = xtime.tv_sec; + now = get_seconds(); earliest = ULONG_MAX; /* extract all the transports that have been dead too long */ diff --git a/net/rxrpc/rxkad.c b/net/rxrpc/rxkad.c index 5ec7051..ac3cabd 100644 --- a/net/rxrpc/rxkad.c +++ b/net/rxrpc/rxkad.c @@ -916,7 +916,7 @@ static int rxkad_decrypt_ticket(struct rxrpc_connection *conn, issue = be32_to_cpu(stamp); } p += 4; - now = xtime.tv_sec; + now = get_seconds(); _debug("KIV ISSUE: %lx [%lx]", issue, now); /* check the ticket is in date */ Gitweb: http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=17c38b7490b3f0300c7812aefdae2ddda7ab4112 Commit: 17c38b7490b3f0300c7812aefdae2ddda7ab4112 Parent: 2c6b47de17c75d553de3e2fb426d8298d2074585 Author: john stultz AuthorDate: Tue Jul 24 18:38:34 2007 -0700 Committer: Linus Torvalds CommitDate: Wed Jul 25 10:17:44 2007 -0700 Cache xtime every call to update_wall_time This avoids xtime lag seen with dynticks, because while 'xtime' itself is still not updated often, we keep a 'xtime_cache' variable around that contains the approximate real-time that _is_ updated each time we do a 'update_wall_time()', and is thus never off by more than one tick. IOW, this restores the original semantics for 'xtime' users, as long as you use the proper abstraction functions (ie 'current_kernel_time()' or 'get_seconds()' depending on whether you want a timespec or just the seconds field). [ Updated Patch. As penance for my sins I've also yanked another #ifdef that was added to avoid the xtime lag w/ hrtimers. ] Signed-off-by: John Stultz Cc: Ingo Molnar Cc: Thomas Gleixner Signed-off-by: Linus Torvalds --- include/linux/time.h | 6 +----- kernel/hrtimer.c | 4 ---- kernel/time/timekeeping.c | 26 +++++++++++++++++++++++--- 3 files changed, 24 insertions(+), 12 deletions(-) diff --git a/include/linux/time.h b/include/linux/time.h index 71181df..6a5f503 100644 --- a/include/linux/time.h +++ b/include/linux/time.h @@ -99,11 +99,7 @@ extern int update_persistent_clock(struct timespec now); extern int no_sync_cmos_clock __read_mostly; void timekeeping_init(void); -static inline unsigned long get_seconds(void) -{ - return xtime.tv_sec; -} - +unsigned long get_seconds(void); struct timespec current_kernel_time(void); #define CURRENT_TIME (current_kernel_time()) diff --git a/kernel/hrtimer.c b/kernel/hrtimer.c index a7bb05e..c21ca6b 100644 --- a/kernel/hrtimer.c +++ b/kernel/hrtimer.c @@ -141,11 +141,7 @@ static void hrtimer_get_softirq_time(struct hrtimer_cpu_base *base) do { seq = read_seqbegin(&xtime_lock); -#ifdef CONFIG_NO_HZ - getnstimeofday(&xts); -#else xts = current_kernel_time(); -#endif tom = wall_to_monotonic; } while (read_seqretry(&xtime_lock, seq)); diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c index 07a3f14..acc417b 100644 --- a/kernel/time/timekeeping.c +++ b/kernel/time/timekeeping.c @@ -47,6 +47,19 @@ EXPORT_SYMBOL(xtime_lock); EXPORT_SYMBOL(xtime); +#ifdef CONFIG_NO_HZ +static struct timespec xtime_cache __attribute__ ((aligned (16))); +static inline void update_xtime_cache(u64 nsec) +{ + xtime_cache = xtime; + timespec_add_ns(&xtime_cache, nsec); +} +#else +#define xtime_cache xtime +/* We do *not* want to evaluate the argument for this case */ +#define update_xtime_cache(n) do { } while (0) +#endif + static struct clocksource *clock; /* pointer to current clocksource */ @@ -478,6 +490,8 @@ void update_wall_time(void) xtime.tv_nsec = (s64)clock->xtime_nsec >> clock->shift; clock->xtime_nsec -= (s64)xtime.tv_nsec << clock->shift; + update_xtime_cache(cyc2ns(clock, offset)); + /* check to see if there is a new clocksource to use */ change_clocksource(); update_vsyscall(&xtime, clock); @@ -510,6 +524,13 @@ void monotonic_to_bootbased(struct timespec *ts) ts->tv_sec += total_sleep_time; } +unsigned long get_seconds(void) +{ + return xtime_cache.tv_sec; +} +EXPORT_SYMBOL(get_seconds); + + struct timespec current_kernel_time(void) { struct timespec now; @@ -518,10 +539,9 @@ struct timespec current_kernel_time(void) do { seq = read_seqbegin(&xtime_lock); - now = xtime; + now = xtime_cache; } while (read_seqretry(&xtime_lock, seq)); return now; } - EXPORT_SYMBOL(current_kernel_time); --- NEW FILE patch-2.6.22.5.bz2.sign --- -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.7 (GNU/Linux) Comment: See http://www.kernel.org/signature.html for info iD8DBQBGzM+KyGugalF9Dw4RAhc0AKCEaNlBFN/fm638yAojZ3s8jTF0mgCfTeNU zn3f3FQg2WHeUk9mPbuMJHI= =lZSp -----END PGP SIGNATURE----- Index: .cvsignore =================================================================== RCS file: /cvs/dist/rpms/kernel/FC-6/.cvsignore,v retrieving revision 1.569 retrieving revision 1.570 diff -u -r1.569 -r1.570 --- .cvsignore 21 Aug 2007 20:11:21 -0000 1.569 +++ .cvsignore 23 Aug 2007 18:08:47 -0000 1.570 @@ -3,4 +3,4 @@ temp-* kernel-2.6.22 linux-2.6.22.tar.bz2 -patch-2.6.22.4.bz2 +patch-2.6.22.5.bz2 Index: kernel-2.6.spec =================================================================== RCS file: /cvs/dist/rpms/kernel/FC-6/kernel-2.6.spec,v retrieving revision 1.3013 retrieving revision 1.3014 diff -u -r1.3013 -r1.3014 --- kernel-2.6.spec 21 Aug 2007 21:00:24 -0000 1.3013 +++ kernel-2.6.spec 23 Aug 2007 18:08:47 -0000 1.3014 @@ -30,7 +30,7 @@ ## If this is a released kernel ## %if 0%{?released_kernel} # Do we have a 2.6.21.y update to apply? -%define stable_update 4 +%define stable_update 5 # Set rpm version accordingly %if 0%{?stable_update} %define stablerev .%{stable_update} @@ -496,8 +496,6 @@ %endif -Patch08: patch-2.6.22.5-rc1.bz2 - %if !%{nopatches} Patch10: linux-2.6-utrace-tracehook.patch @@ -604,7 +602,8 @@ #Patch780: linux-2.6-clockevents-fix-resume-logic.patch Patch800: linux-2.6-wakeups-hdaps.patch Patch801: linux-2.6-wakeups.patch -Patch900: linux-2.6-sched-cfs.patch +Patch900: linux-2.6-sched-cfs-v2.6.22.5-v20.2.patch +Patch901: linux-2.6-timekeeping-fixes.patch Patch1000: linux-2.6-dmi-based-module-autoloading.patch Patch1030: linux-2.6-nfs-nosharecache.patch Patch1400: linux-2.6-pcspkr-use-the-global-pit-lock.patch @@ -1047,12 +1046,12 @@ # builds (as used in the buildsystem). ApplyPatch linux-2.6-build-nonintconfig.patch -ApplyPatch patch-2.6.22.5-rc1.bz2 - %if !%{nopatches} # Ingo's new scheduler. -ApplyPatch linux-2.6-sched-cfs.patch +ApplyPatch linux-2.6-sched-cfs-v2.6.22.5-v20.2.patch +# timekeeping fixes that were in the Fedora CFS patch +ApplyPatch linux-2.6-timekeeping-fixes.patch # Roland's utrace ptrace replacement. ApplyPatch linux-2.6-utrace-tracehook.patch -F2 @@ -2216,6 +2215,10 @@ %endif %changelog +* Thu Aug 23 2007 Chuck Ebbert +- Linux 2.6.22.5 +- CFS scheduler v20.2 + * Tue Aug 21 2007 Chuck Ebbert - 2.6.22.5-rc1 - fix e820 memory hole sizing on x86_64 Index: sources =================================================================== RCS file: /cvs/dist/rpms/kernel/FC-6/sources,v retrieving revision 1.533 retrieving revision 1.534 diff -u -r1.533 -r1.534 --- sources 21 Aug 2007 20:11:22 -0000 1.533 +++ sources 23 Aug 2007 18:08:47 -0000 1.534 @@ -1,2 +1,2 @@ 2e230d005c002fb3d38a3ca07c0200d0 linux-2.6.22.tar.bz2 -9041cc4a8570b5762a68b23235b6acd4 patch-2.6.22.4.bz2 +27544a58763bbd4ce497a77658af744a patch-2.6.22.5.bz2 Index: upstream =================================================================== RCS file: /cvs/dist/rpms/kernel/FC-6/upstream,v retrieving revision 1.453 retrieving revision 1.454 diff -u -r1.453 -r1.454 --- upstream 21 Aug 2007 20:11:22 -0000 1.453 +++ upstream 23 Aug 2007 18:08:47 -0000 1.454 @@ -1,2 +1,2 @@ linux-2.6.22.tar.bz2 -patch-2.6.22.4.bz2 +patch-2.6.22.5.bz2 --- linux-2.6-sched-cfs.patch DELETED --- --- patch-2.6.22.4.bz2.sign DELETED --- --- patch-2.6.22.5-rc1.bz2 DELETED --- From fedora-cvs-commits at redhat.com Thu Aug 23 20:40:03 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Thu, 23 Aug 2007 16:40:03 -0400 Subject: rpms/kernel/FC-6 linux-2.6-netdev-forcedeth-realtek-oui.patch, NONE, 1.1 kernel-2.6.spec, 1.3014, 1.3015 Message-ID: <200708232040.l7NKe3DL007183@cvs.devel.redhat.com> Author: cebbert Update of /cvs/dist/rpms/kernel/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv7152 Modified Files: kernel-2.6.spec Added Files: linux-2.6-netdev-forcedeth-realtek-oui.patch Log Message: * Thu Aug 23 2007 Chuck Ebbert - fix wrong vendor ID for Realtek PHY in forcedeth driver linux-2.6-netdev-forcedeth-realtek-oui.patch: forcedeth.c | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) --- NEW FILE linux-2.6-netdev-forcedeth-realtek-oui.patch --- Yes, you are right. Copy and paste error. I have attached a patch which will fix this issue. Thanks for catching it. Ayaz Signed-off-by: Ayaz Abdulla --- old/drivers/net/forcedeth.c 2007-08-09 17:37:12.000000000 -0400 +++ new/drivers/net/forcedeth.c 2007-08-09 17:37:07.000000000 -0400 @@ -551,7 +551,7 @@ #define PHY_OUI_MARVELL 0x5043 #define PHY_OUI_CICADA 0x03f1 #define PHY_OUI_VITESSE 0x01c1 -#define PHY_OUI_REALTEK 0x01c1 +#define PHY_OUI_REALTEK 0x0732 #define PHYID1_OUI_MASK 0x03ff #define PHYID1_OUI_SHFT 6 #define PHYID2_OUI_MASK 0xfc00 Index: kernel-2.6.spec =================================================================== RCS file: /cvs/dist/rpms/kernel/FC-6/kernel-2.6.spec,v retrieving revision 1.3014 retrieving revision 1.3015 diff -u -r1.3014 -r1.3015 --- kernel-2.6.spec 23 Aug 2007 18:08:47 -0000 1.3014 +++ kernel-2.6.spec 23 Aug 2007 20:40:01 -0000 1.3015 @@ -595,6 +595,7 @@ Patch712: linux-2.6-net-sky2-dont-clear-phy-power-bits.patch Patch713: linux-2.6-net-atl1-fix-typo-in-dma-setup.patch Patch714: linux-2.6-net-atl1-fix-typo-in-dma_req_block.patch +Patch715: linux-2.6-netdev-forcedeth-realtek-oui.patch Patch740: linux-2.6-sdhci-ene-controller-quirk.patch Patch741: linux-2.6-sdhci-fix-interrupt-mask.patch @@ -1263,6 +1264,8 @@ # atl1 DMA bugs ApplyPatch linux-2.6-net-atl1-fix-typo-in-dma-setup.patch ApplyPatch linux-2.6-net-atl1-fix-typo-in-dma_req_block.patch +# forcedeth has the wrong OUI for realtek PHYs +ApplyPatch linux-2.6-netdev-forcedeth-realtek-oui.patch # sdhci # @@ -2216,6 +2219,9 @@ %changelog * Thu Aug 23 2007 Chuck Ebbert +- fix wrong vendor ID for Realtek PHY in forcedeth driver + +* Thu Aug 23 2007 Chuck Ebbert - Linux 2.6.22.5 - CFS scheduler v20.2 From fedora-cvs-commits at redhat.com Tue Aug 28 08:19:58 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Tue, 28 Aug 2007 04:19:58 -0400 Subject: rpms/star/FC-6 star-1.5-changewarnSegv.patch, NONE, 1.1 .cvsignore, 1.16, 1.17 sources, 1.17, 1.18 star-1.5-newMake.patch, 1.1, 1.2 star-1.5-selinux.patch, 1.5, 1.6 star.spec, 1.30, 1.31 Message-ID: <200708280819.l7S8JwmO026989@cvs.devel.redhat.com> Author: pvrabec Update of /cvs/dist/rpms/star/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv26966 Modified Files: .cvsignore sources star-1.5-newMake.patch star-1.5-selinux.patch star.spec Added Files: star-1.5-changewarnSegv.patch Log Message: - fix segfault of data-change-warn option (#255261), patch from dkopecek at redhat.com - new upstream release with CVE-2007-4134 fix star-1.5-changewarnSegv.patch: checkerr.c | 75 ++++++++++++++++++++++++++++++------------------------------- 1 files changed, 38 insertions(+), 37 deletions(-) --- NEW FILE star-1.5-changewarnSegv.patch --- --- star-1.5/star/checkerr.c.orig-segv 2006-10-31 18:06:25.000000000 +0100 +++ star-1.5/star/checkerr.c 2007-08-27 11:42:39.000000000 +0200 @@ -183,44 +183,45 @@ LOCAL struct eflags { */ LOCAL UInt32_t errflags(eflag, doexit) - char *eflag; - BOOL doexit; + char *eflag; + BOOL doexit; { - register char *p = eflag; - char *ef = _endword(eflag); - char ec; - register struct eflags *ep; - register int slen; - register UInt32_t nflags = 0; - - ec = *ef; - *ef = '\0'; - do { - for (ep = eflags; ep->fname; ep++) { - slen = strlen(ep->fname); - if ((strncmp(ep->fname, p, slen) == 0) && - (p[slen] == '|' || p[slen] == ' ' || - p[slen] == '\0')) { - nflags |= ep->fval; - break; - } - } - if (ep->fname == NULL) { - if (doexit) - comerrno(EX_BAD, "Bad flag '%s'\n", p); - *ef = ec; /* Restore old character */ - return (0); - } - p = strchr(p, '|'); - } while (p && *p++ == '|'); - - *ef = ec; /* Restore old character */ - if ((nflags & ~(UInt32_t)(E_ABORT|E_WARN)) == 0) { - if (doexit) - comerrno(EX_BAD, "Bad error condition '%s'.\n", eflag); - return (0); - } - return (nflags); + register struct eflags *ep; + register int slen; + register UInt32_t nflags = 0; + char *curflags; + char *curflag; + + curflags = strdup (eflag); + *_endword(curflags) = '\0'; + curflag = strtok (curflags, "|"); + + while (curflag != NULL) { + for (ep = eflags; ep->fname; ep++) { + slen = strlen (ep->fname); + if ((strncmp (ep->fname, curflag, slen)) == 0) { + nflags |= ep->fval; + goto next; + } + } + + if (doexit) + comerrno (EX_BAD, "Bad flag '%s' \n", curflag); + + free (curflags); + return (0); + next: + curflag = strtok (NULL, "|"); + } + + free (curflags); + + if ((nflags & ~(UInt32_t)(E_ABORT|E_WARN)) == 0) { + if (doexit) + comerrno(EX_BAD, "Bad error condition '%s'.\n", eflag); + return (0); + } + return (nflags); } LOCAL ec_t * Index: .cvsignore =================================================================== RCS file: /cvs/dist/rpms/star/FC-6/.cvsignore,v retrieving revision 1.16 retrieving revision 1.17 diff -u -r1.16 -r1.17 --- .cvsignore 8 Aug 2006 12:03:38 -0000 1.16 +++ .cvsignore 28 Aug 2007 08:19:56 -0000 1.17 @@ -1 +1 @@ -star-1.5a75.tar.bz2 +star-1.5a84.tar.bz2 Index: sources =================================================================== RCS file: /cvs/dist/rpms/star/FC-6/sources,v retrieving revision 1.17 retrieving revision 1.18 diff -u -r1.17 -r1.18 --- sources 8 Aug 2006 12:03:38 -0000 1.17 +++ sources 28 Aug 2007 08:19:56 -0000 1.18 @@ -1 +1 @@ -5caa472e213964065baed871ca0f06f7 star-1.5a75.tar.bz2 +7b3860592468e46396fe34157f338d42 star-1.5a84.tar.bz2 star-1.5-newMake.patch: Defaults.linux | 16 ++++++++-------- 1 files changed, 8 insertions(+), 8 deletions(-) Index: star-1.5-newMake.patch =================================================================== RCS file: /cvs/dist/rpms/star/FC-6/star-1.5-newMake.patch,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- star-1.5-newMake.patch 22 Nov 2004 14:57:57 -0000 1.1 +++ star-1.5-newMake.patch 28 Aug 2007 08:19:56 -0000 1.2 @@ -1,5 +1,5 @@ ---- star-1.5/DEFAULTS/Defaults.linux.newMake 2003-02-16 01:01:48.000000000 +0100 -+++ star-1.5/DEFAULTS/Defaults.linux 2004-11-22 12:29:02.973507632 +0100 +--- star-1.5/DEFAULTS/Defaults.linux.fix 2007-08-23 13:35:54.000000000 +0200 ++++ star-1.5/DEFAULTS/Defaults.linux 2007-08-23 13:51:33.000000000 +0200 @@ -8,8 +8,8 @@ # Compiler stuff # @@ -8,19 +8,17 @@ -#DEFCCOM= gcc +#DEFCCOM= cc +DEFCCOM= gcc + ########################################################################### # - # If the next line is commented out, compilation is done with max warn level -@@ -18,21 +18,21 @@ - ########################################################################### - CWARNOPTS= +@@ -40,20 +40,20 @@ __LINUX_SRC_INCLUDE= $(_LINUX_SRC_INCLUD + LINUX_SRC_INCLUDE= $(__LINUX_SRC_INCLUDE:$(_UNIQ)no%=%) --DEFINCDIRS= $(SRCROOT)/include /usr/src/linux/include + DEFINCDIRS= $(SRCROOT)/include -LDPATH= -L/opt/schily/lib --RUNPATH= -R $(INS_BASE)/lib -R /opt/schily/lib -R $(OLIBSDIR) -+DEFINCDIRS= $(SRCROOT)/include -+LDPATH= -+RUNPATH= +-RUNPATH= -R$(INS_BASE)/lib -R/opt/schily/lib -R$(OLIBSDIR) ++LDPATH= ++RUNPATH= ########################################################################### # star-1.5-selinux.patch: conf/configure.in | 15 ++++++++++++++ conf/rules.cnf.in | 1 star/Makefile | 57 +++++------------------------------------------------- star/cpio.mk | 3 +- star/extract.c | 11 ++++++++++ star/gnutar.mk | 3 +- star/pax.mk | 4 ++- star/star.c | 9 ++++++++ star/star.mk | 3 +- star/star_fat.mk | 3 +- star/starsubs.h | 5 ++++ star/suntar.mk | 3 +- star/xattr.c | 26 ++++++++++++++++++++++++ 13 files changed, 86 insertions(+), 57 deletions(-) Index: star-1.5-selinux.patch =================================================================== RCS file: /cvs/dist/rpms/star/FC-6/star-1.5-selinux.patch,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- star-1.5-selinux.patch 22 Feb 2006 10:14:45 -0000 1.5 +++ star-1.5-selinux.patch 28 Aug 2007 08:19:56 -0000 1.6 @@ -1,115 +1,192 @@ ---- star-1.5/conf/configure.in.selinux 2006-02-07 11:23:13.000000000 -0500 -+++ star-1.5/conf/configure.in 2006-02-22 10:11:28.000000000 -0500 -@@ -357,6 +357,15 @@ - echo no - fi - -+AC_CHECK_HEADERS(selinux/selinux.h) -+if test "$ac_cv_header_selinux_selinux_h" = yes; then -+ AC_CHECKING(for SELinux support) -+ AC_CHECK_LIB(selinux, is_selinux_enabled, lib_selinux="-lselinux -lattr") -+ ac_save_LIBS="$LIBS" -+ LIBS="$LIBS $lib_selinux" -+ AC_CHECK_FUNCS(is_selinux_enabled) -+fi -+ - dnl Checks for OS madness. - AC_BROKEN_LINUX_EXT2_FS_H - AC_BROKEN_SRC_LINUX_EXT2_FS_H -@@ -373,5 +382,6 @@ - AC_SUBST(lib_acl_test) - AC_SUBST(lib_attr) - AC_SUBST(lib_secdb) -+AC_SUBST(lib_selinux) - - AC_OUTPUT(rules.cnf) ---- star-1.5/conf/rules.cnf.in.selinux 2005-12-20 06:41:02.000000000 -0500 -+++ star-1.5/conf/rules.cnf.in 2006-02-22 10:12:56.000000000 -0500 -@@ -10,3 +10,5 @@ - LIB_ACL_TEST= @lib_acl_test@ - LIB_ATTR = @lib_attr@ - LIB_SECDB = @lib_secdb@ -+LIB_SELINUX = @lib_selinux@ -+ ---- star-1.5/star/pax.mk.selinux 2006-02-02 10:00:31.000000000 -0500 -+++ star-1.5/star/pax.mk 2006-02-22 10:10:09.000000000 -0500 -@@ -17,6 +17,7 @@ - CPPOPTS += -DUSE_LARGEFILES +--- star-1.5/star/suntar.mk.selinux 2007-02-17 15:51:23.000000000 +0100 ++++ star-1.5/star/suntar.mk 2007-08-24 11:51:13.000000000 +0200 +@@ -18,6 +18,7 @@ CPPOPTS += -DUSE_ACL CPPOPTS += -DUSE_XATTR -+CPPOPTS += -DWITH_SELINUX CPPOPTS += -DUSE_FFLAGS - CPPOPTS += -DPAX - CFILES= pax.c header.c cpiohdr.c xheader.c xattr.c \ ++CPPOPTS += -DWITH_SELINUX + CPPOPTS += -DSCHILY_PRINT + CFILES= suntar.c header.c cpiohdr.c xheader.c xattr.c \ + list.c extract.c create.c append.c diff.c restore.c \ @@ -35,7 +36,7 @@ checkerr.h dumpdate.h bitstring.h #LIBS= -lunos #LIBS= -lschily -lc /usr/local/lib/gcc-gnulib -LIBS= -ldeflt -lrmt -lschily $(LIB_ACL) $(LIB_ATTR) $(LIB_SOCKET) +LIBS= -ldeflt -lrmt -lschily $(LIB_ACL) $(LIB_ATTR) $(LIB_SOCKET) $(LIB_SELINUX) - XMK_FILE= spaxman.mk + XMK_FILE= suntarman.mk ########################################################################### ---- star-1.5/star/star.mk.selinux 2005-08-28 07:22:30.000000000 -0400 -+++ star-1.5/star/star.mk 2006-02-22 10:10:09.000000000 -0500 -@@ -19,6 +19,7 @@ +--- star-1.5/star/extract.c.selinux 2007-06-03 17:06:52.000000000 +0200 ++++ star-1.5/star/extract.c 2007-08-24 11:51:13.000000000 +0200 +@@ -246,6 +246,17 @@ + continue; + } + #endif ++ ++#ifdef WITH_SELINUX ++ if (!to_stdout && selinux_enabled) { ++ if (setselinux(&finfo) == FALSE) { ++ errmsgno(EX_BAD, ++ "Can not setup security context for '%s'. Not created.\n", ++ finfo.f_name); ++ } ++ } ++#endif ++ + if (finfo.f_flags & F_BAD_META) { + if (!void_bad(&finfo)) + break; +--- star-1.5/star/cpio.mk.selinux 2007-02-17 15:51:23.000000000 +0100 ++++ star-1.5/star/cpio.mk 2007-08-24 11:51:13.000000000 +0200 +@@ -18,6 +18,7 @@ + CPPOPTS += -DUSE_ACL CPPOPTS += -DUSE_XATTR CPPOPTS += -DUSE_FFLAGS - CPPOPTS += -DCOPY_LINKS_DELAYED +CPPOPTS += -DWITH_SELINUX - CFILES= star.c header.c cpiohdr.c xheader.c xattr.c \ + CPPOPTS += -DSCHILY_PRINT + CFILES= cpio.c header.c cpiohdr.c xheader.c xattr.c \ list.c extract.c create.c append.c diff.c restore.c \ - remove.c star_unix.c acl_unix.c acltext.c fflags.c \ @@ -35,7 +36,7 @@ checkerr.h dumpdate.h bitstring.h #LIBS= -lunos #LIBS= -lschily -lc /usr/local/lib/gcc-gnulib -LIBS= -ldeflt -lrmt -lschily $(LIB_ACL) $(LIB_ATTR) $(LIB_SOCKET) +LIBS= -ldeflt -lrmt -lschily $(LIB_ACL) $(LIB_ATTR) $(LIB_SOCKET) $(LIB_SELINUX) - XMK_FILE= Makefile.man starformatman.mk + XMK_FILE= scpioman.mk + + ########################################################################### +--- star-1.5/star/starsubs.h.selinux 2007-07-15 19:38:52.000000000 +0200 ++++ star-1.5/star/starsubs.h 2007-08-24 11:51:13.000000000 +0200 +@@ -297,6 +297,11 @@ + extern BOOL get_xattr __PR((register FINFO *info)); + extern BOOL set_xattr __PR((register FINFO *info)); + extern void free_xattr __PR((star_xattr_t **xattr)); ++#ifdef WITH_SELINUX ++#include ++extern BOOL setselinux __PR((register FINFO *info)); ++extern int selinux_enabled; ++#endif + #endif + + /* +--- star-1.5/star/Makefile.selinux 2007-06-16 16:46:18.000000000 +0200 ++++ star-1.5/star/Makefile 2007-08-24 11:51:13.000000000 +0200 +@@ -1,64 +1,19 @@ +-#ident @(#)star_fat.mk 1.21 07/06/16 ++#ident @(#)all.mk 1.1 05/02/16 + ########################################################################### +-#include $(MAKE_M_ARCH).def + SRCROOT= .. + RULESDIR= RULES + include $(SRCROOT)/$(RULESDIR)/rules.top + ########################################################################### + # +-# This is star_fat.mk, it creates one "fat" binary for all functionality. ++# This is all.mk, it creates sevral binaries, one for each function. + # +-# If you like to create non "fat" binaries, remove Makefile +-# and copy all.mk to Makefile. ++# If you like to create one single "fat" binary, remove Makefile ++# and copy star_fat.mk to Makefile. + # +-INSDIR= bin +-TARGET= star +-#SYMLINKS= ustar tar +-SYMLINKS= ustar tar gnutar suntar scpio spax +-CPPOPTS += -D__STAR__ +-CPPOPTS += -DSET_CTIME -DFIFO -DUSE_MMAP -DUSE_REMOTE -DUSE_RCMD_RSH +-#CPPOPTS += -DSET_CTIME -DFIFO -DUSE_MMAP +-#CPPOPTS += -DSET_CTIME -DUSE_MMAP +-#CPPOPTS += -DFIFO -DUSE_MMAP +-CPPOPTS += -DUSE_LARGEFILES +-CPPOPTS += -DUSE_FIND +-CPPOPTS += -DUSE_ACL +-CPPOPTS += -DUSE_XATTR +-CPPOPTS += -DUSE_FFLAGS +-CPPOPTS += -DCOPY_LINKS_DELAYED +-CPPOPTS += -DSTAR_FAT +-CPPOPTS += -DSCHILY_PRINT +-CFILES= star_fat.c header.c cpiohdr.c xheader.c xattr.c \ +- list.c extract.c create.c append.c diff.c restore.c \ +- remove.c star_unix.c acl_unix.c acltext.c fflags.c \ +- buffer.c dirtime.c lhash.c \ +- hole.c longnames.c names.c \ +- movearch.c table.c props.c \ +- fetchdir.c \ +- unicode.c \ +- subst.c volhdr.c \ +- chdir.c match.c defaults.c dumpdate.c \ +- fifo.c device.c checkerr.c \ +- \ +- findinfo.c find.c walk.c find_list.c find_misc.c +-HFILES= star.h starsubs.h dirtime.h xtab.h xutimes.h \ +- movearch.h table.h props.h fifo.h diff.h restore.h \ +- checkerr.h dumpdate.h bitstring.h \ +- \ +- find.h fetchdir.h walk.h find_list.h find_misc.h +-#LIBS= -lunos +-#LIBS= -lschily -lc /usr/local/lib/gcc-gnulib +-LIBS= -ldeflt -lrmt -lschily $(LIB_ACL) $(LIB_ATTR) $(LIB_SOCKET) +-XMK_FILE= Makefile.man starformatman.mk scpioman.mk gnutarman.mk \ +- spaxman.mk suntarman.mk Makefile.dfl Makefile.doc + +-star_fat.c: star.c +- $(RM) $(RM_FORCE) $@; cp star.c $@ ++MK_FILES= star.mk pax.mk suntar.mk gnutar.mk cpio.mk + + ########################################################################### +-include $(SRCROOT)/$(RULESDIR)/rules.cmd ++include $(SRCROOT)/$(RULESDIR)/rules.mks ########################################################################### ---- star-1.5/star/star_fat.mk.selinux 2005-11-01 15:53:51.000000000 -0500 -+++ star-1.5/star/star_fat.mk 2006-02-22 10:10:09.000000000 -0500 -@@ -28,6 +28,7 @@ +-count: $(CFILES) $(HFILES) +- count $r1 +- +--- star-1.5/star/pax.mk.selinux 2007-02-17 15:51:23.000000000 +0100 ++++ star-1.5/star/pax.mk 2007-08-24 11:51:13.000000000 +0200 +@@ -18,8 +18,10 @@ + CPPOPTS += -DUSE_ACL + CPPOPTS += -DUSE_XATTR CPPOPTS += -DUSE_FFLAGS - CPPOPTS += -DCOPY_LINKS_DELAYED - CPPOPTS += -DSTAR_FAT -+CPPOPTS += -DWITH_SELINUX - CFILES= star_fat.c header.c cpiohdr.c xheader.c xattr.c \ ++CPPOPTS += -DWITH_SELINUX + CPPOPTS += -DPAX + CPPOPTS += -DSCHILY_PRINT ++ + CFILES= pax.c header.c cpiohdr.c xheader.c xattr.c \ list.c extract.c create.c append.c diff.c restore.c \ remove.c star_unix.c acl_unix.c acltext.c fflags.c \ -@@ -48,7 +49,7 @@ - find.h gettnum.h fetchdir.h walk.h find_list.h mem.h find_misc.h +@@ -36,7 +38,7 @@ + checkerr.h dumpdate.h bitstring.h #LIBS= -lunos #LIBS= -lschily -lc /usr/local/lib/gcc-gnulib -LIBS= -ldeflt -lrmt -lschily $(LIB_ACL) $(LIB_ATTR) $(LIB_SOCKET) +LIBS= -ldeflt -lrmt -lschily $(LIB_ACL) $(LIB_ATTR) $(LIB_SOCKET) $(LIB_SELINUX) - XMK_FILE= Makefile.man starformatman.mk scpioman.mk gnutarman.mk \ - spaxman.mk suntarman.mk Makefile.dfl + XMK_FILE= spaxman.mk ---- star-1.5/star/Makefile.selinux 2005-11-01 15:53:51.000000000 -0500 -+++ star-1.5/star/Makefile 2006-02-22 10:10:09.000000000 -0500 -@@ -25,6 +25,7 @@ - CPPOPTS += -DUSE_FIND - CPPOPTS += -DUSE_ACL - CPPOPTS += -DUSE_XATTR -+CPPOPTS += -DWITH_SELINUX - CPPOPTS += -DUSE_FFLAGS + ########################################################################### +--- star-1.5/star/star_fat.mk.selinux 2007-06-16 16:46:18.000000000 +0200 ++++ star-1.5/star/star_fat.mk 2007-08-24 11:51:13.000000000 +0200 +@@ -29,6 +29,7 @@ CPPOPTS += -DCOPY_LINKS_DELAYED CPPOPTS += -DSTAR_FAT -@@ -48,7 +49,7 @@ - find.h gettnum.h fetchdir.h walk.h find_list.h mem.h find_misc.h + CPPOPTS += -DSCHILY_PRINT ++CPPOPTS += -DWITH_SELINUX + CFILES= star_fat.c header.c cpiohdr.c xheader.c xattr.c \ + list.c extract.c create.c append.c diff.c restore.c \ + remove.c star_unix.c acl_unix.c acltext.c fflags.c \ +@@ -49,7 +50,7 @@ + find.h fetchdir.h walk.h find_list.h find_misc.h #LIBS= -lunos #LIBS= -lschily -lc /usr/local/lib/gcc-gnulib -LIBS= -ldeflt -lrmt -lschily $(LIB_ACL) $(LIB_ATTR) $(LIB_SOCKET) +LIBS= -ldeflt -lrmt -lschily $(LIB_ACL) $(LIB_ATTR) $(LIB_SOCKET) $(LIB_SELINUX) XMK_FILE= Makefile.man starformatman.mk scpioman.mk gnutarman.mk \ - spaxman.mk suntarman.mk Makefile.dfl + spaxman.mk suntarman.mk Makefile.dfl Makefile.doc ---- star-1.5/star/star.c.selinux 2006-02-18 14:09:39.000000000 -0500 -+++ star-1.5/star/star.c 2006-02-22 10:10:09.000000000 -0500 -@@ -42,6 +42,10 @@ +--- star-1.5/star/star.c.selinux 2007-07-16 09:43:14.000000000 +0200 ++++ star-1.5/star/star.c 2007-08-24 11:51:13.000000000 +0200 +@@ -45,6 +45,10 @@ #include "starsubs.h" #include "checkerr.h" @@ -120,116 +197,43 @@ EXPORT int main __PR((int ac, char **av)); LOCAL void star_create __PR((int ac, char *const *av)); LOCAL void checkdumptype __PR((GINFO *gp)); -@@ -375,6 +379,11 @@ +@@ -384,6 +388,11 @@ comerr("Panic cannot set back effective uid.\n"); } my_uid = geteuid(); + +#ifdef WITH_SELINUX -+ selinux_enabled=is_selinux_enabled()>0; ++ selinux_enabled=is_selinux_enabled()>0; +#endif -+ ++ /* * WARNING: We now are no more able to open a new remote connection * unless we have been called by root. ---- star-1.5/star/extract.c.selinux 2005-11-13 08:57:21.000000000 -0500 -+++ star-1.5/star/extract.c 2006-02-22 10:14:45.000000000 -0500 -@@ -224,6 +224,17 @@ - continue; - } - #endif -+ -+#ifdef WITH_SELINUX -+ if (!to_stdout && selinux_enabled) { -+ if (setselinux(&finfo) == FALSE) { -+ errmsgno(EX_BAD, -+ "Can not setup security context for '%s'. Not created.\n", -+ finfo.f_name); -+ } -+ } -+#endif -+ - if (finfo.f_flags & F_BAD_META) { - if (!void_bad(&finfo)) - break; ---- star-1.5/star/cpio.mk.selinux 2006-02-02 10:01:18.000000000 -0500 -+++ star-1.5/star/cpio.mk 2006-02-22 10:10:09.000000000 -0500 -@@ -18,6 +18,7 @@ - CPPOPTS += -DUSE_ACL - CPPOPTS += -DUSE_XATTR - CPPOPTS += -DUSE_FFLAGS -+CPPOPTS += -DWITH_SELINUX - CFILES= cpio.c header.c cpiohdr.c xheader.c xattr.c \ - list.c extract.c create.c append.c diff.c restore.c \ - remove.c star_unix.c acl_unix.c acltext.c fflags.c \ -@@ -34,7 +35,7 @@ - checkerr.h dumpdate.h bitstring.h - #LIBS= -lunos - #LIBS= -lschily -lc /usr/local/lib/gcc-gnulib --LIBS= -ldeflt -lrmt -lschily $(LIB_ACL) $(LIB_ATTR) $(LIB_SOCKET) -+LIBS= -ldeflt -lrmt -lschily $(LIB_ACL) $(LIB_ATTR) $(LIB_SOCKET) $(LIB_SELINUX) - XMK_FILE= scpioman.mk - - ########################################################################### ---- star-1.5/star/gnutar.mk.selinux 2006-02-02 10:00:31.000000000 -0500 -+++ star-1.5/star/gnutar.mk 2006-02-22 10:10:09.000000000 -0500 -@@ -18,6 +18,7 @@ - CPPOPTS += -DUSE_ACL - CPPOPTS += -DUSE_XATTR - CPPOPTS += -DUSE_FFLAGS -+CPPOPTS += -DWITH_SELINUX - CFILES= gnutar.c header.c cpiohdr.c xheader.c xattr.c \ - list.c extract.c create.c append.c diff.c restore.c \ - remove.c star_unix.c acl_unix.c acltext.c fflags.c \ -@@ -34,7 +35,7 @@ - checkerr.h dumpdate.h bitstring.h - #LIBS= -lunos - #LIBS= -lschily -lc /usr/local/lib/gcc-gnulib --LIBS= -ldeflt -lrmt -lschily $(LIB_ACL) $(LIB_ATTR) $(LIB_SOCKET) -+LIBS= -ldeflt -lrmt -lschily $(LIB_ACL) $(LIB_ATTR) $(LIB_SOCKET) $(LIB_SELINUX) - XMK_FILE= gnutarman.mk - - ########################################################################### ---- star-1.5/star/suntar.mk.selinux 2006-02-02 10:00:31.000000000 -0500 -+++ star-1.5/star/suntar.mk 2006-02-22 10:10:09.000000000 -0500 -@@ -18,6 +18,7 @@ - CPPOPTS += -DUSE_ACL +--- star-1.5/star/star.mk.selinux 2007-02-17 15:51:23.000000000 +0100 ++++ star-1.5/star/star.mk 2007-08-24 11:51:13.000000000 +0200 +@@ -19,6 +19,7 @@ CPPOPTS += -DUSE_XATTR CPPOPTS += -DUSE_FFLAGS -+CPPOPTS += -DWITH_SELINUX - CFILES= suntar.c header.c cpiohdr.c xheader.c xattr.c \ + CPPOPTS += -DCOPY_LINKS_DELAYED ++CPPOPTS += -DWITH_SELINUX + CPPOPTS += -DSCHILY_PRINT + CFILES= star.c header.c cpiohdr.c xheader.c xattr.c \ list.c extract.c create.c append.c diff.c restore.c \ - remove.c star_unix.c acl_unix.c acltext.c fflags.c \ -@@ -34,7 +35,7 @@ +@@ -36,7 +37,7 @@ checkerr.h dumpdate.h bitstring.h #LIBS= -lunos #LIBS= -lschily -lc /usr/local/lib/gcc-gnulib -LIBS= -ldeflt -lrmt -lschily $(LIB_ACL) $(LIB_ATTR) $(LIB_SOCKET) +LIBS= -ldeflt -lrmt -lschily $(LIB_ACL) $(LIB_ATTR) $(LIB_SOCKET) $(LIB_SELINUX) - XMK_FILE= suntarman.mk + XMK_FILE= Makefile.man starformatman.mk ########################################################################### ---- star-1.5/star/starsubs.h.selinux 2005-11-01 16:32:18.000000000 -0500 -+++ star-1.5/star/starsubs.h 2006-02-22 10:10:09.000000000 -0500 -@@ -301,6 +301,11 @@ - extern BOOL get_xattr __PR((register FINFO *info)); - extern BOOL set_xattr __PR((register FINFO *info)); - extern void free_xattr __PR((star_xattr_t **xattr)); -+#ifdef WITH_SELINUX -+#include -+extern BOOL setselinux __PR((register FINFO *info)); -+extern int selinux_enabled; -+#endif - #endif - - /* ---- star-1.5/star/xattr.c.selinux 2006-02-13 20:00:40.000000000 -0500 -+++ star-1.5/star/xattr.c 2006-02-22 10:16:44.000000000 -0500 -@@ -181,6 +181,29 @@ +--- star-1.5/star/xattr.c.selinux 2006-09-13 18:24:20.000000000 +0200 ++++ star-1.5/star/xattr.c 2007-08-24 11:53:56.000000000 +0200 +@@ -184,6 +184,28 @@ #endif /* USE_XATTR */ } -+ +#ifdef WITH_SELINUX +EXPORT BOOL +setselinux(info) @@ -255,14 +259,77 @@ /* ARGSUSED */ EXPORT BOOL set_xattr(info) -@@ -194,6 +217,10 @@ +@@ -197,6 +219,10 @@ return (TRUE); for (xap = info->f_xattr; xap->name != NULL; xap++) { +#ifdef WITH_SELINUX -+ if (selinux_enabled && (strcmp(xap->name, "security.selinux") == 0)) -+ continue; ++ if (selinux_enabled && (strcmp(xap->name, "security.selinux") == 0)) ++ continue; +#endif if (lsetxattr(info->f_name, xap->name, xap->value, xap->value_len, 0) != 0) { if (!errhidden(E_SETXATTR, info->f_name)) { +--- star-1.5/star/gnutar.mk.selinux 2007-02-17 15:51:23.000000000 +0100 ++++ star-1.5/star/gnutar.mk 2007-08-24 11:51:13.000000000 +0200 +@@ -18,6 +18,7 @@ + CPPOPTS += -DUSE_ACL + CPPOPTS += -DUSE_XATTR + CPPOPTS += -DUSE_FFLAGS ++CPPOPTS += -DWITH_SELINUX + CPPOPTS += -DSCHILY_PRINT + CFILES= gnutar.c header.c cpiohdr.c xheader.c xattr.c \ + list.c extract.c create.c append.c diff.c restore.c \ +@@ -35,7 +36,7 @@ + checkerr.h dumpdate.h bitstring.h + #LIBS= -lunos + #LIBS= -lschily -lc /usr/local/lib/gcc-gnulib +-LIBS= -ldeflt -lrmt -lschily $(LIB_ACL) $(LIB_ATTR) $(LIB_SOCKET) ++LIBS= -ldeflt -lrmt -lschily $(LIB_ACL) $(LIB_ATTR) $(LIB_SOCKET) $(LIB_SELINUX) + XMK_FILE= gnutarman.mk + + ########################################################################### +--- star-1.5/conf/rules.cnf.in.selinux 2007-05-19 14:52:46.000000000 +0200 ++++ star-1.5/conf/rules.cnf.in 2007-08-24 11:51:13.000000000 +0200 +@@ -20,3 +20,4 @@ + LIB_SECDB = @lib_secdb@ + LIB_PTHREAD = @lib_pthread@ + LIB_RT = @lib_rt@ ++LIB_SELINUX = @lib_selinux@ +--- star-1.5/conf/configure.in.selinux 2007-07-10 05:58:54.000000000 +0200 ++++ star-1.5/conf/configure.in 2007-08-24 11:51:13.000000000 +0200 +@@ -403,6 +403,8 @@ + LIBS="$ac_save_LIBS" + fi + ++ ++ + AC_CHECKING(for RBAC support) + AC_CHECK_LIB(secdb, getuserattr, lib_secdb="-lsecdb") + ac_save_LIBS="$LIBS" +@@ -441,6 +443,18 @@ + else + echo no + fi ++ ++AC_CHECK_HEADERS(selinux/selinux.h) ++if test "$ac_cv_header_selinux_selinux_h" = yes; then ++ AC_CHECKING(for SELinux support) ++ AC_CHECK_LIB(selinux, is_selinux_enabled, lib_selinux="-lselinux -lattr") ++ ac_save_LIBS="$LIBS" ++ LIBS="$LIBS $lib_selinux" ++ AC_CHECK_FUNCS(is_selinux_enabled) ++fi ++ ++ ++ + AC_MSG_CHECKING(for /dev/null) + if test -r /dev/null; then + echo yes +@@ -523,5 +537,6 @@ + AC_SUBST(lib_secdb) + AC_SUBST(lib_pthread) + AC_SUBST(lib_rt) ++AC_SUBST(lib_selinux) + + AC_OUTPUT(rules.cnf) Index: star.spec =================================================================== RCS file: /cvs/dist/rpms/star/FC-6/star.spec,v retrieving revision 1.30 retrieving revision 1.31 diff -u -r1.30 -r1.31 --- star.spec 8 Aug 2006 12:03:38 -0000 1.30 +++ star.spec 28 Aug 2007 08:19:56 -0000 1.31 @@ -3,18 +3,19 @@ %endif Summary: An archiving tool with ACL support Name: star -Version: 1.5a75 -Release: 1 +Version: 1.5a84 +Release: 2%{?dist} URL: http://cdrecord.berlios.de/old/private/star.html Source: ftp://ftp.berlios.de/pub/star/alpha/%{name}-%{version}.tar.bz2 Patch1: star-1.5-newMake.patch Patch2: star-1.5-selinux.patch - +Patch3: star-1.5-changewarnSegv.patch License: CDDL Group: Applications/Archiving BuildRoot: %{_tmppath}/%{name}-%{version}-root -BuildRequires: libattr-devel libacl-devel libtool libselinux-devel - +BuildRequires: libattr-devel libacl-devel libtool libselinux-devel +BuildRequires: e2fsprogs-devel gawk + %description Star saves many files together into a single tape or disk archive, and can restore individual files from the archive. Star supports ACL. @@ -25,8 +26,9 @@ %if %{WITH_SELINUX} %patch2 -p1 -b .selinux %endif +%patch3 -p1 -b .changewarnSegv -for PLAT in x86_64 ppc64 s390 s390x; do +for PLAT in %{arm} x86_64 ppc64 s390 s390x; do for AFILE in gcc cc; do [ ! -e RULES/${PLAT}-linux-${AFILE}.rul ] \ && ln -s i586-linux-${AFILE}.rul RULES/${PLAT}-linux-${AFILE}.rul @@ -58,6 +60,7 @@ mkdir -p ${RPM_BUILD_ROOT}%{_mandir}/man1 %makeinstall RPM_INSTALLDIR=${RPM_BUILD_ROOT} PARCH=%{_target_cpu} K_ARCH=%{_target_cpu} < /dev/null rm -rf $RPM_BUILD_ROOT/usr/share/man +rm -rf $RPM_BUILD_ROOT/usr/share/doc/rmt mv $RPM_BUILD_ROOT/usr/man $RPM_BUILD_ROOT%{_mandir} # XXX Nuke unpackaged files. @@ -86,10 +89,7 @@ %files %defattr(-,root,root) -%doc README AN* COPYING CDDL.Schily.txt README.ACL README.crash README.largefiles README.linux -%doc README.otherbugs README.pattern README.posix-2001 README.SSPM -%doc STARvsGNUTAR -%doc STATUS.alpha TODO +%doc README AN* COPYING CDDL.Schily.txt README.SSPM STATUS.alpha TODO %{_bindir}/star %{_bindir}/ustar %{_bindir}/spax @@ -97,6 +97,22 @@ %{_mandir}/man1/spax.1* %changelog +* Mon Aug 27 2007 Peter Vrabec 1.5a84-2 +- fix segfault of data-change-warn option (#255261), + patch from dkopecek at redhat.com + +* Fri Aug 24 2007 Peter Vrabec 1.5a84-1 +- new upstream release with CVE-2007-4134 fix + +* Sun Jun 24 2007 Peter Vrabec 1.5a76-3 +- build star on ARM platforms (#245465) + +* Mon Jan 29 2007 Peter Vrabec 1.5a76-2 +- fix buildreq. and rebuild + +* Thu Jan 18 2007 Jan Cholasta 1.5a76-1 +- upgrade + * Tue Aug 08 2006 Peter Vrabec 1.5a75-1 - upgrade From fedora-cvs-commits at redhat.com Tue Aug 28 15:14:27 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Tue, 28 Aug 2007 11:14:27 -0400 Subject: rpms/iptables/FC-6 iptables-1.3.8-headers.patch, NONE, 1.1 iptables-1.3.8-iptc.patch, NONE, 1.1 .cvsignore, 1.18, 1.19 iptables.init, 1.11, 1.12 iptables.spec, 1.43, 1.44 sources, 1.18, 1.19 iptables-1.2.10-counters.patch, 1.1, NONE iptables-1.2.11-autoload.patch, 1.1, NONE iptables-1.2.11-cleanup.patch, 1.1, NONE iptables-1.2.11-free.patch, 1.1, NONE iptables-1.2.8-nolibnsl.patch, 1.1, NONE iptables-1.2.9-netlink.patch, 1.1, NONE iptables-1.2.9-selinux.patch, 1.1, NONE iptables-1.3.0-autoload.patch, 1.1, NONE iptables-1.3.0-cleanup.patch, 1.2, NONE iptables-1.3.0-no_root.patch, 1.1, NONE iptables-1.3.0-selinux.patch, 1.1, NONE iptables-1.3.2-free_opts.patch, 1.1, NONE iptables-1.3.5-secmark.patch, 1.1, NONE Message-ID: <200708281514.l7SFERCh003033@cvs.devel.redhat.com> Author: twoerner Update of /cvs/dist/rpms/iptables/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv3012 Modified Files: .cvsignore iptables.init iptables.spec sources Added Files: iptables-1.3.8-headers.patch iptables-1.3.8-iptc.patch Removed Files: iptables-1.2.10-counters.patch iptables-1.2.11-autoload.patch iptables-1.2.11-cleanup.patch iptables-1.2.11-free.patch iptables-1.2.8-nolibnsl.patch iptables-1.2.9-netlink.patch iptables-1.2.9-selinux.patch iptables-1.3.0-autoload.patch iptables-1.3.0-cleanup.patch iptables-1.3.0-no_root.patch iptables-1.3.0-selinux.patch iptables-1.3.2-free_opts.patch iptables-1.3.5-secmark.patch Log Message: - 1.3.8-2 for FC-6 iptables-1.3.8-headers.patch: .CLUSTERIP-test | 2 +- .ah-test6 | 2 +- .frag-test6 | 2 +- .ipv6header-test6 | 2 +- .opts-test6 | 2 +- .rt-test6 | 2 +- .statistic-test | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) --- NEW FILE iptables-1.3.8-headers.patch --- diff -up iptables-1.3.8/extensions/.frag-test6.headers iptables-1.3.8/extensions/.frag-test6 --- iptables-1.3.8/extensions/.frag-test6.headers 2007-08-23 14:05:44.000000000 +0200 +++ iptables-1.3.8/extensions/.frag-test6 2007-08-23 15:51:17.000000000 +0200 @@ -1,2 +1,2 @@ #!/bin/sh -[ -f $KERNEL_DIR/net/ipv6/netfilter/ip6t_frag.c -a -f $KERNEL_DIR/include/linux/netfilter_ipv6/ip6t_frag.h ] && echo frag +[ -f $KERNEL_DIR/include/linux/netfilter_ipv6/ip6t_frag.h ] && echo frag diff -up iptables-1.3.8/extensions/.CLUSTERIP-test.headers iptables-1.3.8/extensions/.CLUSTERIP-test --- iptables-1.3.8/extensions/.CLUSTERIP-test.headers 2007-08-23 15:43:36.000000000 +0200 +++ iptables-1.3.8/extensions/.CLUSTERIP-test 2007-08-23 15:45:32.000000000 +0200 @@ -1,2 +1,2 @@ #! /bin/sh -[ -f $KERNEL_DIR/net/ipv4/netfilter/ipt_CLUSTERIP.c ] && echo CLUSTERIP +[ -f $KERNEL_DIR/include/linux/netfilter_ipv4/ipt_CLUSTERIP.h ] && echo CLUSTERIP diff -up iptables-1.3.8/extensions/.statistic-test.headers iptables-1.3.8/extensions/.statistic-test --- iptables-1.3.8/extensions/.statistic-test.headers 2007-08-23 15:46:20.000000000 +0200 +++ iptables-1.3.8/extensions/.statistic-test 2007-08-23 15:46:22.000000000 +0200 @@ -1,2 +1,2 @@ #!/bin/sh -[ -f $KERNEL_DIR/net/netfilter/xt_statistic.c -a -f $KERNEL_DIR/include/linux/netfilter/xt_statistic.h ] && echo statistic +[ -f $KERNEL_DIR/include/linux/netfilter/xt_statistic.h ] && echo statistic diff -up iptables-1.3.8/extensions/.ah-test6.headers iptables-1.3.8/extensions/.ah-test6 --- iptables-1.3.8/extensions/.ah-test6.headers 2007-08-23 15:52:48.000000000 +0200 +++ iptables-1.3.8/extensions/.ah-test6 2007-08-23 15:52:49.000000000 +0200 @@ -1,2 +1,2 @@ #!/bin/sh -[ -f $KERNEL_DIR/net/ipv6/netfilter/ip6t_ah.c -a -f $KERNEL_DIR/include/linux/netfilter_ipv6/ip6t_ah.h ] && echo ah +[ -f $KERNEL_DIR/include/linux/netfilter_ipv6/ip6t_ah.h ] && echo ah diff -up iptables-1.3.8/extensions/.opts-test6.headers iptables-1.3.8/extensions/.opts-test6 --- iptables-1.3.8/extensions/.opts-test6.headers 2007-08-23 15:49:16.000000000 +0200 +++ iptables-1.3.8/extensions/.opts-test6 2007-08-23 15:49:19.000000000 +0200 @@ -1,2 +1,2 @@ #!/bin/sh -[ -f $KERNEL_DIR/net/ipv6/netfilter/ip6t_hbh.c -a -f $KERNEL_DIR/net/ipv6/netfilter/ip6t_dst.c -a -f $KERNEL_DIR/include/linux/netfilter_ipv6/ip6t_opts.h ] && echo hbh dst +[ -f $KERNEL_DIR/include/linux/netfilter_ipv6/ip6t_opts.h ] && echo hbh dst diff -up iptables-1.3.8/extensions/.ipv6header-test6.headers iptables-1.3.8/extensions/.ipv6header-test6 --- iptables-1.3.8/extensions/.ipv6header-test6.headers 2007-08-23 14:05:45.000000000 +0200 +++ iptables-1.3.8/extensions/.ipv6header-test6 2007-08-23 15:50:26.000000000 +0200 @@ -1,2 +1,2 @@ #!/bin/sh -[ -f $KERNEL_DIR/net/ipv6/netfilter/ip6t_ipv6header.c -a -f $KERNEL_DIR/include/linux/netfilter_ipv6/ip6t_ipv6header.h ] && echo ipv6header +[ -f $KERNEL_DIR/include/linux/netfilter_ipv6/ip6t_ipv6header.h ] && echo ipv6header diff -up iptables-1.3.8/extensions/.rt-test6.headers iptables-1.3.8/extensions/.rt-test6 --- iptables-1.3.8/extensions/.rt-test6.headers 2007-08-23 15:47:21.000000000 +0200 +++ iptables-1.3.8/extensions/.rt-test6 2007-08-23 15:47:23.000000000 +0200 @@ -1,2 +1,2 @@ #!/bin/sh -[ -f $KERNEL_DIR/net/ipv6/netfilter/ip6t_rt.c -a -f $KERNEL_DIR/include/linux/netfilter_ipv6/ip6t_rt.h ] && echo rt +[ -f $KERNEL_DIR/include/linux/netfilter_ipv6/ip6t_rt.h ] && echo rt iptables-1.3.8-iptc.patch: Makefile | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) --- NEW FILE iptables-1.3.8-iptc.patch --- diff -up iptables-1.3.8/libiptc/Makefile.iptc iptables-1.3.8/libiptc/Makefile --- iptables-1.3.8/libiptc/Makefile.iptc 2007-08-23 13:52:17.000000000 +0200 +++ iptables-1.3.8/libiptc/Makefile 2007-08-23 13:54:28.000000000 +0200 @@ -3,7 +3,7 @@ EXTRAS+=libiptc/libiptc.a # libiptc is not a public interface and therefore not installed -# DEVEL_LIBS+=libiptc/libiptc.a +DEVEL_LIBS+=libiptc/libiptc.a ifndef TOPLEVEL_INCLUDED local: Index: .cvsignore =================================================================== RCS file: /cvs/dist/rpms/iptables/FC-6/.cvsignore,v retrieving revision 1.18 retrieving revision 1.19 diff -u -r1.18 -r1.19 --- .cvsignore 2 Feb 2006 13:24:00 -0000 1.18 +++ .cvsignore 28 Aug 2007 15:14:25 -0000 1.19 @@ -4,3 +4,4 @@ iptables-1.3.2.tar.bz2 iptables-1.3.4.tar.bz2 iptables-1.3.5.tar.bz2 +iptables-1.3.8.tar.bz2 Index: iptables.init =================================================================== RCS file: /cvs/dist/rpms/iptables/FC-6/iptables.init,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- iptables.init 2 Feb 2006 13:24:00 -0000 1.11 +++ iptables.init 28 Aug 2007 15:14:25 -0000 1.12 @@ -7,6 +7,16 @@ # # config: /etc/sysconfig/iptables # config: /etc/sysconfig/iptables-config +# +### BEGIN INIT INFO +# Provides: iptables +# Required-Start: $local_fs +# Required-Stop: $local_fs +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: start and stop iptables firewall +# Description: Start, stop and save iptables firewall +### END INIT INFO # Source function library. . /etc/init.d/functions @@ -15,17 +25,13 @@ IPTABLES_DATA=/etc/sysconfig/$IPTABLES IPTABLES_CONFIG=/etc/sysconfig/${IPTABLES}-config IPV=${IPTABLES%tables} # ip for ipv4 | ip6 for ipv6 +[ "$IPV" = "ip" ] && _IPV="ipv4" || _IPV="ipv6" PROC_IPTABLES_NAMES=/proc/net/${IPV}_tables_names VAR_SUBSYS_IPTABLES=/var/lock/subsys/$IPTABLES if [ ! -x /sbin/$IPTABLES ]; then echo -n $"/sbin/$IPTABLES does not exist."; warning; echo - exit 0 -fi - -if lsmod 2>/dev/null | grep -q ipchains ; then - echo -n $"ipchains and $IPTABLES can not be used together."; warning; echo - exit 0 + exit 5 fi # Old or new modutils @@ -54,8 +60,8 @@ # Get referring modules. # New modutils have another output format. [ $NEW_MODUTILS = 1 ] \ - && ref=`lsmod | awk "/^${mod}/ { print \\\$4; }" | tr ',' ' '` \ - || ref=`lsmod | grep ^${mod} | cut -d "[" -s -f 2 | cut -d "]" -s -f 1` + && ref=$(lsmod | awk "/^${mod}/ { print \$4; }" | tr ',' ' ') \ + || ref=$(lsmod | grep ^${mod} | cut -d "[" -s -f 2 | cut -d "]" -s -f 1) # recursive call for all referring modules for i in $ref; do @@ -79,7 +85,7 @@ [ -e "$PROC_IPTABLES_NAMES" ] || return 1 # Check if firewall is configured (has tables) - tables=`cat $PROC_IPTABLES_NAMES 2>/dev/null` + tables=$(cat $PROC_IPTABLES_NAMES 2>/dev/null) [ -z "$tables" ] && return 1 echo -n $"Flushing firewall rules: " @@ -112,7 +118,7 @@ [ ! -e "$PROC_IPTABLES_NAMES" ] && return 1 # Check if firewall is configured (has tables) - tables=`cat $PROC_IPTABLES_NAMES 2>/dev/null` + tables=$(cat $PROC_IPTABLES_NAMES 2>/dev/null) [ -z "$tables" ] && return 1 echo -n $"Setting chains to policy $policy: " @@ -201,8 +207,12 @@ ret=0 rmmod_r ${IPV}_tables let ret+=$?; - rmmod_r ${IPV}_conntrack + rmmod_r nf_conntrack_${_IPV} let ret+=$?; + # try to unload remaining netfilter modules used by ipv4 and ipv6 + # netfilter + rmmod_r x_tables + rmmod_r nf_conntrack [ $ret -eq 0 ] && success || failure echo fi @@ -216,7 +226,7 @@ [ ! -e "$PROC_IPTABLES_NAMES" ] && return 1 # Check if firewall is configured (has tables) - tables=`cat $PROC_IPTABLES_NAMES 2>/dev/null` + tables=$(cat $PROC_IPTABLES_NAMES 2>/dev/null) [ -z "$tables" ] && return 1 echo -n $"Saving firewall rules to $IPTABLES_DATA: " @@ -225,10 +235,10 @@ [ "x$IPTABLES_SAVE_COUNTER" = "xyes" ] && OPT="-c" ret=0 - TMP_FILE=`/bin/mktemp -q /tmp/$IPTABLES.XXXXXX` \ + TMP_FILE=$(/bin/mktemp -q /tmp/$IPTABLES.XXXXXX) \ && chmod 600 "$TMP_FILE" \ && $IPTABLES-save $OPT > $TMP_FILE 2>/dev/null \ - && size=`stat -c '%s' $TMP_FILE` && [ $size -gt 0 ] \ + && size=$(stat -c '%s' $TMP_FILE) && [ $size -gt 0 ] \ || ret=1 if [ $ret -eq 0 ]; then if [ -e $IPTABLES_DATA ]; then @@ -249,24 +259,20 @@ } status() { - tables=`cat $PROC_IPTABLES_NAMES 2>/dev/null` + tables=$(cat $PROC_IPTABLES_NAMES 2>/dev/null) # Do not print status if lockfile is missing and iptables modules are not # loaded. - # Check if iptable module is loaded + # Check if iptable modules are loaded if [ ! -f "$VAR_SUBSYS_IPTABLES" -a -z "$tables" ]; then echo $"Firewall is stopped." - return 1 + return 3 fi # Check if firewall is configured (has tables) - if [ ! -e "$PROC_IPTABLES_NAMES" ]; then - echo $"Firewall is not configured. " - return 1 - fi - if [ -z "$tables" ]; then + if [ ! -e "$PROC_IPTABLES_NAMES" -o -z "$tables" ]; then echo $"Firewall is not configured. " - return 1 + return 3 fi NUM= @@ -290,23 +296,29 @@ start } +status >/dev/null 2>&1 +running=$? + case "$1" in start) - stop + [ $running -eq 0 ] && exit 0 start RETVAL=$? ;; stop) + [ $running -eq 0 ] || exit 0 [ "x$IPTABLES_SAVE_ON_STOP" = "xyes" ] && save stop RETVAL=$? ;; - restart) + restart|force-reload) restart RETVAL=$? ;; - condrestart) - [ -e "$VAR_SUBSYS_IPTABLES" ] && restart + condrestart|try-restart) + [ ! -e "$VAR_SUBSYS_IPTABLES" ] && exit 7 + restart + RETVAL=$? ;; status) status @@ -323,7 +335,7 @@ ;; *) echo $"Usage: $0 {start|stop|restart|condrestart|status|panic|save}" - exit 1 + RETVAL=3 ;; esac Index: iptables.spec =================================================================== RCS file: /cvs/dist/rpms/iptables/FC-6/iptables.spec,v retrieving revision 1.43 retrieving revision 1.44 diff -u -r1.43 -r1.44 --- iptables.spec 19 Sep 2006 15:36:43 -0000 1.43 +++ iptables.spec 28 Aug 2007 15:14:25 -0000 1.44 @@ -1,47 +1,35 @@ %define build_devel 1 Name: iptables -Summary: Tools for managing Linux kernel packet filtering capabilities. -Version: 1.3.5 -Release: 2 -Source: http://www.netfilter.org/%{name}-%{version}.tar.bz2 +Summary: Tools for managing Linux kernel packet filtering capabilities +Version: 1.3.8 +Release: 2%{?dist} +Source: http://www.netfilter.org/projects/iptables/files/%{name}-%{version}.tar.bz2 Source1: iptables.init Source2: iptables-config -Patch2: iptables-1.2.8-nolibnsl.patch -Patch4: iptables-1.2.9-netlink.patch -Patch5: iptables-1.3.0-selinux.patch -Patch6: iptables-1.2.10-counters.patch -Patch8: iptables-1.3.0-cleanup.patch -Patch9: iptables-1.3.0-autoload.patch -Patch10: iptables-1.3.0-no_root.patch -Patch11: iptables-1.3.5-secmark.patch +Patch0: iptables-1.3.8-iptc.patch +Patch1: iptables-1.3.8-headers.patch Group: System Environment/Base URL: http://www.netfilter.org/ -BuildRoot: %{_tmppath}/%{name}-buildroot -License: GPL -BuildRequires: /usr/bin/perl +BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) +License: GPLv2 BuildRequires: libselinux-devel Conflicts: kernel < 2.4.20 -Requires(post,postun): chkconfig -Prefix: %{_prefix} - -%package ipv6 -Summary: IPv6 support for iptables. -Group: System Environment/Base -Requires: %{name} = %{version} - -%if %{build_devel} -%package devel -Summary: Development package for iptables. -Group: System Environment/Base -Requires: %{name} = %{version} -%endif +Requires(post): chkconfig +Requires(preun): chkconfig %description The iptables utility controls the network packet filtering code in the Linux kernel. If you need to set up firewalls and/or IP masquerading, you should install this package. +%package ipv6 +Summary: IPv6 support for iptables +Group: System Environment/Base +Requires: %{name} = %{version}-%{release} +Requires(post): chkconfig +Requires(preun): chkconfig + %description ipv6 The iptables package contains IPv6 (the next version of the IP protocol) support for iptables. Iptables controls the Linux kernel @@ -52,27 +40,25 @@ network and you are using ipv6. %if %{build_devel} +%package devel +Summary: Development package for iptables +Group: System Environment/Base +Requires: %{name} = %{version}-%{release} + %description devel -The iptables utility controls the network packet filtering code in the -Linux kernel. If you need to set up firewalls and/or IP masquerading, -you should install this package. +iptables development headers and libraries. + +The iptc interface is upstream marked as not public. The interface is not +stable and may change with every new version. It is therefore unsupported. %endif %prep -rm -rf %{buildroot} - %setup -q -%patch2 -p1 -b .nolibnsl -%patch4 -p1 -b .netlink -%patch5 -p1 -b .selinux -%patch6 -p1 -b .counters -%patch8 -p1 -b .cleanup -%patch9 -p1 -b .autoload -%patch10 -p1 -b .no_root -%patch11 -p1 -b .secmark +%patch0 -p1 -b .iptc +%patch1 -p1 -b .headers # Put it to a reasonable place -find . -type f -exec perl -pi -e "s,/usr/local,%{prefix},g" {} \; +find . -type f -exec perl -pi -e "s,/usr/local,%{_prefix},g" {} \; # do not use ld -shared and _init perl -pi -e "s/\(LD\) -shared/\(CC\) -shared/g" Rules.make @@ -83,11 +69,13 @@ TOPDIR=`pwd` OPT="$RPM_OPT_FLAGS -I$TOPDIR/include -fPIC" export DO_SELINUX=1 -make COPT_FLAGS="$OPT" KERNEL_DIR=/usr LIBDIR=/%{_lib} +make COPT_FLAGS="$OPT" KERNEL_DIR=/usr LIBDIR=/%{_lib} make COPT_FLAGS="$OPT" KERNEL_DIR=/usr LIBDIR=/%{_lib} iptables-save iptables-restore make COPT_FLAGS="$OPT" KERNEL_DIR=/usr LIBDIR=/%{_lib} ip6tables-save ip6tables-restore %install +rm -rf %{buildroot} +export DO_SELINUX=1 make install DESTDIR=%{buildroot} KERNEL_DIR=/usr BINDIR=/sbin LIBDIR=/%{_lib} MANDIR=%{_mandir} %if %{build_devel} make install-devel DESTDIR=%{buildroot} KERNEL_DIR=/usr BINDIR=/sbin LIBDIR=%{_libdir} MANDIR=%{_mandir} @@ -103,9 +91,11 @@ sed -e 's;iptables;ip6tables;g' -e 's;IPTABLES;IP6TABLES;g' < %{SOURCE2} > ip6tables-config install -c -m755 ip6tables-config $RPM_BUILD_ROOT/etc/sysconfig/ip6tables-config # install devel header files -mkdir -p $RPM_BUILD_ROOT/usr/include -install -c include/ip*.h $RPM_BUILD_ROOT/usr/include/ - +mkdir -p $RPM_BUILD_ROOT%{_includedir} +install -c -m644 include/ip*.h $RPM_BUILD_ROOT%{_includedir} +# install libiptc header files (unsupported) +mkdir -p $RPM_BUILD_ROOT%{_includedir}/libiptc +install -c -m644 include/libiptc/*.h $RPM_BUILD_ROOT%{_includedir}/libiptc %clean rm -rf $RPM_BUILD_ROOT @@ -127,9 +117,9 @@ fi %files -%defattr(-,root,root,0755) +%defattr(-,root,root) %doc COPYING INSTALL INCOMPATIBILITIES -%config %attr(0755,root,root) /etc/rc.d/init.d/iptables +%attr(0755,root,root) /etc/rc.d/init.d/iptables %config(noreplace) %attr(0600,root,root) /etc/sysconfig/iptables-config /sbin/iptables* %{_mandir}/man8/iptables* @@ -137,8 +127,8 @@ /%{_lib}/iptables/libipt* %files ipv6 -%defattr(-,root,root,0755) -%config %attr(0755,root,root) /etc/rc.d/init.d/ip6tables +%defattr(-,root,root) +%attr(0755,root,root) /etc/rc.d/init.d/ip6tables %config(noreplace) %attr(0600,root,root) /etc/sysconfig/ip6tables-config /sbin/ip6tables* %{_mandir}/man8/ip6tables* @@ -146,15 +136,43 @@ %if %{build_devel} %files devel -%defattr(-,root,root,0755) +%defattr(-,root,root) %{_includedir}/ip*.h %{_includedir}/libipq.h +%dir %{_includedir}/libiptc +%{_includedir}/libiptc/*.h %{_libdir}/libipq.a %{_libdir}/libiptc.a %{_mandir}/man3/* %endif %changelog +* Tue Aug 28 2007 Thomas Woerner 1.3.8-2 +- FC-6 version + +* Thu Aug 23 2007 Thomas Woerner 1.3.8-2 +- fixed initscript for LSB conformance (rhbz#246953, rhbz#242459) +- provide iptc interface again, but unsupported (rhbz#216733) +- compile all extension, which are supported by the kernel-headers package +- review fixes (rhbz#225906) + +* Tue Jul 31 2007 Thomas Woerner +- reverted ipv6 fix, because it disables the ipv6 at all (rhbz#236888) + +* Fri Jul 13 2007 Steve Conklin - 1.3.8-1 +- New version 1.3.8 + +* Mon Apr 23 2007 Jeremy Katz - 1.3.7-2 +- fix error when ipv6 support isn't loaded in the kernel (#236888) + +* Wed Jan 10 2007 Thomas Woerner 1.3.7-1.1 +- fixed installation of secmark modules + +* Tue Jan 9 2007 Thomas Woerner 1.3.7-1 +- new verison 1.3.7 +- iptc is not a public interface and therefore not installed anymore +- dropped upstream secmark patch + * Thu Sep 19 2006 Thomas Woerner 1.3.5-2 - added secmark iptables patches (#201573) @@ -342,7 +360,7 @@ - Merge ip6tables improvements from Ian Prowell #59402 - Update URL (#59354) -- Use /sbin/chkconfig rather than chkconfig in %postun script +- Use /sbin/chkconfig rather than chkconfig in %%postun script * Fri Jan 11 2002 Bernhard Rosenkraenzer 1.2.5-1 - 1.2.5 @@ -351,7 +369,7 @@ - automated rebuild * Mon Nov 5 2001 Bernhard Rosenkraenzer 1.2.4-2 -- Fix %preun script +- Fix %%preun script * Tue Oct 30 2001 Bernhard Rosenkraenzer 1.2.4-1 - Update to 1.2.4 (various fixes, including security fixes; among others: @@ -397,7 +415,7 @@ - fix bugzilla #25962 (iptables-restore) - mv chkconfig --del from postun to preun -* Thu Feb 1 2001 Trond Eivind Glomsr?d +* Thu Feb 1 2001 Trond Eivind Glomsr??d - Fix check for ipchains * Mon Jan 29 2001 Bernhard Rosenkraenzer @@ -444,5 +462,5 @@ * Mon Jun 4 2000 Bill Nottingham - remove explicit kernel requirement -* Tue May 2 2000 Bernhard Rosenkr?nzer +* Tue May 2 2000 Bernhard Rosenkr??nzer - initial package Index: sources =================================================================== RCS file: /cvs/dist/rpms/iptables/FC-6/sources,v retrieving revision 1.18 retrieving revision 1.19 diff -u -r1.18 -r1.19 --- sources 2 Feb 2006 13:24:00 -0000 1.18 +++ sources 28 Aug 2007 15:14:25 -0000 1.19 @@ -1 +1 @@ -00fb916fa8040ca992a5ace56d905ea5 iptables-1.3.5.tar.bz2 +0a9209f928002e5eee9cdff8fef4d4b3 iptables-1.3.8.tar.bz2 --- iptables-1.2.10-counters.patch DELETED --- --- iptables-1.2.11-autoload.patch DELETED --- --- iptables-1.2.11-cleanup.patch DELETED --- --- iptables-1.2.11-free.patch DELETED --- --- iptables-1.2.8-nolibnsl.patch DELETED --- --- iptables-1.2.9-netlink.patch DELETED --- --- iptables-1.2.9-selinux.patch DELETED --- --- iptables-1.3.0-autoload.patch DELETED --- --- iptables-1.3.0-cleanup.patch DELETED --- --- iptables-1.3.0-no_root.patch DELETED --- --- iptables-1.3.0-selinux.patch DELETED --- --- iptables-1.3.2-free_opts.patch DELETED --- --- iptables-1.3.5-secmark.patch DELETED --- From fedora-cvs-commits at redhat.com Tue Aug 28 15:55:57 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Tue, 28 Aug 2007 11:55:57 -0400 Subject: rpms/freeradius/FC-6 freeradius-1.1.7-db_dir.patch, NONE, 1.1 freeradius-1.1.7-ldap.patch, NONE, 1.1 freeradius-1.1.7-lsb.patch, NONE, 1.1 .cvsignore, 1.13, 1.14 freeradius.spec, 1.37, 1.38 sources, 1.13, 1.14 freeradius-1.0.0-samba3.patch, 1.1, NONE freeradius-1.0.1-CVE-2007-2028.patch, 1.1, NONE freeradius-1.1.1-pie.patch, 1.1, NONE freeradius-1.1.3-ldap.patch, 1.1, NONE Message-ID: <200708281555.l7SFtv15004040@cvs.devel.redhat.com> Author: twoerner Update of /cvs/dist/rpms/freeradius/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv4017 Modified Files: .cvsignore freeradius.spec sources Added Files: freeradius-1.1.7-db_dir.patch freeradius-1.1.7-ldap.patch freeradius-1.1.7-lsb.patch Removed Files: freeradius-1.0.0-samba3.patch freeradius-1.0.1-CVE-2007-2028.patch freeradius-1.1.1-pie.patch freeradius-1.1.3-ldap.patch Log Message: - freeradius-1.1.7-2 for FC-6 freeradius-1.1.7-db_dir.patch: radiusd.conf.in | 11 ++++++++--- 1 files changed, 8 insertions(+), 3 deletions(-) --- NEW FILE freeradius-1.1.7-db_dir.patch --- diff -up freeradius-1.1.7/raddb/radiusd.conf.in.db_dir freeradius-1.1.7/raddb/radiusd.conf.in --- freeradius-1.1.7/raddb/radiusd.conf.in.db_dir 2007-08-07 15:41:35.000000000 +0200 +++ freeradius-1.1.7/raddb/radiusd.conf.in 2007-08-07 15:44:47.000000000 +0200 @@ -33,6 +33,11 @@ radacctdir = @radacctdir@ confdir = ${raddbdir} run_dir = ${localstatedir}/run/radiusd +# Location of db files +# Please use this directory for all db files (e.g. db.daily, db.ippool and +# db.ipindex). +db_dir = ${localstatedir}/lib/radiusd + # # The logging messages for the server are appended to the # tail of this file. @@ -1398,7 +1403,7 @@ $INCLUDE ${confdir}/eap.conf # 'check-name' attribute. # counter daily { - filename = ${raddbdir}/db.daily + filename = ${db_dir}/db.daily key = User-Name count-attribute = Acct-Session-Time reset = daily @@ -1713,10 +1718,10 @@ $INCLUDE ${confdir}/eap.conf cache-size = 800 # session-db: The main db file used to allocate ip's to clients - session-db = ${raddbdir}/db.ippool + session-db = ${db_dir}/db.ippool # ip-index: Helper db index file used in multilink - ip-index = ${raddbdir}/db.ipindex + ip-index = ${db_dir}/db.ipindex # override: Will this ippool override a Framed-IP-Address already set override = no freeradius-1.1.7-ldap.patch: rlm_ldap.c | 16 ++++++++-------- 1 files changed, 8 insertions(+), 8 deletions(-) --- NEW FILE freeradius-1.1.7-ldap.patch --- diff -up freeradius-1.1.7/src/modules/rlm_ldap/rlm_ldap.c.ldap freeradius-1.1.7/src/modules/rlm_ldap/rlm_ldap.c --- freeradius-1.1.7/src/modules/rlm_ldap/rlm_ldap.c.ldap 2007-06-18 11:00:27.000000000 +0200 +++ freeradius-1.1.7/src/modules/rlm_ldap/rlm_ldap.c 2007-08-06 14:40:31.000000000 +0200 @@ -1041,7 +1041,7 @@ static int ldap_groupcmp(void *instance, radlog(L_ERR, "rlm_ldap: Add ldap connections are in use"); return 1; } - if ((res = perform_search(inst, conn, vp_user_dn->strvalue, LDAP_SCOPE_BASE, + if ((res = perform_search(inst, conn, (char *)vp_user_dn->strvalue, LDAP_SCOPE_BASE, filter, group_attrs,&result)) != RLM_MODULE_OK){ DEBUG("rlm_ldap::ldap_groupcmp: Search returned error"); ldap_release_conn(conn_id, inst->conns); @@ -1356,7 +1356,7 @@ ldap_authorize(void *instance, REQUEST * strNcpy(filter,inst->base_filter,sizeof(filter)); if (user_profile) - profile = user_profile->strvalue; + profile = (char *)user_profile->strvalue; if (profile && strlen(profile)){ if ((res = perform_search(instance, conn, profile, LDAP_SCOPE_BASE, @@ -1460,7 +1460,7 @@ ldap_authorize(void *instance, REQUEST * } added_known_password = 1; passwd_len = strlen(passwd_val); - strncpy(passwd_item->strvalue,passwd_val,MAX_STRING_LEN - 1); + strncpy((char *)passwd_item->strvalue,passwd_val,MAX_STRING_LEN - 1); passwd_item->length = (passwd_len > (MAX_STRING_LEN - 1)) ? (MAX_STRING_LEN - 1) : passwd_len; pairadd(&request->config_items,passwd_item); DEBUG("rlm_ldap: Added password %s in check items",passwd_item->strvalue); @@ -1804,12 +1804,12 @@ ldap_authenticate(void *instance, REQUES ldap_msgfree(result); } - user_dn = vp_user_dn->strvalue; + user_dn = (char *)vp_user_dn->strvalue; DEBUG("rlm_ldap: user DN: %s", user_dn); #ifndef NOVELL - ld_user = ldap_connect(instance, user_dn, request->password->strvalue, + ld_user = ldap_connect(instance, user_dn, (char *)request->password->strvalue, 1, &res, NULL); #else @@ -1954,7 +1954,7 @@ retry: } } - ld_user = ldap_connect(instance, user_dn, request->password->strvalue, + ld_user = ldap_connect(instance, user_dn, (char *)request->password->strvalue, 1, &res, &err); if(err != NULL){ @@ -2208,7 +2208,7 @@ ldap_connect(void *instance, const char #ifdef HAVE_LDAP_INT_TLS_CONFIG - if ( ldap_int_tls_config( NULL, LDAP_OPT_X_TLS_REQUIRE_CERT, + if ( ldap_set_option( NULL, LDAP_OPT_X_TLS_REQUIRE_CERT, (inst->tls_require_cert) ) != LDAP_OPT_SUCCESS) { radlog(L_ERR, "rlm_ldap: could not set " @@ -2622,7 +2622,7 @@ ldap_pairget(LDAP * ld, LDAPMessage * en if (do_xlat) { newpair->flags.do_xlat = 1; - strNcpy(newpair->strvalue, buf, + strNcpy((char *)newpair->strvalue, buf, sizeof(newpair->strvalue)); newpair->length = 0; } freeradius-1.1.7-lsb.patch: rc.radiusd-redhat | 35 ++++++++++++++++++++++++----------- 1 files changed, 24 insertions(+), 11 deletions(-) --- NEW FILE freeradius-1.1.7-lsb.patch --- diff -up freeradius-1.1.7/redhat/rc.radiusd-redhat.lsb freeradius-1.1.7/redhat/rc.radiusd-redhat --- freeradius-1.1.7/redhat/rc.radiusd-redhat.lsb 2002-09-14 01:13:58.000000000 +0200 +++ freeradius-1.1.7/redhat/rc.radiusd-redhat 2007-08-28 15:21:59.000000000 +0200 @@ -20,6 +20,14 @@ # Copyright (C) 2001 The FreeRADIUS Project http://www.freeradius.org # +### BEGIN INIT INFO +# Provides: RADIUS server daemon +# Required-Start: $local_fs $network +# Required-Stop: $local_fs $network +# Short-Description: start and stop RADIUS server daemon +# Description: radiusd - Authentication, Authorization and Accounting server +### END INIT INFO + # Source function library. . /etc/rc.d/init.d/functions @@ -27,13 +35,17 @@ RADIUSD=/usr/sbin/radiusd LOCKF=/var/lock/subsys/radiusd CONFIG=/etc/raddb/radiusd.conf -[ -f $RADIUSD ] || exit 0 -[ -f $CONFIG ] || exit 0 +[ -f $RADIUSD ] || exit 5 +[ -f $CONFIG ] || exit 6 RETVAL=0 +status radiusd +running=$? + case "$1" in start) + [ $running -eq 0 ] && exit 0 echo -n $"Starting RADIUS server: " daemon $RADIUSD -y RETVAL=$? @@ -42,6 +54,7 @@ case "$1" in ln -s /var/run/radiusd/radiusd.pid /var/run/radiusd.pid 2>/dev/null ;; stop) + [ $running -ne 0 ] || exit 0 echo -n $"Stopping RADIUS server: " killproc $RADIUSD RETVAL=$? @@ -53,28 +66,28 @@ case "$1" in RETVAL=$? ;; reload) + [ $running -ne 0 ] && exit 7 echo -n $"Reloading RADIUS server: " killproc $RADIUSD -HUP RETVAL=$? echo ;; - restart) + restart|force-reload) $0 stop sleep 3 $0 start RETVAL=$? ;; - condrestart) - if [ -f $LOCKF ]; then - $0 stop - sleep 3 - $0 start - RETVAL=$? - fi + condrestart|try-restart) + [ ! -f $LOCKF ] && exit 7 + $0 stop + sleep 3 + $0 start + RETVAL=$? ;; *) echo $"Usage: $0 {start|stop|status|restart|reload|condrestart}" - exit 1 + RETVAL=3 esac exit $RETVAL Index: .cvsignore =================================================================== RCS file: /cvs/dist/rpms/freeradius/FC-6/.cvsignore,v retrieving revision 1.13 retrieving revision 1.14 diff -u -r1.13 -r1.14 --- .cvsignore 8 Sep 2006 12:36:59 -0000 1.13 +++ .cvsignore 28 Aug 2007 15:55:55 -0000 1.14 @@ -1 +1,2 @@ freeradius-1.1.3.tar.bz2 +freeradius-1.1.7.tar.bz2 Index: freeradius.spec =================================================================== RCS file: /cvs/dist/rpms/freeradius/FC-6/freeradius.spec,v retrieving revision 1.37 retrieving revision 1.38 diff -u -r1.37 -r1.38 --- freeradius.spec 9 May 2007 15:01:06 -0000 1.37 +++ freeradius.spec 28 Aug 2007 15:55:55 -0000 1.38 @@ -1,28 +1,31 @@ -Summary: High-performance and highly configurable free RADIUS server. +Summary: High-performance and highly configurable free RADIUS server Name: freeradius -Version: 1.1.3 -Release: 2%{dist} -License: GPL +Version: 1.1.7 +Release: 2%{?dist} +License: GPLv2+ and LGPLv2+ Group: System Environment/Daemons URL: http://www.freeradius.org/ Source0: ftp://ftp.freeradius.org/pub/radius/%{name}-%{version}.tar.bz2 -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot -Requires: chkconfig net-snmp krb5-libs net-snmp-utils +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +Requires: net-snmp krb5-libs net-snmp-utils BuildRequires: net-snmp-devel net-snmp-utils krb5-devel openldap-devel BuildRequires: openssl-devel pam-devel BuildRequires: libtool-ltdl-devel libtool BuildRequires: gdbm-devel zlib-devel -BuildRequires: perl -PreReq: shadow-utils +BuildRequires: perl-devel +Requires(pre): shadow-utils +Requires(post): /sbin/ldconfig /sbin/chkconfig +Requires(postun): /sbin/ldconfig +Requires(preun): /sbin/chkconfig Patch1: freeradius-1.0.0-ltdl_no_la.patch Patch3: freeradius-0.9.0-pam-multilib.patch Patch4: freeradius-0.9.0-com_err.patch -Patch5: freeradius-1.1.1-pie.patch Patch8: freeradius-1.0.0-samba3.patch Patch10: freeradius-1.1.3-build.patch Patch11: freeradius-1.1.2-no_sql_inc.patch -Patch12: freeradius-1.1.3-ldap.patch -Patch13: freeradius-1.0.1-CVE-2007-2028.patch +Patch12: freeradius-1.1.7-ldap.patch +Patch13: freeradius-1.1.7-db_dir.patch +Patch14: freeradius-1.1.7-lsb.patch %description The FreeRADIUS Server Project is a high performance and highly configurable @@ -75,19 +78,19 @@ %patch1 -p1 -b .ltdl_no_la %patch3 -p1 -b .pam-multilib %patch4 -p1 -b .com_err -%patch5 -p1 -b .pie %patch8 -p1 -b .samba3 %patch10 -p1 -b .build %patch11 -p1 -b .no_sql_inc %patch12 -p1 -b .ldap -%patch13 -p1 -b .CVE-2007-2028 +%patch13 -p1 -b .db_dir +%patch14 -p1 -b .lsb %build %ifarch s390 s390x -export CFLAGS="$RPM_OPT_FLAGS -fPIC -DLDAP_DEPRECATED" +export CFLAGS="$RPM_OPT_FLAGS -fPIC" %else -export CFLAGS="$RPM_OPT_FLAGS -fpic -DLDAP_DEPRECATED" +export CFLAGS="$RPM_OPT_FLAGS -fpic" %endif # bad fix for libtool: clear buildroot early, set LDFLAGS to buildroot libdir @@ -112,27 +115,34 @@ perl -pi -e 's:sys_lib_search_path_spec=.*:sys_lib_search_path_spec="/lib64 /usr/lib64 /usr/local/lib64":' libtool %endif -make +# Makefile not smp save +make #%{?_smp_mflags} %install rm -rf $RPM_BUILD_ROOT -mkdir -p $RPM_BUILD_ROOT/etc/{logrotate.d,pam.d,rc.d/init.d} +mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/{logrotate.d,pam.d,rc.d/init.d} +# create database directory +mkdir -p $RPM_BUILD_ROOT/var/lib/radiusd # fix for bad libtool bug - can not rebuild dependent libs and bins export LD_LIBRARY_PATH=$RPM_BUILD_ROOT/%{_libdir} make install R=$RPM_BUILD_ROOT -RADDB=$RPM_BUILD_ROOT/etc/raddb +RADDB=$RPM_BUILD_ROOT/%{_sysconfdir}/raddb # set radiusd as default user/group perl -i -pe 's/^#user =.*$/user = radiusd/' $RADDB/radiusd.conf perl -i -pe 's/^#group =.*$/group = radiusd/' $RADDB/radiusd.conf # shadow password file MUST be defined on Linux perl -i -pe 's/# shadow =/shadow =/' $RADDB/radiusd.conf -install -m 755 redhat/rc.radiusd-redhat $RPM_BUILD_ROOT/etc/rc.d/init.d/radiusd -install -m 644 redhat/radiusd-logrotate $RPM_BUILD_ROOT/etc/logrotate.d/radiusd -install -m 644 redhat/radiusd-pam $RPM_BUILD_ROOT/etc/pam.d/radiusd +install -m 755 redhat/rc.radiusd-redhat $RPM_BUILD_ROOT/%{_initrddir}/radiusd +install -m 644 redhat/radiusd-logrotate $RPM_BUILD_ROOT/%{_sysconfdir}/logrotate.d/radiusd +install -m 644 redhat/radiusd-pam $RPM_BUILD_ROOT/%{_sysconfdir}/pam.d/radiusd + +# install SNMP MIB files +mkdir -p $RPM_BUILD_ROOT%{_datadir}/snmp/mibs/ +install -m 644 mibs/RADIUS*.txt $RPM_BUILD_ROOT%{_datadir}/snmp/mibs/ # remove unwanted rc.radiusd rm -f $RPM_BUILD_ROOT%{_prefix}/sbin/rc.radiusd @@ -146,8 +156,8 @@ mkdir -p $RPM_BUILD_ROOT/var/run/radiusd # remove unsupported config files -rm -f $RPM_BUILD_ROOT/etc/raddb/oraclesql.conf -rm -f $RPM_BUILD_ROOT/etc/raddb/experimental.conf +rm -f $RPM_BUILD_ROOT/%{_sysconfdir}/raddb/oraclesql.conf +rm -f $RPM_BUILD_ROOT/%{_sysconfdir}/raddb/experimental.conf %clean @@ -159,6 +169,7 @@ %post +/bin/chown -R radiusd.radiusd %{_sysconfdir}/raddb /sbin/ldconfig if [ $1 = 1 ]; then /sbin/chkconfig --add radiusd @@ -174,6 +185,7 @@ /sbin/chkconfig --del radiusd fi + %postun if [ $1 -ge 1 ]; then /sbin/service radiusd condrestart >/dev/null 2>&1 || : @@ -184,32 +196,33 @@ %files %defattr(-,root,root,-) %doc %{_docdir}/freeradius-%{version}/ -%config (noreplace) /etc/pam.d/radiusd -%config (noreplace) /etc/logrotate.d/radiusd -%config (noreplace) /etc/rc.d/init.d/radiusd -%dir /etc/raddb -%config (noreplace) /etc/raddb/acct_users -%config (noreplace) /etc/raddb/attrs -%config (noreplace) /etc/raddb/certs -%config (noreplace) /etc/raddb/clients -%config (noreplace) /etc/raddb/clients.conf -%config (noreplace) /etc/raddb/dictionary -%config (noreplace) /etc/raddb/eap.conf -%config (noreplace) /etc/raddb/example.pl -%config (noreplace) /etc/raddb/hints -%config (noreplace) /etc/raddb/huntgroups -%config (noreplace) /etc/raddb/ldap.attrmap -%config (noreplace) /etc/raddb/naslist -%config (noreplace) /etc/raddb/naspasswd -%config (noreplace) /etc/raddb/otp.conf -%config (noreplace) /etc/raddb/otppasswd.sample -%config (noreplace) /etc/raddb/preproxy_users -%config (noreplace) /etc/raddb/proxy.conf -%config (noreplace) /etc/raddb/radiusd.conf -%config (noreplace) /etc/raddb/realms -%config (noreplace) /etc/raddb/snmp.conf -%config (noreplace) /etc/raddb/sqlippool.conf -%config (noreplace) /etc/raddb/users +%config(noreplace) %{_sysconfdir}/pam.d/radiusd +%config(noreplace) %{_sysconfdir}/logrotate.d/radiusd +%config(noreplace) %{_initrddir}/radiusd +%dir %attr(0700,radiusd,radiusd) %{_sysconfdir}/raddb +%dir %attr(0700,radiusd,radiusd) %{_sysconfdir}/raddb/certs +%config(noreplace) %attr(0600,radiusd,radiusd) %{_sysconfdir}/raddb/acct_users +%config(noreplace) %attr(0600,radiusd,radiusd) %{_sysconfdir}/raddb/attrs +%config(noreplace) %attr(0600,radiusd,radiusd) %{_sysconfdir}/raddb/certs/* +%config(noreplace) %attr(0600,radiusd,radiusd) %{_sysconfdir}/raddb/clients +%config(noreplace) %attr(0600,radiusd,radiusd) %{_sysconfdir}/raddb/clients.conf +%config(noreplace) %attr(0600,radiusd,radiusd) %{_sysconfdir}/raddb/dictionary +%config(noreplace) %attr(0600,radiusd,radiusd) %{_sysconfdir}/raddb/eap.conf +%config(noreplace) %attr(0600,radiusd,radiusd) %{_sysconfdir}/raddb/example.pl +%config(noreplace) %attr(0600,radiusd,radiusd) %{_sysconfdir}/raddb/hints +%config(noreplace) %attr(0600,radiusd,radiusd) %{_sysconfdir}/raddb/huntgroups +%config(noreplace) %attr(0600,radiusd,radiusd) %{_sysconfdir}/raddb/ldap.attrmap +%config(noreplace) %attr(0600,radiusd,radiusd) %{_sysconfdir}/raddb/naslist +%config(noreplace) %attr(0600,radiusd,radiusd) %{_sysconfdir}/raddb/naspasswd +%config(noreplace) %attr(0600,radiusd,radiusd) %{_sysconfdir}/raddb/otp.conf +%config(noreplace) %attr(0600,radiusd,radiusd) %{_sysconfdir}/raddb/postgresqlippool.conf +%config(noreplace) %attr(0600,radiusd,radiusd) %{_sysconfdir}/raddb/preproxy_users +%config(noreplace) %attr(0600,radiusd,radiusd) %{_sysconfdir}/raddb/proxy.conf +%config(noreplace) %attr(0600,radiusd,radiusd) %{_sysconfdir}/raddb/radiusd.conf +%config(noreplace) %attr(0600,radiusd,radiusd) %{_sysconfdir}/raddb/realms +%config(noreplace) %attr(0600,radiusd,radiusd) %{_sysconfdir}/raddb/snmp.conf +%config(noreplace) %attr(0600,radiusd,radiusd) %{_sysconfdir}/raddb/sqlippool.conf +%config(noreplace) %attr(0600,radiusd,radiusd) %{_sysconfdir}/raddb/users %{_bindir}/* %{_libdir}/libeap*.so %{_libdir}/libradius*.so @@ -253,9 +266,11 @@ %{_libdir}/rlm_sql-%{version}.so %{_libdir}/rlm_sql.so %{_libdir}/rlm_sqlcounter*.so +%{_libdir}/rlm_sqlippool*.so %{_libdir}/rlm_sql_log*.so %{_libdir}/rlm_unix*.so %{_datadir}/freeradius +%{_datadir}/snmp/mibs/RADIUS*.txt %{_sbindir}/* %{_mandir}/man1/*.1* %{_mandir}/man5/*.5* @@ -266,29 +281,60 @@ %ghost %attr(0600,radiusd,radiusd) /var/log/radius/radius.log %attr(0700,radiusd,radiusd) %dir /var/log/radius/radacct %attr(0700,radiusd,radiusd) %dir /var/run/radiusd +# use only for database files: +%attr(0700,radiusd,radiusd) %dir /var/lib/radiusd %files mysql %defattr(-,root,root,-) -/etc/raddb/sql.conf +%config(noreplace) %attr(0600,radiusd,radiusd) %{_sysconfdir}/raddb/sql.conf %{_libdir}/*_mysql*.so %files postgresql %defattr(-,root,root,-) -/etc/raddb/postgresql.conf +%config(noreplace) %attr(0600,radiusd,radiusd) %{_sysconfdir}/raddb/postgresql.conf %{_libdir}/*_postgresql*.so %files unixODBC %defattr(-,root,root,-) -/etc/raddb/mssql.conf +%config(noreplace) %attr(0600,radiusd,radiusd) %{_sysconfdir}/raddb/mssql.conf %{_libdir}/*_unixodbc*.so %changelog -* Wed May 9 2007 Thomas Woerner 1.1.3-2.fc6 -- fixed CVE-2007-2028: EAP-TTLS denial of service - Resolves: rhbz#236248 +* Tue Aug 28 2007 Thomas Woerner 1.1.7-2 +- fixed initscript for LSB (rhbz#243671, rhbz#243928) +- fixed license tag + +* Tue Aug 7 2007 Thomas Woerner 1.1.7-1 +- new versin 1.1.7 +- install snmp MIB files +- dropped LDAP_DEPRECATED flag, it is upstream +- marked config files for sub packages as config (rhbz#240400) +- moved db files to /var/lib/raddb (rhbz#199082) + +* Fri Jun 15 2007 Thomas Woerner 1.1.6-2 +- radiusd expects /etc/raddb to not be world readable or writable + /etc/raddb now belongs to radiusd, post script sets permissions + +* Fri Jun 15 2007 Thomas Woerner 1.1.6-1 +- new version 1.1.6 + +* Fri Mar 9 2007 Thomas Woerner 1.1.5-1 +- new version 1.1.5 + - no /etc/raddb/otppasswd.sample anymore + - build is pie by default, dropped pie patch +- fixed build requirement for perl (perl-devel) + +* Fri Feb 23 2007 Karsten Hopp 1.1.3-3 +- remove trailing dot from summary +- fix buildroot +- fix post/postun/preun requirements +- use rpm macros + +* Fri Dec 8 2006 Thomas Woerner 1.1.3-2.1 +- rebuild for new postgresql library version -* Tue Nov 21 2006 Thomas Woerner 1.1.3-1.1 +* Thu Nov 30 2006 Thomas Woerner 1.1.3-2 - fixed ldap code to not use internals, added LDAP_DEPRECATED compile time flag (#210912) Index: sources =================================================================== RCS file: /cvs/dist/rpms/freeradius/FC-6/sources,v retrieving revision 1.13 retrieving revision 1.14 diff -u -r1.13 -r1.14 --- sources 8 Sep 2006 12:36:59 -0000 1.13 +++ sources 28 Aug 2007 15:55:55 -0000 1.14 @@ -1 +1 @@ -ee4b817e5f808bf2e95c1aeadff09990 freeradius-1.1.3.tar.bz2 +d95d303adccdaa065e4bb1d5038b2452 freeradius-1.1.7.tar.bz2 --- freeradius-1.0.0-samba3.patch DELETED --- --- freeradius-1.0.1-CVE-2007-2028.patch DELETED --- --- freeradius-1.1.1-pie.patch DELETED --- --- freeradius-1.1.3-ldap.patch DELETED --- From fedora-cvs-commits at redhat.com Tue Aug 28 15:58:02 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Tue, 28 Aug 2007 11:58:02 -0400 Subject: rpms/freeradius/FC-6 freeradius-1.0.0-samba3.patch,1.2,1.3 Message-ID: <200708281558.l7SFw2Nk004150@cvs.devel.redhat.com> Author: twoerner Update of /cvs/dist/rpms/freeradius/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv4113 Added Files: freeradius-1.0.0-samba3.patch Log Message: - freeradius-1.0.0-samba3.patch is still needed, readding freeradius-1.0.0-samba3.patch: ldap.attrmap | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) Index: freeradius-1.0.0-samba3.patch =================================================================== RCS file: freeradius-1.0.0-samba3.patch diff -N freeradius-1.0.0-samba3.patch --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ freeradius-1.0.0-samba3.patch 28 Aug 2007 15:58:00 -0000 1.3 @@ -0,0 +1,15 @@ +--- freeradius-1.0.0-pre3/raddb/ldap.attrmap.samba3 2004-07-05 11:57:14.861611615 +0200 ++++ freeradius-1.0.0-pre3/raddb/ldap.attrmap 2004-07-05 11:57:47.134087708 +0200 +@@ -24,9 +24,9 @@ + checkItem Simultaneous-Use radiusSimultaneousUse + checkItem Called-Station-Id radiusCalledStationId + checkItem Calling-Station-Id radiusCallingStationId +-checkItem LM-Password lmPassword +-checkItem NT-Password ntPassword +-checkItem SMB-Account-CTRL-TEXT acctFlags ++checkItem LM-Password sambaLMPassword ++checkItem NT-Password sambaNTPassword ++checkItem SMB-Account-CTRL-TEXT sambaAcctFlags + checkItem Expiration radiusExpiration + + replyItem Service-Type radiusServiceType From fedora-cvs-commits at redhat.com Tue Aug 28 16:05:27 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Tue, 28 Aug 2007 12:05:27 -0400 Subject: rpms/openais/FC-6 revision-1406.patch, NONE, 1.1 revision-1407.patch, NONE, 1.1 revision-1408.patch, NONE, 1.1 revision-1409.patch, NONE, 1.1 revision-1423.patch, NONE, 1.1 openais.spec, 1.26, 1.27 Message-ID: <200708281605.l7SG5R8S004569@cvs.devel.redhat.com> Author: sdake Update of /cvs/dist/rpms/openais/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv4537/FC-6 Modified Files: openais.spec Added Files: revision-1406.patch revision-1407.patch revision-1408.patch revision-1409.patch revision-1423.patch Log Message: auto-import openais-0.80.3-4 on branch FC-6 from openais-0.80.3-4.src.rpm revision-1406.patch: totemsrp.c | 30 +++++++++--------------------- 1 files changed, 9 insertions(+), 21 deletions(-) --- NEW FILE revision-1406.patch --- Index: exec/totemsrp.c =================================================================== --- exec/totemsrp.c (revision 1405) +++ exec/totemsrp.c (revision 1406) @@ -393,8 +393,6 @@ unsigned int my_token_seq; - unsigned int my_commit_token_seq; - /* * Timers */ @@ -619,8 +617,6 @@ instance->my_token_seq = SEQNO_START_TOKEN - 1; - instance->my_commit_token_seq = SEQNO_START_TOKEN - 1; - instance->memb_state = MEMB_STATE_OPERATIONAL; instance->set_aru = -1; @@ -1646,8 +1642,6 @@ struct totemsrp_instance *instance, int gather_from) { - instance->my_commit_token_seq = SEQNO_START_TOKEN - 1; - memb_set_merge ( &instance->my_id, 1, instance->my_proc_list, &instance->my_proc_list_entries); @@ -1733,8 +1727,6 @@ instance->memb_state = MEMB_STATE_COMMIT; - instance->my_commit_token_seq = SEQNO_START_TOKEN - 1; - /* * reset all flow control variables since we are starting a new ring */ @@ -3961,16 +3953,6 @@ addr = (struct srp_addr *)memb_commit_token->end_of_commit_token; memb_list = (struct memb_commit_token_memb_entry *)(addr + memb_commit_token->addr_entries); - if (sq_lte_compare (memb_commit_token->token_seq, - instance->my_commit_token_seq)) { - /* - * discard token - */ - return (0); - } - instance->my_commit_token_seq = memb_commit_token->token_seq; - - #ifdef TEST_DROP_COMMIT_TOKEN_PERCENTAGE if (random()%100 < TEST_DROP_COMMIT_TOKEN_PERCENTAGE) { return (0); @@ -3998,9 +3980,15 @@ break; case MEMB_STATE_COMMIT: -// if (memcmp (&memb_commit_token->ring_id, &instance->my_ring_id, -// sizeof (struct memb_ring_id)) == 0) { - if (memb_commit_token->ring_id.seq == instance->my_ring_id.seq) { + /* + * If retransmitted commit tokens are sent on this ring + * filter them out and only enter recovery once the + * commit token has traversed the array. This is + * determined by : + * memb_commit_token->memb_index == memb_commit_token->addr_entries) { + */ + if (memb_commit_token->ring_id.seq == instance->my_ring_id.seq && + memb_commit_token->memb_index == memb_commit_token->addr_entries) { memb_state_recovery_enter (instance, memb_commit_token); } break; revision-1407.patch: totemsrp.c | 2 ++ 1 files changed, 2 insertions(+) --- NEW FILE revision-1407.patch --- Index: exec/totemsrp.c =================================================================== --- exec/totemsrp.c (revision 1406) +++ exec/totemsrp.c (revision 1407) @@ -1548,6 +1548,8 @@ unsigned int new_memb_list_totemip[PROCESSOR_COUNT_MAX]; unsigned int left_list[PROCESSOR_COUNT_MAX]; + memb_consensus_reset (instance); + old_ring_state_reset (instance); ring_reset (instance); deliver_messages_from_recovery_to_regular (instance); revision-1408.patch: totemsrp.c | 17 +++++++++++------ 1 files changed, 11 insertions(+), 6 deletions(-) --- NEW FILE revision-1408.patch --- Index: exec/totemsrp.c =================================================================== --- exec/totemsrp.c (revision 1407) +++ exec/totemsrp.c (revision 1408) @@ -549,7 +549,8 @@ int fcc_mcasts_allowed); static void messages_free (struct totemsrp_instance *instance, unsigned int token_aru); -static void memb_ring_id_store (struct totemsrp_instance *instance); +static void memb_ring_id_set_and_store (struct totemsrp_instance *instance, + struct memb_ring_id *ring_id); static void memb_state_commit_token_update (struct totemsrp_instance *instance, struct memb_commit_token *commit_token); static void memb_state_commit_token_target_set (struct totemsrp_instance *instance, struct memb_commit_token *commit_token); static int memb_state_commit_token_send (struct totemsrp_instance *instance, struct memb_commit_token *memb_commit_token); @@ -1707,10 +1708,10 @@ memb_state_commit_token_target_set (instance, commit_token); + memb_ring_id_set_and_store (instance, &commit_token->ring_id); + memb_state_commit_token_send (instance, commit_token); - memcpy (&instance->my_ring_id, &commit_token->ring_id, - sizeof (struct memb_ring_id)); instance->token_ring_id_seq = instance->my_ring_id.seq; poll_timer_delete (instance->totemsrp_poll_handle, instance->memb_timer_state_gather_join_timeout); @@ -1920,7 +1921,6 @@ reset_token_timeout (instance); // REVIEWED reset_token_retransmit_timeout (instance); // REVIEWED - memb_ring_id_store (instance); instance->memb_state = MEMB_STATE_RECOVERY; return; @@ -2829,6 +2829,7 @@ } res = write (fd, &memb_ring_id->seq, sizeof (unsigned long long)); assert (res == sizeof (unsigned long long)); + fsync (fd); close (fd); } else { log_printf (instance->totemsrp_log_level_warning, @@ -2840,13 +2841,16 @@ instance->token_ring_id_seq = memb_ring_id->seq; } -static void memb_ring_id_store ( - struct totemsrp_instance *instance) +static void memb_ring_id_set_and_store ( + struct totemsrp_instance *instance, + struct memb_ring_id *ring_id) { char filename[256]; int fd; int res; + memcpy (&instance->my_ring_id, ring_id, sizeof (struct memb_ring_id)); + sprintf (filename, "%s/ringid_%s", rundir, totemip_print (&instance->my_id.addr[0])); @@ -2866,6 +2870,7 @@ //assert (fd > 0); res = write (fd, &instance->my_ring_id.seq, sizeof (unsigned long long)); assert (res == sizeof (unsigned long long)); + fsync (fd); close (fd); } revision-1409.patch: totempg.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletion(-) --- NEW FILE revision-1409.patch --- Index: exec/totempg.c =================================================================== --- exec/totempg.c (revision 1408) +++ exec/totempg.c (revision 1409) @@ -870,13 +870,14 @@ /* * Determine if a message of msg_size could be queued */ +#define FUZZY_AVAIL_SUBTRACT 5 static int send_ok ( int msg_size) { int avail = 0; int total; - avail = totemmrp_avail (); + avail = totemmrp_avail () - FUZZY_AVAIL_SUBTRACT; /* * msg size less then totempg_totem_config->net_mtu - 25 will take up revision-1423.patch: ckpt.c | 14 +++++++------- sync.c | 3 +++ 2 files changed, 10 insertions(+), 7 deletions(-) --- NEW FILE revision-1423.patch --- Index: exec/ckpt.c =================================================================== --- exec/ckpt.c (revision 1422) +++ exec/ckpt.c (revision 1423) @@ -825,14 +825,7 @@ } my_lowest_nodeid = 0xffffffff; - for (i = 0; i < my_member_list_entries; i++) { - if ((my_member_list[i] != 0) && - (my_member_list[i] < my_lowest_nodeid)) { - my_lowest_nodeid = my_member_list[i]; - } - } - /* * Handle regular configuration */ @@ -842,6 +835,13 @@ my_member_list_entries = member_list_entries; memcpy (&my_saved_ring_id, ring_id, sizeof (struct memb_ring_id)); + for (i = 0; i < my_member_list_entries; i++) { + if ((my_member_list[i] != 0) && + (my_member_list[i] < my_lowest_nodeid)) { + + my_lowest_nodeid = my_member_list[i]; + } + } } } Index: exec/sync.c =================================================================== --- exec/sync.c (revision 1422) +++ exec/sync.c (revision 1423) @@ -452,6 +452,9 @@ { sync_ring_id = ring_id; + if (configuration_type != TOTEM_CONFIGURATION_REGULAR) { + return; + } if (sync_processing && sync_callbacks.sync_abort != NULL) { sync_callbacks.sync_abort (); } Index: openais.spec =================================================================== RCS file: /cvs/dist/rpms/openais/FC-6/openais.spec,v retrieving revision 1.26 retrieving revision 1.27 diff -u -r1.26 -r1.27 --- openais.spec 3 Jul 2007 22:06:31 -0000 1.26 +++ openais.spec 28 Aug 2007 16:05:25 -0000 1.27 @@ -1,12 +1,17 @@ Name: openais Summary: The openais Standards-Based Cluster Framework executive and APIs Version: 0.80.3 -Release: 1%{?dist} +Release: 4%{?dist} License: BSD Group: System Environment/Base URL: http://developer.osdl.org/dev/openais/ Source0: http://developer.osdl.org/dev/openais/downloads/openais-%{version}/openais-%{version}.tar.gz Patch0: openais-0.76-defaultconfig.patch +Patch1: revision-1406.patch +Patch2: revision-1407.patch +Patch3: revision-1408.patch +Patch4: revision-1409.patch +Patch5: revision-1423.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) ExclusiveArch: i386 ppc x86_64 ppc64 ia64 s390 s390x alpha @@ -32,6 +37,11 @@ %prep %setup -q -n openais-%{version} %patch0 +%patch1 +%patch2 +%patch3 +%patch4 +%patch5 %build # -O3 required for performance reasons @@ -170,6 +180,28 @@ %{_mandir}/man3/evs_membership_get.3* %changelog +* Tue Aug 28 2007 Steven Dake - 0.80.3-4 +- Resolves: rhbz#251082 +- Add upstream revision 1423 - Fix synchronization defect resulting in segfault. +- This is the fc6 build. + +* Tue Aug 1 2007 Steven Dake - 0.80.3-3 +- Resolves: rhbz#209862 +- Resolves: rhbz#249506 +- Resolves: rhbz#249509 +- Resolves: rhbz#247733 + +* Tue Aug 1 2007 Steven Dake - 0.80.3-2 +- Resolves: rhbz#209862 +- Add upstream revision 1406 - Filter commit token when it is retransmitted. +- Resolves: rhbz#249506 +- Add upstream revision 1407 - Reset consensus array on entering operational mode. +- Resolves: rhbz#249509 +- Add upstream revision 1408 - Store the ring id information properly when it changes. +- Resolves: rhbz#247733 +- Add upstream revision 1409 - Add subtractor to availability of message entries for the totem message queue +- This is the rhel5 version of 0.80.3-0 with some upstream patches. + * Tue Jun 26 2007 Steven Dake - 0.80.3-1 - Resolves: rhbz#243119 - Resolves: rhbz#221190 @@ -177,7 +209,7 @@ - Resolves: rhbz#233892 - Resolves: rhbz#236549 - New upstream version including all previous revisions. -- Tihs is the fc6 version of 0.80.3-1. +- This is the fc6 version of 0.80.3-1. * Tue Jun 26 2007 Steven Dake - 0.80.3-0 - Resolves: rhbz#243119 From fedora-cvs-commits at redhat.com Tue Aug 28 16:15:15 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Tue, 28 Aug 2007 12:15:15 -0400 Subject: rpms/freeradius/FC-6 freeradius.spec,1.38,1.39 Message-ID: <200708281615.l7SGFFtq004972@cvs.devel.redhat.com> Author: twoerner Update of /cvs/dist/rpms/freeradius/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv4924 Modified Files: freeradius.spec Log Message: - no perl-devel in FC-6, use perl Index: freeradius.spec =================================================================== RCS file: /cvs/dist/rpms/freeradius/FC-6/freeradius.spec,v retrieving revision 1.38 retrieving revision 1.39 diff -u -r1.38 -r1.39 --- freeradius.spec 28 Aug 2007 15:55:55 -0000 1.38 +++ freeradius.spec 28 Aug 2007 16:15:13 -0000 1.39 @@ -12,7 +12,7 @@ BuildRequires: openssl-devel pam-devel BuildRequires: libtool-ltdl-devel libtool BuildRequires: gdbm-devel zlib-devel -BuildRequires: perl-devel +BuildRequires: perl Requires(pre): shadow-utils Requires(post): /sbin/ldconfig /sbin/chkconfig Requires(postun): /sbin/ldconfig From fedora-cvs-commits at redhat.com Wed Aug 29 09:01:28 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Wed, 29 Aug 2007 05:01:28 -0400 Subject: rpms/tar/FC-6 tar-1.15.1-dot_dot_vuln.patch, NONE, 1.1 tar.spec, 1.55, 1.56 Message-ID: <200708290901.l7T91StM029240@cvs.devel.redhat.com> Author: rbrich Update of /cvs/dist/rpms/tar/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv29224 Modified Files: tar.spec Added Files: tar-1.15.1-dot_dot_vuln.patch Log Message: CVE-2007-4131 tar-1.15.1-dot_dot_vuln.patch: names.c | 3 +-- 1 files changed, 1 insertion(+), 2 deletions(-) --- NEW FILE tar-1.15.1-dot_dot_vuln.patch --- --- tar-1.15.1/src/names.c.dot_dot_vuln 2004-09-06 13:30:54.000000000 +0200 +++ tar-1.15.1/src/names.c 2007-08-17 11:01:15.000000000 +0200 @@ -1152,11 +1152,10 @@ contains_dot_dot (char const *name) if (p[0] == '.' && p[1] == '.' && (ISSLASH (p[2]) || !p[2])) return 1; - do + while (! ISSLASH (*p)) { if (! *p++) return 0; } - while (! ISSLASH (*p)); } } Index: tar.spec =================================================================== RCS file: /cvs/dist/rpms/tar/FC-6/tar.spec,v retrieving revision 1.55 retrieving revision 1.56 diff -u -r1.55 -r1.56 --- tar.spec 21 Mar 2007 14:48:08 -0000 1.55 +++ tar.spec 29 Aug 2007 09:01:25 -0000 1.56 @@ -2,7 +2,7 @@ Name: tar Epoch: 2 Version: 1.15.1 -Release: 25%{?dist} +Release: 26%{?dist} License: GPL Group: Applications/Archiving URL: http://www.gnu.org/software/tar/ @@ -26,6 +26,7 @@ Patch15: tar-1.15.1-xattrs.patch Patch16: tar-1.15.1-mangling.patch Patch17: tar-1.15.1-stdout.patch +Patch18: tar-1.15.1-dot_dot_vuln.patch Prereq: info BuildRequires: autoconf automake gzip libacl-devel libselinux-devel Buildroot: %{_tmppath}/%{name}-%{version}-root @@ -61,6 +62,7 @@ %patch15 -p1 -b .xattrs %patch16 -p1 -b .mangling %patch17 -p1 -b .stdout +%patch18 -p1 -b .dot_dot_vuln automake %build @@ -118,6 +120,9 @@ %{_infodir}/tar.info* %changelog +* Wed Aug 29 2007 Radek Brich 2:1.15.1-26 +- Fix CVE-2007-4131 tar directory traversal vulnerability (#253685) + * Tue Mar 20 2007 Lukas Vrabel 2:1.15.1-25 - Fix failed unpacking when stdout closed (#227523) From fedora-cvs-commits at redhat.com Wed Aug 29 09:03:22 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Wed, 29 Aug 2007 05:03:22 -0400 Subject: rpms/units/FC-6 units.spec,1.17,1.18 Message-ID: <200708290903.l7T93MXr029365@cvs.devel.redhat.com> Author: zprikryl Update of /cvs/dist/rpms/units/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv29313 Modified Files: units.spec Log Message: Added readline build requirement Resolves: #232786 Index: units.spec =================================================================== RCS file: /cvs/dist/rpms/units/FC-6/units.spec,v retrieving revision 1.17 retrieving revision 1.18 diff -u -r1.17 -r1.18 --- units.spec 12 Jul 2006 08:35:45 -0000 1.17 +++ units.spec 29 Aug 2007 09:03:19 -0000 1.18 @@ -1,12 +1,13 @@ Summary: A utility for converting amounts from one unit to another. Name: units Version: 1.85 -Release: 1.2.2 +Release: 1.2.3 Source: ftp://ftp.gnu.org/gnu/units/%{name}-%{version}.tar.gz License: GPL Group: Applications/Engineering BuildRoot: %{_tmppath}/%{name}-root Prereq: /sbin/install-info +BuildRequires: readline-devel ncurses-devel %description Units converts an amount from one unit to another, or tells you what @@ -44,6 +45,10 @@ %{_mandir}/man1/* %changelog +* Wed Aug 29 2007 Zdenek Prikryl - 1.85-1.2.3 +- added readline build requirement +- Resolves: #232786 + * Wed Jul 12 2006 Jesse Keating - 1.85-1.2.2 - rebuild From fedora-cvs-commits at redhat.com Wed Aug 29 13:13:49 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Wed, 29 Aug 2007 09:13:49 -0400 Subject: rpms/kdegraphics/FC-6 post-3.5.7-kdegraphics-CVE-2007-3387.diff, NONE, 1.1 kdegraphics.spec, 1.99, 1.100 Message-ID: <200708291313.l7TDDnFt001882@cvs.devel.redhat.com> Author: than Update of /cvs/dist/rpms/kdegraphics/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv1863 Modified Files: kdegraphics.spec Added Files: post-3.5.7-kdegraphics-CVE-2007-3387.diff Log Message: - resolves bz#251511, CVE-2007-3387 kpdf integer overflow post-3.5.7-kdegraphics-CVE-2007-3387.diff: Stream.cc | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) --- NEW FILE post-3.5.7-kdegraphics-CVE-2007-3387.diff --- Index: kpdf/xpdf/xpdf/Stream.cc =================================================================== --- kpdf/xpdf/xpdf/Stream.cc (revision 689574) +++ kpdf/xpdf/xpdf/Stream.cc (working copy) @@ -411,9 +411,9 @@ StreamPredictor::StreamPredictor(Stream nVals = width * nComps; if (width <= 0 || nComps <= 0 || nBits <= 0 || - nComps >= INT_MAX / nBits || - width >= INT_MAX / nComps / nBits || - nVals * nBits + 7 < 0) { + nComps > gfxColorMaxComps || nBits > 16 || + width >= INT_MAX / nComps || + nVals >= (INT_MAX - 7) / nBits) { return; } pixBytes = (nComps * nBits + 7) >> 3; Index: kdegraphics.spec =================================================================== RCS file: /cvs/dist/rpms/kdegraphics/FC-6/kdegraphics.spec,v retrieving revision 1.99 retrieving revision 1.100 diff -u -r1.99 -r1.100 --- kdegraphics.spec 16 Jun 2007 16:53:56 -0000 1.99 +++ kdegraphics.spec 29 Aug 2007 13:13:47 -0000 1.100 @@ -16,7 +16,7 @@ %define no_scanner_archs s390 s390x Version: 3.5.7 -Release: 1%{?dist} +Release: 1%{?dist}.1 Name: kdegraphics Summary: K Desktop Environment - Graphics Applications Epoch: 7 @@ -30,6 +30,10 @@ Patch2: kdegraphics-3.3.1-xorg.patch Patch3: kdegraphics-3.5.1-warning.patch +# security fixes +# kpdf stack based buffer overflow, CVE-2007-3387 +Patch100: post-3.5.7-kdegraphics-CVE-2007-3387.diff + %ifnarch %{no_scanner_archs} BuildRequires: sane-backends-devel >= 1.0.3-10 BuildRequires: gphoto2-devel @@ -88,6 +92,9 @@ %patch2 -p1 -b .xorg %patch3 -p1 -b .gcc-warning +# security fixes +%patch100 -p0 -b .CVE-2007-3387 + %if %{rhel} echo "DO_NOT_COMPILE=\"\$DO_NOT_COMPILE kfax\"" >kfax/configure.in.in echo "DO_NOT_COMPILE=\"\$DO_NOT_COMPILE kfaxview\"" >kfaxview/configure.in.in @@ -197,6 +204,9 @@ %exclude %{_libdir}/libkfaximage.so %changelog +* Wed Aug 29 2007 Than Ngo - 7:3.5.7-1.fc6.1 +- resolves bz#251511, CVE-2007-3387 kpdf integer overflow + * Sat Jun 16 2007 Than Ngo - 7:3.5.7-1.fc6 - 3.5.7 From fedora-cvs-commits at redhat.com Wed Aug 29 16:29:09 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Wed, 29 Aug 2007 12:29:09 -0400 Subject: rpms/sendmail/FC-6 sendmail.init,1.15,1.16 sendmail.spec,1.77,1.78 Message-ID: <200708291629.l7TGT9iS008456@cvs.devel.redhat.com> Author: twoerner Update of /cvs/dist/rpms/sendmail/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv8440 Modified Files: sendmail.init sendmail.spec Log Message: - 8.14.1-4.1 for FC-6 Index: sendmail.init =================================================================== RCS file: /cvs/dist/rpms/sendmail/FC-6/sendmail.init,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- sendmail.init 18 Jul 2006 15:01:40 -0000 1.15 +++ sendmail.init 29 Aug 2007 16:29:07 -0000 1.16 @@ -10,6 +10,16 @@ # config: /etc/mail/sendmail.cf # pidfile: /var/run/sendmail.pid +### BEGIN INIT INFO +# Provides: sendmail MTA smtpdaemon +# Required-Start: $local_fs $network +# Required-Stop: $local_fs $network +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: start and stop sendmail +# Description: sendmail is a Mail Transport Agent (MTA) +### END INIT INFO + # Source function library. . /etc/rc.d/init.d/functions @@ -17,44 +27,43 @@ [ -f /etc/sysconfig/network ] && . /etc/sysconfig/network # Source sendmail configureation. -if [ -f /etc/sysconfig/sendmail ] ; then - . /etc/sysconfig/sendmail +if [ -f /etc/sysconfig/sendmail ]; then + . /etc/sysconfig/sendmail else - DAEMON=no - QUEUE=1h + DAEMON=no + QUEUE=1h fi [ -z "$SMQUEUE" ] && SMQUEUE="$QUEUE" [ -z "$SMQUEUE" ] && SMQUEUE=1h # Check that networking is up. -[ "${NETWORKING}" = "no" ] && exit 0 +[ "${NETWORKING}" = "no" ] && exit 1 -[ -f /usr/sbin/sendmail ] || exit 0 +[ -f /usr/sbin/sendmail ] || exit 5 -RETVAL=0 prog="sendmail" start() { - # Start daemons. - - echo -n $"Starting $prog: " - if test -x /usr/bin/make -a -f /etc/mail/Makefile ; then - make all -C /etc/mail -s > /dev/null - else - for i in virtusertable access domaintable mailertable ; do - if [ -f /etc/mail/$i ] ; then - makemap hash /etc/mail/$i < /etc/mail/$i - fi - done - fi - /usr/bin/newaliases > /dev/null 2>&1 - daemon /usr/sbin/sendmail $([ "x$DAEMON" = xyes ] && echo -bd) \ - $([ -n "$QUEUE" ] && echo -q$QUEUE) $SENDMAIL_OPTARG - RETVAL=$? - echo - [ $RETVAL -eq 0 ] && touch /var/lock/subsys/sendmail + # Start daemons. + ret=0 + echo -n $"Starting $prog: " + if [ -x /usr/bin/make -a -f /etc/mail/Makefile ]; then + make all -C /etc/mail -s > /dev/null + else + for i in virtusertable access domaintable mailertable ; do + [ -f /etc/mail/$i ] && makemap hash /etc/mail/$i < /etc/mail/$i + let ret+=$? + done + fi + /usr/bin/newaliases > /dev/null 2>&1 + daemon /usr/sbin/sendmail $([ "x$DAEMON" = xyes ] && echo -bd) \ + $([ -n "$QUEUE" ] && echo -q$QUEUE) $SENDMAIL_OPTARG + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && touch /var/lock/subsys/sendmail + let ret+=$RETVAL - if ! test -f /var/run/sm-client.pid ; then + if [ ! -f /var/run/sm-client.pid ]; then echo -n $"Starting sm-client: " touch /var/run/sm-client.pid chown smmsp:smmsp /var/run/sm-client.pid @@ -62,92 +71,101 @@ /sbin/restorecon /var/run/sm-client.pid fi daemon --check sm-client /usr/sbin/sendmail -L sm-msp-queue -Ac \ - -q$SMQUEUE $SENDMAIL_OPTARG + -q$SMQUEUE $SENDMAIL_OPTARG RETVAL=$? - echo - [ $RETVAL -eq 0 ] && touch /var/lock/subsys/sm-client - fi + echo + [ $RETVAL -eq 0 ] && touch /var/lock/subsys/sm-client + let ret+=$RETVAL + fi - return $RETVAL + [ $ret -eq 0 ] && return 0 || return 1 } reload() { - # Stop daemons. - echo -n $"reloading $prog: " - /usr/bin/newaliases > /dev/null 2>&1 - if [ -x /usr/bin/make -a -f /etc/mail/Makefile ]; then - make all -C /etc/mail -s > /dev/null - else - for i in virtusertable access domaintable mailertable ; do - if [ -f /etc/mail/$i ] ; then - makemap hash /etc/mail/$i < /etc/mail/$i - fi - done - fi - daemon /usr/sbin/sendmail $([ "x$DAEMON" = xyes ] && echo -bd) \ - $([ -n "$QUEUE" ] && echo -q$QUEUE) - RETVAL=$? - killproc sendmail -HUP + # Stop daemons. + ret=0 + echo -n $"Reloading $prog: " + /usr/bin/newaliases > /dev/null 2>&1 + if [ -x /usr/bin/make -a -f /etc/mail/Makefile ]; then + make all -C /etc/mail -s > /dev/null + else + for i in virtusertable access domaintable mailertable ; do + [ -f /etc/mail/$i ] && makemap hash /etc/mail/$i < /etc/mail/$i + done + fi + daemon /usr/sbin/sendmail $([ "x$DAEMON" = xyes ] && echo -bd) \ + $([ -n "$QUEUE" ] && echo -q$QUEUE) + RETVAL=$? + killproc sendmail -HUP + RETVAL=$? + echo + if [ $RETVAL -eq 0 -a -f /var/run/sm-client.pid ]; then + echo -n $"reloading sm-client: " + killproc sm-client -HUP RETVAL=$? echo - if [ $RETVAL -eq 0 -a -f /var/run/sm-client.pid ]; then - echo -n $"reloading sm-client: " - killproc sm-client -HUP - RETVAL=$? - echo - fi - return $RETVAL + fi + return $RETVAL } stop() { - # Stop daemons. - if test -f /var/run/sm-client.pid ; then - echo -n $"Shutting down sm-client: " - killproc sm-client - RETVAL=$? - echo - [ $RETVAL -eq 0 ] && rm -f /var/run/sm-client.pid - [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/sm-client - fi - echo -n $"Shutting down $prog: " - killproc sendmail + # Stop daemons. + if [ -f /var/run/sm-client.pid ]; then + echo -n $"Shutting down sm-client: " + killproc sm-client RETVAL=$? echo - [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/sendmail - return $RETVAL + [ $RETVAL -eq 0 ] && rm -f /var/run/sm-client.pid + [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/sm-client + fi + echo -n $"Shutting down $prog: " + killproc sendmail + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/sendmail + return $RETVAL } +status -p /var/run/sendmail.pid >/dev/null && status -p /var/run/sm-client.pid >/dev/null +running=$? + # See how we were called. case "$1" in - start) + start) + [ $running -eq 0 ] && exit 0 start + RETVAL=$? ;; - stop) + stop) + [ $running -ne 0 ] || exit 0 stop + RETVAL=$? ;; - reload) + reload) + [ $running -ne 0 ] && exit 7 reload RETVAL=$? ;; - restart) + restart|force-reload) stop start RETVAL=$? ;; - condrestart) - if [ -f /var/lock/subsys/sendmail ]; then - stop - start - RETVAL=$? - fi + condrestart|try-restart) + [ ! -f /var/lock/subsys/sendmail ] && exit 7 + stop + start + RETVAL=$? ;; - status) - status sendmail + status) + echo -n sendmail; status -p /var/run/sendmail.pid RETVAL=$? + echo -n sm-client; status -p /var/run/sm-client.pid + [ $RETVAL -eq 0 ] && RETVAL=$? ;; - *) + *) echo $"Usage: $0 {start|stop|restart|condrestart|status}" - exit 1 + RETVAL=3 esac exit $RETVAL Index: sendmail.spec =================================================================== RCS file: /cvs/dist/rpms/sendmail/FC-6/sendmail.spec,v retrieving revision 1.77 retrieving revision 1.78 diff -u -r1.77 -r1.78 --- sendmail.spec 16 Apr 2007 10:05:40 -0000 1.77 +++ sendmail.spec 29 Aug 2007 16:29:07 -0000 1.78 @@ -15,7 +15,7 @@ Summary: A widely used Mail Transport Agent (MTA) Name: sendmail Version: 8.14.1 -Release: 1.2%{dist} +Release: 4.1%{?dist} License: Sendmail Group: System Environment/Daemons URL: http://www.sendmail.org/ @@ -46,6 +46,7 @@ Patch13: sendmail-8.13.7-aliases_dir.patch Patch14: sendmail-8.13.7-vacation.patch Patch15: sendmail-8.14.1-noversion.patch +Patch16: sendmail-8.13.1-localdomain.patch Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: tcp_wrappers BuildRequires: db4-devel @@ -137,6 +138,7 @@ %patch13 -p1 -b .aliases_dir %patch14 -p1 -b .vacation %patch15 -p1 -b .noversion +%patch16 -p1 -b .localdomain %build # generate redhat config file @@ -232,7 +234,7 @@ %{_libdir} %{_mandir}/man{1,5,8} %{maildir} %{stdir} %{spooldir} \ %{_docdir}/sendmail-%{version} %{sendmailcf} %{_sysconfdir}/smrsh\ %{spooldir}/clientmqueue %{_sysconfdir}/sysconfig %{_initrddir} \ - %{_sysconfdir}/pam.d; + %{_sysconfdir}/pam.d %{_docdir}/sendmail-%{version}/contrib; do install -m 755 -d %{buildroot}$d done @@ -260,7 +262,7 @@ MSPQOWN=${nameuser} } -OBJDIR=obj.$(uname -s).$(uname -r).$(arch) +OBJDIR=obj.$(uname -s).$(uname -r).$(uname -m) Make install -C $OBJDIR/libmilter Make install -C $OBJDIR/libsmutil @@ -305,6 +307,7 @@ install -p -m 644 libmilter/README %{buildroot}%{_docdir}/sendmail-%{version}/README.libmilter install -p -m 644 cf/README %{buildroot}%{_docdir}/sendmail-%{version}/README.cf install -m 644 %{SOURCE9} %{buildroot}%{_docdir}/sendmail-%{version}/README.redhat +install -p -m 644 contrib/* %{buildroot}%{_docdir}/sendmail-%{version}/contrib # install the cf files for the sendmail-cf package. cp -ar cf/* %{buildroot}%{sendmailcf} @@ -343,8 +346,6 @@ < %{buildroot}%{maildir}/${map} chmod 0644 %{buildroot}%{maildir}/${map}.db done -%{buildroot}%{_bindir}/makemap -C %{buildroot}%{maildir}/sendmail.cf \ - hash %{buildroot}%{_sysconfdir}/aliases.db < %{_sysconfdir}/aliases install -m 644 %{SOURCE4} %{buildroot}%{_sysconfdir}/sysconfig/sendmail install -m 755 %{SOURCE1} %{buildroot}%{_initrddir}/sendmail @@ -487,7 +488,6 @@ %config(noreplace) %{maildir}/trusted-users %config(noreplace) %{maildir}/virtusertable -%ghost %{_sysconfdir}/aliases.db %ghost %{maildir}/virtusertable.db %ghost %{maildir}/access.db %ghost %{maildir}/domaintable.db @@ -503,8 +503,16 @@ %defattr(-,root,root) %doc %{sendmailcf}/README %dir %{sendmailcf} -%{sendmailcf}/*/ +%{sendmailcf}/cf +%{sendmailcf}/domain +%{sendmailcf}/feature +%{sendmailcf}/hack +%{sendmailcf}/m4 +%{sendmailcf}/mailer +%{sendmailcf}/ostype %{sendmailcf}/sendmail.schema +%{sendmailcf}/sh +%{sendmailcf}/siteconfig %files devel %defattr(-,root,root) @@ -524,10 +532,28 @@ %{_docdir}/sendmail-%{version}/README.smrsh %{_docdir}/sendmail-%{version}/SECURITY %{_docdir}/sendmail-%{version}/op.pdf +%dir %{_docdir}/sendmail-%{version}/contrib +%attr(0644,root,root) %{_docdir}/sendmail-%{version}/contrib/* %changelog -* Mon Apr 16 2007 Thomas Woerner 8.14.1-1.2%{dist} +* Wed Aug 29 2007 Thomas Woerner 8.14.1-4.1 +- fixed condrestart in init script to use exit instead of return +- dropped glibc-2.6.90+ patch for FC-6 + +* Mon Aug 27 2007 Thomas Woerner 8.14.1-4 +- do not remove /etc/aliases.db on package removal (rhbz#223637) +- fixed remaining paths to certs directory in sendmail.mc file +- added contrib scripts to the doc package (rhbz#183723) +- added LSB header to init script (rhbz#247053) +- added plain login information for cyrus-sasl to access file +- fixed compile proplem with glibc-2.6.90+ +- fixed reoccuring m4 include problem (now using sinclude) + +* Fri Jul 20 2007 Thomas Woerner 8.14.1-3 +- do not accept localhost.localdomain as valid address from smtp + +* Mon Apr 16 2007 Thomas Woerner 8.14.1-2 - readded chkconfig add for sendmail in post script - dropped mysql support (useless without further patching) - fixed executable permissions for /usr/sbin/makemap and /usr/sbin/smrsh From fedora-cvs-commits at redhat.com Wed Aug 29 16:30:25 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Wed, 29 Aug 2007 12:30:25 -0400 Subject: rpms/sendmail/FC-6 sendmail-8.13.1-localdomain.patch,NONE,1.1 Message-ID: <200708291630.l7TGUPh9008536@cvs.devel.redhat.com> Author: twoerner Update of /cvs/dist/rpms/sendmail/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv8520 Added Files: sendmail-8.13.1-localdomain.patch Log Message: - adding localdomain patch sendmail-8.13.1-localdomain.patch: proto.m4 | 2 ++ 1 files changed, 2 insertions(+) --- NEW FILE sendmail-8.13.1-localdomain.patch --- --- sendmail-8.13.1/cf/m4/proto.m4.localdomain 2007-01-22 16:35:19.000000000 +0100 +++ sendmail-8.13.1/cf/m4/proto.m4 2007-01-22 16:36:47.000000000 +0100 @@ -1840,6 +1840,8 @@ $: < ? $&{client_name} > < $1 @ [127.0.0.1] > R<@> < $* @ localhost.$m > $: < ? $&{client_name} > < $1 @ localhost.$m > +R<@> < $* @ localhost.localdomain > + $: < ? $&{client_name} > < $1 @ localhost.localdomain > ifdef(`_NO_UUCP_', `dnl', `R<@> < $* @ localhost.UUCP > $: < ? $&{client_name} > < $1 @ localhost.UUCP >') From fedora-cvs-commits at redhat.com Wed Aug 29 17:11:14 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Wed, 29 Aug 2007 13:11:14 -0400 Subject: rpms/qt/FC-6 qt3-CVE-2007-3388.patch, NONE, 1.1 utf8-bug-qt3-CVE-2007-0242.diff, NONE, 1.1 qt.spec, 1.127, 1.128 Message-ID: <200708291711.l7THBEOQ010054@cvs.devel.redhat.com> Author: than Update of /cvs/dist/rpms/qt/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv10033 Modified Files: qt.spec Added Files: qt3-CVE-2007-3388.patch utf8-bug-qt3-CVE-2007-0242.diff Log Message: - CVE-2007-3388 qt format string flaw - CVE-2007-0242 qt UTF8 improper character expansion qt3-CVE-2007-3388.patch: 0 files changed --- NEW FILE qt3-CVE-2007-3388.patch --- --- qt3/src/widgets/qtextedit.cpp Mon Jul 16 10:44:40 CEST 2007 +++ qt3/src/widgets/qtextedit.cpp Mon Jul 16 10:44:40 CEST 2007 @@ -6349,7 +6349,7 @@ cur = tag->prev; if ( !cur ) { #ifdef QT_CHECK_RANGE - qWarning( "QTextEdit::optimParseTags: no left-tag for '<" + tag->tag + ">' in line %d.", tag->line + 1 ); + qWarning( "QTextEdit::optimParseTags: no left-tag for '<%s>' in line %d.", tag->tag.ascii(), tag->line + 1 ); #endif return; // something is wrong - give up } @@ -6372,7 +6372,7 @@ break; } else if ( !cur->leftTag ) { #ifdef QT_CHECK_RANGE - qWarning( "QTextEdit::optimParseTags: mismatching %s-tag for '<" + cur->tag + ">' in line %d.", cur->tag[0] == '/' ? "left" : "right", cur->line + 1 ); + qWarning( "QTextEdit::optimParseTags: mismatching %s-tag for '<%s>' in line %d.", cur->tag[0] == '/' ? "left" : "right", cur->tag.ascii(), cur->line + 1 ); #endif return; // something is amiss - give up } --- qt3/src/sql/qdatatable.cpp Mon Jul 16 10:45:03 CEST 2007 +++ qt3/src/sql/qdatatable.cpp Mon Jul 16 10:45:03 CEST 2007 @@ -1043,8 +1043,8 @@ return FALSE; if ( !sqlCursor()->canInsert() ) { #ifdef QT_CHECK_RANGE - qWarning("QDataTable::insertCurrent: insert not allowed for " + - sqlCursor()->name() ); + qWarning("QDataTable::insertCurrent: insert not allowed for %s", + sqlCursor()->name().latin1() ); #endif endInsert(); return FALSE; @@ -1117,16 +1117,16 @@ return FALSE; if ( sqlCursor()->primaryIndex().count() == 0 ) { #ifdef QT_CHECK_RANGE - qWarning("QDataTable::updateCurrent: no primary index for " + - sqlCursor()->name() ); + qWarning("QDataTable::updateCurrent: no primary index for %s", + sqlCursor()->name().latin1() ); #endif endUpdate(); return FALSE; } if ( !sqlCursor()->canUpdate() ) { #ifdef QT_CHECK_RANGE - qWarning("QDataTable::updateCurrent: updates not allowed for " + - sqlCursor()->name() ); + qWarning("QDataTable::updateCurrent: updates not allowed for %s", + sqlCursor()->name().latin1() ); #endif endUpdate(); return FALSE; @@ -1191,8 +1191,8 @@ return FALSE; if ( sqlCursor()->primaryIndex().count() == 0 ) { #ifdef QT_CHECK_RANGE - qWarning("QDataTable::deleteCurrent: no primary index " + - sqlCursor()->name() ); + qWarning("QDataTable::deleteCurrent: no primary index %s", + sqlCursor()->name().latin1() ); #endif return FALSE; } --- qt3/src/sql/qsqldatabase.cpp Mon Jul 16 10:45:03 CEST 2007 +++ qt3/src/sql/qsqldatabase.cpp Mon Jul 16 10:45:03 CEST 2007 @@ -234,7 +234,8 @@ db->open(); #ifdef QT_CHECK_RANGE if ( !db->isOpen() ) - qWarning("QSqlDatabaseManager::database: unable to open database: " + db->lastError().databaseText() + ": " + db->lastError().driverText() ); + qWarning("QSqlDatabaseManager::database: unable to open database: %s: %s", + db->lastError().databaseText().latin1(), db->lastError().driverText().latin1() ); #endif } return db; @@ -686,7 +687,7 @@ if ( !d->driver ) { #ifdef QT_CHECK_RANGE qWarning( "QSqlDatabase: %s driver not loaded", type.latin1() ); - qWarning( "QSqlDatabase: available drivers: " + drivers().join(" ") ); + qWarning( "QSqlDatabase: available drivers: %s", drivers().join(" ").latin1() ); #endif d->driver = new QNullDriver(); d->driver->setLastError( QSqlError( "Driver not loaded", "Driver not loaded" ) ); --- qt3/src/sql/qsqlindex.cpp Mon Jul 16 10:45:03 CEST 2007 +++ qt3/src/sql/qsqlindex.cpp Mon Jul 16 10:45:03 CEST 2007 @@ -273,7 +273,7 @@ if ( field ) newSort.append( *field, desc ); else - qWarning( "QSqlIndex::fromStringList: unknown field: '" + f + "'" ); + qWarning( "QSqlIndex::fromStringList: unknown field: '%s'", f.latin1()); } return newSort; } --- qt3/src/sql/qsqlrecord.cpp Mon Jul 16 10:45:03 CEST 2007 +++ qt3/src/sql/qsqlrecord.cpp Mon Jul 16 10:45:03 CEST 2007 @@ -298,7 +298,7 @@ return i; } #ifdef QT_CHECK_RANGE - qWarning( "QSqlRecord::position: unable to find field " + name ); + qWarning( "QSqlRecord::position: unable to find field %s", name.latin1() ); #endif return -1; } @@ -313,7 +313,7 @@ checkDetach(); if ( !sh->d->contains( i ) ) { #ifdef QT_CHECK_RANGE - qWarning( "QSqlRecord::field: index out of range: " + QString::number( i ) ); + qWarning( "QSqlRecord::field: index out of range: %d", i ); #endif return 0; } @@ -344,7 +344,7 @@ { if ( !sh->d->contains( i ) ) { #ifdef QT_CHECK_RANGE - qWarning( "QSqlRecord::field: index out of range: " + QString::number( i ) ); + qWarning( "QSqlRecord::field: index out of range: %d", i ); #endif // QT_CHECK_RANGE return 0; } --- qt3/src/tools/qglobal.cpp Mon Jul 16 10:45:03 CEST 2007 +++ qt3/src/tools/qglobal.cpp Mon Jul 16 10:45:03 CEST 2007 @@ -680,7 +680,7 @@ if ( code != -1 ) qWarning( "%s\n\tError code %d - %s", msg, code, strerror( code ) ); else - qWarning( msg ); + qWarning( "%s", msg ); #endif #else Q_UNUSED( msg ); --- qt3/src/xml/qsvgdevice.cpp Mon Jul 16 10:45:03 CEST 2007 +++ qt3/src/xml/qsvgdevice.cpp Mon Jul 16 10:45:03 CEST 2007 @@ -978,7 +978,7 @@ // ### catch references to embedded .svg files QPixmap pix; if ( !pix.load( href ) ) { - qWarning( "QSvgDevice::play: Couldn't load image "+href ); + qWarning( "QSvgDevice::play: Couldn't load image %s", href.latin1() ); break; } pt->drawPixmap( QRect( x1, y1, w, h ), pix ); @@ -1024,8 +1024,8 @@ break; } case InvalidElement: - qWarning( "QSvgDevice::play: unknown element type " + - node.nodeName() ); + qWarning( "QSvgDevice::play: unknown element type %s", + node.nodeName().latin1() ); break; }; @@ -1111,7 +1111,7 @@ { QRegExp reg( QString::fromLatin1("([+-]?\\d*\\.*\\d*[Ee]?[+-]?\\d*)(em|ex|px|%|pt|pc|cm|mm|in|)$") ); if ( reg.search( str ) == -1 ) { - qWarning( "QSvgDevice::parseLen: couldn't parse " + str ); + qWarning( "QSvgDevice::parseLen: couldn't parse %s ", str.latin1() ); if ( ok ) *ok = FALSE; return 0.0; @@ -1140,7 +1140,7 @@ else if ( u == "pc" ) dbl *= m.logicalDpiX() / 6.0; else - qWarning( "QSvgDevice::parseLen: Unknown unit " + u ); + qWarning( "QSvgDevice::parseLen: Unknown unit %s", u.latin1() ); } if ( ok ) *ok = TRUE; utf8-bug-qt3-CVE-2007-0242.diff: codecs/qutfcodec.cpp | 16 +++++++++++++++- tools/qstring.cpp | 10 ++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) --- NEW FILE utf8-bug-qt3-CVE-2007-0242.diff --- --- src/codecs/qutfcodec.cpp +++ src/codecs/qutfcodec.cpp @@ -154,6 +154,7 @@ class QUtf8Decoder : public QTextDecoder { uint uc; + uint min_uc; int need; bool headerDone; public: @@ -167,8 +168,9 @@ result.setLength( len ); // worst case QChar *qch = (QChar *)result.unicode(); uchar ch; + int error = -1; for (int i=0; i= 0xd800 && uc <= 0xdfff) || (uc >= 0xfffe)) { + *qch++ = QChar::replacement; } else { if (headerDone || QChar(uc) != QChar::byteOrderMark) *qch++ = uc; @@ -190,6 +194,7 @@ } } else { // error + i = error; *qch++ = QChar::replacement; need = 0; } @@ -200,12 +205,21 @@ } else if ((ch & 0xe0) == 0xc0) { uc = ch & 0x1f; need = 1; + error = i; + min_uc = 0x80; } else if ((ch & 0xf0) == 0xe0) { uc = ch & 0x0f; need = 2; + error = i; + min_uc = 0x800; } else if ((ch&0xf8) == 0xf0) { uc = ch & 0x07; need = 3; + error = i; + min_uc = 0x10000; + } else { + // error + *qch++ = QChar::replacement; } } } --- src/tools/qstring.cpp +++ src/tools/qstring.cpp @@ -5805,6 +5805,7 @@ result.setLength( len ); // worst case QChar *qch = (QChar *)result.unicode(); uint uc = 0; + uint min_uc = 0; int need = 0; int error = -1; uchar ch; @@ -5822,6 +5823,12 @@ unsigned short low = uc%0x400 + 0xdc00; *qch++ = QChar(high); *qch++ = QChar(low); + } else if (uc < min_uc || (uc >= 0xd800 && uc <= 0xdfff) || (uc >= 0xfffe)) { + // overlong seqence, UTF16 surrogate or BOM + i = error; + qch = addOne(qch, result); + *qch++ = QChar(0xdbff); + *qch++ = QChar(0xde00+((uchar)utf8[i])); } else { *qch++ = uc; } @@ -5844,14 +5851,17 @@ uc = ch & 0x1f; need = 1; error = i; + min_uc = 0x80; } else if ((ch & 0xf0) == 0xe0) { uc = ch & 0x0f; need = 2; error = i; + min_uc = 0x800; } else if ((ch&0xf8) == 0xf0) { uc = ch & 0x07; need = 3; error = i; + min_uc = 0x10000; } else { // Error qch = addOne(qch, result); Index: qt.spec =================================================================== RCS file: /cvs/dist/rpms/qt/FC-6/qt.spec,v retrieving revision 1.127 retrieving revision 1.128 diff -u -r1.127 -r1.128 --- qt.spec 14 Jun 2007 11:58:45 -0000 1.127 +++ qt.spec 29 Aug 2007 17:11:12 -0000 1.128 @@ -1,7 +1,7 @@ Summary: The shared library for the Qt GUI toolkit. Name: qt Version: 3.3.8 -Release: 1%{?dist} +Release: 1%{?dist}.1 Epoch: 1 License: GPL/QPL Group: System Environment/Libraries @@ -63,6 +63,10 @@ Patch200: qt-x11-free-3.3.4-fullscreen.patch Patch201: qt-x11-free-3.3.8-bz#243722-mysql.patch +# security patces +Patch300: qt3-CVE-2007-3388.patch +Patch301: utf8-bug-qt3-CVE-2007-0242.diff + %define qt_dirname qt-3.3 %define qtdir %{_libdir}/%{qt_dirname} %define qt_docdir %{_docdir}/qt-devel-%{version} @@ -286,6 +290,10 @@ %patch200 -p1 -b .fullscreen %patch201 -p1 -b .bz#243722-mysql +# security patches +%patch300 -p1 -b .CVE-2007-3388 +%patch301 -p0 -b .CVE-2007-0242 + # convert to UTF-8 iconv -f iso-8859-1 -t utf-8 < doc/man/man3/qdial.3qt > doc/man/man3/qdial.3qt_ mv doc/man/man3/qdial.3qt_ doc/man/man3/qdial.3qt @@ -546,6 +554,10 @@ %changelog +* Wed Aug 29 2007 Than Ngo - 1:3.3.8-1.fc6.1 +- CVE-2007-3388 qt format string flaw +- CVE-2007-0242 qt UTF8 improper character expansion + * Thu Jun 14 2007 Than Ngo - 1:3.3.8-1.fc6 - backport to fix #bz243722, Applications using qt-mysql crash if database is removed before QApplication is destroyed From fedora-cvs-commits at redhat.com Wed Aug 29 17:12:28 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Wed, 29 Aug 2007 13:12:28 -0400 Subject: rpms/qt/FC-6 qt.spec,1.128,1.129 Message-ID: <200708291712.l7THCSOp010135@cvs.devel.redhat.com> Author: than Update of /cvs/dist/rpms/qt/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv10119 Modified Files: qt.spec Log Message: - bz#234635, CVE-2007-0242 qt UTF8 improper character expansion Index: qt.spec =================================================================== RCS file: /cvs/dist/rpms/qt/FC-6/qt.spec,v retrieving revision 1.128 retrieving revision 1.129 diff -u -r1.128 -r1.129 --- qt.spec 29 Aug 2007 17:11:12 -0000 1.128 +++ qt.spec 29 Aug 2007 17:12:26 -0000 1.129 @@ -556,7 +556,7 @@ %changelog * Wed Aug 29 2007 Than Ngo - 1:3.3.8-1.fc6.1 - CVE-2007-3388 qt format string flaw -- CVE-2007-0242 qt UTF8 improper character expansion +- bz#234635, CVE-2007-0242 qt UTF8 improper character expansion * Thu Jun 14 2007 Than Ngo - 1:3.3.8-1.fc6 - backport to fix #bz243722, Applications using qt-mysql crash if database is From fedora-cvs-commits at redhat.com Wed Aug 29 17:40:54 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Wed, 29 Aug 2007 13:40:54 -0400 Subject: rpms/qt/FC-6 qt.spec, 1.129, 1.130 0077-utf8-decoder-fixes.diff, 1.1, NONE Message-ID: <200708291740.l7THesMQ011072@cvs.devel.redhat.com> Author: than Update of /cvs/dist/rpms/qt/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv11057 Modified Files: qt.spec Removed Files: 0077-utf8-decoder-fixes.diff Log Message: - CVE-2007-3388 qt format string flaw - bz#234635, CVE-2007-0242 qt UTF8 improper character expansion Index: qt.spec =================================================================== RCS file: /cvs/dist/rpms/qt/FC-6/qt.spec,v retrieving revision 1.129 retrieving revision 1.130 diff -u -r1.129 -r1.130 --- qt.spec 29 Aug 2007 17:12:26 -0000 1.129 +++ qt.spec 29 Aug 2007 17:40:52 -0000 1.130 @@ -57,7 +57,6 @@ Patch104: qt-font-default-subst.diff Patch105: 0073-xinerama-aware-qpopup.patch Patch106: 0076-fix-qprocess.diff -Patch107: 0077-utf8-decoder-fixes.diff # upstream patches Patch200: qt-x11-free-3.3.4-fullscreen.patch @@ -285,7 +284,6 @@ %patch104 -p0 -b .qt-font-default-subst %patch105 -p0 -b .0073-xinerama-aware-qpopup %patch106 -p0 -b .0076-fix-qprocess -%patch107 -p0 -b .0077-utf8-decoder-fixes %patch200 -p1 -b .fullscreen %patch201 -p1 -b .bz#243722-mysql --- 0077-utf8-decoder-fixes.diff DELETED --- From fedora-cvs-commits at redhat.com Wed Aug 29 22:32:40 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Wed, 29 Aug 2007 18:32:40 -0400 Subject: rpms/kernel/FC-6/configs config-generic,1.275,1.276 Message-ID: <200708292232.l7TMWejC022207@cvs.devel.redhat.com> Author: cebbert Update of /cvs/dist/rpms/kernel/FC-6/configs In directory cvs.devel.redhat.com:/tmp/cvs-serv22178/configs Modified Files: config-generic Log Message: * Tue Aug 28 2007 Chuck Ebbert - Support the i82365 PCMCIA driver (#251567) Index: config-generic =================================================================== RCS file: /cvs/dist/rpms/kernel/FC-6/configs/config-generic,v retrieving revision 1.275 retrieving revision 1.276 diff -u -r1.275 -r1.276 --- config-generic 15 Aug 2007 15:22:33 -0000 1.275 +++ config-generic 29 Aug 2007 22:32:36 -0000 1.276 @@ -2980,7 +2980,7 @@ ## BEGIN ISA Junk. -# CONFIG_I82365 is not set +CONFIG_I82365=m # CONFIG_TCIC is not set # CONFIG_PCMCIA_PROBE is not set # CONFIG_LTPC is not set From fedora-cvs-commits at redhat.com Wed Aug 29 22:32:45 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Wed, 29 Aug 2007 18:32:45 -0400 Subject: rpms/kernel/FC-6 kernel-2.6.spec,1.3015,1.3016 Message-ID: <200708292232.l7TMWjCk022201@cvs.devel.redhat.com> Author: cebbert Update of /cvs/dist/rpms/kernel/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv22178 Modified Files: kernel-2.6.spec Log Message: * Tue Aug 28 2007 Chuck Ebbert - Support the i82365 PCMCIA driver (#251567) Index: kernel-2.6.spec =================================================================== RCS file: /cvs/dist/rpms/kernel/FC-6/kernel-2.6.spec,v retrieving revision 1.3015 retrieving revision 1.3016 diff -u -r1.3015 -r1.3016 --- kernel-2.6.spec 23 Aug 2007 20:40:01 -0000 1.3015 +++ kernel-2.6.spec 29 Aug 2007 22:32:33 -0000 1.3016 @@ -2218,6 +2218,9 @@ %endif %changelog +* Tue Aug 28 2007 Chuck Ebbert +- Support the i82365 PCMCIA driver (#251567) + * Thu Aug 23 2007 Chuck Ebbert - fix wrong vendor ID for Realtek PHY in forcedeth driver From fedora-cvs-commits at redhat.com Thu Aug 30 06:28:20 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Thu, 30 Aug 2007 02:28:20 -0400 Subject: rpms/util-linux/FC-4 util-linux.spec,1.90,1.90.2.1 Message-ID: <200708300628.l7U6SKEi000357@cvs.devel.redhat.com> Author: ikent Update of /cvs/dist/rpms/util-linux/FC-4 In directory cvs.devel.redhat.com:/tmp/cvs-serv330 Modified Files: Tag: private-raven-nosharecache-branch util-linux.spec Log Message: * Thu Aug 30 2007 Ian Kent 2.12p-9.14.nosharecache - add "nosharecache" option. Index: util-linux.spec =================================================================== RCS file: /cvs/dist/rpms/util-linux/FC-4/util-linux.spec,v retrieving revision 1.90 retrieving revision 1.90.2.1 diff -u -r1.90 -r1.90.2.1 --- util-linux.spec 21 Feb 2006 21:32:23 -0000 1.90 +++ util-linux.spec 30 Aug 2007 06:28:18 -0000 1.90.2.1 @@ -27,7 +27,7 @@ Summary: A collection of basic system utilities. Name: util-linux Version: 2.12p -Release: 9.14 +Release: 9.14.nosharecache License: distributable Group: System Environment/Base @@ -161,6 +161,9 @@ # 170171 - ipcs -lm always report "max total shared memory (kbytes) = 0" Patch213: util-linux-2.12p-ipcs-shmax.patch +# Add option "nosharecache" +Patch214: util-linux-2.12p-nfs-utils-mount-nosharecache.patch + # When adding patches, please make sure that it is easy to find out what bug # the # patch fixes. ########### END upstreamable @@ -301,6 +304,7 @@ %patch211 -p1 %patch212 -p1 %patch213 -p1 +%patch214 -p1 %build unset LINGUAS || : @@ -692,6 +696,9 @@ /sbin/losetup %changelog +* Thu Aug 30 2007 Ian Kent 2.12p-9.14.nosharecache +- add "nosharecache" option. + * Tue Feb 21 2006 Karel Zak 2.12p-9.14 - fix #180730 - col is exiting with 1 (fix util-linux-2.12p-col-EILSEQ.patch) From fedora-cvs-commits at redhat.com Thu Aug 30 06:29:04 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Thu, 30 Aug 2007 02:29:04 -0400 Subject: rpms/util-linux/FC-4 util-linux-2.12p-nfs-utils-mount-nosharecache.patch, NONE, 1.1.2.1 Message-ID: <200708300629.l7U6T4s2000389@cvs.devel.redhat.com> Author: ikent Update of /cvs/dist/rpms/util-linux/FC-4 In directory cvs.devel.redhat.com:/tmp/cvs-serv371 Added Files: Tag: private-raven-nosharecache-branch util-linux-2.12p-nfs-utils-mount-nosharecache.patch Log Message: - oops add "nosharecache" patch. util-linux-2.12p-nfs-utils-mount-nosharecache.patch: nfs.5 | 35 +++++++++++++++++++++++++++++++++++ nfs4_mount.h | 1 + nfs4mount.c | 14 ++++++++++---- nfs_mount4.h | 1 + nfsmount.c | 4 ++++ 5 files changed, 51 insertions(+), 4 deletions(-) --- NEW FILE util-linux-2.12p-nfs-utils-mount-nosharecache.patch --- diff -up util-linux-2.12p/mount/nfs4mount.c.nfs-utils-mount-nosharecache util-linux-2.12p/mount/nfs4mount.c --- util-linux-2.12p/mount/nfs4mount.c.nfs-utils-mount-nosharecache 2007-08-30 12:39:34.000000000 +0800 +++ util-linux-2.12p/mount/nfs4mount.c 2007-08-30 12:43:11.000000000 +0800 @@ -208,7 +208,7 @@ int nfs4mount(const char *spec, const ch char *s; int val; int bg, soft, intr; - int nocto, noac; + int nocto, noac, unshared; int retry; int retval; @@ -258,6 +258,7 @@ int nfs4mount(const char *spec, const ch intr = NFS4_MOUNT_INTR; nocto = 0; noac = 0; + unshared = 0; retry = 10000; /* 10000 minutes ~ 1 week */ /* @@ -341,6 +342,8 @@ int nfs4mount(const char *spec, const ch nocto = !val; else if (!strcmp(opt, "ac")) noac = !val; + else if (!strcmp(opt, "sharecache")) + unshared = !val; else { if (!sloppy) { printf(_("unknown nfs mount option: " @@ -354,7 +357,8 @@ int nfs4mount(const char *spec, const ch data.flags = (soft ? NFS4_MOUNT_SOFT : 0) | (intr ? NFS4_MOUNT_INTR : 0) | (nocto ? NFS4_MOUNT_NOCTO : 0) - | (noac ? NFS4_MOUNT_NOAC : 0); + | (noac ? NFS4_MOUNT_NOAC : 0) + | (unshared ? NFS4_MOUNT_UNSHARED : 0); /* * Give a warning if the rpc.idmapd daemon is not running @@ -390,11 +394,13 @@ int nfs4mount(const char *spec, const ch data.acregmin, data.acregmax, data.acdirmin, data.acdirmax); printf("port = %d, bg = %d, retry = %d, flags = %.8x\n", ntohs(server_addr.sin_port), bg, retry, data.flags); - printf("soft = %d, intr = %d, nocto = %d, noac = %d\n", + printf("soft = %d, intr = %d, nocto = %d, noac = %d, ", + "nosharecache = %d\n", (data.flags & NFS4_MOUNT_SOFT) != 0, (data.flags & NFS4_MOUNT_INTR) != 0, (data.flags & NFS4_MOUNT_NOCTO) != 0, - (data.flags & NFS4_MOUNT_NOAC) != 0); + (data.flags & NFS4_MOUNT_NOAC) != 0), + ((data.flags & NFS4_MOUNT_UNSHARED) != 0); if (num_flavour > 0) { int pf_cnt, i; diff -up util-linux-2.12p/mount/nfs.5.nfs-utils-mount-nosharecache util-linux-2.12p/mount/nfs.5 --- util-linux-2.12p/mount/nfs.5.nfs-utils-mount-nosharecache 2007-08-30 12:38:52.000000000 +0800 +++ util-linux-2.12p/mount/nfs.5 2007-08-30 12:37:59.000000000 +0800 @@ -261,6 +261,24 @@ default UDP protocol. Many NFS servers .I udp Mount the NFS filesystem using the UDP protocol. This is the default. +.TP 1.5i +.I nosharecache +As of kernel 2.6.18, it is no longer possible to mount the same +same filesystem with different mount options to a new mountpoint. +It was deemed unsafe to do so, since cached data cannot be shared +between the two mountpoints. In consequence, files or directories +that were common to both mountpoint subtrees could often be seen to +be out of sync following an update. +.br +This option allows administrators to select the pre-2.6.18 behaviour, +permitting the same filesystem to be mounted with different mount +options. +.br +.B Beware: +Use of this option is not recommended unless you are certain that there +are no hard links or subtrees of this mountpoint that are mounted +elsewhere. +.TP 1.5i .P All of the non-value options have corresponding nooption forms. For example, nointr means don't allow file operations to be @@ -411,6 +429,23 @@ This extracts a server performance penalty but it allows two different NFS clients to get reasonable good results when both clients are actively writing to common filesystem on the server. +.TP 1.5i +.I nosharecache +As of kernel 2.6.18, it is no longer possible to mount the same +same filesystem with different mount options to a new mountpoint. +It was deemed unsafe to do so, since cached data cannot be shared +between the two mountpoints. In consequence, files or directories +that were common to both mountpoint subtrees could often be seen to +be out of sync following an update. +.br +This option allows administrators to select the pre-2.6.18 behaviour, +permitting the same filesystem to be mounted with different mount +options. +.br +.B Beware: +Use of this option is not recommended unless you are certain that there +are no hard links or subtrees of this mountpoint that are mounted +elsewhere. .P All of the non-value options have corresponding nooption forms. For example, nointr means don't allow file operations to be diff -up util-linux-2.12p/mount/nfsmount.c.nfs-utils-mount-nosharecache util-linux-2.12p/mount/nfsmount.c --- util-linux-2.12p/mount/nfsmount.c.nfs-utils-mount-nosharecache 2007-08-30 12:21:21.000000000 +0800 +++ util-linux-2.12p/mount/nfsmount.c 2007-08-30 12:33:04.000000000 +0800 @@ -901,6 +901,10 @@ parse_options(char *old_opts, struct nfs goto bad_option; data->flags |= NFS_MOUNT_BROKEN_SUID; } + } else if (!strcmp(opt, "sharecache")) { + data->flags &= ~NFS_MOUNT_UNSHARED; + if (!val) + data->flags |= NFS_MOUNT_UNSHARED; #endif } else { bad_option: diff -up util-linux-2.12p/mount/nfs4_mount.h.nfs-utils-mount-nosharecache util-linux-2.12p/mount/nfs4_mount.h --- util-linux-2.12p/mount/nfs4_mount.h.nfs-utils-mount-nosharecache 2007-08-30 12:43:30.000000000 +0800 +++ util-linux-2.12p/mount/nfs4_mount.h 2007-08-30 12:44:06.000000000 +0800 @@ -65,6 +65,7 @@ struct nfs4_mount_data { #define NFS4_MOUNT_NOCTO 0x0010 /* 1 */ #define NFS4_MOUNT_NOAC 0x0020 /* 1 */ #define NFS4_MOUNT_STRICTLOCK 0x1000 /* 1 */ +#define NFS4_MOUNT_UNSHARED 0x8000 /* 1 */ #define NFS4_MOUNT_FLAGMASK 0xFFFF /* pseudoflavors: */ diff -up util-linux-2.12p/mount/nfs_mount4.h.nfs-utils-mount-nosharecache util-linux-2.12p/mount/nfs_mount4.h --- util-linux-2.12p/mount/nfs_mount4.h.nfs-utils-mount-nosharecache 2007-08-30 12:47:16.000000000 +0800 +++ util-linux-2.12p/mount/nfs_mount4.h 2007-08-30 12:45:00.000000000 +0800 @@ -57,6 +57,7 @@ struct nfs_mount_data { #define NFS_MOUNT_NONLM 0x0200 /* 3 */ #define NFS_MOUNT_BROKEN_SUID 0x0400 /* 4 */ #define NFS_MOUNT_SECFLAVOUR 0x2000 /* 5 */ +#define NFS_MOUNT_UNSHARED 0x8000 /* 5 */ /* security pseudoflavors */ From fedora-cvs-commits at redhat.com Thu Aug 30 17:19:59 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Thu, 30 Aug 2007 13:19:59 -0400 Subject: rpms/kernel/FC-6 linux-2.6-genirq-fixes.patch, NONE, 1.1 linux-2.6-irda-smc-remove-quirk.patch, NONE, 1.1 linux-2.6-netdev-atl1-disable-broken-64-bit-dma.patch, NONE, 1.1 linux-2.6-sched-cfs-v2.6.22.5-v20.5.patch, NONE, 1.1 linux-2.6-scsi-3w_9xxx-fix-dma-mask.patch, NONE, 1.1 linux-2.6-snd-ad1988-fix-spdif-output.patch, NONE, 1.1 linux-2.6-snd-hda-stac92xx-fixes.patch, NONE, 1.1 linux-2.6-v4l-dvb-fix-airstar-hd5000-tuner.patch, NONE, 1.1 patch-2.6.22.6-rc1.patch, NONE, 1.1 kernel-2.6.spec, 1.3016, 1.3017 linux-2.6-add_xt_statistic.h_to_hdrs.patch, 1.1, NONE linux-2.6-irq-dont-mask-interrupts-_reversed_.patch, 1.1, NONE linux-2.6-net-sky2-dont-clear-phy-power-bits.patch, 1.1, NONE linux-2.6-sched-cfs-v2.6.22.5-v20.2.patch, 1.1, NONE Message-ID: <200708301719.l7UHJx2e016400@cvs.devel.redhat.com> Author: cebbert Update of /cvs/dist/rpms/kernel/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv16378 Modified Files: kernel-2.6.spec Added Files: linux-2.6-genirq-fixes.patch linux-2.6-irda-smc-remove-quirk.patch linux-2.6-netdev-atl1-disable-broken-64-bit-dma.patch linux-2.6-sched-cfs-v2.6.22.5-v20.5.patch linux-2.6-scsi-3w_9xxx-fix-dma-mask.patch linux-2.6-snd-ad1988-fix-spdif-output.patch linux-2.6-snd-hda-stac92xx-fixes.patch linux-2.6-v4l-dvb-fix-airstar-hd5000-tuner.patch patch-2.6.22.6-rc1.patch Removed Files: linux-2.6-add_xt_statistic.h_to_hdrs.patch linux-2.6-irq-dont-mask-interrupts-_reversed_.patch linux-2.6-net-sky2-dont-clear-phy-power-bits.patch linux-2.6-sched-cfs-v2.6.22.5-v20.2.patch Log Message: * Tue Aug 28 2007 Chuck Ebbert - CFS scheduler v20.5 (plus one bugfix) - Linux 2.6.22.6-rc1 - netdev atl1: disable 64-bit DMA - new IRQ handling fixes from upstream - remove quirk for SMC IRDA, fixes HP DV6000 - 3ware 9000 series: fix DMA fallback - ALSA: multiple STAC codec fixes for hda driver - ALSA: fix SPDIF output for AD1988 codec - V4L/DVB: fix airstar hd5000 tuner linux-2.6-genirq-fixes.patch: arch/i386/kernel/io_apic.c | 7 +++++-- arch/x86_64/kernel/io_apic.c | 7 +++++-- kernel/irq/chip.c | 5 +---- kernel/irq/resend.c | 7 ++++++- 4 files changed, 17 insertions(+), 9 deletions(-) --- NEW FILE linux-2.6-genirq-fixes.patch --- Gitweb: http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=496634217e5671ed876a0348e9f5b7165e830b20 Commit: 496634217e5671ed876a0348e9f5b7165e830b20 Parent: 963c6527e0a0e285736ad482b8142d098f9c2288 Author: Thomas Gleixner AuthorDate: Sun Aug 12 15:46:34 2007 +0000 Committer: Linus Torvalds CommitDate: Sun Aug 12 11:05:45 2007 -0700 genirq: cleanup mismerge artifact Commit 5a43a066b11ac2fe84cf67307f20b83bea390f83: "genirq: Allow fasteoi handler to retrigger disabled interrupts" was erroneously applied to handle_level_irq(). This added the irq retrigger / resend functionality to the level irq handler. Revert the offending bits. Signed-off-by: Thomas Gleixner Signed-off-by: Linus Torvalds --- kernel/irq/chip.c | 5 +---- 1 files changed, 1 insertions(+), 4 deletions(-) diff --git a/kernel/irq/chip.c b/kernel/irq/chip.c index 615ce97..f1a73f0 100644 --- a/kernel/irq/chip.c +++ b/kernel/irq/chip.c @@ -352,13 +352,10 @@ handle_level_irq(unsigned int irq, struct irq_desc *desc) * keep it masked and get out of here */ action = desc->action; - if (unlikely(!action || (desc->status & IRQ_DISABLED))) { - desc->status |= IRQ_PENDING; + if (unlikely(!action || (desc->status & IRQ_DISABLED))) goto out_unlock; - } desc->status |= IRQ_INPROGRESS; - desc->status &= ~IRQ_PENDING; spin_unlock(&desc->lock); action_ret = handle_IRQ_event(irq, action); Gitweb: http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=2464286ace55b3abddfb9cc30ab95e2dac1de9a6 Commit: 2464286ace55b3abddfb9cc30ab95e2dac1de9a6 Parent: 496634217e5671ed876a0348e9f5b7165e830b20 Author: Thomas Gleixner AuthorDate: Sun Aug 12 15:46:35 2007 +0000 Committer: Linus Torvalds CommitDate: Sun Aug 12 11:05:45 2007 -0700 genirq: suppress resend of level interrupts Level type interrupts are resent by the interrupt hardware when they are still active at irq_enable(). Suppress the resend mechanism for interrupts marked as level. Signed-off-by: Thomas Gleixner Signed-off-by: Linus Torvalds --- kernel/irq/resend.c | 7 ++++++- 1 files changed, 6 insertions(+), 1 deletions(-) diff --git a/kernel/irq/resend.c b/kernel/irq/resend.c index 5bfeaed..a804679 100644 --- a/kernel/irq/resend.c +++ b/kernel/irq/resend.c @@ -62,7 +62,12 @@ void check_irq_resend(struct irq_desc *desc, unsigned int irq) */ desc->chip->enable(irq); - if ((status & (IRQ_PENDING | IRQ_REPLAY)) == IRQ_PENDING) { + /* + * We do not resend level type interrupts. Level type + * interrupts are resent by hardware when they are still + * active. + */ + if ((status & (IRQ_LEVEL | IRQ_PENDING | IRQ_REPLAY)) == IRQ_PENDING) { desc->status = (status & ~IRQ_PENDING) | IRQ_REPLAY; if (!desc->chip || !desc->chip->retrigger || Gitweb: http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=cc75b92d11384ba14f93828a2a0040344ae872e7 Commit: cc75b92d11384ba14f93828a2a0040344ae872e7 Parent: 2464286ace55b3abddfb9cc30ab95e2dac1de9a6 Author: Thomas Gleixner AuthorDate: Sun Aug 12 15:46:36 2007 +0000 Committer: Linus Torvalds CommitDate: Sun Aug 12 11:05:45 2007 -0700 genirq: mark io_apic level interrupts to avoid resend Level type interrupts do not need to be resent. It was also found that some chipsets get confused in case of the resend. Mark the ioapic level type interrupts as such to avoid the resend functionality in the generic irq code. Signed-off-by: Thomas Gleixner Signed-off-by: Linus Torvalds --- arch/i386/kernel/io_apic.c | 7 +++++-- arch/x86_64/kernel/io_apic.c | 7 +++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/arch/i386/kernel/io_apic.c b/arch/i386/kernel/io_apic.c index 893df82..4b8a8da 100644 --- a/arch/i386/kernel/io_apic.c +++ b/arch/i386/kernel/io_apic.c @@ -1256,12 +1256,15 @@ static struct irq_chip ioapic_chip; static void ioapic_register_intr(int irq, int vector, unsigned long trigger) { if ((trigger == IOAPIC_AUTO && IO_APIC_irq_trigger(irq)) || - trigger == IOAPIC_LEVEL) + trigger == IOAPIC_LEVEL) { + irq_desc[irq].status |= IRQ_LEVEL; set_irq_chip_and_handler_name(irq, &ioapic_chip, handle_fasteoi_irq, "fasteoi"); - else + } else { + irq_desc[irq].status &= ~IRQ_LEVEL; set_irq_chip_and_handler_name(irq, &ioapic_chip, handle_edge_irq, "edge"); + } set_intr_gate(vector, interrupt[irq]); } diff --git a/arch/x86_64/kernel/io_apic.c b/arch/x86_64/kernel/io_apic.c index 050141c..f57f8b9 100644 --- a/arch/x86_64/kernel/io_apic.c +++ b/arch/x86_64/kernel/io_apic.c @@ -800,12 +800,15 @@ static struct irq_chip ioapic_chip; static void ioapic_register_intr(int irq, unsigned long trigger) { - if (trigger) + if (trigger) { + irq_desc[irq].status |= IRQ_LEVEL; set_irq_chip_and_handler_name(irq, &ioapic_chip, handle_fasteoi_irq, "fasteoi"); - else + } else { + irq_desc[irq].status &= ~IRQ_LEVEL; set_irq_chip_and_handler_name(irq, &ioapic_chip, handle_edge_irq, "edge"); + } } static void setup_IO_APIC_irq(int apic, int pin, unsigned int irq, linux-2.6-irda-smc-remove-quirk.patch: quirks.c | 103 --------------------------------------------------------------- 1 files changed, 103 deletions(-) --- NEW FILE linux-2.6-irda-smc-remove-quirk.patch --- =================================================================== --- w.orig/drivers/pnp/quirks.c 2007-08-21 12:34:51.000000000 -0600 +++ w/drivers/pnp/quirks.c 2007-08-21 12:35:08.000000000 -0600 @@ -107,108 +107,6 @@ return; } -static int quirk_smc_fir_enabled(struct pnp_dev *dev) -{ - unsigned long firbase; - u8 bank, high, low, chip; - - if (!pnp_port_valid(dev, 1)) - return 0; - - firbase = pnp_port_start(dev, 1); - - /* Select register bank 3 */ - bank = inb(firbase + 7); - bank &= 0xf0; - bank |= 3; - outb(bank, firbase + 7); - - high = inb(firbase + 0); - low = inb(firbase + 1); - chip = inb(firbase + 2); - - /* This corresponds to the check in smsc_ircc_present() */ - if (high == 0x10 && low == 0xb8 && (chip == 0xf1 || chip == 0xf2)) - return 1; - - return 0; -} - -static void quirk_smc_enable(struct pnp_dev *dev) -{ - struct resource fir, sir, irq; - - pnp_activate_dev(dev); - if (quirk_smc_fir_enabled(dev)) - return; - - /* - * Sometimes the BIOS claims the device is enabled, but it reports - * the wrong FIR resources or doesn't properly configure ISA or LPC - * bridges on the way to the device. - * - * HP nc6000 and nc8000/nw8000 laptops have known problems like - * this. Fortunately, they do fix things up if we auto-configure - * the device using its _PRS and _SRS methods. - */ - dev_err(&dev->dev, "%s not responding at SIR 0x%lx, FIR 0x%lx; " - "auto-configuring\n", dev->id->id, - (unsigned long) pnp_port_start(dev, 0), - (unsigned long) pnp_port_start(dev, 1)); - - pnp_disable_dev(dev); - pnp_init_resource_table(&dev->res); - pnp_auto_config_dev(dev); - pnp_activate_dev(dev); - if (quirk_smc_fir_enabled(dev)) { - dev_err(&dev->dev, "responds at SIR 0x%lx, FIR 0x%lx\n", - (unsigned long) pnp_port_start(dev, 0), - (unsigned long) pnp_port_start(dev, 1)); - return; - } - - /* - * The Toshiba Portege 4000 _CRS reports the FIR region first, - * followed by the SIR region. The BIOS will configure the bridge, - * but only if we call _SRS with SIR first, then FIR. It also - * reports the IRQ as active high, when it is really active low. - */ - dev_err(&dev->dev, "not responding at SIR 0x%lx, FIR 0x%lx; " - "swapping SIR/FIR and reconfiguring\n", - (unsigned long) pnp_port_start(dev, 0), - (unsigned long) pnp_port_start(dev, 1)); - - /* - * Clear IORESOURCE_AUTO so pnp_activate_dev() doesn't reassign - * these resources any more. - */ - fir = dev->res.port_resource[0]; - sir = dev->res.port_resource[1]; - fir.flags &= ~IORESOURCE_AUTO; - sir.flags &= ~IORESOURCE_AUTO; - - irq = dev->res.irq_resource[0]; - irq.flags &= ~IORESOURCE_AUTO; - irq.flags &= ~IORESOURCE_BITS; - irq.flags |= IORESOURCE_IRQ_LOWEDGE; - - pnp_disable_dev(dev); - dev->res.port_resource[0] = sir; - dev->res.port_resource[1] = fir; - dev->res.irq_resource[0] = irq; - pnp_activate_dev(dev); - - if (quirk_smc_fir_enabled(dev)) { - dev_err(&dev->dev, "responds at SIR 0x%lx, FIR 0x%lx\n", - (unsigned long) pnp_port_start(dev, 0), - (unsigned long) pnp_port_start(dev, 1)); - return; - } - - dev_err(&dev->dev, "giving up; try \"smsc-ircc2.nopnp\" and " - "email bjorn.helgaas at hp.com\n"); -} - /* * PnP Quirks @@ -229,7 +127,6 @@ { "CTL0043", quirk_sb16audio_resources }, { "CTL0044", quirk_sb16audio_resources }, { "CTL0045", quirk_sb16audio_resources }, - { "SMCf010", quirk_smc_enable }, { "" } }; linux-2.6-netdev-atl1-disable-broken-64-bit-dma.patch: atl1_main.c | 15 +++------------ 1 files changed, 3 insertions(+), 12 deletions(-) --- NEW FILE linux-2.6-netdev-atl1-disable-broken-64-bit-dma.patch --- From: Luca Tettamanti Disable data-corrupting 64-bit DMA on atl1. Signed-off-by: Luca Tettamanti Acked-by: Jay Cliburn Acked-by: Chris Snook Cc: Jeff Garzik Signed-off-by: Andrew Morton --- drivers/net/atl1/atl1_main.c | 15 +++------------ 1 files changed, 3 insertions(+), 12 deletions(-) diff -puN drivers/net/atl1/atl1_main.c~atl1-disable-broken-64-bit-dma drivers/net/atl1/atl1_main.c --- a/drivers/net/atl1/atl1_main.c~atl1-disable-broken-64-bit-dma +++ a/drivers/net/atl1/atl1_main.c @@ -2202,21 +2202,16 @@ static int __devinit atl1_probe(struct p struct net_device *netdev; struct atl1_adapter *adapter; static int cards_found = 0; - bool pci_using_64 = true; int err; err = pci_enable_device(pdev); if (err) return err; - err = pci_set_dma_mask(pdev, DMA_64BIT_MASK); + err = pci_set_dma_mask(pdev, DMA_32BIT_MASK); if (err) { - err = pci_set_dma_mask(pdev, DMA_32BIT_MASK); - if (err) { - dev_err(&pdev->dev, "no usable DMA configuration\n"); - goto err_dma; - } - pci_using_64 = false; + dev_err(&pdev->dev, "no usable DMA configuration\n"); + goto err_dma; } /* Mark all PCI regions associated with PCI device * pdev as being reserved by owner atl1_driver_name @@ -2281,7 +2276,6 @@ static int __devinit atl1_probe(struct p netdev->ethtool_ops = &atl1_ethtool_ops; adapter->bd_number = cards_found; - adapter->pci_using_64 = pci_using_64; /* setup the private structure */ err = atl1_sw_init(adapter); @@ -2298,9 +2292,6 @@ static int __devinit atl1_probe(struct p */ /* netdev->features |= NETIF_F_TSO; */ - if (pci_using_64) - netdev->features |= NETIF_F_HIGHDMA; - netdev->features |= NETIF_F_LLTX; /* _ linux-2.6-sched-cfs-v2.6.22.5-v20.5.patch: b/kernel/sched.c | 8 linux-cfs-2.6.22.5.q/Documentation/kernel-parameters.txt | 43 linux-cfs-2.6.22.5.q/Documentation/sched-design-CFS.txt | 119 linux-cfs-2.6.22.5.q/arch/i386/kernel/smpboot.c | 12 linux-cfs-2.6.22.5.q/arch/i386/kernel/tsc.c | 14 linux-cfs-2.6.22.5.q/arch/ia64/kernel/setup.c | 6 linux-cfs-2.6.22.5.q/arch/mips/kernel/smp.c | 11 linux-cfs-2.6.22.5.q/arch/sparc/kernel/smp.c | 10 linux-cfs-2.6.22.5.q/arch/sparc64/kernel/smp.c | 27 linux-cfs-2.6.22.5.q/block/cfq-iosched.c | 3 linux-cfs-2.6.22.5.q/drivers/acpi/processor_idle.c | 32 linux-cfs-2.6.22.5.q/fs/proc/array.c | 59 linux-cfs-2.6.22.5.q/fs/proc/base.c | 71 linux-cfs-2.6.22.5.q/include/asm-generic/bitops/sched.h | 21 linux-cfs-2.6.22.5.q/include/linux/cpu.h | 2 linux-cfs-2.6.22.5.q/include/linux/hardirq.h | 13 linux-cfs-2.6.22.5.q/include/linux/sched.h | 290 - linux-cfs-2.6.22.5.q/include/linux/topology.h | 15 linux-cfs-2.6.22.5.q/init/main.c | 5 linux-cfs-2.6.22.5.q/kernel/delayacct.c | 10 linux-cfs-2.6.22.5.q/kernel/exit.c | 5 linux-cfs-2.6.22.5.q/kernel/fork.c | 4 linux-cfs-2.6.22.5.q/kernel/posix-cpu-timers.c | 34 linux-cfs-2.6.22.5.q/kernel/sched.c | 3619 ++++++--------- linux-cfs-2.6.22.5.q/kernel/sched_debug.c | 286 + linux-cfs-2.6.22.5.q/kernel/sched_fair.c | 1179 ++++ linux-cfs-2.6.22.5.q/kernel/sched_idletask.c | 71 linux-cfs-2.6.22.5.q/kernel/sched_rt.c | 234 linux-cfs-2.6.22.5.q/kernel/sched_stats.h | 237 linux-cfs-2.6.22.5.q/kernel/softirq.c | 1 linux-cfs-2.6.22.5.q/kernel/sysctl.c | 87 linux-cfs-2.6.22.5.q/lib/Kconfig.debug | 9 32 files changed, 4236 insertions(+), 2301 deletions(-) --- NEW FILE linux-2.6-sched-cfs-v2.6.22.5-v20.5.patch --- Index: linux-cfs-2.6.22.5.q/Documentation/kernel-parameters.txt =================================================================== --- linux-cfs-2.6.22.5.q.orig/Documentation/kernel-parameters.txt +++ linux-cfs-2.6.22.5.q/Documentation/kernel-parameters.txt @@ -1009,49 +1009,6 @@ and is between 256 and 4096 characters. mga= [HW,DRM] - migration_cost= - [KNL,SMP] debug: override scheduler migration costs - Format: ,,... - This debugging option can be used to override the - default scheduler migration cost matrix. The numbers - are indexed by 'CPU domain distance'. - E.g. migration_cost=1000,2000,3000 on an SMT NUMA - box will set up an intra-core migration cost of - 1 msec, an inter-core migration cost of 2 msecs, - and an inter-node migration cost of 3 msecs. - - WARNING: using the wrong values here can break - scheduler performance, so it's only for scheduler - development purposes, not production environments. - - migration_debug= - [KNL,SMP] migration cost auto-detect verbosity - Format=<0|1|2> - If a system's migration matrix reported at bootup - seems erroneous then this option can be used to - increase verbosity of the detection process. - We default to 0 (no extra messages), 1 will print - some more information, and 2 will be really - verbose (probably only useful if you also have a - serial console attached to the system). - - migration_factor= - [KNL,SMP] multiply/divide migration costs by a factor - Format= - This debug option can be used to proportionally - increase or decrease the auto-detected migration - costs for all entries of the migration matrix. - E.g. migration_factor=150 will increase migration - costs by 50%. (and thus the scheduler will be less - eager migrating cache-hot tasks) - migration_factor=80 will decrease migration costs - by 20%. (thus the scheduler will be more eager to - migrate tasks) - - WARNING: using the wrong values here can break - scheduler performance, so it's only for scheduler - development purposes, not production environments. - mousedev.tap_time= [MOUSE] Maximum time between finger touching and leaving touchpad surface for touch to be considered Index: linux-cfs-2.6.22.5.q/Documentation/sched-design-CFS.txt =================================================================== --- /dev/null +++ linux-cfs-2.6.22.5.q/Documentation/sched-design-CFS.txt @@ -0,0 +1,119 @@ + +This is the CFS scheduler. + +80% of CFS's design can be summed up in a single sentence: CFS basically +models an "ideal, precise multi-tasking CPU" on real hardware. + +"Ideal multi-tasking CPU" is a (non-existent :-)) CPU that has 100% +physical power and which can run each task at precise equal speed, in +parallel, each at 1/nr_running speed. For example: if there are 2 tasks +running then it runs each at 50% physical power - totally in parallel. + +On real hardware, we can run only a single task at once, so while that +one task runs, the other tasks that are waiting for the CPU are at a +disadvantage - the current task gets an unfair amount of CPU time. In +CFS this fairness imbalance is expressed and tracked via the per-task +p->wait_runtime (nanosec-unit) value. "wait_runtime" is the amount of +time the task should now run on the CPU for it to become completely fair +and balanced. + +( small detail: on 'ideal' hardware, the p->wait_runtime value would + always be zero - no task would ever get 'out of balance' from the + 'ideal' share of CPU time. ) + +CFS's task picking logic is based on this p->wait_runtime value and it +is thus very simple: it always tries to run the task with the largest +p->wait_runtime value. In other words, CFS tries to run the task with +the 'gravest need' for more CPU time. So CFS always tries to split up +CPU time between runnable tasks as close to 'ideal multitasking +hardware' as possible. + +Most of the rest of CFS's design just falls out of this really simple +concept, with a few add-on embellishments like nice levels, +multiprocessing and various algorithm variants to recognize sleepers. + +In practice it works like this: the system runs a task a bit, and when +the task schedules (or a scheduler tick happens) the task's CPU usage is +'accounted for': the (small) time it just spent using the physical CPU +is deducted from p->wait_runtime. [minus the 'fair share' it would have +gotten anyway]. Once p->wait_runtime gets low enough so that another +task becomes the 'leftmost task' of the time-ordered rbtree it maintains +(plus a small amount of 'granularity' distance relative to the leftmost +task so that we do not over-schedule tasks and trash the cache) then the +new leftmost task is picked and the current task is preempted. + +The rq->fair_clock value tracks the 'CPU time a runnable task would have +fairly gotten, had it been runnable during that time'. So by using +rq->fair_clock values we can accurately timestamp and measure the +'expected CPU time' a task should have gotten. All runnable tasks are +sorted in the rbtree by the "rq->fair_clock - p->wait_runtime" key, and +CFS picks the 'leftmost' task and sticks to it. As the system progresses +forwards, newly woken tasks are put into the tree more and more to the +right - slowly but surely giving a chance for every task to become the +'leftmost task' and thus get on the CPU within a deterministic amount of +time. + +Some implementation details: + + - the introduction of Scheduling Classes: an extensible hierarchy of + scheduler modules. These modules encapsulate scheduling policy + details and are handled by the scheduler core without the core + code assuming about them too much. + + - sched_fair.c implements the 'CFS desktop scheduler': it is a + replacement for the vanilla scheduler's SCHED_OTHER interactivity + code. + + I'd like to give credit to Con Kolivas for the general approach here: + he has proven via RSDL/SD that 'fair scheduling' is possible and that + it results in better desktop scheduling. Kudos Con! + + The CFS patch uses a completely different approach and implementation + from RSDL/SD. My goal was to make CFS's interactivity quality exceed + that of RSDL/SD, which is a high standard to meet :-) Testing + feedback is welcome to decide this one way or another. [ and, in any + case, all of SD's logic could be added via a kernel/sched_sd.c module + as well, if Con is interested in such an approach. ] + + CFS's design is quite radical: it does not use runqueues, it uses a + time-ordered rbtree to build a 'timeline' of future task execution, + and thus has no 'array switch' artifacts (by which both the vanilla + scheduler and RSDL/SD are affected). + + CFS uses nanosecond granularity accounting and does not rely on any + jiffies or other HZ detail. Thus the CFS scheduler has no notion of + 'timeslices' and has no heuristics whatsoever. There is only one + central tunable: + + /proc/sys/kernel/sched_granularity_ns + + which can be used to tune the scheduler from 'desktop' (low + latencies) to 'server' (good batching) workloads. It defaults to a + setting suitable for desktop workloads. SCHED_BATCH is handled by the + CFS scheduler module too. + + Due to its design, the CFS scheduler is not prone to any of the + 'attacks' that exist today against the heuristics of the stock + scheduler: fiftyp.c, thud.c, chew.c, ring-test.c, massive_intr.c all + work fine and do not impact interactivity and produce the expected + behavior. + + the CFS scheduler has a much stronger handling of nice levels and + SCHED_BATCH: both types of workloads should be isolated much more + agressively than under the vanilla scheduler. + + ( another detail: due to nanosec accounting and timeline sorting, + sched_yield() support is very simple under CFS, and in fact under + CFS sched_yield() behaves much better than under any other + scheduler i have tested so far. ) + + - sched_rt.c implements SCHED_FIFO and SCHED_RR semantics, in a simpler + way than the vanilla scheduler does. It uses 100 runqueues (for all + 100 RT priority levels, instead of 140 in the vanilla scheduler) + and it needs no expired array. + + - reworked/sanitized SMP load-balancing: the runqueue-walking + assumptions are gone from the load-balancing code now, and + iterators of the scheduling modules are used. The balancing code got + quite a bit simpler as a result. + Index: linux-cfs-2.6.22.5.q/arch/i386/kernel/smpboot.c =================================================================== --- linux-cfs-2.6.22.5.q.orig/arch/i386/kernel/smpboot.c +++ linux-cfs-2.6.22.5.q/arch/i386/kernel/smpboot.c @@ -941,17 +941,6 @@ exit: } #endif -static void smp_tune_scheduling(void) -{ - if (cpu_khz) { - /* cache size in kB */ - long cachesize = boot_cpu_data.x86_cache_size; - - if (cachesize > 0) - max_cache_size = cachesize * 1024; - } -} - /* * Cycle through the processors sending APIC IPIs to boot each. [...8558 lines suppressed...] + + /* + * prev now departs the cpu. It's not interesting to record + * stats about how efficient we were at scheduling the idle + * process, however. + */ + if (prev != rq->idle) + sched_info_depart(prev); + + if (next != rq->idle) + sched_info_arrive(next); +} +static inline void +sched_info_switch(struct task_struct *prev, struct task_struct *next) +{ + if (unlikely(sched_info_on())) + __sched_info_switch(prev, next); +} +#else +#define sched_info_queued(t) do { } while (0) +#define sched_info_switch(t, next) do { } while (0) +#endif /* CONFIG_SCHEDSTATS || CONFIG_TASK_DELAY_ACCT */ + Index: linux-cfs-2.6.22.5.q/kernel/softirq.c =================================================================== --- linux-cfs-2.6.22.5.q.orig/kernel/softirq.c +++ linux-cfs-2.6.22.5.q/kernel/softirq.c @@ -488,7 +488,6 @@ void __init softirq_init(void) static int ksoftirqd(void * __bind_cpu) { - set_user_nice(current, 19); current->flags |= PF_NOFREEZE; set_current_state(TASK_INTERRUPTIBLE); Index: linux-cfs-2.6.22.5.q/kernel/sysctl.c =================================================================== --- linux-cfs-2.6.22.5.q.orig/kernel/sysctl.c +++ linux-cfs-2.6.22.5.q/kernel/sysctl.c @@ -206,8 +206,95 @@ static ctl_table root_table[] = { { .ctl_name = 0 } }; +static unsigned long min_sched_granularity_ns = 100000; /* 100 usecs */ +static unsigned long max_sched_granularity_ns = 1000000000; /* 1 second */ +static unsigned long min_wakeup_granularity_ns; /* 0 usecs */ +static unsigned long max_wakeup_granularity_ns = 1000000000; /* 1 second */ + static ctl_table kern_table[] = { { + .ctl_name = CTL_UNNUMBERED, + .procname = "sched_min_granularity_ns", + .data = &sysctl_sched_min_granularity, + .maxlen = sizeof(unsigned int), + .mode = 0644, + .proc_handler = &proc_dointvec_minmax, + .strategy = &sysctl_intvec, + .extra1 = &min_sched_granularity_ns, + .extra2 = &max_sched_granularity_ns, + }, + { + .ctl_name = CTL_UNNUMBERED, + .procname = "sched_latency_ns", + .data = &sysctl_sched_latency, + .maxlen = sizeof(unsigned int), + .mode = 0644, + .proc_handler = &proc_dointvec_minmax, + .strategy = &sysctl_intvec, + .extra1 = &min_sched_granularity_ns, + .extra2 = &max_sched_granularity_ns, + }, + { + .ctl_name = CTL_UNNUMBERED, + .procname = "sched_wakeup_granularity_ns", + .data = &sysctl_sched_wakeup_granularity, + .maxlen = sizeof(unsigned int), + .mode = 0644, + .proc_handler = &proc_dointvec_minmax, + .strategy = &sysctl_intvec, + .extra1 = &min_wakeup_granularity_ns, + .extra2 = &max_wakeup_granularity_ns, + }, + { + .ctl_name = CTL_UNNUMBERED, + .procname = "sched_batch_wakeup_granularity_ns", + .data = &sysctl_sched_batch_wakeup_granularity, + .maxlen = sizeof(unsigned int), + .mode = 0644, + .proc_handler = &proc_dointvec_minmax, + .strategy = &sysctl_intvec, + .extra1 = &min_wakeup_granularity_ns, + .extra2 = &max_wakeup_granularity_ns, + }, + { + .ctl_name = CTL_UNNUMBERED, + .procname = "sched_stat_granularity_ns", + .data = &sysctl_sched_stat_granularity, + .maxlen = sizeof(unsigned int), + .mode = 0644, + .proc_handler = &proc_dointvec_minmax, + .strategy = &sysctl_intvec, + .extra1 = &min_wakeup_granularity_ns, + .extra2 = &max_wakeup_granularity_ns, + }, + { + .ctl_name = CTL_UNNUMBERED, + .procname = "sched_runtime_limit_ns", + .data = &sysctl_sched_runtime_limit, + .maxlen = sizeof(unsigned int), + .mode = 0644, + .proc_handler = &proc_dointvec_minmax, + .strategy = &sysctl_intvec, + .extra1 = &min_sched_granularity_ns, + .extra2 = &max_sched_granularity_ns, + }, + { + .ctl_name = CTL_UNNUMBERED, + .procname = "sched_child_runs_first", + .data = &sysctl_sched_child_runs_first, + .maxlen = sizeof(unsigned int), + .mode = 0644, + .proc_handler = &proc_dointvec, + }, + { + .ctl_name = CTL_UNNUMBERED, + .procname = "sched_features", + .data = &sysctl_sched_features, + .maxlen = sizeof(unsigned int), + .mode = 0644, + .proc_handler = &proc_dointvec, + }, + { .ctl_name = KERN_PANIC, .procname = "panic", .data = &panic_timeout, Index: linux-cfs-2.6.22.5.q/lib/Kconfig.debug =================================================================== --- linux-cfs-2.6.22.5.q.orig/lib/Kconfig.debug +++ linux-cfs-2.6.22.5.q/lib/Kconfig.debug @@ -105,6 +105,15 @@ config DETECT_SOFTLOCKUP can be detected via the NMI-watchdog, on platforms that support it.) +config SCHED_DEBUG + bool "Collect scheduler debugging info" + depends on DEBUG_KERNEL && PROC_FS + default y + help + If you say Y here, the /proc/sched_debug file will be provided + that can help debug the scheduler. The runtime overhead of this + option is minimal. + config SCHEDSTATS bool "Collect scheduler statistics" depends on DEBUG_KERNEL && PROC_FS Try to fix MC/HT scheduler optimization breakage again, with out breaking the FUZZ logic. First fix the check if (*imbalance + SCHED_LOAD_SCALE_FUZZ < busiest_load_per_task) with this if (*imbalance < busiest_load_per_task) As the current check is always false for nice 0 tasks (as SCHED_LOAD_SCALE_FUZZ is same as busiest_load_per_task for nice 0 tasks). With the above change, imbalance was getting reset to 0 in the corner case condition, making the FUZZ logic fail. Fix it by not corrupting the imbalance and change the imbalance, only when it finds that the HT/MC optimization is needed. Signed-off-by: Suresh Siddha --- diff --git a/kernel/sched.c b/kernel/sched.c index 9fe473a..03e5e8d 100644 --- a/kernel/sched.c +++ b/kernel/sched.c @@ -2511,7 +2511,7 @@ group_next: * a think about bumping its value to force at least one task to be * moved */ - if (*imbalance + SCHED_LOAD_SCALE_FUZZ < busiest_load_per_task) { + if (*imbalance < busiest_load_per_task) { unsigned long tmp, pwr_now, pwr_move; unsigned int imbn; @@ -2563,10 +2563,8 @@ small_imbalance: pwr_move /= SCHED_LOAD_SCALE; /* Move if we gain throughput */ - if (pwr_move <= pwr_now) - goto out_balanced; - - *imbalance = busiest_load_per_task; + if (pwr_move > pwr_now) + *imbalance = busiest_load_per_task; } return busiest; linux-2.6-scsi-3w_9xxx-fix-dma-mask.patch: 3w-9xxx.c | 18 +++++++++++------- 1 files changed, 11 insertions(+), 7 deletions(-) --- NEW FILE linux-2.6-scsi-3w_9xxx-fix-dma-mask.patch --- [SCSI] 3w-9xxx: Fix dma mask setting The attached patch updates the 3ware 9000 driver: - Fix dma mask setting to fallback to 32-bit if 64-bit fails. Extracted from commit 0e78d158b67fba3977f577f293c323359d80dd0e Signed-off-by: Chuck Ebbert Originally: Signed-off-by: Adam Radford Signed-off-by: James Bottomley --- a/drivers/scsi/3w-9xxx.c +++ b/drivers/scsi/3w-9xxx.c @@ -4,7 +4,7 @@ Written By: Adam Radford Modifications By: Tom Couch - Copyright (C) 2004-2006 Applied Micro Circuits Corporation. + Copyright (C) 2004-2007 Applied Micro Circuits Corporation. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -69,6 +69,7 @@ 2.26.02.008 - Free irq handler in __twa_shutdown(). Serialize reset code. Add support for 9650SE controllers. + 2.26.02.009 - Fix dma mask setting to fallback to 32-bit if 64-bit fails. */ #include @@ -92,7 +94,7 @@ #include "3w-9xxx.h" /* Globals */ -#define TW_DRIVER_VERSION "2.26.02.008" +#define TW_DRIVER_VERSION "2.26.02.009" static TW_Device_Extension *twa_device_extension_list[TW_MAX_SLOT]; static unsigned int twa_device_extension_count; static int twa_major = -1; @@ -2002,11 +2011,14 @@ static int __devinit twa_probe(struct pci_dev *pdev, const struct pci_device_id pci_set_master(pdev); - retval = pci_set_dma_mask(pdev, sizeof(dma_addr_t) > 4 ? DMA_64BIT_MASK : DMA_32BIT_MASK); - if (retval) { - TW_PRINTK(host, TW_DRIVER, 0x23, "Failed to set dma mask"); - goto out_disable_device; - } + if (pci_set_dma_mask(pdev, DMA_64BIT_MASK) + || pci_set_consistent_dma_mask(pdev, DMA_64BIT_MASK)) + if (pci_set_dma_mask(pdev, DMA_32BIT_MASK) + || pci_set_consistent_dma_mask(pdev, DMA_32BIT_MASK)) { + TW_PRINTK(host, TW_DRIVER, 0x23, "Failed to set dma mask"); + retval = -ENODEV; + goto out_disable_device; + } host = scsi_host_alloc(&driver_template, sizeof(TW_Device_Extension)); if (!host) { linux-2.6-snd-ad1988-fix-spdif-output.patch: patch_analog.c | 45 +++++++++++++++++++++++++++++++-------------- 1 files changed, 31 insertions(+), 14 deletions(-) --- NEW FILE linux-2.6-snd-ad1988-fix-spdif-output.patch --- # HG changeset patch # User tiwai # Date 1185293045 -7200 # Node ID 43059389c583efdc0be086ec6cc4634a4ee45011 # Parent 2250b8a4b66aa13e306bf253388a2d38b342eafa hda-codec - Fix AD1988 SPDIF output The SPDIF output on AD1988 had some problems due to the wrongly routed analog loopback to SPDIF. This patch fixes the implementation of "IEC958 Playback Source" mixer to handle the amp bits of mixer widget 0x1d correctly. Patch-level: ASAP --- a/sound/pci/hda/patch_analog.c Tue Jul 24 12:49:39 2007 +0200 +++ b/sound/pci/hda/patch_analog.c Tue Jul 24 18:04:05 2007 +0200 @@ -1889,16 +1889,19 @@ static int ad1988_spdif_playback_source_ struct hda_codec *codec = snd_kcontrol_chip(kcontrol); unsigned int sel; - sel = snd_hda_codec_read(codec, 0x02, 0, AC_VERB_GET_CONNECT_SEL, 0); - if (sel > 0) { + sel = snd_hda_codec_read(codec, 0x1d, 0, AC_VERB_GET_AMP_GAIN_MUTE, + AC_AMP_GET_INPUT); + if (!(sel & 0x80)) + ucontrol->value.enumerated.item[0] = 0; + else { sel = snd_hda_codec_read(codec, 0x0b, 0, AC_VERB_GET_CONNECT_SEL, 0); if (sel < 3) sel++; else sel = 0; + ucontrol->value.enumerated.item[0] = sel; } - ucontrol->value.enumerated.item[0] = sel; return 0; } @@ -1910,17 +1913,32 @@ static int ad1988_spdif_playback_source_ int change; val = ucontrol->value.enumerated.item[0]; - sel = snd_hda_codec_read(codec, 0x02, 0, AC_VERB_GET_CONNECT_SEL, 0); if (!val) { - change = sel != 0; - if (change || codec->in_resume) - snd_hda_codec_write(codec, 0x02, 0, - AC_VERB_SET_CONNECT_SEL, 0); + sel = snd_hda_codec_read(codec, 0x1d, 0, + AC_VERB_GET_AMP_GAIN_MUTE, + AC_AMP_GET_INPUT); + change = sel & 0x80; + if (change || codec->in_resume) { + snd_hda_codec_write(codec, 0x1d, 0, + AC_VERB_SET_AMP_GAIN_MUTE, + AMP_IN_UNMUTE(0)); + snd_hda_codec_write(codec, 0x1d, 0, + AC_VERB_SET_AMP_GAIN_MUTE, + AMP_IN_MUTE(1)); + } } else { - change = sel == 0; - if (change || codec->in_resume) - snd_hda_codec_write(codec, 0x02, 0, - AC_VERB_SET_CONNECT_SEL, 1); + sel = snd_hda_codec_read(codec, 0x1d, 0, + AC_VERB_GET_AMP_GAIN_MUTE, + AC_AMP_GET_INPUT | 0x01); + change = sel & 0x80; + if (change || codec->in_resume) { + snd_hda_codec_write(codec, 0x1d, 0, + AC_VERB_SET_AMP_GAIN_MUTE, + AMP_IN_MUTE(0)); + snd_hda_codec_write(codec, 0x1d, 0, + AC_VERB_SET_AMP_GAIN_MUTE, + AMP_IN_UNMUTE(1)); + } sel = snd_hda_codec_read(codec, 0x0b, 0, AC_VERB_GET_CONNECT_SEL, 0) + 1; change |= sel != val; @@ -2039,10 +2057,9 @@ static struct hda_verb ad1988_spdif_init {0x02, AC_VERB_SET_CONNECT_SEL, 0x0}, /* PCM */ {0x0b, AC_VERB_SET_CONNECT_SEL, 0x0}, /* ADC1 */ {0x1d, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, - {0x1d, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, + {0x1d, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(1)}, /* SPDIF out pin */ {0x1b, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE | 0x27}, /* 0dB */ - {0x1b, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0) | 0x17}, /* 0dB */ { } }; linux-2.6-snd-hda-stac92xx-fixes.patch: b/sound/pci/hda/patch_sigmatel.c | 9 +++++ sound/pci/hda/patch_sigmatel.c | 60 ++++++++++++++++++++------------------- 2 files changed, 40 insertions(+), 29 deletions(-) --- NEW FILE linux-2.6-snd-hda-stac92xx-fixes.patch --- Gitweb: http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=df802952b723cdb08f2f8a3cba396c357290850b Commit: df802952b723cdb08f2f8a3cba396c357290850b Parent: d10ad1a26da03fe089c02846a95fa5938c3ca3ce Author: Takashi Iwai AuthorDate: Mon Jul 2 19:18:00 2007 +0200 Committer: Jaroslav Kysela CommitDate: Fri Jul 20 11:11:39 2007 +0200 [ALSA] hda-codec - Fix the error in DAC assignment of STAC codec The STAC codec support code has the automatic recognition of additional side-output pins, and this may result in an error when the assigned pin has no corresponding DAC connection. The patch fixes the problem -- it corrects the line_outs again without such additional pins. Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela --- sound/pci/hda/patch_sigmatel.c | 9 ++++++++- 1 files changed, 8 insertions(+), 1 deletions(-) diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c index 270539a..e89180c 100644 --- a/sound/pci/hda/patch_sigmatel.c +++ b/sound/pci/hda/patch_sigmatel.c @@ -1228,7 +1228,7 @@ static int is_in_dac_nids(struct sigmatel_spec *spec, hda_nid_t nid) * and 9202/925x. For those, dac_nids[] must be hard-coded. */ static int stac92xx_auto_fill_dac_nids(struct hda_codec *codec, - const struct auto_pin_cfg *cfg) + struct auto_pin_cfg *cfg) { struct sigmatel_spec *spec = codec->spec; int i, j, conn_len = 0; @@ -1253,6 +1253,13 @@ static int stac92xx_auto_fill_dac_nids(struct hda_codec *codec, } if (j == conn_len) { + if (spec->multiout.num_dacs > 0) { + /* we have already working output pins, + * so let's drop the broken ones again + */ + cfg->line_outs = spec->multiout.num_dacs; + break; + } /* error out, no available DAC found */ snd_printk(KERN_ERR "%s: No available DAC for pin 0x%x\n", Gitweb: http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=92a22beb756c53985e8ba98d39f2c8fc834557a4 Commit: 92a22beb756c53985e8ba98d39f2c8fc834557a4 Parent: 76c08828709129bdce6c6a325e0342ba73f2618f Author: Matthew Ranostay AuthorDate: Tue Jun 19 16:48:28 2007 +0200 Committer: Jaroslav Kysela CommitDate: Fri Jul 20 11:11:30 2007 +0200 [ALSA] hda: add eapd support to additional idt codecs Added support for EAPD on the 927x, and 9227-8 IDT HDA codecs. Enabling EAPD powers the internal speaker amp otherwise there is no sound on systems with an internal amp. Signed-off-by: Matthew Ranostay Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela --- sound/pci/hda/patch_sigmatel.c | 31 ++++++++++++++++++------------- 1 files changed, 18 insertions(+), 13 deletions(-) diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c index 36423ca..270539a 100644 --- a/sound/pci/hda/patch_sigmatel.c +++ b/sound/pci/hda/patch_sigmatel.c @@ -844,6 +844,21 @@ static void stac92xx_set_config_regs(struct hda_codec *codec) } } +static void stac92xx_enable_eapd(struct hda_codec *codec) +{ + /* Configure GPIO0 as output */ + snd_hda_codec_write(codec, codec->afg, 0, + AC_VERB_SET_GPIO_DIRECTION, 0x00000001); + /* Configure GPIO0 as CMOS */ + snd_hda_codec_write(codec, codec->afg, 0, 0x7e7, 0x00000000); + /* Assert GPIO0 high */ + snd_hda_codec_write(codec, codec->afg, 0, + AC_VERB_SET_GPIO_DATA, 0x00000001); + /* Enable GPIO0 */ + snd_hda_codec_write(codec, codec->afg, 0, + AC_VERB_SET_GPIO_MASK, 0x00000001); +} + /* * Analog playback callbacks */ @@ -2205,7 +2220,8 @@ static int patch_stac927x(struct hda_codec *codec) } spec->multiout.dac_nids = spec->dac_nids; - + stac92xx_enable_eapd(codec); + err = stac92xx_parse_auto_config(codec, 0x1e, 0x20); if (!err) { if (spec->board_config < 0) { @@ -2273,18 +2289,7 @@ static int patch_stac9205(struct hda_codec *codec) spec->mixer = stac9205_mixer; spec->multiout.dac_nids = spec->dac_nids; - - /* Configure GPIO0 as EAPD output */ - snd_hda_codec_write(codec, codec->afg, 0, - AC_VERB_SET_GPIO_DIRECTION, 0x00000001); - /* Configure GPIO0 as CMOS */ - snd_hda_codec_write(codec, codec->afg, 0, 0x7e7, 0x00000000); - /* Assert GPIO0 high */ - snd_hda_codec_write(codec, codec->afg, 0, - AC_VERB_SET_GPIO_DATA, 0x00000001); - /* Enable GPIO0 */ - snd_hda_codec_write(codec, codec->afg, 0, - AC_VERB_SET_GPIO_MASK, 0x00000001); + stac92xx_enable_eapd(codec); err = stac92xx_parse_auto_config(codec, 0x1f, 0x20); if (!err) { Gitweb: http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a4eed138add1018846d17e813560b0c7c0ae8e01 Commit: a4eed138add1018846d17e813560b0c7c0ae8e01 Parent: 47a2327eac01fa944ab935fc5bb03c3032b2ec37 Author: Takashi Iwai AuthorDate: Fri Jul 6 18:17:04 2007 +0200 Committer: Jaroslav Kysela CommitDate: Fri Jul 20 11:11:46 2007 +0200 [ALSA] hda-codec - Fix number of pin widgets with STAC codecs Use ARRAY_SIZE() to calculate the number of pin widgets for each codec chip. This also fixes a typo in STAC9205 code that gives a wrong number (14 instead of 12), which resulted in fatal communication errors. Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela --- sound/pci/hda/patch_sigmatel.c | 10 +++++----- 1 files changed, 5 insertions(+), 5 deletions(-) diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c index f20b4fa..0dccba2 100644 --- a/sound/pci/hda/patch_sigmatel.c +++ b/sound/pci/hda/patch_sigmatel.c @@ -1958,7 +1958,7 @@ static int patch_stac9200(struct hda_codec *codec) return -ENOMEM; codec->spec = spec; - spec->num_pins = 8; + spec->num_pins = ARRAY_SIZE(stac9200_pin_nids); spec->pin_nids = stac9200_pin_nids; spec->board_config = snd_hda_check_board_config(codec, STAC_9200_MODELS, stac9200_models, @@ -2008,7 +2008,7 @@ static int patch_stac925x(struct hda_codec *codec) return -ENOMEM; codec->spec = spec; - spec->num_pins = 8; + spec->num_pins = ARRAY_SIZE(stac925x_pin_nids); spec->pin_nids = stac925x_pin_nids; spec->board_config = snd_hda_check_board_config(codec, STAC_925x_MODELS, stac925x_models, @@ -2080,7 +2080,7 @@ static int patch_stac922x(struct hda_codec *codec) return -ENOMEM; codec->spec = spec; - spec->num_pins = 10; + spec->num_pins = ARRAY_SIZE(stac922x_pin_nids); spec->pin_nids = stac922x_pin_nids; spec->board_config = snd_hda_check_board_config(codec, STAC_922X_MODELS, stac922x_models, @@ -2181,7 +2181,7 @@ static int patch_stac927x(struct hda_codec *codec) return -ENOMEM; codec->spec = spec; - spec->num_pins = 14; + spec->num_pins = ARRAY_SIZE(stac927x_pin_nids); spec->pin_nids = stac927x_pin_nids; spec->board_config = snd_hda_check_board_config(codec, STAC_927X_MODELS, stac927x_models, @@ -2266,7 +2266,7 @@ static int patch_stac9205(struct hda_codec *codec) return -ENOMEM; codec->spec = spec; - spec->num_pins = 14; + spec->num_pins = ARRAY_SIZE(stac9205_pin_nids); spec->pin_nids = stac9205_pin_nids; spec->board_config = snd_hda_check_board_config(codec, STAC_9205_MODELS, stac9205_models, Gitweb: http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=aafc03398baefaac380b34a1ee6356e7eed8e663 Commit: aafc03398baefaac380b34a1ee6356e7eed8e663 Parent: c54728d8aa59283ece86cb745e5085ece8b4eedb Author: Takashi Iwai AuthorDate: Tue May 29 18:01:06 2007 +0200 Committer: Jaroslav Kysela CommitDate: Fri Jul 20 11:12:00 2007 +0200 [ALSA] hda-codec - Fix input with STAC92xx The recent fix for STAC92xx surround outputs broke the input pin setting for shared line-in and mic jacks. This patch fixes the breakage. Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela --- sound/pci/hda/patch_sigmatel.c | 7 ------- 1 files changed, 0 insertions(+), 7 deletions(-) diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c index 9b1d433..3f25de7 100644 --- a/sound/pci/hda/patch_sigmatel.c +++ b/sound/pci/hda/patch_sigmatel.c @@ -2266,13 +2266,6 @@ static int patch_stac927x(struct hda_codec *codec) codec->patch_ops = stac92xx_patch_ops; - /* Fix Mux capture level; max to 2 */ - snd_hda_override_amp_caps(codec, 0x12, HDA_OUTPUT, - (0 << AC_AMPCAP_OFFSET_SHIFT) | - (2 << AC_AMPCAP_NUM_STEPS_SHIFT) | - (0x27 << AC_AMPCAP_STEP_SIZE_SHIFT) | - (0 << AC_AMPCAP_MUTE_SHIFT)); - return 0; } Gitweb: http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=1b290a510c12be91b6a2f7d6a07ef61b8ee9f06a Commit: 1b290a510c12be91b6a2f7d6a07ef61b8ee9f06a Parent: 82fb159aa3d187aac0fce076739d7d8884e7a0af Author: Matthew Ranostay AuthorDate: Thu Jul 12 15:17:34 2007 +0200 Committer: Jaroslav Kysela CommitDate: Fri Jul 20 11:11:51 2007 +0200 [ALSA] hda: stac9202 mixer fix Added support for line out controls for STAC9202 cards, and fixed issue where master mixer control was being created twice for headphone and speaker outs. Signed-off-by: Matthew Ranostay Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela --- sound/pci/hda/patch_sigmatel.c | 12 +++++++++--- 1 files changed, 9 insertions(+), 3 deletions(-) diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c index 0dccba2..be53e96 100644 --- a/sound/pci/hda/patch_sigmatel.c +++ b/sound/pci/hda/patch_sigmatel.c @@ -334,8 +334,6 @@ static struct snd_kcontrol_new stac9200_mixer[] = { }; static struct snd_kcontrol_new stac925x_mixer[] = { - HDA_CODEC_VOLUME("Master Playback Volume", 0xe, 0, HDA_OUTPUT), - HDA_CODEC_MUTE("Master Playback Switch", 0xe, 0, HDA_OUTPUT), { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "Input Source", @@ -1401,7 +1399,15 @@ static int stac92xx_auto_create_hp_ctls(struct hda_codec *codec, continue; add_spec_dacs(spec, nid); } - + for (i = 0; i < cfg->line_outs; i++) { + nid = snd_hda_codec_read(codec, cfg->line_out_pins[i], 0, + AC_VERB_GET_CONNECT_LIST, 0) & 0xff; + if (check_in_dac_nids(spec, nid)) + nid = 0; + if (! nid) + continue; + add_spec_dacs(spec, nid); + } for (i = old_num_dacs; i < spec->multiout.num_dacs; i++) { static const char *pfxs[] = { "Speaker", "External Speaker", "Speaker2", linux-2.6-v4l-dvb-fix-airstar-hd5000-tuner.patch: flexcop-i2c.c | 7 +++++++ 1 files changed, 7 insertions(+) --- NEW FILE linux-2.6-v4l-dvb-fix-airstar-hd5000-tuner.patch --- From: Trent Piepho Date: Sun, 19 Aug 2007 08:05:54 +0000 (-0300) Subject: V4L/DVB (6042): b2c2-flexcop: fix Airstar HD5000 tuning regression X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Fmchehab%2Fv4l-dvb.git;a=commitdiff_plain;h=6175e487e314385e37f06448847e4c46c20edb44 V4L/DVB (6042): b2c2-flexcop: fix Airstar HD5000 tuning regression Git changeset 6bdcc6e6dbab8daffd05e5026486f34ba41a6c72 dropped the stand-alone lgh06xf module, whose functionality was absorbed into the dvb-pll module. However, there was a minor difference between the code in lgh06xf and dvb-pll, which caused a regression in b2c2-flexcop devices using the LG-H06xF NIM. dvb-pll will probe for the presence of an i2c pll chip by performing a single byte read, the lgh06xf driver did not do this. Unfortunately, the code in flexcop-i2c.c does not currently support 1 byte or 0 byte reads as a probe. Such probes with the current code will always fail. In order to work around this problem, and restore proper functionality of the Airstar HD5000 device, this hack was created to make the probe appear to succeed. The single byte read in dvb_pll_attach is the only place where such a probe would ever occur, so this change is safe, and will not affect any other devices. Of course, if one knew how to actually perform the read operation, it would be better to go that route. In the meantime, however, we must apply this workaround, in order to prevent the regression that causes tuning to fail on the Airstar HD5000 ATSC device. Thanks to Jarod Wilson, who had originally reported this regression, and to Geoffrey Hausheer, whose original workaround patch led us to find the actual cause of the problem. Signed-off-by: Trent Piepho Cc: Geoffrey Hausheer Acked-by: Jarod Wilson Signed-off-by: Michael Krufky Signed-off-by: Mauro Carvalho Chehab --- diff --git a/drivers/media/dvb/b2c2/flexcop-i2c.c b/drivers/media/dvb/b2c2/flexcop-i2c.c index 02a0ea6..6bf858a 100644 --- a/drivers/media/dvb/b2c2/flexcop-i2c.c +++ b/drivers/media/dvb/b2c2/flexcop-i2c.c @@ -135,6 +135,13 @@ static int flexcop_master_xfer(struct i2c_adapter *i2c_adap, struct i2c_msg msgs struct flexcop_device *fc = i2c_get_adapdata(i2c_adap); int i, ret = 0; + /* Some drivers use 1 byte or 0 byte reads as probes, which this + * driver doesn't support. These probes will always fail, so this + * hack makes them always succeed. If one knew how, it would of + * course be better to actually do the read. */ + if (num == 1 && msgs[0].flags == I2C_M_RD && msgs[0].len <= 1) + return 1; + if (mutex_lock_interruptible(&fc->i2c_mutex)) return -ERESTARTSYS; patch-2.6.22.6-rc1.patch: arch/i386/mm/fault.c | 5 - arch/sparc64/kernel/pci.c | 15 +++- arch/sparc64/kernel/pci_common.c | 123 +++++++++++++++++++++++++++++++++++--- arch/sparc64/kernel/traps.c | 18 +++-- arch/sparc64/mm/fault.c | 5 - arch/um/drivers/ubd_kern.c | 4 - drivers/media/video/pwc/pwc-if.c | 52 ++++++++++------ drivers/media/video/pwc/pwc.h | 1 drivers/net/bonding/bond_main.c | 30 ++------- drivers/net/ppp_generic.c | 2 drivers/net/sky2.c | 4 - drivers/pci/probe.c | 18 ++--- drivers/pci/quirks.c | 3 drivers/usb/core/message.c | 28 ++++++++ fs/exec.c | 9 -- fs/ocfs2/file.c | 2 fs/signalfd.c | 14 +++- include/asm-sparc/sfp-machine.h | 6 + include/asm-sparc64/sfp-machine.h | 2 include/linux/netdevice.h | 2 include/linux/netfilter/Kbuild | 1 include/linux/pci_ids.h | 3 include/math-emu/op-common.h | 5 + include/math-emu/soft-fp.h | 7 ++ include/net/tcp.h | 2 kernel/signal.c | 4 - net/802/psnap.c | 17 +++-- net/bridge/br_device.c | 3 net/bridge/br_if.c | 28 +------- net/core/dev.c | 38 +++++++++++ net/dccp/ccids/ccid2.c | 2 net/ipv4/af_inet.c | 2 net/ipv4/tcp.c | 3 net/ipv4/tcp_input.c | 26 ++++---- net/ipv4/tcp_ipv4.c | 1 net/ipv6/af_inet6.c | 2 net/ipv6/ip6_output.c | 2 net/ipv6/ipv6_sockglue.c | 2 net/ipv6/tcp_ipv6.c | 1 net/socket.c | 2 40 files changed, 350 insertions(+), 144 deletions(-) --- NEW FILE patch-2.6.22.6-rc1.patch --- Removed: version change broken cdc_acm patch diff --git a/arch/i386/mm/fault.c b/arch/i386/mm/fault.c index 1ecb3e4..27ba2fd 100644 --- a/arch/i386/mm/fault.c +++ b/arch/i386/mm/fault.c @@ -249,9 +249,10 @@ static inline pmd_t *vmalloc_sync_one(pgd_t *pgd, unsigned long address) pmd_k = pmd_offset(pud_k, address); if (!pmd_present(*pmd_k)) return NULL; - if (!pmd_present(*pmd)) + if (!pmd_present(*pmd)) { set_pmd(pmd, *pmd_k); - else + arch_flush_lazy_mmu_mode(); + } else BUG_ON(pmd_page(*pmd) != pmd_page(*pmd_k)); return pmd_k; } diff --git a/arch/sparc64/kernel/pci.c b/arch/sparc64/kernel/pci.c index 81f4a5e..3bc136a 100644 --- a/arch/sparc64/kernel/pci.c +++ b/arch/sparc64/kernel/pci.c @@ -422,10 +422,15 @@ struct pci_dev *of_create_pci_dev(struct pci_pbm_info *pbm, dev->multifunction = 0; /* maybe a lie? */ if (host_controller) { - dev->vendor = 0x108e; - dev->device = 0x8000; - dev->subsystem_vendor = 0x0000; - dev->subsystem_device = 0x0000; + if (tlb_type != hypervisor) { + pci_read_config_word(dev, PCI_VENDOR_ID, + &dev->vendor); + pci_read_config_word(dev, PCI_DEVICE_ID, + &dev->device); + } else { + dev->vendor = PCI_VENDOR_ID_SUN; + dev->device = 0x80f0; + } dev->cfg_size = 256; dev->class = PCI_CLASS_BRIDGE_HOST << 8; sprintf(pci_name(dev), "%04x:%02x:%02x.%d", pci_domain_nr(bus), @@ -817,7 +822,7 @@ int pci_host_bridge_read_pci_cfg(struct pci_bus *bus_dev, { static u8 fake_pci_config[] = { 0x8e, 0x10, /* Vendor: 0x108e (Sun) */ - 0x00, 0x80, /* Device: 0x8000 (PBM) */ + 0xf0, 0x80, /* Device: 0x80f0 (Fire) */ 0x46, 0x01, /* Command: 0x0146 (SERR, PARITY, MASTER, MEM) */ 0xa0, 0x22, /* Status: 0x02a0 (DEVSEL_MED, FB2B, 66MHZ) */ 0x00, 0x00, 0x00, 0x06, /* Class: 0x06000000 host bridge */ diff --git a/arch/sparc64/kernel/pci_common.c b/arch/sparc64/kernel/pci_common.c index 4249214..2f61c4b 100644 --- a/arch/sparc64/kernel/pci_common.c +++ b/arch/sparc64/kernel/pci_common.c @@ -44,6 +44,67 @@ static void *sun4u_config_mkaddr(struct pci_pbm_info *pbm, return (void *) (pbm->config_space | bus | devfn | reg); } +/* At least on Sabre, it is necessary to access all PCI host controller + * registers at their natural size, otherwise zeros are returned. + * Strange but true, and I see no language in the UltraSPARC-IIi + * programmer's manual that mentions this even indirectly. + */ +static int sun4u_read_pci_cfg_host(struct pci_pbm_info *pbm, + unsigned char bus, unsigned int devfn, + int where, int size, u32 *value) +{ + u32 tmp32, *addr; + u16 tmp16; + u8 tmp8; + + addr = sun4u_config_mkaddr(pbm, bus, devfn, where); + if (!addr) + return PCIBIOS_SUCCESSFUL; + + switch (size) { + case 1: + if (where < 8) { + unsigned long align = (unsigned long) addr; + + align &= ~1; + pci_config_read16((u16 *)align, &tmp16); + if (where & 1) + *value = tmp16 >> 8; + else + *value = tmp16 & 0xff; + } else { + pci_config_read8((u8 *)addr, &tmp8); + *value = (u32) tmp8; + } + break; + + case 2: + if (where < 8) { + pci_config_read16((u16 *)addr, &tmp16); + *value = (u32) tmp16; + } else { + pci_config_read8((u8 *)addr, &tmp8); + *value = (u32) tmp8; + pci_config_read8(((u8 *)addr) + 1, &tmp8); + *value |= ((u32) tmp8) << 8; + } + break; + + case 4: + tmp32 = 0xffffffff; + sun4u_read_pci_cfg_host(pbm, bus, devfn, + where, 2, &tmp32); + *value = tmp32; + + tmp32 = 0xffffffff; + sun4u_read_pci_cfg_host(pbm, bus, devfn, + where + 2, 2, &tmp32); + *value |= tmp32 << 16; + break; + } + return PCIBIOS_SUCCESSFUL; +} + static int sun4u_read_pci_cfg(struct pci_bus *bus_dev, unsigned int devfn, int where, int size, u32 *value) { @@ -53,10 +114,6 @@ static int sun4u_read_pci_cfg(struct pci_bus *bus_dev, unsigned int devfn, u16 tmp16; u8 tmp8; - if (bus_dev == pbm->pci_bus && devfn == 0x00) - return pci_host_bridge_read_pci_cfg(bus_dev, devfn, where, - size, value); - switch (size) { case 1: *value = 0xff; @@ -69,6 +126,10 @@ static int sun4u_read_pci_cfg(struct pci_bus *bus_dev, unsigned int devfn, break; } + if (!bus_dev->number && !PCI_SLOT(devfn)) + return sun4u_read_pci_cfg_host(pbm, bus, devfn, where, + size, value); + addr = sun4u_config_mkaddr(pbm, bus, devfn, where); if (!addr) return PCIBIOS_SUCCESSFUL; @@ -101,6 +162,53 @@ static int sun4u_read_pci_cfg(struct pci_bus *bus_dev, unsigned int devfn, return PCIBIOS_SUCCESSFUL; } +static int sun4u_write_pci_cfg_host(struct pci_pbm_info *pbm, + unsigned char bus, unsigned int devfn, + int where, int size, u32 value) +{ + u32 *addr; + + addr = sun4u_config_mkaddr(pbm, bus, devfn, where); + if (!addr) + return PCIBIOS_SUCCESSFUL; + + switch (size) { + case 1: + if (where < 8) { + unsigned long align = (unsigned long) addr; + u16 tmp16; + + align &= ~1; + pci_config_read16((u16 *)align, &tmp16); + if (where & 1) { + tmp16 &= 0x00ff; + tmp16 |= value << 8; + } else { + tmp16 &= 0xff00; + tmp16 |= value; + } + pci_config_write16((u16 *)align, tmp16); + } else + pci_config_write8((u8 *)addr, value); + break; + case 2: + if (where < 8) { + pci_config_write16((u16 *)addr, value); + } else { + pci_config_write8((u8 *)addr, value & 0xff); + pci_config_write8(((u8 *)addr) + 1, value >> 8); + } + break; + case 4: + sun4u_write_pci_cfg_host(pbm, bus, devfn, + where, 2, value & 0xffff); + sun4u_write_pci_cfg_host(pbm, bus, devfn, + where + 2, 2, value >> 16); + break; + } + return PCIBIOS_SUCCESSFUL; +} + static int sun4u_write_pci_cfg(struct pci_bus *bus_dev, unsigned int devfn, int where, int size, u32 value) { @@ -108,9 +216,10 @@ static int sun4u_write_pci_cfg(struct pci_bus *bus_dev, unsigned int devfn, unsigned char bus = bus_dev->number; u32 *addr; - if (bus_dev == pbm->pci_bus && devfn == 0x00) - return pci_host_bridge_write_pci_cfg(bus_dev, devfn, where, - size, value); + if (!bus_dev->number && !PCI_SLOT(devfn)) + return sun4u_write_pci_cfg_host(pbm, bus, devfn, where, + size, value); + addr = sun4u_config_mkaddr(pbm, bus, devfn, where); if (!addr) return PCIBIOS_SUCCESSFUL; diff --git a/arch/sparc64/kernel/traps.c b/arch/sparc64/kernel/traps.c index 00a9e32..a05b37f 100644 --- a/arch/sparc64/kernel/traps.c +++ b/arch/sparc64/kernel/traps.c @@ -2134,12 +2134,20 @@ static void user_instruction_dump (unsigned int __user *pc) void show_stack(struct task_struct *tsk, unsigned long *_ksp) { unsigned long pc, fp, thread_base, ksp; - void *tp = task_stack_page(tsk); + struct thread_info *tp; struct reg_window *rw; int count = 0; ksp = (unsigned long) _ksp; - + if (!tsk) + tsk = current; + tp = task_thread_info(tsk); + if (ksp == 0UL) { + if (tsk == current) + asm("mov %%fp, %0" : "=r" (ksp)); + else + ksp = tp->ksp; + } if (tp == current_thread_info()) flushw_all(); @@ -2168,11 +2176,7 @@ void show_stack(struct task_struct *tsk, unsigned long *_ksp) void dump_stack(void) { - unsigned long *ksp; - - __asm__ __volatile__("mov %%fp, %0" - : "=r" (ksp)); - show_stack(current, ksp); + show_stack(current, NULL); } EXPORT_SYMBOL(dump_stack); diff --git a/arch/sparc64/mm/fault.c b/arch/sparc64/mm/fault.c index b582024..e2cb991 100644 --- a/arch/sparc64/mm/fault.c +++ b/arch/sparc64/mm/fault.c @@ -112,15 +112,12 @@ static void __kprobes unhandled_fault(unsigned long address, static void bad_kernel_pc(struct pt_regs *regs, unsigned long vaddr) { - unsigned long *ksp; - printk(KERN_CRIT "OOPS: Bogus kernel PC [%016lx] in fault handler\n", regs->tpc); printk(KERN_CRIT "OOPS: RPC [%016lx]\n", regs->u_regs[15]); print_symbol("RPC: <%s>\n", regs->u_regs[15]); printk(KERN_CRIT "OOPS: Fault was to vaddr[%lx]\n", vaddr); - __asm__("mov %%sp, %0" : "=r" (ksp)); - show_stack(current, ksp); + dump_stack(); unhandled_fault(regs->tpc, current, regs); } diff --git a/arch/um/drivers/ubd_kern.c b/arch/um/drivers/ubd_kern.c index c6acc1a..2c491a5 100644 --- a/arch/um/drivers/ubd_kern.c +++ b/arch/um/drivers/ubd_kern.c @@ -612,6 +612,8 @@ static int ubd_open_dev(struct ubd *ubd_dev) ubd_dev->fd = fd; if(ubd_dev->cow.file != NULL){ + blk_queue_max_sectors(ubd_dev->queue, 8 * sizeof(long)); + err = -ENOMEM; ubd_dev->cow.bitmap = (void *) vmalloc(ubd_dev->cow.bitmap_len); if(ubd_dev->cow.bitmap == NULL){ @@ -712,8 +714,6 @@ static int ubd_add(int n, char **error_out) ubd_dev->queue->queuedata = ubd_dev; blk_queue_max_hw_segments(ubd_dev->queue, MAX_SG); - if(ubd_dev->cow.file != NULL) - blk_queue_max_sectors(ubd_dev->queue, 8 * sizeof(long)); err = ubd_disk_register(MAJOR_NR, ubd_dev->size, n, &ubd_gendisk[n]); if(err){ *error_out = "Failed to register device"; diff --git a/drivers/media/video/pwc/pwc-if.c b/drivers/media/video/pwc/pwc-if.c index 085332a..cd3d001 100644 --- a/drivers/media/video/pwc/pwc-if.c +++ b/drivers/media/video/pwc/pwc-if.c @@ -1196,12 +1196,19 @@ static int pwc_video_open(struct inode *inode, struct file *file) return 0; } + +static void pwc_cleanup(struct pwc_device *pdev) +{ + pwc_remove_sysfs_files(pdev->vdev); + video_unregister_device(pdev->vdev); +} + /* Note that all cleanup is done in the reverse order as in _open */ static int pwc_video_close(struct inode *inode, struct file *file) { struct video_device *vdev = file->private_data; struct pwc_device *pdev; - int i; + int i, hint; PWC_DEBUG_OPEN(">> video_close called(vdev = 0x%p).\n", vdev); @@ -1224,8 +1231,9 @@ static int pwc_video_close(struct inode *inode, struct file *file) pwc_isoc_cleanup(pdev); pwc_free_buffers(pdev); + lock_kernel(); /* Turn off LEDS and power down camera, but only when not unplugged */ - if (pdev->error_status != EPIPE) { + if (!pdev->unplugged) { /* Turn LEDs off */ if (pwc_set_leds(pdev, 0, 0) < 0) PWC_DEBUG_MODULE("Failed to set LED on/off time.\n"); @@ -1234,9 +1242,19 @@ static int pwc_video_close(struct inode *inode, struct file *file) if (i < 0) PWC_ERROR("Failed to power down camera (%d)\n", i); } + pdev->vopen--; + PWC_DEBUG_OPEN("<< video_close() vopen=%d\n", i); + } else { + pwc_cleanup(pdev); + /* Free memory (don't set pdev to 0 just yet) */ + kfree(pdev); + /* search device_hint[] table if we occupy a slot, by any chance */ + for (hint = 0; hint < MAX_DEV_HINTS; hint++) + if (device_hint[hint].pdev == pdev) + device_hint[hint].pdev = NULL; } - pdev->vopen--; - PWC_DEBUG_OPEN("<< video_close() vopen=%d\n", pdev->vopen); + unlock_kernel(); + return 0; } @@ -1791,21 +1809,21 @@ static void usb_pwc_disconnect(struct usb_interface *intf) /* Alert waiting processes */ wake_up_interruptible(&pdev->frameq); /* Wait until device is closed */ - while (pdev->vopen) - schedule(); - /* Device is now closed, so we can safely unregister it */ - PWC_DEBUG_PROBE("Unregistering video device in disconnect().\n"); - pwc_remove_sysfs_files(pdev->vdev); - video_unregister_device(pdev->vdev); - - /* Free memory (don't set pdev to 0 just yet) */ - kfree(pdev); + if(pdev->vopen) { + pdev->unplugged = 1; + } else { + /* Device is closed, so we can safely unregister it */ + PWC_DEBUG_PROBE("Unregistering video device in disconnect().\n"); + pwc_cleanup(pdev); + /* Free memory (don't set pdev to 0 just yet) */ + kfree(pdev); disconnect_out: - /* search device_hint[] table if we occupy a slot, by any chance */ - for (hint = 0; hint < MAX_DEV_HINTS; hint++) - if (device_hint[hint].pdev == pdev) - device_hint[hint].pdev = NULL; + /* search device_hint[] table if we occupy a slot, by any chance */ + for (hint = 0; hint < MAX_DEV_HINTS; hint++) + if (device_hint[hint].pdev == pdev) + device_hint[hint].pdev = NULL; + } unlock_kernel(); } diff --git a/drivers/media/video/pwc/pwc.h b/drivers/media/video/pwc/pwc.h index acbb931..40d3447 100644 --- a/drivers/media/video/pwc/pwc.h +++ b/drivers/media/video/pwc/pwc.h @@ -193,6 +193,7 @@ struct pwc_device char vsnapshot; /* snapshot mode */ char vsync; /* used by isoc handler */ char vmirror; /* for ToUCaM series */ + char unplugged; int cmd_len; unsigned char cmd_buf[13]; diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c index 6287ffb..0af7bc8 100644 --- a/drivers/net/bonding/bond_main.c +++ b/drivers/net/bonding/bond_main.c @@ -1233,43 +1233,31 @@ int bond_sethwaddr(struct net_device *bond_dev, struct net_device *slave_dev) return 0; } -#define BOND_INTERSECT_FEATURES \ - (NETIF_F_SG | NETIF_F_ALL_CSUM | NETIF_F_TSO | NETIF_F_UFO) +#define BOND_VLAN_FEATURES \ + (NETIF_F_VLAN_CHALLENGED | NETIF_F_HW_VLAN_RX | NETIF_F_HW_VLAN_TX | \ + NETIF_F_HW_VLAN_FILTER) /* * Compute the common dev->feature set available to all slaves. Some - * feature bits are managed elsewhere, so preserve feature bits set on - * master device that are not part of the examined set. + * feature bits are managed elsewhere, so preserve those feature bits + * on the master device. */ static int bond_compute_features(struct bonding *bond) { - unsigned long features = BOND_INTERSECT_FEATURES; struct slave *slave; struct net_device *bond_dev = bond->dev; + unsigned long features = bond_dev->features & ~BOND_VLAN_FEATURES; unsigned short max_hard_header_len = ETH_HLEN; int i; bond_for_each_slave(bond, slave, i) { - features &= (slave->dev->features & BOND_INTERSECT_FEATURES); + features = netdev_compute_features(features, + slave->dev->features); if (slave->dev->hard_header_len > max_hard_header_len) max_hard_header_len = slave->dev->hard_header_len; } - if ((features & NETIF_F_SG) && - !(features & NETIF_F_ALL_CSUM)) - features &= ~NETIF_F_SG; - - /* - * features will include NETIF_F_TSO (NETIF_F_UFO) iff all - * slave devices support NETIF_F_TSO (NETIF_F_UFO), which - * implies that all slaves also support scatter-gather - * (NETIF_F_SG), which implies that features also includes - * NETIF_F_SG. So no need to check whether we have an - * illegal combination of NETIF_F_{TSO,UFO} and - * !NETIF_F_SG - */ - - features |= (bond_dev->features & ~BOND_INTERSECT_FEATURES); + features |= (bond_dev->features & BOND_VLAN_FEATURES); bond_dev->features = features; bond_dev->hard_header_len = max_hard_header_len; diff --git a/drivers/net/ppp_generic.c b/drivers/net/ppp_generic.c index 3ef0092..9a81fed 100644 --- a/drivers/net/ppp_generic.c +++ b/drivers/net/ppp_generic.c @@ -1726,7 +1726,7 @@ ppp_decompress_frame(struct ppp *ppp, struct sk_buff *skb) } /* the decompressor still expects the A/C bytes in the hdr */ len = ppp->rcomp->decompress(ppp->rc_state, skb->data - 2, - skb->len + 2, ns->data, ppp->mru + PPP_HDRLEN); + skb->len + 2, ns->data, obuff_size); if (len < 0) { /* Pass the compressed frame to pppd as an error indication. */ diff --git a/drivers/net/sky2.c b/drivers/net/sky2.c index d2646a8..2e76c4a 100644 --- a/drivers/net/sky2.c +++ b/drivers/net/sky2.c @@ -657,8 +657,8 @@ static void sky2_mac_init(struct sky2_hw *hw, unsigned port) int i; const u8 *addr = hw->dev[port]->dev_addr; - sky2_write32(hw, SK_REG(port, GPHY_CTRL), GPC_RST_SET); - sky2_write32(hw, SK_REG(port, GPHY_CTRL), GPC_RST_CLR); + sky2_write8(hw, SK_REG(port, GPHY_CTRL), GPC_RST_SET); + sky2_write8(hw, SK_REG(port, GPHY_CTRL), GPC_RST_CLR); sky2_write8(hw, SK_REG(port, GMAC_CTRL), GMC_RST_CLR); diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c index e48fcf0..247135f 100644 --- a/drivers/pci/probe.c +++ b/drivers/pci/probe.c @@ -643,20 +643,20 @@ int pci_scan_bridge(struct pci_bus *bus, struct pci_dev * dev, int max, int pass sprintf(child->name, (is_cardbus ? "PCI CardBus #%02x" : "PCI Bus #%02x"), child->number); + /* Has only triggered on CardBus, fixup is in yenta_socket */ while (bus->parent) { if ((child->subordinate > bus->subordinate) || (child->number > bus->subordinate) || (child->number < bus->number) || (child->subordinate < bus->number)) { - printk(KERN_WARNING "PCI: Bus #%02x (-#%02x) is " - "hidden behind%s bridge #%02x (-#%02x)%s\n", - child->number, child->subordinate, - bus->self->transparent ? " transparent" : " ", - bus->number, bus->subordinate, - pcibios_assign_all_busses() ? " " : - " (try 'pci=assign-busses')"); - printk(KERN_WARNING "Please report the result to " - "linux-kernel to fix this permanently\n"); + pr_debug("PCI: Bus #%02x (-#%02x) is %s" + "hidden behind%s bridge #%02x (-#%02x)\n", + child->number, child->subordinate, + (bus->number > child->subordinate && + bus->subordinate < child->number) ? + "wholly " : " partially", + bus->self->transparent ? " transparent" : " ", + bus->number, bus->subordinate); } bus = bus->parent; } diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c index 01d8f8a..749e7d8 100644 --- a/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c @@ -1640,6 +1640,9 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_GCN DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_HT1000_PCIX, quirk_disable_all_msi); DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RS400_200, quirk_disable_all_msi); DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RS480, quirk_disable_all_msi); +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RD580, quirk_disable_all_msi); +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RX790, quirk_disable_all_msi); +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RS690, quirk_disable_all_msi); DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_VT3351, quirk_disable_all_msi); /* Disable MSI on chipsets that are known to not support it */ diff --git a/drivers/usb/core/message.c b/drivers/usb/core/message.c index f9fed34..68ce2de 100644 --- a/drivers/usb/core/message.c +++ b/drivers/usb/core/message.c @@ -623,12 +623,12 @@ int usb_get_descriptor(struct usb_device *dev, unsigned char type, unsigned char memset(buf,0,size); // Make sure we parse really received data for (i = 0; i < 3; ++i) { - /* retry on length 0 or stall; some devices are flakey */ + /* retry on length 0 or error; some devices are flakey */ result = usb_control_msg(dev, usb_rcvctrlpipe(dev, 0), USB_REQ_GET_DESCRIPTOR, USB_DIR_IN, (type << 8) + index, 0, buf, size, USB_CTRL_GET_TIMEOUT); - if (result == 0 || result == -EPIPE) + if (result <= 0 && result != -ETIMEDOUT) continue; if (result > 1 && ((u8 *)buf)[1] != type) { result = -EPROTO; @@ -1344,6 +1344,30 @@ static int usb_if_uevent(struct device *dev, char **envp, int num_envp, usb_dev = interface_to_usbdev(intf); alt = intf->cur_altsetting; +#ifdef CONFIG_USB_DEVICEFS + if (add_uevent_var(envp, num_envp, &i, + buffer, buffer_size, &length, + "DEVICE=/proc/bus/usb/%03d/%03d", + usb_dev->bus->busnum, usb_dev->devnum)) + return -ENOMEM; +#endif + + if (add_uevent_var(envp, num_envp, &i, + buffer, buffer_size, &length, + "PRODUCT=%x/%x/%x", + le16_to_cpu(usb_dev->descriptor.idVendor), + le16_to_cpu(usb_dev->descriptor.idProduct), + le16_to_cpu(usb_dev->descriptor.bcdDevice))) + return -ENOMEM; + + if (add_uevent_var(envp, num_envp, &i, + buffer, buffer_size, &length, + "TYPE=%d/%d/%d", + usb_dev->descriptor.bDeviceClass, + usb_dev->descriptor.bDeviceSubClass, + usb_dev->descriptor.bDeviceProtocol)) + return -ENOMEM; + if (add_uevent_var(envp, num_envp, &i, buffer, buffer_size, &length, "INTERFACE=%d/%d/%d", diff --git a/fs/exec.c b/fs/exec.c index 9a93770..3da429d 100644 --- a/fs/exec.c +++ b/fs/exec.c @@ -586,18 +586,12 @@ static int de_thread(struct task_struct *tsk) int count; /* - * Tell all the sighand listeners that this sighand has - * been detached. The signalfd_detach() function grabs the - * sighand lock, if signal listeners are present on the sighand. - */ - signalfd_detach(tsk); - - /* * If we don't share sighandlers, then we aren't sharing anything * and we can just re-use it all. */ if (atomic_read(&oldsighand->count) <= 1) { BUG_ON(atomic_read(&sig->count) != 1); + signalfd_detach(tsk); exit_itimers(sig); return 0; } @@ -736,6 +730,7 @@ static int de_thread(struct task_struct *tsk) sig->flags = 0; no_thread_group: + signalfd_detach(tsk); exit_itimers(sig); if (leader) release_task(leader); diff --git a/fs/ocfs2/file.c b/fs/ocfs2/file.c index ac6c964..e0cd750 100644 --- a/fs/ocfs2/file.c +++ b/fs/ocfs2/file.c @@ -1353,7 +1353,7 @@ static struct page * ocfs2_get_write_source(struct ocfs2_buffered_write_priv *bp else src_page = ERR_PTR(-EFAULT); } else { - bp->b_src_buf = buf; + bp->b_src_buf = (char *)((unsigned long)buf & PAGE_CACHE_MASK); } return src_page; diff --git a/fs/signalfd.c b/fs/signalfd.c index 3b07f26..afbe171 100644 --- a/fs/signalfd.c +++ b/fs/signalfd.c @@ -56,12 +56,18 @@ static int signalfd_lock(struct signalfd_ctx *ctx, struct signalfd_lockctx *lk) sighand = lock_task_sighand(lk->tsk, &lk->flags); rcu_read_unlock(); - if (sighand && !ctx->tsk) { + if (!sighand) + return 0; + + if (!ctx->tsk) { unlock_task_sighand(lk->tsk, &lk->flags); - sighand = NULL; + return 0; } - return sighand != NULL; + if (lk->tsk->tgid == current->tgid) + lk->tsk = current; + + return 1; } static void signalfd_unlock(struct signalfd_lockctx *lk) @@ -331,7 +337,7 @@ asmlinkage long sys_signalfd(int ufd, sigset_t __user *user_mask, size_t sizemas init_waitqueue_head(&ctx->wqh); ctx->sigmask = sigmask; - ctx->tsk = current; + ctx->tsk = current->group_leader; sighand = current->sighand; /* diff --git a/include/asm-sparc/sfp-machine.h b/include/asm-sparc/sfp-machine.h index ecfc86a..266a42b 100644 --- a/include/asm-sparc/sfp-machine.h +++ b/include/asm-sparc/sfp-machine.h @@ -203,4 +203,10 @@ extern struct task_struct *last_task_used_math; #define FP_INHIBIT_RESULTS ((last_task_used_math->thread.fsr >> 23) & _fex) #endif +#ifdef CONFIG_SMP +#define FP_TRAPPING_EXCEPTIONS ((current->thread.fsr >> 23) & 0x1f) +#else +#define FP_TRAPPING_EXCEPTIONS ((last_task_used_math->thread.fsr >> 23) & 0x1f) +#endif + #endif diff --git a/include/asm-sparc64/sfp-machine.h b/include/asm-sparc64/sfp-machine.h index 89d4243..c9331b0 100644 --- a/include/asm-sparc64/sfp-machine.h +++ b/include/asm-sparc64/sfp-machine.h @@ -88,4 +88,6 @@ #define FP_INHIBIT_RESULTS ((current_thread_info()->xfsr[0] >> 23) & _fex) +#define FP_TRAPPING_EXCEPTIONS ((current_thread_info()->xfsr[0] >> 23) & 0x1f) + #endif diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index 3a70f55..ab210be 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h @@ -1032,6 +1032,8 @@ extern void dev_seq_stop(struct seq_file *seq, void *v); extern void linkwatch_run_queue(void); +extern int netdev_compute_features(unsigned long all, unsigned long one); + static inline int net_gso_ok(int features, int gso_type) { int feature = gso_type << NETIF_F_GSO_SHIFT; diff --git a/include/linux/netfilter/Kbuild b/include/linux/netfilter/Kbuild index 43397a4..ab57cb7 100644 --- a/include/linux/netfilter/Kbuild +++ b/include/linux/netfilter/Kbuild @@ -28,6 +28,7 @@ header-y += xt_policy.h header-y += xt_realm.h header-y += xt_sctp.h header-y += xt_state.h +header-y += xt_statistic.h header-y += xt_string.h header-y += xt_tcpmss.h header-y += xt_tcpudp.h diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h index 5b1c999..c1ffa1b 100644 --- a/include/linux/pci_ids.h +++ b/include/linux/pci_ids.h @@ -357,6 +357,9 @@ #define PCI_DEVICE_ID_ATI_RS400_166 0x5a32 #define PCI_DEVICE_ID_ATI_RS400_200 0x5a33 #define PCI_DEVICE_ID_ATI_RS480 0x5950 +#define PCI_DEVICE_ID_ATI_RD580 0x5952 +#define PCI_DEVICE_ID_ATI_RX790 0x5957 +#define PCI_DEVICE_ID_ATI_RS690 0x7910 /* ATI IXP Chipset */ #define PCI_DEVICE_ID_ATI_IXP200_IDE 0x4349 #define PCI_DEVICE_ID_ATI_IXP200_SMBUS 0x4353 diff --git a/include/math-emu/op-common.h b/include/math-emu/op-common.h index 93780ab..bb46e76 100644 --- a/include/math-emu/op-common.h +++ b/include/math-emu/op-common.h @@ -145,13 +145,16 @@ do { \ { \ X##_e = 1; \ _FP_FRAC_SET_##wc(X, _FP_ZEROFRAC_##wc); \ + FP_SET_EXCEPTION(FP_EX_INEXACT); \ } \ else \ { \ X##_e = 0; \ _FP_FRAC_SRL_##wc(X, _FP_WORKBITS); \ - FP_SET_EXCEPTION(FP_EX_UNDERFLOW); \ } \ + if ((FP_CUR_EXCEPTIONS & FP_EX_INEXACT) || \ + (FP_TRAPPING_EXCEPTIONS & FP_EX_UNDERFLOW)) \ + FP_SET_EXCEPTION(FP_EX_UNDERFLOW); \ } \ else \ { \ diff --git a/include/math-emu/soft-fp.h b/include/math-emu/soft-fp.h index d02eb64..a6f873b 100644 --- a/include/math-emu/soft-fp.h +++ b/include/math-emu/soft-fp.h @@ -97,12 +97,19 @@ #define FP_INHIBIT_RESULTS 0 #endif +#ifndef FP_TRAPPING_EXCEPTIONS +#define FP_TRAPPING_EXCEPTIONS 0 +#endif + #define FP_SET_EXCEPTION(ex) \ _fex |= (ex) #define FP_UNSET_EXCEPTION(ex) \ _fex &= ~(ex) +#define FP_CUR_EXCEPTIONS \ + (_fex) + #define FP_CLEAR_EXCEPTIONS \ _fex = 0 diff --git a/include/net/tcp.h b/include/net/tcp.h index a8af9ae..06827e3 100644 --- a/include/net/tcp.h +++ b/include/net/tcp.h @@ -281,7 +281,7 @@ extern int tcp_v4_remember_stamp(struct sock *sk); extern int tcp_v4_tw_remember_stamp(struct inet_timewait_sock *tw); -extern int tcp_sendmsg(struct kiocb *iocb, struct sock *sk, +extern int tcp_sendmsg(struct kiocb *iocb, struct socket *sock, struct msghdr *msg, size_t size); extern ssize_t tcp_sendpage(struct socket *sock, struct page *page, int offset, size_t size, int flags); diff --git a/kernel/signal.c b/kernel/signal.c index f940560..d625195 100644 --- a/kernel/signal.c +++ b/kernel/signal.c @@ -368,7 +368,7 @@ int dequeue_signal(struct task_struct *tsk, sigset_t *mask, siginfo_t *info) /* We only dequeue private signals from ourselves, we don't let * signalfd steal them */ - if (tsk == current) + if (likely(tsk == current)) signr = __dequeue_signal(&tsk->pending, mask, info); if (!signr) { signr = __dequeue_signal(&tsk->signal->shared_pending, @@ -415,7 +415,7 @@ int dequeue_signal(struct task_struct *tsk, sigset_t *mask, siginfo_t *info) if (!(tsk->signal->flags & SIGNAL_GROUP_EXIT)) tsk->signal->flags |= SIGNAL_STOP_DEQUEUED; } - if ( signr && + if (signr && likely(tsk == current) && ((info->si_code & __SI_MASK) == __SI_TIMER) && info->si_sys_private){ /* diff --git a/net/802/psnap.c b/net/802/psnap.c index 04ee43e..31128cb 100644 --- a/net/802/psnap.c +++ b/net/802/psnap.c @@ -55,6 +55,9 @@ static int snap_rcv(struct sk_buff *skb, struct net_device *dev, .type = __constant_htons(ETH_P_SNAP), }; + if (unlikely(!pskb_may_pull(skb, 5))) + goto drop; + rcu_read_lock(); proto = find_snap_client(skb_transport_header(skb)); if (proto) { @@ -62,14 +65,18 @@ static int snap_rcv(struct sk_buff *skb, struct net_device *dev, skb->transport_header += 5; skb_pull_rcsum(skb, 5); rc = proto->rcvfunc(skb, dev, &snap_packet_type, orig_dev); - } else { - skb->sk = NULL; - kfree_skb(skb); - rc = 1; } - rcu_read_unlock(); + + if (unlikely(!proto)) + goto drop; + +out: return rc; + +drop: + kfree_skb(skb); + goto out; } /* diff --git a/net/bridge/br_device.c b/net/bridge/br_device.c index 5e1892d..c326602 100644 --- a/net/bridge/br_device.c +++ b/net/bridge/br_device.c @@ -179,5 +179,6 @@ void br_dev_setup(struct net_device *dev) dev->priv_flags = IFF_EBRIDGE; dev->features = NETIF_F_SG | NETIF_F_FRAGLIST | NETIF_F_HIGHDMA | - NETIF_F_TSO | NETIF_F_NO_CSUM | NETIF_F_GSO_ROBUST; + NETIF_F_GSO_SOFTWARE | NETIF_F_NO_CSUM | + NETIF_F_GSO_ROBUST | NETIF_F_LLTX; } diff --git a/net/bridge/br_if.c b/net/bridge/br_if.c index 849deaf..fefd7c1 100644 --- a/net/bridge/br_if.c +++ b/net/bridge/br_if.c @@ -360,35 +360,15 @@ int br_min_mtu(const struct net_bridge *br) void br_features_recompute(struct net_bridge *br) { struct net_bridge_port *p; - unsigned long features, checksum; + unsigned long features; - checksum = br->feature_mask & NETIF_F_ALL_CSUM ? NETIF_F_NO_CSUM : 0; - features = br->feature_mask & ~NETIF_F_ALL_CSUM; + features = br->feature_mask; list_for_each_entry(p, &br->port_list, list) { - unsigned long feature = p->dev->features; - - if (checksum & NETIF_F_NO_CSUM && !(feature & NETIF_F_NO_CSUM)) - checksum ^= NETIF_F_NO_CSUM | NETIF_F_HW_CSUM; - if (checksum & NETIF_F_HW_CSUM && !(feature & NETIF_F_HW_CSUM)) - checksum ^= NETIF_F_HW_CSUM | NETIF_F_IP_CSUM; - if (!(feature & NETIF_F_IP_CSUM)) - checksum = 0; - - if (feature & NETIF_F_GSO) - feature |= NETIF_F_GSO_SOFTWARE; - feature |= NETIF_F_GSO; - - features &= feature; + features = netdev_compute_features(features, p->dev->features); } - if (!(checksum & NETIF_F_ALL_CSUM)) - features &= ~NETIF_F_SG; - if (!(features & NETIF_F_SG)) - features &= ~NETIF_F_GSO_MASK; - - br->dev->features = features | checksum | NETIF_F_LLTX | - NETIF_F_GSO_ROBUST; + br->dev->features = features; } /* called with RTNL */ diff --git a/net/core/dev.c b/net/core/dev.c index ee051bb..1561f61 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -3635,6 +3635,44 @@ static int __init netdev_dma_register(void) static int __init netdev_dma_register(void) { return -ENODEV; } #endif /* CONFIG_NET_DMA */ +/** + * netdev_compute_feature - compute conjunction of two feature sets + * @all: first feature set + * @one: second feature set + * + * Computes a new feature set after adding a device with feature set + * @one to the master device with current feature set @all. Returns + * the new feature set. + */ +int netdev_compute_features(unsigned long all, unsigned long one) +{ + /* if device needs checksumming, downgrade to hw checksumming */ + if (all & NETIF_F_NO_CSUM && !(one & NETIF_F_NO_CSUM)) + all ^= NETIF_F_NO_CSUM | NETIF_F_HW_CSUM; + + /* if device can't do all checksum, downgrade to ipv4 */ + if (all & NETIF_F_HW_CSUM && !(one & NETIF_F_HW_CSUM)) + all ^= NETIF_F_HW_CSUM | NETIF_F_IP_CSUM; + + if (one & NETIF_F_GSO) + one |= NETIF_F_GSO_SOFTWARE; + one |= NETIF_F_GSO; + + /* If even one device supports robust GSO, enable it for all. */ + if (one & NETIF_F_GSO_ROBUST) + all |= NETIF_F_GSO_ROBUST; + + all &= one | NETIF_F_LLTX; + + if (!(all & NETIF_F_ALL_CSUM)) + all &= ~NETIF_F_SG; + if (!(all & NETIF_F_SG)) + all &= ~NETIF_F_GSO_MASK; + + return all; +} +EXPORT_SYMBOL(netdev_compute_features); + /* * Initialize the DEV module. At boot time this walks the device list and * unhooks any devices that fail to initialise (normally hardware not diff --git a/net/dccp/ccids/ccid2.c b/net/dccp/ccids/ccid2.c index 248d20f..d29b88f 100644 --- a/net/dccp/ccids/ccid2.c +++ b/net/dccp/ccids/ccid2.c @@ -298,7 +298,7 @@ static void ccid2_hc_tx_packet_sent(struct sock *sk, int more, unsigned int len) int rc; ccid2_pr_debug("allocating more space in history\n"); - rc = ccid2_hc_tx_alloc_seq(hctx, CCID2_SEQBUF_LEN, GFP_KERNEL); + rc = ccid2_hc_tx_alloc_seq(hctx, CCID2_SEQBUF_LEN, gfp_any()); BUG_ON(rc); /* XXX what do we do? */ next = hctx->ccid2hctx_seqh->ccid2s_next; diff --git a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c index 041fba3..90b241c 100644 --- a/net/ipv4/af_inet.c +++ b/net/ipv4/af_inet.c @@ -831,7 +831,7 @@ const struct proto_ops inet_stream_ops = { .shutdown = inet_shutdown, .setsockopt = sock_common_setsockopt, .getsockopt = sock_common_getsockopt, - .sendmsg = inet_sendmsg, + .sendmsg = tcp_sendmsg, .recvmsg = sock_common_recvmsg, .mmap = sock_no_mmap, .sendpage = tcp_sendpage, diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c index 450f44b..11ff182 100644 --- a/net/ipv4/tcp.c +++ b/net/ipv4/tcp.c @@ -658,9 +658,10 @@ static inline int select_size(struct sock *sk) return tmp; } -int tcp_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg, +int tcp_sendmsg(struct kiocb *iocb, struct socket *sock, struct msghdr *msg, size_t size) { + struct sock *sk = sock->sk; struct iovec *iov; struct tcp_sock *tp = tcp_sk(sk); struct sk_buff *skb; diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c index 4e5884a..13abf4e 100644 --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c @@ -1851,19 +1851,22 @@ static inline u32 tcp_cwnd_min(const struct sock *sk) } /* Decrease cwnd each second ack. */ -static void tcp_cwnd_down(struct sock *sk) +static void tcp_cwnd_down(struct sock *sk, int flag) { struct tcp_sock *tp = tcp_sk(sk); int decr = tp->snd_cwnd_cnt + 1; - tp->snd_cwnd_cnt = decr&1; - decr >>= 1; + if ((flag&FLAG_FORWARD_PROGRESS) || + (IsReno(tp) && !(flag&FLAG_NOT_DUP))) { + tp->snd_cwnd_cnt = decr&1; + decr >>= 1; - if (decr && tp->snd_cwnd > tcp_cwnd_min(sk)) - tp->snd_cwnd -= decr; + if (decr && tp->snd_cwnd > tcp_cwnd_min(sk)) + tp->snd_cwnd -= decr; - tp->snd_cwnd = min(tp->snd_cwnd, tcp_packets_in_flight(tp)+1); - tp->snd_cwnd_stamp = tcp_time_stamp; + tp->snd_cwnd = min(tp->snd_cwnd, tcp_packets_in_flight(tp)+1); + tp->snd_cwnd_stamp = tcp_time_stamp; + } } /* Nothing was retransmitted or returned timestamp is less @@ -2060,7 +2063,7 @@ static void tcp_try_to_open(struct sock *sk, int flag) } tcp_moderate_cwnd(tp); } else { - tcp_cwnd_down(sk); + tcp_cwnd_down(sk, flag); } } @@ -2109,7 +2112,10 @@ tcp_fastretrans_alert(struct sock *sk, u32 prior_snd_una, { struct inet_connection_sock *icsk = inet_csk(sk); struct tcp_sock *tp = tcp_sk(sk); - int is_dupack = (tp->snd_una == prior_snd_una && !(flag&FLAG_NOT_DUP)); + int is_dupack = (tp->snd_una == prior_snd_una && + (!(flag&FLAG_NOT_DUP) || + ((flag&FLAG_DATA_SACKED) && + (tp->fackets_out > tp->reordering)))); /* Some technical things: * 1. Reno does not count dupacks (sacked_out) automatically. */ @@ -2260,7 +2266,7 @@ tcp_fastretrans_alert(struct sock *sk, u32 prior_snd_una, if (is_dupack || tcp_head_timedout(sk)) tcp_update_scoreboard(sk); - tcp_cwnd_down(sk); + tcp_cwnd_down(sk, flag); tcp_xmit_retransmit_queue(sk); } diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c index 354721d..fa36e1a 100644 --- a/net/ipv4/tcp_ipv4.c +++ b/net/ipv4/tcp_ipv4.c @@ -2434,7 +2434,6 @@ struct proto tcp_prot = { .shutdown = tcp_shutdown, .setsockopt = tcp_setsockopt, .getsockopt = tcp_getsockopt, - .sendmsg = tcp_sendmsg, .recvmsg = tcp_recvmsg, .backlog_rcv = tcp_v4_do_rcv, .hash = tcp_v4_hash, diff --git a/net/ipv6/af_inet6.c b/net/ipv6/af_inet6.c index 6dd3772..b1a7755 100644 --- a/net/ipv6/af_inet6.c +++ b/net/ipv6/af_inet6.c @@ -487,7 +487,7 @@ const struct proto_ops inet6_stream_ops = { .shutdown = inet_shutdown, /* ok */ .setsockopt = sock_common_setsockopt, /* ok */ .getsockopt = sock_common_getsockopt, /* ok */ - .sendmsg = inet_sendmsg, /* ok */ + .sendmsg = tcp_sendmsg, /* ok */ .recvmsg = sock_common_recvmsg, /* ok */ .mmap = sock_no_mmap, .sendpage = tcp_sendpage, diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c index 4704b5f..b9f9e93 100644 --- a/net/ipv6/ip6_output.c +++ b/net/ipv6/ip6_output.c @@ -790,7 +790,7 @@ slow_path: /* * Copy a block of the IP datagram. */ - if (skb_copy_bits(skb, ptr, skb_transport_header(skb), len)) + if (skb_copy_bits(skb, ptr, skb_transport_header(frag), len)) BUG(); left -= len; diff --git a/net/ipv6/ipv6_sockglue.c b/net/ipv6/ipv6_sockglue.c index aa3d07c..f329029 100644 --- a/net/ipv6/ipv6_sockglue.c +++ b/net/ipv6/ipv6_sockglue.c @@ -825,7 +825,7 @@ static int ipv6_getsockopt_sticky(struct sock *sk, struct ipv6_txoptions *opt, return 0; len = min_t(unsigned int, len, ipv6_optlen(hdr)); - if (copy_to_user(optval, hdr, len)); + if (copy_to_user(optval, hdr, len)) return -EFAULT; return ipv6_optlen(hdr); } diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c index 17bbdc3..9b81cbc 100644 --- a/net/ipv6/tcp_ipv6.c +++ b/net/ipv6/tcp_ipv6.c @@ -2135,7 +2135,6 @@ struct proto tcpv6_prot = { .shutdown = tcp_shutdown, .setsockopt = tcp_setsockopt, .getsockopt = tcp_getsockopt, - .sendmsg = tcp_sendmsg, .recvmsg = tcp_recvmsg, .backlog_rcv = tcp_v6_do_rcv, .hash = tcp_v6_hash, diff --git a/net/socket.c b/net/socket.c index f453019..0010da0 100644 --- a/net/socket.c +++ b/net/socket.c @@ -1169,7 +1169,7 @@ static int __sock_create(int family, int type, int protocol, module_put(pf->owner); err = security_socket_post_create(sock, family, type, protocol, kern); if (err) - goto out_release; + goto out_sock_release; *res = sock; return 0; Index: kernel-2.6.spec =================================================================== RCS file: /cvs/dist/rpms/kernel/FC-6/kernel-2.6.spec,v retrieving revision 1.3016 retrieving revision 1.3017 diff -u -r1.3016 -r1.3017 --- kernel-2.6.spec 29 Aug 2007 22:32:33 -0000 1.3016 +++ kernel-2.6.spec 30 Aug 2007 17:19:56 -0000 1.3017 @@ -496,6 +496,9 @@ %endif +# stable -rc +Patch02: patch-2.6.22.6-rc1.patch + %if !%{nopatches} Patch10: linux-2.6-utrace-tracehook.patch @@ -517,7 +520,7 @@ Patch26: linux-2.6-utrace-ptrace-compat-avr32.patch Patch30: linux-2.6-sysrq-c.patch -Patch35: linux-2.6-irq-dont-mask-interrupts-_reversed_.patch +Patch35: linux-2.6-genirq-fixes.patch Patch40: linux-2.6-x86-tune-generic.patch Patch50: linux-2.6-x86-vga-vidfail.patch Patch52: linux-2.6-amd-fix-broken-lapic-timer-detect.patch @@ -553,11 +556,11 @@ Patch390: linux-2.6-dev-get-driver-properly.patch Patch400: linux-2.6-scsi-cpqarray-set-master.patch Patch401: linux-2.6-aacraid-ioctl-security.patch +Patch403: linux-2.6-scsi-3w_9xxx-fix-dma-mask.patch Patch420: linux-2.6-squashfs.patch Patch422: linux-2.6-gfs2-update.patch Patch423: linux-2.6-gfs-locking-exports.patch Patch430: linux-2.6-net-silence-noisy-printks.patch -Patch434: linux-2.6-add_xt_statistic.h_to_hdrs.patch Patch440: linux-2.6-sha_alignment.patch Patch450: linux-2.6-input-kill-stupid-messages.patch @@ -592,18 +595,23 @@ Patch680: git-wireless-dev.patch Patch690: linux-2.6-e1000-ich9.patch Patch710: linux-2.6-bcm43xx-pci-neuter.patch -Patch712: linux-2.6-net-sky2-dont-clear-phy-power-bits.patch Patch713: linux-2.6-net-atl1-fix-typo-in-dma-setup.patch Patch714: linux-2.6-net-atl1-fix-typo-in-dma_req_block.patch -Patch715: linux-2.6-netdev-forcedeth-realtek-oui.patch +Patch715: linux-2.6-netdev-atl1-disable-broken-64-bit-dma.patch +Patch718: linux-2.6-netdev-forcedeth-realtek-oui.patch + +Patch730: linux-2.6-snd-ad1988-fix-spdif-output.patch +Patch731: linux-2.6-snd-hda-stac92xx-fixes.patch Patch740: linux-2.6-sdhci-ene-controller-quirk.patch Patch741: linux-2.6-sdhci-fix-interrupt-mask.patch Patch742: linux-2.6-sdhci-clear-error-interrupt.patch +Patch760: linux-2.6-v4l-dvb-fix-airstar-hd5000-tuner.patch +Patch770: linux-2.6-irda-smc-remove-quirk.patch #Patch780: linux-2.6-clockevents-fix-resume-logic.patch Patch800: linux-2.6-wakeups-hdaps.patch Patch801: linux-2.6-wakeups.patch -Patch900: linux-2.6-sched-cfs-v2.6.22.5-v20.2.patch +Patch900: linux-2.6-sched-cfs-v2.6.22.5-v20.5.patch Patch901: linux-2.6-timekeeping-fixes.patch Patch1000: linux-2.6-dmi-based-module-autoloading.patch Patch1030: linux-2.6-nfs-nosharecache.patch @@ -1047,10 +1055,13 @@ # builds (as used in the buildsystem). ApplyPatch linux-2.6-build-nonintconfig.patch +# stable -rc +ApplyPatch patch-2.6.22.6-rc1.patch + %if !%{nopatches} # Ingo's new scheduler. -ApplyPatch linux-2.6-sched-cfs-v2.6.22.5-v20.2.patch +ApplyPatch linux-2.6-sched-cfs-v2.6.22.5-v20.5.patch # timekeeping fixes that were in the Fedora CFS patch ApplyPatch linux-2.6-timekeeping-fixes.patch @@ -1079,8 +1090,8 @@ # enable sysrq-c on all kernels, not only kexec ApplyPatch linux-2.6-sysrq-c.patch -# revert "genirq: do not mask interrupts by default" -ApplyPatch linux-2.6-irq-dont-mask-interrupts-_reversed_.patch -R +# genirq fixes from 2.6.23 +ApplyPatch linux-2.6-genirq-fixes.patch # Architecture patches # x86(-64) @@ -1176,6 +1187,8 @@ ApplyPatch linux-2.6-scsi-cpqarray-set-master.patch # aacraid: ioctl handler needs permission check ApplyPatch linux-2.6-aacraid-ioctl-security.patch +# fix 3ware 9000 DMA fallback +ApplyPatch linux-2.6-scsi-3w_9xxx-fix-dma-mask.patch # Filesystem patches. # Squashfs @@ -1188,8 +1201,6 @@ # Networking # Disable easy to trigger printk's. ApplyPatch linux-2.6-net-silence-noisy-printks.patch -# add header needed to build new iptables -ApplyPatch linux-2.6-add_xt_statistic.h_to_hdrs.patch # Misc fixes # Fix SHA1 alignment problem on ia64 @@ -1259,15 +1270,21 @@ ApplyPatch linux-2.6-e1000-ich9.patch # avoid bcm3xx vs bcm43xx-mac80211 PCI ID conflicts ApplyPatch linux-2.6-bcm43xx-pci-neuter.patch -# sky2: don't clear PHY power bits -ApplyPatch linux-2.6-net-sky2-dont-clear-phy-power-bits.patch # atl1 DMA bugs ApplyPatch linux-2.6-net-atl1-fix-typo-in-dma-setup.patch ApplyPatch linux-2.6-net-atl1-fix-typo-in-dma_req_block.patch +ApplyPatch linux-2.6-netdev-atl1-disable-broken-64-bit-dma.patch # forcedeth has the wrong OUI for realtek PHYs ApplyPatch linux-2.6-netdev-forcedeth-realtek-oui.patch -# sdhci +# ALSA +# +# fix spdif output on ad1988 +ApplyPatch linux-2.6-snd-ad1988-fix-spdif-output.patch +# multiple stac92xx codec fixes +ApplyPatch linux-2.6-snd-hda-stac92xx-fixes.patch + +# misc drivers # # fix weird ENE controller ApplyPatch linux-2.6-sdhci-ene-controller-quirk.patch @@ -1275,6 +1292,10 @@ ApplyPatch linux-2.6-sdhci-fix-interrupt-mask.patch # fix the interrupt mask fix ApplyPatch linux-2.6-sdhci-clear-error-interrupt.patch +# v4l/dvb: fix airstar hd5000 tuner +ApplyPatch linux-2.6-v4l-dvb-fix-airstar-hd5000-tuner.patch +# irda: remove smc quirk that breaks hp 6000 notebooks +ApplyPatch linux-2.6-irda-smc-remove-quirk.patch # USB # @@ -2219,6 +2240,17 @@ %changelog * Tue Aug 28 2007 Chuck Ebbert +- CFS scheduler v20.5 (plus one bugfix) +- Linux 2.6.22.6-rc1 +- netdev atl1: disable 64-bit DMA +- new IRQ handling fixes from upstream +- remove quirk for SMC IRDA, fixes HP DV6000 +- 3ware 9000 series: fix DMA fallback +- ALSA: multiple STAC codec fixes for hda driver +- ALSA: fix SPDIF output for AD1988 codec +- V4L/DVB: fix airstar hd5000 tuner + +* Tue Aug 28 2007 Chuck Ebbert - Support the i82365 PCMCIA driver (#251567) * Thu Aug 23 2007 Chuck Ebbert --- linux-2.6-add_xt_statistic.h_to_hdrs.patch DELETED --- --- linux-2.6-irq-dont-mask-interrupts-_reversed_.patch DELETED --- --- linux-2.6-net-sky2-dont-clear-phy-power-bits.patch DELETED --- --- linux-2.6-sched-cfs-v2.6.22.5-v20.2.patch DELETED --- From fedora-cvs-commits at redhat.com Fri Aug 31 12:52:05 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Fri, 31 Aug 2007 08:52:05 -0400 Subject: rpms/amanda/FC-6 amanda-2.5.0p2-chg_scsi_buf_overflow.patch, NONE, 1.1 amanda-2.5.0p2-dump_size.patch, 1.1, 1.2 amanda.spec, 1.35, 1.36 Message-ID: <200708311252.l7VCq586014734@cvs.devel.redhat.com> Author: rbrich Update of /cvs/dist/rpms/amanda/FC-6 In directory cvs.devel.redhat.com:/tmp/cvs-serv14712 Modified Files: amanda-2.5.0p2-dump_size.patch amanda.spec Added Files: amanda-2.5.0p2-chg_scsi_buf_overflow.patch Log Message: #161172 amanda-2.5.0p2-chg_scsi_buf_overflow.patch: scsi-changer-driver.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) --- NEW FILE amanda-2.5.0p2-chg_scsi_buf_overflow.patch --- Fixes: bz#161172 Written-by: upstream, backported from 2.5.1p3 --- amanda-2.5.0p2/changer-src/scsi-changer-driver.c.chg_scsi_buf_overflow 2006-03-28 23:09:47.000000000 +0200 +++ amanda-2.5.0p2/changer-src/scsi-changer-driver.c 2007-07-12 11:13:11.000000000 +0200 @@ -1312,7 +1312,7 @@ int get_drive_count(int fd) int OpenDevice(int ip , char *DeviceName, char *ConfigName, char *ident) { extern OpenFiles_T *pDev; - char tmpstr[15]; + char tmpstr[16]; ChangerCMD_T *p = (ChangerCMD_T *)&ChangerIO; DebugPrint(DEBUG_INFO, SECTION_SCSI,"##### START OpenDevice\n"); @@ -1355,7 +1355,7 @@ int OpenDevice(int ip , char *DeviceName /* divide generic in generic_type, where type is the */ /* num returned by the inquiry command */ p = (ChangerCMD_T *)&ChangerIO; - sprintf(&tmpstr[0],"%s_%s","generic",pDev[0].type); + snprintf(&tmpstr[0], sizeof(tmpstr), "%s_%s","generic",pDev[0].type); while(p->ident != NULL) { if (strcmp(tmpstr, p->ident) == 0) amanda-2.5.0p2-dump_size.patch: sendbackup-dump.c | 4 ++++ 1 files changed, 4 insertions(+) Index: amanda-2.5.0p2-dump_size.patch =================================================================== RCS file: /cvs/dist/rpms/amanda/FC-6/amanda-2.5.0p2-dump_size.patch,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- amanda-2.5.0p2-dump_size.patch 2 Oct 2006 19:53:25 -0000 1.1 +++ amanda-2.5.0p2-dump_size.patch 31 Aug 2007 12:52:03 -0000 1.2 @@ -6,7 +6,7 @@ 512), + + /* DUMP: 19040 blocks (18.59MB) */ -+ AM_SIZE_RE("DUMP: [0-9][0-9]* blocks \\([0-9][0-9]*.[0-9][0-9]*MB\\)", 1024), ++ AM_SIZE_RE("DUMP: [0-9][0-9]* blocks \\([0-9][0-9]*\\.[0-9][0-9]*MB\\)", 1024), + AM_SIZE_RE("DUMP: [0-9][0-9]* blocks", 512), AM_SIZE_RE("DUMP: [0-9][0-9]* bytes were dumped", 1), Index: amanda.spec =================================================================== RCS file: /cvs/dist/rpms/amanda/FC-6/amanda.spec,v retrieving revision 1.35 retrieving revision 1.36 diff -u -r1.35 -r1.36 --- amanda.spec 2 Oct 2006 19:53:42 -0000 1.35 +++ amanda.spec 31 Aug 2007 12:52:03 -0000 1.36 @@ -11,7 +11,7 @@ Summary: A network-capable tape backup solution. Name: amanda Version: 2.5.0p2 -Release: 4 +Release: 5 #Source: http://download.sourceforge.net/amanda/amanda-%{version}.tar.gz # This is the upstream tarball with the problematic contrib/sst directory # removed. @@ -31,6 +31,7 @@ Patch6: amanda-2.5.0p2-dump_size.patch Patch7: amanda-2.5.0p2-new_gnutar.patch Patch8: amanda-2.5.0p2-wildcards.patch +Patch9: amanda-2.5.0p2-chg_scsi_buf_overflow.patch License: BSD Group: Applications/System URL: http://www.amanda.org @@ -99,6 +100,7 @@ %patch6 -p1 -b .dump_size %patch7 -p1 -b .new_gnutar %patch8 -p1 -b .wildcards +%patch9 -p1 -b .chg_scsi_buf_overflow libtoolize --copy --force aclocal @@ -349,6 +351,10 @@ %{_libdir}/librestore.so %changelog +* Fri Aug 31 2007 Radek Brich 2.5.0p2-5 +- fix #161172 (chg-scsi causes buffer overflow) +- fix RE in dump_size patch (a dot not escaped) + * Mon Sep 25 2006 Jay Fenlason 2.5.0p2-4 - Include my -dump_size patch to close bz#206129: Dump output size determined incorrectly From fedora-cvs-commits at redhat.com Fri Aug 31 18:46:52 2007 From: fedora-cvs-commits at redhat.com (fedora-cvs-commits at redhat.com) Date: Fri, 31 Aug 2007 14:46:52 -0400 Subject: rpms/device-mapper-multipath/devel device-mapper-multipath.spec, 1.40, 1.41 Message-ID: <200708311846.l7VIkqM7023511@cvs.devel.redhat.com> Author: bmarzins Update of /cvs/dist/rpms/device-mapper-multipath/devel In directory cvs.devel.redhat.com:/tmp/cvs-serv23494 Modified Files: device-mapper-multipath.spec Log Message: Removed hardcoded release tag Resolves: bz 246453 Index: device-mapper-multipath.spec =================================================================== RCS file: /cvs/dist/rpms/device-mapper-multipath/devel/device-mapper-multipath.spec,v retrieving revision 1.40 retrieving revision 1.41 diff -u -r1.40 -r1.41 --- device-mapper-multipath.spec 5 Feb 2007 20:47:32 -0000 1.40 +++ device-mapper-multipath.spec 31 Aug 2007 18:46:48 -0000 1.41 @@ -1,7 +1,7 @@ Summary: Tools to manage multipath devices using device-mapper Name: device-mapper-multipath Version: 0.4.7 -Release: 11.fc7 +Release: 12%{?dist} License: GPL Group: System Environment/Base URL: http://christophe.varoqui.free.fr/ @@ -79,6 +79,10 @@ %{_mandir}/man8/kpartx.8.gz %changelog +* Fri Aug 31 2007 Benjamin Marzinski - 0.4.7-12 +- change spec file to remove hardcoded release tag. +- Resolves: bz #246253 + * Mon Feb 05 2007 Alasdair Kergon - 0.4.7-11.fc7 - Add build dependency on new device-mapper-devel package. - Add dependency on device-mapper.