diff --git a/lbzip2-compression-block-order.patch b/lbzip2-compression-block-order.patch deleted file mode 100644 index 77f011b..0000000 --- a/lbzip2-compression-block-order.patch +++ /dev/null @@ -1,132 +0,0 @@ -diff --git a/src/compress.c b/src/compress.c -index 49175cf..e081b0b 100644 ---- a/src/compress.c -+++ b/src/compress.c -@@ -43,6 +43,7 @@ struct in_blk { - - struct work_blk { - struct position pos; -+ struct position next; - - struct encoder_state *enc; - void *buffer; -@@ -55,7 +56,7 @@ struct work_blk { - static struct pqueue(struct in_blk *) coll_q; - static struct pqueue(struct work_blk *) trans_q; - static struct pqueue(struct work_blk *) reord_q; --static struct deque(struct work_blk *) order_q; -+static struct position order; - static uintmax_t next_id; /* next free input block sequence number */ - static uint32_t combined_crc; - static bool collect_token = true; -@@ -82,6 +83,7 @@ do_collect(void) - wblk = XMALLOC(struct work_blk); - - wblk->pos = iblk->pos; -+ wblk->next = iblk->pos; - - /* Allocate an encoder with given block size and default parameters. */ - wblk->enc = encoder_init(bs100k * 100000u, CLUSTER_FACTOR); -@@ -93,12 +95,15 @@ do_collect(void) - iblk->next += wblk->weight; - - if (0u < iblk->left) { -+ ++wblk->next.minor; - ++iblk->pos.minor; - sched_lock(); - enqueue(coll_q, iblk); - sched_unlock(); - } - else { -+ ++wblk->next.major; -+ wblk->next.minor = 0; - source_release_buffer(iblk->buffer); - free(iblk); - } -@@ -108,7 +113,6 @@ do_collect(void) - - sched_lock(); - enqueue(trans_q, wblk); -- push(order_q, wblk); - } - - -@@ -142,6 +146,7 @@ do_collect_seq(void) - if (wblk == NULL) { - wblk = XMALLOC(struct work_blk); - wblk->pos = iblk->pos; -+ wblk->next = iblk->pos; - wblk->enc = encoder_init(bs100k * 100000u, CLUSTER_FACTOR); - wblk->weight = 0; - } -@@ -155,12 +160,15 @@ do_collect_seq(void) - iblk->next += wblk->size; - - if (0u < iblk->left) { -+ ++wblk->next.minor; - ++iblk->pos.minor; - sched_lock(); - enqueue(coll_q, iblk); - sched_unlock(); - } - else { -+ ++wblk->next.major; -+ wblk->next.minor = 0; - source_release_buffer(iblk->buffer); - free(iblk); - } -@@ -179,7 +187,6 @@ do_collect_seq(void) - sched_lock(); - collect_token = true; - enqueue(trans_q, wblk); -- push(order_q, wblk); - } - - -@@ -187,7 +194,7 @@ static bool - can_transmit(void) - { - return !empty(trans_q) && (out_slots > TRANSM_THRESH || -- (out_slots > 0 && peek(trans_q) == dq_get(order_q, 0))); -+ (out_slots > 0 && pos_eq(peek(trans_q)->pos, order))); - } - - -@@ -214,7 +221,7 @@ do_transmit(void) - static bool - can_reorder(void) - { -- return !empty(reord_q) && peek(reord_q) == dq_get(order_q, 0); -+ return !empty(reord_q) && pos_eq(peek(reord_q)->pos, order); - } - - -@@ -224,7 +231,7 @@ do_reorder(void) - struct work_blk *wblk; - - wblk = dequeue(reord_q); -- (void)shift(order_q); -+ order = wblk->next; - - sink_write_buffer(wblk->buffer, wblk->size, wblk->weight); - combined_crc = combine_crc(combined_crc, wblk->crc); -@@ -310,9 +317,10 @@ init(void) - pqueue_init(coll_q, in_slots); - pqueue_init(trans_q, work_units); - pqueue_init(reord_q, out_slots); -- deque_init(order_q, max(work_units, out_slots)); - - next_id = 0; -+ order.major = 0; -+ order.minor = 0; - - assert(1 <= bs100k && bs100k <= 9); - combined_crc = 0; -@@ -329,7 +337,6 @@ uninit(void) - pqueue_uninit(coll_q); - pqueue_uninit(trans_q); - pqueue_uninit(reord_q); -- deque_uninit(order_q); - } - - diff --git a/lbzip2-performance-regression.patch b/lbzip2-performance-regression.patch deleted file mode 100644 index 0a835bf..0000000 --- a/lbzip2-performance-regression.patch +++ /dev/null @@ -1,20 +0,0 @@ -diff --git a/src/compress.c b/src/compress.c -index dda617f..af9cb5b 100644 ---- a/src/compress.c -+++ b/src/compress.c -@@ -181,11 +181,14 @@ do_collect_seq(void) - return; - } - -+ sched_lock(); -+ collect_token = true; -+ sched_unlock(); -+ - /* Do the hard work. */ - wblk->size = encode(wblk->enc, &wblk->crc); - - sched_lock(); -- collect_token = true; - enqueue(trans_q, wblk); - } - diff --git a/lbzip2.spec b/lbzip2.spec index 5f3ef31..020c485 100644 --- a/lbzip2.spec +++ b/lbzip2.spec @@ -1,13 +1,11 @@ Name: lbzip2 -Version: 2.4 -Release: 4%{?dist} +Version: 2.5 +Release: 1%{?dist} Summary: Fast, multi-threaded bzip2 utility Group: Applications/File License: GPLv3+ URL: http://lbzip2.org/ Source0: http://archive.lbzip2.org/%{name}-%{version}.tar.bz2 -Patch0: %{name}-compression-block-order.patch -Patch1: %{name}-performance-regression.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -19,8 +17,6 @@ decompressor. %prep %setup -q -%patch0 -p1 -%patch1 -p1 %build @@ -53,6 +49,9 @@ rm -rf %{buildroot} %changelog +* Thu Mar 27 2014 Mikolaj Izdebski - 2.5-1 +- Update to upstream version 2.5 + * Wed Mar 26 2014 Mikolaj Izdebski - 2.4-4 - Add patch for performance regression during compression diff --git a/sources b/sources index a70fd45..9b99001 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -5d0a147fa58625546b4a5a33ea44c8a6 lbzip2-2.4.tar.bz2 +91d2d25798229cb34c1258ecee503fd4 lbzip2-2.5.tar.bz2