Created attachment 652360 [details] Working for me fixed ebuild Initial install produces: * QA Notice: new icons were found installed but icon cache * has not been updated: * /usr/share/icons/hicolor/16x16/apps/dhcpcd.png * /usr/share/icons/hicolor/22x22/apps/dhcpcd.png * /usr/share/icons/hicolor/24x24/apps/dhcpcd.png * /usr/share/icons/hicolor/32x32/apps/dhcpcd.png * /usr/share/icons/hicolor/48x48/apps/dhcpcd.png * /usr/share/icons/hicolor/scalable/apps/dhcpcd.svg * Please make sure to call xdg_icon_cache_update() * in pkg_postinst() and pkg_postrm() phases of appropriate pkgs. emerge --info : Portage 3.0.1 (python 3.7.8-final-0, default/linux/amd64/17.1/desktop, gcc-10.2.0, glibc-2.31-r6, 5.7.12-gentoo x86_64) ================================================================= System uname: Linux-5.7.12-gentoo-x86_64-Intel-R-_Core-TM-_i7-6700K_CPU_@_4.00GHz-with-gentoo-2.7 KiB Mem: 32828364 total, 18083168 free KiB Swap: 32767996 total, 32767996 free Timestamp of repository gentoo: Sun, 02 Aug 2020 07:30:01 +0000 Head commit of repository gentoo: ae157a2edda090be71a7c5cea24420880b3ccbab sh bash 5.0_p18 ld GNU ld (Gentoo 2.34 p6) 2.34.0 app-shells/bash: 5.0_p18::gentoo dev-java/java-config: 2.3.1::gentoo dev-lang/perl: 5.30.3-r1::gentoo dev-lang/python: 2.7.18-r1::gentoo, 3.6.11-r2::gentoo, 3.7.8-r2::gentoo, 3.8.5::gentoo, 3.9.0_beta5::gentoo dev-util/cmake: 3.18.1::gentoo dev-util/pkgconfig: 0.29.2::gentoo sys-apps/baselayout: 2.7::gentoo sys-apps/openrc: 0.42.1::gentoo sys-apps/sandbox: 2.20::gentoo sys-devel/autoconf: 2.13-r1::gentoo, 2.69-r5::gentoo sys-devel/automake: 1.11.6-r3::gentoo, 1.16.2::gentoo sys-devel/binutils: 2.34-r2::gentoo sys-devel/gcc: 10.2.0::gentoo sys-devel/gcc-config: 2.3.1::gentoo sys-devel/libtool: 2.4.6-r6::gentoo sys-devel/make: 4.3::gentoo sys-kernel/linux-headers: 5.7::gentoo (virtual/os-headers) sys-libs/glibc: 2.31-r6::gentoo Repositories: gentoo location: /usr/portage sync-type: rsync sync-uri: rsync://rsync.gentoo.org/gentoo-portage priority: -1000 sync-rsync-verify-max-age: 24 sync-rsync-verify-jobs: 1 sync-rsync-extra-opts: sync-rsync-verify-metamanifest: yes DONAHUE location: /usr/local/portage masters: gentoo ACCEPT_KEYWORDS="amd64 ~amd64" ACCEPT_LICENSE="*" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-march=native -O2 -pipe -fcommon" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/lib64/fax /usr/share/config /usr/share/gnupg/qualified.txt /var/bind /var/spool/fax/etc" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php7.4/ext-active/ /etc/php/cgi-php7.4/ext-active/ /etc/php/cli-php7.4/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /var/spool/fax/etc/xferfaxlog" CXXFLAGS="-march=native -O2 -pipe -fcommon" DISTDIR="/usr/portage/distfiles" ENV_UNSET="DBUS_SESSION_BUS_ADDRESS DISPLAY GOBIN GOPATH 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" 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 parallel-fetch pid-sandbox preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync" FFLAGS="-O2 -pipe" GENTOO_MIRRORS="http://distfiles.gentoo.org" LANG="en_US.utf8" LDFLAGS="-Wl,-O1 -Wl,--as-needed" MAKEOPTS="-j9" 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="X a52 aac acl acpi alsa amd64 apache2 avahi berkdb bluetooth bonjour branding bzip2 cairo cdda cdr cli crypt cups dbus dri dts dvd dvdr elogind emboss encode exif flac fortran gdbm gif gpm gtk iconv icu ipv6 jpeg lcms ldap libnotify libtirpc mad mmx mng mp3 mp4 mpeg multilib nautilus ncurses nls nptl ogg opengl openmp pam pango pcre pdf png policykit ppds qt5 readline sdl seccomp snmp spell split-usr sse sse2 ssl startup-notification svg tcpd tiff truetype udev udisks unicode upower usb vorbis wxwidgets x264 xattr xcb xml xv xvid zeroconf zlib" ABI_X86="64 32" ADA_TARGET="gnat_2018" 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="cgi" CALLIGRA_FEATURES="karbon sheets words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="aes avx avx2 fma3 mmx mmxext popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock greis isync itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 timing tsip tripmate tnt ublox ubx" GRUB_PLATFORMS="efi-64" INPUT_DEVICES="libinput" 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="php7-2 php7-3" POSTGRES_TARGETS="postgres10 postgres11" PYTHON_SINGLE_TARGET="python3_7" PYTHON_TARGETS="python2_7 python3_7" RUBY_TARGETS="ruby25" SANE_BACKENDS="cpixma" USERLAND="GNU" VIDEO_CARDS="amdgpu radeonsi" XFCE_PLUGINS="brightness clock trash" 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, LINGUAS, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Created attachment 653306 [details] dhcpcd-0.7.7.ebuild revised includes: fix for blocker because of REQUIRED USE= - entirely removed fix for src_config failure - notification removed fix for icon cache update - xdg added to inherit and pkg_postinst() and pkg_postrm() added executing xdg_icon_cache_update
oops
(In reply to Drake Donahue from comment #1) > > includes: > fix for blocker because of REQUIRED USE= - entirely removed Why? The blocker is necessary because you cannot build the qt5 interface together with notification
(In reply to Drake Donahue from comment #1) > fix for src_config failure - notification removed This is also entirely wrong. The (had written) configure script _only_ provides --(dis|en)able-notification options. You change simply renders the USE flag completely useless.
*Your
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ea54daa002c9706490073c2ae33c520d73670838 commit ea54daa002c9706490073c2ae33c520d73670838 Author: Lars Wendler <polynomial-c@gentoo.org> AuthorDate: 2020-08-06 10:18:18 +0000 Commit: Lars Wendler <polynomial-c@gentoo.org> CommitDate: 2020-08-06 10:18:43 +0000 net-misc/dhcpcd-ui: Revbump to update icon cache Thanks-to: Drake Donahue <donahue95@comcast.net> Bug: https://bugs.gentoo.org/735528 Package-Manager: Portage-3.0.1, Repoman-2.3.23 Signed-off-by: Lars Wendler <polynomial-c@gentoo.org> .../{dhcpcd-ui-0.7.7.ebuild => dhcpcd-ui-0.7.7-r1.ebuild} | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-)
Saw the commit. Note that 17.1/desktop profile sets gtk, qt5, and libnotify. So I get and any new user with a desktop profile will get: /usr/portage/net-misc/dhcpcd-ui # emerge -av dhcpcd-ui These are the packages that would be merged, in order: Calculating dependencies - !!! Problem resolving dependencies for net-misc/dhcpcd-ui ... done! !!! The ebuild selected to satisfy "dhcpcd-ui" has unmet requirements. - net-misc/dhcpcd-ui-0.7.7-r1::gentoo USE="gtk libnotify ncurses qt5 -debug -gtk2" ABI_X86="(64)" The following REQUIRED_USE flag constraints are unsatisfied: qt5? ( !libnotify ) The above constraints are a subset of the following complete expression: libnotify? ( gtk ) qt5? ( !libnotify )
Removing the REQUIRED USE in its entirety I get past the unresolved dependencies and get: emerge -av dhcpcd-ui These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild U ] net-misc/dhcpcd-ui-0.7.7-r1::gentoo [0.7.7::DONAHUE] USE="gtk libnotify ncurses qt5 -debug -gtk2" 0 KiB Total: 1 package (1 upgrade), Size of downloads: 0 KiB Would you like to merge these packages? [Yes/No] y >>> Verifying ebuild manifests >>> Emerging (1 of 1) net-misc/dhcpcd-ui-0.7.7-r1::gentoo * dhcpcd-ui-0.7.7.tar.xz BLAKE2B SHA512 size ;-) ... [ ok ] >>> Unpacking source... >>> Unpacking dhcpcd-ui-0.7.7.tar.xz to /var/tmp/portage/net-misc/dhcpcd-ui-0.7.7-r1/work >>> Source unpacked in /var/tmp/portage/net-misc/dhcpcd-ui-0.7.7-r1/work >>> Preparing source in /var/tmp/portage/net-misc/dhcpcd-ui-0.7.7-r1/work/dhcpcd-ui-0.7.7 ... * Applying dhcpcd-ui-0.7.7-tinfo.patch ... [ ok ] >>> Source prepared. >>> Configuring source in /var/tmp/portage/net-misc/dhcpcd-ui-0.7.7-r1/work/dhcpcd-ui-0.7.7 ... ./configure --prefix=/usr --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --libdir=/usr/lib64 --without-qt --disable-debug --enable-notification --with-gtk=gtk+-3.0 --with-curses --with-qt configure args: --prefix=/usr --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --libdir=/usr/lib64 --without-qt --disable-debug --enable-notification --with-gtk=gtk+-3.0 --with-curses --with-qt Deriving operating system from ... x86_64-pc-linux-gnu Configuring dhcpcd-ui for ... linux Using compiler .. cc cc (Gentoo 10.2.0 p1) 10.2.0 Testing for gettext ... yes Testing for strlcpy ... no Testing for strverscmp ... yes Building dhcpcd-gtk with notification support Looking for qmake ... /usr/bin/qmake Info: creating stash file /var/tmp/portage/net-misc/dhcpcd-ui-0.7.7-r1/work/dhcpcd-ui-0.7.7/src/dhcpcd-qt/.qmake.stash ./configure: knotify4 not found !!! Please attach the following file when seeking support: !!! /var/tmp/portage/net-misc/dhcpcd-ui-0.7.7-r1/work/dhcpcd-ui-0.7.7/config.log * ERROR: net-misc/dhcpcd-ui-0.7.7-r1::gentoo failed (configure phase): * econf failed * * Call stack: * ebuild.sh, line 125: Called src_configure * environment, line 1188: Called econf '--without-qt' '--disable-debug' '--enable-notification' '--with-gtk=gtk+-3.0' '--with-curses' '--with-qt' * phase-helpers.sh, line 681: Called __helpers_die 'econf failed' * isolated-functions.sh, line 112: Called die * The specific snippet of code: * die "$@" * * If you need support, post the output of `emerge --info '=net-misc/dhcpcd-ui-0.7.7-r1::gentoo'`, * the complete build log and the output of `emerge -pqv '=net-misc/dhcpcd-ui-0.7.7-r1::gentoo'`. * The complete build log is located at '/var/tmp/portage/net-misc/dhcpcd-ui-0.7.7-r1/temp/build.log'. * The ebuild environment file is located at '/var/tmp/portage/net-misc/dhcpcd-ui-0.7.7-r1/temp/environment'. * Working directory: '/var/tmp/portage/net-misc/dhcpcd-ui-0.7.7-r1/work/dhcpcd-ui-0.7.7' * S: '/var/tmp/portage/net-misc/dhcpcd-ui-0.7.7-r1/work/dhcpcd-ui-0.7.7' >>> Failed to emerge net-misc/dhcpcd-ui-0.7.7-r1, Log file: >>> '/var/tmp/portage/net-misc/dhcpcd-ui-0.7.7-r1/temp/build.log' * Messages for package net-misc/dhcpcd-ui-0.7.7-r1: * ERROR: net-misc/dhcpcd-ui-0.7.7-r1::gentoo failed (configure phase): * econf failed * * Call stack: * ebuild.sh, line 125: Called src_configure * environment, line 1188: Called econf '--without-qt' '--disable-debug' '--enable-notification' '--with-gtk=gtk+-3.0' '--with-curses' '--with-qt' * phase-helpers.sh, line 681: Called __helpers_die 'econf failed' * isolated-functions.sh, line 112: Called die * The specific snippet of code: * die "$@" * * If you need support, post the output of `emerge --info '=net-misc/dhcpcd-ui-0.7.7-r1::gentoo'`, * the complete build log and the output of `emerge -pqv '=net-misc/dhcpcd-ui-0.7.7-r1::gentoo'`. * The complete build log is located at '/var/tmp/portage/net-misc/dhcpcd-ui-0.7.7-r1/temp/build.log'. * The ebuild environment file is located at '/var/tmp/portage/net-misc/dhcpcd-ui-0.7.7-r1/temp/environment'. * Working directory: '/var/tmp/portage/net-misc/dhcpcd-ui-0.7.7-r1/work/dhcpcd-ui-0.7.7' * S: '/var/tmp/portage/net-misc/dhcpcd-ui-0.7.7-r1/work/dhcpcd-ui-0.7.7' I7-6700K /usr/portage/net-misc/dhcpcd-ui #
And here you get the reason why REQUIRED_USE is in place. You _cannot_ emerge dhcpcd-ui with USE="libnotify qt5". I know having all three USE flags being enabled by the profile is not the ideal solution but still better than having a build error.
After removing notification from $(use_enable libnotify notification) emerge succeeds producing dhcpcd-curses, dhcpcd-gtk, dhcpcd-online, and dhcpcd-qt executables. As the upsteam package was designed to do.
My proposal produces no automatic dependency error and no build error. Try it.
(In reply to Drake Donahue from comment #10) > After removing notification from $(use_enable libnotify notification) emerge > succeeds producing dhcpcd-curses, dhcpcd-gtk, dhcpcd-online, and dhcpcd-qt > executables. As the upsteam package was designed to do. All I see here is that you have no clue what the "use_enable" function is doing. $(use_enable libnotify notification) translates into: if USE="libnotify" is set, emit "--enable-notification" to the configure call. if USE="libnotify" is unset, emit "--disable-notification" to the configure call. Now with your change, the result is this: if USE="libnotify" is set, emit "--enable-libnotify" to the configure call. if USE="libnotify" is unset, emit "--disable-libnotify" to the configure call. Now please open the configure script with your preferred editor of choice and tell me where you can find a "--enable-libnotify" of a "--disable-libnotify" option. Right, there's no such option in the configure script. So all your change does is rendering the "libnotify" USE flag useless or even worse, it adds a dependency to the ebuild which now no longer can be satisfied. I don't really understand why it is so cumbersome to simply put something like net-misc/dhcpcd-ui -libnotify into your /etc/portage/package.use file.
This configure script https://github.com/rsmarples/dhcpcd-ui/blob/master/configure ? I used net-misc/dhcpcd-ui -qt5 until I decided to be miffed about an ebuild with built in failure. gtk and libnotify produce dhcpcd-gtk which does do desktop notification. dhcpcd-qt does not do notification even when I stupidly build it.
Created attachment 653686 [details] proposed dhcpcd-ui-0.7.7-r2 Try the ebuild. eliminate REQUIRED USE statement -- causes a dependency conflict for no good practical reason. reduce src_config() to the default -- the previous collection of local myeconfargs are useless, ineffective, and unnecesary. the proposed ebuild works to produce dhcpcd-curses , dhcpcd-gtk with desktop notification, dhcpcd-online, dhcpcd-qt executables. As stated by upstream: ( https://github.com/rsmarples/dhcpcd-ui/blob/master/README.md ) "dhcpcd-ui dhcpcd-ui is the graphical interface to dhcpcd. It has a helper library in C to try and minimize any toolkit specific parts. There are GTK+-2 (works with GTK+-3) and Qt (works with Qt-4 and Qt-5) front ends. dhcpcd-curses is very much a work in progress and is only informative at this stage. dhcpcd-online can report on network availability from dhcpcd (requires dhcpcd-6.4.4) Build options Switches to control building of various parts: --with-dhcpcd-online --with-gtk --with-qt --with-icons --enable-notification For each --with there is a --without and for each --enable a --disable. If each part is not specified then the configure will test the system for the needed libraries to build and install it." Have played with a manual install and that claim is valid.
This proposed ebuild makes it even worse. Here's something to read for you: https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Automagic_dependencies Your changes simply introduce a lot of these...
Theory is a wonderful thing. However, in the real world there are no automagic dependencies: emerge -1av dhcpcd-ui These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild R ] net-misc/dhcpcd-ui-0.7.7-r2::DONAHUE USE="gtk libnotify ncurses qt5 -debug -gtk2" 0 KiB Total: 1 package (1 reinstall), Size of downloads: 0 KiB Would you like to merge these packages? [Yes/No]
sorry babbling in last use flags are not deoendencies the only automagic dependency I detect is knotify4 which is handled by the upstream code which builds dhcpcd with notification and dhcpcd-qt without notification unless notification is hard required.
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c4251ee40536b6b355bfe23183ecdcb16a877312 commit c4251ee40536b6b355bfe23183ecdcb16a877312 Author: Lars Wendler <polynomial-c@gentoo.org> AuthorDate: 2020-08-10 05:07:03 +0000 Commit: Lars Wendler <polynomial-c@gentoo.org> CommitDate: 2020-08-10 05:07:03 +0000 desktop/package.use: net-misc/dhcdpcd-ui: Disable libnotify in order to have a better user experience when emerging this package. Closes: https://bugs.gentoo.org/735528 Signed-off-by: Lars Wendler <polynomial-c@gentoo.org> profiles/targets/desktop/package.use | 5 +++++ 1 file changed, 5 insertions(+)