Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 575898 - git-r3.eclass: EVCS_OFFLINE ignores package_LIVE_COMMIT
Summary: git-r3.eclass: EVCS_OFFLINE ignores package_LIVE_COMMIT
Status: RESOLVED FIXED
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Unclassified (show other bugs)
Hardware: AMD64 Linux
: Normal minor (vote)
Assignee: Michał Górny
URL:
Whiteboard:
Keywords: NeedPatch
Depends on:
Blocks:
 
Reported: 2016-02-28 12:09 UTC by im out(email deleted)
Modified: 2016-05-26 10:19 UTC (History)
0 users

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 im out(email deleted) 2016-02-28 12:09:36 UTC
Hi.
When EVCS_OFFLINE is set, then package_LIVE_COMMIT is ignored and the latest commit is checked out instead.



Reproducible: Always

Steps to Reproduce:
Tested with these 2 lines in /etc/portage/package.env
net-im/utox utox.conf                                                           
net-libs/tox tox.conf

plus these 2 lines in /etc/portage/env/tox.conf
tox_LIVE_COMMIT="61f8e65c0157049ac26bf9b081ba6842d7defdeb"
EVCS_OFFLINE=1

plus these 3 lines in /etc/portage/env/utox.conf
utox_LIVE_COMMIT="b623d58311288c1c89d54cd570a4b79777097a80"
EVCS_OFFLINE=1                                                                 
EGIT_BRANCH="develop"

then # emerge -v tox utox

Actual Results:  
the commits in _LIVE_COMMIT are ignored and latest commit is checked out instead (seen after emerge, the version of utox was 6 something, instead of 0.5.1 something)

Expected Results:  
expected results should be the same as when the line EVCS_OFFLINE=1 is commented out! that is, the specified commits in _LIVE_COMMIT are used instead.

# emerge --info tox utox
Portage 2.2.27 (python 3.4.3-final-0, default/linux/amd64/13.0/no-multilib, gcc-5.3.0, glibc-2.22-r2, 4.5.0-rc5 x86_64)
=================================================================
                         System Settings
=================================================================
System uname: Linux-4.5.0-rc5-x86_64-AMD_A6-3400M_APU_with_Radeon-tm-_HD_Graphics-with-gentoo-2.2
KiB Mem:    15875456 total,  14421080 free
KiB Swap:          0 total,         0 free
Timestamp of repository gentoo: Sat, 27 Feb 2016 15:00:01 +0000
sh bash 4.3_p42-r2
ld GNU ld (Gentoo 2.25.1 p1.1) 2.25.1
ccache version 3.2.4 [enabled]
app-shells/bash:          4.3_p42-r2::gentoo
dev-lang/perl:            5.22.1::gentoo
dev-lang/python:          2.7.11-r2::gentoo, 3.4.3-r7::gentoo
dev-util/ccache:          3.2.4::gentoo
dev-util/cmake:           3.4.3::gentoo
dev-util/pkgconfig:       0.29::gentoo
sys-apps/baselayout:      2.2::gentoo
sys-apps/openrc:          0.20.5::gentoo
sys-apps/sandbox:         2.10-r1::gentoo
sys-devel/autoconf:       2.13::gentoo, 2.69-r1::gentoo
sys-devel/automake:       1.13.4-r1::gentoo, 1.14.1-r1::gentoo, 1.15-r2::gentoo
sys-devel/binutils:       2.25.1-r1::gentoo
sys-devel/gcc:            5.3.0::gentoo
sys-devel/gcc-config:     1.8-r1::gentoo
sys-devel/libtool:        2.4.6-r2::gentoo
sys-devel/make:           4.1-r1::gentoo
sys-kernel/linux-headers: 4.4::gentoo (virtual/os-headers)
sys-libs/glibc:           2.22-r2::gentoo
Repositories:

gentoo
    location: /usr/portage
    sync-type: rsync
    sync-uri: rsync://rsync.gentoo.org/gentoo-portage
    priority: -1000
    sync-rsync-vcs-ignore: false

tox-overlay
    location: /var/lib/layman/tox-overlay
    masters: gentoo
    priority: 50

ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="@FREE"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -pipe -march=native -g0 -fno-var-tracking-assignments -fomit-frame-pointer -ftrack-macro-expansion=0 -fno-stack-protector -fPIC"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/lib64/libreoffice/program/sofficerc /usr/share/gnupg/qualified.txt"
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"
CXXFLAGS="-O2 -pipe -march=native -g0 -fno-var-tracking-assignments -fomit-frame-pointer -ftrack-macro-expansion=0 -fno-stack-protector -fPIC"
DISTDIR="/usr/portage/distfiles"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs ccache cgroup collision-protect config-protect-if-modified distlocks downgrade-backup ebuild-locks fakeroot fixlafiles force-mirror ipc-sandbox merge-sync multilib-strict network-sandbox news nostrip parallel-fetch prelink-checksums preserve-libs sandbox sfperms skiprocheck split-elog split-log strict suidctl unknown-features-warn unmerge-logs userfetch userpriv usersandbox webrsync-gpg"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="http://de-mirror.org/gentoo/ http://gd.tuwien.ac.at/opsys/linux/gentoo/ http://ftp.romnet.org/gentoo/ http://tux.rainside.sk/gentoo/  http://www.las.ic.unicamp.br/pub/gentoo/"
INSTALL_MASK="/lib/systemd /lib32/systemd /lib64/systemd /usr/lib/systemd /usr/lib32/systemd /usr/lib64/systemd /etc/systemd"
LANG="en_US.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j4"
PKGDIR="/usr/portage/packages"
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="/var/tmp"
USE="3dnow 3dnowext X acl amd64 berkdb bindist btrfs bzip2 cli consolekit crypt cryptsetup cscope cxx dbus device-mapper dri extensions gdbm git gpg gpm gtk3 iconv jpeg lm_sensors lock mmx mmxext modules mosh-hardening ncurses nptl ogg openmp opus pam pcre pie png policykit popcnt pulseaudio qt4 readline seccomp session smp sse sse2 sse3 sse4a ssl ssp startup-notification strong-security xcomposite zlib" ABI_X86="64" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="3dnow 3dnowext mmx mmxext popcnt sse sse2 sse3 sse4a" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ublox ubx" GRUB_PLATFORMS="pc" INPUT_DEVICES="keyboard synaptics evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-5" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_4" RUBY_TARGETS="ruby20 ruby21" USERLAND="GNU" VIDEO_CARDS="radeon" XFCE_PLUGINS="brightness clock trash battery power" 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"
USE_PYTHON="2.7"
Unset:  CC, CPPFLAGS, CTARGET, CXX, EMERGE_DEFAULT_OPTS, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS

=================================================================
                        Package Settings
=================================================================

net-libs/tox-9999::tox-overlay was built with the following:
USE="av -daemon -log -log-debug -log-error -log-info -log-trace -log-warn -ntox -static-libs -test"


net-im/utox-9999::tox-overlay was built with the following:
USE="dbus -filter_audio"


Also see: https://devmanual.gentoo.org/eclass-reference/git-2.eclass/index.html
Comment 1 Zac Medico gentoo-dev 2016-02-28 18:26:23 UTC
(In reply to Emanuel Czirai from comment #0)
> Hi.
> When EVCS_OFFLINE is set, then package_LIVE_COMMIT is ignored and the latest
> commit is checked out instead.

The ebuild inherits git-r3.eclass:

https://github.com/Tox/gentoo-overlay-tox/blob/master/net-libs/tox/tox-9999.ebuild
Comment 2 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2016-05-25 17:40:27 UTC
This is pretty much a design issue since EVCS_OFFLINE pretty much disables everything but checking out whatever was checked out last. Help changing that would be appreciated.

I'm not sure what would be the best solution. Possibly we could change 'fetch' to disable only operations actually involving network I/O while leave repo modifications on.
Comment 3 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2016-05-26 10:19:15 UTC
Good news! It turns out that my code was better than I thought, and it was quite easy to disable the fetching part without disabling the ref-update part. Pushed now, there might be minor bugs in rare scenarios but seems to work well for switching branches/tags/commits.

commit b6f85379dcb5e962ccd6136ab03e2637542eb5e0
Author: Michał Górny <mgorny@gentoo.org>
Date:   Thu May 26 12:09:38 2016

    git-r3.eclass: Support switching refs with EVCS_OFFLINE, #575898