Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[solved] nspr-9999: no configure script found
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Unsupported Software
View previous topic :: View next topic  
Author Message
shoober420
Apprentice
Apprentice


Joined: 22 May 2017
Posts: 223

PostPosted: Tue May 11, 2021 6:19 pm    Post subject: [solved] nspr-9999: no configure script found Reply with quote

Ive tried everything i can think of to get this to work. This package uses configure.in, so i dont know if thats one of the reasons its having issues. If i manually run "./configure || die" under "src_prepare", it will get a little further, but then cant find the configure script when building the 32bit package. If i try "./configure.ac || die", it says permission denied. The build system will just not find the configure scripts, and they are for sure in the "${WORKDIR}/${PN}-${PV}" folder, and the ebuild directs to them as such. Heres the ebuild and log.

ebuild:
Code:

# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=7

inherit autotools toolchain-funcs multilib-minimal

MIN_PV="$(ver_cut 2)"

DESCRIPTION="Netscape Portable Runtime"
HOMEPAGE="https://www.mozilla.org/projects/nspr/"

if [[ ${PV} == 9999 ]]; then
        inherit mercurial
        EHG_REPO_URI="https://hg.mozilla.org/projects/${PN}"
fi

LICENSE="|| ( MPL-2.0 GPL-2 LGPL-2.1 )"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris ~x86-solaris"
IUSE="debug elibc_musl"

MULTILIB_CHOST_TOOLS=(
   /usr/bin/nspr-config
)

S="${WORKDIR}/${PN}-${PV}"

PATCHES=(
   "${FILESDIR}"/${PN}-4.23-prtime.patch
   "${FILESDIR}"/${PN}-4.7.1-solaris.patch
   "${FILESDIR}"/${PN}-4.10.6-solaris.patch
   "${FILESDIR}"/${PN}-4.8.4-darwin-install_name.patch
   "${FILESDIR}"/${PN}-4.8.9-link-flags.patch
   # We do not need to pass -L$libdir via nspr-config --libs
   "${FILESDIR}"/${PN}-4.9.5_nspr_config.patch
)

src_prepare() {
#   cd "${S}"/nspr || die

   default

   use elibc_musl && eapply "${FILESDIR}"/${PN}-4.21-ipv6-musl-support.patch

   # rename configure.in to configure.ac for new autotools compatibility
   if [[ -e "${S}"/configure.in ]] ; then
      einfo "Renaming configure.in to configure.ac"
      mv "${S}"/configure.{in,ac} || die
   else
      elog "configure.in rename logic can be removed from ebuild."
   fi

   # We must run eautoconf to regenerate configure
#   eautoconf     
        eautoreconf         

   # make sure it won't find Perl out of Prefix
   sed -i -e "s/perl5//g" "${S}"/configure || die

   # Respect LDFLAGS
   sed -i -e 's/\$(MKSHLIB) \$(OBJS)/\$(MKSHLIB) \$(LDFLAGS) \$(OBJS)/g' \
      "${S}"/config/rules.mk || die
}

multilib_src_configure() {
   # We use the standard BUILD_xxx but nspr uses HOST_xxx
   tc-export_build_env BUILD_CC
   export HOST_CC=${BUILD_CC} HOST_CFLAGS=${BUILD_CFLAGS} HOST_LDFLAGS=${BUILD_LDFLAGS}
   tc-export AR CC CXX RANLIB
   [[ ${CBUILD} != ${CHOST} ]] \
      && export CROSS_COMPILE=1 \
      || unset CROSS_COMPILE

   local myconf=(
      --libdir="${EPREFIX}/usr/$(get_libdir)"
      $(use_enable debug)
      $(use_enable !debug optimize)
   )

   # The configure has some fancy --enable-{{n,x}32,64bit} switches
   # that trigger some code conditional to platform & arch. This really
   # matters for the few common arches (x86, ppc) but we pass a little
   # more of them to be future-proof.

   # use ABI first, this will work for most cases
   case "${ABI}" in
      alpha|arm|hppa|m68k|o32|ppc|s390|sh|sparc|x86) ;;
      n32) myconf+=( --enable-n32 );;
      x32) myconf+=( --enable-x32 );;
      s390x|*64) myconf+=( --enable-64bit );;
      default) # no abi actually set, fall back to old check
         einfo "Running a short build test to determine 64bit'ness"
         echo > "${T}"/test.c || die
         ${CC} ${CFLAGS} ${CPPFLAGS} -c "${T}"/test.c -o "${T}"/test.o || die
         case $(file "${T}"/test.o) in
            *32-bit*x86-64*) myconf+=( --enable-x32 );;
            *64-bit*|*ppc64*|*x86_64*) myconf+=( --enable-64bit );;
            *32-bit*|*ppc*|*i386*) ;;
            *) die "Failed to detect whether your arch is 64bits or 32bits, disable distcc if you're using it, please";;
         esac ;;
      *) ;;
   esac

   # Ancient autoconf needs help finding the right tools.
   LC_ALL="C" ECONF_SOURCE="${S}/nspr" \
   ac_cv_path_AR="${AR}" \
   econf "${myconf[@]}"
}

multilib_src_install() {
   # Their build system is royally confusing, as usual
   MINOR_VERSION=${MIN_PV} # Used for .so version
   emake DESTDIR="${D}" install

   einfo "removing static libraries as upstream has requested!"
   rm "${ED}"/usr/$(get_libdir)/*.a || die "failed to remove static libraries."

   # install nspr-config
   dobin config/nspr-config

   # Remove stupid files in /usr/bin
   rm "${ED}"/usr/bin/prerr.properties || die

   # This is used only to generate prerr.c and prerr.h at build time.
   # No other projects use it, and we don't want to depend on perl.
   # Talked to upstream and they agreed w/punting.
   rm "${ED}"/usr/bin/compile-et.pl || die
}


build log:
Code:

$ doas emerge -av --autounmask =dev-libs/nspr-9999

These are the packages that would be merged, in order:

Calculating dependencies 
 * IMPORTANT: 9 news items need reading for repository 'gentoo'.
 * Use eselect news read to view new items.

 * Digest verification failed:
 * /var/db/repos/localrepo/dev-libs/gmp/gmp-9999.ebuild
 * Reason: Filesize does not match recorded size
 * Got: 2736
 * Expected: 2857
... done!
[ebuild     U  ] dev-libs/nspr-9999::localrepo [4.30::gentoo] USE="-debug" ABI_X86="32 (64) (-x32)" 0 KiB

Total: 1 package (1 upgrade), Size of downloads: 0 KiB

Would you like to merge these packages? [Yes/No]
>>> Verifying ebuild manifests

>>> Emerging (1 of 1) dev-libs/nspr-9999::localrepo
>>> Unpacking source...
 * Updating /var/cache/distfiles/hg-src/nspr/nspr from https://hg.mozilla.org/projects/nspr
pulling from https://hg.mozilla.org/projects/nspr
searching for changes
no changes found
 * Creating working directory in /var/tmp/portage/dev-libs/nspr-9999/work/nspr-9999 (target revision: default)
updating to branch default
611 files updated, 0 files merged, 0 files removed, 0 files unresolved
 * Work directory: /var/tmp/portage/dev-libs/nspr-9999/work/nspr-9999 global id: afc10f9c1309 (was default branch: default
>>> Source unpacked in /var/tmp/portage/dev-libs/nspr-9999/work
>>> Preparing source in /var/tmp/portage/dev-libs/nspr-9999/work/nspr-9999 ...
 * Applying nspr-4.23-prtime.patch ...
 [ ok ]
 * Applying nspr-4.7.1-solaris.patch ...
patching file pr/src/Makefile.in
Hunk #1 succeeded at 55 with fuzz 2 (offset -40 lines).
 [ ok ]
 * Applying nspr-4.10.6-solaris.patch ...
 [ ok ]
 * Applying nspr-4.8.4-darwin-install_name.patch ...
patching file configure.in
Hunk #1 succeeded at 1346 with fuzz 2 (offset 339 lines).
patching file configure
Hunk #1 succeeded at 6483 with fuzz 2 (offset 5476 lines).
 [ ok ]
 * Applying nspr-4.8.9-link-flags.patch ...
patching file config/autoconf.mk.in
Hunk #1 succeeded at 90 (offset 9 lines).
patching file config/config.mk
Hunk #1 succeeded at 40 with fuzz 1 (offset -32 lines).
 [ ok ]
 * Applying nspr-4.9.5_nspr_config.patch ...
 [ ok ]
 * Renaming configure.in to configure.ac
 * Running eautoreconf in '/var/tmp/portage/dev-libs/nspr-9999/work/nspr-9999' ...
 * Running 'aclocal' ...
 [ ok ]
 * Running 'autoconf --force' ...
 [ ok ]
 * Running elibtoolize in: nspr-9999/
>>> Source prepared.
>>> Configuring source in /var/tmp/portage/dev-libs/nspr-9999/work/nspr-9999 ...
 * abi_x86_32.x86: running multilib-minimal_abi_src_configure
 * ERROR: dev-libs/nspr-9999::localrepo failed (configure phase):
 *   no configure script found
 *
 * Call stack:
 *          ebuild.sh, line  125:  Called src_configure
 *        environment, line 2264:  Called multilib-minimal_src_configure
 *        environment, line 1666:  Called multilib_foreach_abi 'multilib-minimal_abi_src_configure'
 *        environment, line 1919:  Called multibuild_foreach_variant '_multilib_multibuild_wrapper' 'multilib-minimal_abi_src_configure'
 *        environment, line 1596:  Called _multibuild_run '_multilib_multibuild_wrapper' 'multilib-minimal_abi_src_configure'
 *        environment, line 1594:  Called _multilib_multibuild_wrapper 'multilib-minimal_abi_src_configure'
 *        environment, line  459:  Called multilib-minimal_abi_src_configure
 *        environment, line 1660:  Called multilib_src_configure
 *        environment, line 2172:  Called econf '--libdir=/usr/lib' '--disable-debug' '--enable-optimize'
 *   phase-helpers.sh, line  686:  Called die
 * The specific snippet of code:
 *         die "no configure script found"
 *
 * If you need support, post the output of `emerge --info '=dev-libs/nspr-9999::localrepo'`,
 * the complete build log and the output of `emerge -pqv '=dev-libs/nspr-9999::localrepo'`.
 * The complete build log is located at '/var/tmp/portage/dev-libs/nspr-9999/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/dev-libs/nspr-9999/temp/environment'.
 * Working directory: '/var/tmp/portage/dev-libs/nspr-9999/work/nspr-9999-abi_x86_32.x86'
 * S: '/var/tmp/portage/dev-libs/nspr-9999/work/nspr-9999'

>>> Failed to emerge dev-libs/nspr-9999, Log file:

>>>  '/var/tmp/portage/dev-libs/nspr-9999/temp/build.log'
 * Messages for package dev-libs/nspr-9999:
 * ERROR: dev-libs/nspr-9999::localrepo failed (configure phase):
 *   no configure script found
 *
 * Call stack:
 *          ebuild.sh, line  125:  Called src_configure
 *        environment, line 2264:  Called multilib-minimal_src_configure
 *        environment, line 1666:  Called multilib_foreach_abi 'multilib-minimal_abi_src_configure'
 *        environment, line 1919:  Called multibuild_foreach_variant '_multilib_multibuild_wrapper' 'multilib-minimal_abi_src_configure'
 *        environment, line 1596:  Called _multibuild_run '_multilib_multibuild_wrapper' 'multilib-minimal_abi_src_configure'
 *        environment, line 1594:  Called _multilib_multibuild_wrapper 'multilib-minimal_abi_src_configure'
 *        environment, line  459:  Called multilib-minimal_abi_src_configure
 *        environment, line 1660:  Called multilib_src_configure
 *        environment, line 2172:  Called econf '--libdir=/usr/lib' '--disable-debug' '--enable-optimize'
 *   phase-helpers.sh, line  686:  Called die
 * The specific snippet of code:
 *         die "no configure script found"
 *
 * If you need support, post the output of `emerge --info '=dev-libs/nspr-9999::localrepo'`,
 * the complete build log and the output of `emerge -pqv '=dev-libs/nspr-9999::localrepo'`.
 * The complete build log is located at '/var/tmp/portage/dev-libs/nspr-9999/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/dev-libs/nspr-9999/temp/environment'.
 * Working directory: '/var/tmp/portage/dev-libs/nspr-9999/work/nspr-9999-abi_x86_32.x86'
 * S: '/var/tmp/portage/dev-libs/nspr-9999/work/nspr-9999'


Last edited by shoober420 on Wed May 12, 2021 3:57 am; edited 1 time in total
Back to top
View user's profile Send private message
shoober420
Apprentice
Apprentice


Joined: 22 May 2017
Posts: 223

PostPosted: Wed May 12, 2021 3:57 am    Post subject: Reply with quote

I finally got it. I had to change line 107 to only ${S}, instead of ${S}/nspr.

https://github.com/shoober420/shoober420-overlay/blob/main/dev-libs/nspr/nspr-9999.ebuild
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Unsupported Software 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