Hi Thomas

On 19.07.2015 11:19, Thomas Trepl wrote:
Hi Tim,

it has been said enough regarding the maintenance of newly added
packages.

One thing I'm interested in would be the theory of making a
"distribution". As you said you have a distro, I'd be interested in how
you manage dependencies. Required dependencies are simple, but how do
you handle recommended/optionals? What about the difference between
runtime- and build-dependencies (that is for example cmake required for
building, but not for runtime). And how to handle circular depedencies?
Even the package management may not be full featured in automatically
install all required pkgs, it is required to have them on the building
machine

1. Optional dependencies
------------------------
I basically handle recommended/optional by allowing multiple variants of one package. Only one variant may be installed. Two variants can (will) have different dependencies. There can be a default variant, if there is none, the user has to decide which one to install. On a system, the variant of a package can be switched, which will then also install the new dependencies and remove the old ones, if they are not needed elsewhere. To have an example:

Package: mousepad
Dependency: gtk-sourceview2-lib
Dependency: gtk2-lib

Package: mousepad
Variant: gtk3
Dependency: gtk-sourceview3-lib
Dependency: gtk3-lib
Dependency: some_optional_package_not_in_the_other_variant

Package: mousepad
Variant: gtk3_opt1
Dependency: gtk-sourceview3-lib
Dependency: gtk3-lib
Dependency: opt1

Here, the first package would be the default variant (it has no variant name defined, "Variant: default" does also work.

The other two are variants based on other dependencies. The first is usually stated in the book as "gtk3 or gtk2", the latter is an optional dependency.

The decision what variants I actually create are made be my, but if needed, I/somebody could always create a variant with other desired optional packages included and then install that.


2. Run-Time / Build Dependencies
---------------------------------

A package always only states the run-time dependencies, as I currently don't have a source package definition. Build dependencies are just taken from the book and then currently buried in directories/shell scripts.

As the book often does usually not state explicitly which of the dependencies are run-time or build, I have to just use my brain a bit. cmake will hardly ever be a run-time dependency.

3. Circular Dependencies
------------------------

In my selection of packages, I only had few cases of circular run-time dependencies: util-linux/udev and freetype/harfbuzz come to mind. Well, I don't like them, but I handle/allow them. Was quite a bit of complication to the dependency resolver....


If you are interested in the implementation details you can write me off the list, as this probably gets a bit off-topic for most people. The distribution is called "lgl", "Laconian Gnu Linux" and the Package Manager "lpm", "laconian package manager".

Kind regards
Tim




--
Thomas

Am Samstag, den 18.07.2015, 21:31 +0200 schrieb Tim Tassonis:
Hi all

As I'm steadily completing my lfs/blfs based distribution, I've come
across a few packages that are neither in lfs/blfs, but i my opinion
generally useful.

My question is: Is there any demand for more packages in blfs, or is the
current set more or less what's indended?

The packages I have built on top and in spirit of blfs and would view as
possible additions are:

- volumeicon: A nice systray volume control for also, using alsamixer as
mixer and else only depending on gtk. Actively maintained.
- openvpn: SSL VPN client/server solution based on openssl and lzo
- rdesktop: rdp client to connect to windows desktops

I'd be willing to provide the descriptions in BLFS style, if there is a
demand for that.


Cheers
Tim

--
decentral.ch - IT Stuff
Tim Tassonis
Dennlerstasse 36
8047 Zürich

[email protected]
+41 79 229 36 17




--
decentral.ch - IT Stuff
Tim Tassonis
Dennlerstasse 36
8047 Zürich

[email protected]
+41 79 229 36 17
--
http://lists.linuxfromscratch.org/listinfo/blfs-dev
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page

Reply via email to