deb package created by dm.pl is not compatible for dpkg v1.14(from Cydia/Telesphoreo repo)
What are the steps to reproduce this issue?
- create deb package by latest(I'm using 827684e) theos with dm.pl
- install it to jailbroken device that installed dpkg v1.14.
- all files in deb file are extracted to root directory.
What happens?
All files in deb file are extracted root directory.
This is "Installed files" list on cydia.
What were you expecting to happen?
keep directory structure.
Any logs, error output, etc?
No error log while installing deb package.
Any other comments?
If I switch back to dpkg-deb, this problem is fixed. So I'm thinking this cause is dm.pl.
What versions of software are you using?
Operating System: … macOS 10.14.4
Toolchain Version: … Xcode 10.2
SDK Version: … 9.2
Is the package structure after building it flat?
@uroboro not flat at least checked by dpkg -c command on iOS.
// dpkg version is 1.14.25, downloaded from http://apt.saurik.com/debs/dpkg_1.14.25-9_iphoneos-arm.deb
i5s:/var/mobile root# dpkg --version
Debian `dpkg' package management program version 1.14.25 (iphoneos-arm).
This is free software; see the GNU General Public License version 2 or
later for copying conditions. There is NO warranty.
See dpkg --license for copyright and license details.
// file structure is correct by dpkg -c command.
i5s:/var/mobile root# dpkg -c jp.r-plus.doublecut_0.5-1+debug_iphoneos-arm.deb
drwxr-xr-x root/wheel 0 2019-07-06 18:58 .
drwxr-xr-x root/wheel 0 2019-07-06 18:58 Library
drwxr-xr-x root/wheel 0 2019-07-06 18:57 Library/MobileSubstrate
drwxr-xr-x root/wheel 0 2019-07-06 18:57 Library/MobileSubstrate/DynamicLibraries
-rwxr-xr-x root/wheel 203760 2019-07-06 18:57 Library/MobileSubstrate/DynamicLibraries/DoubleCut.dylib
-rw-r--r-- root/wheel 51 2019-07-06 18:57 Library/MobileSubstrate/DynamicLibraries/DoubleCut.plist
drwxr-xr-x root/wheel 0 2016-11-26 14:33 Library/PreferenceLoader
drwxr-xr-x root/wheel 0 2019-07-06 18:58 Library/PreferenceLoader/Preferences
-rw-r--r-- root/wheel 175 2019-07-06 18:58 Library/PreferenceLoader/Preferences/DoubleCut.plist
drwxr-xr-x root/wheel 0 2019-07-06 18:58 Library/PreferenceBundles
drwxr-xr-x root/wheel 0 2019-07-06 18:57 Library/PreferenceBundles/DoubleCutSettings.bundle
-rwxr-xr-x root/wheel 256800 2019-07-06 18:57 Library/PreferenceBundles/DoubleCutSettings.bundle/DoubleCutSettings
-rw-r--r-- root/wheel 2516 2015-02-15 11:15 Library/PreferenceBundles/DoubleCutSettings.bundle/AddSnippet.plist
-rw-r--r-- root/wheel 2876 2015-02-15 11:15 Library/PreferenceBundles/DoubleCutSettings.bundle/DoubleCut.plist
-rw-r--r-- root/wheel 3091 2015-01-18 13:57 Library/PreferenceBundles/DoubleCutSettings.bundle/[email protected]
-rw-r--r-- root/wheel 853 2014-12-12 23:17 Library/PreferenceBundles/DoubleCutSettings.bundle/Info.plist
// root directory files before install
i5s:/var/mobile root# ls /
Applications@ Developer/ Library/ System/ User@ bin/ boot/ cores/ dev/ etc@ lib/ mnt/ panguaxe* panguaxe.installed private/ sbin/ tmp@ usr/ var@
// install deb file that packaged by dm.pl
i5s:/var/mobile root# dpkg -i jp.r-plus.doublecut_0.5-1+debug_iphoneos-arm.deb
(Reading database ... 4765 files and directories currently installed.)
Preparing to replace jp.r-plus.doublecut 0.5 (using jp.r-plus.doublecut_0.5-1+debug_iphoneos-arm.deb) ...
Unpacking replacement jp.r-plus.doublecut ...
Setting up jp.r-plus.doublecut (0.5-1+debug) ...
// root directory after install.
i5s:/var/mobile root# ls /
AddSnippet.plist DoubleCut.dylib* DoubleCutSettings* Info.plist PreferenceBundles/ System/ boot/ etc@ panguaxe* sbin/ var@
Applications@ DoubleCut.plist DoubleCutSettings.bundle/ Library/ PreferenceLoader/ User@ cores/ lib/ panguaxe.installed tmp@
Developer/ DoubleCut\@2x.png DynamicLibraries/ MobileSubstrate/ Preferences/ bin/ dev/ mnt/ private/ usr/
// installed file list by dpkg -L, all flat.
i5s:/var/mobile root# dpkg -L jp.r-plus.doublecut
/.
/Library
/MobileSubstrate
/DynamicLibraries
/DoubleCut.dylib
/DoubleCut.plist
/PreferenceLoader
/Preferences
/DoubleCut.plist
/PreferenceBundles
/DoubleCutSettings.bundle
/DoubleCutSettings
/AddSnippet.plist
/DoubleCut.plist
/[email protected]
/Info.plist
this is tested deb file(please remove .zip suffix) jp.r-plus.doublecut_0.5-1+debug_iphoneos-arm.deb.zip
and dpkg v1.14 http://apt.saurik.com/debs/dpkg_1.14.25-9_iphoneos-arm.deb
Here is file structure created by dpkg-deb.
$ dpkg -c packages/jp.r-plus.doublecut_0.5-2+debug_iphoneos-arm.deb
drwxr-xr-x root/wheel 0 2019-07-06 19:20 ./
drwxr-xr-x root/wheel 0 2019-07-06 19:20 ./Library/
drwxr-xr-x root/wheel 0 2019-07-06 19:20 ./Library/MobileSubstrate/
drwxr-xr-x root/wheel 0 2019-07-06 19:20 ./Library/MobileSubstrate/DynamicLibraries/
-rwxr-xr-x root/wheel 203760 2019-07-06 19:20 ./Library/MobileSubstrate/DynamicLibraries/DoubleCut.dylib
-rw-r--r-- root/wheel 51 2019-07-06 19:20 ./Library/MobileSubstrate/DynamicLibraries/DoubleCut.plist
drwxr-xr-x root/wheel 0 2019-07-06 19:20 ./Library/PreferenceBundles/
drwxr-xr-x root/wheel 0 2019-07-06 19:20 ./Library/PreferenceBundles/DoubleCutSettings.bundle/
-rw-r--r-- root/wheel 2516 2015-02-15 11:15 ./Library/PreferenceBundles/DoubleCutSettings.bundle/AddSnippet.plist
-rw-r--r-- root/wheel 2876 2015-02-15 11:15 ./Library/PreferenceBundles/DoubleCutSettings.bundle/DoubleCut.plist
-rw-r--r-- root/wheel 3091 2015-01-18 13:57 ./Library/PreferenceBundles/DoubleCutSettings.bundle/[email protected]
-rwxr-xr-x root/wheel 256800 2019-07-06 19:20 ./Library/PreferenceBundles/DoubleCutSettings.bundle/DoubleCutSettings
-rw-r--r-- root/wheel 853 2014-12-12 23:17 ./Library/PreferenceBundles/DoubleCutSettings.bundle/Info.plist
drwxr-xr-x root/wheel 0 2016-11-26 14:33 ./Library/PreferenceLoader/
drwxr-xr-x root/wheel 0 2019-07-06 19:20 ./Library/PreferenceLoader/Preferences/
-rw-r--r-- root/wheel 175 2019-07-06 19:20 ./Library/PreferenceLoader/Preferences/DoubleCut.plist
./ prefix is difference to dm.pl version. Is this cause to this issue...?
Is this still happening with up-to-date Theos?
yes, latest theos (a64c56d) and dm.pl (b4f1d81) still same results with dpkg v1.14.
But in recently jailbroke environment, this doesn't really matter, as they shipped with updated version of dpkg.