SRC: Control de versiones para proyectos de un solo archivo

Tiempo atrás consulté con mis amigos cual sería la forma adecuada de mantener el histórico de versiones de distintos proyectos que están conformados por un único archivo de código fuente; o alternativamente, si alguno conocía un sistema de control de versiones tal como subversion, mercurial o git, que permitiera mantener esa información sin tener que crear todo el proyecto en un nuevo directorio y sin el overhead de trazar cambios en jerarquías de carpetas y similares. La idea es sencilla: muchas veces hago scripts sueltos que no merecen estar alojados en un repositorio de código particular -están todos juntos en un directorio “scripts”-, pero de los que me interesa mantener un historial de cambios y revisiones.

Tomás me recomendó GistBox, que parece bastante piola puesto que en cierta forma está destinado a mantener esa “biblioteca” de código variado que uno va acumulando con el tiempo. Además los Gists siguen siendo repositorios git, por lo cual tienen todas las ventajas de un control de versiones. Pero aquí ya uno depende un poco de los servicios en la nube y además sigue siendo necesario mantener los archivos fuente en directorios aparte.

Salvando GistBox, hasta el momento no había encontrado ningún software que realice tal tarea, e incluso estuve tentado a comenzar un proyecto propio para tal fin.

Sin embargo, recientemente di con un post de Eric Raymond en el cual menciona la creación de un nuevo proyecto denominado SRC o “Simple Revision Control”, basado en RCS y definido como “Revision control with a modern UI for single-file solo projects kept possibly more than one to a directory”. En palabras sencillas, justo lo que estoy buscando.

Según el sitio web del proyecto -que al involucrar múltiples archivos, está mantenido en git, pun intended!-, Simple Revision Control es:

RCS recargado -un pequeño y cómodo sistema de control de versiones para proyectos de único archivo, único desarrollador, tal como todos esos pequeños scripts en el directorio ~/bin. Cuenta con operación libre de bloqueo, una interfaz de usuario limpia y moderna similar a la de subversion, documentación integrada, y los archivos de historia son archivos sencillos de RCS.

A primera vista tiene tres ventajas: a) cumple con lo que yo había solicitado; b) está desarrollado en python; y c) por el propio autor de “The Art of UNIX Programming”. Más no se puede pedir.

Mientras estaba leyendo el artículo, en los comentarios aportan otra utilidad similar (que también desconocía): Zit, the git-based single file content tracker. Por ahora voy a probar SRC y ver si se ajusta a mi forma de trabajo. En un tiempo les comento que tal fue.

Post instalación Debian GNU/Linux 7 (Wheezy)

Inspirado en un post de Tomás -bah, debo decir: copiando inescrupulosamente su texto- referido a las tareas post-instalación de Ubuntu caí en la cuenta de que de requerir volver a instalar Debian, por la razón que fuera, no es mala idea tener documentado cuál es el software que suelo agregar al sistema una vez terminada la instalación inicial, por lo que éste es un post que servirá por dos puntas:

  • para el que quiera tener una instalación de debian wheezy (estable) usable, vale decir, con algunas aplicaciones más modernas que las que trae por defecto pero tratando de no salir de los repos oficiales;
  • y para mí, para no perder tiempo haciendo memoria en el caso de tener que reinstalar el sistema.

Paso 1

Para comenzar, partimos de la instalación base de Debian Wheezy. Para que se den una idea, hay que seguir la instalación tradicional y cuando presenta el uso que se dará (escritorio, servidor, etc), desmarcar todas las opciones y continuar normalmente.

Paso 2

Una vez instalado y hecho el primer arranque, luego de iniciar sesión lo que suelo hacer al toque  es deshabilitar la opción de instalación de paquetes recomendados, puesto que pocas veces son necesarios y además engordan sobremanera el espacio ocupado por el sistema. Para ello basta con ejecutar la línea siguiente para que las próximas instalaciones eviten instalarlos.

echo "APT::Install-Recommends \"false\";" > /etc/apt/apt.conf.d/90-wheezy-powerup-disable-recommends.conf

Paso 3

Luego, sólo si están  detrás de un proxy, hay varias formas de configurarlo: puede ser globalmente mediante las variables de entorno http_proxy, https_proxy y ftp_proxy, o bien mediante la configuración de APT para aquellos casos donde dispongan de un servidor de caché como APT-Cacher. Por ejemplo:

PROXY="http://proxy.miorganizacion.com.ar:8080/"
export http_proxy=$PROXY
export https_proxy=$PROXY
export ftp_proxy=$PROXY
echo "Acquire::http::Proxy \"$PROXY\";" > /etc/apt/apt.conf.d/90-wheezy-powerup-proxy.conf
echo "Acquire::ftp::Proxy \"$PROXY\";" > /etc/apt/apt.conf.d/90-wheezy-powerup-proxy.conf

Paso 4

Verificar que están configurados los repositorios oficiales de la distribución, más el repositorio de backports. Para ello, el archivo /etc/apt/sources.list debería listar, al menos, los siguientes:

deb http://cdn.debian.net/debian/ wheezy main contrib non-free
deb http://security.debian.org/ wheezy/updates main contrib
deb http://cdn.debian.net/debian/ wheezy-backports main contrib non-free

Paso 5

Agregar algunos repositorios externos (no Debian) que contienen software útil, por ejemplo mozilla-debian para la última versión de Iceweasel, el de Dropbox y el de Google Talk. Se pueden agregar en un archivo denominado /etc/apt/sources.list.d/repos-externos.list

deb http://mozilla.debian.net/ wheezy-backports iceweasel-release
deb http://linux.dropbox.com/debian wheezy main
deb http://dl.google.com/linux/talkplugin/deb/ stable main

Paso 6

Clásico: actualizar la lista de paquetes.

apt-get update

Paso 7

Instalar un entorno gráfico y los controladores de la placa de video. Para la interfaz gráfica hay varios metapaquetes que se corresponden a cada entorno de escritorio, los más conservadores son los siguientes: para Gnome, instalando gnome-core alcanza; para KDE, instalen kde-plasma-desktop; para XFCE instalen xfce4; para LXDE instalen lxde; incluso pueden instalar Mate desde backports mediante el paquete mate. Eventualmente puede ser necesario instalar un driver privativo, por ejemplo para placas GPU AMD/ATI suele ser necesario el paquete fglrx-driver, mientras que para placas GPU nVidia el paquete a instalar es xserver-xorg-video-nvidia. También hay versiones para chipsets más antiguos (aparecen como paquetes con el nombre legacy). Si tienen un chipset Intel, con lo que viene por defecto suele alcanzar. Sobre el entorno gráfico, yo tengo predilección por el Gnome clásico.

apt-get install xorg xserver-xorg xserver-xorg-video-all gnome-core \
    gnome-session-fallback

Superpaso 8

Instalar paquetes desde los repositorios oficiales. Como en la línea anterior, cada paquete está enlazado a su descripción en el sitio de Debian.

Paso 8.1. Controladores y servicios útiles

apt-get install amd64-microcode dkms fail2ban intel-microcode \
    libmtp-runtime ntfs-3g ssh uptimed

Paso 8.2. Herramientas útiles de línea de comando

apt-get install alsa-utils bash-completion clamav colordiff colortail \
    curl flac hexedit highlight htop iotop less lftp libav-tools \
    mc mlocate nano nmap netcat-openbsd os-prober p7zip p7zip-full pv \
    qemu-kvm screen sshfs tshark unrar unzip vbindiff w3m wget zip

Paso 8.3. Lenguajes de programación, herramientas y documentación

apt-get install build-essential idle ipython python python-doc \
    sqlite3 sqlite3-doc

Paso 8.4. Programas gráficos para fines variados (editores, reproductores, etc)

apt-get install audacious chromium chromium-l10n desktop-base \
    file-roller filezilla flashplugin-nonfree fslint gedit \
    gedit-plugins geeqie ghex gimp gksu gnome-specimen \
    gnome-tweak-tool gpicview gstreamer0.10-ffmpeg hardinfo \
    icedove icedove-l10n-es-ar keepassx leafpad meld mplayer-gui \
    mplayer2 openbox sound-juicer sqlitebrowser synaptic totem \
    transmission-gtk vlc wireshark xdg-user-dirs-gtk xterm

apt-get -t wheezy-backports install geany geany-plugins \
    pepperflashplugin-nonfree

Paso 8.5. Iconos y temas de escritorio

apt-get install clearlooks-phenix-theme dmz-cursor-theme gnome-colors \
    human-icon-theme murrine-themes shiki-colors tango-icon-theme

Paso 8.6. Versión más moderna del kernel (3.16 para 64 bits)

apt-get -t wheezy-backports install firmware-linux linux-headers-amd64 \
     linux-image-amd64 linux-doc

Paso 8.7. Versión más moderna de VirtualBox (4.3.14)

apt-get install libqt4-network libqt4-opengl libqtcore4 libqtgui4

apt-get -t wheezy-backports install virtualbox virtualbox-dkms \
    virtualbox-qt

Paso 8.8. Versión más moderna de LibreOffice (4.3.2)

apt-get -t wheezy-backports install libreoffice libreoffice-gnome \
    libreoffice-help-es libreoffice-l10n-es libreoffice-style-tango \
    fonts-opensymbol

Paso 8.9. Versión más moderna de Iceweasel/Firefox (33)

apt-get -t wheezy-backports install iceweasel iceweasel-l10n-es-ar

Paso 8.10. Tipografías

apt-get install fonts-cantarell fonts-crosextra-caladea \
    fonts-crosextra-carlito fonts-dkg-handwriting fonts-humor-sans \
    fonts-droid fonts-font-awesome fonts-liberation fonts-roboto \
    ttf-dejavu ttf-mscorefonts-installer

Paso 9

Instalar paquetes desde repositorios externos: dropbox, skype, google-talkplugin (pendiente de documentar)

Paso 10

Listo, con eso les queda un sistema operativo de unos 5 GB, a mi juicio, casi perfecto. Todo lo documentado aquí está disponible en un sencillo script que instala Gnome y ejecuta estos pasos de un saque. Lo dejo aquí disponible por si les sirve: wheezy-powerup.sh Algunos consejos adicionales:

  • Antes de iniciar sesión, conviene elegir la sesión “Gnome Classic” y establecerla por defecto.
  • Una vez en el escritorio, cambien el tapiz y utilicen gnome-tweak-tool para habilitar los íconos en el fondo, cambiar la tipografía y los temas visuales.
  • Pueden añadir applets a las barras superior e inferior manteniendo presionada la tecla Alt y haciendo clic con el botón derecho del ratón sobre alguna de ellas. Si con Alt no funciona, prueben con Win+Alt.
  • Para tener la tipografía clásica en las terminales Fx, ejecuten dpkg-reconfigure console-setup y en “Tipo de letra para la consola” seleccionen “No cambie la tipografía del arranque”.

Les recomiendo que se den una vuelta por el post de Tomás pues el da también una buena lista de software para instalar, y si me olvido de algo, o ven algo que sobra, abajo están los comentarios…

Call for Charlas PyDay Luján 2014

El Grupo de Usuarios de Software Libre (UNLUX) de la Universidad Nacional de Luján invita a la comunidad de usuarios de Python y de Software Libre en general a proponer presentaciones y charlas para el encuentro PyDay Luján 2014, que tendrá lugar en la Sede Central de la Universidad Nacional de Luján (UNLu) el sábado 20 de septiembre de 2014.

Sobre el PyDay

PyDay es el nombre coloquial con el que se conoce a las jornadas de lenguaje Python de un día de duración.
Este evento se presenta como una oportunidad de encuentro e intercambio de experiencias entre desarrolladores, programadores y usuarios del lenguaje en ámbitos que se extienden a la empresa, la academia, el arte y, desde luego, el ocio.
La temática del evento es el lenguaje de programación de propósito general Python, en niveles introductorios e intermedios tanto teórico (charla) como práctico (talleres), si bien también serán recibidas aquellas propuestas de temas más avanzados y afines.
Cada disertante dispondrá de 45 minutos para su exposición, incluyendo el tiempo para preguntas. Habrá unos 15 minutos de intermedio entre charlas. Además, el día del evento se se pondrá a disposición de los presentes un listado para recibir propuestas de Charlas Relámpago.

Envío de propuestas

Para acercarnos una propuesta de charla, ingrese a la sección “Charlas” en el sitio oficial del evento y complete el formulario de propuesta allí presente. El material de las presentaciones se hará disponible a los asistentes, por lo que solicitamos se brinde bajo una licencia que permita su libre distribución.

Fecha límite

La recepción de propuestas finaliza el día 15 de agosto del corriente año a la medianoche. Las presentaciones fuera de plazo podrán ser considerados para su inclusión en la conferencia principal en caso de quedar espacio disponible. Una vez evaluadas las propuestas, se informará a los autores el resultado de la selección.

Para contactarse en forma privada respecto a su propuesta, por ideas más generales o preguntas sobre el evento, por favor envíenos un correo electrónico a pydaylujan@gmail.com

Esperamos contar nuevamente con Uds. en la UNLu para compartir momentos memorables durante este PyDay.

Agradecemos la difusión de este llamado y del encuentro en sí.

Oh, la ironía… | Mozilla

mozilla-drm-wtf

Les dejo el aviso de prensa en inglés y en español, la posición de la EFF, y un comentario de Ian Hickson que me pareció interesante.

FLISOL 2014 – Festival Latinoamericano de Instalación de Software Libre

El grupo de usuarios de Software Libre de la Universidad de Luján –UNLUX- invita a toda la comunidad a participar de la edición 2014 del FLISOL – Festival Latinoamericano de Instalación de Software Libre en la ciudad de Luján, a llevarse a cabo el día sábado 26 de abril, en concordancia con numerosas ciudades de Argentina y el continente. Las actividades se desarrollaran en la Sede Central de la Universidad Nacional de Luján (UNLu) a partir de las 13:00 hs.

Al igual que en ediciones anteriores, los integrantes del grupo instalarán Software Libre (GNU/Linux, Firefox, etc.) de forma gratuita y totalmente legal en los equipos informáticos que los asistentes acerquen al encuentro. Durante la ejecución del mismo se ofrecerán charlas informativas y técnicas sobre diferentes aspectos relacionados con el Software Libre.

Los invitamos a participar acercando sus equipos tanto para la instalación de Software Libre, la resolución de problemas sobre instalaciones existentes o simplemente para participar de una jornada distinta para intercambiar experiencias sobre Software Libre o compartir una tarde en un ambiente agradable.

Sobre el FLISOL

El Festival Latinoamericano de Instalación de Software Libre es un evento que se viene desarrollando de forma anual desde hace casi una década, donde se promueve el trabajo colaborativo ayudando a personas a conocer el mundo del Software Libre.

Está organizado por varios grupos de usuarios de los países involucrados congregados alrededor de esta iniciativa que reúne participantes de Argentina, Bolivia, Brasil, Chile, Colombia, Cuba, Ecuador, El Salvador, Guatemala, Honduras, México, Nicaragua, Panamá, Paraguay, Perú, Uruguay y Venezuela, entre otros. En Argentina ya está confirmada la realización de FLISOL en distintas ciudades.

El encuentro está dirigido a todas las personas que desean conocer más sobre software libre, instalarlo y usar sus computadoras preservando sus libertades, en condiciones de legalidad y sin estar preocupados por virus y otros problemas comunes del software privativo. Durante la jornada, se realizan instalaciones en forma totalmente gratuita, mientras que en paralelo se ofrecen diversas charlas de divulgación para promover el uso y la filosofía del Software Libre.

Cronograma de Charlas

El cronograma de charlas se está actualizando constantemente. Revisa los sitios flisol.info/FLISOL2014/Argentina/Lujanwww.unlux.com.ar para estar al tanto de las novedades.

Inscripción

Llenando este formulario, nos ayudas a estimar la asistencia de público y preparar mejor los espacios disponibles:
http://eventosimple.net/event/sp/publication/flisol-unlu/register

Sin embargo, la entrada es libre y gratuita, no es necesario registrarse para asistir a las charlas. Si pensás traer un equipo para instalar o configurar, por favor registrate y lee detenidamente las aclaraciones y datos al respecto.

Sobre el UNLUX

El UNLUX es un grupo de usuarios y entusiastas del Software Libre, que existe desde el 2005 y realiza sus actividades en el marco de la Universidad Nacional de Luján. Participa en el FLISOL desde el 2006, instalando y difundiendo diferentes ventajas de usar el Software Libre en el ámbito Educativo, Social, Técnico, Profesional y Personal.

Para conocer las vías de comunicación, podés empezar por www.unlux.com.ar y suscribirte a la lista de correo y el canal IRC.

En agenda

Analizando ejecutables de Windows con software libre

Tras haber repasado durante la creación de gpefile.py las estructuras internas del formato Portable Executable (PE) que describe a los ejecutables de Windows, otro de los pet projects en los que he picado código es un sencillo generador de gráficos de flujo de control (control flow graphs) para comprender el flujo de ejecución de los binarios de dicha plataforma.

Haciendo uso de pefile, pygraphviz y principalmente pymsasid, con unas 400 líneas de python es posible partir de un ejecutable cualquiera y obtener un gráfico como el siguiente.

autochk-fragment2autochk – full image (big!) – dot file


Desde luego este es un ejemplo extremadamente sencillo y trivial, analizando el binario
autochk.exe de ReactOS 0.3.16, un sistema operativo binary-compatible con Windows. El gráfico de flujo de control para un ejecutable moderno crece rápidamente a raíz de los distintos caminos que el compilador debe generar para representar las instrucciones presentes en el código fuente original de la utilidad (autochk.c).

El diagrama siguiente fue construido a partir del ejecutable hideflag.exe, que es un código histórico en este blog. He marcado en amarillo el bucle principal que se puede apreciar en el código fuente de la aplicación (en pascal, esta vez).

hideflag-fragment2hideflag – full image (big!) – dot file


Para el despliegue de los gráficos, dado que los visores en Debian se mambean con imagenes de varios megapíxeles (bugs
581891 y 163090 ya reportados en varios lugares), les recomiendo descargar los archivos .dot originales y visualizarlos directamente con la excelente utilidad xdot (también hecha en python, de paso).

En el diagrama, cada bloque básico inicia con un punto de entrada (primera instrucción a ejecutar, EIP, o destino de un salto) y finaliza con otro salto, una instrucción de retorno (ret), o bien abruptamente como resultado de un límite impuesto arbitrariamente por mí (esto último para evitar generar gráficos grandes con los cuales dot se marea, y créanme que algunos tardan más de diez minutos en desplegarse).

El bloque marcado en verde es comúnmente el primero en ejecutarse. Las flechas de colores indican, obviamente, el flujo de ejecución posible. Los códigos son los siguientes:

  • Flechas azules salto incondicional;
  • Flechas negras  continuación/fall-thru (instrucción que sigue directamente a la actual);
  • Flechas violetas llamada a función (sólo la ida, se asume que la llamada a función retorna a la instrucción siguiente);
  • Flechas verdes bloque a ejecutar en un salto condicional si la condición evaluada resulta verdadera;
  • Flechas rojas bloque a ejecutar en un salto condicional si la condición evaluada resulta falsa;
  • Flechas celestes callback al que apunta algún argumento del código (no implica que la función sea llamada en ese momento)

Las flechas punteadas representan saltos encadenados (JMP-to-JMP) que suelen verse en los binarios y que el script trata de reducir a fin de simplificar las secuencias en los gráficos generados (de ahí que el destino no coincida con las dirección del salto original, pero a la larga termina allí).

En algunas instrucciones, si el operador es una dirección de memoria válida y refiere a la sección de datos del ejecutable, el script añade el contenido de dicha dirección como comentario a la instrucción desensamblada (útil para ver cadenas de formato pasados como parámetro a llamadas a impresión en pantalla); si en cambio refiere a la sección de código, interpreta que se trata de un puntero a función utilizada como callback. De forma similar, trata de interpretar las llamadas a funciones de bibliotecas (resumiendo CALL y CALL-to-JMP) mediante información existente en la IAT si estuviera disponible.

Desde ya, el código que genera estos gráficos tiene innumerables errores y limitaciones (ej, evaluación de saltos indirectos, mejor detección de callbacks, interpretación de loop/loopX y muchas más cosas). En resumen, es sumamente borrador, por eso no lo puse en línea con esta entrada. En realidad lo estoy utilizando como preprocesador para una fase siguiente de decompilación. En cuanto lo tenga mas o menos prolijo lo subo a una cuenta de github, por si a alguno le interesa. También me va a servir a mí para acostumbrarme a usar ese servicio, hehe.

Lo curioso de todo es lo cómodo que resulta Debian para hacer análisis de ejecutables de Windows, jaj.

Traducción completa del manual del administrador de Debian

Raphaël Hertzog anunció la disponibilidad de las traducciones completas en Español y Francés del libro “The Debian Administrator’s Handbook, Debian Wheezy from Discovery to Mastery” que escribiera en co-autoría con Roland Mas. Al día de hoy es quizás la referencia más completa, actualizada -y correcta, además- del sistema operativo Debian en su versión 7 (Wheezy).

La traducción en español fue llevada a cabo por Matías Bellone, Adrià García-Alzórriz, Rene Saavedra y otros colaboradores.

El libro puede adquirirse en papel, en digital, consultarse gratuitamente en línea o leerse localmente instalando el paquete debian-handbook (en este último caso, en inglés).

Kernels nuevos en Debian Stable

Vengo siguiendo bastante de cerca la publicación de versiones estables del kernel de Linux. A fines de diagnóstico suelo compilar la última versión disponible e instalarla en varias de las máquinas sobre las que tengo acceso. Como quizás le sirva a más de uno, acá dejo disponible la última versión que compilé en casa.
Todas estas son directamente instalables sobre Debian GNU/Linux Wheezy 7.0 de 64 bits sin quilombo de dependencias. Cada directorio contiene los paquetes con la imagen del kernel, los encabezados, el firmware y la configuración utilizada en la compilación.

Si les interesa saber qué hay de nuevo, les dejo el clásico resumen hecho por la gente de KernelNewbies: Linux 4.0.

Actualización 2015: en función a la reciente publicación de la nueva versión estable Debian GNU/Linux 8.0 Jessie, y tras haber migrado los equipos que utilizo habitualmente, mantendré a los paquetes aquí publicados brevemente como históricos y luego -eventualmente- desaparecerán del repositorio. Para los que estén interesados en mantenerse al día con las últimas versiones, encontrarán nuevos paquetes del núcleo en el post dedicado a Kernels nuevos en Debian Jessie.

 

gzip y poesía

Cómo gunzip decodificaría una versión comprimida de “El cuervo” de Poe. Cada secuencia de caracteres entre llaves es una referencia a una secuencia previa del texto. Créditos a Julia Evans!

Instalación de ipfw/dummynet en Debian Wheezy

¿dummynet? ¿qué es dummynet?

Según su sitio web: “dummynet es una herramienta de simulación de redes en vivo diseñada originalmente para probar protocolos de red, y que desde entonces se utiliza para una variedad de aplicaciones entre las que se incluye el manejo de ancho de banda. Simula/impone limitaciones de encolado y ancho de banda, retrasos, pérdida de paquetes y otros efectos. Implementa también varios algoritmos de planificación. dummynet puede utilizarse en el mismo equipo donde se ejecuta la aplicación a probar o en cajas externas que actúan como enrutadores o puentes.

La selección de tráfico se realiza mediante el firewall ipfw, que es la interfaz de usuario principal para dummynet. ipfw permite seleccionar con precisión el tráfico y la dirección a trabajar, simplificando su configuración y uso.”

Para más información los dirijo al completo artículo Dummynet Revisited de los autores Marta Carbone y Luigi Rizzo.

Procedimiento

Con la colaboración de varios compañeros de trabajo surgió la siguiente receta para construirlo en Debian Wheezy (en este caso para amd64, pero es similar en i386). No es la única ni la mejor manera, pero es una que funciona. Si alguno encuentra una mejor, será bienvenida.

  1. Bajar la versión de ipfw compatible con kernels 3.x (20130607 o superior) y descomprimirla
    wget http://info.iet.unipi.it/~luigi/doc/20130607-ipfw3.tgz
    tar xvzf 20130607-ipfw3.tgz
  2. Instalar los paquetes necesarios para Debian
    apt-get install build-essential linux-headers-`uname -r` linux-source-3.2
  3. Desempaquetar el código fuente completo del kernel linux. Esto requiere al menos 700 MB de espacio en disco libres, así que estén preparados.
    cd /usr/src
    tar xvjf linux-source-3.2.tar.bz2
  4. Copiar la configuración del kernel que se está ejecutando y las versiones de los módulos instalados
    cd /usr/src/linux-source-3.2
    cp -v /boot/config-`uname -r` .config
    cp -v /usr/src/linux-headers-`uname -r`/Module.symvers .
  5. Preparar el entorno de compilación del kernel
    cd /usr/src/linux-source-3.2
    make prepare
    make scripts
  6. Compilar ipfw indicando la ruta a los fuentes del kernel
    cd /ruta/a/ipfw3-2012
    make KSRC=/usr/src/linux-source-3.2
  7. Si no tiró errores, probar la carga y descarga del modulo ipfw_mod
    insmod kipfw-mod/ipfw_mod.ko
    dmesg
    rmmod ipfw_mod
  8. (Opcional) Instalar los binarios de ipfw y el modulo del kernel
    mkdir /lib/modules/`uname -r`/updates
    cp -v kipfw-mod/ipfw_mod.ko /lib/modules/`uname -r`/updates
    depmod
    cp -v ipfw/ipfw /usr/local/sbin
    chmod +x /usr/local/sbin/ipfw
  9. (Opcional) Verificar la instalación del modulo y agregarlo para cada inicio del equipo
    modprobe ipfw_mod
    dmesg
    echo ipfw_mod >> /etc/modules
  10. Listo!

Dejo un breve script para los haraganes que, como yo, prefieren ejecutar todo el procedimiento de un saque: build-ipfw.sh

Suerte y saludos!

Copyright © All Rights Reserved · Green Hope Theme by Sivan & schiy · Proudly powered by WordPress