From a8079a0a6615fc7d7fd4bc17aaa1aa2b6149bad6 Mon Sep 17 00:00:00 2001 From: pmichaud Date: Tue, 28 Aug 2012 00:41:48 -0500 Subject: Move build/binary/darwin_dmg to ports/ . --- build/binary/darwin_dmg/2000px-Camelia.svg.icns | Bin 150545 -> 0 bytes build/binary/darwin_dmg/HOW_TO_INSTALL.txt | 21 - build/binary/darwin_dmg/README | 16 - build/binary/darwin_dmg/SLA_rakudo_star.template.r | 452 --------------------- .../darwin_dmg/adjust_installation_window.scpt | 37 -- build/binary/darwin_dmg/package_darwin_dmg.pl | 264 ------------ 6 files changed, 790 deletions(-) delete mode 100644 build/binary/darwin_dmg/2000px-Camelia.svg.icns delete mode 100644 build/binary/darwin_dmg/HOW_TO_INSTALL.txt delete mode 100644 build/binary/darwin_dmg/README delete mode 100644 build/binary/darwin_dmg/SLA_rakudo_star.template.r delete mode 100644 build/binary/darwin_dmg/adjust_installation_window.scpt delete mode 100755 build/binary/darwin_dmg/package_darwin_dmg.pl (limited to 'build') diff --git a/build/binary/darwin_dmg/2000px-Camelia.svg.icns b/build/binary/darwin_dmg/2000px-Camelia.svg.icns deleted file mode 100644 index cccd98d..0000000 Binary files a/build/binary/darwin_dmg/2000px-Camelia.svg.icns and /dev/null differ diff --git a/build/binary/darwin_dmg/HOW_TO_INSTALL.txt b/build/binary/darwin_dmg/HOW_TO_INSTALL.txt deleted file mode 100644 index ac33a06..0000000 --- a/build/binary/darwin_dmg/HOW_TO_INSTALL.txt +++ /dev/null @@ -1,21 +0,0 @@ -1. Drag the Rakudo_Star folder onto the Applications folder. -2. In a Terminal window, type this command: - alias p6='/Applications/Rakudo_Star/bin/perl6' - ( This step only affects this one window; to make available to all - future sessions, add the line to your ~/.bash_profile file. ) - -You can now run a Perl 6 program like this: - p6 filename -or run code directly from the command-line with the -e option: - p6 -e 'your code here' - -Try this: - p6 -e 'say "Hello, world!";' - -You can always skip the alias and use the full path: - /Applications/Rakudo_Star/bin/perl6 -e 'say "Hello, world!";' -or alternately, add Rakudo Star to your path: - PATH=$PATH:/Applications/Rakudo_Star/bin - perl6 -e 'say "Hello, world!";' - -See also README in /Applications/Rakudo_Star/docs/rakudo/README . diff --git a/build/binary/darwin_dmg/README b/build/binary/darwin_dmg/README deleted file mode 100644 index 70d7d5a..0000000 --- a/build/binary/darwin_dmg/README +++ /dev/null @@ -1,16 +0,0 @@ -This directory contains the Perl script and supporting files to: -* Compile Parrot and Rakudo in a way that removes embedded dependencies on - the builder's home directory; such dependencies have been a problem on - Darwin. -* Package the compiled binaries into a .dmg disk image for Mac OS X. - Users can open the .dmg file, then just drag the Rakudo_Star folder onto - the /Applications folder to install. - -The process currently depends on first downloading the official R* tarball -for the month, rather than being part of building the tarball itself. This -may seem non-optimal, but it helps limit the chance of the binary varying -too much from a end-user's source build, and it keeps the R* release -manager from needing the same platform as the binary build person. Also, -it is the way I designed and wrote it before realizing there might be any -other way :) - diff --git a/build/binary/darwin_dmg/SLA_rakudo_star.template.r b/build/binary/darwin_dmg/SLA_rakudo_star.template.r deleted file mode 100644 index 1ff734d..0000000 --- a/build/binary/darwin_dmg/SLA_rakudo_star.template.r +++ /dev/null @@ -1,452 +0,0 @@ -data 'LPic' (5000) { - // Default language - $"0002" - $"0011" - $"0003 0001 0000" - $"0000 0002 0000" - $"0008 0003 0000" - $"0001 0004 0000" - $"0004 0005 0000" - $"000E 0006 0001" - $"0005 0007 0000" - $"0007 0008 0000" - $"0047 0009 0000" - $"0034 000A 0001" - $"0035 000B 0001" - $"0020 000C 0000" - $"0011 000D 0000" - $"005B 0004 0000" - $"0033 000F 0001" - $"000C 0010 0000" - $"000B 000E 0000" - -}; - - -data 'TEXT' (5002, "English") { -[% ENGLISH_LICENSE %] -}; - - -resource 'STR#' (5001, "German") { - { /* array StringArray: 9 elements */ - /* [1] */ - "Deutsch", - /* [2] */ - "Akzeptieren", - /* [3] */ - "Ablehnen", - /* [4] */ - "Drucken", - /* [5] */ - "Sichern...", - /* [6] */ - "Klicken Sie auf “Akzeptieren”, wenn Sie mit den Bestimmungen des " - "Software-Lizenzvertrages einverstanden sind. Falls nicht, klicken " - "Sie bitte “Ablehnen” an. Sie können die Software nur installieren, " - "wenn Sie “Akzeptieren” angeklickt haben.", - /* [7] */ - "Software-Lizenzvertrag", - /* [8] */ - "Dieser Text kann nicht gesichert werden. Diese Festplatte ist " - "möglicherweise voll oder geschützt oder der Ordner ist geschützt.", - /* [9] */ - "Es kann nicht gedruckt werden. Bitte stellen Sie sicher, daß ein " - "Drucker ausgewählt ist." - } -}; - -resource 'STR#' (5002, "English") { - { /* array StringArray: 9 elements */ - /* [1] */ - "English", - /* [2] */ - "Agree", - /* [3] */ - "Disagree", - /* [4] */ - "Print", - /* [5] */ - "Save...", - /* [6] */ - "IMPORTANT - Read this License Agreement carefully before clicking on " - "the \"Agree\" button. By clicking on the \"Agree\" button, you agree " - "to be bound by the terms of the License Agreement.", - /* [7] */ - "Software License Agreement", - /* [8] */ - "This text cannot be saved. This disk may be full or locked, or the file " - "may be locked.", - /* [9] */ - "Unable to print. Make sure you’ve selected a printer." - } -}; - -resource 'STR#' (5003, "Spanish") { - { /* array StringArray: 9 elements */ - /* [1] */ - "Español", - /* [2] */ - "Aceptar", - /* [3] */ - "No aceptar", - /* [4] */ - "Imprimir", - /* [5] */ - "Guardar...", - /* [6] */ - "Si está de acuerdo con los términos de esta licencia, pulse \"Aceptar\" " - "para instalar el software. En el supuesto de que no esté de acuerdo con " - "los términos de esta licencia, pulse \"No aceptar.\"", - /* [7] */ - "Licencia de Software", - /* [8] */ - "Este texto no se puede guardar. El disco puede estar lleno o bloqueado, " - "o el archivo puede estar bloqueado.", - /* [9] */ - "No se puede imprimir. Compruebe que ha seleccionado una impresora." - } -}; - -resource 'STR#' (5004, "French") { - { /* array StringArray: 9 elements */ - /* [1] */ - "Français", - /* [2] */ - "Accepter", - /* [3] */ - "Refuser", - /* [4] */ - "Imprimer", - /* [5] */ - "Enregistrer...", - /* [6] */ - "Si vous acceptez les termes de la présente licence, cliquez sur " - "\"Accepter\" afin d'installer le logiciel. Si vous n'êtes pas d'accord " - "avec les termes de la licence, cliquez sur \"Refuser\".", - /* [7] */ - "Contrat de licence de logiciel", - /* [8] */ - "Ce texte ne peut être sauvegardé. Le disque est peut-être saturé ou " - "verrouillé, ou bien le fichier est peut-être verrouillé.", - /* [9] */ - "Impression impossible. Assurez-vous d’avoir sélectionné une imprimante." - } -}; - -resource 'STR#' (5005, "Italian") { - { /* array StringArray: 9 elements */ - /* [1] */ - "Italiano", - /* [2] */ - "Accetto", - /* [3] */ - "Rifiuto", - /* [4] */ - "Stampa", - /* [5] */ - "Registra...", - /* [6] */ - "Se accetti le condizioni di questa licenza, fai clic su \"Accetto\" per " - "installare il software. Altrimenti fai clic su \"Rifiuto\".", - /* [7] */ - "Licenza Software", - /* [8] */ - "Non posso registrare il testo. Il disco potrebbe essere pieno o protetto " - "oppure il documento potrebbe essere protetto.", - /* [9] */ - "Non posso stampare. Assicurati di aver selezionato una stampante." - } -}; - -resource 'STR#' (5006, "Japanese") { - { /* array StringArray: 9 elements */ - /* [1] */ - "Japanese", - /* [2] */ - "ìØà”ǵNjÇ∑", - /* [3] */ - "ìØà”ǵNjÇπÇÒ", - /* [4] */ - "àÛç¸Ç∑ÇÈ", - /* [5] */ - "ï€ë∂...", - /* [6] */ - "ñ{É\\ÉtÉgÉEÉGÉAégópãñë¯å_ñÒÇÃèåèÇ…ìØà”Ç≥" - "ÇÍÇÈèÍçáÇ…ÇÕÅAÉ\\ÉtÉgÉEÉGÉAÇÉCÉìÉXÉgÅ[Éã" - "Ç∑ÇÈÇΩÇflÇ…ÅuìØà”ǵNjÇ∑ÅvÇâüǵǃÇ≠ÇæÇ≥Ç¢" - "ÅBÅ@ìØà”Ç≥Ç", -/* XXX Line above should have been two lines below; truncated by Pascal string limits */ -/* "ÅBÅ@ìØà”Ç≥ÇÍǻǢèÍçáÇ…ÇÕÅAÅuìØà”ǵNjÇπÇÒ" */ -/* "ÅvÇâüǵǃÇ≠ÇæÇ≥Ç¢ÅB", */ - /* [7] */ - "É\\ÉtÉgÉEÉFÉAégópãñë¯å_ñÒ", - /* [8] */ - "DZÇÃÉeÉLÉXÉgÇÕÅAï€ë∂Ç≈Ç´Ç‹ÇπÇÒÅBDZÇÃÉfÉB" - "ÉXÉNÇ…ãÛÇ´Ç™ñ≥ǢǩÉçÉbÉNÇ≥ÇÍǃǢÇÈâ¬î\\ê´" - "ǙdžÇËÇ‹Ç∑ÅBÇ‹ÇΩÇÕÅADZÇÃÉtÉ@ÉCÉãÇ™ÉçÉbÉN" - "Ç≥ÇÍǃǢÇÈ", -/* XXX Line above should have been line below; truncated by Pascal string limits */ -/* "Ç≥ÇÍǃǢÇÈâ¬î\\ê´Ç™Ç†ÇËÇ‹Ç∑ÅB", */ - /* [9] */ - "àÛç¸Ç≈Ç´Ç‹ÇπÇÒÅBÉvÉäÉìÉ^Ç™ê≥ǵÇ≠ëIëÇ≥ÇÍ" - "ǃǢÇÈDZÇ∆ÇämîFǵǃÇ≠ÇæÇ≥Ç¢ÅB" - } -}; - -resource 'STR#' (5007, "Dutch") { - { /* array StringArray: 9 elements */ - /* [1] */ - "Nederlands", - /* [2] */ - "Ja", - /* [3] */ - "Nee", - /* [4] */ - "Print", - /* [5] */ - "Bewaar...", - /* [6] */ - "Indien u akkoord gaat met de voorwaarden van deze licentie, kunt u op 'Ja' " - "klikken om de programmatuur te installeren. Indien u niet akkoord gaat, " - "klikt u op 'Nee'.", - /* [7] */ - "Softwarelicentie", - /* [8] */ - "De tekst kan niet worden bewaard. Het kan zijn dat uw schijf vol of " - "beveiligd is of dat het bestand beveiligd is.", - /* [9] */ - "Afdrukken niet mogelijk. Zorg dat er een printer is geselecteerd." - } -}; - -resource 'STR#' (5008, "Swedish") { - { /* array StringArray: 9 elements */ - /* [1] */ - "Svensk", - /* [2] */ - "Godkänns", - /* [3] */ - "Avböjs", - /* [4] */ - "Skriv ut", - /* [5] */ - "Spara...", - /* [6] */ - "Om Du godkänner licensvillkoren klicka på \"Godkänns\" för att installera " - "programprodukten. Om Du inte godkänner licensvillkoren, klicka på \"Avböjs\".", - /* [7] */ - "Licensavtal för Programprodukt", - /* [8] */ - "Den här texten kan inte sparas eftersom antingen skivan är full eller skivan " - "och/eller dokumentet är låst.", - /* [9] */ - "Kan inte skriva ut. Kontrollera att du har valt en skrivare. " - } -}; - -resource 'STR#' (5009, "Brazilian Portuguese") { - { /* array StringArray: 9 elements */ - /* [1] */ - "Português, Brasil", - /* [2] */ - "Concordar", - /* [3] */ - "Discordar", - /* [4] */ - "Imprimir", - /* [5] */ - "Salvar...", - /* [6] */ - "Se está de acordo com os termos desta licença, pressione \"Concordar\" para " - "instalar o software. Se não está de acordo, pressione \"Discordar\".", - /* [7] */ - "Licença de Uso de Software", - /* [8] */ - "Este texto não pode ser salvo. O disco pode estar cheio ou\nbloqueado, ou o " - "arquivo pode estar bloqueado.", - /* [9] */ - "Não é possível imprimir. Comprove que você selecionou uma impressora." - } -}; - -resource 'STR#' (5010, "Simplified Chinese") { - { /* array StringArray: 9 elements */ - /* [1] */ - "Simplified Chinese", - /* [2] */ - "Õ¨“‚", - /* [3] */ - "≤ªÕ¨“‚", - /* [4] */ - "¥Ú”°", - /* [5] */ - "¥Ê¥¢°≠", - /* [6] */ - "»Áπ˚ƒ˙Õ¨“‚±æ–Ìø…–≠“ȵƒÃıøÓ£¨«Î∞¥°∞Õ¨“‚°±" - "¿¥∞≤◊∞¥À»Ìº˛°£»Áπ˚ƒ˙≤ªÕ¨“‚£¨«Î∞¥°∞≤ªÕ¨“‚" - "°±°£", - /* [7] */ - "»Ìº˛–Ìø…–≠“È", - /* [8] */ - "≤ªƒ‹¥Ê¥¢’‚∏ˆŒƒº˛°£¥≈≈Ãø…ƒ‹±ªÀ¯∂®ªÚ“—¬˙£¨" - "“≤–Ì «Œƒº˛±ªÀ¯∂®¡À°£", - /* [9] */ - "Œfi∑®¥Ú”°°£«Î»∑∂®ƒ˙“——°‘Ò¡À“ªÃ®¥Ú”°ª˙°£" - } -}; - -resource 'STR#' (5011, "Traditional Chinese") { - { /* array StringArray: 9 elements */ - /* [1] */ - "Traditional Chinese", - /* [2] */ - "¶P∑N", - /* [3] */ - "§£¶P∑N", - /* [4] */ - "¶C¶L", - /* [5] */ - "¿x¶s°K", - /* [6] */ - "¶p™G±z¶P∑N•ª≥\\•i√“∏Ù∫±¯¥⁄°AΩ–´ˆ°ß¶P∑N°®" - "•H¶w∏À≥n≈È°C¶p™G§£¶P∑N°AΩ–´ˆ°ß§£¶P∑N°®°C", - /* [7] */ - "≥n≈È≥\\•i®Ûƒ≥", - /* [8] */ - "•ª§Â¶rµL™k¿x¶s°C≥o≠”∫œ∫–•i؇§w∫°©Œ¨O¬Í©w" - "°A©Œ¿…Æ◊§w∏g¬Í©w°C", - /* [9] */ - "µL™k¶C¶L°CΩ–ΩT©w±z§w∏gøÔ拧F¶L™Ì昰C" - } -}; - -resource 'STR#' (5012, "Danish") { - { /* array StringArray: 9 elements */ - /* [1] */ - "Dansk", - /* [2] */ - "Enig", - /* [3] */ - "Uenig", - /* [4] */ - "Udskriv", - /* [5] */ - "Arkiver...", - /* [6] */ - "Hvis du accepterer betingelserne i licensaftalen, skal du klikke på “Enig” " - "for at installere softwaren. Klik på “Uenig” for at annullere installeringen.", - /* [7] */ - "Licensaftale for software", - /* [8] */ - "Teksten kan ikke arkiveres. Disken er evt. fuld eller låst, eller også er " - "arkivet låst.", - /* [9] */ - "Kan ikke udskrive. Sørg for, at der er valgt en printer." - } -}; - -resource 'STR#' (5013, "Finnish") { - { /* array StringArray: 9 elements */ - /* [1] */ - "Suomi", - /* [2] */ - "Hyväksyn", - /* [3] */ - "En hyväksy", - /* [4] */ - "Tulosta", - /* [5] */ - "Tallenna…", - /* [6] */ - "Hyväksy lisenssisopimuksen ehdot osoittamalla ’Hyväksy’. Jos et hyväksy " - "sopimuksen ehtoja, osoita ’En hyväksy’.", - /* [7] */ - "Lisenssisopimus", - /* [8] */ - "Tekstiä ei voida tallentaa. Levy voi olla täynnä tai lukittu.", - /* [9] */ - "Tekstiä ei voida tulostaa. Varmista, että kirjoitin on valittu." - } -}; - -resource 'STR#' (5014, "French Canadian") { - { /* array StringArray: 9 elements */ - /* [1] */ - "Français canadien", - /* [2] */ - "Accepter", - /* [3] */ - "Refuser", - /* [4] */ - "Imprimer", - /* [5] */ - "Enregistrer...", - /* [6] */ - "Si vous acceptez les termes de la présente licence, cliquez sur \"Accepter\" " - "afin d'installer le logiciel. Si vous n'êtes pas d'accord avec les termes de " - "la licence, cliquez sur \"Refuser\".", - /* [7] */ - "Contrat de licence de logiciel", - /* [8] */ - "Ce texte ne peut être sauvegardé. Le disque est peut-être saturé ou verrouillé, " - "ou bien le fichier est peut-être verrouillé.", - /* [9] */ - "Impression impossible. Assurez-vous d’avoir sélectionné une imprimante." - } -}; - -resource 'STR#' (5015, "Korean") { - { /* array StringArray: 9 elements */ - /* [1] */ - "Korean", - /* [2] */ - "µø¿«", - /* [3] */ - "µø¿« 滫‘", - /* [4] */ - "«¡∏∞∆Æ", - /* [5] */ - "¿˙¿Â...", - /* [6] */ - "ªÁøÎ ∞Ë懺≠¿« ≥ªøÎø° µø¿««œ∏È, \"µø¿«\" ¥‹" - "√fl∏¶ ¥≠∑Ø º“«¡∆Æø˛æÓ∏¶ º≥ƒ°«œΩ Ω√ø¿. µø¿" - "««œ¡ˆ æ ¥¬¥Ÿ∏È, \"µø¿« 滫‘\" ¥‹√fl∏¶ ¥©∏£Ω" - " Ω√ø¿.", - /* [7] */ - "ªÁøÎ ∞Ëæ‡ µø¿«º≠", - /* [8] */ - "¿Ã ≈ÿΩ∫∆Æ∏¶ ¿˙¿Â«“ ºˆ æ¯Ω¿¥œ¥Ÿ. ¿Ã µΩ∫≈" - "©¥¬ ≤À √°∞≈≥™ ¿·∞‹ ¿÷Ω¿¥œ¥Ÿ. ∂«¥¬ ∆ƒ¿œ¿Ã" - " ¿·∞‹ ¿÷¿ª ºˆµµ ¿÷Ω¿¥œ¥Ÿ.", - /* [9] */ - "«¡∏∞∆Æ«“ ºˆ æ¯Ω¿¥œ¥Ÿ. «¡∏∞≈Õ∏¶ º±≈√«fl¥¬¡" - "ˆ »Æ¿Œ«œΩ Ω√ø¿." - } -}; - -resource 'STR#' (5016, "Norwegian") { - { /* array StringArray: 9 elements */ - /* [1] */ - "Norsk", - /* [2] */ - "Enig", - /* [3] */ - "Ikke enig", - /* [4] */ - "Skriv ut", - /* [5] */ - "Arkiver...", - /* [6] */ - "Hvis De er enig i bestemmelsene i denne lisensavtalen, klikker De på " - "\"Enig\"-knappen for å installere programvaren. Hvis De ikke er enig, " - "klikker De på \"Ikke enig\".", - /* [7] */ - "Programvarelisensavtale", - /* [8] */ - "Denne teksten kan ikke arkiveres. Disken kan være full eller låst, " - "eller filen kan være låst. ", - /* [9] */ - "Kan ikke skrive ut. Forsikre deg om at du har valgt en skriver. " - } -}; diff --git a/build/binary/darwin_dmg/adjust_installation_window.scpt b/build/binary/darwin_dmg/adjust_installation_window.scpt deleted file mode 100644 index fa29745..0000000 --- a/build/binary/darwin_dmg/adjust_installation_window.scpt +++ /dev/null @@ -1,37 +0,0 @@ -tell application "Finder" - tell disk "Rakudo_Star" - open - - set top_left_X to 100 - set top_left_Y to 100 - set bottom_right_X to 600 - set bottom_right_Y to 500 - - tell container window - set current view to icon view - set toolbar visible to false - set statusbar visible to false - set bounds to { top_left_X, top_left_Y, bottom_right_X, bottom_right_Y } - end tell - - make new alias file at container window to POSIX file "/Applications" with properties { name:"Applications" } - - set opts to the icon view options of container window - tell opts - set icon size to 128 - set text size to 16 - set arrangement to not arranged - end tell - - set position of item "Rakudo_Star" to {120, 74} - set position of item "Applications" to {360, 74} - set position of item "HOW_TO_INSTALL.txt" to {120, 264} - - delay 5 - close - delay 5 - open - delay 5 - - end tell -end tell diff --git a/build/binary/darwin_dmg/package_darwin_dmg.pl b/build/binary/darwin_dmg/package_darwin_dmg.pl deleted file mode 100755 index 3989cad..0000000 --- a/build/binary/darwin_dmg/package_darwin_dmg.pl +++ /dev/null @@ -1,264 +0,0 @@ -#!/usr/bin/perl -use strict; -use warnings; -use Carp; -use Getopt::Long; -use Data::Dumper; $Data::Dumper::Useqq = 1; - -my $USAGE = <<"END_OF_USAGE"; -$0 [-q|--quiet] yyyy mm - --build - Build Parrot and Rakudo from the tarball. - Defaults to only packaging what is already built. - -q, --quiet - Suppress pausing for "OK" input. - (Not yet implemented) - -v - --verbose - Report each command that is run. - --time - Report timings for each step. - YYYY - 4 digit year - MM - 2 digit month, 01..12 -END_OF_USAGE - -=begin comments - -(Note: The build process below (except downloading the tarball) is automated in this script) -Note: For this .dmg packaging procedure work, Rakudo Star must be built like this: -XXX Can we use .app to automatically have them look in the right place, even when uninstalled in .dmg? -Here are the key parts of the build process, the parts that you might not expect from your normal build experience with Parrot and Rakudo: - Rather than having Rakudo automatically build Parrot, we must build Parrot ourselves, to configure it specially. - Configure Parrot with --optimize, --prefix with the installation dir, and --without any libs that any user might not have on their system. - Configure Rakudo pointing --parrot-config to the parrot_config in the installation dir. - Rename the build dir (to anything else) after building. - Run `install_name_tool` on all the exes in the installation dir, updating the location in which they will look for libparrot.dylib. - (This part will get merged into pbc_to_exe soon) - -Failure to follow this packaging procedure will result in a `perl6` executable that runs fine, *until* the original build directory is removed. -Therefore, the `perl6` executable would test fine on your system, but fail on every system that installed it from the .dmg! - -Run this to make sure that all is well so far. - $src_dir/bin/perl6 -e 'say "OK so far"' - -At this point, you can run this script. - perl package_star.pl - -Does the .dmg packaging procedure really need to be this complex? -Yes! The single-line process that we *wish* we could use does not allow: - * symlink to /Applications (so they have to know to drag-and-drop outside the window) - * background images - * click-through licenses - * auto-open the Finder window after .dmg is opened. - -TODO: - Add background images - Camelia - Arrow to show drag-and-drop to Applications (like in DMGs from Processing.org) - Add a .dmg-specific HOW_TO_INSTALL.txt - Demo code (as opposed to Example code that we already have) - Click on .app for REPL - Remove the underscore from /Applications/Rakudo_Star, changing it to a space. - This will require upstream changes to Rakudo, but Parrot itself seems OK with an embedded space. - Include all the dependent libs; gmp, pcre, opengl, zlib, gettext, icu, libffi,readline - So far, we build with these libs disabled to allow Rakudo to run on systems that lack the libs. - -=end comments - -=cut - - -GetOptions( - 'build' => \( my $opt_build_parrot_and_rakudo ), - 'time' => \( my $opt_time ), - 'quiet' => \( my $opt_quiet ), - 'verbose|v' => \( my $opt_verbose ), - 'help|h' => \( my $opt_help ), -) or die $USAGE; - -print $USAGE and exit(0) if $opt_help; - -my ( $yyyy, $mm ) = @ARGV; # Version - -die $USAGE if @ARGV != 2 - or $yyyy !~ m{ \A \d{4} \z }msx - or $mm !~ m{ \A \d{2} \z }msx - or $mm < 1 or $mm > 12; - -sub run { - croak if not @_; - my (@command) = @_; - - print "> @command\n" if $opt_verbose; - - my $start = time; - my $rc = system(@command); - die if $rc != 0; - my $stop = time; - - printf ">! %4d\t%s\n", $stop-$start, "@command" if $opt_time; - return; -} - - -my $temp_dir = 'Temp_build'; -my $temp_dmg = 'temp'; -my $vol_name = 'Rakudo_Star'; -# XXX rename to install_dir? -my $src_dir = '/Applications/Rakudo_Star'; - -my $vol_dir = "/Volumes/$vol_name"; -my $tar_dir = "rakudo-star-$yyyy.$mm"; -my $tar_file = "rakudo-star-$yyyy.$mm.tar.gz"; -my $final_dmg = "Rakudo_Star_$yyyy-$mm"; -my $license_path = "$src_dir/share/doc/rakudo/LICENSE"; - - -if ( $opt_build_parrot_and_rakudo ) { - my $full_parrot_path; - - run "rm -rf '$src_dir'"; - run "rm -rf $tar_dir"; - run "tar zxf $tar_file"; - - chdir $tar_dir or die; - - my ($parrot_dir) = glob 'parrot-*'; - chdir $parrot_dir or die; - chomp( $full_parrot_path = `pwd` ); - run "perl Configure.pl --prefix=/Applications/Rakudo_Star --optimize" - . " --without-gettext --without-gmp --without-libffi --without-opengl" - . " --without-readline --without-pcre --without-zlib --without-icu" - . " > conf.1 2>conf.2"; - run "make > make.1 2>make.2"; - run "make install > inst.1 2>inst.2"; - chdir '..'; - - run "perl Configure.pl --parrot-config=/Applications/Rakudo_Star/bin/parrot_config" - . " > conf.1 2>conf.2"; - run "make > make.1 2>make.2"; - run "make install > inst.1 2>inst.2"; - -# run "make blizkost-install > bliz.1 2>bliz.2"; -# XXX Not running for now, because OS X 10.5 comes with Perl 5.8.8, and blizkost requires 5.10. - - run "cp -r docs /Applications/Rakudo_Star/"; - run "mv /Applications/Rakudo_Star/parrot /Applications/Rakudo_Star/docs/"; - run "mv /Applications/Rakudo_Star/rakudo /Applications/Rakudo_Star/docs/"; - - chdir '..'; - - run "rm -rf $tar_dir-renamed_for_testing"; - run "mv -i $tar_dir $tar_dir-renamed_for_testing"; - - my @exe_paths = map {"$src_dir/bin/$_"} qw( - ops2c - parrot - parrot-nqp - parrot-prove - parrot_config - parrot_debugger - parrot_nci_thunk_gen - pbc_disassemble - pbc_dump - pbc_merge - pbc_to_exe - perl6 - ); - die if grep { not -e $_ } @exe_paths; - - for my $exe_path (@exe_paths) { - run "install_name_tool -change $full_parrot_path/blib/lib/libparrot.dylib $src_dir/lib/libparrot.dylib $exe_path"; - } -} - - -if ( `$src_dir/bin/perl6 -e 42.say` ne "42\n" ) { - die "The perl6 exe will not run, so we cannot make a .dmg for it! ($src_dir/bin/perl6)\n"; -} - -if ( -e $vol_dir ) { - run "diskutil eject $vol_dir"; -} -if ( -e $temp_dir ) { - run "rm -rf '$temp_dir'"; -} -mkdir $temp_dir or die; -chdir $temp_dir or die; - -my $size = `du -ks '$src_dir'`; -$size =~ s{ \A \s* (\d+) \t \S.* \z }{$1}msx or die; -$size += int( $size * 0.05 ); # Add 5% for file system -run "hdiutil create '$temp_dmg' -ov -size ${size}k -fs HFS+ -volname '$vol_name' -attach"; - - -print "Copying Rakudo files\n"; -run "CpMac -r '$src_dir' '$vol_dir'"; -run "cp ../HOW_TO_INSTALL.txt '$vol_dir'"; - -run "touch '$vol_dir/Rakudo_Star/Icon\r'"; -run "cp ../2000px-Camelia.svg.icns $vol_dir/.VolumeIcon.icns"; -run "sips -i $vol_dir/.VolumeIcon.icns"; -run "DeRez -only icns $vol_dir/.VolumeIcon.icns > tempicns.rsrc"; -run "Rez -append tempicns.rsrc -o '$vol_dir/Rakudo_Star/bin/perl6'"; -run "Rez -append tempicns.rsrc -o '$vol_dir/Rakudo_Star/Icon\r'"; -run "SetFile -c icnC '$vol_dir/.VolumeIcon.icns'"; -run "SetFile -a C '$vol_dir'"; -run "SetFile -a C '$vol_dir/Rakudo_Star'"; -run "SetFile -a C '$vol_dir/Rakudo_Star/bin/perl6'"; -run "SetFile -a V '$vol_dir/Rakudo_Star/Icon\r'"; -run "rm tempicns.rsrc"; - - -print ">>> Adjusting sizes and positions in installation window\n"; -run "osascript ../adjust_installation_window.scpt"; - - -print ">>> Waiting on .DS_STORE to be written\n"; -sleep 1 while not -s "$vol_dir/.DS_STORE"; - -print ">>> Compressing\n"; -run "diskutil eject $vol_dir"; -run "hdiutil convert '$temp_dmg.dmg' -format UDBZ -o '$final_dmg'"; -unlink "$temp_dmg.dmg" or die; - - -print ">>> Adding click-thru license and auto-open\n"; -my $r_path = './SLA_rakudo_star.r'; -my $template_path = '../SLA_rakudo_star.template.r'; -create_sla_file( $license_path, $template_path, $r_path ); - -run "hdiutil unflatten '$final_dmg.dmg'"; -run "Rez Carbon.r '$r_path' -append -o '$final_dmg.dmg'"; # Carbon.r has type definitions. -run "hdiutil flatten '$final_dmg.dmg'"; -unlink $r_path or die; - -chdir '..' or die; - - -sub create_sla_file { - croak 'Wrong number of arguments' if @_ != 3; - my ( $license_path, $template_path, $output_r_path ) = @_; - - my $license_munged = ''; - open my $license_fh, '<', $license_path or die; - while (<$license_fh>) { - s{"}{\\"}g; - s{\n}{\\n}; - $license_munged .= qq{ "$_"\n}; - } - close $license_fh or warn; - - open my $template_fh, '<', $template_path or die; - open my $r_fh, '>', $output_r_path or die; - { - local $/ = undef; # Slurp mode - local $_ = <$template_fh>; - s{\[% ENGLISH_LICENSE %\]}{$license_munged} or die; - print {$r_fh} $_; - } - close $template_fh or warn; - close $r_fh or warn; -} -- cgit v1.1