]> git.pld-linux.org Git - packages/libldm.git/commitdiff
- new
authorJakub Bogusz <qboosh@pld-linux.org>
Mon, 7 Jan 2013 18:40:26 +0000 (19:40 +0100)
committerJakub Bogusz <qboosh@pld-linux.org>
Mon, 7 Jan 2013 18:40:26 +0000 (19:40 +0100)
libldm-warnings.patch [new file with mode: 0644]
libldm.spec [new file with mode: 0644]

diff --git a/libldm-warnings.patch b/libldm-warnings.patch
new file mode 100644 (file)
index 0000000..92fea1a
--- /dev/null
@@ -0,0 +1,171 @@
+--- libldm-0.2.3/src/Makefile.am.orig  2012-09-20 12:31:03.000000000 +0200
++++ libldm-0.2.3/src/Makefile.am       2013-01-07 19:20:40.782494058 +0100
+@@ -15,7 +15,7 @@
+ # along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ AM_CFLAGS = -Wall -Werror -Wshadow -Wextra \
+-  -Wno-unused-local-typedefs \
++  -Wno-missing-field-initializers \
+   -Wno-unused-parameter
+ libname = libldm-1.0.la
+--- libldm-0.2.3/src/mbr.c.orig        2012-07-23 17:47:49.000000000 +0200
++++ libldm-0.2.3/src/mbr.c     2013-01-07 19:20:16.992494554 +0100
+@@ -47,13 +47,13 @@
+ {
+     struct _mbr _mbr;
+-    size_t read = 0;
+-    while (read < sizeof(_mbr)) {
+-        ssize_t in = pread(fd, &_mbr + read, sizeof(struct _mbr) - read, read);
++    size_t nread = 0;
++    while (nread < sizeof(_mbr)) {
++        ssize_t in = pread(fd, &_mbr + nread, sizeof(struct _mbr) - nread, nread);
+         if (in == 0) return -MBR_ERROR_INVALID;
+         if (in == -1) return -MBR_ERROR_READ;
+-        read += in;
++        nread += in;
+     }
+     if (_mbr.magic[0] != 0x55 || _mbr.magic[1] != 0xAA)
+--- libldm-0.2.3/src/gpt.c.orig        2012-09-20 12:31:03.000000000 +0200
++++ libldm-0.2.3/src/gpt.c     2013-01-07 19:29:04.812483553 +0100
+@@ -82,14 +82,14 @@
+     const off_t gpt_start = secsize;
+     struct _gpt_head head;
+-    size_t read = 0;
+-    while (read < sizeof(head)) {
+-        ssize_t in = pread(fd, &head + read, sizeof(head) - read,
+-                           read + gpt_start);
++    size_t nread = 0;
++    while (nread < sizeof(head)) {
++        ssize_t in = pread(fd, &head + nread, sizeof(head) - nread,
++                           nread + gpt_start);
+         if (in == 0) return -GPT_ERROR_INVALID;
+         if (in == -1) return -GPT_ERROR_READ;
+-        read += in;
++        nread += in;
+     }
+     if (memcmp(head.magic, "EFI PART", 8) != 0) return -GPT_ERROR_INVALID;
+@@ -111,9 +111,9 @@
+     struct _gpt *_gpt = (*h)->gpt;
+     memcpy(_gpt, &head, sizeof(head));
+-    while (read < le32toh(head.size)) {
+-        ssize_t in = pread(fd, (char *)(_gpt) + read, le32toh(head.size) - read,
+-                           read + gpt_start);
++    while (nread < le32toh(head.size)) {
++        ssize_t in = pread(fd, (char *)(_gpt) + nread, le32toh(head.size) - nread,
++                           nread + gpt_start);
+         if (in == 0) {
+             err = -GPT_ERROR_INVALID;
+             goto error;
+@@ -123,7 +123,7 @@
+             goto error;
+         }
+-        read += in;
++        nread += in;
+     }
+     uint32_t header_crc = _gpt->header_crc;
+@@ -151,10 +151,10 @@
+     if ((*h)->pte_array == NULL) abort();
+     const off_t pte_array_start = _gpt->pte_array_start_lba * secsize;
+-    read = 0;
+-    while (read < pte_array_size) {
+-        ssize_t in = pread(fd, (*h)->pte_array + read, pte_array_size - read,
+-                           read + pte_array_start);
++    nread = 0;
++    while (nread < pte_array_size) {
++        ssize_t in = pread(fd, (*h)->pte_array + nread, pte_array_size - nread,
++                           nread + pte_array_start);
+         if (in == 0) {
+             err = -GPT_ERROR_INVALID;
+             goto error;
+@@ -164,7 +164,7 @@
+             goto error;
+         }
+-        read += in;
++        nread += in;
+     }
+     crc = crc32(0L, Z_NULL, 0);
+--- libldm-0.2.3/src/ldm.c.orig        2012-09-21 12:21:17.000000000 +0200
++++ libldm-0.2.3/src/ldm.c     2013-01-07 19:31:35.259147085 +0100
+@@ -1170,15 +1170,15 @@
+              void ** const config, GError ** const err)
+ {
+     /* Sanity check ldm_config_start and ldm_config_size */
+-    struct stat stat;
+-    if (fstat(fd, &stat) == -1) {
++    struct stat sstat;
++    if (fstat(fd, &sstat) == -1) {
+         g_set_error(err, LDM_ERROR, LDM_ERROR_IO,
+                     "Unable to stat %s: %m", path);
+         return FALSE;
+     }
+-    uint64_t size = stat.st_size;
+-    if (S_ISBLK(stat.st_mode)) {
++    uint64_t size = sstat.st_size;
++    if (S_ISBLK(sstat.st_mode)) {
+         if (ioctl(fd, BLKGETSIZE64, &size) == -1) {
+             g_set_error(err, LDM_ERROR, LDM_ERROR_IO,
+                         "Unable to get block device size for %s: %m", path);
+@@ -1205,10 +1205,10 @@
+     }
+     *config = g_malloc(config_size);
+-    size_t read = 0;
+-    while (read < config_size) {
+-        ssize_t in = pread(fd, *config + read, config_size - read,
+-                           config_start + read);
++    size_t nread = 0;
++    while (nread < config_size) {
++        ssize_t in = pread(fd, *config + nread, config_size - nread,
++                           config_start + nread);
+         if (in == 0) {
+             g_set_error(err, LDM_ERROR, LDM_ERROR_INVALID,
+                         "%s contains invalid LDM metadata", path);
+@@ -1221,7 +1221,7 @@
+             goto error;
+         }
+-        read += in;
++        nread += in;
+     }
+     return TRUE;
+@@ -1236,11 +1236,11 @@
+                    const uint64_t ph_start,
+                    struct _privhead * const privhead, GError **err)
+ {
+-    size_t read = 0;
+-    while (read < sizeof(*privhead)) {
+-        ssize_t in = pread(fd, (char *) privhead + read,
+-                           sizeof(*privhead) - read,
+-                           ph_start + read);
++    size_t nread = 0;
++    while (nread < sizeof(*privhead)) {
++        ssize_t in = pread(fd, (char *) privhead + nread,
++                           sizeof(*privhead) - nread,
++                           ph_start + nread);
+         if (in == 0) {
+             g_set_error(err, LDM_ERROR, LDM_ERROR_INVALID,
+                         "%s contains invalid LDM metadata", path);
+@@ -1253,7 +1253,7 @@
+             return FALSE;
+         }
+-        read += in;
++        nread += in;
+     }
+     if (memcmp(privhead->magic, "PRIVHEAD", 8) != 0) {
diff --git a/libldm.spec b/libldm.spec
new file mode 100644 (file)
index 0000000..fcdbc4f
--- /dev/null
@@ -0,0 +1,147 @@
+#
+# Conditional build:
+%bcond_without apidocs         # do not build and package API docs
+%bcond_without static_libs     # don't build static libraries
+#
+Summary:       A tool to manage Windows dynamic disks
+Summary(pl.UTF-8):     Narzędzie do zarządzania dynamicznymi dyskami Windows
+Name:          libldm
+Version:       0.2.3
+Release:       1
+License:       LGPL v3+ (libldm), GPL v3+ (ldmtool)
+Group:         Libraries
+Source0:       https://github.com/mdbooth/libldm/downloads/%{name}-%{version}.tar.gz
+# Source0-md5: a7771c0a0f84dab6d7ce6a565ede4229
+Patch0:                %{name}-warnings.patch
+URL:           https://github.com/mdbooth/libldm/
+BuildRequires: autoconf >= 2.68
+BuildRequires: automake >= 1.6
+BuildRequires: device-mapper-devel >= 1.0
+BuildRequires: glib2-devel >= 1:2.32.0
+BuildRequires: gtk-doc >= 1.14
+BuildRequires: json-glib-devel >= 0.14.0
+BuildRequires: libtool >= 2:2
+BuildRequires: libuuid-devel >= 2.21.0
+BuildRequires: libxslt-progs
+BuildRequires: pkgconfig
+BuildRequires: readline-devel
+BuildRequires: zlib-devel >= 1.2.5
+Requires:      device-mapper >= 1.0
+Requires:      glib2 >= 1:2.32.0
+Requires:      json-glib >= 0.14.0
+Requires:      libuuid >= 2.21.0
+Requires:      zlib >= 1.2.5
+BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+
+%description
+libldm is a library for managing Microsoft Windows dynamic disks,
+which use Microsoft's LDM metadata. It can inspect them, and also
+create and remove device-mapper block devices which can be mounted. It
+includes ldmtool, which exposes this functionality as a command-line
+tool.
+
+%description -l pl.UTF-8
+libldm to biblioteka do zarządzania dyskami dynamicznymi Microsoft
+Windows, wykorzystującymi metadane Microsoft LDM. Biblioteka potrafi
+odczytywać informacje o nich, a także tworzyć i usuwać urządzenia
+blokowe device-mappera, które następnie można zamontować. Pakiet
+zawiera także program ldmtool, udostępniający funkcjonalność
+biblioteki w postaci narzędzia linii poleceń.
+
+%package devel
+Summary:       Header files for libldm library
+Summary(pl.UTF-8):     Pliki nagłówkowe biblioteki libldm
+Group:         Development/Libraries
+Requires:      %{name} = %{version}-%{release}
+Requires:      device-mapper-devel >= 1.0
+Requires:      glib2-devel >= 1:2.32.0
+Requires:      json-glib-devel >= 0.14.0
+Requires:      libuuid-devel >= 2.21.0
+Requires:      zlib-devel >= 1.2.5
+
+%description devel
+Header files for libldm library.
+
+%description devel -l pl.UTF-8
+Pliki nagłówkowe biblioteki libldm.
+
+%package static
+Summary:       Static libldm library
+Summary(pl.UTF-8):     Statyczna biblioteka libldm
+Group:         Development/Libraries
+Requires:      %{name}-devel = %{version}-%{release}
+
+%description static
+Static libldm library.
+
+%description static -l pl.UTF-8
+Statyczna biblioteka libldm.
+
+%package apidocs
+Summary:       libldm API documentation
+Summary(pl.UTF-8):     Dokumentacja API biblioteki libldm
+Group:         Documentation
+Requires:      gtk-doc-common
+
+%description apidocs
+API documentation for libldm library.
+
+%description apidocs -l pl.UTF-8
+Dokumentacja API biblioteki libldm.
+
+%prep
+%setup -q
+%patch0 -p1
+
+%build
+%{__libtoolize}
+%{__aclocal} -I m4
+%{__autoconf}
+%{__autoheader}
+%{__automake}
+%configure \
+       %{?with_apidocs:--enable-gtk-doc} \
+       --disable-silent-rules \
+       %{!?with_static_libs:--disable-static} \
+       --with-html-dir=%{_gtkdocdir}
+%{__make}
+
+%install
+rm -rf $RPM_BUILD_ROOT
+
+%{__make} install \
+       DESTDIR=$RPM_BUILD_ROOT
+
+# obsoleted by pkg-config
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/libldm-1.0.la
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%post  -p /sbin/ldconfig
+%postun        -p /sbin/ldconfig
+
+%files
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/ldmtool
+%attr(755,root,root) %{_libdir}/libldm-1.0.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libldm-1.0.so.0
+%{_mandir}/man1/ldmtool.1*
+
+%files devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libldm-1.0.so
+%{_includedir}/ldm.h
+%{_pkgconfigdir}/ldm-1.0.pc
+
+%if %{with static_libs}
+%files static
+%defattr(644,root,root,755)
+%{_libdir}/libldm-1.0.a
+%endif
+
+%if %{with apidocs}
+%files apidocs
+%defattr(644,root,root,755)
+%{_gtkdocdir}/libldm
+%endif
This page took 0.179036 seconds and 4 git commands to generate.