Hello community,

here is the log from the commit of package lxd for openSUSE:Factory checked in 
at 2019-09-25 08:45:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/lxd (Old)
 and      /work/SRC/openSUSE:Factory/.lxd.new.7948 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "lxd"

Wed Sep 25 08:45:33 2019 rev:4 rq:732962 version:3.17

Changes:
--------
--- /work/SRC/openSUSE:Factory/lxd/lxd.changes  2019-06-19 21:13:53.194831108 
+0200
+++ /work/SRC/openSUSE:Factory/.lxd.new.7948/lxd.changes        2019-09-25 
08:45:43.118244911 +0200
@@ -1,0 +2,44 @@
+Tue Sep 24 12:31:21 UTC 2019 - Aleksa Sarai <asa...@suse.com>
+
+- Completely drop all stripping -- it appears to cause all sorts of problems
+  with unresolved symbol errors.
+- Update to LXD 3.17. The full upstream changelog is available from:
+  https://discuss.linuxcontainers.org/t/lxd-3-17-has-been-released/5679
+  boo#1151874
+  + Storage pool backed image tarballs and backups
+  + Container configuration as YAML on lxc init and lxc launch
+  * Ported to final Dqlite 1.0
+  * Database rework
+  * Container devices rework
+  * Storage rework
+
+-------------------------------------------------------------------
+Mon Jul 15 06:40:30 UTC 2019 - Aleksa Sarai <asa...@suse.com>
+
+- Update to LXD 3.15. The full upstream changelog is available from:
+  https://discuss.linuxcontainers.org/t/lxd-3-15-has-been-released/5218
+  + Switch to dqlite 1.0.
+  * Reworked DHCP lease handling
+  * Reworked cluster heartbeat handling
+  * Better syscall interception framework
+  * More reliable unix socket proxying
+  + Hardware VLAN and MAC filtering on SR-IOV
+  + New storage-size option for lxd-p2c
+  + IPv4 and IPv6 filtering (spoof protection)
+  * Reworked resources API (host hardware)
+  + Control over uid, gid and cwd during command execution
+  + Quota support for custom storage volumes on dir backend
+  * Lots of bug fixes...
+
+-------------------------------------------------------------------
+Wed Jun 19 07:21:29 UTC 2019 - Aleksa Sarai <asa...@suse.com>
+
+- Update to LXD 3.14. The full upstream changelog is available from:
+  https://discuss.linuxcontainers.org/t/lxd-3-14-has-been-released/5045
+  boo#1138770
+  + Cluster: Re-worked DNS forwarding
+  + Script to factory reset LXD
+  + Improvements to syscall interception
+  * Lots of bug fixes...
+
+-------------------------------------------------------------------
@@ -5 +49 @@
-  binaries on Leap 15.1.
+  binaries on Leap 15.1. boo#1138769

Old:
----
  lxd-3.13.tar.gz
  lxd-3.13.tar.gz.asc

New:
----
  lxd-3.17.tar.gz
  lxd-3.17.tar.gz.asc

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ lxd.spec ++++++
--- /var/tmp/diff_new_pack.xWVVbN/_old  2019-09-25 08:45:45.826244550 +0200
+++ /var/tmp/diff_new_pack.xWVVbN/_new  2019-09-25 08:45:45.834244549 +0200
@@ -23,7 +23,7 @@
 %define import_path github.com/lxc/lxd
 
 Name:           lxd
-Version:        3.13
+Version:        3.17
 Release:        0
 Summary:        Container hypervisor based on LXC
 License:        Apache-2.0
@@ -86,52 +86,92 @@
 
 %prep
 %setup -q
-# Move dist/src (which is LXD's variant of vendoring) to vendor/.
-mv -v dist/src vendor
+
+# If there is a vendor/ move it to _dist/src/.
+if [ -d vendor ]
+then
+       cp -at _dist/src vendor/*
+       rm -rf vendor/
+fi
+# Move _dist/src (which is LXD's variant of vendoring) to vendor/.
+mv -v _dist/src vendor
 
 %build
 # Make sure any leftover go build caches are gone.
 go clean -cache
 
+# Keep track of the current set of paths needed to generate the include-related
+# variables for later stages.
+declare -a CURRENT_DEPLIST
+
 # Set up GOPATH.
 export GOPATH="$PWD/.gopath"
 export PKGDIR="$GOPATH/src/%{import_path}"
 mkdir -p "$PKGDIR"
 cp -a * "$PKGDIR"
 
-# First we need to build the sqlite fork and dqlite. We build them as static
-# libs because they are only ever going to be used for LXD, and so it makes no
-# sense to go through the pain of packaging them properly (hopefully the code
-# will one day be merged into upstream sqlite).
+# First we need to build the sqlite fork and dqlite. We need to build them
+# dynamically (to avoid binary bloat), but we also then need to mess with
+# patchelf to stop us from breaking openSUSE packaging.
 export CFLAGS="%{optflags} -fPIC -DPIC"
 
+# We have a temporary-install directory which contains our pkg-configs.
+export PKG_CONFIG_SYSROOT_DIR="$PKGDIR/.install"
+export 
PKG_CONFIG_PATH="$PKG_CONFIG_SYSROOT_DIR/%{_libdir}/%{name}/pkgconfig:$PKG_CONFIG_SYSROOT_DIR/%{_datadir}/pkgconfig"
+
 # SQLite
-pushd "$PKGDIR/dist/sqlite"
+pushd "$PKGDIR/_dist/deps/sqlite"
 autoreconf -fiv
 %configure \
        --libdir="%{_libdir}/%{name}" \
        --disable-static \
        --enable-replication \
-       --disable-tcl \
+       --disable-tcl
 make clean
 make %{?_smp_mflags}
+make DESTDIR="$PKGDIR/.install" install
+# Add sqlite to dependency list.
+CURRENT_DEPLIST+=("$PWD")
+popd
+
+# libco
+pushd "$PKGDIR/_dist/deps/libco"
+make \
+       CFLAGS="$CFLAGS" \
+       PREFIX="" \
+       INCLUDEDIR="%{_includedir}" \
+       LIBDIR="%{_libdir}/%{name}" \
+       DESTDIR="$PKGDIR/.install" \
+       all install
+# Add libco to dependency list.
+CURRENT_DEPLIST+=("$PWD")
+popd
+
+# raft
+pushd "$PKGDIR/_dist/deps/raft"
+autoreconf -fiv
+%configure \
+       --libdir="%{_libdir}/%{name}" \
+       --disable-static
+make %{?_smp_mflags}
+make DESTDIR="$PKGDIR/.install" install
+# Add raft to dependency list.
+CURRENT_DEPLIST+=("$PWD")
 popd
 
 # dqlite
-pushd "$PKGDIR/dist/dqlite"
+pushd "$PKGDIR/_dist/deps/dqlite"
 (
-# We need to make sure *our* sqlite build is used.
-export PKG_CONFIG_PATH="$PWD/../sqlite/"
-export CPPFLAGS="-I$PWD/../sqlite/"
-export LDFLAGS="-L$PWD/../sqlite/.libs/"
-
 autoreconf -fiv
 %configure \
        --libdir="%{_libdir}/%{name}" \
        --disable-static
 make clean
 make %{?_smp_mflags}
+make DESTDIR="$PKGDIR/.install" install
 )
+# Add raft to dependency list.
+CURRENT_DEPLIST+=("$PWD")
 popd
 
 # Find all of the main packages using go-list.
@@ -149,17 +189,16 @@
                # We need to link against sqlite and dqlite only when dealing 
with lxd proper.
                [ "$binary" == "lxd" ] && export \
                        BUILDTAGS="libsqlite3" \
-                       CGO_CFLAGS="%{optflags} -I$PKGDIR/dist/sqlite/ 
-I$PKGDIR/dist/dqlite/include/" \
-                       CGO_LDFLAGS="-L$PKGDIR/dist/sqlite/.libs/ 
-L$PKGDIR/dist/dqlite/.libs/" \
-                       
PKG_CONFIG_PATH="$PKGDIR/dist/sqlite:$PKGDIR/dist/dqlite" ||:
+                       CGO_CFLAGS="-I $PKGDIR/.install/%{_includedir}" \
+                       CGO_LDFLAGS="-L $PKGDIR/.install/%{_libdir}/%{name}" ||:
                go build -buildmode=pie -tags "$BUILDTAGS" -o "bin/$binary" 
"$mainpkg"
        )
 done
 
 # This part is quite ugly, so I apologise upfront.
 #
-# We want to have our dist/* libraries be dylibs so that we don't bloat our lxd
-# binary. Unfortunately, we are presented with a few challenges:
+# We want to have our _dist/deps/* libraries be dylibs so that we don't bloat
+# our lxd binary. Unfortunately, we are presented with a few challenges:
 #
 #  * Doing this naively (put it in {_libdir}) results in sqlite3 package
 #    conflicts -- and we aren't going to maintain sqlite3 for all of openSUSE
@@ -173,30 +212,58 @@
 #
 # So, the only reasonable choice left is to use absolute paths as DT_NEEDED
 # entries -- which bypasses the need for RUNPATH and allows us to set garbage
-# sonames for our dist/* libraries. Absolute paths for DT_NEEDED is *slightly*
-# undefined behaviour, but glibc has had this behaviour for a very long time --
-# and others have considered using it in a similar manner[1].
+# sonames for our _dist/deps/* libraries. Absolute paths for DT_NEEDED is
+# *slightly* undefined behaviour, but glibc has had this behaviour for a very
+# long time -- and others have considered using it in a similar manner[1].
 #
 # What F U N.
 #
 # [1]: https://github.com/NixOS/nixpkgs/issues/24844
 
-# Give our libraries unrecognisable DT_SONAME entries.
-patchelf --set-soname '._LXD_INTERNAL-libsqlite3.so.0' 
"$PKGDIR/dist/sqlite/.libs/libsqlite3.so.0"
-patchelf --set-soname '._LXD_INTERNAL-libdqlite.so.0' 
"$PKGDIR/dist/dqlite/.libs/libdqlite.so.0"
-
-# Switch to absolute DT_NEEDED for the lxd binary.
-patchelf --remove-rpath bin/lxd
-patchelf --replace-needed {,%{_libdir}/%{name}/}'libsqlite3.so.0' bin/lxd
-patchelf --replace-needed {,%{_libdir}/%{name}/}'libdqlite.so.0'  bin/lxd
-# Just to be sure, fix libdqlite.so as well.
-patchelf --remove-rpath "$PKGDIR/dist/dqlite/.libs/libdqlite.so"
-patchelf --replace-needed {,%{_libdir}/%{name}/}'libsqlite3.so.0' 
"$PKGDIR/dist/dqlite/.libs/libdqlite.so"
+(
+       # A simple check that lxd isn't broken. We can't do this after patchelf
+       # because we'd need to chroot(2) into {buildroot} which isn't permitted 
due
+       # to user namespaces being blocked inside rpmbuild. boo#1138769
+       export LD_LIBRARY_PATH="$PKGDIR/.install/%{_libdir}/%{name}"
+       ./bin/lxd help >/dev/null
+)
+
+for lib in $PKGDIR/.install/%{_libdir}/%{name}/lib*.so
+do
+       # Strip off last two version digits.
+       name="$(basename "$(readlink "$lib")" | sed -E 's/\.[0-9]+\.[0-9]+$//')"
+       # Give our libraries unrecognisable DT_SONAME entries.
+       patchelf --set-soname "._LXD_INTERNAL-$name" "$lib"
+done
+
+# Switch to absolute DT_NEEDED for all dylibs we have as well as the main LXD
+# binary. We do this for all dylibs to make sure we don't end up with weird
+# chain-loading problems.
+for target in bin/lxd $PKGDIR/.install/%{_libdir}/%{name}/lib*.so
+do
+       # Drop RPATH in case it got included during builds.
+       patchelf --remove-rpath "$target"
+       # And now replace all the possible DT_NEEDEDs to absolute paths.
+       for lib in $PKGDIR/.install/%{_libdir}/%{name}/lib*.so
+       do
+               # Strip off last two version digits.
+               name="$(basename "$(readlink "$lib")" | sed -E 
's/\.[0-9]+\.[0-9]+$//')"
+               patchelf --replace-needed {,%{_libdir}/%{name}/}"$name" 
"$target"
+       done
+done
 
 # Generate man pages.
 mkdir man
 ./bin/lxc manpage man/
 
+pushd bin/
+for bin in *
+do
+       # Ensure that all our binaries are dynamic. boo#1138769
+       file "$bin" | grep 'dynamically linked'
+done
+popd
+
 %install
 export GOPATH="$PWD/.gopath"
 export PKGDIR="$GOPATH/src/%{import_path}"
@@ -204,8 +271,7 @@
 install -d -m 0755 %{buildroot}%{_libdir}/%{name}
 pushd "$PKGDIR"
 # We can't use install because *.so.$n are symlinks.
-cp -avt %{buildroot}%{_libdir}/%{name}/ dist/sqlite/.libs/libsqlite3.so.*
-cp -avt %{buildroot}%{_libdir}/%{name}/ dist/dqlite/.libs/libdqlite.so.*
+cp -avt %{buildroot}%{_libdir}/%{name}/ 
$PKGDIR/.install/%{_libdir}/%{name}/lib*.so.*
 popd
 
 # Install all the binaries.

++++++ lxd-3.13.tar.gz -> lxd-3.17.tar.gz ++++++
/work/SRC/openSUSE:Factory/lxd/lxd-3.13.tar.gz 
/work/SRC/openSUSE:Factory/.lxd.new.7948/lxd-3.17.tar.gz differ: char 5, line 1


Reply via email to