From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Vitaly Lipatov Organization: ALT Linux Team To: devel@altlinux.ru Date: Sat, 4 Dec 2004 02:09:31 +0300 User-Agent: KMail/1.7.1 MIME-Version: 1.0 Content-Type: Multipart/Mixed; boundary="Boundary-00=_rIPsBol+Gr60wWQ" Message-Id: <200412040209.31782.lav@altlinux.ru> Subject: [devel] =?koi8-r?b?6yDNwc7UxcrOxdLBzTog79vJwsvJINXQwcvP18vJ?= X-BeenThere: devel@altlinux.ru X-Mailman-Version: 2.1.5 Precedence: list Reply-To: ALT Devel discussion list List-Id: ALT Devel discussion list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 Dec 2004 23:09:57 -0000 Archived-At: List-Archive: List-Post: --Boundary-00=_rIPsBol+Gr60wWQ Content-Type: text/plain; charset="koi8-r" Content-Disposition: inline Content-Transfer-Encoding: 8bit Убедительная просьба просмотреть приведённые ниже списки и исправить ошибки упаковки, когда файлы пакета размещены в каталоге, которым никто не владеет. Это приводит к багам наподобие https://bugzilla.altlinux.org/show_bug.cgi?id=5562 Упрямые пакеты будут подвергаться обвешиванию багами :) со стороны растущей армии пользователей :) - - - За последние 4 года в системе расплодилось много каталогов от давно ушедших в небытие пакетов. Я написал скрипт, которому достаточно указать путь, и он выведет список не принадлежащих ни одному пакету каталогов. Если скрипт запустить с правами root, то он также удалит сиротливые каталоги, внутри которых ничего не содержится. Делает он это достаточно осторожно. Скрипт прилагается. - - - Списки "сиротливых" каталогов, которые забыли указать в секции %files спека пакета: Report for dir /usr/lib: /usr/lib/AbiWord-2.2 /usr/lib/acrobat /usr/lib/allegro /usr/lib/ao /usr/lib/aspell /usr/lib/audiooss /usr/lib/avifile-0.7 /usr/lib/axiom /usr/lib/bonobo /usr/lib/c2hs-0.12.0 /usr/lib/cheops /usr/lib/chipmunk-5.61 /usr/lib/cinepaint /usr/lib/clip /usr/lib/clisp /usr/lib/control-center-2.0 /usr/lib/FaxMail /usr/lib/firefox-0.8 /usr/lib/gap4.3 /usr/lib/Getleft /usr/lib/ggi /usr/lib/ghc-6.2.1.20040316 /usr/lib/ghc-6.2.2 /usr/lib/gnome-panel-2.0 /usr/lib/gnome-panel /usr/lib/gnome-stones /usr/lib/gnucash /usr/lib/gpio /usr/lib/gst-player /usr/lib/gstreamer-0.8 /usr/lib/gtkhtml /usr/lib/gtk /usr/lib/hotplug /usr/lib/httrack /usr/lib/iceb /usr/lib/imlib2_loaders /usr/lib/irssi /usr/lib/lbdb /usr/lib/libextractor /usr/lib/libglade /usr/lib/libquicktime /usr/lib/lilypond /usr/lib/mas /usr/lib/maxima /usr/lib/monodoc /usr/lib/nautilus-2.0 /usr/lib/nautilus /usr/lib/opensc /usr/lib/orbit-2.0 /usr/lib/pcsx /usr/lib/planner /usr/lib/powertweak /usr/lib/ppr /usr/lib/pstoedit /usr/lib/pyro /usr/lib/python2.2 /usr/lib/q /usr/lib/rhs /usr/lib/samba /usr/lib/sbcl /usr/lib/security /usr/lib/smalltalk /usr/lib/snd /usr/lib/sodipodi /usr/lib/solfege /usr/lib/sylpheed-claws /usr/lib/tcl /usr/lib/TEItools /usr/lib/timetool /usr/lib/torcs /usr/lib/vfs /usr/lib/vidix /usr/lib/window-manager-settings /usr/lib/xchat /usr/lib/xine /usr/lib/xmp /usr/lib/zope Report for dir /usr/share: /usr/share/abisuite /usr/share/afterstep /usr/share/bbtools /usr/share/BitTornado /usr/share/BitTorrent /usr/share/bugsquish /usr/share/cdlabelgen /usr/share/centericq /usr/share/cheesetracker /usr/share/cheops /usr/share/cupsddk /usr/share/denemo /usr/share/dictd /usr/share/dosbox /usr/share/dtds /usr/share/ecasound /usr/share/faces /usr/share/flow-tools /usr/share/freespeech /usr/share/gapi /usr/share/gen_util /usr/share/Getleft /usr/share/gkrellm /usr/share/gnome-2.0 /usr/share/gnomeicu /usr/share/gnuitar /usr/share/gossip /usr/share/graphviz /usr/share/IceWMCP /usr/share/icu /usr/share/idl /usr/share/images /usr/share/irssi /usr/share/isicom /usr/share/jay /usr/share/jpilot /usr/share/kura /usr/share/libgc-mono /usr/share/libgnomeprint /usr/share/libical /usr/share/libole2 /usr/share/libtool.alternatives_save /usr/share/libwmf /usr/share/licq /usr/share/mailman /usr/share/maxima /usr/share/mime-info /usr/share/mime /usr/share/mono /usr/share/motor /usr/share/mp3blaster /usr/share/multi-gnome-terminal /usr/share/multitran /usr/share/myBudget /usr/share/nautilus /usr/share/notemeister /usr/share/oprofile /usr/share/packhouse /usr/share/planner /usr/share/plptools /usr/share/poedit /usr/share/prawda /usr/share/python-module-Draco-0.99.4-alt1 /usr/share/q /usr/share/RasMol /usr/share/rbbr /usr/share/rhythmbox /usr/share/rlwrap /usr/share/samba /usr/share/slrn /usr/share/snd /usr/share/solfege /usr/share/SoundStudio /usr/share/squid /usr/share/sven /usr/share/sylpheed-claws /usr/share/synce /usr/share/timidity /usr/share/tkcvs /usr/share/tkpppoe /usr/share/type-convert /usr/share/valknut /usr/share/Wammu /usr/share/white_dune /usr/share/WindowMaker /usr/share/wmcube /usr/share/xcdroast /usr/share/xosd /usr/share/xpenguins /usr/share/xscorch /usr/share/zope -- Lav Виталий Липатов Санкт-Петербург GNU! ALT Linux Team! LaTeX! LyX! --Boundary-00=_rIPsBol+Gr60wWQ Content-Type: application/x-shellscript; name="check-orphaned-dir.sh" Content-Disposition: attachment; filename="check-orphaned-dir.sh" Content-Transfer-Encoding: 8bit #!/bin/sh # Tests dirs from current directory for # orphaned dirs # Vitaly Lipatov , 2004 # # # Программа работает с текущим или с указанным # в первом параметре каталоге. # Формируется отчёт о каталогах, непосредственно # расположенных в рабочем каталоге и не принадлежащем # ни одному из установленных пакетов. # ВНИМАНИЕ! При запуске под root скрипт также # удаляет пустые каталоги, которые не принадлежат # никаким пакетам. # Принятые меры безопасности: # - удаление только по списку каталогов, не более 5 в списке # - каталоги удаляются с помощью rmdir # - скрипт не работает из корневого каталога # Delete an empty dirs if have root permission remove_empty_dirs() { RES=`find "$1" ! -type d | wc -l` if [ $RES = "0" ] then echo "! ! Empty_unusable_dir:_$1" if [ "$UID" = "0" ] then LIST=`find "$1" -type d | tac` if [ "$RES" -lt "5" ] then rmdir $LIST echo "DONE" else echo "Warning!!! I may not destroy dirs with this long list: $LIST" fi fi fi } ### main block if [ "$1" == "--check-dir" ] then rpm -qf "$2" >/dev/null || remove_empty_dirs "$2" elif [ "$1" == "--convert-report" ] then sort | cut -d " " -f 3 else PARAM="$1" test -z "$PARAM" && PARAM=`pwd` # Check if [ `echo $PARAM | wc -c` -lt "4" ] then echo "Warning!!! I may not work with such root dirs as $PARAM" exit 1 fi echo "Report for dir $PARAM:" find $PARAM -maxdepth 1 -type d -exec $0 --check-dir '{}' \; 2>&1 | $0 --convert-report fi exit 0 --Boundary-00=_rIPsBol+Gr60wWQ--