first commit
[scm/bb/meta-tizen.git] / recipes-tizen / rpmlint-mini / rpmlint-mini.inc
1 DESCRIPTION = "Rpm correctness checker"
2 HOMEPAGE = "http://rpmlint.zarb.org/"
3 SECTION = "System/Packages"
4 LICENSE = "GPL-2.0+"
5
6 SRC_URI = ""
7
8 S = "${WORKDIR}/git"
9
10 PROVIDES = ""
11
12 #PROVIDES by rpmlint-mini 
13 PROVIDES += "rpmlint-mini"
14 RPROVIDES_rpmlint-mini += "rpmlint-mini"
15
16 RDEPENDS = ""
17 #RDEPENDS of rpmlint-mini (${PN})
18 RDEPENDS_${PN} += "cpio"
19
20
21 DEPENDS = ""
22 #DEPENDS of rpmlint-mini 
23 DEPENDS += "glib"
24 DEPENDS += "python-rpm"
25 DEPENDS += "dash"
26 inherit pythonnative
27 DEPENDS += "rpmlint"
28 DEPENDS += "libtool-cross"
29 DEPENDS += "python-magic"
30
31 do_patch() {
32  #extracte source 99 
33  pushd ${S}/../
34  unp ${S}/packaging/desktop-file-utils-0.20.tar.xz 
35  popd 
36  chmod -Rf a+rX,u+w,g-w,o-w ${S}
37  #setup -q  -b 99
38  cp ${S}/packaging/rpmlint-mini.manifest .
39  cd ../desktop-file-utils-0.20
40  
41  
42 }
43
44 do_configure() {
45 }
46
47 do_compile() {
48  LANG=C
49  export LANG
50  unset DISPLAY
51  CFLAGS="-O2 -g -m64 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables" ; export CFLAGS ; 
52  CXXFLAGS="${CXXFLAGS:--O2 -g -m64 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables}" ; export CXXFLAGS ; 
53  FFLAGS="${FFLAGS:--O2 -g -m64 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -I%_fmoddir}" ; export FFLAGS ; 
54  LD_AS_NEEDED=1; export LD_AS_NEEDED ; 
55  
56  cd ../desktop-file-utils-0.20
57  
58    CFLAGS="${CFLAGS:--O2 -g -m64 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables}" ; export CFLAGS ; 
59    CXXFLAGS="${CXXFLAGS:--O2 -g -m64 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables}" ; export CXXFLAGS ; 
60    FFLAGS="${FFLAGS:--O2 -g -m64 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -I%_fmoddir}" ; export FFLAGS ; 
61    autotools_do_configure --build=${TARGET_SYS} --host=${HOST_SYS} \
62          --target=x86_64-tizen-linux \
63          --program-prefix= \
64          --prefix=/usr \
65          --exec-prefix=/usr \
66          --bindir=/usr/bin \
67          --sbindir=/usr/sbin \
68          --sysconfdir=/etc \
69          --datadir=/usr/share \
70          --includedir=/usr/include \
71          --libdir=/usr/lib \
72          --libexecdir=/usr/libexec \
73          --localstatedir=/var \
74          --sharedstatedir=/usr/com \
75          --mandir=/usr/share/man \
76          --infodir=/usr/share/info
77  pushd src
78  make desktop-file-validate V=1 DESKTOP_FILE_UTILS_LIBS="/usr/lib/libglib-2.0.a -lpthread -lrt"
79  popd
80  
81  
82  
83 }
84
85 do_install() {
86  echo export RPM_BUILD_ROOT=${D}
87  LANG=C
88  export LANG
89  unset DISPLAY
90  rm -rf ${D} 
91  mkdir -p ${D} 
92  
93  cd ../desktop-file-utils-0.20
94  pwd
95  # test if the rpmlint works at all
96  set +e
97  /usr/bin/rpmlint rpmlint
98  test $? -gt 0 -a $? -lt 60 && exit 1
99  set -e
100  # okay, lets put it together
101  mkdir -p $RPM_BUILD_ROOT/opt/testing/share/rpmlint
102  install -m 755 -D src/desktop-file-validate $RPM_BUILD_ROOT/opt/testing/bin/desktop-file-validate
103  cp -a /usr/share/rpmlint/*.py $RPM_BUILD_ROOT/opt/testing/share/rpmlint
104  # install config files
105  install -d -m 755 $RPM_BUILD_ROOT/opt/testing/share/rpmlint/mini
106  for i in /etc/rpmlint/{licenses,rpmgroups,pie}.config; do
107    cp $i $RPM_BUILD_ROOT/opt/testing/share/rpmlint/mini
108  done
109  install -m 644 -D /usr/share/rpmlint/config $RPM_BUILD_ROOT/opt/testing/share/rpmlint/config
110  install -m 644 "${S}/packaging/rpmlint-mini.config" $RPM_BUILD_ROOT/opt/testing/share/rpmlint
111  # extra data
112  install -m 755 -d $RPM_BUILD_ROOT/opt/testing/share/rpmlint/data
113  #install -m 644 /etc/polkit-default-privs.standard $RPM_BUILD_ROOT/opt/testing/share/rpmlint/data
114  install -m 644 -D /usr/include/python2.7/pyconfig.h $RPM_BUILD_ROOT/opt/testing/include/python2.7/pyconfig.h
115  #
116  cd /usr/lib/python2.7
117  for f in $(<${S}/packaging/rpmlint-deps.txt); do
118    echo $f
119    find -path "*/$f" -exec install -D {} $RPM_BUILD_ROOT/opt/testing/lib/python2.7/{} \;
120  done
121  install -m 644 /usr/lib/python2.7/site-packages/magic.py $RPM_BUILD_ROOT/opt/testing/lib/python2.7/site-packages/magic.py
122  install -D /usr/bin/python $RPM_BUILD_ROOT/opt/testing/bin/python
123  cp -a /usr/lib/libmagic.so.* $RPM_BUILD_ROOT/opt/testing/lib
124  cp -a /usr/lib/libpython2.7.so.* $RPM_BUILD_ROOT/opt/testing/lib
125  cp -a /usr/bin/rpmlint $RPM_BUILD_ROOT/opt/testing/share/rpmlint/rpmlint.py
126  pushd $RPM_BUILD_ROOT/opt/testing/share/rpmlint
127  PYTHONOPTIMIZE=1 python /usr/lib/python2.7/py_compile.py *.py
128  rm *.py
129  popd
130  pushd $RPM_BUILD_ROOT/opt/testing/lib/python2.7/site-packages/
131  PYTHONOPTIMIZE=1 python /usr/lib/python2.7/py_compile.py *.py
132  rm *.py
133  popd
134  rm -rf $RPM_BUILD_ROOT/{usr,etc}
135  rm -f $RPM_BUILD_ROOT/opt/testing/bin/rpmlint
136  install -m 755 -D ${S}/packaging/rpmlint.wrapper $RPM_BUILD_ROOT/opt/testing/bin/rpmlint
137  # hackatlon
138  cat << EOF > ${WORKDIR}/git/rpmlint-mini-requires
139  cat - > file.list
140  /usr/share/spec2yocto/macro/find-requires rpmlint-mini < file.list > requires.list
141  /usr/share/spec2yocto/macro/find-provides rpmlint-mini < file.list > provides.list
142  while read i; do
143      grep -F -v "\$i" requires.list > requires.list.new
144      mv requires.list.new requires.list
145  done < provides.list
146  cat requires.list
147  rm -f requires.list provides.list file.list
148  EOF
149  chmod +x ${WORKDIR}/git/rpmlint-mini-requires
150  # final run check to detect python dep changes
151  LD_LIBRARY_PATH=$RPM_BUILD_ROOT/opt/testing/lib
152  PYTHONPATH=$RPM_BUILD_ROOT/opt/testing/share/rpmlint
153  export PYTHONPATH LD_LIBRARY_PATH
154  $RPM_BUILD_ROOT/opt/testing/bin/python -tt -u -O $RPM_BUILD_ROOT/opt/testing/share/rpmlint/rpmlint.pyo --help || exit 1
155  echo ".. ok"
156  
157  
158  
159 }
160
161 PACKAGES = ""
162 PACKAGES += "rpmlint-mini"
163
164 rpmlint-mini_files = ""
165 rpmlint-mini_files += "rpmlint-mini.manifest"
166 rpmlint-mini_files += "/opt/testing"
167
168 FILES_${PN} = "${rpmlint-mini_files}"
169
170 PKG_rpmlint-mini= "rpmlint-mini"
171
172 require rpmlint-mini-extraconf.inc