Base de datos de Nhopkg
La nueva base de datos de Nhopkg usará el motor SQLite3, con el cual se ganará una velocidad extra (que la versión 0.5 no garantizaba en algunos momentos) y mayor usabilidad. Aunque ahora no pueda trabajar mucho en el desarrollo de Nhopkg, pero si estoy haciendo alguna cosilla. Entre estas cosas, voy subiendo de vez en cuando cambios en el código al repositorio bazaar en sourceforge y también voy documentando las cosas poco a poco, para que resulte más fácil colaborar con el proyecto.
Ahora os muestro el diagrama de la base de datos, que en principio usará Nhopkg. Digo en princpio porque al estar en contrinuo desarrollo nunca se sabe si podrá cambiar algunos aspectos de ésta, o quizá completamente. Ahí va un adelanto, cualquier sugerencia será bienvenida.
Para el que quiera curiosear algo más, en el repositorio bazaar puede encontrar los archivos SQL.
[Python] Primeras líneas de libnhopkg
Las siguientes líneas son un pequeño anticipo de lo que será libnhopkg, la librería básica de Nhopkg escrita en Python, tal y como anuncié en la entrada anterior.
Tan solo es el script y la clase encargados de obtener la información que necesitará Nhopkg para funcionar. Esta información la recoge, en primer lugar del sistema, datos como la arquitectura, la versión del kernle, etc. y por otro lado del archivo de configuración nhopkg.conf. Se trata de una parte muy básica de la librería, pero indispensable (creo yo) para seguir trabajando. Además, aunque no lo postee aquí, estoy trabajando en las clases necesarias para leer y obtener la información de los archivos nhoid, presentes en los paquetes.
Antes de nada también aprovecho para mostraros una plantilla (sin datos) de lo que será el archivo nhopkg.conf, con algunos cambios significativos desde la última versión estable. Aunque está bastante completo, no descarto que se le añadan más campos al archivo.
01.
[main]
02.
sysconfdir =
03.
datadir =
04.
localstatedir =
05.
tmpdir =
06.
buildir =
07.
lockfile =
08.
09.
[database]
10.
database =
11.
12.
[server]
13.
server =
14.
15.
[packaging]
16.
find_dirs =
17.
no_upgrade_file =
18.
19.
[options]
20.
check_deps =
21.
check_inverse_deps =
22.
check_md5sum =
23.
verbose_mode =
24.
nls_support =
25.
nls_support_textdomain =
26.
nls_support_textdomaindir =
01.
#!/usr/bin/python
02.
# -*- coding: utf-8 -*-
03.
#
04.
# Nhopkg is a universal package manager for unix systems.
05.
# Copyright (C) 2009 Jaime Gil de Sagredo Luna <jaimegildesagredo@gmail.com>
06.
#
07.
# This program is free software: you can redistribute it and/or modify
08.
# it under the terms of the GNU General Public License as published by
09.
# the Free Software Foundation, either version 3 of the License, or
10.
# (at your option) any later version.
11.
#
12.
# This program is distributed in the hope that it will be useful,
13.
# but WITHOUT ANY WARRANTY; without even the implied warranty of
14.
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15.
# GNU General Public License for more details.
16.
#
17.
# You should have received a copy of the GNU General Public License
18.
# along with this program. If not, see <http://www.gnu.org/licenses/>;.
19.
20.
"""Default Nhopkg configuration."""
21.
22.
import
os
23.
import
ConfigParser
24.
25.
class
config_parse:
26.
"""Get data from Nhopkg configuration file."""
27.
def
__init__(
self
, config):
28.
"""config: Nhopkg configuration file."""
29.
self
.config_file
=
config
30.
(
self
.sysname,
self
.hostname,
self
.sysrelease,
self
.sysversion, \
31.
self
.machine)
=
os.uname()
32.
33.
self
.read_file()
34.
self
.parse()
35.
36.
def
read_file(
self
):
37.
"""Read Nhopkg configuration file."""
38.
self
.config
=
ConfigParser.ConfigParser()
39.
self
.config.read(
self
.config_file)
40.
41.
def
parse(
self
):
42.
"""Parse Nhopkg configuration file."""
43.
self
.sysconfdir
=
self
.config.get(
'main'
,
'sysconfdir'
)
44.
self
.datadir
=
self
.config.get(
'main'
,
'datadir'
)
45.
self
.localstatedir
=
self
.config.get(
'main'
,
'localstatedir'
)
46.
self
.tmpdir
=
self
.config.get(
'main'
,
'tmpdir'
)
47.
self
.buildir
=
self
.config.get(
'main'
,
'buildir'
)
48.
self
.lockfile
=
self
.config.get(
'main'
,
'lockfile'
)
49.
self
.database
=
self
.config.get(
'database'
,
'database'
)
50.
self
.server
=
self
.config.get(
'server'
,
'server'
)
51.
self
.find_dirs
=
self
.config.get(
'packaging'
,
'find_dirs'
)
52.
self
.no_upgrade_file
=
self
.config.get(
'packaging'
,
'no_upgrade_file'
)
53.
self
.check_deps
=
self
.config.get(
'options'
,
'check_deps'
)
54.
self
.check_inverse_deps
=
self
.config.get(
'options'
,
'check_inverse_deps'
)
55.
self
.check_md5sum
=
self
.config.get(
'options'
,
'check_md5sum'
)
56.
self
.verbose_mode
=
self
.config.get(
'options'
,
'verbose_mode'
)
57.
self
.nls_support
=
self
.config.get(
'options'
,
'nls_support'
)
58.
self
.nls_support_textdomain
=
self
.config.get(
'options'
, \
59.
'nls_support_textdomain'
)
60.
self
.nls_support_textdomaindir
=
self
.config.get(
'options'
, \
61.
'nls_support_textdomaindir'
)
En breve subiré las primeras líneas de este código al nuevo repositorio bazaar de Nhopkg, mucho más cómodo y en mi opinión mejor que el anterior svn. http://nhopkg.bzr.sourceforge.net/bzr/nhopkg/changes
Además la lista de correo de desarrollo de Nhopkg está ya activa, si quieres unirte al desarrollo o estar informado de las últimas novedades de éste, no dudes en suscribirte: https://lists.sourceforge.net/lists/listinfo/nhopkg-svn
Nhopkg con alma de serpiente
Después de no sé cuanto sin escribir nada me dispongo, por fin, a hacerlo. Como no podía ser de otra forma voy a hablar sobre Nhopkg. Ahora mismo, no tengo a penas tiempo para continuar con el desarrollo de Nhopkg. Desde que salió la versión 0.5 no he tocado a penas el código por falta de tiempo. A pesar de ésto he seguido trabajando en él, eso si, de forma menos activa, únicamente pensando, haciendo bocetos…
Fecha para Nhopkg 0.5
Como bien dicen, se hizo esperar, pero ya tiene fecha de salida, el 30 de Abril, para comenzar el mes con buen pie. A pesar de los diversos problemas antes de su salida, y aun sin resolver, el desarrollo de Nhopkg continuará y lo demuestra con el anuncio de la fecha de liberación de, quizás, la más importante de sus versiones hasta el momento. A continuación os dejo la carta de presentación de esta nueva versión, con gran cantidad de mejoras, pero lo más importante, con una comunidad cada vez más grande, y de la cual me enorgullezco. Sin más preámbulos, os presento a Nhopkg 0.5.
Además aprovecho para agradecer todo el apoyo que se me ha ofrecido desde que se hicieron públicos los problemas previos a Nhopkg 0.5, y por supuesto, a todos los que han estado ahí desde el primer día, está versión de Nhopkg es vuestra.