[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#706160: marked as done (general: it should be easier for ordinary developers to work with Debian packages)



Your message dated Fri, 26 Apr 2013 07:10:37 +0200
with message-id <20130426051037.GG5467@mykerinos.kheops.frmug.org>
and subject line Re: Bug#706160: general: it should be easier for ordinary developers to work with Debian packages
has caused the Debian Bug report #706160,
regarding general: it should be easier for ordinary developers to work with Debian packages
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
706160: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=706160
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: general
Severity: wishlist

Introduction:
  This is my attempt at explaining exactly what frustrations prevent me from
  doing anything with Debian packages, and how another distro (Gentoo) does
  it better. The fact that Gentoo is a source-based distro is irrelevant.

  I hope you will seriously consider the issues here for jessie, rather than
  replying "we understand our system, if others don't that's their problem".

First some definitions:
  Ordinary Developer:
    A debian user who is comfortable enough with command-line to install
    programs in /usr/local. They want to perform Simple Tasks.
  Simple Tasks:
    quick:
      Given a program that is not packaged for Debian and is not
      sufficiently useful to the general public to be worth the maintenance
      burden, install it such that the package manager knows about it.
    distribute:
      Given a completed set of package information for such a package,
      distribute it in a way that is easy for others to install.
    patch:
      Given a program with a buggy upstream release, apply a patch.
    revert:
      Given a program with buggy Debian packaging, revert a patch.
    upgrade:
      Given a program that is packaged in Debian, upgrade to an unpackaged
      version.

The problems with the way Debian does it are:
  - debian/ is a subdirectory of the extracted source tree.
  - Because of the above, debian/rules tries to know about backwards steps.
  - There are too many files that need to be modified.
  - There are too many arcane commands that have to be called.
  - It's not obvious how to build except from apt-get source.
  - It's not obvious how to modify the patch set directly.
  - There is no attempt at managing multiple source versions.

How Simple Tasks are approached:
  quick:
    Debian:
      - checkinstall is buggy, quirky, and has no upgrade path.
      - I still haven't figured out how to do this easily. Based on the
        'hello' package, which is the simplest possible package, this
        requires writing a hundred lines of voodoo. A random sampling of
        existing package I've looked at agrees with this as a lower bound.
    Gentoo:
      - vim foo-1.ebuild; ebuild foo-1.ebuild manifest; emerge foo
      - That may look like oversimplification, but the contents of
        foo-1.ebuild really are very simple.
  distribute:
    Debian:
      - Still haven't figured out the right way.
      - I did find the 'dget' command that does some things. How was I
        supposed to know about this obscure command for a common use case?
      - You probably have to ship the whole huge .orig.tar.gz file, even
        though it's available on the internet under a different name, or
        even if it's really a git snapshot.
    Gentoo:
      - Put foo-1.ebuild somewhere online (typically in a git repo)
      - foo-1.ebuild contains the URL of the upstream tarball or git repo.
  patch:
    Debian:
      - After trying to make local changes, it said: dpkg-source --commit
      - But it is tedious when you already have a full patch from upstream.
    Gentoo:
      - Assume that you're competent enough to get ahold of a patch.
      - Add the patch to files/ (which is shared between all versions of
        the package, though you can of course use a different name).
      - Add the filename to the PATCHES=() variable, remanifest.
  revert:
    Debian:
      - no clue, it keeps trying to readd the changes and it's not obvious
        how to wipe the working tree.
    Gentoo:
      - Remove the filename from the PATCHES=() variable, remanifest.
  upgrade:
    Debian:
      - Hope it's in experimental.
      - Hope its experimental package is not broken.
      - Hope adding an experimental package won't break dependencies in the
        rest of your system.
    Gentoo:
      - cp foo-1.ebuild foo-2.ebuild; ebuild foo-2.ebuild manifest
      - Typically, the source URL will automatically change based on the
        version number. If this is not the case, it is very obvious to fix.

In conclusion:
  The current Debian way is complicated. The Gentoo way is simple. This is
  not tied to the fact that Gentoo is a source-based distribution, although
  that does encourage the right mindset.

  For evidence, look at the simplicity of:
    - http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/app-misc/hello/hello-2.8.ebuild?view=markup
    - http://devmanual.gentoo.org/eclass-reference/ebuild/index.html

  Do NOT add yet another packaging tutorial or yet another set of helper
  scripts. There are too many as it is - they are just confusing and long.
  For the things that I'm talking about, Gentoo gets along just fine with a
  manpage - though they have a slightly longer guide for official packages.

--- End Message ---
--- Begin Message ---
Quoting Ben Longbons (brlongbons@gmail.com):
> Package: general
> Severity: wishlist
> 
> Introduction:
>   This is my attempt at explaining exactly what frustrations prevent me from
>   doing anything with Debian packages, and how another distro (Gentoo) does
>   it better. The fact that Gentoo is a source-based distro is irrelevant.

I'm definitely sure that a bug report is not the way to achieve
anything here. As Wouter mentioned, coming up to $DISTRO and saying
that "you guys are doing things wrong and here is how you should do"
is like saying "please throw away 20 years of accumulated experience
and restart from scratch". I very much doubt it will ever happen.

I'm not particularly interested in the following thread but I'm
interested in keeping our BTS as clean as possible.

So....closing the bug report.

Attachment: signature.asc
Description: Digital signature


--- End Message ---

Reply to: