Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Paczki zbudowane z innymi flagami
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Polskie forum (Polish) Polish OTW
View previous topic :: View next topic  
Author Message
sebas86
Guru
Guru


Joined: 01 May 2005
Posts: 502
Location: Szczecinek / Szczecin

PostPosted: Sat Dec 04, 2010 10:16 am    Post subject: Paczki zbudowane z innymi flagami Reply with quote

Już wcześniej na forum padało kilka razy pytanie o sposób na odnalezienie takich paczek, a ponieważ sam ostatnio trochę namieszałem... Poniżej znajduje się skrypt poszukujący w sposób naiwny paczek zbudowanych z CFLAGS innymi niż aktualnie ustawione w systemie. Sposób jest naiwny z tego względu, że niektóre paczki wyłączają niektóre flagi kompilatora, ale i tak skrypt w dużym stopniu odsiewa paczki pozostałe np. po "emerge world -eD". Do działania wystarczy wrzucić na dysk i odpalić. Pomysły na usprawnienia mile widziane, a może macie jakieś własne rozwiązania tego, raczej, sporadycznego problemu?

Code:
#!/bin/sh

DB_PATH='/var/db/pkg'
FILE_WITH_PKGS_WITH_OTHER_FLAGS='pkgs-with-other-cflags.txt'

CFLAGS=`emerge --info | grep CFLAGS`

echo "System ${CFLAGS}"
echo ""

echo -n '' > ${FILE_WITH_PKGS_WITH_OTHER_FLAGS}

ls $DB_PATH | while read CAT; do
   ls "${DB_PATH}/${CAT}" | while read APP; do
      APP_FLAGS=`bzcat "${DB_PATH}/${CAT}/${APP}/environment.bz2" | grep 'declare -x CFLAGS=' | cut -c12-10000`
      if [ "${APP_FLAGS}" != "${CFLAGS}" ]; then
         echo "${CAT}/${APP} -> ${APP_FLAGS}"
         echo "${CAT}/${APP}" >> ${FILE_WITH_PKGS_WITH_OTHER_FLAGS}
      fi
   done
done

_________________
Nieważne jaka dystrybucja, ważne, że Linux!
Back to top
View user's profile Send private message
SlashBeast
Moderator
Moderator


Joined: 23 May 2006
Posts: 2540
Location: Zduńska Wola, Poland.

PostPosted: Sat Dec 04, 2010 6:53 pm    Post subject: Reply with quote

FWIW zamiast grepowac emerge --info mozesz dac "CFLAGS="$(portageq envvar CFLAGS)".

edit:
Przepisalem Twoj skrypt troche bardziej kolorowo i pozbylem sie zbednych pipow..
Code:
#!/bin/bash

dbdir="/var/db/pkg"
systemcflags="$(portageq envvar CFLAGS)"

CYAN='\e[1;36m'
YELLOW='\e[1;33m'
GREEN='\e[1;32m'
NC='\e[0m'

echo -e "${GREEN}System CFLAGS:${NC} ${YELLOW}$systemcflags${NC}"

find $dbdir/*/* -type f -name environment.bz2 | while read package; do
   packagename="${package#*${dbdir}/}"
   packagename="${packagename%/${packagename##*/}}"
   packagecflags="$(bzgrep 'declare -x CFLAGS=' $package | cut -d '"' -f2)"
   
   if [ "$systemcflags" != "$packagecflags" ]; then
      echo -e "${CYAN}${packagename}:${NC} ${YELLOW}${packagecflags}${NC}"
   fi
done

_________________
github
Back to top
View user's profile Send private message
sebas86
Guru
Guru


Joined: 01 May 2005
Posts: 502
Location: Szczecinek / Szczecin

PostPosted: Sun Dec 05, 2010 9:12 pm    Post subject: Reply with quote

O, widać, kto częściej pisze skrypty. :)

W sumie można jeszcze uprościć zapisując zamiast
Code:
find $dbdir/*/* -type f -name environment.bz2 | while read package; do
po prostu
Code:
ls "$dbdir/*/*/environment.bz2" | while read package; do


O portageq zupełnie nie wiedziałem, kolejne przydatne narzędzie Gentoo Power Usera, dzięki. :) Możesz powiedzieć z jakich jeszcze innych narzędzi lubisz korzystać lub wiesz o ich istnieniu, ewentualnie gdzie szukać tego typu informacji?
_________________
Nieważne jaka dystrybucja, ważne, że Linux!
Back to top
View user's profile Send private message
SlashBeast
Moderator
Moderator


Joined: 23 May 2006
Posts: 2540
Location: Zduńska Wola, Poland.

PostPosted: Sun Dec 05, 2010 10:31 pm    Post subject: Reply with quote

O portageq powiedzial mi Zac Medico, aktualny developer portage. A gdzie szukac? Nie wiem.
_________________
github
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Polskie forum (Polish) Polish OTW All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum