The dfsg source tarball was obtained by combining the upstream
source (solarwolf-1.5.tar.gz) with the source tarball for the
graphics files (solarwolf-gfx-src-1.5.tar.gz).

In theory that is simple to reproduce:

wget https://www.pygame.org/shredwheat/solarwolf/solarwolf-1.5.tar.gz
wget https://www.pygame.org/shredwheat/solarwolf/solarwolf-gfx-src-1.5.tar.gz
tar xfv solarwolf-1.5.tar.gz
tar xfv solarwolf-gfx-src-1.5.tar.gz -D solarwolf-1.5
tar xfv solarwolf-gfx-src-1.5.tar.gz --dir solarwolf-1.5
tar cfvJ solarwolf_1.5+dfsg1.orig.tar.xz solarwolf-1.5
rm -f solarwolf-1.5.tar.gz solarwolf-gfx-src-1.5.tar.gz
rm -rf solarwolf-1.5

Though this version won't be byte-by-byte identical and thus rejected by Debian archive software.
So you either can download the orig archive as it's already in the archive,
eg http://deb.debian.org/debian/pool/main/s/solarwolf/solarwolf_1.5+dfsg1.orig.tar.xz
or, if you feel more crazy, there is a script provided at the bottom of this file that trys to do the trick :)


We don't use a watch file, because it doesn't support merging two upstream tars into one -
technically using deb source 3.0 multiple tarballs would have been the way to go,
but a repack appending a +dfsg1 suffix already has happened.

The suffix could only be changed to another suffix, but not removed,
as solarwolf-1.5 sorts before solarwolf-1.5+dfsg1
and also already was used in a former version of the source package.

Working around this problem in the watchfile has a good potential to create a huge mess -
one would need to use multiple source tarballs and pretend to repack to append the suffix :3
Extra points added for changing the suffix to eg +norepack or +ds,
what would make wonder, which comes after which.


The following script intends to create a byte-by-byte indentical
version of the repacked orig tar ball.
Main problems where timestamps,
random fileorder in the tar ball and a differently sized dictionary used for the lzma2 filter.
Admittedly it's more a demonstration of the problematic than useful in any way and might break in future :)

Versions of tar and xz-utils used for this experiment:
tar 1.34+dfsg-1
xz-utils 5.2.5-2

-------------------8<--------------

#!/bin/bash -e

# if all goes well, this will create
# solarwolf_1.5+dfsg1.orig.tar.xz
# with sha256sum
# 828302972a972f8b0d32ed641e161d2d0922402b011de6463597da6fe931a1f2  solarwolf_1.5+dfsg1.orig.tar.xz

main() {

 rm -f solarwolf_1.5+dfsg1.orig.tar.xz
 wget https://www.pygame.org/shredwheat/solarwolf/solarwolf-1.5.tar.gz
 wget https://www.pygame.org/shredwheat/solarwolf/solarwolf-gfx-src-1.5.tar.gz
 tar xfv solarwolf-1.5.tar.gz
 tar xfv solarwolf-gfx-src-1.5.tar.gz --dir solarwolf-1.5
 TZ=UTC faketime '2019-09-29 13:34:24' fakeroot tar cfv solarwolf_1.5+dfsg1.orig.tar  --no-recursion solarwolf-1.5 \
 --numeric-owner
 fileorder=$(create_file_order_file)
 while read a;\
 do fakeroot tar rfv solarwolf_1.5+dfsg1.orig.tar --no-recursion "$a" \
 --numeric-owner --mtime=./"$a" ;\
 done<"$fileorder"
 rm -f "$fileorder"
 TZ=UTC faketime '2019-09-29 13:34:24' xz solarwolf_1.5+dfsg1.orig.tar --check=crc64 --lzma2=dict=67108864
 rm -f solarwolf-1.5.tar.gz solarwolf-gfx-src-1.5.tar.gz
 rm -rf solarwolf-1.5

}

create_file_order_file() {

 filename=$(mktemp)

 echo "solarwolf-1.5/code/
solarwolf-1.5/code/allmodules.py
solarwolf-1.5/code/game.py
solarwolf-1.5/code/gamecreds.py
solarwolf-1.5/code/gamefinish.py
solarwolf-1.5/code/gamehelp.py
solarwolf-1.5/code/gameinit.py
solarwolf-1.5/code/gamemenu.py
solarwolf-1.5/code/gamename.py
solarwolf-1.5/code/gamenews.py
solarwolf-1.5/code/gamepause.py
solarwolf-1.5/code/gameplay.py
solarwolf-1.5/code/gamepref.py
solarwolf-1.5/code/gamesetup.py
solarwolf-1.5/code/gamestart.py
solarwolf-1.5/code/gamewin.py
solarwolf-1.5/code/gfx.py
solarwolf-1.5/code/hud.py
solarwolf-1.5/code/input.py
solarwolf-1.5/code/levels.py
solarwolf-1.5/code/main.py
solarwolf-1.5/code/mysysfont.py
solarwolf-1.5/code/objasteroid.py
solarwolf-1.5/code/objbox.py
solarwolf-1.5/code/objexplode.py
solarwolf-1.5/code/objguard.py
solarwolf-1.5/code/objpopshot.py
solarwolf-1.5/code/objpowerup.py
solarwolf-1.5/code/objship.py
solarwolf-1.5/code/objshot.py
solarwolf-1.5/code/objsmoke.py
solarwolf-1.5/code/objtele.py
solarwolf-1.5/code/objtext.py
solarwolf-1.5/code/objwarp.py
solarwolf-1.5/code/players.py
solarwolf-1.5/code/score.py
solarwolf-1.5/code/snd.py
solarwolf-1.5/code/stars.py
solarwolf-1.5/code/txt.py
solarwolf-1.5/data/
solarwolf-1.5/data/.xvpics/
solarwolf-1.5/data/.xvpics/bigbox0000.gif
solarwolf-1.5/data/.xvpics/bigbox0001.gif
solarwolf-1.5/data/.xvpics/bigbox0003.gif
solarwolf-1.5/data/.xvpics/bigbox0005.gif
solarwolf-1.5/data/.xvpics/bigbox0007.gif
solarwolf-1.5/data/.xvpics/bullet.gif
solarwolf-1.5/data/.xvpics/guard_n-00.gif
solarwolf-1.5/data/.xvpics/guard_n-01.gif
solarwolf-1.5/data/.xvpics/guard_n-02.gif
solarwolf-1.5/data/.xvpics/guard_n-03.gif
solarwolf-1.5/data/.xvpics/guard_n-04.gif
solarwolf-1.5/data/.xvpics/guard_n-05.gif
solarwolf-1.5/data/.xvpics/guard_n-06.gif
solarwolf-1.5/data/asteroid.png
solarwolf-1.5/data/audio/
solarwolf-1.5/data/audio/boxhit.wav
solarwolf-1.5/data/audio/chimein.wav
solarwolf-1.5/data/audio/chimeout.wav
solarwolf-1.5/data/audio/delete.wav
solarwolf-1.5/data/audio/explode.wav
solarwolf-1.5/data/audio/flop.wav
solarwolf-1.5/data/audio/gameover.wav
solarwolf-1.5/data/audio/incorrect.wav
solarwolf-1.5/data/audio/klank2.wav
solarwolf-1.5/data/audio/levelfinish.wav
solarwolf-1.5/data/audio/levelskip.wav
solarwolf-1.5/data/audio/select_choose.wav
solarwolf-1.5/data/audio/select_move.wav
solarwolf-1.5/data/audio/shoot.wav
solarwolf-1.5/data/audio/spring.wav
solarwolf-1.5/data/audio/startlife.wav
solarwolf-1.5/data/audio/startup.wav
solarwolf-1.5/data/audio/vaauw.wav
solarwolf-1.5/data/audio/whip.wav
solarwolf-1.5/data/audio/yboxhit.wav
solarwolf-1.5/data/baddie-teleport.png
solarwolf-1.5/data/baddie.png
solarwolf-1.5/data/bigboxes.png
solarwolf-1.5/data/bonus-bullet.png
solarwolf-1.5/data/bonus-shield.png
solarwolf-1.5/data/boxes.png
solarwolf-1.5/data/btn-add.gif
solarwolf-1.5/data/btn-delete.gif
solarwolf-1.5/data/debris-base.png
solarwolf-1.5/data/debris-bubble.png
solarwolf-1.5/data/debris-motor.png
solarwolf-1.5/data/debris1.png
solarwolf-1.5/data/debris2.png
solarwolf-1.5/data/debris3.png
solarwolf-1.5/data/debris4.png
solarwolf-1.5/data/downerror.gif
solarwolf-1.5/data/download.png
solarwolf-1.5/data/downok.gif
solarwolf-1.5/data/end.gif
solarwolf-1.5/data/explosion.png
solarwolf-1.5/data/fame.png
solarwolf-1.5/data/fire.png
solarwolf-1.5/data/hud.gif
solarwolf-1.5/data/hud2.gif
solarwolf-1.5/data/levels.txt
solarwolf-1.5/data/logo.png
solarwolf-1.5/data/menu_creds_off.png
solarwolf-1.5/data/menu_creds_on.png
solarwolf-1.5/data/menu_news_off.png
solarwolf-1.5/data/menu_news_on.png
solarwolf-1.5/data/menu_on_bgd.png
solarwolf-1.5/data/menu_quit_off.png
solarwolf-1.5/data/menu_quit_on.png
solarwolf-1.5/data/menu_setup_off.png
solarwolf-1.5/data/menu_setup_on.png
solarwolf-1.5/data/menu_start_off.png
solarwolf-1.5/data/menu_start_on.png
solarwolf-1.5/data/music/
solarwolf-1.5/data/music/arg.xm
solarwolf-1.5/data/music/aster2_sw.xm
solarwolf-1.5/data/music/h2.ogg
solarwolf-1.5/data/news
solarwolf-1.5/data/newversion.gif
solarwolf-1.5/data/oldsolarfox.png
solarwolf-1.5/data/popbox.png
solarwolf-1.5/data/popshot.png
solarwolf-1.5/data/powereffects.png
solarwolf-1.5/data/powerup.png
solarwolf-1.5/data/pygame_powered.gif
solarwolf-1.5/data/pythonpowered.gif
solarwolf-1.5/data/rub.gif
solarwolf-1.5/data/score_1.png
solarwolf-1.5/data/score_10.png
solarwolf-1.5/data/score_5.png
solarwolf-1.5/data/score_50.png
solarwolf-1.5/data/sdlpowered.png
solarwolf-1.5/data/ship-big.png
solarwolf-1.5/data/ship-mini-boost2.png
solarwolf-1.5/data/ship-teleport.png
solarwolf-1.5/data/ship-up-boost1.png
solarwolf-1.5/data/ship-up-boost2.png
solarwolf-1.5/data/ship-up.png
solarwolf-1.5/data/ship-warp.png
solarwolf-1.5/data/smoke.png
solarwolf-1.5/data/solarwolf.pal
solarwolf-1.5/data/spikeball.png
solarwolf-1.5/data/star.gif
solarwolf-1.5/dist/
solarwolf-1.5/dist/SolarWolf Website.url
solarwolf-1.5/dist/box.ico
solarwolf-1.5/dist/solarwolf.6.gz
solarwolf-1.5/dist/solarwolf.desktop
solarwolf-1.5/dist/solarwolf.iss
solarwolf-1.5/dist/solarwolf.png
solarwolf-1.5/dist/solarwolf.xpm
solarwolf-1.5/dist/wolf2exe.py
solarwolf-1.5/lgpl.txt
solarwolf-1.5/readme.txt
solarwolf-1.5/solarwolf-gfx/
solarwolf-1.5/solarwolf-gfx/.cvsignore
solarwolf-1.5/solarwolf-gfx/Makefile
solarwolf-1.5/solarwolf-gfx/README
solarwolf-1.5/solarwolf-gfx/animshow.sh
solarwolf-1.5/solarwolf-gfx/asteroid.pov
solarwolf-1.5/solarwolf-gfx/baddie-teleport.pov
solarwolf-1.5/solarwolf-gfx/baddie.inc
solarwolf-1.5/solarwolf-gfx/baddie.pov
solarwolf-1.5/solarwolf-gfx/blur.sh
solarwolf-1.5/solarwolf-gfx/bonus-bullet.pov
solarwolf-1.5/solarwolf-gfx/bonus-shield.pov
solarwolf-1.5/solarwolf-gfx/bonus.inc
solarwolf-1.5/solarwolf-gfx/camera-ortho.inc
solarwolf-1.5/solarwolf-gfx/debris-base.pov
solarwolf-1.5/solarwolf-gfx/debris-bubble.pov
solarwolf-1.5/solarwolf-gfx/debris-motor.pov
solarwolf-1.5/solarwolf-gfx/debris.inc
solarwolf-1.5/solarwolf-gfx/debris1.pov
solarwolf-1.5/solarwolf-gfx/debris2.pov
solarwolf-1.5/solarwolf-gfx/debris3.pov
solarwolf-1.5/solarwolf-gfx/debris4.pov
solarwolf-1.5/solarwolf-gfx/explosion.inc
solarwolf-1.5/solarwolf-gfx/explosion.pov
solarwolf-1.5/solarwolf-gfx/explosion.py
solarwolf-1.5/solarwolf-gfx/fire.inc
solarwolf-1.5/solarwolf-gfx/fire.pov
solarwolf-1.5/solarwolf-gfx/lights.inc
solarwolf-1.5/solarwolf-gfx/shielder.pov
solarwolf-1.5/solarwolf-gfx/ship-big.pov
solarwolf-1.5/solarwolf-gfx/ship-mini-boost2.pov
solarwolf-1.5/solarwolf-gfx/ship-teleport.pov
solarwolf-1.5/solarwolf-gfx/ship-up-boost1.pov
solarwolf-1.5/solarwolf-gfx/ship-up-boost2.pov
solarwolf-1.5/solarwolf-gfx/ship-up.pov
solarwolf-1.5/solarwolf-gfx/ship-warp.pov
solarwolf-1.5/solarwolf-gfx/ship.inc
solarwolf-1.5/solarwolf-gfx/showanim.c
solarwolf-1.5/solarwolf-gfx/spikeball.pov
solarwolf-1.5/solarwolf-gfx/teleport.inc
solarwolf-1.5/solarwolf.py
">"$filename"

 echo "$filename"

}

main "$@"

------------------->8--------------
