diff options
Diffstat (limited to 'PKGBUILD')
-rw-r--r-- | PKGBUILD | 56 |
1 files changed, 40 insertions, 16 deletions
@@ -41,12 +41,43 @@ sha256sums=('a5bf2c2d53049ad64acf2ed8b6dc954ff261c4b996ce1cc81471e5baaf5e40cd' sha512sums=('c8b2abb2d0e9ccf972241dda5154c0ddd1ba9cfe6c721c242c40c90cf29e8d0b2c6a559907318cd191232f699a42425cc4148aebcaab6aa111f1cb5439777ce7' '736e1785c443c4d129c8801a127410012889f46691259e8a7f6a54106a0647beb5b6267aabb78b3ed0a1c7a9d8ce216e159515d3aad425812e5be52c8b58e4ee') -# build instructions are adapted from upstream file -# cndrvcups-lb.spec - prepare() { set -u bsdtar -xf "linux-UFRII-drv-v${_pkgver//\./}-uken/Sources/${_srcdir}-1.tar.gz" + + cd "${_srcdir}" + + local _specs=(cndrvcups-*.spec) + if [ "${#_specs[@]}" -ne 1 ]; then + echo 'Too many or too few spec files' + set +u + false + fi + + # allgen.sh where available is not useful for packaging + # Debian rules has some undesirable functionality + # The spec file packages well and is easy to fix and convert to shell + + # Generate make from spec %setup, %build + sed -n -e '/^%setup/,/^%install/ p' "${_specs[@]}" | \ + grep -v '^%' | \ + sed -e '# Convert spec %{VAR} to shell ${VAR}' \ + -e 's:%{:${:g' \ + -e '# Add autoreconf before autogen lines' \ + -e '# Some autogen left out --prefix. More than one --prefix dont cause problems so we can add it to all of them.' \ + -e 's:^./autogen.sh\b:autoreconf -fi\n& --prefix=${_prefix}:g ' \ + > 'make.Arch' + + # Generate make install from spec %install + sed -n -e '/^%install/,/^%clean/ p' "${_specs[@]}" | \ + grep -v '^%' | \ + sed -e '# Convert spec %{VAR} to shell ${VAR}' \ + -e 's:%{:${:g' \ + -e '# Quote to handle path with spaces' \ + -e 's:${RPM_BUILD_ROOT}:"&":g' \ + -e '# ln -f hides problems so should be avoided' \ + -e 's:ln -sf :ln -s :g' \ + > 'make.install.Arch' set +u } @@ -67,12 +98,9 @@ build() { cd "${_srcdir}" local _vars; _setvars - sed -n -e '/^%setup/,/^%install/ p' cndrvcups-*.spec | \ - grep -v '^%' | \ - sed -e 's:%{:${:g' \ - -e 's:^./autogen.sh\b:autoreconf -fi\n& --prefix=${_prefix}:g ' \ - | env "${_vars[@]}" \ - sh -e -u -x -- + # Bash does not recognize var assigments hidden by array expansion so we use env. + env "${_vars[@]}" \ + sh -e -u -x 'make.Arch' set +u } @@ -83,13 +111,9 @@ package() { cd "${_srcdir}" local _vars; _setvars - sed -n -e '/^%install/,/^%clean/ p' cndrvcups-*.spec | \ - grep -v '^%' | \ - sed -e 's:%{:${:g' \ - -e 's:${RPM_BUILD_ROOT}:"&":g' \ - | env RPM_BUILD_ROOT="${pkgdir}" \ - "${_vars[@]}" \ - sh -e -u -x -- + env "${_vars[@]}" \ + RPM_BUILD_ROOT="${pkgdir}" \ + sh -e -u -x 'make.install.Arch' _fin |