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

Re: Comments about 'next' branch



-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi,

On 02.03.2012 23:02, Stefan Fritsch wrote:
> since you asked, here are some comments about the current state of
> the "next" branch. Sorry for the not very refined language ;)

I don't mind. For the sake of completeness I answer here although you
can see I worked on that stuff in the VCS.

> 
> Stuff that should be done before the experimental upload: 
> ========================================================
> 
> Have a single script for
> 
> /usr/sbin/a2disconf -q $S || true if [ -x "/etc/init.d/apache2" ];
> then invoke-rc.d apache2 restart || true fi

I did. However, the dependency chain that introduces made me some
headaches. You can have a look how it is solved now.

The current approach works that way:

* Maintainers need to declare a build-dependency against apache2-dev
which pulls dh-apache2) or dh-apache2 directly if web applications use it.
* dh-apache2 needs/recommends a2query at build time. That one is on
the apache2 package. That's implied and guaranteed by modules but
optional to web applications. I hope my heuristic works fine enough.
* Maintainer scripts source
/usr/share/apache2/apache2-maintscript-helper (delivered in the
apache2 package), but is not fatal if it is not available. The helper
provides functions maintainers can call.


> Need special handling for changing symlink /usr/share/doc/apache2 
> to a directory during update. Same for other links in
> /usr/share/doc/ . Use symlinks in /usr/share/doc/ where applicable
> (our changelog is rather large). Converting dirs to symlinks later
> is a PITA. The transitional packages don't need a /usr/share/doc
> dir at all, I think.

Not sure what you mean by "special handling". The upgrade purges these
files anyway, so we install them from scratch. They're not conffiles
which are preserved during upgrades.

That said, I optimized the docs and made sure packages depending on
others from the same source package don't get duplicated doc files.
However, we need some duplication for packages which can be installed
independent of each other (e.g. the -bin package).

Transitional packages got files in /usr/share/doc but only the
copyright file. That's a fair trade-off I suppose.

> We need the complicated handling of /var/www/index.html from the
> 2.2 package: - Only copy on first installation, not on upgrades (it
> is meant to be removed by the admin). - Don't copy if another
> /var/www/index.* file exists, because the index.html would override
> the file placed there by the admin.

Fixed that.

> Ubuntu still needs their dbg package magic. They build debug
> packages differently.  However the test should probably use
> dpkg-vendor.

We already discussed that, but for reference: I dropped the Ubuntu
special handling. I expect them to patch their stuff downstream as
they need it since they diverge from our package already anyway so a
few more lines won't hurt. If anyone downstream sends me a patch which
is less ugly than the 2.2 mess I may merge it.

If you disagree, you can of course fix that, too. :)

> mkdir.sh ist still not parallel safe => keep -j1 in rules.

Fixed that.

> We don't want to install NEWS files in -utils, -bin, -data. It
> would just make apt-listchanges annoy people with messages that are
> not relevant for them.

Fixed that.

> We want the ac_cv_prog_LYNX_PATH=www-browser. It influences what 
> "apachectl status" calls.  OTOH, we ship our own version of 
> apache2ctl. Maybe we should convert that to a patch?

I removed that line without further work. We ship both, our own
apache2ctl as well as /e/a/envvars. Both have sensible defaults for
Debian already (i.e. www-browser).

> mod_cache_disk/disk_cache: One should actually check if the cache
> dir format has changed or is compatible. (Sorry, haven't thought
> about this before).

Actually I tried to get answer to that before you raised that
question. Now I finally got an authoritative answer by Jim Jagielski.
He told me that he is not aware of any incompatibility (and suggested
to hold a version string in the cache data itself and purge it
automatically on purpose). That said, he suggested to purge the cache
on minor upgrades (as the binary format might depend on reverse
dependencies) and definitively recommends to purge the cache on major
upgrades. So I do now.


> We should enable a reasonable set of default modules, approx. what
> was enabled by default in 2.2.  I don't understand your comment
> about module.conf files.

I enabled some more modules by default. My comment was referring to
the fact, that I slightly changed dependency behavior for modules.
Modules shipping a module.conf file in addition to a module.load file
declare dependencies against non core or standard modules not only if
there is an API dependency but also if their .confs use directives not
available in the minimal subset of modules we suspect to be always
available.

> Bugs: ====
> 
> postinst: enable_default_modules and enable_default_conf should
> also have checks that they only do stuff if upgrading from 2.2 or
> if newly installing, not if upgrading from 2.4.

Fixed that

> postinst: enable_default_mpm should be noop if upgrading from 2.4

Fixed that

> postinst: We also have other_vhosts_access.log. Set its perms,
> too.

Fixed that


> apache2-dev has an empty man8 dir apache2-doc has an empty conf.d
> dir apache2 has files in /usr/share/doc/apache2-doc

Fixed that.

Additionally I wrote a heuristic to enable mod_access_compat if I find
Order/Allow/Directives in global configuration files. That said, this
still breaks if people use .htaccess files. I'm outlining this in the
NEWS file - that's the next best thing we can do.

> Misc notes: ===========
> 
> If only one transitional mpm package (does this work with
> upgrades?) then maybe use apache2-mpm as the name. We should
> probably provide that anyway (or maybe apache2 should provide
> apache2-mpm?).

I fixed that. Turned out we need transitional packages for every MPM.
The upgrade from ITK is still broken though. I do not think we should
provide apache2-mpm.

> I don't understand the use case for some stuff that a2query does.
> Not important right now, though.

I hope my recent work makes it more obvious. That said, a2query is
still highly experimental.

> a2query: You are writing C in perl ;-) Use foreach my $file
> (glob("$conf_dir/*.load")) instead of opendir/readdir loop

Sorry for writing readable code :p

> 
> rules file should check that API-number in a2query and
> debian/control matches the one in ap_mmn.h

That was on my list anyway. I think the approach I use now is even
better which is to generate the API provides dynamically.

> I don't think we need to ship httpd.exp.

I let that as is for now. I have no strong opinion on that, though.
Maybe you want to decide on that eventually.

> Shouldn't /usr/share/apache2/build be in apache2-dev ?

Fixed that.

> In apache2-utils, move everything from /usr/sbin to /usr/bin ?

I'm following upstream's recommendations here. That said, I won't
object moving sbin stuff to bin.

- -- 
with kind regards,
Arno Töll
IRC: daemonkeeper on Freenode/OFTC
GnuPG Key-ID: 0x9D80F36D
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQIcBAEBAgAGBQJPWOfOAAoJEMcrUe6dgPNt1coP/3J2g/+ylZ7IvSSlYMjR9KIm
NcLCBZxSoAjKKDd4A+TpMtuXy73xgWZKdhs1PqX/LZ5m1rCy1yUbbMuH+QEjdW5V
tNsq92y2fFbXaDA6YFKw6RXUME867Q8tMc4WWhkhEZsM49XZoHCApIoJVdC+pKC2
e2Q6Bygs+I7y7cu48lO0LABWMx8K3ie8/MitF+RyB/ArUbBBbQnb4H3j+FIWoywa
9hYcx0GFQBp/2W3YVdRUNvC+U3IdsBAzERBXbuIplrxVdcj7lMghgKINWbakBzlU
sy/69IOphxcoe8mdin8ORpMP3KVWnF48hppBuphZdOVMTvDwj9LlsPlE7VQ7tg2C
DiCYh/8Xg59VAn9vKU3NUbWaSd37zR23cGUq4Ao8osMLzWEmzpJy187Lis7CL3PA
8JKurYi+L1KuZ4N89tWXaB1a1EOAS0ZymqqBGyB4/tpY3f1bLE0ip2uX4IPUYV1Z
/eO+T1CHPTh0WJ/TKhDIt/sO6i5DqzJjw6CT68GT954WHeGyCaLuc9sBhmOiEbHX
9ob091ShDDrcIKmt3QsHVfDPcox8xeh1kYiSODkTP3jJwRH5RjURdt3dBcOhn0F9
N0r+VR2ePFg9DVGE7vXLLYX6EhlTc9o5sa9QfkE9RA+L1dU2hmCkwB97bLIsJcQq
G2BEjKziOl8jWj5eiJ+n
=TbsC
-----END PGP SIGNATURE-----


Reply to: