diff --git a/README.md b/README.md index 16330dd..bc444c6 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,4 @@ # build2 +Cross-platform toolchain for building and packaging C/C++ code. + diff --git a/build2-0.16.0-glibc-2.38-1.patch b/build2-0.16.0-glibc-2.38-1.patch new file mode 100644 index 0000000..fe15d60 --- /dev/null +++ b/build2-0.16.0-glibc-2.38-1.patch @@ -0,0 +1,45 @@ +From c89789432983bcb2413065fd251b4ba4ae96481e Mon Sep 17 00:00:00 2001 +From: Boris Kolpackov +Date: Wed, 23 Aug 2023 14:04:14 +0200 +Subject: [PATCH] Release version 0.1.1+1 + +Deal with glibc 2.38 providing strlcpy() and strlcat(). +--- + libpkg-config/libpkg-config/config.h.in | 8 +++++++- + libpkg-config/manifest | 2 +- + 2 files changed, 8 insertions(+), 2 deletions(-) + +diff --git a/libpkg-config/libpkg-config/config.h.in b/libpkg-config/libpkg-config/config.h.in +index f48b68a..bc0cf79 100644 +--- a/libpkg-config/libpkg-config/config.h.in ++++ b/libpkg-config/libpkg-config/config.h.in +@@ -13,10 +13,16 @@ + # define HAVE_STRNDUP 1 + #endif + ++// GNU libc added strlcpy() and strlcat() in version 2.38 (in anticipation ++// of their addition to POSIX). ++// + #if defined(__FreeBSD__) || \ + defined(__OpenBSD__) || \ + defined(__NetBSD__) || \ +- defined(__APPLE__) ++ defined(__APPLE__) || \ ++ (defined(__GLIBC__) && \ ++ defined(__GLIBC_MINOR__) && \ ++ (__GLIBC__ > 2 || __GLIBC__ == 2 && __GLIBC_MINOR__ >= 38)) + # define HAVE_STRLCPY 1 + # define HAVE_STRLCAT 1 + #endif +diff --git a/libpkg-config/manifest b/libpkg-config/manifest +index 49e8396..d2616a9 100644 +--- a/libpkg-config/manifest ++++ b/libpkg-config/manifest +@@ -1,6 +1,6 @@ + : 1 + name: libpkg-config +-version: 0.1.1 ++version: 0.1.1+1 + summary: C library for retrieving compiler/linker flags and other metadata + license: ISC + topics: pkg-config, library, build system diff --git a/build2-0.16.0-glibc-2.38-2.patch b/build2-0.16.0-glibc-2.38-2.patch new file mode 100644 index 0000000..951ca8a --- /dev/null +++ b/build2-0.16.0-glibc-2.38-2.patch @@ -0,0 +1,38 @@ +From 604eb708883a1f90b58e7d6292331d999db873a7 Mon Sep 17 00:00:00 2001 +From: Boris Kolpackov +Date: Thu, 24 Aug 2023 11:39:41 +0200 +Subject: [PATCH] Include for __GLIBC*__ (GH issue #324) + +--- + libpkg-config/libpkg-config/config.h.in | 11 ++++++++--- + 1 file changed, 8 insertions(+), 3 deletions(-) + +diff --git a/libpkg-config/libpkg-config/config.h.in b/libpkg-config/libpkg-config/config.h.in +index bc0cf79..7e02e75 100644 +--- a/libpkg-config/libpkg-config/config.h.in ++++ b/libpkg-config/libpkg-config/config.h.in +@@ -4,6 +4,10 @@ + #ifndef LIBPKG_CONFIG_CONFIG_H + #define LIBPKG_CONFIG_CONFIG_H + ++#if defined(__linux__) ++# include /* __GLIBC__, __GLIBC_MINOR__ */ ++#endif ++ + /* + * strndup() is not present on Windows while strl*() are only present on + * *BSD and MacOS. +@@ -13,9 +17,10 @@ + # define HAVE_STRNDUP 1 + #endif + +-// GNU libc added strlcpy() and strlcat() in version 2.38 (in anticipation +-// of their addition to POSIX). +-// ++/* ++ * GNU libc added strlcpy() and strlcat() in version 2.38 (in anticipation ++ * of their addition to POSIX). ++ */ + #if defined(__FreeBSD__) || \ + defined(__OpenBSD__) || \ + defined(__NetBSD__) || \ diff --git a/build2.spec b/build2.spec new file mode 100644 index 0000000..34d3859 --- /dev/null +++ b/build2.spec @@ -0,0 +1,141 @@ +Name: build2 +Version: 0.16.0 +Release: 1mamba +Summary: Cross-platform toolchain for building and packaging C/C++ code +Group: Development/Tools +Vendor: openmamba +Distribution: openmamba +Packager: Silvan Calarco +URL: https://build2.org/ +Source: https://download.build2.org/%{version}/build2-toolchain-%{version}.tar.xz +Patch0: build2-0.16.0-glibc-2.38-1.patch +Patch1: build2-0.16.0-glibc-2.38-2.patch +License: MIT +## AUTOBUILDREQ-BEGIN +BuildRequires: glibc-devel +BuildRequires: libgcc +BuildRequires: libsqlite-devel +BuildRequires: libstdc++6-devel +## AUTOBUILDREQ-END +Requires: lib%{name} = %{?epoch:%epoch:}%{version}-%{release} + +%description +Cross-platform toolchain for building and packaging C/C++ code. + +%package -n lib%{name} +Group: System/Libraries +Summary: Shared libraries for %{name} + +%description -n lib%{name} +This package contains shared libraries for %{name}. + +%package -n lib%{name}-devel +Group: Development/Libraries +Summary: Development files for %{name} +Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release} +Requires: lib%{name} = %{?epoch:%epoch:}%{version}-%{release} + +%description -n lib%{name}-devel +This package contains libraries and header files for developing applications that use %{name}. + +%debug_package + +%prep +%setup -q -n %{name}-toolchain-%{version} +%patch 0 -p1 -b .glibc-2.38-1 +%patch 1 -p1 -b .glibc-2.38-2 + +%build +# Prevent from using ccache, which is not supported +export PATH=%{_bindir}:$PATH + +xmkdir -p build/usr +./build.sh --trust yes --local --system libsqlite3,libpkgconfig --install-dir ${PWD}/build/usr g++ + +%ifarch x86_64 aarch64 +mv build/usr/lib{,64} +%endif + +for f in build/usr/%{_lib}/pkgconfig/*.pc; do sed -i "s|${PWD}/build||" ${f}; done + +%install +[ "%{buildroot}" != / ] && rm -rf "%{buildroot}" +install -d -m0755 %{buildroot} +cp -a build/usr %{buildroot}/ +chrpath -d %{buildroot}%{_bindir}/{b,bpkg,bdep} %{buildroot}%{_libdir}/*.so + +%clean +[ "%{buildroot}" != / ] && rm -rf "%{buildroot}" + +%post -n lib%{name} -p /sbin/ldconfig +%postun -n lib%{name} -p /sbin/ldconfig + +%files +%defattr(-,root,root) +%{_bindir}/b +%{_bindir}/bdep +%{_bindir}/bpkg + +%files -n lib%{name} +%defattr(-,root,root) +%{_libdir}/libbpkg-0.16.so +%{_libdir}/libbpkg.so +%{_libdir}/libbuild2-*.so +%{_libdir}/libbuild2.so +%{_libdir}/libbutl-0.16.so +%{_libdir}/libbutl.so +%{_libdir}/libodb-2.5.0-b.25.so +%{_libdir}/libodb-sqlite-2.5.0-b.25.so +%{_libdir}/libodb-sqlite.so +%{_libdir}/libodb.so +%{_libdir}/libpkg-config-0.1.so +%{_libdir}/libpkg-config.so +%doc AUTHORS LICENSE + +%files -n lib%{name}-devel +%defattr(-,root,root) +%dir %{_includedir}/libbpkg +%{_includedir}/libbpkg/* +%dir %{_includedir}/libbuild2 +%{_includedir}/libbuild2/* +%dir %{_includedir}/libbutl +%{_includedir}/libbutl/* +%dir %{_includedir}/libpkg-config +%{_includedir}/libpkg-config/* +%dir %{_includedir}/odb +%{_includedir}/odb/* +%{_libdir}/pkgconfig/libbpkg.pc +%{_libdir}/pkgconfig/libbpkg.shared.pc +%{_libdir}/pkgconfig/libbuild2*.pc +%{_libdir}/pkgconfig/libbutl.pc +%{_libdir}/pkgconfig/libbutl.shared.pc +%{_libdir}/pkgconfig/libodb-sqlite.pc +%{_libdir}/pkgconfig/libodb-sqlite.shared.pc +%{_libdir}/pkgconfig/libodb.pc +%{_libdir}/pkgconfig/libodb.shared.pc +%{_libdir}/pkgconfig/libpkg-config.pc +%{_libdir}/pkgconfig/libpkg-config.shared.pc +%{_mandir}/man1/b.1.gz +%{_mandir}/man1/bdep*.1* +%{_mandir}/man1/bpkg-argument-grouping.1.gz +%{_mandir}/man1/bpkg*1* +%dir %{_docdir}/bdep +%{_docdir}/bdep/* +%dir %{_docdir}/bpkg +%{_docdir}/bpkg/* +%dir %{_docdir}/build2 +%{_docdir}/build2/* +%{_docdir}/libbpkg/manifest +%dir %{_docdir}/libbuild2-autoconf +%{_docdir}/libbuild2-autoconf/* +%dir %{_docdir}/libbuild2-kconfig +%{_docdir}/libbuild2-kconfig/* +%{_docdir}/libbutl/manifest +%{_docdir}/libodb-sqlite/manifest +%{_docdir}/libodb/manifest +%{_docdir}/libpkg-config/manifest +%doc README + +%changelog +* Thu Feb 08 2024 Silvan Calarco 0.16.0-1mamba +- package created using the webbuild interface