Re: The state of LSB Packaging?

2010-05-19 Thread Denis Washington

Am 19.05.2010 19:24, schrieb Jeff Johnson:

On May 19, 2010, at 5:57 AM, Denid Washington wrote:

   

I'm still willing to help however I can with LSB+RPM. Its _INSANE_ to continue
futile Packaging War battles and and no users benefit (but certainly
distros/vendors benefit from de facto monopolies through customer
lock-in using software packaging).

   

Good to know, I would be thankful for any kind of help. Right now I am thinking hard 
about how an LSB packaging standard would have to look like. I still like the idea of a 
package-manager-agnostic packaging API, but I came to believe that a standard would have 
to be something that is actually implemented in current LSB-certified 
enterprise distros - I underestimated how unwilling the LSB seems to be to 
lead instead of just following. So for any packaging standard to come, it is clear that 
it must work without any distro-side modifications.

The question is how this requirement meshes with the package API idea. 
Currently, I am thinking of the following:

 

The logic flaw here is attempting a method based API approach.

If you want an API, you have two choices:
1) Write your own API.
2) Trick someone else into writing your API.

LSB was very much about 2) not 1) and they failed to trick anyone.

(aside)
What should be done first is to get workable concepts for fundamentals
like package and upgrade. Sure you can start with simple abstractions like

A package has a name and a version concatenated in a string.

but there's a whole lot more that needs to be done in the real world.
   


I know. As I stated, the metadata needs to be defined as precisely as 
possible. As I am only roughly sketching a rough plan how to proceed, I 
haven't got into the details yet, but yes, that is the single most 
important thing that a future LSB packaging standard must specify.



Note that the fundamental flaw with LSB packages and the LSB package format
is that LSB hoped to piggy back on a de facto existing implementation called 
RPM.
LSB has _NEVER_ attempted anything but attempting to ram home a standard for
RPM packaging. And again, they've failed to trick anyone with the LSB packaging 
standard.
There are in fact no LSB standard packages because the standard describes
a LSB format that is no longer widely used by any RPM implementation.
   


I realize that.


What follow are some suggestions. I'll assume that you will eventually
figger well defined meanings for package and upgrade and other absolutely
essential data items.
   


So do I.

snip

- Design an implementation with backends for different package systems as started before, 
but with the difference that the implementation does _not_ need to be installed on the 
distro, but can be linked into an ISV's installer. In the case of RPM, this could be done 
with librpm. (Probably the pre-4.6 legacy RPMv4 API, as that should be what 
all RPM-based LSB distros support.) For other package managers like dpkg, which don't 
have a public library, packages would have to be created on-the-fly and installed, much 
like some installers currently do as well (the ATI binary driver installer comes to mind).

 

If you want different backends, you end-up getting into implementations and 
APIS where
you need to trick up implementations in order to proceed. See how LSB failed, 
and
don't make the same mistake.
   


The whole backend architecture is explicitly thought as an intermediate 
solution. Distributions are encouraged to implement that interface 
cleanly in their package managers, thus avoiding any tricks / hacks. 
But for the API to work *now*, we need a fallback implementation that 
can be shipped with installers and does the job on today's distros, even 
if maybe somewhat hacky.


That said, the approach *is* problematic. But I fear that, if the 
proposal won't work on the current LSB-certified distros, it will be 
turned down real fast. And, the fallback implementation would naturally 
use the clean native implementation of the system's package manager if 
it is enable, so the fallback solution will only be used on legacy 
distributions.



Meanwhile, what you are describing (and guessing from your previous 
freedesktop-like
implementation), you might as well just use PackageKit, which already has 
backends
and more.
   


Interesting how often my proposal was directly compared to PackageKit 
(including PackageKit author Richard Hughes himself) just because of the 
choice of technologies.


PackageKit is designed as an interface for installing distro-specific 
packages or getting specific packages from distro-specific package 
repositories. That's its use case. Registring software in the package 
manager's database that does *not* come in the form of a native distro 
package is completely outside of that use case. Adding that to 
PackageKit would not make much sense imho. Also, PackageKit is not used 
in many distros (only in RHEL probably) so it is by far not a candidate 
for 

Re: [Lf_desktop] LSB Package API

2008-07-07 Thread Denis Washington
On Mon, 2008-06-23 at 15:14 +0100, Scott James Remnant wrote:
 My general feeling, having spoken to lots of ISVs, is that they don't
 actually _want_ this.
 
 In order to support their customers, they're well aware that they have
 to target particular distributions and versions - and they're quite
 happy working and certifying particular vendors individually.

I'm not in the position of having the chance to speak with ISVs myself
unfortunately. I only relied on what seemed to have been communicated on
the LSB face-to-face meeting. It might be good if we had more
application vendors (and also open-source project maintainers) speaking
up on this issue in the general or the particular proposal.

Regards,
Denis

__
RPM Package Managerhttp://rpm5.org
LSB Communication Listrpm-lsb@rpm5.org


Re: LSB Package API

2008-06-28 Thread Denis Washington
On Thu, 2008-06-26 at 14:55 -0400, Jeff Johnson wrote: 
 On Jun 25, 2008, at 11:49 AM, Denis Washington wrote:
 
 
  I hope what is in the data structures is sufficient and well-defined
  enough. And, what I increasingly tempt to believe, that we don't talk
  past each other. ;)
 
 
 I'm trying to build from your 4 tarballs.
 
 For starters, I'd suggest LGLPv2 rather than GPLv3 licensing. The
 reason is that the intended target is commercial ISV's, who are
 often (and justfiably) uncomfortable with the viral nature of GPL.
 The commercial ISV's _MUST_ link to your code.

I completely agree. Did I add v3 somewhere?

 Second, I'd suggest a different name than lsb-package for now.
 I see no official buy-in from LSB yet, and all package names starting
 lsb- are reserved for LANANANANANANA ...

Yeah. I thought of renaming it to Burgdorf API as this is my home town
(and happens to be a German town too like Berlin).

 Alternatively, get your act togther and register lsb-package. But you
 are almost sure to annoy and confuse many with lsb-package.
 
 Personally, I'd suggest lsb-berlin until you get more buy-in, but  
 YMMV.

Or that.

 Back to building ...
 
 Build fails because
 #include i18n-defs.h
 from lib/lsb_package.c is nowhere obvious to be found.
 
 Doing
  touch lib/i18n-defs.h
 keeps gcc happy, but if you don't need the content, don't include the  
 file.
 
 Next failure is this
 
 creating liblsb_package.la
 (cd .libs  rm -f liblsb_package.la  ln -s ../liblsb_package.la  
 liblsb_package.la)
 make[2]: Leaving directory `/X/lsb-package/lsb_package-0.1/lib'
 Making all in daemon
 make[2]: Entering directory `/X/lsb-package/lsb_package-0.1/daemon'
 make[2]: *** No rule to make target `org.linuxbase.Packages.xml',  
 needed by `dbus-server-bindings.h'.  Stop.
 make[2]: Leaving directory `/X/lsb-package/lsb_package-0.1/daemon'
 make[1]: *** [all-recursive] Error 1
 make[1]: Leaving directory `/X/lsb-package/lsb_package-0.1'
 make: *** [all] Error 2
 error: Bad exit status from /X/tmp/rpm-tmp.86094 (%build)
 
 Where do I find (or generate) the org.linuxbase.Packages.xml file?

I forgot to add some files to Makefile.am, so they weren't in the make
dist tarball. I added them and uploaded the fixed version to the LSB
wiki (same place as the previous one).

Regards,
Denis

__
RPM Package Managerhttp://rpm5.org
LSB Communication Listrpm-lsb@rpm5.org