On Mon, Feb 17, 2020 at 09:41:48AM +0000, Carsten Haitzler wrote:
> On Sun, 16 Feb 2020 22:37:40 -0800 Ross Vandegrift <r...@kallisti.us> said:
> > On Sat, Feb 15, 2020 at 09:37:59PM -0800, Jose R R wrote:
> > > For EFL, I replaced libcurl4-gnutls-dev with libcurl4-openssl-dev to
> > > be consistent with most of what I build --including reiser4 VMs for
> > > Google cloud env..
> > > The build finished but the logs showed *many* dh-missing files the
> > > Debian packaging had no *.installation instructions for.
> > 
> > These are left out intentionally so dh_missing is set to just warn.
> > Unfortunately, d/not-installed does not support wildcards yet - so there's 
> > no
> > (easy) way to suppress those messages.
> > 
> > > For E23.1 the build failed due to the copious quantity of dh-missing 
> > > files.
> > 
> > Unlike efl, enlightenemnt's packaging is set to fail on any missing files.
> > (compare their d/rules and read the manpage for dh_missing).  There aren't
> > failures due to missing files on my local builds or the official buildds.
> > 
> > I don't know why your build failed.  But the patch is not correct.
> > usr/share/enlightenment/data is already in the install file, so it adds
> > nothing new.
> 
> actually a lot of those files being left out would be a bug. the missing
> checkme files for one are a going to break part of efl's behaviour
> (relocation).

This is sort of on purpose - given Debian's requirements, it seems
unlikely for those to work relocated.  I thought it'd be better for
those folks to build themselves.  But maybe I'm wrong - afaik, no one
has tried or asked for this feature so it's just a gut feeling.

> the cmake files missing will break some things like ecrire from
> compiling as they just use the native cmake checks (reminds me -0 i should
> just port it to meson :)).

The only missing cmake files are for the cxx bindings - which we don't
currently build.  I doubt anyone is missing them without the libs :)

The rest of the cmake files are in libefl-all-dev.

> i noticed elementary_perf itself is missing too. so
> is elementary_test - entirely. no package seems to include it (makes our lives
> hard when we ask people to run it and it doesn't exist). i've looked at
> https://packages.debian.org/search?searchon=names&keywords=elementary and 
> can't
> find it listed in the files for anything there. but oddly lots of data files
> that are only needed by it in libelementary-data - so shipping lots of useless
> data there not used by anything because the thing that needs the data files
> isn't packaged anywhere i can find.

Yea, that's not a great situation.  I didn't realize that  these could
be useful to non EFL devs.  I'll add them for the next release.

> for enlightenment, i don't see the point of splitting it up as it stands into
> enlightenment and enlightenment-data. it just makes life more complicated. 

It's an implementation detail - enlightenment always depends on the same
version of enlightenment-data.  apt will ensure they are
installed/upgraded together.  Users shouldn't ever have to care.

The purpose is to save bandwidth & storage for mirror operators.  -data
packages are arch independent to avoid making multiple copies per arch.

> i'd also suggest the same simplification of the efl pkgs like e - merge them 
> all
> into a single libefl

This wouldn't meet Debian's policy for packaging shared libraries - so
the result couldn't be included in Debian.  That's my goal, so I'm stuck
with the complication.

> my point here is... if you do not package everything together as one unit and
> split it out, be very careful how you split and if you leave things out then
> it's quite likely you may have broken some functionality. if you split, then 
> it
> may also break things unless the user remembers to install extra packages they
> may not realize they need. in the end what happens is people turn up with odd
> problems upstream and we go "WTF?" since don't realize the packages may have
> broken that in subtle ways.

IMO these would be packaging bugs - users should be able to ignore the
multiple packages.  The intended user experiences are like this:

- for an end user: install an EFL app (enlightenment, terminology, etc)
  and apt automatically installs all of the required stuff.
  - some packages are merely recommended (eg. terminology recommends
    libelementary-bin for elementary_config.)  By default, apt treats
    these as dependencies.  Users that change that know to expect
    different behavior.

- for a developer: install libefl-all-dev and apt will automatically
  install all libs, headers, and build dependencies.

It pretty much works.  There have been a few rough cases (had to make
all rendering engines mandatory - apt wasn't smart enough to support
optional rendering backends while still getting X11 installed by default
in all cases.) But all of the issues that I know of have been fixed.  As
far as I know of, these were all reported to me as Debian bugs.  If
anyone complained upstream, sorry about that!

> when we add new things that get installed, talk to us. :)

Thanks for the offer, I'll write if I have a question.  The efl side is
usually the easier part to figure out.  Obviously I made a bad call on
elementary_{test,perf}, so there's always possible bugs.

Ross


_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to