Linux Archive

Linux Archive (http://www.linux-archive.org/)
-   Debian Development (http://www.linux-archive.org/debian-development/)
-   -   Recommends for metapackages (http://www.linux-archive.org/debian-development/682032-recommends-metapackages.html)

Gergely Nagy 07-10-2012 02:18 PM

Recommends for metapackages
 
"Eugene V. Lyubimkin" <jackyf@debian.org> writes:

> On 2012-07-10 15:32, Josselin Mouette wrote:
>> Le mardi 10 juillet 2012 à 17:38 +0900, Miles Bader a écrit :
>> > What's wrong with Recommends: in that case? It seems to perfectly
>> > match the "makes life easier for <common but not universal use-case
>> > XXX>" scenario you describe.
>>
>> Recommends is wrong for metapackages because it gets upgrades very
>> wrong. This is why it is used very marginally.
>
> Standards should not depend on implementation details. I see zero
> reasons why metapackages are (or should be) specific here. Whatever $it
> that gets upgrades wrong should be fixed instead.

But the purpose of the meta-package is to pull stuff in. Depends does
that, Recommends does not, therefore Recommends is not appropriate for
the task.

For the cases where one wants to have most of the stuff installed that
the meta-package would pull in, but not all, solutions already
exist. And like Josselin said in the same mail, there is a large overlap
between those who want to push some of the stuff in Depends to
Recommends, and those who can just make their own local meta-package
within 5 minutes and be done with it.

--
|8]


--
To UNSUBSCRIBE, email to debian-devel-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Archive: http://lists.debian.org/87obnnzoly.fsf@algernon.balabit

"Eugene V. Lyubimkin" 07-10-2012 03:14 PM

Recommends for metapackages
 
On 2012-07-10 16:18, Gergely Nagy wrote:
> But the purpose of the meta-package is to pull stuff in. Depends does
> that, Recommends does not, therefore Recommends is not appropriate for
> the task.

Surely Recommends does pull stuff in. It's clearly reflected in Debian
policy and supported by most if not all high-level packages managers in
Debian. Therefore it's totally appropriate for the task.

--
Eugene V. Lyubimkin aka JackYF, JID: jackyf.devel(maildog)gmail.com
C++ GNU/Linux developer, Debian Developer


--
To UNSUBSCRIBE, email to debian-devel-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Archive: http://lists.debian.org/20120710151412.GB5107@r500-debian

Jonas Smedegaard 07-10-2012 04:10 PM

Recommends for metapackages
 
On 12-07-10 at 06:14pm, Eugene V. Lyubimkin wrote:
> On 2012-07-10 16:18, Gergely Nagy wrote:
> > But the purpose of the meta-package is to pull stuff in. Depends
> > does that, Recommends does not, therefore Recommends is not
> > appropriate for the task.
>
> Surely Recommends does pull stuff in. It's clearly reflected in Debian
> policy and supported by most if not all high-level packages managers
> in Debian. Therefore it's totally appropriate for the task.

Recommends does not _ensure_ that all is pulled in.

The very purpose of a meta-package is to _ensure_ that a certain set of
packages is installed, not just recommend them: All (not only most)
users of that package need all its dependencies satisfied - those that
don't should simply uninstall the meta-package.


- Jonas

--
* Jonas Smedegaard - idealist & Internet-arkitekt
* Tlf.: +45 40843136 Website: http://dr.jones.dk/

[x] quote me freely [ ] ask before reusing [ ] keep private

Gergely Nagy 07-10-2012 04:16 PM

Recommends for metapackages
 
"Eugene V. Lyubimkin" <jackyf@debian.org> writes:

> On 2012-07-10 16:18, Gergely Nagy wrote:
>> But the purpose of the meta-package is to pull stuff in. Depends does
>> that, Recommends does not, therefore Recommends is not appropriate for
>> the task.
>
> Surely Recommends does pull stuff in.

No. Only if installing recommends is turned on, which cannot be
guaranteed.

> It's clearly reflected in Debian policy

No, it is not.

"Recommends

This declares a strong, but not absolute, dependency.

The Recommends field should list packages that would be found together
with this one in all but unusual installations."

Nowhere does that say that whatever is in recommends, will be
installed. Therefore, tools will *not* pull those in, unless they are
asked to.

> and supported by most if not all high-level packages managers in
> Debian.

Yes, apt and aptitude supports Apt::Install-Recommends, and it is
enabled by default. But it can - and often is - turned off.

> Therefore it's totally appropriate for the task.

It is not, because the purpose of the meta package is to get things
installed *always*. If it would be an optional collection of stuff, it
wouldn't be a meta package.

But, to cut the story short, attached to this mail is a script you can
use to take any metapackage, and remove (or demote) any of its
dependencies. It echoes a control-file thingy, combining it with equivs
is left as an excercise to the reader.

Usage:

$ ./meta-gen.sh gnome-core network-manager-gnome

Build a local package out of that, use happily ever after. Our
meta-packages can continue depending on what upstream considers part of
a package suite, and those of you who want to have most, but not all of
it, can use the script to create a local meta package. Since it's
scripted, you can even keep the local thing reasonably up to date.

It took about ~5 minutes to write that script, would take another 10 or
so to make it build a local package too. I'm fairly sure this could be
hooked into apt via a Apt::Update::Post-Invoke: once apt-get update ran,
update the local meta packages, push it to a local repo, touch a stamp
file, and update again. But perhaps there's even a way to make this play
nicer, I didn't care that much.

Crude, but should work, with about ~20 minutes of total time spent on
it. Much less than pointless arguing on a list about something that's so
very easy to solve in a way that everyone wins.

--
|8]

Abou Al Montacir 07-10-2012 04:34 PM

Recommends for metapackages
 
On Tue, 2012-07-10 at 18:10 +0200, Jonas Smedegaard wrote:


On 12-07-10 at 06:14pm, Eugene V. Lyubimkin wrote:
> On 2012-07-10 16:18, Gergely Nagy wrote:
> > But the purpose of the meta-package is to pull stuff in. Depends
> > does that, Recommends does not, therefore Recommends is not
> > appropriate for the task.
>
> Surely Recommends does pull stuff in. It's clearly reflected in Debian
> policy and supported by most if not all high-level packages managers
> in Debian. Therefore it's totally appropriate for the task.

Recommends does not _ensure_ that all is pulled in.

The very purpose of a meta-package is to _ensure_ that a certain set of
packages is installed, not just recommend them: All (not only most)
users of that package need all its dependencies satisfied - those that
don't should simply uninstall the meta-package.


Exactly! And as confirmation see below you will see gnome recommending and even suggesting, which is probably fine:



aptitude show gnome

Package: gnome**************************

State: installed

Automatically installed: yes

Version: 1:3.0+9

Priority: optional

Section: gnome

Maintainer: Debian GNOME Maintainers <pkg-gnome-maintainers@lists.alioth.debian.org>

Architecture: i386

Uncompressed Size: 52.2 k

Depends: gnome-core (= 1:3.0+9), desktop-base, alacarte (>= 0.13.2), cheese (>= 3.0), ekiga (>= 3.2), evolution (>= 3.0), evolution-plugins (>= 3.0),

******** file-roller (>= 3.0), gedit (>= 3.0), gnome-documents, gnome-games (>= 1:3.0), gnome-orca (>= 3.2), gnome-nettool (>= 3.0), hamster-applet (>=

******** 2.91.2), seahorse (>= 3.0), tomboy (>= 1.6) | gnote, vinagre (>= 3.0), abiword (>= 2.8) | libreoffice-gnome, avahi-daemon, gimp (>= 2.6),

******** gnome-media (>= 2.91), gnumeric (>= 1.10) | libreoffice-gnome, inkscape (>= 0.48), rhythmbox (>= 2.90), shotwell, simple-scan, sound-juicer (>=

******** 2.32.1+20110330), transmission-gtk, xdg-user-dirs-gtk, libatk-adaptor, cups-pk-helper (>= 0.1.2), epiphany-extensions (>= 3.0), gedit-plugins (>=

******** 3.0), gnome-applets (>= 2.91), gstreamer0.10-ffmpeg (>= 0.10.12), gstreamer0.10-plugins-ugly (>= 0.10.18), gvfs-bin, nautilus-sendto (>= 3.0),

******** rhythmbox-plugins, rhythmbox-plugin-cdrecorder, telepathy-gabble, telepathy-salut, totem-plugins, libgtk2-perl (>= 1:1.130)

Recommends: browser-plugin-gnash, gdebi, gnome-games-extra-data (>= 3.0), liferea | evolution-rss | blam, menu-xdg, nautilus-sendto-empathy, telepathy-idle

Suggests: dia-gnome, gnucash, libreoffice-gnome, libreoffice-evolution, planner, gnome-tweak-tool



saida:~# aptitude show gnome-core

Package: gnome-core*********************

State: installed

Automatically installed: yes

Version: 1:3.0+9

Priority: optional

Section: gnome

Maintainer: Debian GNOME Maintainers <pkg-gnome-maintainers@lists.alioth.debian.org>

Architecture: i386

Uncompressed Size: 52.2 k

Depends: brasero (>= 3.0), dconf-gsettings-backend (>= 0.7.5), dconf-tools (>= 0.7.5), empathy (>= 3.0), eog (>= 3.0), epiphany-browser (>= 3.0), evince (>=

******** 3.0), evolution-data-server (>= 3.0), fonts-cantarell, sound-theme-freedesktop, gcalctool (>= 6.0), gconf2 (>= 2.32), gdm3 (>= 3.0), glib-networking

******** (>= 2.28.7), gnome-backgrounds (>= 3.0), gnome-bluetooth (>= 3.0), gnome-contacts, gnome-control-center (>= 1:3.0), gnome-disk-utility (>= 3.0),

******** gnome-icon-theme (>= 3.0), gnome-icon-theme-extras (>= 3.0), gnome-icon-theme-symbolic (>= 3.0), gnome-keyring (>= 3.0), libpam-gnome-keyring (>=

******** 3.0), gnome-menus (>= 3.0), gnome-packagekit (>= 3.0), gnome-panel (>= 3.0), gnome-power-manager (>= 3.0), gnome-screensaver (>= 3.0), gnome-session

******** (>= 3.0), gnome-session-fallback (>= 3.0), gnome-settings-daemon (>= 3.0), gnome-shell (>= 3.0), gnome-system-monitor (>= 3.0), gnome-terminal (>=

******** 3.0), gnome-themes-standard (>= 3.0), gnome-user-guide (>= 3.0), gnome-user-share (>= 3.0), baobab (>= 3.0), gnome-dictionary (>= 3.0),

******** gnome-screenshot (>= 3.0), gnome-search-tool | tracker-gui, gnome-system-log (>= 3.0), gnome-font-viewer (>= 3.0), gsettings-desktop-schemas (>=

******** 3.0), gstreamer0.10-plugins-base (>= 0.10.34), gstreamer0.10-plugins-good (>= 0.10.29), gstreamer0.10-pulseaudio (>= 0.10.29), libgail-3-common (>=

******** 3.0) | libgtk-3-common (>= 3.2), gucharmap (>= 1:3.0), gvfs-backends (>= 1.8), libcanberra-pulse, metacity (>= 1:2.34), nautilus (>= 3.0),

******** network-manager-gnome (>= 0.9), notification-daemon (>= 0.7), policykit-1-gnome, pulseaudio, totem (>= 3.0), vino (>= 3.0), yelp (>= 3.0), zenity

******** (>= 3.0)

Suggests: gnome

Description: The GNOME Desktop Environment -- essential components





The most logical is that gnome-core does not depend on network-manager-gnome but the gnome package do. Indeed, experienced users will install gnome-core and select the rest manually.

"Eugene V. Lyubimkin" 07-10-2012 04:35 PM

Recommends for metapackages
 
On 2012-07-10 18:10, Jonas Smedegaard wrote:
> The very purpose of a meta-package is to _ensure_ that a certain set of
> packages is installed, not just recommend them: All (not only most)
> users of that package need all its dependencies satisfied

My definition of meta-package is less strict than yours. I as user
sometimes want '[meta]package X, but without packages Y and Z', and your
definition absolutely rules that out.

I saw many questions on forums like

"I did '$packagemanager install $metapackage' and then after
'$packagemanager remove $singlepackage', why $packagemanager now wants
to remove all $metapackage?"

, so I know I'm not alone. Using Recommends for non-core parts of
metapackages' dependencies would nicely solve that.

--
Eugene V. Lyubimkin aka JackYF, JID: jackyf.devel(maildog)gmail.com
C++ GNU/Linux developer, Debian Developer


--
To UNSUBSCRIBE, email to debian-devel-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Archive: http://lists.debian.org/20120710163528.GC5107@r500-debian

Gergely Nagy 07-10-2012 04:39 PM

Recommends for metapackages
 
"Eugene V. Lyubimkin" <jackyf@debian.org> writes:

> On 2012-07-10 18:10, Jonas Smedegaard wrote:
>> The very purpose of a meta-package is to _ensure_ that a certain set of
>> packages is installed, not just recommend them: All (not only most)
>> users of that package need all its dependencies satisfied
>
> My definition of meta-package is less strict than yours. I as user
> sometimes want '[meta]package X, but without packages Y and Z', and your
> definition absolutely rules that out.

That's not a meta package then. That's a collection of loosely coupled
stuff, and by that definition, a meta package should not use depends at
all, but always recommends, because someone may want to use metapackage
X, but without A, B and C. Might aswell get rid of them then.

> I saw many questions on forums like
>
> "I did '$packagemanager install $metapackage' and then after
> '$packagemanager remove $singlepackage', why $packagemanager now wants
> to remove all $metapackage?"
>
> , so I know I'm not alone. Using Recommends for non-core parts of
> metapackages' dependencies would nicely solve that.

Well, in case of GNOME, upstream considers n-m to be part of the core
system, to the best of my knowledge. If upstream does so, so should we.

Besides, the solution is very easy: don't want all the deps of the meta?
Don't install it. If you still want to pull most in, but exclude some,
see the script I posted earlier. It can easily be changed to echo an
apt-get line instead of a modified control file, if that's more
suitable.

--
|8]


--
To UNSUBSCRIBE, email to debian-devel-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Archive: http://lists.debian.org/874npfzi3e.fsf@algernon.balabit

Sune Vuorela 07-10-2012 04:39 PM

Recommends for metapackages
 
On 2012-07-10, Gergely Nagy <algernon@balabit.hu> wrote:
> No. Only if installing recommends is turned on, which cannot be
> guaranteed.

There is many ways to break your system. turning off installation of
recommends is one of them.


That said, recommends is not to be used for metapackages. with
metapackages you want to ensure *what* the user has installed.

/Sune


--
To UNSUBSCRIBE, email to debian-devel-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Archive: slrnjvomlf.d1u.nospam@sshway.ssh.pusling.com">http ://lists.debian.org/slrnjvomlf.d1u.nospam@sshway.ssh.pusling.com

Gergely Nagy 07-10-2012 04:43 PM

Recommends for metapackages
 
Sune Vuorela <nospam@vuorela.dk> writes:

> On 2012-07-10, Gergely Nagy <algernon@balabit.hu> wrote:
>> No. Only if installing recommends is turned on, which cannot be
>> guaranteed.
>
> There is many ways to break your system. turning off installation of
> recommends is one of them.

During the past ~14 years I've been using Debian with that setting
turned off, nothing ever broke on my systems because of this setting. If
it does, then I'll consider that a bug and report it appropriately.

--
|8]


--
To UNSUBSCRIBE, email to debian-devel-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Archive: http://lists.debian.org/87wr2by3c8.fsf@algernon.balabit

Charles Plessy 07-10-2012 04:46 PM

Recommends for metapackages
 
Hello everybody,

perhaps people interested in discussing metapackages and Recommends can have a
look to the rejected DEP 6 and the associated thread.

http://dep.debian.net/deps/dep6/

http://lists.debian.org/debian-devel/2009/12/msg00550.html

Have a nice day,

--
Charles Plessy
Illkirch-Graffenstaden, France


--
To UNSUBSCRIBE, email to debian-devel-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Archive: 20120710164615.GA1645@falafel.plessy.net">http://lists.debian.org/20120710164615.GA1645@falafel.plessy.net


All times are GMT. The time now is 08:11 PM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.