openpkg/rpmmacros

Mon, 20 Apr 2009 19:23:01 +0200

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Mon, 20 Apr 2009 19:23:01 +0200
changeset 179
6539a982f682
child 303
2bd9bf3f6f03
permissions
-rw-r--r--

Add fingerprints config for client certificate based authentication.

     1 ##
     2 ##  rpmmacros -- OpenPKG RPM Macros
     3 ##  Copyright (c) 2000-2007 OpenPKG Foundation e.V. <http://openpkg.net/>
     4 ##  Copyright (c) 2000-2007 Ralf S. Engelschall <http://engelschall.com/>
     5 ##
     6 ##  Permission to use, copy, modify, and distribute this software for
     7 ##  any purpose with or without fee is hereby granted, provided that
     8 ##  the above copyright notice and this permission notice appear in all
     9 ##  copies.
    10 ##
    11 ##  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
    12 ##  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
    13 ##  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
    14 ##  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
    15 ##  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
    16 ##  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
    17 ##  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
    18 ##  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
    19 ##  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
    20 ##  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
    21 ##  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
    22 ##  SUCH DAMAGE.
    23 ##
    24 ##  The purpose of this macro set is to override the default
    25 ##  macros in the OpenPKG RPM installation for the @l_prefix@ hierarchy.
    26 ##
    28 #   the OpenPKG release identification (for the current package or as a fallback for the bootstrap package)
    29 %l_openpkg_release(F:)   %(%{l_prefix}/libexec/openpkg/release --release="%{?release}%{!?release:%(%{l_rpm} -q --qf '%{release}' openpkg)}" %{?-F:-F "%{-F*}"}%{!?-F:-F "OpenPKG-%%t"})
    31 #   the OpenPKG OIDs (root is officially registered at IANA)
    32 %l_openpkg_oid           1.3.6.1.4.1.18749
    33 %l_openpkg_oid_bootstrap %{l_openpkg_oid}.4.1
    34 %l_openpkg_oid_instance  %{l_openpkg_oid_bootstrap}.1
    35 %l_openpkg_oid_platform  %{l_openpkg_oid_bootstrap}.2
    36 %l_openpkg_oid_tagfmtopt %{l_openpkg_oid_bootstrap}.3
    38 #   the OpenPKG package tagging
    39 %l_tag_fmt               @TAG@
    40 %l_tag_fmt_compat        %(prefix="%{l_prefix_static}"; if [ ".`expr $prefix : '/[^/][^/]*$'`" != .0 ]; then loc=`echo $prefix | cut -c2-4`; else loc=`echo $prefix | sed -e 's;/\\(.\\)[^/]*;\\1;g' | cut -c1-3`; fi; echo $loc)
    41 %l_tag_fmt_loc           %(echo "%{l_prefix_static}" | sed -e 's;^/\\([^/]\\)[^/]*/\\([^/]\\)[^/]*/\\([^/]\\).*;\\1\\2\\3;' -e 's;^/\\([^/]\\)[^/]*/\\([^/][^/]\\).*;\\1\\2;' -e 's;^/\\([^/][^/]\\)[^/]*/\\([^/]\\).*;\\1\\2;' -e 's;^/\\([^/]\\)[^/]*/\\([^/]\\).*;\\1\\2;' -e 's;^/\\([^/][^/][^/]\\).*;\\1;' -e 's;^/\\([^/][^/]\\).*;\\1;' -e 's;^/\\([^/]\\).*;\\1;')
    42 %l_tag_fmt_opt           %(uuid_ns="`%{l_uuid} -v3 ns:OID %{l_openpkg_oid_tagfmtopt}`"; %{l_uuid} -v3 $uuid_ns '%{?_options}')
    43 %l_tag_fmt_uuid          %(%{l_uuid} -v1)
    44 %l_tag_fmt_time          %(date '+%%Y%%m%%d%%H%%M%%S')
    45 %l_tag_fmt_user          %(%{l_shtool} echo -e '%%u')
    46 %l_tag_fmt_host          %(%{l_shtool} echo -e '%%h%%d')
    47 %l_tag_gen               %{expand:%(echo '%{l_tag_fmt}' | sed -e 's/<\\([a-zA-Z][_a-zA-Z0-9]*\\)>/%%{l_tag_fmt_\\1}/g')}
    48 %l_tag                   %(echo "%{l_tag_gen}" | sed -e 's;-;;g')
    50 #   the OpenPKG instance location (backward compatibility only)
    51 %l_location              %{l_tag}
    53 #   standard RPM host platform identification
    54 #   (defaults via "shtool platform" and uname(3); used internally)
    55 #%_host_cpu              ...USE INTERNAL DEFAULT...
    56 #%_host_vendor           ...USE INTERNAL DEFAULT...
    57 #%_host_os               ...USE INTERNAL DEFAULT...
    58 %_host_alias             %{nil}
    59 %_host                   %{_host_cpu}-%{_host_os}
    61 #   standard RPM build platform identification
    62 #   (defaults via %{_host*} macros; not used internally AFAIK)
    63 %_build_cpu              %{_host_cpu}
    64 %_build_vendor           %{_host_vendor}
    65 %_build_os               %{_host_os}
    66 %_build_alias            %{_host_alias}
    67 %_build                  %{_host}
    69 #   standard RPM target platform identification
    70 #   (defaults via %{_host*} macros; used internally for %ifarch/%ifnarch)
    71 %_target_cpu             %{_host_cpu}
    72 %_target_vendor          %{_host_vendor}
    73 %_target_os              %{_host_os}
    74 %_target_alias           %{_host_alias}
    75 %_target                 %{_host}
    77 #   legacy RPM platform macros
    78 #   (defaults via config.guess/config.sub under RPM build-time)
    79 %_arch                   %{_host_cpu}
    80 %_vendor                 %{_host_vendor}
    81 %_os                     %{_host_os}
    83 #   legacy RPM platform macros
    84 #   (defaults via various other macros; partly used internally)
    85 %_build_arch             %{_arch}
    86 %_target_platform        %{_target_cpu}-%{_target_vendor}-%{_target_os}
    87 %_gnu                    %{nil}
    89 #   official OpenPKG host platform identification
    90 %l_host_arch             %{_host_cpu}
    91 %l_host_vendor           %{_host_vendor}
    92 %l_host_os               %{_host_os}
    93 %l_host                  %{_host_cpu}-%{_host_os}
    95 #   new OpenPKG platform identification
    96 %l_platform(cptF:)       %(if [ ".%{?-F}" != . ]; then fmt="%{-F*}"; else T="%{?-c:c}%{?-p:p}%{?-t:t}"; [ ".$T" = . ] && T="p"; fmt="%%<a$T>-%%<s$T>"; fi; %{l_shtool} platform -n -L -S "" -C "+" -F "$fmt")
    98 #   old OpenPKG platform identification
    99 %l_target                %{l_platform -t}
   101 #   the *S*uper-user user/group name/id pair
   102 %l_susr                  @SUSR@
   103 %l_sgrp                  @SGRP@
   104 %l_suid                  %((getent passwd "%{l_susr}"; grep "^%{l_susr}:" /etc/passwd; ypmatch "%{l_susr}" passwd; nismatch "%{l_susr}" passwd; nidump passwd . | grep "^%{l_susr}:") 2>/dev/null | sed -e 'q' | awk -F: '{ print $3; }')
   105 %l_sgid                  %((getent group  "%{l_sgrp}"; grep "^%{l_sgrp}:" /etc/group;  ypmatch "%{l_sgrp}" group;  nismatch "%{l_sgrp}" group;  nidump group  . | grep "^%{l_susr}:") 2>/dev/null | sed -e 'q' | awk -F: '{ print $3; }')
   107 #   the *M*anagement user/group name/id pair
   108 %l_musr                  @MUSR@
   109 %l_mgrp                  @MGRP@
   110 %l_muid                  %((getent passwd "%{l_musr}"; grep "^%{l_musr}:" /etc/passwd; ypmatch "%{l_musr}" passwd; nismatch "%{l_musr}" passwd; nidump passwd . | grep "^%{l_musr}:") 2>/dev/null | sed -e 'q' | awk -F: '{ print $3; }')
   111 %l_mgid                  %((getent group  "%{l_mgrp}"; grep "^%{l_mgrp}:" /etc/group;  ypmatch "%{l_mgrp}" group;  nismatch "%{l_mgrp}" group;  nidump group  . | grep "^%{l_musr}:") 2>/dev/null | sed -e 'q' | awk -F: '{ print $3; }')
   113 #   the *R*restricted user/group name/id pair
   114 %l_rusr                  @RUSR@
   115 %l_rgrp                  @RGRP@
   116 %l_ruid                  %((getent passwd "%{l_rusr}"; grep "^%{l_rusr}:" /etc/passwd; ypmatch "%{l_rusr}" passwd; nismatch "%{l_rusr}" passwd; nidump passwd . | grep "^%{l_rusr}:") 2>/dev/null | sed -e 'q' | awk -F: '{ print $3; }')
   117 %l_rgid                  %((getent group  "%{l_rgrp}"; grep "^%{l_rgrp}:" /etc/group;  ypmatch "%{l_rgrp}" group;  nismatch "%{l_rgrp}" group;  nidump group  . | grep "^%{l_rusr}:") 2>/dev/null | sed -e 'q' | awk -F: '{ print $3; }')
   119 #   the *N*on-privileged user/group name/id pair
   120 %l_nusr                  @NUSR@
   121 %l_ngrp                  @NGRP@
   122 %l_nuid                  %((getent passwd "%{l_nusr}"; grep "^%{l_nusr}:" /etc/passwd; ypmatch "%{l_nusr}" passwd; nismatch "%{l_nusr}" passwd; nidump passwd . | grep "^%{l_nusr}:") 2>/dev/null | sed -e 'q' | awk -F: '{ print $3; }')
   123 %l_ngid                  %((getent group  "%{l_ngrp}"; grep "^%{l_ngrp}:" /etc/group;  ypmatch "%{l_ngrp}" group;  nismatch "%{l_ngrp}" group;  nidump group  . | grep "^%{l_nusr}:") 2>/dev/null | sed -e 'q' | awk -F: '{ print $3; }')
   125 #   backward compatibility (openpkg < 20020204)
   126 %l_fsusr                 %{l_musr}
   127 %l_fsgrp                 %{l_mgrp}
   128 %l_npuid                 %{l_nuid}
   129 %l_npgid                 %{l_ngid}
   131 #   define the installation hierarchy (used parts)
   132 %l_prefix                @l_prefix@
   133 %l_prefix_static         @l_prefix_static@
   135 #   define the installation hierarchy (unused parts)
   136 %l_exec_prefix           %{l_prefix}
   137 %l_bindir                %{l_prefix}/bin
   138 %l_sbindir               %{l_prefix}/sbin
   139 %l_libexecdir            %{l_prefix}/libexec
   140 %l_datadir               %{l_prefix}/share
   141 %l_sysconfdir            %{l_prefix}/etc
   142 %l_sharedstatedir        %{l_prefix}/com
   143 %l_localstatedir         %{l_prefix}/var
   144 %l_libdir                %{l_prefix}/lib
   145 %l_includedir            %{l_prefix}/include
   146 %l_infodir               %{l_prefix}/info
   147 %l_mandir                %{l_prefix}/man
   148 %l_docdir                %{l_prefix}/doc
   150 #   provide killer macro "%{l_value -s|-b|-c (l_xxx ...|-a|-A)}" which
   151 #   expands to the values of previous l_xxx variables in this file. With
   152 #   option "-s" it expands into a chain of "-e 's;<name>;<value>;g'"
   153 #   constructs for used with Stream Editor sed(1), with option "-b" it
   154 #   expands into a chain of "<name>='<value>';" constructs for use with
   155 #   Bourne-Shell sh(1), with option "-c" it expands into a chain of "set
   156 #   <name> = '<value>';" constructs for use with C-Shell csh(1). But
   157 #   be careful, <value> currently (for expansion speed reasons) is not
   158 #   escaped, so make sure the values of the above macros do not contain
   159 #   ";" for "-s" and ";" for "-b" and "-c". You can either specify one
   160 #   or more names of variables to expand or use "-a" for mostly all
   161 #   variables and "-A" for really all variables.
   162 %l_value(sbcaA)          %{expand:%(l=""; for x in `if [ ".%*" != . ]; then echo "%* "; else p=""; if [ ".%{-a:yes}" = .yes ]; then p="^%%l_(prefix|[smrn](usr|grp|uid|gid))"; elif [ ".%{-A:yes}" = .yes ]; then p="^%%l_"; fi; if [ ".$p" != . ]; then egrep "$p" %{l_prefix}/etc/openpkg/rpmmacros | sed -e '/^%%l_value/,$d' -e 's;^%%\\(l_[a-z1-9_]*\\).*;\\1;'; fi; fi`; do e=""; if [ ".%{-s:yes}" = .yes ]; then e="-e 's;@$x@;%%{$x};g'"; elif [ ".%{-b:yes}" = .yes ]; then e="$x='%%{$x}';"; elif [ ".%{-c:yes}" = .yes ]; then e="set $x = '%%{$x}';"; else e="%%{$x}"; fi; if [ ".$l" = . ]; then l="$e"; else l="$l $e"; fi; done; echo "$l")}
   164 #   local version of the empty macro
   165 %l_nil                   %{nil}
   167 #   override the internal RPM hierarchy variables
   168 %_usr                    %{nil}
   169 %_var                    %{nil}
   170 %_usrsrc                 %{nil}
   171 %_topdir                 %{nil}
   172 %_dbpath                 %{l_prefix}/RPM/DB
   173 %_builddir               %{l_prefix}/RPM/TMP
   174 %_tmppath                %{l_prefix}/RPM/TMP
   175 %_sourcedir              %{l_prefix}/RPM/SRC/%{name}
   176 %_specdir                %{l_prefix}/RPM/SRC/%{name}
   177 %_rpmdir                 %{l_prefix}/RPM/PKG
   178 %_srcrpmdir              %{l_prefix}/RPM/PKG
   179 %_repackage_dir          %{l_prefix}/RPM/PKG
   180 %_cache_dbpath           %{l_prefix}/RPM/PKG
   181 %_solve_dbpath           %{l_prefix}/RPM/PKG
   182 %_solve_pkgsdir          %{l_prefix}/RPM/PKG
   183 %_defaultdocdir          %{l_docdir}
   185 #   complement the %{SOURCE<n>} and %{PATCH<n>} with %{SOURCE <file>} and %{PATCH <file>}
   186 %SOURCE()                %(f="%1"; if [ -f "%{_specdir}/$f" ]; then echo "%{_specdir}/$f"; else echo "%{_sourcedir}/$f"; fi)
   187 %PATCH()                 %(f="%1"; if [ -f "%{_specdir}/$f" ]; then echo "%{_specdir}/$f"; else echo "%{_sourcedir}/$f"; fi)
   189 #   override RPM's absolute tool paths with relative ones
   190 #   (because if you upgrade RPM it would hard-code tools in own hierarchy, too)
   191 %__awk                   awk
   192 %__bzip2                 %{_bzip2bin}
   193 %__cat                   cat
   194 %__chgrp                 chgrp
   195 %__chmod                 chmod
   196 %__chown                 chown
   197 %__cp                    cp
   198 %__cpio                  cpio
   199 %__grep                  grep
   200 %__gzip                  %{_gzipbin}
   201 %__id                    id
   202 %__install               install
   203 %__ln_s                  ln -s
   204 %__make                  make
   205 %__mkdir                 mkdir
   206 %__mkdir_p               %{l_shtool} mkdir -p
   207 %__mv                    mv
   208 %__patch                 %{_patchbin}
   209 %__perl                  perl
   210 %__pgp                   %{_pgpbin}
   211 %__rm                    rm
   212 %__rsh                   rsh
   213 %__sed                   sed
   214 %__ssh                   ssh
   215 %__tar                   %{_tarbin}
   216 %__unzip                 %{_unzipbin}
   218 #   override some more RPM macros where the default value is not acceptable
   219 %_dependency_whiteout    %{nil}
   220 %__debug_install_post    %{nil}
   221 %_unpackaged_files_terminate_build 0
   223 #   provide fixed paths to tools (standard)
   224 %_gzipbin                %{l_prefix}/lib/openpkg/gzip
   225 %_bzip2bin               %{l_prefix}/lib/openpkg/bzip2
   226 %_patchbin               %{l_prefix}/lib/openpkg/patch
   227 %_tarbin                 %{l_prefix}/lib/openpkg/tar
   228 %_unzipbin               %{l_prefix}/lib/openpkg/unzip
   230 #   provide path to platform identification file
   231 %__platform              %{l_prefix}/etc/openpkg/platform
   233 #   provide fixed paths to tools (additional)
   234 %l_rc                    %{l_prefix}/etc/rc
   235 %l_rpm                   %{l_prefix}/libexec/openpkg/rpm
   236 %l_rpm2cpio              %{l_prefix}/libexec/openpkg/rpm2cpio
   237 %l_rpm_config            %{l_prefix}/libexec/openpkg/rpm-config
   238 %l_lsync                 %{l_prefix}/libexec/openpkg/lsync
   239 %l_rpmtool               %{l_prefix}/lib/openpkg/rpmtool
   240 %l_shtool                %{l_prefix}/lib/openpkg/shtool
   241 %l_curl                  %{l_prefix}/lib/openpkg/curl
   242 %l_bash                  %{l_prefix}/lib/openpkg/bash
   243 %l_uuid                  %{l_prefix}/lib/openpkg/uuid
   245 #   provide smart paths to tools
   246 %l_tool_locate()         %(if [ ".%{expand:%%{?use_%1}}" != . ]; then tool="%{expand:%%{use_%1}}"; elif [ -f "%{l_prefix}/bin/%2" ]; then tool="%{l_prefix}/bin/%2"; elif [ -f "%{l_prefix}/lib/openpkg/%2" ]; then tool="%{l_prefix}/lib/openpkg/%2"; else tool="%2"; fi; echo $tool)
   247 %l_gzip                  %{l_tool_locate gzip     gzip}
   248 %l_bzip2                 %{l_tool_locate bzip2    bzip2}
   249 %l_tar                   %{l_tool_locate tar      tar}
   250 %l_make                  %{l_tool_locate make     make}
   251 %l_cc                    %{l_tool_locate cc       cc}
   252 %l_ar                    %{l_tool_locate ar       ar}
   253 %l_ld                    %{l_tool_locate ld       ld}
   254 %l_as                    %{l_tool_locate as       as}
   255 %l_strip                 %{l_tool_locate strip    strip}
   256 %l_cxx                   %{l_tool_locate cxx      c++}
   257 %l_patch                 %{l_tool_locate patch    patch}
   258 %l_sed                   %{l_tool_locate sed      sed}
   259 %l_grep                  %{l_tool_locate grep     grep}
   260 %l_awk                   %{l_tool_locate awk      awk}
   261 %l_autoconf              %{l_tool_locate autoconf autoconf}
   262 %l_automake              %{l_tool_locate automake automake}
   263 %l_libtool               %{l_tool_locate libtool  libtool}
   264 %l_flex                  %{l_tool_locate flex     flex}
   265 %l_bison                 %{l_tool_locate bison    bison}
   266 %l_perl                  %{l_tool_locate perl     perl}
   267 %l_miniperl              %{l_tool_locate miniperl miniperl}
   268 %l_openssl               %{l_tool_locate openssl  openssl}
   269 %l_xmkmf                 %{l_tool_locate xmkmf    xmkmf}
   270 %l_vcheck                %{l_tool_locate vcheck   vcheck}
   272 #   tool options
   273 %l_mflags(O)             %(%{l_sane_env}; %{l_rpmtool} mflags %{-O:-O} "%{l_make}")
   274 %l_cflags(O)             %(%{l_sane_env}; %{l_rpmtool} cflags %{-O:-O} "%{l_cc}")
   275 %l_cxxflags(O)           %(%{l_sane_env}; %{l_rpmtool} cflags %{-O:-O} "%{l_cxx}")
   276 %l_cppflags(i)           %(%{l_sane_env}; %{l_rpmtool} cppflags -p%{l_prefix} %{-i:-i} -- %*)
   277 %l_ldflags()             %(%{l_sane_env}; %{l_rpmtool} ldflags  -p%{l_prefix}          -- %*)
   279 #   OSSP fake syslog library
   280 %l_fsl_ldflags()         %(if [ ".%{with_fsl}" = ".yes" ]; then flags=`(%{l_prefix}/bin/fsl-config --all --ldflags) 2>/dev/null`; else flags=''; fi; echo $flags)
   281 %l_fsl_libs()            %(if [ ".%{with_fsl}" = ".yes" ]; then flags=`(%{l_prefix}/bin/fsl-config --all --libs   ) 2>/dev/null`; else flags=''; fi; echo $flags)
   283 #   determine the current username
   284 %l_whoami                %((id -un) 2>/dev/null || (whoami) 2>/dev/null || (who am i | cut "-d " -f1) 2>/dev/null || echo $LOGNAME)
   286 #   macros for dynamically generating a %files list
   287 %l_files_defattr         '%%defattr(-,%{l_musr},%{l_mgrp})'
   288 %l_files_all             '%{l_prefix}'
   289 %l_files_noshared        '%%not %%dir {%{l_prefix},%{l_prefix}/*,%{l_prefix}/etc/rc.d,%{l_prefix}/man/*}'
   290 %l_files_std()           %l_files_defattr %l_files_all %l_files_noshared
   292 #   path to local build root
   293 %l_buildroot             %{_tmppath}/%{name}-%{version}-root
   295 #   path to local temporary location
   296 %l_tmpdir()              %{_tmppath}
   297 %l_tmpfile()             %{l_tmpdir}/%{name}-%{version}-%{release}-tmp%{?1:-%1}
   299 #   executable path for %post/%pre
   300 %_install_script_path    %{l_prefix}/bin:%{l_prefix}/sbin:/bin:/sbin:/usr/bin:/usr/sbin
   302 #   names of RPM files
   303 %l_srcrpmfilename        %%{NAME}-%%{VERSION}-%%{RELEASE}.src.rpm
   304 %l_binrpmfilename        %%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}-%%{OS}-%{l_tag}.rpm
   306 #   override the name scheme for RPM files
   307 %_rpmfilename            %{l_binrpmfilename}
   308 %_build_name_fmt         %{l_binrpmfilename}
   309 %_repackage_name_fmt     %{l_binrpmfilename}
   310 %_solve_name_fmt         %{_solve_pkgsdir}/%{l_binrpmfilename}
   312 #   override the payload compression for the CPIO parts of an RPM
   313 #   (we use the equivalent of "bzip2 -9")
   314 %_source_payload         w9.bzdio
   315 %_binary_payload         w9.bzdio
   317 #   package signature type is OpenPGP via GnuPG
   318 %__gpg                   %{l_prefix}/bin/gpg
   319 %_signature              gpg
   320 %__vsflags               1
   322 #   two macro-processor add-ons (should be part of forthcoming RPM releases)
   323 %ifdef()                 %if %{expand:%%{?%{1}:1}%%{!?%{1}:0}}
   324 %ifndef()                %if %{expand:%%{?%{1}:0}%%{!?%{1}:1}}
   326 #   macro for package option configuration
   327 %option()                %{expand:%%{!?%{1}:%%global %*}} %{expand:%%global _options %{?_options:%{_options}:}%{1}=%%%{1}} \
   328 Provides: %{name}::%{1} = %(echo '%{expand:%%{%{1}}}' | sed -e 's;%%;%%%%;g' -e 's; ;%%20;g' -e 's;	;%%09;g')
   330 #   macros for NoSource/NoPatch (distribution restriction) integrity handling
   331 %NoSource()              %(if [ ".%{?restriction}" != ".no" ]; then echo "NoSource: %1"; fi)%{expand:%%global _restricted %{?_restricted:%{_restricted}} %%{SOURCEURL%1}}
   332 %NoPatch()               %(if [ ".%{?restriction}" != ".no" ]; then echo "NoPatch: %1"; fi)%{expand:%%global _restricted %{?_restricted:%{_restricted}} %%{PATCHURL%1}}
   333 %integrity()             %{l_check_nosource}
   335 #   macros for checking build environment
   336 %l_check_nosource()      %(%{l_sane_env}; checkok=1; checkinfo=`echo "Sorry, this OpenPKG package contains a DISTRIBUTION RESTRICTED source file."; echo "Before you can proceed building this package, fetch missing files MANUALLY:"`; for url in . %{?_restricted}; do [ ".$url" = .. ] && continue; eval `echo "$url" | sed -e 's!^\\(.*\\)::/\\([^/][^/]*\\)$!;url=\\"\\1\\"; file=\\"\\2\\"!' -e 's!^\\([^:;][^:]*://.*/\\)\\([^/][^/]*\\)$!;url=\\"\\1\\"; file=\\"\\2\\"!' -e 's:^\\([^;].*\\)$:;url="(unknown location) "; file="\\1":' -e 's:^;::'`; if [ ! -f "%{_specdir}/$file" ] && [ ! -f "%{_sourcedir}/$file" ]; then checkok=0; checkinfo=`echo "${checkinfo}"; echo ""; echo "from ${url}"; echo "file ${file}"; echo "here %{_sourcedir}/$file"`; fi; done; if [ $checkok -ne 1 ]; then echo "set +x"; echo "$checkinfo" | %{l_rpmtool} msg -b -t error | sed -e 's;^;echo ";' -e 's;$;";'; echo "exit 1"; fi)
   337 %l_check_class()         %(%{l_sane_env}; class=`echo "@:%{?class}:%{?distribution}" | sed -e 's;^@:\\([^:][^:]*\\):.*$;\\1;' -e 's;^@:.*\\[\\(.*\\)\\].*$;\\1;' -e 's;^@:.*$;JUNK;'`; %{l_rpmtool} check-class "$class")
   338 %prep %%prep\
   339     %{l_check_nosource} \
   340     %{l_check_class} \
   341     %{nil}
   343 #   macro-processor add-on for testing external conditions
   344 %l_test(pfd)             %(if [ ".%{?-p:yes}" = .yes ]; then %{l_rpm} -q %1 >/dev/null 2>&1; rc=$?; elif [ ".%{?-f:yes}" = .yes ]; then test -f %1; rc=$?; elif [ ".%{?-d:yes}" = .yes ]; then test -d %1; rc=$?; fi; if [ ".$rc" = .0 ]; then echo "yes"; else echo "no"; fi)
   346 #   default list of vendor source fetching locations
   347 %l_fetch_mirror_0        -
   348 %l_fetch_mirror_1        -
   349 %l_fetch_mirror_2        -
   350 %l_fetch_mirror_3        -
   351 %l_fetch_mirror_4        -
   352 %l_fetch_mirror_5        -
   353 %l_fetch_mirror_6        -
   354 %l_fetch_mirror_7        -
   355 %l_fetch_mirror_8        -
   356 %l_fetch_mirror_9        -
   357 %l_fetch_backup_0        -
   358 %l_fetch_backup_1        -
   359 %l_fetch_backup_2        -
   360 %l_fetch_backup_3        -
   361 %l_fetch_backup_4        -
   362 %l_fetch_backup_5        -
   363 %l_fetch_backup_6        -
   364 %l_fetch_backup_7        -
   365 %l_fetch_backup_8        -
   366 %l_fetch_backup_9        ftp://ftp.openpkg.org/sources/DST/%{name}/
   368 #   sane build environment setup
   369 %l_build_path            %(if [ -d %{l_prefix}/lib/openpkg/override ]; then echo "%{l_prefix}/lib/openpkg/override:"; fi)%{l_prefix}/bin:%{l_prefix}/sbin:@l_build_path@%(if [ -d %{l_prefix}/lib/openpkg/fallback ]; then echo ":%{l_prefix}/lib/openpkg/fallback"; fi)
   370 %l_build_ldlp            %{l_prefix}/lib:@l_build_ldlp@
   371 %l_build_ulim            @l_build_ulim@
   372 %l_build_shell_cmd       %{l_prefix}/lib/openpkg/bash
   373 %l_build_shell_opt       --norc --noprofile --posix
   375 #   sane build environment for manual usage in macros (currently just $PATH)
   376 %l_sane_env              PATH="%{l_build_path}"; export PATH; LD_LIBRARY_PATH="%{l_build_ldlp}"; export LD_LIBRARY_PATH
   378 #   sane build environment for %prep/%build/%install
   379 %_buildshell             env -i %{l_build_shell_cmd} %{l_build_shell_opt}
   380 %___build_pre \
   381 HOME="%{l_prefix}"\
   382 SHELL="%{l_build_shell_cmd}"\
   383 TERM="%(echo $TERM)"\
   384 TMPDIR="%{_tmppath}"\
   385 USER="%(echo $USER)"\
   386 LOGNAME="%(echo $LOGNAME)"\
   387 PATH="%{l_build_path}"\
   388 LD_LIBRARY_PATH="%{l_build_ldlp}"\
   389 export HOME SHELL TMPDIR USER LOGNAME PATH LD_LIBRARY_PATH\
   390 RPM_SOURCE_DIR=\"%{u2p:%{_sourcedir}}\"\
   391 RPM_BUILD_DIR=\"%{u2p:%{_builddir}}\"\
   392 RPM_OPT_FLAGS=\"%{optflags}\"\
   393 RPM_ARCH=\"%{l_host_arch}\"\
   394 RPM_OS=\"%{l_host_os}\"\
   395 RPM_DOC_DIR=\"%{_docdir}\"\
   396 RPM_PACKAGE_NAME=\"%{name}\"\
   397 RPM_PACKAGE_VERSION=\"%{version}\"\
   398 RPM_PACKAGE_RELEASE=\"%{release}\"\
   399 export RPM_SOURCE_DIR RPM_BUILD_DIR RPM_OPT_FLAGS RPM_ARCH RPM_OS RPM_DOC_DIR\
   400 export RPM_PACKAGE_NAME RPM_PACKAGE_VERSION RPM_PACKAGE_RELEASE\
   401 %{?buildroot:RPM_BUILD_ROOT=\"%{u2p:%{buildroot}}\"\
   402 export RPM_BUILD_ROOT}\
   403 %{l_build_ulim}\
   404 umask 022\
   405 %{verbose:set -x}%{!verbose:exec >/dev/null}\
   406 cd %{u2p:%{_builddir}}
   408 #   special %track section support
   409 %__spec_track_template VCFILE="%{_tmppath}/%{name}-%{version}-%{release}.vc"\
   410 rm -f $VCFILE\
   411 set -o noclobber\
   412 sed -e 's;^ *#.*$;;' -e 's;^    ;;' >$VCFILE <<'EOF'\
   413 %{nil}
   414 %__spec_track_post EOF\
   415 if [ ".%{?___track_dump}" = .yes ]; then\
   416     cat $VCFILE\
   417 else\
   418     if [ ! -f "%{l_vcheck}" ]; then\
   419         echo "rpm:ERROR: Vendor source tracking functionality currently not available because"\
   420         echo "rpm:ERROR: URL tracking tool vcheck(1) not found under \\"%{l_vcheck}\\"."\
   421         echo "rpm:ERROR: You have to install the OpenPKG \\"vcheck\\" package first or set"\
   422         echo "rpm:ERROR: the RPM macro \\"%%{l_vcheck}\\" to the path of your vcheck(1) tool."\
   423         exit 0\
   424     fi\
   425     ( echo "config = {"\
   426       echo "}"\
   427     ) >>$VCFILE\
   428     %{l_vcheck} -v -f $VCFILE || true\
   429 fi\
   430 rm -f $VCFILE\
   431 %{nil}

mercurial