I intend to file the following report. Any comments? Package: bsdmainutils Version: 8.0.11 Severity: normal Tags: patch
calendar.judaic was last updated in 2007. Due to the nature of the Jewish calendar, it renders the file unusable. To address the difficulties facing the maintaner, a python script is included. This script offers the maintainer a way to create the file as required. The script is not limited to a single year. Just enter the desired year as an argument in the command line. I suggest to keep this script in the Debian directory of the source package. $ cat calendarJudaic.py #! /usr/bin/python # Filename: calendarJudaic.py # # License: no warranty close + no license (public domain) # # Creates a calendar.judaic file, which is suitable for inclusion # in Debian's bsdmainutils package. Up to the introductory of # this script the calendar.judaic file was not updated regulary. # Probably because updating it is time consuming. This python # script let anyone create that file, for any year. Its output is # written to stdout. It requires the libhdate-python package. # A small part of the holidays might require manual editing # because the state of Israel modifies the actual date by a few # days due to various considerations. # References: # http://www.mail-archive.com/linux-il@cs.huji.ac.il/msg58169.html # http://www.mail-archive.com/linux-il@cs.huji.ac.il/msg58321.html # http://www.mail-archive.com/linux-il@cs.huji.ac.il/msg58451.html from string import Template import hdate, optparse, sys, time def main(): description = '''Description: Creates a calendar.judaic file, which is suitable for inclusion in Debian's bsdmainutils package. Up to the introductory of this script the calendar.judaic file was not updated regulary. Probably because updating it is time consuming. This python script let anyone create that file, for any year. Its output is written to stdout. It requires the libhdate-python package. A small part of the holidays might require manual editing because the state of Israel modifies the actual date by a few days due to various considerations. ''' usage = "Usage: %prog [year]\n"\ "\n"\ "Example: %prog 2099" version = "29-May-2010" parser = optparse.OptionParser(description=description, usage=usage, version=version) (options, args) = parser.parse_args() if len(args)> 1: parser.error("\n " + str(len(args)) + " arguments were " "given. At most 1, an integer represnting a year, " "is expected." ) elif len(args) == 1: # An integer represnting a year is expected. try: year = int(args[0]) except ValueError: parser.error("\n Could not convert the argument " + args[0] + ", which should represent a year, to an integer." ) else: # len(args) == 0, no args were given. Use the current year. year = time.localtime().tm_year h = hdate.Hdate() template_for_header = '''/* * Judaic Calendar. Created by calendar.judaic.py. * Collaboratively authored by linux...@cs.huji.ac.il. * * $$Debian GNU\Linux$$ * */ /* * $$Id: calendarJudaic.py,v ${PLACE_HOLDER_FOR_VERSION}$$ */ #ifndef _calendar_judaic_ #define _calendar_judaic_ LANG=UTF-8 /* * Jewish calendar for the CE year ${PLACE_HOLDER_FOR_THR_CE_YEAR} * ${PLACE_HOLDER_FOR_THE_JEWISH_START_OF_THE_CE_YEAR} - ${PLACE_HOLDER_FOR_THE_JEWISH_END_OF_THE_CE_YEAR} */ ''' footer = ''' #endif /* !_calendar_judaic_ */''' substitutions_for_header = { 'PLACE_HOLDER_FOR_VERSION' : version, 'PLACE_HOLDER_FOR_THR_CE_YEAR' : str(year) } h.set_gdate(1, 1, year) substitutions_for_header[ 'PLACE_HOLDER_FOR_THE_JEWISH_START_OF_THE_CE_YEAR'] = \ h.get_format_date(h.get_julian()) + ' ' + \ h.get_hebrew_year_string() h.set_gdate(31, 12, year) substitutions_for_header[ 'PLACE_HOLDER_FOR_THE_JEWISH_END_OF_THE_CE_YEAR'] = \ h.get_format_date(h.get_julian()) + ' ' + \ h.get_hebrew_year_string() header = Template(template_for_header).substitute( substitutions_for_header) print header h.set_gdate(1, 1, year) julian = h.get_julian() for i in range(0, 365): h.set_jd(julian) julian += 1 day = h.get_gday() month = h.get_gmonth() holyday = h.get_holyday_string(1) if holyday: print "%02d/%02d* %s" % (day, month, holyday) parasha = h.get_parasha_string(julian) if parasha != 'none': print "%02d/%02d* Parshat %s" % (day, month, parasha) print footer sys.exit() if __name__ == "__main__": main() else: # The following is useful from within an interactive Python # interpreter, where calendarJudaic.py is in the same `pwd`: # >>> import calendarJudaic pass $ cat calendar.judaic.2010 /* * Judaic Calendar. Created by calendar.judaic.py. * Collaboratively authored by linux...@cs.huji.ac.il. * * $Debian GNU\Linux$ * */ /* * $Id: calendarJudaic.py,v 29-May-2010$ */ #ifndef _calendar_judaic_ #define _calendar_judaic_ LANG=UTF-8 /* * Jewish calendar for the CE year 2010 * 15 Tevet 5770 - 24 Tevet 5771 */ 02/01* Parshat Vayechi 09/01* Parshat Shemot 16/01* Parshat Vaera 23/01* Parshat Bo 30/01* Tu B'Shvat 30/01* Parshat Beshalach 06/02* Parshat Yitro 13/02* Parshat Mishpatim 14/02* Family Day 20/02* Parshat Terumah 25/02* Ta'anit Esther 27/02* Parshat Tetzaveh 28/02* Purim 01/03* Shushan Purim 06/03* Parshat Ki Tisa 13/03* Parshat Vayakhel-Pekudei 20/03* Parshat Vayikra 27/03* Parshat Tzav 30/03* Pesach 31/03* Hol hamoed Pesach 01/04* Hol hamoed Pesach 02/04* Hol hamoed Pesach 03/04* Hol hamoed Pesach 04/04* Hol hamoed Pesach 05/04* Pesach VII 10/04* Parshat Shmini 12/04* Yom HaShoah 17/04* Parshat Tazria-Metzora 19/04* Yom HaZikaron 20/04* Yom HaAtzma'ut 24/04* Parshat Achrei Mot-Kedoshim 01/05* Parshat Emor 02/05* Lag B'Omer 08/05* Parshat Behar-Bechukotai 12/05* Yom Yerushalayim 15/05* Parshat Bamidbar 18/05* Erev Shavuot 19/05* Shavuot 22/05* Parshat Nasso 29/05* Parshat Beha'alotcha 05/06* Parshat Sh'lach 12/06* Parshat Korach 19/06* Parshat Chukat 26/06* Parshat Balak 29/06* Tzom Tammuz 03/07* Parshat Pinchas 10/07* Parshat Matot-Masei 11/07* Zhabotinsky day 17/07* Parshat Devarim 20/07* Tish'a B'Av 24/07* Parshat Vaetchanan 26/07* Tu B'Av 31/07* Parshat Eikev 07/08* Parshat Re'eh 14/08* Parshat Shoftim 21/08* Parshat Ki Teitzei 28/08* Parshat Ki Tavo 04/09* Parshat Nitzavim-Vayeilech 09/09* Rosh Hashana I 10/09* Rosh Hashana II 11/09* Parshat Ha'Azinu 12/09* Tzom Gedaliah 18/09* Yom Kippur 23/09* Sukkot 24/09* Hol hamoed Sukkot 25/09* Hol hamoed Sukkot 26/09* Hol hamoed Sukkot 27/09* Hol hamoed Sukkot 28/09* Hol hamoed Sukkot 29/09* Hoshana raba 30/09* Shmini Atzeret 30/09* Parshat Vezot Habracha 02/10* Parshat Bereshit 09/10* Parshat Noach 16/10* Parshat Lech-Lecha 20/10* Rabin memorial day 23/10* Parshat Vayera 30/10* Parshat Chayei Sara 06/11* Parshat Toldot 13/11* Parshat Vayetzei 20/11* Parshat Vayishlach 27/11* Parshat Vayeshev 02/12* Chanukah 03/12* Chanukah 04/12* Chanukah 04/12* Parshat Miketz 05/12* Chanukah 06/12* Chanukah 07/12* Chanukah 08/12* Chanukah 09/12* Chanukah 11/12* Parshat Vayigash 17/12* Asara B'Tevet 18/12* Parshat Vayechi 25/12* Parshat Shemot #endif /* !_calendar_judaic_ */ The file that is currently included in the distribution is the following: $ cat /usr/share/calendar/calendar.judaic.2007 /* * Judaic Calendar. Maintained by Josef Grosch <jgro...@mooseriver.com>. * * $FreeBSD$ * */ /* * $Id: calendar.judaic,v 1.45 2007/01/01 22:24:53 jgrosch Exp $ */ #ifndef _calendar_judaic_ #define _calendar_judaic_ LANG=UTF-8 /* * Jewish calendar for the CE year 2007 * 11 Tevet 5767 - 22 tevet 5768 */ 01/06* Parshas Vayechi 01/13* Parshas Shemos 01/20* Parshas Vaera 01/20* Rosh Chodesh Shevat (Beginning of the month of Shevat) 01/27* Parshas Bo 02/03* Parshas Beshalach 02/03* Shabbos Shira 02/03* Tu B'Shevat (Feast of Trees) 02/10* Parshas Yisro 02/17* Parshas Mishpatim 02/17* Shabbos Shekalim 02/18* Rosh Chodesh Adar (Beginning of the month of Adar) 02/18* Be Happy! It's Adar 02/19* Rosh Chodesh Adar (Beginning of the month of Adar) 02/19* Be Happy! It's Adar 02/24* Parshas Terumah 03/01* Ta'anis Esther (Fast of Esther, Battle of Purim) 03/03* Parshas Tetzaveh 03/03* Shabbos Zachor 03/04* Purim (Feast of Lots) 03/05* Shushan Purim 03/10* Parshas Ki Sisa 03/10* Shabbos Parah 03/17* Parshas Vayakhel-Pekudei 03/17* Shabbos HaChodesh 03/20* Rosh Chodesh Nissan (Beginning of the month of Nissan) 03/24* Parshas Vayikra 03/31* Parshas Tzav 03/31* Shabbos Haggadol 04/02* Erev Pesach 04/02* Ta'anis Bechoros (Fast of the First Born) 04/02* First Seder night 04/03* Pesach (First Day of Passover; sabbatical) 04/03* Second Sedar night 04/04* Pesach (Second Day of Passover; sabbatical) 04/04* Sefirat ha-Omer begins (Counting of the Omer) 04/05* Omer 2nd day 04/05* Pesach (Third Day of Passover; sabbatical) 04/05* Hol Hamoed 04/06* Omer 3rd day 04/06* Pesach (Fourth Day of Passover) 04/06* Hol Hamoed 04/07* Omer 4th day 04/07* Pesach (Fifth Day of Passover) 04/07* Hol Hamoed 04/08* Omer 5th day 04/08* Pesach (Sixth Day of Passover) 04/08* Hol Hamoed 04/09* Omer 6th day 04/09* Pesach (Seventh Day of Passover) 04/10* Omer 7th day 04/10* Pesach (Last Day of Passover; 8th day of Pesach; sabbatical) 04/10* Yizkor 04/11* Omer 8th day 04/12* Omer 9th day 04/13* Omer 10th day 04/14* Omer 11th day 04/14* Parshas Shmini 04/15* Omer 12th day 04/15* Yom HaShoah (Holocaust Memorial Day) 04/16* Omer 13th day 04/17* Omer 14th day 04/18* Omer 15th day 04/18* Rosh Chodesh Iyar (Beginning of the month of Iyar) 04/19* Omer 16th day 04/19* Rosh Chodesh Iyar (Beginning of the month of Iyar) 04/20* Omer 17th day 04/21* Omer 18th day 04/21* Parshas Tazria-Metzora 04/22* Omer 19th day 04/23* Omer 20th day 04/23* Yom HaZikaron 04/24* Omer 21st day 04/24* Yom HaAtzma'ut (Israel Independence Day) 04/25* Omer 22nd day 04/26* Omer 23th day 04/27* Omer 24th day 04/28* Omer 25th day 04/28* Parshas Achrei Kedoshim 04/29* Omer 26th day 04/30* Omer 27th day 05/01* Omer 28th day 05/02* Omer 29th day 05/03* Omer 30th day 05/04* Omer 31st day 05/05* Omer 32nd day 05/05* Parshas Emor 05/06* Lag B'Omer (Commemoration of the Great Rebellion) 05/06* Omer 33th day 05/07* Omer 34th day 05/08* Omer 35th day 05/09* Omer 36th day 05/10* Omer 37th day 05/11* Omer 38th day 05/12* Omer 39th day 05/12* Parshas Behar-Bechukosai 05/13* Omer 40th day 05/14* Omer 41st day 05/15* Omer 42nd day 05/16* Omer 43th day 05/16* Yom Yerushalayim (Reunification of Jerusalem) 05/17* Omer 44th day 05/18* Omer 45th day 05/18* Rosh Chodesh Sivan (Beginning of the month of Sivan) 05/19* Omer 46th day 05/19* Parshas Bamidbar 05/20* Omer 47th day 05/21* Omer 48th day 05/22* Erev Shavuos 05/22* Omer 49th day 05/23* Shavuos (Festival of Weeks; sabbatical) 05/24* Shavuos (Festival of Weeks; sabbatical) 05/24* Yizkor 05/26* Parshas Nasso 06/02* Parshas Beha'aloscha 06/09* Parshas Shelach Lecha 06/16* Parshas Korach 06/16* Rosh Chodesh Tammuz (Beginning of the month of Tammuz) 06/17* Rosh Chodesh Tammuz (Beginning of the month of Tammuz) 06/23* Parshas Chukas 06/30* Parshas Balak 07/03* Fast of Shiv'a Asar B'Tammuz (Romans breach Wall of Jerusalem; fast day) 07/03* Tzom Tammuz 07/07* Parshas Pinchas 07/14* Parshas Matos-Masei 07/16* Rosh Chodesh Av (Beginning of the month of Av) 07/21* Parshas Devarim 07/21* Shabbos Hazon 07/24* Fast of Tish'a B'Av (Babylon/Rome destroys Holy Temple; fast day) 07/28* Parshas Vaeschanan 07/28* Shabbos Nachamu 07/30* Tu B'Av 08/04* Parshas Eikev 08/11* Parshas Re'eh 08/14* Rosh Chodesh Elul (Beginning of the month of Elul) 08/15* Rosh Chodesh Elul (Beginning of the month of Elul) 08/18* Parshas Shoftim 08/25* Parshas Ki Tetze 09/01* Parshas Ki Savo 09/08* Parshas Nitzavim-Vayeilech 09/12* Erev Rosh Hashana 09/13* First Day of Rosh Hashanah (Jewish New Year; 5768; sabbatical) 09/13* Rosh Chodesh Tishrei (Beginning of the month of Tishrei) 09/14* Rosh Hashanah (sabbatical) 09/15* Parshas Ha'Azinu 09/15* Shabbos Shuvah 09/16* Fast of Gedalya (Murder of Gedalya and subsequent Exile; fast day) 09/16* Tzom Gedaliah 09/21* Erev Yom Kippur 09/22* Yom Kippur (Day of Atonement; sabbatical, fast day) 09/22* Yizkor 09/26* Erev Sukkos 09/27* Succos (Festival of Tabernacles; sabbatical) 09/28* Succos (sabbatical) 09/28* Sukkos (Second day of Sukkos) 09/29* Sukkos (Third day of Sukkos) 09/29* Hol Hamoed 09/30* Sukkos (Fourth day of Sukkos) 09/30* Hol Hamoed 10/01* Sukkos (Fifth day of Sukkos) 10/01* Hol Hamoed 10/02* Sukkos (Sixth day of Sukkos) 10/02* Hol Hamoed 10/03* Hoshanah Rabba (Seventh day of Succos) 10/03* Sukkos (Seventh day of Sukkos) 10/04* Shmini Atzeres (8th Day of Gathering; sabbatical) 10/04* Yizkor 10/05* Simchas Torah (Rejoicing of the Law; sabbatical) 10/06* Parshas Bereshis 10/12* Rosh Chodesh Heshvan (Beginning of the month of Heshvan) 10/13* Parshas Noach 10/13* Rosh Chodesh Heshvan (Beginning of the month of Heshvan) 10/20* Parshas Lech-Lecha 10/27* Parshas Vayera 11/03* Parshas Chayei Sara 11/10* Parshas Toldos 11/11* Rosh Chodesh Kislev (Beginning of the month of Kislev) 11/17* Parshas Vayetzei 11/24* Parshas Vayishlach 12/01* Parshas Vayeshev 12/04* Erev Chanukah 12/04* Light 1st candle 12/05* Chanukah (First Day) 12/05* Light 2nd candle 12/06* Chanukah (Second Day) 12/06* Light 3rd candle 12/07* Chanukah (Third Day) 12/07* Light 4th candle 12/08* Chanukah (Fourth Day) 12/08* Parshas Miketz 12/08* Light 5th candle 12/09* Chanukah (Fifth Day) 12/09* Light 6th candle 12/10* Chanukah (Sixth Day) 12/10* Rosh Chodesh Tevet (Beginning of the month of Tevet) 12/10* Light 7th candle 12/11* Chanukah (Seventh Day) 12/11* Light 8th candle 12/12* Chanukah (Eight Day) 12/15* Parshas Vayigash 12/19* Asara B'Tevet 12/19* Fast of Asara B'Tevet (Babylonians put siege on Jerusalem; fast day) 12/22* Parshas Vayechi 12/29* Parshas Shemos #endif /* !_calendar_judaic_ */ _________________________________________________________________ Hotmail: שירות דואר אלקטרוני מהימן ועשיר המסופק בחינם. https://signup.live.com/signup.aspx?id=60969 _______________________________________________ Linux-il mailing list Linux-il@cs.huji.ac.il http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il