From kde-devel Thu Jul 15 12:41:47 1999 From: "Yannai A. Gonczarowski" Date: Thu, 15 Jul 1999 12:41:47 +0000 To: kde-devel Subject: DEVEL-ANNOUNCE: krumple-0.1 X-MARC-Message: https://marc.info/?l=kde-devel&m=93204189711543 I have released krumple-0.1 today. It will soon be available from: ftp://ftp.kde.org/pub/kde/unstable/apps/ide/krumple-0.1.tgz Screenshots of a test installer I generated, in addition to other information are available at: http://www.leyada.jlm.k12.il/~yannaigo/krumple/ If anyone is willing to translate krumple (enable it to translate multilanguage installers), please contact me. To all developers: Please check if krumple is able to generate an installer for your program, and email me either way (success or failure). Please also consider releasing your next program in installer format instead of (or in addition to, if you prefer) .tgz. Below are the LSM and README/FAQ files. ----------------------------------------------------------------------------- Begin3 Title: krumple - KDE Installation SyStem Installer Generator Version: 0.1 Entered-date: 15/7/1999 Description: Generate a self-installing multi-platform executable package complete with a GUI from a gzipped tar of the source package. The installer is compatible with kiss - the KDE Installation SyStem. Just type "krumple mypackage-1.4.tgz", and see it automagically create the installer - no configuration is required whatsoever. Keywords: KDE Qt install uninstall package kiss Author: yannaigo@leyada.jlm.k12.il (Yannai A. Gonczarowski) Maintained-by: yannaigo@leyada.jlm.k12.il (Yannai A. Gonczarowski) Primary-site: ftp://ftp.kde.org/pub/kde/unstable/apps/ide/ Home-Page: http://www.leyada.jlm.k12.il/~yannaigo/krumple/ Platforms: UNIX (only tested on Linux), needs perl 5, KDE 1.0. Copying-policy: GPL End ---------------------------------------------------------------------------- README/FAQ file for krumple - KDE Installation SyStem Installer Generator 0.1 (Jul 15, 1999) ---------------------------------------------------------------------------- Please read the file COPYING before using krumple. ---------------------------------------------------------------------------- Contents: 1. What is krumple? 2. What is the kiss (KDE Installation SyStem database)? 3. So why not use RPM/DEB/PKG/My favorite database instead? 4. Why have two programs: kiss and krumple, and not combine them? 5. So why have an installer in perl, and not in C++/some other compiled language? 6. So if I only like .tgz installs, why should I release my software in installer form and not in .tgz form? 7. What kind of information (program name, version, file info) do I need to give krumple in order to generate an installer? 8. Totally cool software, what can I do (as a developer of other software) to help? 9. I want to add support for (which could be either a left-to-right or right-to-left language) to krumple, so that all installers will be able to speak in that language. Can I do this? ---------------------------------------------------------------------------- 1. What is krumple? Krumple is an installer generator. Krumple takes a source .tgz as an argument, an outputs an executable script, which, when run on the user's machine displays a GUI similar to install-shield which compiles and installs the software from the source tgz to the hard drive. It also registers all installed files with the kiss (KDE Installation SyStem) database. The executable installer script, when run with the argument "-tgz" reconstructs the source .tgz file on the user's machine - which is suitable for users who prefer command-line compilation and installation - thus eliminating the need for distributing two installation packages for each program. Note: In version 0.1 of krumple, GUI is not yet supported (since PerlQt 2.0 - the Qt bindings for Perl - is not finished yet), so the default interface is: 1. If you are running under X - launch an xterm with text installation. 2. If you are not running under X - launch text installation in the current terminal. (This will remain default for non-X installation even after the GUI is completed). Don't be fooled: These may be text-installers, but they are as friendly as GUI installers, since they use progress-bars, and all other kinds of cool text-widgets. 2. What is the kiss (KDE Installation SyStem) database? kiss is a database of installed programs (similar to RPM, or DEB), which sits on the user's machine. This will hopefully be added to the base KDE distribution soon. The kiss package contains both perl functions and a command line utility for accessing the kiss database. It can be downloaded from: ftp://ftp.kde.org/pub/kde/unstable/apps/admin/kiss-0.1.1.tgz It should be noted that the KISS database is already supported by the KDE standard package-management application kpackage. The kiss database was written by me (Yannai A. Gonczarowski, yannaigo@leyada.jlm.k12.il) and Antal Novak (afn@weevil.net). 3. So why not use RPM/DEB/PKG/My favorite database instead? 1. Since some unices supported by KDE don't have any of these, and KISS should be able to run on all KDE machines, the kiss database is used. 2. However, feel free to write a frontend for other databases using the kiss standard (a program activated following the kiss syntax which will in fact update the RPM database, etc...), which will still be able to work with the same installers. 4. Why have two programs: kiss and krumple, and not combine them? This adds very high flexibility in more than one way: 1. Give developers an option to write a customized installer (add an "installation options" stage in the wizard, etc...), thus allowing more flexibility. (one could even generate a script and then customize it) while still using the installed programs database. 2. Being able to update the installed programs database (release a new version of kiss - or some other database frontend compatible with kiss), and still make the installation of old packages (using various versions of installers) possible. 3. To allow writing frontends to other databases (See Q3, answer 2) which could be used with the same installers. 5. So why have an installer in perl, and not in C++/some other compiled language? 1. To be platform independent - The script is written in perl, and compiles the software on the fly. 2. Since the GUI is downloaded with every package, it can be updated frequently, without having the restraints of backwards-compatibility. In addition, people could customize the GUI for their own programs (See Q4, answer 1), thus allowing maximum flexibility. 6. So if I only like .tgz installs, why should I release my software in installer form and not in .tgz form? 1. Many other users of your software might prefer installers. 2. When using the "-tgz" switch - there is also another added value: Two shell scripts, called kiss_removeold, and kiss_update are added to the main directory of the .tgz file, allowing use of the kiss (KDE Installation SyStem) database even for manual installs. So, the order of commands for manual installation should be: ./configure # <- configure the software normally make # <- compile it normally ./kiss_removeold # <- before installing, remove any old installations # of the software from this machine. make install # <- install the new software. ./kiss_update # <- update the kiss (KDE Installation SyStem) database # to allow future removal of the software. Note that it is important the kiss_update be run AFTER 'make install'. 7. What kind of information (program name, version, file info) do I need to give krumple in order to generate an installer? None. Just type 'krumple mypackage-0.1.tgz', and watch it automagically create the installer - no configuration is required whatsoever. There is one catch, though: 1. The main directory of the tgz file should be progname-progversion, where progname a short nickname for the program, and progversion is the version of the program - for example: krumple-0.1/ (all KDE packages support this standard anyway :-) ). And a few things to note: 1. You must have a file called COPYING or a file called LICENSE in the main directory of the .tgz file. This file will be displayed as the license for the user to accept. Note: If both COPYING and LICENSE exist, LICENSE is used. If your program is freeware, just put a little file saying that. It is my belief that users should be always made aware of their rights and limitations, even if they have no limitations. 2. The full name, category (Utilities/Games/...) and a short description of the program are taken from the .kdelnk file it installs on the K-menu. Therefore it must install a .kdelnk file on the K-menu. 3. If you have a file called README, Readme, readme, or a similar case-insensitive match to that, the user will be given an option to view it. Having a README file is not required, though. 8. Totally cool software, what can I do (as a developer of other software) to help? First of all, release the next version of your program as an installer generated by krumple. Second, if your software happens to be a package-management software, please consider adding support for kiss (installed packages) and krumple installer (uninstalled packages) to your software. Feel free to contact me for 'how to figure out which files and which program an installer contains' (it's really easy). Third, if your software happens to be a KDE-IDE, please consider adding support (a front end) for generating installers from programs written using your IDE. 9. I want to add support for (which could be either a left-to-right or right-to-left language) to krumple, so that all installers will be able to speak in that language. Can I do this? Sure. All you need to do is: 1. edit the krumple program using some text editor. 2. Search for the string "# Translation template start.". 3. In the next line, replace "YOUR LANGUAGE HERE" with the two-character nickname of your language (this must be the same nickname from the "Language" control center module in KDE). 4. Until you have reached a line that says "# Translation template end.", : 5. For each line that goes ($inEnglish eq "..."), translate the quoted string to your language, and put it in the quotes in the line below ($translated = "..."). If you require multiple lines, use the following syntax: $translated = "Line number 1\n" . "Line number 2"; Note that you should put a '\n' in every line except for the last one. Note the dot (.) that should follow every line but the last one. Note also that when translating multiple lines, you are not bound to line-by- line translations, that you may translate one line to more than one line, and vice-versa. 6. Set your language to be the default using the control center module "Language". 7. Generate an installer from some program (doesn't matter which). 8. Run the installer script to check that your language is displayed okay. 9. Copy the lines between "# Translation template start." and "# Translation template end." to a new file and send it to me. I will include them in the next 'krumple' distribution. 10. If you wish to translate the "usage" message as well, just translate it, and send it to me in a text file. A few notes: 1. %s in the translation strings indicate a location of a certain text string (program name, version number, etc...). You should put exactly the same number of %s in your translation as appears in the untranslated text. The %s's are filled in in the same order in which they appear in the untranslated text (For example: in a translation to "%s version %s", the first %s in the translated string will contain the program name, and the second - the program version). 2. If you decide to use double quotes INSIDE your translations, backslash them (write \" instead of just "). 3. If your language requires a special X font to be used in the xterm where it is displayed (xterm -fn ), please send me the name of the font. Notes for right-to-left languages translators: Right-to-left is fully supported by krumple. 1. When you send me the translations, please tell me that your language is RtoL. 2. The %s's in right-to-left languages are filled in in reverse order. (leftmost in untranslated becomes rightmost in translated, etc...). ---------------------------------------------------------------------------- This file is (C) Copyright 1998-1999 Yannai A. Gonczarowski ---------------------------------------------------------------------------- End of REAMDE/FAQ file. Regards, Yannai. ---------------------------------------------------------------------- Yannai A. Gonczarowski _____..---======~~~~~=======---.._____ ______________________ __,-='=====____ ================ _____=====`= (._____________________I__) - _-=_/ `--------=+=-------' / /__...---===='---+---_' System Administrator '------'---.___ - _ = _.-' yannaigo@leyada.jlm.k12.il `--------' The Hebrew University High School "Si vis pacem, para bellum" http://www.leyada.jlm.k12.il/~yannaigo/ ----------------------------------------------------------------------