]> git.pld-linux.org Git - packages/flex.git/blobdiff - flex.spec
add build fix from fedora
[packages/flex.git] / flex.spec
index 6bff210e8229d6d9d062677aefa3ebebb49bba59..1de68e9f3ad8bafcd41ebf6b9180c084b807517b 100644 (file)
--- a/flex.spec
+++ b/flex.spec
@@ -1,37 +1,52 @@
+# NOTE on shared libfl:
+#      It exports two functions, yywrap() and main();
+#      - because of the latter, unnecessary linking with shared -lfl would harm,
+#        so it would require large cleanup of other projects;
+#      - when some code wants yywrap(), but no main(), using shared libfl is NOT POSSIBLE.
+#      Thus, shared libfl would be of little use.
 Summary:       GNU fast lexical analyzer generator
-Summary(de):   GNU - schneller lexikalischer Analysegenerator
-Summary(es):   Generador rápido de analizadores léxicos de la GNU
-Summary(fr):   Générateur rapide d'analyseur lexical de GNU
-Summary(pl):   Szybki generator analizatora sk³adni GNU (flex)
-Summary(pt_BR):        Gerador rápido de analisadores léxicos da GNU
-Summary(ru):   âÙÓÔÒÙÊ ÇÅÎÅÒÁÔÏÒ ÌÅËÓÉÞÅÓËÉÈ ÁÎÁÌÉÚÁÔÏÒÏ× GNU
-Summary(tr):   GNU sözdizim çözümleyici
-Summary(uk):   û×ÉÄËÉÊ ÇÅÎÅÒÁÔÏÒ ÌÅËÓÉÞÎÉÈ ÁÎÁ̦ÚÁÔÏҦנGNU
+Summary(de.UTF-8):     GNU - schneller lexikalischer Analysegenerator
+Summary(es.UTF-8):     Generador rápido de analizadores léxicos de la GNU
+Summary(fr.UTF-8):     Générateur rapide d'analyseur lexical de GNU
+Summary(pl.UTF-8):     Szybki generator analizatora składni GNU (flex)
+Summary(pt_BR.UTF-8):  Gerador rápido de analisadores léxicos da GNU
+Summary(ru.UTF-8):     Быстрый генератор лексических анализаторов GNU
+Summary(tr.UTF-8):     GNU sözdizim çözümleyici
+Summary(uk.UTF-8):     Швидкий генератор лексичних аналізаторів GNU
 Name:          flex
-Version:       2.5.31
-Release:       7
+Version:       2.6.4
+Release:       1
 License:       BSD-like
 Group:         Development/Tools
-Source0:       http://dl.sourceforge.net/lex/%{name}-%{version}.tar.bz2
-# Source0-md5: 363dcc4afc917dc51306eb9d3de0152f
+#Source0Download: https://github.com/westes/flex/releases
+# TODO: when upgrading, switch to
+#Source0:      https://github.com/westes/flex/releases/download/v%{version}/%{name}-%{version}.tar.lz
+Source0:       https://github.com/westes/flex/archive/v%{version}/%{name}-%{version}.tar.gz
+# Source0-md5: 96828d1e36d18545b71a027caa6478dd
 Source1:       http://www.mif.pg.gda.pl/homepages/ankry/man-PLD/%{name}-non-english-man-pages.tar.bz2
 # Source1-md5: fd79ee2834b290e74c626f0bbfc8942f
-Source2:       %{name}-pl.po
 Patch0:                %{name}-info.patch
-Patch1:                %{name}-glibc22.patch
-Patch2:                %{name}-locale.patch
-Patch3:                %{name}-yymore-fix.patch
-Patch4:                %{name}-yytext_ptr-undefined.patch
-Patch5:                %{name}-m4-quotes.diff
-Patch6:                %{name}-m4-quotes-codeblock.patch
-URL:           http://lex.sf.net/
-BuildRequires: autoconf
-BuildRequires: automake
+Patch1:                %{name}-build.patch
+Patch2:                %{name}-rh1389575.patch
+URL:           https://github.com/westes/flex
+BuildRequires: autoconf >= 2.54
+BuildRequires: automake >= 1:1.14.1
 BuildRequires: bison
-BuildRequires: gettext-devel
+# to rebuild scan.c from scan.l (m4-quotes patch)
+#BuildRequires:        flex
+BuildRequires: gettext-tools >= 0.19
 BuildRequires: help2man
+BuildRequires: libtool >= 2:2
+# to rebuild skel.c from patched flex.skl
+BuildRequires: m4
+BuildRequires: tar >= 1:1.22
 BuildRequires: texinfo
+BuildRequires: texinfo-texi2dvi
+BuildRequires: texlive-fonts-cmsuper
+BuildRequires: texlive-pdftex
 BuildRequires: util-linux
+BuildRequires: xz
+Requires:      m4
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
 %description
@@ -40,99 +55,109 @@ tokenizing code based on a lexical (regular expression based)
 description of the input. It is designed to work with both yacc and
 bison, and is used by many programs as part of their build process.
 
-%description -l de
+%description -l de.UTF-8
 GNU, der schnelle lexikalische Analysengenerator. Er erzeugt
 lexikalischen Token-Code, basierend auf einer lexikalischen
-Beschreibung (reguläre Ausdrucksbasis) der Eingabe. Ausgelegt zum
+Beschreibung (reguläre Ausdrucksbasis) der Eingabe. Ausgelegt zum
 Arbeiten mit yacc und bison, wird er von vielen Programmen als Teil
 des Build-Vorgangs verwendet.
 
-%description -l es
-Este es el creador GNU de análisis léxica rápida. Crea códigos léxicos
-tokenizados basados en una descripción léxica (basado en expresiones
-regulares) de la entrada. Está designado a trabajar tanto con yacc
+%description -l es.UTF-8
+Este es el creador GNU de análisis léxica rápida. Crea códigos léxicos
+tokenizados basados en una descripción léxica (basado en expresiones
+regulares) de la entrada. Está designado a trabajar tanto con yacc
 como con bison, y se utiliza en varios programas como parte del su
-proceso de programación.
+proceso de programación.
 
-%description -l fr
-Générateur rapide d'analyseur lexical de GNU. Il génère du code
-lexical sous forme de tokens basé sur une description lexicale (basé
-sur les expressions rationnelles) de son entrée. Il est conçu pour
-fonctionner avec yacc et bison, et est utilisé par de nombreux
+%description -l fr.UTF-8
+Générateur rapide d'analyseur lexical de GNU. Il génère du code
+lexical sous forme de tokens basé sur une description lexicale (basé
+sur les expressions rationnelles) de son entrée. Il est conçu pour
+fonctionner avec yacc et bison, et est utilisé par de nombreux
 programmes comme faisant partie de leur phase de construction.
 
-%description -l pl
-GNU flex s³u¿y do tworzenia programu analizy leksykalnej na podstawie
-wyra¿eñ regularnych i dyrektyw C zawartych w jednym lub wiêcej plikach
-wej¶ciowych. Przeznaczony do wspó³pracy z parserami yacc i bison, jest
-u¿ywany przez wiele programów w procesie kompilacji.
-
-%description -l pt_BR
-Este é o gerador GNU de análise léxica rápida. Ele gera códigos
-léxicos tokenizados baseados em uma descrição léxica (baseado em
-expressões regulares) da entrada. Ele é designado para trabalhar tanto
-com yacc como com bison, e é utilizado em vários programas como parte
-do seu processo de programação.
-
-%description -l ru
-ðÒÏÇÒÁÍÍÁ flex ÇÅÎÅÒÉÒÕÅÔ ÓËÁÎÎÅÒÙ. óËÁÎÎÅÒÙ - ÜÔÏ ÐÒÏÇÒÁÍÍÙ,
-ÓÐÏÓÏÂÎÙÅ ÒÁÓÐÏÚÎÁ×ÁÔØ ÌÅËÓÉÞÅÓËÉÅ ÛÁÂÌÏÎÙ × ÔÅËÓÔÅ. flex ÐÒÉÎÉÍÁÅÔ ÎÁ
-×ÈÏÄÅ ÐÁÒÕ ÒÅÇÕÌÑÒÎÙÈ ×ÙÒÁÖÅÎÉÊ É C ËÏÄ É ÇÅÎÅÒÉÒÕÅÔ ÉÓÈÏÄÎÙÅ ÆÁÊÌÙ ÎÁ
-ÑÚÙËÅ C. éÓÈÏÄÎÙÊ ÆÁÊÌ ËÏÍÐÉÌÉÒÕÅÔÓÑ É Ó×ÑÚÙ×ÁÅÔÓÑ Ó ÂÉÂÌÉÏÔÅËÏÊ ÄÌÑ
-ÓÏÚÄÁÎÉÑ ÉÓÐÏÌÎÑÅÍÏÇÏ ÆÁÊÌÁ, ËÏÔÏÒÙÊ ÂÕÄÅÔ ÐÒÏÓÍÁÔÒÉ×ÁÔØ Ó×ÏÊ ×ÈÏÄÎÏÊ
-ÐÏÔÏË ÄÁÎÎÙÈ × ÐÏÉÓËÅ ÒÅÇÕÌÑÒÎÙÈ ×ÙÒÁÖÅÎÉÊ. ðÒÉ ÎÁÈÏÖÄÅÎÉÉ ÂÕÄÅÔ
-ÉÓÐÏÌÎÑÔØÓÑ ÚÁÄÁÎÎÙÊ C ËÏÄ. flex ÂÙÌ ÒÁÚÒÁÂÏÔÁΠÄÌÑ ÒÁÂÏÔÙ ËÁË Ó
-ÓÉÓÔÅÍÏÊ Yacc, ÔÁË É Bison, É ÉÓÐÏÌØÚÕÅÔÓÑ ÍÎÏÇÉÍÉ ÐÒÏÇÒÁÍÍÁÍÉ ËÁË
-ÞÁÓÔØ ÐÒÏÃÅÓÓÁ ÉÈ ÐÏÓÔÒÏÅÎÉÑ ÉÚ ÉÓÈÏÄÎÙÈ ÔÅËÓÔÏ×.
-
-÷ÁÍ ÓÌÅÄÕÅÔ ÕÓÔÁÎÏ×ÉÔØ flex, ÅÓÌÉ ×Ù ÓÏÂÉÒÁÅÔÅÓØ ÉÓÐÏÌØÚÏ×ÁÔØ Ó×ÏÀ
-ÓÉÓÔÅÍÕ ÄÌÑ ÒÁÚÒÁÂÏÔËÉ ÐÒÏÇÒÁÍÍ.
-
-%description -l tr
-Bu paket, giriþ olarak okuduðu bilgiyi kendisine düzgün deyimler
-olarak belirtilen kurallar çerçevesinde birimlere böler. yacc ve bison
-paketleri ile birlikte çalýþacak þekilde tasarlanmýþtýr. Pek çok
-programýn derlenme aþamasýnda kullanýlýr.
-
-%description -l uk
-ðÒÏÇÒÁÍÁ flex ÇÅÎÅÒÕ¤ ÓËÁÎÅÒÉ. óËÁÎÅÒÉ - ÃÅ ÐÒÏÇÒÁÍÉ, Ñ˦ ÍÏÖÕÔØ
-ÒÏÚЦÚÎÁ×ÁÔÉ ÌÅËÓÉÞΦ ÛÁÂÌÏÎÉ × ÔÅËÓÔ¦. flex ÐÒÉÊÍÁ¤ ÎÁ ×ÈÏĦ ÐÁÒÕ
-ÒÅÇÕÌÑÒÎÉÈ ×ÉÒÁڦנÔÁ C ËÏÄ ÔÁ ÇÅÎÅÒÕ¤ ×ÉȦÄΦ ÆÁÊÌÉ ÎÁ ÍÏצ C.
-÷ÉȦÄÎÉÊ ÆÁÊÌ ËÏÍЦÌÀ¤ÔØÓÑ ÔÁ Ú×'ÑÚÕ¤ÔØÓѠڠ¦Â̦ÏÔÅËÏÀ ÄÌÑ ÓÔ×ÏÒÅÎÎÑ
-×ÉËÏÎÕ×ÁÎÏÇÏ ÆÁÊÌÕ, ÝÏ ÐÒÏÇÌÑÄÁÔÉÍÅ Óצʠ×ȦÄÎÉÊ ÐÏԦˠÄÁÎÉÈ × ÐÏÛÕËÕ
-ÒÅÇÕÌÑÒÎÉÈ ×ÉÒÁÚ¦×. ðÒÉ ÚÎÁÈÏÄÖÅÎΦ ×ÉËÏÎÕ×ÁÔÉÍÅÔØÓÑ ÚÁÄÁÎÉÊ C ËÏÄ.
-flex ÂÕ× ÒÏÚÒÏÂÌÅÎÉÊ ÄÌÑ ÒÏÂÏÔÉ ÑË Ú ÓÉÓÔÅÍÏÀ Yacc, ÔÁË ¦ Bison, ÔÁ
-×ÉËÏÒÉÓÔÏ×Õ¤ÔØÓÑ ÂÁÇÁÔØÍÁ ÐÒÏÇÒÁÍÁÍÉ × ÐÒÏÃÅÓ¦ §È ÐÏÂÕÄÏ×É Ú ×ÉȦÄÎÉÈ
-ÔÅËÓÔ¦×.
-
-÷ÁÍ Ó̦Ġ×ÓÔÁÎÏ×ÉÔÉ flex, ÑËÝÏ ×É ÚÂÉÒÁ¤ÔÅÓØ ×ÉËÏÒÉÓÔÏ×Õ×ÁÔÉ Ó×ÏÀ
-ÓÉÓÔÅÍÕ ÄÌÑ ÒÏÚÒÏÂËÉ ÐÒÏÇÒÁÍ.
+%description -l pl.UTF-8
+GNU flex służy do tworzenia programu analizy leksykalnej na podstawie
+wyrażeń regularnych i dyrektyw C zawartych w jednym lub więcej plikach
+wejściowych. Przeznaczony do współpracy z parserami yacc i bison, jest
+używany przez wiele programów w procesie kompilacji.
+
+%description -l pt_BR.UTF-8
+Este é o gerador GNU de análise léxica rápida. Ele gera códigos
+léxicos tokenizados baseados em uma descrição léxica (baseado em
+expressões regulares) da entrada. Ele é designado para trabalhar tanto
+com yacc como com bison, e é utilizado em vários programas como parte
+do seu processo de programação.
+
+%description -l ru.UTF-8
+Программа flex генерирует сканнеры. Сканнеры - это программы,
+способные распознавать лексические шаблоны в тексте. flex принимает на
+входе пару регулярных выражений и C код и генерирует исходные файлы на
+языке C. Исходный файл компилируется и связывается с библиотекой для
+создания исполняемого файла, который будет просматривать свой входной
+поток данных в поиске регулярных выражений. При нахождении будет
+исполняться заданный C код. flex был разработан для работы как с
+системой Yacc, так и Bison, и используется многими программами как
+часть процесса их построения из исходных текстов.
+
+Вам следует установить flex, если вы собираетесь использовать свою
+систему для разработки программ.
+
+%description -l tr.UTF-8
+Bu paket, giriş olarak okuduğu bilgiyi kendisine düzgün deyimler
+olarak belirtilen kurallar çerçevesinde birimlere böler. yacc ve bison
+paketleri ile birlikte çalışacak şekilde tasarlanmıştır. Pek çok
+programın derlenme aşamasında kullanılır.
+
+%description -l uk.UTF-8
+Програма flex генерує сканери. Сканери - це програми, які можуть
+розпізнавати лексичні шаблони в тексті. flex приймає на вході пару
+регулярних виразів та C код та генерує вихідні файли на мові C.
+Вихідний файл компілюється та зв'язується з бібліотекою для створення
+виконуваного файлу, що проглядатиме свій вхідний потік даних в пошуку
+регулярних виразів. При знаходженні виконуватиметься заданий C код.
+flex був розроблений для роботи як з системою Yacc, так і Bison, та
+використовується багатьма програмами в процесі їх побудови з вихідних
+текстів.
+
+Вам слід встановити flex, якщо ви збираєтесь використовувати свою
+систему для розробки програм.
+
+%package examples
+Summary:       Flex examples
+Summary(pl.UTF-8):     Przykłady dla fleksa
+Group:         Development/Tools
+
+%description examples
+Flex examples.
+
+%description examples -l pl.UTF-8
+Przykłady dla fleksa.
 
 %prep
 %setup -q
 %patch0 -p1
 %patch1 -p1
 %patch2 -p1
-%patch3 -p1
-%patch4 -p1
-%patch5 -p1
-%patch6 -p1
-
-cp -f %{SOURCE2} po/pl.po
-echo 'pl' >> po/LINGUAS
 
 # force regeneration (just in case make didn't want to)
-rm -f skel.c
+%{__rm} -f src/skel.c
 
 %build
-cp -f /usr/share/automake/config.sub .
+%{__gettextize}
+%{__libtoolize}
+%{__aclocal} -I m4
 %{__autoconf}
-%configure
+%{__autoheader}
+%{__automake}
+%configure \
+       --disable-shared
 
 %{__make}
 
 %install
 rm -rf $RPM_BUILD_ROOT
+install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
 
 %{__make} install \
        DESTDIR=$RPM_BUILD_ROOT
@@ -142,27 +167,55 @@ ln -sf flex $RPM_BUILD_ROOT%{_bindir}/flex++
 
 echo .so flex.1 > $RPM_BUILD_ROOT%{_mandir}/man1/flex++.1
 echo .so flex.1 > $RPM_BUILD_ROOT%{_mandir}/man1/lex.1
+
 bzip2 -dc %{SOURCE1} | tar xf - -C $RPM_BUILD_ROOT%{_mandir}
+%{__rm} $RPM_BUILD_ROOT%{_mandir}/README.flex-non-english-man-pages
+
+rm -f $RPM_BUILD_ROOT%{_infodir}/dir
+
+cp -a examples/* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
+
+# no external dependencies
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/lib*.la
 
 %find_lang %{name}
 
 %clean
 rm -rf $RPM_BUILD_ROOT
 
-%post
-[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
+%post  -p /sbin/postshell
+-/usr/sbin/fix-info-dir -c %{_infodir}
 
-%postun
-[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
+%postun        -p /sbin/postshell
+-/usr/sbin/fix-info-dir -c %{_infodir}
 
 %files -f %{name}.lang
 %defattr(644,root,root,755)
-%doc AUTHORS COPYING ChangeLog NEWS README THANKS TODO
-%attr(755,root,root) %{_bindir}/*
-%{_mandir}/man1/*
+%doc AUTHORS COPYING NEWS README.md THANKS
+%attr(755,root,root) %{_bindir}/flex
+%attr(755,root,root) %{_bindir}/flex++
+%attr(755,root,root) %{_bindir}/lex
+%{_mandir}/man1/flex.1*
+%{_mandir}/man1/flex++.1*
+%{_mandir}/man1/lex.1*
 %lang(es) %{_mandir}/es/man1/*
 %lang(ja) %{_mandir}/ja/man1/*
 %lang(pl) %{_mandir}/pl/man1/*
-%{_infodir}/flex*
-%{_libdir}/*.a
-%{_includedir}/*.h
+%{_infodir}/flex.info*
+%{_libdir}/libfl.a
+%{_includedir}/FlexLexer.h
+
+%if 0
+%files libs
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libfl.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libfl.so.2
+
+%files devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libfl.so
+%endif
+
+%files examples
+%defattr(644,root,root,755)
+%{_examplesdir}/%{name}-%{version}
This page took 0.08261 seconds and 4 git commands to generate.