meebey / smuxi

Smuxi is an user-friendly and free IRC client for Linux, Windows and Mac OS X based on GNOME / GTK+
https://smuxi.im/
GNU General Public License v2.0
171 stars 46 forks source link

autogen.sh: prefer shallow git submodules if parent is shallow #252

Open knocte opened 7 years ago

knocte commented 7 years ago

The most likely scenario for someone to use a shallow clone is to save some bandwidth (especially useful for slow or data-capped connections), so it makes sense to assume that the submodules should be retreived in a similar way (especially considering some submodules that Smuxi depends on are quite heavy, possibly due to inclusion of binaries).

meebey commented 7 years ago

Since this build flavor isn't covered in the CI, does this really build? smuxi has a submodule lib/SmartIrc4net and that has a submodule src/starksoftproxy so depth would be 2 instead of 1

knocte commented 7 years ago

so depth would be 2 instead of 1

Mmm, depth is not the submodule nesting depth but the amount of commits back in history you want to retreive. But anyway, true, I see that the submodule population is somehow not working:

...
Cloning into 'lib/JabbR'...
remote: Counting objects: 1116, done.
remote: Compressing objects: 100% (1037/1037), done.
remote: Total 1116 (delta 134), reused 828 (delta 64), pack-reused 0
Receiving objects: 100% (1116/1116), 4.88 MiB | 86.00 KiB/s, done.
Resolving deltas: 100% (134/134), done.
Checking connectivity... done.
fatal: reference is not a tree: 6ace3bdc9c43ca0b9e71bd57a6e553525fb498df
Cloning into 'lib/Newtonsoft.Json'...
remote: Counting objects: 800, done.
remote: Compressing objects: 100% (645/645), done.
remote: Total 800 (delta 379), reused 304 (delta 151), pack-reused 0
Receiving objects: 100% (800/800), 2.45 MiB | 74.00 KiB/s, done.
Resolving deltas: 100% (379/379), done.
Checking connectivity... done.
fatal: reference is not a tree: 0ad15d4a2e2e058140c6540bf63162e81bcdaa83
Cloning into 'lib/ServiceStack'...
remote: Counting objects: 1739, done.
remote: Compressing objects: 100% (1453/1453), done.
remote: Total 1739 (delta 360), reused 863 (delta 230), pack-reused 0
Receiving objects: 100% (1739/1739), 7.39 MiB | 83.00 KiB/s, done.
Resolving deltas: 100% (360/360), done.
Checking connectivity... done.
fatal: reference is not a tree: 163b6df6ca943ec6eb71f8a2b1151d31b062e016
Cloning into 'lib/ServiceStack.Text'...
remote: Counting objects: 230, done.
remote: Compressing objects: 100% (216/216), done.
remote: Total 230 (delta 18), reused 133 (delta 4), pack-reused 0
Receiving objects: 100% (230/230), 1.57 MiB | 91.00 KiB/s, done.
Resolving deltas: 100% (18/18), done.
Checking connectivity... done.
Submodule path 'lib/ServiceStack.Text': checked out '192e7bfea94880f9684d673838806a95f2d7aa7f'
Cloning into 'lib/SignalR'...
remote: Counting objects: 1195, done.
remote: Compressing objects: 100% (1041/1041), done.
remote: Total 1195 (delta 290), reused 516 (delta 107), pack-reused 0
Receiving objects: 100% (1195/1195), 9.75 MiB | 50.00 KiB/s, done.
Resolving deltas: 100% (290/290), done.
Checking connectivity... done.
fatal: reference is not a tree: d3cbe5e22f04eecd170f6f446dceb9555d238a0b
Cloning into 'lib/SmartIrc4net'...
remote: Counting objects: 112, done.
remote: Compressing objects: 100% (104/104), done.
remote: Total 112 (delta 24), reused 58 (delta 5), pack-reused 0
Receiving objects: 100% (112/112), 120.22 KiB | 143.00 KiB/s, done.
Resolving deltas: 100% (24/24), done.
Checking connectivity... done.
fatal: reference is not a tree: 28caf8030f867eb88e7cfa88fb8b4d697c6bca85
Cloning into 'lib/StarkSoftProxy'...
remote: Counting objects: 15, done.
remote: Compressing objects: 100% (13/13), done.
remote: Total 15 (delta 5), reused 7 (delta 1), pack-reused 0
Unpacking objects: 100% (15/15), done.
Checking connectivity... done.
Submodule path 'lib/StarkSoftProxy': checked out 'd03786d2da5c5a669aa7e4f4b1954b6d87a39566'
Cloning into 'lib/Twitterizer'...
remote: Counting objects: 542, done.
remote: Compressing objects: 100% (348/348), done.
remote: Total 542 (delta 280), reused 367 (delta 180), pack-reused 0
Receiving objects: 100% (542/542), 14.73 MiB | 87.00 KiB/s, done.
Resolving deltas: 100% (280/280), done.
Checking connectivity... done.
fatal: reference is not a tree: 8a9bed311b8abf890c2e2aa06f04f93f95952013
Cloning into 'lib/agsxmpp'...
remote: Counting objects: 776, done.
remote: Compressing objects: 100% (705/705), done.
remote: Total 776 (delta 331), reused 332 (delta 53), pack-reused 0
Receiving objects: 100% (776/776), 1.38 MiB | 66.00 KiB/s, done.
Resolving deltas: 100% (331/331), done.
Checking connectivity... done.
Submodule path 'lib/agsxmpp': checked out '4ac3f5f720d9b95bad06777f7397c65aeddfdbf3'
Submodule 'agsxmpp/starksoftproxy' (git://github.com/meebey/starksoftproxy.git) registered for path 'agsxmpp/starksoftproxy'
Cloning into 'agsxmpp/starksoftproxy'...
remote: Counting objects: 15, done.
remote: Compressing objects: 100% (13/13), done.
remote: Total 15 (delta 5), reused 7 (delta 1), pack-reused 0
Receiving objects: 100% (15/15), 21.27 KiB | 0 bytes/s, done.
Resolving deltas: 100% (5/5), done.
Checking connectivity... done.
fatal: reference is not a tree: c24aac04dc29eb6d93f8b642a9ce9de7b24c61fe
Unable to checkout 'c24aac04dc29eb6d93f8b642a9ce9de7b24c61fe' in submodule path 'lib/agsxmpp/agsxmpp/starksoftproxy'
Cloning into 'lib/db4o-net'...
remote: Counting objects: 3924, done.
remote: Compressing objects: 100% (3399/3399), done.
remote: Total 3924 (delta 812), reused 1978 (delta 423), pack-reused 0
Receiving objects: 100% (3924/3924), 4.27 MiB | 73.00 KiB/s, done.
Resolving deltas: 100% (812/812), done.
Checking connectivity... done.
Submodule path 'lib/db4o-net': checked out '5a00fe5644c2847763f54e6d99e5ea69a4df8515'
Cloning into 'lib/messagingmenu-sharp'...
remote: Counting objects: 15, done.
remote: Compressing objects: 100% (13/13), done.
remote: Total 15 (delta 0), reused 11 (delta 0), pack-reused 0
Unpacking objects: 100% (15/15), done.
Checking connectivity... done.
Submodule path 'lib/messagingmenu-sharp': checked out 'ecc259779a0492c24d0c8dcf3b71cc7959de14b4'
Unable to checkout '6ace3bdc9c43ca0b9e71bd57a6e553525fb498df' in submodule path 'lib/JabbR'
Unable to checkout '0ad15d4a2e2e058140c6540bf63162e81bcdaa83' in submodule path 'lib/Newtonsoft.Json'
Unable to checkout '163b6df6ca943ec6eb71f8a2b1151d31b062e016' in submodule path 'lib/ServiceStack'
Unable to checkout 'd3cbe5e22f04eecd170f6f446dceb9555d238a0b' in submodule path 'lib/SignalR'
Unable to checkout '28caf8030f867eb88e7cfa88fb8b4d697c6bca85' in submodule path 'lib/SmartIrc4net'
Unable to checkout '8a9bed311b8abf890c2e2aa06f04f93f95952013' in submodule path 'lib/Twitterizer'
Failed to recurse into submodule path 'lib/agsxmpp'

But the one that failed is agsxmpp, not SmartIrc4net :-m

knocte commented 7 years ago

If I try again, I get:

Running autoconf ...
fatal: reference is not a tree: 6ace3bdc9c43ca0b9e71bd57a6e553525fb498df
fatal: reference is not a tree: 0ad15d4a2e2e058140c6540bf63162e81bcdaa83
fatal: reference is not a tree: 163b6df6ca943ec6eb71f8a2b1151d31b062e016
fatal: reference is not a tree: d3cbe5e22f04eecd170f6f446dceb9555d238a0b
fatal: reference is not a tree: 28caf8030f867eb88e7cfa88fb8b4d697c6bca85
fatal: reference is not a tree: 8a9bed311b8abf890c2e2aa06f04f93f95952013
fatal: reference is not a tree: c24aac04dc29eb6d93f8b642a9ce9de7b24c61fe
Unable to checkout 'c24aac04dc29eb6d93f8b642a9ce9de7b24c61fe' in submodule path 'lib/agsxmpp/agsxmpp/starksoftproxy'
Unable to checkout '6ace3bdc9c43ca0b9e71bd57a6e553525fb498df' in submodule path 'lib/JabbR'
Unable to checkout '0ad15d4a2e2e058140c6540bf63162e81bcdaa83' in submodule path 'lib/Newtonsoft.Json'
Unable to checkout '163b6df6ca943ec6eb71f8a2b1151d31b062e016' in submodule path 'lib/ServiceStack'
Unable to checkout 'd3cbe5e22f04eecd170f6f446dceb9555d238a0b' in submodule path 'lib/SignalR'
Unable to checkout '28caf8030f867eb88e7cfa88fb8b4d697c6bca85' in submodule path 'lib/SmartIrc4net'
Unable to checkout '8a9bed311b8abf890c2e2aa06f04f93f95952013' in submodule path 'lib/Twitterizer'
Failed to recurse into submodule path 'lib/agsxmpp'

I've read about this error, and it seems it's because the repositories of the submodules are not pointing to the last HEAD (which is normal), and git > 2.8 might have better support for this (unfortunately this version is too bleeding edge for most distros I guess, since the last ubuntu LTS bundles 2.7.4).

I guess we can wait a bit until we can merge this then.