{"id":4406,"date":"2023-02-01T10:34:11","date_gmt":"2023-02-01T09:34:11","guid":{"rendered":"https:\/\/esferas.org\/msqlu\/?p=4406"},"modified":"2023-02-01T10:34:12","modified_gmt":"2023-02-01T09:34:12","slug":"100daysofcode-dia-6-empaquetando-otros-programas","status":"publish","type":"post","link":"https:\/\/esferas.org\/msqlu\/2023\/02\/01\/100daysofcode-dia-6-empaquetando-otros-programas\/","title":{"rendered":"100DaysOfCode: d\u00eda 6 &#8211; empaquetando otros programas"},"content":{"rendered":"\n<p>Antes de nada voy a hacer un cambio en estas entradas porque no me entero de nada de lo que he escrito. Y mira, as\u00ed no se puede vivir. Voy a poner un titular peque\u00f1o en cada tema y luego lo etiqueto para el futuro. <\/p>\n\n\n\n<!--more-->\n\n\n\n<h3 class=\"wp-block-heading\">ttt<\/h3>\n\n\n\n<p>Pues andaba yo tan contento con mi formato cuando \u00c1ngel me vuelve a descubrir otra cosa relacionada con \u00e9sto. Se trata del formato <a rel=\"noreferrer noopener\" href=\"https:\/\/fountain.io\" target=\"_blank\">fountain<\/a> dise\u00f1ado expresamente para guiones y textos de este tipo. Y me ha alegrado saber de que hemos llegado a soluciones similares como el empleo de un texto plano (con similitudes a <em>markdown<\/em>) para la entrada de textos. <\/p>\n\n\n\n<p>Es muy interesante. Me lo he guardado para ver si en el futuro hago algo un poco m\u00e1s complejo o incluso termino adoptando alguno de los programas que ya lo usan. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">html2epub<\/h3>\n\n\n\n<p>El programa que me descubri\u00f3 tambi\u00e9n \u00c1ngel del muchacho <em>gro\u00f1a-gro\u00f1a<\/em> (o muchacha, o muchache) me ha parecido lo bastante \u00fatil como para empaquetarlo en formato Debian. No, no tengo intenci\u00f3n de llevarlo a los repositorios oficiales porque eso me lleva demasiado trabajo y no estoy ahora para florituras. <\/p>\n\n\n\n<p>He estado pensando y como no tengo confianza ni roce con el autor\/a\/e no puedo pedirle que acepte mis cambios en su repositorio. La mejor forma de empaquetarlo para que sea instalable y referenciable (esto es muy importante para el empaquetado de programascomo <em>ttt<\/em>) es clonarlo en un directorio temporal, efectuar cambios si son necesarios, a\u00f1adir los archivos imprescindibles (como p\u00e1ginas de manual o licencias de uso) y pasar al empaquetado propiamente dicho en otro directorio temporal. <\/p>\n\n\n\n<p>El archivo Makefile que he empleado en este caso est\u00e1 a continuaci\u00f3n. Y s\u00ed, he creado un repositorio privado para realizar estos cambios. La idea es repetir el proceso cuando el autor\/a\/e lo haga y automatizarlo todo lo posible. Estoy usando \u00e9sto como prueba de concepto. El programa es un script en <em>bash<\/em> y tampoco tiene mucha miga. <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">#\n#   Nombres, archivos, ...\nPACKAGE=html2epub\n\nREPO=https:\/\/codeberg.org\/grunfink\/html2epub.git\nTMP_CLONE=.tmp-clone\nTMP_BUILD=.tmp-build\n\n#\n#   Objetivos \n\nall:\n\ndeb:    build build-docs install-docs \n        myequivs $(PACKAGE).equivs\n\ninstall-docs:\n        build_repo_manpages -i -s man -t $(TMP_BUILD)\/usr\/share\/man\n\nclean:  rmdir-tmp clean-docs \n        clean-repo\n\nclean-docs:\n        build_repo_manpages -c -s man\n\nclean-clone: \n        -rm -rf $(TMP_CLONE)\n\nrmdir-tmp:\n        -rm -rf $(TMP_BUILD) \n\nbuild-docs:\n        build_repo_manpages -b -s man\n\nbuild:  mkdir-tmp \n        mkdir -p $(TMP_BUILD)\/usr\/bin\/\n        cd $(TMP_CLONE); make install PREFIX=..\/$(TMP_BUILD)\/usr\/bin; cd ..\n\nclone-repo: mkdir-tmp\n        git clone $(REPO) $(TMP_CLONE)\n\nmkdir-tmp: $(TMP_CLONE) $(TMP_BUILD)\n\n$(TMP_CLONE):\n        -mkdir $@\n\n$(TMP_BUILD):\n        -mkdir $@\n<\/code><\/pre>\n\n\n\n<p>Hace referencia a varios programas que tengo empaquetados bajo el nombre de <em>mydevtools<\/em> y que mantengo y empleo para estos casos. <em>myequivs<\/em>, por ejemplo, es una ampliaci\u00f3n de <em>equivs-build<\/em> con mejoras para instalar desde un \u00e1rbol directamente. Siempre modificando los archivos est\u00e1ndar que emplea el programa original, sin m\u00e1s artefactos. <\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Antes de nada voy a hacer un cambio en estas entradas porque no me entero de nada de lo que he escrito. Y mira, as\u00ed no se puede vivir. Voy a poner un titular peque\u00f1o en cada tema y luego lo etiqueto para el futuro.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","webmentions_disabled_pings":false,"webmentions_disabled":false,"footnotes":""},"categories":[1206],"tags":[1216,1209,1214],"class_list":["post-4406","post","type-post","status-publish","format-standard","hentry","category-100daysofcode","tag-html2epub","tag-mydevtools","tag-ttt"],"_links":{"self":[{"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/posts\/4406","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/comments?post=4406"}],"version-history":[{"count":1,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/posts\/4406\/revisions"}],"predecessor-version":[{"id":4407,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/posts\/4406\/revisions\/4407"}],"wp:attachment":[{"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/media?parent=4406"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/categories?post=4406"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/tags?post=4406"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}