]> git.wh0rd.org Git - patches.git/blob - portage-ecompress.patch
more random patches. who knows.
[patches.git] / portage-ecompress.patch
1 Index: dodoc
2 ===================================================================
3 --- dodoc       (revision 5536)
4 +++ dodoc       (working copy)
5 @@ -1,9 +1,10 @@
6  #!/bin/bash
7 -# Copyright 1999-2006 Gentoo Foundation
8 +# Copyright 1999-2007 Gentoo Foundation
9  # Distributed under the terms of the GNU General Public License v2
10 +# $Id$
11  
12  if [ $# -lt 1 ] ; then
13 -       echo "$0: at least one argument needed" 1>&2
14 +       vecho "${0##*/}: at least one argument needed" 1>&2
15         exit 1  
16  fi
17  
18 @@ -16,7 +17,7 @@ ret=0
19  for x in "$@" ; do
20         if [ -s "${x}" ] ; then
21                 install -m0644 "${x}" "${dir}"
22 -               gzip -f -9 "${dir}/${x##*/}"
23 +               ecompress "${dir}/${x##*/}"
24         elif [ ! -e "${x}" ] ; then
25                 echo "dodoc: ${x} does not exist" 1>&2
26                 ((++ret))
27 Index: prepallman
28 ===================================================================
29 --- prepallman  (revision 5536)
30 +++ prepallman  (working copy)
31 @@ -1,5 +1,5 @@
32  #!/bin/bash
33 -# Copyright 1999-2006 Gentoo Foundation
34 +# Copyright 1999-2007 Gentoo Foundation
35  # Distributed under the terms of the GNU General Public License v2
36  # $Id$
37  
38 @@ -7,14 +7,11 @@ source "${PORTAGE_BIN_PATH:-/usr/lib/por
39  
40  ret=0
41  
42 -vecho "man:"
43 -for x in "${D}"opt/*/man "${D}"usr/share/man "${D}"usr/local/man "${D}"usr/X11R6/man ; do
44 -       if [[ -d ${x} ]] ; then
45 -               x=${x#${D}}
46 -               x=${x%/man}
47 -               prepman "${x}"
48 -               ((ret+=$?))
49 -       fi
50 -done
51 +find "${D}" -type d -name man > "${T}"/prepallman.filelist
52 +while read mandir ; do
53 +       mandir=${mandir#${D}}
54 +       prepman "${mandir%/man}"
55 +       ((ret+=$?))
56 +done < "${T}"/prepallman.filelist
57  
58  exit ${ret}
59 Index: prepman
60 ===================================================================
61 --- prepman     (revision 5536)
62 +++ prepman     (working copy)
63 @@ -1,51 +1,33 @@
64  #!/bin/bash
65 -# Copyright 1999-2006 Gentoo Foundation
66 +# Copyright 1999-2007 Gentoo Foundation
67  # Distributed under the terms of the GNU General Public License v2
68  # $Id$
69  
70  source "${PORTAGE_BIN_PATH:-/usr/lib/portage/bin}"/isolated-functions.sh
71  
72  if [[ -z $1 ]] ; then 
73 -       z="${D}usr/share/man"
74 +       mandir="${D}usr/share/man"
75  else
76 -       z="${D}$1/man"
77 +       mandir="${D}$1/man"
78  fi
79  
80 -if [[ ! -d ${z} ]] ; then
81 -       eqawarn "QA Notice: prepman called with non-existent dir '${z#${D}}'"
82 +if [[ ! -d ${mandir} ]] ; then
83 +       eqawarn "QA Notice: prepman called with non-existent dir '${mandir#${D}}'"
84         exit 0
85  fi
86  
87 -for x in $(find "${z}"/ -type d 2>/dev/null) ; do
88 -       for y in $(find "${x}"/ -mindepth 1 -maxdepth 1 \( -type f -or -type l \) ! -name '.keep_*' 2>/dev/null) ; do
89 -               if [[ -L ${y} ]] ; then
90 -                       # Symlink ...
91 -                       mylink=${y}
92 -                       linkto=$(readlink "${y}")
93 -                       
94 -                       # Do NOT change links to directories
95 -                       if [[ -d ${z}/${linkto} ]] ; then
96 -                               continue
97 -                       fi
98 -
99 -                       if [[ ${linkto##*.} != "gz" ]] && [[ ${linkto##*.} != "bz2" ]] ; then
100 -                               linkto="${linkto}.gz"
101 -                       fi
102 -                       if [[ ${mylink##*.} != "gz" ]] && [[ ${mylink##*.} != "bz2" ]] ; then
103 -                               mylink="${mylink}.gz"
104 -                       fi
105 -
106 -                       vecho "fixing man page symlink: ${mylink##*/}"
107 -                       ln -snf "${linkto}" "${mylink}"
108 -                       if [[ ${y} != "${mylink}" ]] ; then
109 -                               vecho "removing old symlink: ${y##*/}"
110 -                               rm -f "${y}"
111 -                       fi
112 -               else
113 -                       if [[ ${y##*.} != "gz" ]] && [[ ${y##*.} != "bz2" ]] && [[ ! -d ${y} ]] ; then
114 -                               vecho "gzipping man page: ${y##*/}"
115 -                               gzip -f -9 "${y}"
116 -                       fi
117 -               fi      
118 -       done
119 +shopt -s nullglob
120 +
121 +# figure out the new suffix
122 +suffix=$(ecompress --suffix)
123 +[[ -z ${suffix} ]] && exit 0
124 +
125 +ret=0
126 +
127 +# compress and fixup links in each dir
128 +for subdir in "${mandir}"/man* "${mandir}"/*/man* ; do
129 +       ecompressdir "${subdir#${D}}"
130 +       ((ret+=$?))
131  done
132 +
133 +exit ${ret}
134 Index: misc-functions.sh
135 ===================================================================
136 --- misc-functions.sh   (revision 5536)
137 +++ misc-functions.sh   (working copy)
138 @@ -340,9 +340,7 @@ install_qa_check() {
139         fi
140  
141         # Portage regenerates this on the installed system.
142 -       if [[ -f ${D}/usr/share/info/dir.gz ]] ; then
143 -               rm -f "${D}"/usr/share/info/dir.gz
144 -       fi
145 +       rm -f "${D}"/usr/share/info/dir{,.gz,.bz2}
146  
147         if hasq multilib-strict ${FEATURES} && \
148            [[ -x /usr/bin/file && -x /usr/bin/find ]] && \
149 Index: doinfo
150 ===================================================================
151 --- doinfo      (revision 5536)
152 +++ doinfo      (working copy)
153 @@ -1,10 +1,10 @@
154  #!/bin/bash
155 -# Copyright 1999-2006 Gentoo Foundation
156 +# Copyright 1999-2007 Gentoo Foundation
157  # Distributed under the terms of the GNU General Public License v2
158  # $Id$
159  
160  if [ ${#} -lt 1 ] ; then
161 -       echo "doinfo: at least one argument needed"
162 +       vecho "${0##*/}: at least one argument needed"
163         exit 1  
164  fi
165  if [ ! -d "${D}usr/share/info" ] ; then
166 @@ -14,7 +14,7 @@ fi
167  for x in "$@" ; do
168         if [ -e "${x}" ] ; then
169                 install -m0644 "${x}" "${D}usr/share/info"
170 -               gzip -f -9 "${D}usr/share/info/${x##*/}"
171 +               ecompress "${D}usr/share/info/${x##*/}"
172         else
173                 echo "doinfo: ${x} does not exist"
174         fi
175 Index: prepinfo
176 ===================================================================
177 --- prepinfo    (revision 5536)
178 +++ prepinfo    (working copy)
179 @@ -1,47 +1,22 @@
180  #!/bin/bash
181 -# Copyright 1999-2006 Gentoo Foundation
182 +# Copyright 1999-2007 Gentoo Foundation
183  # Distributed under the terms of the GNU General Public License v2
184  # $Id$
185  
186  source "${PORTAGE_BIN_PATH:-/usr/lib/portage/bin}"/isolated-functions.sh
187  
188 -if [ -z "$1" ] ; then
189 -       z="${D}usr/share/info"
190 +if [[ -z $1 ]] ; then
191 +       infodir=="${D}usr/share/info"
192  else
193 -       if [ -d "${D}$1/share/info" ] ; then
194 -               z="${D}$1/share/info"
195 +       if [[ -d ${D}$1/share/info ]] ; then
196 +               infodir="${D}$1/share/info"
197         else
198 -               z="${D}$1/info"
199 +               infodir="${D}$1/info"
200         fi
201  fi
202  
203 -[ ! -d "${z}" ] && exit 0
204 +[[ ! -d ${infodir} ]] && exit 0
205  
206 -rm -f "${z}"/{dir,dir.info,dir.info.gz}
207 +rm -f "${infodir}"/dir{,.info}{,.gz,.bz2}
208  
209 -for x in $(find "${z}"/ -mindepth 1 -maxdepth 1 \( -type f -or -type l \) 2>/dev/null) ; do
210 -       if [ -L "${x}" ] ; then
211 -               # Symlink ...
212 -               mylink="${x}"
213 -               linkto="$(readlink "${x}")"
214 -
215 -               if [ "${linkto##*.}" != "gz" ] ; then
216 -                       linkto="${linkto}.gz"
217 -               fi
218 -               if [ "${mylink##*.}" != "gz" ] ; then
219 -                       mylink="${mylink}.gz"
220 -               fi
221 -
222 -               vecho "fixing GNU info symlink: ${mylink##*/}"
223 -               ln -snf "${linkto}" "${mylink}"
224 -               if [ "${x}" != "${mylink}" ] ; then
225 -                       vecho "removing old symlink: ${x##*/}"
226 -                       rm -f "${x}"
227 -               fi
228 -       else
229 -               if [ "${x##*.}" != "gz" ] ; then
230 -                       vecho "gzipping GNU info page: ${x##*/}"
231 -                       gzip -f -9 "${x}"
232 -               fi
233 -       fi
234 -done
235 +exec ecompressdir "${infodir}"
236 Index: ecompress
237 ===================================================================
238 --- ecompress   (revision 0)
239 +++ ecompress   (revision 0)
240 @@ -0,0 +1,38 @@
241 +#!/bin/bash
242 +# Copyright 1999-2007 Gentoo Foundation
243 +# Distributed under the terms of the GNU General Public License v2
244 +# $Id: prepman 5507 2007-01-10 04:22:27Z zmedico $
245 +
246 +if [[ -z $1 ]] ; then
247 +       echo "${0##*/}: at least one argument needed" 1>&2
248 +       exit 1
249 +fi
250 +
251 +source "${PORTAGE_BIN_PATH:-/usr/lib/portage/bin}"/isolated-functions.sh
252 +
253 +# setup compression stuff
254 +PORTAGE_COMPRESS=${PORTAGE_COMPRESS:-bzip2}
255 +if [[ -z ${PORTAGE_COMPRESS_FLAGS} ]] ; then
256 +       case ${PORTAGE_COMPRESS} in
257 +               bzip2|gzip)  PORTAGE_COMPRESS_FLAGS="-9";;
258 +       esac
259 +fi
260 +
261 +if [[ $1 == "--suffix" ]] ; then
262 +       set -e
263 +       tmpdir="${T}"/.ecompress$$.${RANDOM}
264 +       mkdir "${tmpdir}"
265 +       cd "${tmpdir}"
266 +       # we have to fill the file enough so that there is something
267 +       # to compress as some programs will refuse to do compression
268 +       # if it cannot actually compress the file
269 +       echo {0..1000} > compressme
270 +       ${PORTAGE_COMPRESS} ${PORTAGE_COMPRESS_FLAGS} compressme
271 +       suffix=$(ls compressme*)
272 +       suffix=${suffix#compressme}
273 +       cd /
274 +       rm -rf "${tmpdir}"
275 +       echo "${suffix}"
276 +else
277 +       exec "${PORTAGE_COMPRESS}" ${PORTAGE_COMPRESS_FLAGS} "$@"
278 +fi
279
280 Property changes on: ecompress
281 ___________________________________________________________________
282 Name: svn:executable
283    + *
284
285 Index: prepalldocs
286 ===================================================================
287 --- prepalldocs (revision 5536)
288 +++ prepalldocs (working copy)
289 @@ -1,35 +1,13 @@
290  #!/bin/bash
291 -# Copyright 1999-2006 Gentoo Foundation
292 +# Copyright 1999-2007 Gentoo Foundation
293  # Distributed under the terms of the GNU General Public License v2
294  # $Id$
295  
296 -source "${PORTAGE_BIN_PATH:-/usr/lib/portage/bin}"/isolated-functions.sh
297 +if [[ -n $1 ]] ; then
298 +       vecho "${0##*/}: invalid usage; takes no arguments" 1>&2
299 +fi
300  
301 -z="$(find "${D}"usr/share/doc \( -type f -or -type l \) -not -name "*.gz" -not -name "*.js" 2>/dev/null)"
302 +cd "${D}"
303 +[[ -d usr/share/doc ]] || exit 0
304  
305 -for y in ${z} ; do
306 -       if [ -L "${y}" ] ; then
307 -               # Symlink ...
308 -               mylink="${y}"
309 -               linkto="$(readlink "${y}")"
310 -
311 -               if [ "${linkto##*.}" != "gz" ] ; then
312 -                       linkto="${linkto}.gz"
313 -               fi
314 -               if [ "${mylink##*.}" != "gz" ] ; then
315 -                       mylink="${mylink}.gz"
316 -               fi
317 -
318 -               vecho "fixing doc symlink: ${mylink##*/}"
319 -               ln -snf "${linkto}" "${mylink}"
320 -               if [ "${y}" != "${mylink}" ] ; then
321 -                       vecho "removing old symlink: ${y##*/}"
322 -                       rm -f "${y}"
323 -               fi
324 -       else
325 -               if [ "${y##*.}" != "gz" ] ; then
326 -                       vecho "gzipping doc: ${y##*/}"
327 -                       gzip -f -9 "${y}"
328 -               fi
329 -       fi      
330 -done
331 +exec ecompressdir "${D}"usr/share/doc
332 Index: ecompressdir
333 ===================================================================
334 --- ecompressdir        (revision 0)
335 +++ ecompressdir        (revision 0)
336 @@ -0,0 +1,44 @@
337 +#!/bin/bash
338 +# Copyright 1999-2007 Gentoo Foundation
339 +# Distributed under the terms of the GNU General Public License v2
340 +# $Id: prepalldocs 3483 2006-06-10 21:40:40Z genone $
341 +
342 +if [[ -z $1 ]] ; then
343 +       echo "${0##*/}: at least one argument needed" 1>&2
344 +       exit 1
345 +fi
346 +
347 +# figure out the new suffix
348 +suffix=$(ecompress --suffix)
349 +[[ -z ${suffix} ]] && exit 0
350 +
351 +source "${PORTAGE_BIN_PATH:-/usr/lib/portage/bin}"/isolated-functions.sh
352 +
353 +ret=0
354 +
355 +for dir in "$@" ; do
356 +       dir="${D}${dir}"
357 +       if [[ ! -d ${dir} ]] ; then
358 +               vecho "${0##*/}: ${dir#${D}} does not exist!"
359 +               continue
360 +       else
361 +               vecho "${0##*/}: compressing ${dir#${D}}"
362 +       fi
363 +
364 +       find "${dir}" -type f -print0 | xargs -0 ecompress
365 +       ((ret+=$?))
366 +       find -L "${dir}" -type l | \
367 +       while read brokenlink ; do
368 +               olddest=$(readlink "${brokenlink}")
369 +               newdest="${olddest}${suffix}"
370 +               if [[ -e ${newdest} ]] ; then
371 +                       ln -snf "${newdest}" "${brokenlink}"
372 +                       ((ret+=$?))
373 +               else
374 +                       vecho "ecompressdir: unknown broken symlink: ${brokenlink}"
375 +                       ((++ret))
376 +               fi
377 +       done
378 +done
379 +
380 +exit ${ret}
381
382 Property changes on: ecompressdir
383 ___________________________________________________________________
384 Name: svn:executable
385    + *
386