Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 716182 - sci-geosciences/gpsd-9999 - empty variable used in sed hackery
Summary: sci-geosciences/gpsd-9999 - empty variable used in sed hackery
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal major (vote)
Assignee: Sci-geo Project
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-04-04 14:38 UTC by Martin Mokrejš
Modified: 2021-08-09 23:48 UTC (History)
3 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Martin Mokrejš 2020-04-04 14:38:45 UTC
>>> Emerging (1 of 1) sci-geosciences/gpsd-9999::gentoo
>>> Unpacking source...
 * Repository id: gpsd_gpsd.git
 * Fetching https://gitlab.com/gpsd/gpsd.git ...
git fetch https://gitlab.com/gpsd/gpsd.git +HEAD:refs/git-r3/HEAD
git symbolic-ref refs/git-r3/sci-geosciences/gpsd/0/__main__ refs/git-r3/HEAD
 * Checking out https://gitlab.com/gpsd/gpsd.git to /scratch/var/tmp/portage/sci-geosciences/gpsd-9999/work/gpsd-9999 ...
git checkout --quiet refs/git-r3/HEAD
GIT update -->
   repository:               https://gitlab.com/gpsd/gpsd.git
   at the commit:            cfdafac13a80a5cb59b27fbfa6fbff69f310d123
>>> Source unpacked in /scratch/var/tmp/portage/sci-geosciences/gpsd-9999/work
>>> Preparing source in /scratch/var/tmp/portage/sci-geosciences/gpsd-9999/work/gpsd-9999 ...
 * Applying gpsd-3.19-do_not_rm_library.patch ...                                                                                                     [ ok ]
 * Using python3.6 in global scope
 * python_export() is part of private eclass API.
 * Please call python_get*() instead.
  File "<string>", line 1
    ; print(python_extensions['gps/packet'])
    ^
SyntaxError: invalid syntax
>>> Source prepared.

...

scons: done building targets.
WARNING: asciidoctor not found.
WARNING: Some documentation and html will not be built.
 * python2_7: running distutils-r1_run_phase distutils-r1_python_compile
python2.7 setup.py build
  File "setup.py", line 12
    Extension("gps.packet", , include_dirs=["."]),
                            ^
SyntaxError: invalid syntax
 * ERROR: sci-geosciences/gpsd-9999::gentoo failed (compile phase):
 *   (no error message)
 * 
 * Call stack:
 *     ebuild.sh, line  125:  Called src_compile
 *   environment, line 5016:  Called distutils-r1_src_compile
 *   environment, line 1582:  Called _distutils-r1_run_foreach_impl 'distutils-r1_python_compile'
 *   environment, line  478:  Called python_foreach_impl 'distutils-r1_run_phase' 'distutils-r1_python_compile'
 *   environment, line 4626:  Called multibuild_foreach_variant '_python_multibuild_wrapper' 'distutils-r1_run_phase' 'distutils-r1_python_compile'
 *   environment, line 3944:  Called _multibuild_run '_python_multibuild_wrapper' 'distutils-r1_run_phase' 'distutils-r1_python_compile'
 *   environment, line 3942:  Called _python_multibuild_wrapper 'distutils-r1_run_phase' 'distutils-r1_python_compile'
 *   environment, line 1148:  Called distutils-r1_run_phase 'distutils-r1_python_compile'
 *   environment, line 1573:  Called distutils-r1_python_compile
 *   environment, line 1443:  Called esetup.py 'build'
 *   environment, line 2710:  Called die
 * The specific snippet of code:
 *       "${@}" || die "${die_args[@]}";
 * 
 * If you need support, post the output of `emerge --info '=sci-geosciences/gpsd-9999::gentoo'`,
 * the complete build log and the output of `emerge -pqv '=sci-geosciences/gpsd-9999::gentoo'`.
 * The complete build log is located at '/scratch/var/tmp/portage/sci-geosciences/gpsd-9999/temp/build.log'.
 * The ebuild environment file is located at '/scratch/var/tmp/portage/sci-geosciences/gpsd-9999/temp/environment'.
 * Working directory: '/scratch/var/tmp/portage/sci-geosciences/gpsd-9999/work/gpsd-9999'
 * S: '/scratch/var/tmp/portage/sci-geosciences/gpsd-9999/work/gpsd-9999'



It seems the error is somewhere in the sed hackery inside the build. The followig is probably a wrong fix:

--- setup.py.ori	2020-04-04 16:20:11.652952840 +0200
+++ setup.py	2020-04-04 16:20:25.883051384 +0200
@@ -9,7 +9,7 @@
 	author_email = "gpsd-dev@lists.nongnu.org",
 	license = "BSD",
 	ext_modules=[
-		Extension("gps.packet", , include_dirs=["."]),
+		Extension("gps.packet", include_dirs=["."]),
 	],
 	packages = ['gps'],
 	scripts = [+ ['xgps', 'xgpsspeed']+ ['ubxtool'],


Probably, that was caused by some empty variable which need to be fixed instead.


# emerge --info

Portage 2.3.95 (python 3.7.7-final-0, default/linux/amd64/17.1/no-multilib, gcc-9.2.0, glibc-2.30-r6, 5.4.28 x86_64)
=================================================================
System uname: Linux-5.4.28-x86_64-Intel-R-_Core-TM-_i7-7820HQ_CPU_@_2.90GHz-with-gentoo-2.7
KiB Mem:    32814472 total,  10841396 free
KiB Swap:          0 total,         0 free
Timestamp of repository gentoo: Thu, 02 Apr 2020 15:00:01 +0000
Head commit of repository gentoo: 6aebe7a92127d1c223f7890e4687c568ce1cac2a
sh bash 5.0_p16
ld GNU ld (Gentoo 2.32 p2) 2.32.0
app-shells/bash:          5.0_p16::gentoo
dev-java/java-config:     2.2.0-r4::gentoo
dev-lang/perl:            5.30.1::gentoo
dev-lang/python:          2.7.17-r1::gentoo, 3.6.10::gentoo, 3.7.7::gentoo, 3.8.2::gentoo, 3.9.0_alpha4::gentoo
dev-util/cmake:           3.17.0::gentoo
sys-apps/baselayout:      2.7::gentoo
sys-apps/openrc:          0.42.1::gentoo
sys-apps/sandbox:         2.18::gentoo
sys-devel/autoconf:       2.13-r1::gentoo, 2.69-r5::gentoo
sys-devel/automake:       1.11.6-r3::gentoo, 1.13.4-r2::gentoo, 1.14.1-r2::gentoo, 1.15.1-r2::gentoo, 1.16.2::gentoo
sys-devel/binutils:       2.32-r1::gentoo, 2.33.1-r1::gentoo, 2.34::gentoo
sys-devel/gcc:            9.2.0-r3::gentoo, 9.3.0::gentoo
sys-devel/gcc-config:     2.2.1::gentoo
sys-devel/libtool:        2.4.6-r6::gentoo
sys-devel/make:           4.3::gentoo
sys-kernel/linux-headers: 5.6::gentoo (virtual/os-headers)
sys-libs/glibc:           2.30-r6::gentoo
Repositories:

gentoo
    location: /scratch/usr/portage
    sync-type: rsync
    sync-uri: rsync://rsync.gentoo.org/gentoo-portage
    priority: -1000
    sync-rsync-verify-max-age: 24
    sync-rsync-extra-opts: 
    sync-rsync-verify-metamanifest: yes
    sync-rsync-verify-jobs: 1

x-portage
    location: /usr/local/portage
    masters: gentoo
    priority: 0

layman
    location: /var/lib/layman
    masters: gentoo
    priority: 1

haskell
    location: /var/lib/layman/haskell
    masters: gentoo
    priority: 50

science
    location: /scratch/mmokrejs/proj/sci
    masters: gentoo
    priority: 50

stefantalpalaru
    location: /var/lib/layman/stefantalpalaru
    masters: gentoo
    priority: 50

ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="@FREE dlj-1.1 sun-bcla-java-vm Oracle-BCLA-JavaSE IBM-J1.6 Nero-EULA-US AdobeFlash-10.3 AdobeFlash-11.x OPERA-2014 RAR Intel-SDP intel-ucode Skype-TOS vmware linux-firmware fasta vienna-rna unafold GRL MSttfEULA hplip-plugin meme mRNAmarkup ApE ICS ipw3945 finchtv modeller gmap master-pdf-editor abyss swiss-prot Aladdin AVASYS truecrypt-3.0 pyvcf Non-profit-OSL-3.0 estscan bcca_2010 oncotator Adobe blat staden CeCILL-1.1 phrap STRIDE cctbx-2.0 bh-luxi ARIADNE unRAR all-rights-reserved trf annovar_personal_only stampy-academic BSD-BroadInstitute UPennState freedist free-noncomm blasr sun-jlfgr FLI-Jena PSTT netperf sun-jsr67 xv vim.org OSGi-Specification-2.0 colt mod_fastcgi googleearth ACE AFL churchill genscan no-source-code linux-fw-redistributable ISSL JSON"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -pipe -march=native -ftree-vectorize"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /etc/stunnel/stunnel.conf /usr/lib64/libreoffice/program/sofficerc /usr/share/easy-rsa /usr/share/gnupg/qualified.txt /usr/share/maven-bin-3.3/conf /usr/share/maven-bin-3.6/conf /var/lib/hsqldb"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/vmware-installer"
CXXFLAGS="-O2 -pipe -march=native -ftree-vectorize"
DISTDIR="/usr/portage/distfiles"
ENV_UNSET="DBUS_SESSION_BUS_ADDRESS DISPLAY GOBIN PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR"
FCFLAGS="-O2 -pipe -march=native -ftree-vectorize"
FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync multilib-strict network-sandbox news nostrip parallel-fetch pid-sandbox preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms splitdebug strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-O2 -pipe -march=native -ftree-vectorize"
GENTOO_MIRRORS="http://gentoo.wheel.sk/ http://ftp.fi.muni.cz/pub/linux/gentoo/ http://gentoo.mirror.web4u.cz/ rsync://gentoo.mirror.dkm.cz/gentoo/ ftp://gentoo.mirror.web4u.cz/"
LANG="cs_CZ.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
LINGUAS="en_US en_GB en cs"
MAKEOPTS="-j5"
PKGDIR="/var/cache/binpkgs"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git"
PORTAGE_TMPDIR="/scratch/var/tmp/"
USE="X acpi alsa amd64 amr apache apache2 asm avx avx2 berkdb bluetooth boost bzip2 cairo caps cgi cli coin consolekit cracklib crypt cryptlib cryptsetup cups dbus device-mapper dhcp directfb drm dvd emboss encode eselect-ldso fax fbcon ffmpeg flac fontconfig fortran gbm gcrypt gd gdbm geoip geolocation gimp glpk gmp gnutls gpm gps gtk hal hpijs hwdb iconv id3tag imaging innodb inotify ipv6 java javafx javascript jce jpeg jpg js jscript keymap ladspa lapack laptop lcms libnotify libtirpc lm_sensors mad mariadb matroska mmx modemmanager ncurses nfs nls nptl nptlonly nscd nss ntfsprogs objc ocr ogg opengl openmp openssl pam parport pbs pcre pcre16 pcsc-lite pdf perl php png policykit polkit ppds pppd python qt3support qt4 qt5 readline rendering resolvconf romio scanner sctp seccomp server session slideshow sndfile split-usr sqlite sse sse2 sse3 sse4_1 sse4_2 ssl ssse3 startup-notification suexec svg syslog tcl tcpd threads tiff tk truetype udev unicode usb v4l v4l2 vim-syntax vnc wavpack wifi x11 xattr xcb xml xorg xrandr xv xvid xvmc zlib" ABI_X86="64" ADA_TARGET="gnat_2018" ALSA_CARDS="hda-intel intel8x0 intel8x0m usb-audio" APACHE2_MODULES="alias authz_host auth_basic auth_digest cgi cgid deflate dir env filter include info mem_cache mime mime_magic negotiation remoteip setenvif status userdir vhost_alias rewrite usertrack cache file_cache disk_cache charset_lite log_config log_forensic" CALLIGRA_FEATURES="karbon sheets words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="aes avx avx2 f16c fma3 mmx mmxext pclmul popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3" ELIBC="glibc" GPSD_PROTOCOLS="gpsclock navcom ntrip rtcm104v2 rtcm104v3 ublox nmea0183 nmea2000 aivdm passthrough" GRUB_PLATFORMS="efi-64 pc" INPUT_DEVICES="libinput keyboard mouse" KERNEL="linux" L10N="en-US en-GB en cs" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" OFFICE_IMPLEMENTATION="libreoffice" OPENMPI_RM="pbs" PHP_TARGETS="php5-4 php5-5" POSTGRES_TARGETS="postgres10 postgres11" PYTHON_SINGLE_TARGET="python3_6" PYTHON_TARGETS="python2_7 python3_5 python3_6 python3_7" RUBY_TARGETS="ruby24 ruby25 ruby27" USERLAND="GNU" VIDEO_CARDS="vesa vmware fbdev intel i915" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CC, CPPFLAGS, CTARGET, CXX, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 1 Michael Weiser 2020-04-15 19:09:55 UTC
Ran into this myself. There's a fix for it in the patchset at https://704580.bugs.gentoo.org/attachment.cgi?id=633108 in https://bugs.gentoo.org/show_bug.cgi?id=704580. It's basically this hunk:

@@ -101,17 +104,20 @@ src_prepare() {
 
 python_prepare_all() {
 	python_setup
-	python_export
 
 	# Extract python info out of SConstruct so we can use saner distribute
-	pyvar() { sed -n "/^ *$1 *=/s:.*= *::p" SConstruct ; }
-	local pybins=$(pyvar python_progs | tail -1)
+	pyarray() { sed -n "/^ *$1 *= *\\[/,/\\]/p" SConstruct ; }
+	local pyprogs=$(pyarray python_progs)
+	local pybins=$("${PYTHON}" -c "${pyprogs}; \
+		print(list(set(python_progs) - {'xgps', 'xgpsspeed', 'ubxtool', 'zerk'}))")
 	# Handle conditional tools manually. #666734
 	use X && pybins+="+ ['xgps', 'xgpsspeed']"
 	use gpsd_protocols_ublox && pybins+="+ ['ubxtool']"
 	use gpsd_protocols_greis && pybins+="+ ['zerk']"
-	local pysrcs=$(sed -n '/^ *python_extensions = {/,/}/{s:^ *::;s:os[.]sep:"/":g;p}' SConstruct)
-	local packet=$("${PYTHON}" -c "${pysrcs}; print(python_extensions['gps/packet'])")
+	local pysrcs=$(pyarray packet_ffi_extension)
+	local packet=$("${PYTHON}" -c "${pysrcs}; print(packet_ffi_extension)")
+
+	pyvar() { sed -n "/^ *$1 *=/s:.*= *::p" SConstruct ; }
 	# Post 3.19 the clienthelpers were merged into gps.packet
 	sed \
 		-e "s|@VERSION@|$(pyvar gpsd_version)|" \
Comment 2 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2021-08-09 23:48:16 UTC
I think this is fixed by now, mostly in https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d2e1501ab7f3f8353b92edc95d586273a5c01900.