Re: [gentoo-dev] i have an idea ! (erescue)

2005-05-15 Thread david stanek
On Sun, May 15, 2005 at 03:32:40PM -0700, Donnie Berkholz wrote:

 Krzysiek Pawlik wrote:
  Use `quickpkg` before dangerous updates/merges. If something brakes -
  untar the package.
 
 Doesn't work too well when tar's broken too. =)

How about statically linking a version of tar with portage. This way
tar cannot be broken. Add an option to emerge, --backup or something
similar, that will automatically run quickpkg. Then make a erescue
executable that can parse the command line to figure out which
package the user wants to be rescued from, and execute the new tar
command.

-- 
David Stanek
www.roninds.net

GPG keyID #6272EDAF on http://pgp.mit.edu
Key fingerprint = 8BAA 7E11 8856 E148 6833  655A 92E2 3E00 6272 EDAF


pgpQUoBThCuhI.pgp
Description: PGP signature


Re: [gentoo-dev] i have an idea ! (erescue)

2005-05-15 Thread David Stanek
On Sun, May 15, 2005 at 06:12:13PM -0700, John Myers wrote:
 On Sunday 15 May 2005 16:41, david stanek wrote:
  Add an option to emerge, --backup or something
  similar, that will automatically run quickpkg.
 
 If you set FEATURES=buildpkg, portage automatically makes binary packages 
 for you. No need to add new support.

That would build a binary package for the potentially broken
package. What it would need to do is build a binary package of the
existing merged package. So a user can recover from a botched
upgrade.

-- 
David Stanek
www.roninds.net

GPG keyID #6272EDAF on http://pgp.mit.edu
Key fingerprint = 8BAA 7E11 8856 E148 6833  655A 92E2 3E00 6272 EDAF


pgpXNiuhdlWu3.pgp
Description: PGP signature


Re: [gentoo-dev] i have an idea ! (erescue)

2005-05-15 Thread David Stanek
On Sun, May 15, 2005 at 09:56:54PM -0400, David Stanek wrote:
 On Sun, May 15, 2005 at 06:12:13PM -0700, John Myers wrote:
  On Sunday 15 May 2005 16:41, david stanek wrote:
   Add an option to emerge, --backup or something
   similar, that will automatically run quickpkg.
  
  If you set FEATURES=buildpkg, portage automatically makes binary packages 
  for you. No need to add new support.
 
 That would build a binary package for the potentially broken
 package. What it would need to do is build a binary package of the
 existing merged package. So a user can recover from a botched
 upgrade.

Actually a very simple safe-emerge script can be easily written. It
could first do an 'emerge --buildpkg' on the existing merged package,
if that package was already merged.

The other part would be to create a statically linked version of tar
that can be used in a recovery situation.

-- 
David Stanek
www.roninds.net

GPG keyID #6272EDAF on http://pgp.mit.edu
Key fingerprint = 8BAA 7E11 8856 E148 6833  655A 92E2 3E00 6272 EDAF


pgpvGsYgziGCW.pgp
Description: PGP signature


Re: [gentoo-dev] i have an idea ! (erescue)

2005-05-15 Thread David Stanek
On Sun, May 15, 2005 at 09:07:15PM -0700, Sami Samhuri wrote:
 * On Sun May-15-2005 at 05:18:06 PM -0400, Mike Frysinger said:
 [...]
  my proposal is to implement a new utility (called 'erescue' for lack of a 
  better name) that is written in C and designed to be statically linked ... 
  then next time you break a core system package which cannot be recovered by 
  simply running `emerge` a few times, you run `erescue broken package`
 
 Everyone who is saying that Portage can already sort of handle this
 seems to be missing one important point. If Python is broken then emerge
 won't work. The proposed erescue would still work in that case.

If erescue is a statically built binary that basically untars a
backed up copy of a package, why would it depend on Python?


-- 
David Stanek
www.roninds.net

GPG keyID #6272EDAF on http://pgp.mit.edu
Key fingerprint = 8BAA 7E11 8856 E148 6833  655A 92E2 3E00 6272 EDAF


pgpxBL8wrNK4r.pgp
Description: PGP signature


[gentoo-dev] Web application data

2005-05-13 Thread david stanek
It seems that many web applications have a need to store data, logs,
etc. I have been using a directory scheme I thought others on this
mailing list may be interested in. Because of my need to keep things
neat, clean and separate I do not like having this dynamic data in
the same web directory that serves the application.

For instance, my PyBlosxom ebuild has serveral CGI files that get
installed when you use webapp-config to create a new instance of the
application. I did not want the data and log files to reside in that
same path. So what I did was create a hook script that webapp-config
runs whenever it installs or removes and instance of the PyBlosxom
application.

The hook script creates a directory specific to that instance that is
being installed. Given an instance of PyBlosxom served from the
/blog directory you get this:
  /srv/fqdn/www/htdocs/blog
  /srv/fqdn/www/webapps/blog/data
  /srv/fqdn/www/webapps/blog/logs

The structure allows the data to be separate from the application.
This does not force the /srv heirarchy on anyone, the hook script
uses the webapp-cofig environment variables so that things get
installed where the user would expect them.

To keep things separate I take this one step further. I also push
the directory of the web application down a level. This separates
content I generate from content that was installed for me. So my
directory structure actually looks more like:
  /srv/fqdn/www/blog  # PyBlosxom
  /srv/fqdn/www/mail  # Squirrel Mail
  /srv/fqdn/www/htdocs# my content
  /srv/fqdn/www/webapps   # web application data

Does this seem reasonable? I was thinking about writing a GLEP or
proposing an addendum to GLEP 11 or 20 to address this. My driving
force behind this is a desire to have the application and the
application data separate. As a side effect it is easier to do
backups and my data between machines.

--
David Stanek
www.roninds.net

GPG keyID #6272EDAF on http://pgp.mit.edu
Key fingerprint = 8BAA 7E11 8856 E148 6833  655A 92E2 3E00 6272 EDAF


pgpjRBaQMR1NQ.pgp
Description: PGP signature