Skip to content

Commit

Permalink
AboutPage: Added tool to scan flatpak for dependencies and get their …
Browse files Browse the repository at this point in the history
…homepage

Signed-off-by: Adrian Suciu <[email protected]>
  • Loading branch information
adisuciu committed Nov 27, 2020
1 parent cd3f215 commit 14c1726
Show file tree
Hide file tree
Showing 3 changed files with 127 additions and 0 deletions.
11 changes: 11 additions & 0 deletions tools/README
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
The script assumes that the flatpak is uncompressed/opened like this (on linux)

ostree init --repo=repo --mode=bare-user
ostree static-delta apply-offline --repo=repo scopy.flatpak
ostree checkout --repo=repo -U $(basename $(echo repo/objects/*/*.commit | cut -d/ -f3- --output-delimiter= ) .commit) outdir

then run the attached shell script (table.sh) which pokes ubuntu/debian sites to find the home pages of projects.
This will create the attached html file in a couple minutes (5 or so)…
(then you only need to fix things that are missing from upstream).


65 changes: 65 additions & 0 deletions tools/flatpak-licenses.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
<table>
fail with _dbus_bindings.so
<tr><td>_dbus_bindings.so</td><td>not unstream</td></tr>
fail with _dbus_glib_bindings.so
<tr><td>_dbus_glib_bindings.so</td><td>not unstream</td></tr>
<tr><td>libad9361.so.0</td><td><a href="https://github.com/analogdevicesinc/libad9361-iio">Homepage</a> [github.com]</td></tr>
<tr><td>libavahi-client.so.3.2.9</td><td><a href="http://avahi.org/">Homepage</a> [avahi.org]</td></tr>
<tr><td>libavahi-common.so.3.5.3</td><td><a href="http://avahi.org/">Homepage</a> [avahi.org]</td></tr>
<tr><td>libavahi-core.so.7.0.2</td><td><a href="http://avahi.org/">Homepage</a> [avahi.org]</td></tr>
<tr><td>libavahi-glib.so.1.0.2</td><td><a href="http://avahi.org/">Homepage</a> [avahi.org]</td></tr>
<tr><td>libavahi-gobject.so.0.0</td><td><a href="http://avahi.org/">Homepage</a> [avahi.org]</td></tr>
<tr><td>libboost_atomic.so.1</td><td><a href="http://www.boost.org/libs/atomic/">Homepage</a> [www.boost.org]</td></tr>
<tr><td>libboost_chrono.so.1</td><td><a href="http://www.boost.org/libs/chrono/">Homepage</a> [www.boost.org]</td></tr>
<tr><td>libboost_date_time.so.1</td><td><a href="http://www.boost.org/libs/date_time/">Homepage</a> [www.boost.org]</td></tr>
<tr><td>libboost_filesystem.so.1</td><td><a href="http://boost.org/libs/filesystem/">Homepage</a> [boost.org]</td></tr>
<tr><td>libboost_prg_exec_monitor.so.1</td><td><a href="http://www.boost.org/libs/test/">Homepage</a> [www.boost.org]</td></tr>
<tr><td>libboost_program_options.so.1</td><td><a href="http://www.boost.org/libs/program_options/">Homepage</a> [www.boost.org]</td></tr>
<tr><td>libboost_regex.so.1</td><td><a href="http://www.boost.org/libs/regex/">Homepage</a> [www.boost.org]</td></tr>
<tr><td>libboost_system.so.1</td><td><a href="http://www.boost.org/libs/system/">Homepage</a> [www.boost.org]</td></tr>
<tr><td>libboost_thread.so.1</td><td><a href="http://www.boost.org/libs/thread/">Homepage</a> [www.boost.org]</td></tr>
<tr><td>libboost_timer.so.1</td><td><a href="http://www.boost.org/libs/timer/">Homepage</a> [www.boost.org]</td></tr>
<tr><td>libboost_unit_test_framework.so.1</td><td><a href="http://www.boost.org/libs/test/">Homepage</a> [www.boost.org]</td></tr>
<tr><td>libdbus-glib-1.so.2.3</td><td><a href="http://www.freedesktop.org/wiki/Software/DBusBindings">Homepage</a> [www.freedesktop.org]</td></tr>
<tr><td>libdns_sd.so.1.0.0</td><td><a href="http://avahi.org/">Homepage</a> [avahi.org]</td></tr>
<tr><td>libfftw3f.so.3</td><td><a href="http://fftw.org">Homepage</a> [fftw.org]</td></tr>
<tr><td>libfftw3f_threads.so.3</td><td><a href="http://fftw.org">Homepage</a> [fftw.org]</td></tr>
<tr><td>libgio-2.0.so.0</td><td><a href="http://www.gtk.org/">Homepage</a> [www.gtk.org]</td></tr>
<tr><td>libgiomm-2.4.so.1.3.0</td><td><a href="http://www.gtkmm.org/">Homepage</a> [www.gtkmm.org]</td></tr>
<tr><td>libglib-2.0.so.0</td><td><a href="http://www.gtk.org/">Homepage</a> [www.gtk.org]</td></tr>
<tr><td>libglibmm-2.4.so.1.3.0</td><td><a href="http://www.gtkmm.org/">Homepage</a> [www.gtkmm.org]</td></tr>
<tr><td>libglibmm_generate_extra_defs-2.4.so.1.3.0</td><td><a href="http://www.gtkmm.org/">Homepage</a> [www.gtkmm.org]</td></tr>
<tr><td>libgmodule-2.0.so.0</td><td><a href="http://www.gtk.org/">Homepage</a> [www.gtk.org]</td></tr>
<tr><td>libgmp.so.10</td><td><a href="http://gmplib.org/">Homepage</a> [gmplib.org]</td></tr>
<tr><td>libgmpxx.so.4</td><td><a href="http://gmplib.org/">Homepage</a> [gmplib.org]</td></tr>
<tr><td>libgnuradio-analog.so.3</td><td><a href="http://gnuradio.org/">Homepage</a> [gnuradio.org]</td></tr>
<tr><td>libgnuradio-blocks.so.3</td><td><a href="http://gnuradio.org/">Homepage</a> [gnuradio.org]</td></tr>
<tr><td>libgnuradio-fft.so.3</td><td><a href="http://gnuradio.org/">Homepage</a> [gnuradio.org]</td></tr>
<tr><td>libgnuradio-filter.so.3</td><td><a href="http://gnuradio.org/">Homepage</a> [gnuradio.org]</td></tr>
fail with libgnuradio-iio.so
<tr><td>libgnuradio-iio.so</td><td>not unstream</td></tr>
fail with libgnuradio-m2k.so
<tr><td>libgnuradio-m2k.so</td><td>not unstream</td></tr>
<tr><td>libgnuradio-pmt.so.3</td><td><a href="http://gnuradio.org/">Homepage</a> [gnuradio.org]</td></tr>
<tr><td>libgnuradio-runtime.so.3</td><td><a href="http://gnuradio.org/">Homepage</a> [gnuradio.org]</td></tr>
fail with libgnuradio-scopy.so
<tr><td>libgnuradio-scopy.so</td><td>not unstream</td></tr>
<tr><td>libgobject-2.0.so.0</td><td><a href="http://www.gtk.org/">Homepage</a> [www.gtk.org]</td></tr>
<tr><td>libiio.so.0</td><td><a href="https://github.com/analogdevicesinc/libiio">Homepage</a> [github.com]</td></tr>
<tr><td>liblog4cpp.so.5.0</td><td><a href="http://log4cpp.sourceforge.net">Homepage</a> [log4cpp.sourceforge.net]</td></tr>
fail with libm2k.so
<tr><td>libm2k.so</td><td>not unstream</td></tr>
<tr><td>libmatio.so</td><td><a href="http://sourceforge.net/projects/matio">Homepage</a> [sourceforge.net]</td></tr>
<tr><td>liborc-0.4.so.0</td><td><a href="http://code.entropywave.com/projects/orc/">Homepage</a> [code.entropywave.com]</td></tr>
<tr><td>liborc-test-0.4.so.0</td><td><a href="http://code.entropywave.com/projects/orc/">Homepage</a> [code.entropywave.com]</td></tr>
<tr><td>libqwtmathml.so.6</td><td><a href="http://qwt.sourceforge.net">Homepage</a> [qwt.sourceforge.net]</td></tr>
fail with libqwtpolar.so
<tr><td>libqwtpolar.so</td><td>not unstream</td></tr>
<tr><td>libqwt.so.6</td><td><a href="http://qwt.sourceforge.net">Homepage</a> [qwt.sourceforge.net]</td></tr>
<tr><td>libsigc-2.0.so.0.0.0</td><td>unknown</td></tr>
<tr><td>libsigrokdecode.so</td><td><a href="http://sigrok.org/wiki/Libsigrokdecode">Homepage</a> [sigrok.org]</td></tr>
<tr><td>libusb-1.0.so.0.1.0</td><td><a href="http://www.libusb.info">Homepage</a> [www.libusb.info]</td></tr>
<tr><td>libvolk.so</td><td><a href="http://libvolk.org">Homepage</a> [libvolk.org]</td></tr>
<tr><td>libxml2.so.2.9</td><td><a href="http://xmlsoft.org/">Homepage</a> [xmlsoft.org]</td></tr>
<tr><td>libzip.so.4.0.0</td><td><a href="http://www.nih.at/libzip/">Homepage</a> [www.nih.at]</td></tr>
</table>
51 changes: 51 additions & 0 deletions tools/flatpak_deps_licenses.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
#!/bin/sh
#set -x

echo "<table>"
for f in $(find ./outdir -name "*.so*" -type f | awk -F/ '{print $NF}' | sed -e 's/\.debug//g' | sort | uniq) ; do
name=$(basename $f)
loop=1
while [ ${loop} -eq 1 ] ; do
# echo looking for $name
attempt=1
while [ ${attempt} -le 5 ] ; do
wget -o test.url -O test "https://packages.ubuntu.com/search?suite=xenial&arch=amd64&mode=filename&searchon=contents&keywords=${name}"
if [ $(cat test | wc -l) -ne 0 ] ; then
break
fi
sleep 1
attempt=$(expr $attempt + 1)
done
url=$(sed '/<\/table>/Q' test | sed -n '/<table>/,$p' | \
sed '/^[[:space:]]*$/d' | grep -v \<th\> | \
grep href | sort | uniq -c | head -1 | \
sed -e 's/^.*href=\"//' -e 's/\".*$//')
# echo found $url
if [ $(echo -n $url | wc -c) -eq 0 ] ; then
# echo trying again
if [ "${name}" = "$(echo ${name} | sed -e 's/\.[0-9]*$//')" ] ; then
echo fail with ${name}
break
else
name=$(echo $name | sed -e 's/\.[0-9]*$//')
fi
else
# echo found
break
fi
done

if [ $(echo -n $url | wc -c) -eq 0 ] ; then
home="not unstream"
else
wget -o /dev/null -O test "https://packages.ubuntu.com/${url}"
home=$(grep Homepage test | grep \<li\> | sed -e 's:<li>::' -e 's:<\/li>::')
fi
if [ $(echo -n $home | wc -c) -eq 0 ] ; then
home="unknown"
fi

echo "<tr><td>$name</td><td>$home</td></tr>"
done

echo "</table>"

0 comments on commit 14c1726

Please sign in to comment.