summaryrefslogtreecommitdiff
path: root/guile.spec
blob: 2a1b05c48f62afb6eae2fbee114f2f18de333122 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
Name:          guile
Version:       3.0.10
%global mver 3.0
Release:       1
Epoch:         5
Summary:       GNU's Ubiquitous Intelligent Language for Extension
License:       LGPL-3.0-or-later and MIT and Public Domain and GPL-3.0-or-later
URL:           https://www.gnu.org/software/guile/
Source:        https://ftp.gnu.org/gnu/guile/%{name}-%{version}.tar.xz
Patch0: guile-3.0.7-headers.patch
Patch1: guile-3.0.7-disable-oom-test.patch
Patch2: guile-3.0.7-chroot.patch
Patch3: guile-3.0.7-disable-stackoverflow-test.patch
BuildRequires: libtool libtool-ltdl-devel gmp-devel pkgconfig(readline)
BuildRequires: gettext-devel libunistring-devel pkgconfig(libffi) pkgconfig(bdw-gc)
BuildRequires: make gcc
BuildRequires: autoconf

%description
This is Guile, a portable, embeddable Scheme implementation written in
C. Guile provides a machine independent execution platform that can be
linked in as a library when building extensible programs.

%package       devel
Summary:       Development files and Header files for %{name}
Requires:      guile = %{epoch}:%{version}-%{release}

%description   devel
The %{name}-devel package contains libraries and header files for
developing applications that use %{name}.

%package_help

%prep
%autosetup -n %{name}-%{version} -p1 

%build
autoreconf -fiv
%configure --disable-static --disable-error-on-warning
%make_build

%install
%make_install
%delete_la
rm -f %{buildroot}%{_infodir}/dir

# Our gdb doesn't support guile yet
rm -f %{buildroot}%{_libdir}/libguile*gdb.scm

mkdir -p %{buildroot}%{_datadir}/guile/site/%{mver}
touch %{buildroot}%{_datadir}/guile/site/%{mver}/slibcat

# Adjust mtimes so they are all identical on all architectures.
# When guile.x86_64 and guile.i686 are installed at the same time on an x86_64 system,
# the *.scm files' timestamps change, as they normally reside in /usr/share/guile/.
# Their corresponding compiled *.go file go to /usr/lib64/, or /usr/lib/, depending on the arch.
# The mismatch in timestamps between *.scm and *.go files makes guile to compile itself
# everytime it's run. The following code adjusts the files so that their timestamps are the same
# for every file, but unique between builds.
# See https://bugzilla.redhat.com/show_bug.cgi?id=1208760.
find %{buildroot}%{_datadir} -name '*.scm' -exec touch -r "%{_specdir}/guile3.spec" '{}' \;
find %{buildroot}%{_libdir} -name '*.go' -exec touch -r "%{_specdir}/guile3.spec" '{}' \;

%check
%make_build check

%triggerin -- slib >= 3b4-1
rm -f %{_datadir}/guile/site/%{mver}/slibcat
export SCHEME_LIBRARY_PATH=%{_datadir}/slib/
 
# Build SLIB catalog
%{_bindir}/guile%{mver} --fresh-auto-compile --no-auto-compile -c \
    "(use-modules (ice-9 slib)) (require 'new-catalog)" &> /dev/null || \
    rm -f %{_datadir}/guile/site/%{mver}/slibcat
:
 
 
%triggerun -- slib >= 3b4-1
if [ "$2" = 0 ]; then
    rm -f %{_datadir}/guile/site/%{mver}/slibcat
fi

%files
%doc AUTHORS 
%license COPYING COPYING.LESSER LICENSE
%{_bindir}/guild
%{_bindir}/guile
%{_bindir}/guile-tools
%{_libdir}/libguile-%{mver}.so.1*
%{_libdir}/guile
%dir %{_datadir}/guile
%dir %{_datadir}/guile/site
%dir %{_datadir}/guile/%{mver}
%dir %{_datadir}/guile/site/%{mver}
%{_datadir}/guile/%{mver}/ice-9
%{_datadir}/guile/%{mver}/language
%{_datadir}/guile/%{mver}/oop
%{_datadir}/guile/%{mver}/rnrs
%{_datadir}/guile/%{mver}/scripts
%{_datadir}/guile/%{mver}/srfi
%{_datadir}/guile/%{mver}/sxml
%{_datadir}/guile/%{mver}/system
%{_datadir}/guile/%{mver}/texinfo
%{_datadir}/guile/%{mver}/web
%{_datadir}/guile/%{mver}/guile-procedures.txt
%{_datadir}/guile/%{mver}/*.scm
%{_datadir}/guile/%{mver}/scheme/*.scm
%dir %{_datadir}/guile/%{mver}/scheme
%ghost %{_datadir}/guile/site/%{mver}/slibcat

%files devel
%{_bindir}/guile-config
%{_bindir}/guile-snarf
%{_datadir}/aclocal/*
%{_libdir}/libguile-%{mver}.so
%{_libdir}/pkgconfig/*.pc
%{_includedir}/guile

%files help
%doc HACKING NEWS README THANKS
%{_mandir}/man1/*
%{_infodir}/*

%changelog
* Tue Aug 06 2024 Funda Wang <fundawang@yeah.net> - 5:3.0.10-1
- update to 3.0.10

* Fri Jul 19 2024 liweigang <liweiganga@uniontech.com> - 5:2.2.7-5
- fix build error(automake 1.17)
- regenerate configure file

* Wed Jan 03 2024 konglidong <konglidong@uniontech.com> - 2.2.7-4
- fix bad macro expansion in changelog

* Sat Apr  8 2023 Z572 <873216071@qq.com> - 2.2.7-3
- fix guile-tools alias 'guile2-tools' -> 'guile-tools2'

* Mon Feb 20 2023 zhouwenpei <zhouwenpei1@h-partners.com> - 2.2.7-2
- delete old so files

* Mon Feb 13 2023 zhouwenpei <zhouwenpei1@h-partners.com> - 2.2.7-1
- upgrade to 2.2.7

* Mon Apr 25 2022 yangcheng <yangcheng87@h-partners.com> - 2.0.14-18
- Remove multithreaded builds to resolve binary bep differences

* Fri Jul 30 2021 chenyanpanHW <chenyanpan@huawei.com> - 2.0.14-17
- DESC: delete -S git from autosetup, and delete BuildRequires git

* Wed Jul 21 2021 yushaogui <yushaogui@huawei.com> - 2.0.14-16
- delete gdb in buildrequires

* Fri Mar 20 2020 songnannan <songnannan2@huawei.com> - 2.0.14-15
- add gdb in buildrequires

* Sat Sep 28 2019 openEuler Buildteam <buildteam@openeuler.org> - 2.0.14-14
- Type:bugfix
- Id:NA
- SUG:NA
- DESC:remove the libguile-2.0.so.22.8.1-gdb.scm from package

* Tue Sep 18 2019 openEuler Buildteam <buildteam@openeuler.org> - 2.0.14-13
- Package init