On 02/01/2014 20:36, Bo Ørsted Andresen wrote:
On Mon, 30 Dec 2013 22:55:29 +0100
Quentin Glidic <[email protected]> wrote:
There are a few other cases but I am not familiar enough with these
so I will focus on the list above before “fixing” corner cases.
Have any sort of list of these? Might give us an idea about what these
are.
Attached the grepped list of files. There are Perl modules, image
loading/manipulation tools, systemd/pm-utils, DHCP clients, Java stuff,
Ruby slots (Weechat).
A few are already being taking care of, through pending-removal
(modules-init-tools, farsight2).
[...]
If we *cannot*, here are two and a half solutions:
1. a slot-based virtual. With a := slot dependency, that would force
people to rebuild packages if they change from libav to ffmpeg
It's not clear to me how this would work? := takes the slot of the best
visible version. How would those versions be decided?
It would be the build-time vs. runtime aspect of the := dependency that
would matter here. I would go with :libav and :ffmpeg (inter-blocked) so
changing slot would mean changing implementation, while forcing a rebuild.
2. use [ffmpeg] and [libav] on each package, two variants here:
a. make them mutually exclusive (but this is not
DEFAULT_SRC_CONFIGURE_*-friendly, unless we add something to handle
that choose-between -two-implementations case, which is quite common)
Don't see why that wouldn't be workable with
DEFAULT_SRC_CONFIGURE_OPTIONS.
You mean:
DEFAULT_SRC_CONFIGURE_PARAMS=(
--disable-ffmpeg
)
DEFAULT_SRC_CONFIGURE_OPTIONS=(
'ffmpeg --enable-ffmpeg'
'libav --enable-ffmpeg'
)
? Why not…
b. make [libav] prefer libav over ffmpeg, while [ffmpeg] is always
“use that feature” (which may confuse people for packages
non-libav-aware that will lead to a blocker)
A blocker?
Say package A have ffmpeg and libav options, and package B ffmpeg only.
Having "*/* ffmpeg libav" will lead to the libav dependency of A and the
ffmpeg dependency of B.
Of course, that would be the best option to force people to submit
patches for their preferred ffmpeg-aware programs to support libav. :-)
Could also go with a suboption.
The autotools.exlib case can be solved in two ways:
1. a new annotation "|| ( ) [[ selection = first-unmasked ]]"
Sounds fine to me.
2. always use the best slot available (which would simplify a lot of
things)
You mean only allow one slot in SUPPORTED_AUTO* ? It means you can't
mark a slot supported while it's still masked during early testing.
Similar issue if we ever start supporting some form of stable vs
testing, though I don't know that we ever will.
I forgot masks… Fine for 1. too then.
[...]
Last but not least, the virtuals. Simple: || ( ) dependencies in
virtuals need to die. The elegant solution came from Ciaran:
option-driven virtuals. You will find attached to this email an
example. The first part is such a virtual created by hand. The second
part is the same virtual using virtual.exlib to fill MYOPTIONS and
DEPENDENCIES automatically. The last part is the resulting "cave show
-c". Which solution (manual or exlib) do you prefer, or do you have
another idea?
I think I personally prefer manual. It seems a lot easier to grasp if
you've never looked at the package before.
It is easier to read a doc and fill one list than to fill two variables
in sync.
I'm not sure I see a point in bothering with a virtuals suboption.
To keeps things clean, and you only need to write it once per place
(options.conf, MYOPTIONS) except in DEPENDENCIES, but here virtual.exlib
helps you a lot.
Of course, I will happily update everything we have currently to the
new decided style.
While it's nice that you'll work on this, I'd encourage everybody to
help once we've decided how to proceed.
I sure will be glad to have help testing patches, since I would not
install all the packages using all option combinations.
--
Quentin “Sardem FF7” Glidic
$ grep -EIr --exclude-dir .git --exclude *.patch '\|\| \( |\|\| \($' |grep -v
LICENCES|grep -v /virtual/|cut -d: -f1|sort -u
git: master
SuperHeron-misc/packages/app-virtualization/virtualbox-ose/virtualbox-ose.exlib
SuperHeron-misc/packages/dev-python/papyon/papyon-0.5.6.exheres-0
SuperHeron-misc/packages/net-im/amsn/amsn-0.98.9-r1.exheres-0
SuperHeron-misc/packages/net-plugins/lightspark/lightspark-scm.exheres-0
SuperHeron-misc/packages/net-remote/FreeRDP/FreeRDP-1.0.2.exheres-0
SuperHeron-misc/packages/sys-libs/libfprint/libfprint-scm.exheres-0
anderslm/packages/media-video/ffmpegthumbnailer/ffmpegthumbnailer-2.0.8.exheres-0
arbor/exlibs/gem.exlib
arbor/exlibs/vim-plugin.exlib
arbor/packages/app-cdr/dvd+rw-tools/dvd+rw-tools-7.1.exheres-0
arbor/packages/app-text/djvu/djvu.exlib
arbor/packages/app-text/docbook-utils/docbook-utils-0.6.14-r2.exheres-0
arbor/packages/app-text/sgmltools-lite/sgmltools-lite-3.0.3.exheres-0
arbor/packages/dev-libs/libksba/libksba-1.3.0.exheres-0
arbor/packages/net-dns/libidn/libidn-1.28.exheres-0
arbor/packages/sys-apps/baselayout/baselayout-1.12.13-r5.exheres-0
arbor/packages/sys-boot/dracut/dracut.exlib
arbor/packages/sys-devel/gcc/gcc.exlib
arbor/packages/sys-sound/alsa-plugins/alsa-plugins-1.0.27-r1.exheres-0
bruners/packages/app-cdr/xfburn/xfburn-0.4.3-r2.exheres-0
bruners/packages/media/bino/bino-1.4.2-r1.exheres-0
dcallagh/packages/dev-python/dulwich/dulwich-0.8.3.exheres-0
desktop-unofficial/packages/x11-misc/stalonetray/stalonetray-0.8.1.exheres-0
desktop/packages/net-apps/NetworkManager/NetworkManager-0.9.8.8.exheres-0
desktop/packages/net-apps/NetworkManager/NetworkManager-scm.exheres-0
desktop/packages/sys-apps/upower/upower-0.9.23.exheres-0
desktop/packages/sys-apps/upower/upower-0.99.0.exheres-0
exherbo-cn/packages/media-gfx/mcomix/mcomix-1.00.exheres-0
exony/packages/dev-util/coccinelle/coccinelle-1.0.0-rc17-r1.exheres-0
exony/packages/net-im/pidgin-sipe/pidgin-sipe-1.13.3.exheres-0
games/packages/games-simulation/lincity-ng/lincity-ng-2.0-r1.exheres-0
gnome/packages/gnome-desktop/brasero/brasero-3.8.0.exheres-0
gnome/packages/gnome-desktop/libgnome-keyring/libgnome-keyring-scm.exheres-0
gnome/packages/net-im/pidgin/pidgin.exlib
hardware/packages/app-pda/usbmuxd/usbmuxd.exlib
hardware/packages/firmware/r5u87x/r5u87x-scm.exheres-0
ingmar/packages/dev-ruby/hoe/hoe-2.6.0.exheres-0
java/exlibs/icedtea.exlib
java/packages/dev-java/apache-ant/apache-ant.exlib
java/packages/dev-lang/icedtea-web/icedtea-web.exlib
kde/packages/app-cdr/k3b/k3b.exlib
kde/packages/app-pim/strigi/strigi.exlib
kde/packages/kde/ffmpegthumbs/ffmpegthumbs.exlib
kde/packages/kde/kde-baseapps/kde-baseapps.exlib
kde/packages/kde/kde-workspace/kde-workspace.exlib
kde/packages/kde/mplayerthumbs/mplayerthumbs.exlib
kde/packages/media-sound/amarok/amarok.exlib
kde/packages/media/smplayer/smplayer.exlib
lipidity/packages/net-proxy/sshuttle/sshuttle.exlib
marv/packages/media-video/gnome-mplayer/gnome-mplayer-1.0.8.exheres-0
media-unofficial/packages/dev-python/gst-python/gst-python-0.10.22.exheres-0
media-unofficial/packages/media-libs/chromaprint/chromaprint-1.0.exheres-0
media-unofficial/packages/media-libs/libquicktime/libquicktime-1.2.4.exheres-0
media-unofficial/packages/media-libs/mediastreamer/mediastreamer.exlib
media-unofficial/packages/media-video/mkvtoolnix/mkvtoolnix-6.6.0.exheres-0
media/packages/media-libs/gegl/gegl.exlib
media/packages/media-sound/mpd/mpd.exlib
media/packages/media-video/transcode/transcode.exlib
media/packages/media/mplayer2/mplayer2.exlib
media/packages/media/mpv/mpv.exlib
media/packages/media/vlc/vlc.exlib
mixi/packages/net-plugins/gnash/gnash-0.8.10.exheres-0
moben/packages/text/springer_download/springer_download-scm.exheres-0
net/packages/net-irc/weechat/weechat.exlib
net/packages/net-misc/wicd/wicd.exlib
net/packages/www-servers/apache/apache.exlib
nicoo/packages/app-crypt/signing-party/signing-party-1.1.4.exheres-0
perl/packages/dev-perl/Archive-Tar/Archive-Tar-1.90.exheres-0
perl/packages/dev-perl/IO-CaptureOutput/IO-CaptureOutput-1.1102.exheres-0
perl/packages/dev-perl/JSON-Any/JSON-Any-1.29.exheres-0
perl/packages/dev-perl/POE/POE-1.354.exheres-0
perl/packages/dev-perl/Pod-Simple/Pod-Simple-3.28.exheres-0
perl/packages/dev-perl/Test-Trap/Test-Trap-0.2.2.exheres-0
perl/packages/dev-perl/XML-Simple/XML-Simple-2.20.exheres-0
pyro/packages/app-vim/YouCompleteMe/YouCompleteMe-scm.exheres-0
pyro/packages/app-vim/pyclewn/pyclewn-1.11.exheres-0
replica/packages/app-terminal/autojump/autojump-14-r1.exheres-0
roidelapluie/packages/sys-power/powermgmt-base/powermgmt-base.exlib
scientific/packages/sci-apps/ParaView/ParaView-3.98.1-r2.exheres-0
tanderson/packages/media-libs/opencv/opencv-2.4.8.exheres-0
x11/packages/x11-drivers/xf86-input-synaptics/xf86-input-synaptics.exlib
_______________________________________________
Exherbo-dev mailing list
[email protected]
http://lists.exherbo.org/mailman/listinfo/exherbo-dev