Closed D3vil0p3r closed 3 years ago
Hello. Specifically speaking for this case, we already have an xfce customized version. If you want to know more, I suggest you to talk with xfce Maintainer @dmknght. And please, next time use a service like pastebin to attach logs and very long code. It'll be easier for us to read.
Well first thing first, as i understand you are doing the copy files and folders method to install data of parrot menu to Debian. I'd suggest you try debuild
command, which should belong to devscripts
as i remember, to build the whole package and avoid some mistakes. You may want to try our parrot-menu on gitlab which is more updated with fixed bugs (small commits that weren't released yet) at https://nest.parrotsec.org/packages/parrot/parrot-menu
Second is, i don't really know why the problem is there. I want to explain about folder parrot-common
first: in the previous releases of parrot-menu
, icons of categories are in the /usr/share/icons/
and in my opinion it is not nice at all. I meant the tree of folders and files and all and well you see, 10 or 20 icons in the /usr/share/icons/
is not good at all; mean while other icons are in different folder which means more "beautiful". So i decided a folder parrot-common
for any icons of Parrot team that has only 1 size. And as you mentioned, the icons are mapped from /usr/share/icons/<theme>/<size>/<icon_name>
. As far as i remember, there was a problem of icons that won't show in menu either icons are in /usr/share/icons/
or /usr/share/icons/parrot-common/
so i had to use absolute path.
The next thing is, as i remember i did the menu customization on XFCE 4.14 and now it is 4.16 on Parrot. I don't really think that i did it for 4.12 (maybe the first version was on 4.12 if i'm wrong) so it could be version conflict or something. And because you are using the copy paste method so it could be the caching problem while you are using XFCE. The caching problem was a thing for me when i did the default customization for XFCE. It is not just menu but panels and especially all launchers on panels. When you overwrite the current configurations by new configurations from files, some icons of launchers won't be displayed. I really thing this is the same problem for the menu.
Thank you for your answers.
I followed your suggestion by using debuild because it is a cleaner solution than mine.
After using debuild
command, at the end I receive this output: https://pastebin.com/BFAgP70w with the following errors:
dh_dwz: dwz -q -- debian/parrot-menu/usr/share/parrot-menu/update-launchers returned exit code 1 make: *** [debian/rules:4: binary] Error 1 dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 debuild: fatal error at line 1182: dpkg-buildpackage -us -uc -ui failed
I have another question: could be suitable in the future having a package in the repository to install the Parrot menu directly by apt-get install
as we already have for Kali Linux (apt-get install kali-menu
)?
After using debuildcommand, at the end I receive this output: https://pastebin.com/BFAgP70w with the following errors:
Problem happened because you are missing Build-depend Nim
. We are using Nim lang to update the launchers of pentest tool, which makes massive performance compare to old script which was written in golang and the older version was in perl. Please try sudo apt install nim
and run debuild
again. You don't need sudo
to run debuild
I have another question: could be suitable in the future having a package in the repository to install the Parrot menu directly by apt-get install as we already have for Kali Linux (apt-get install kali-menu)?
The answer is yes and no.
Why yes? Because you are installing local package which won't be replaced.
Why no? The menu setting file could be overwritten. And kali-menu
is using a perl
script to update launchers. So it could use last script / binary to update launchers or use both. It will be conflicts of launchers. You might see duplicate launchers in menu.
The output I attached before was produced with already nim installed. In practice, before debuild
command I installed:
dconf-cli, build-essential, nim, devscripts
nim is installed with the 0.19.4-1 version.
Just now I also tested in a fresh machine debian-10.9.0-amd64-netinst (got from https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-10.9.0-amd64-netinst.iso and installed always the nim, build-essential, dconf-cli, devscripts packages and when I run debuild
, I get also here the same output and the same error.
Please, tell me if you are able to reproduce the error.
According to my schedule, I will continue to perform tests on this issue.
nim is installed with the 0.19.4-1 version.
I forgot to mention when i wrote the fix: Nim should be 1.4.x or at least 1.2.x
Thank you for the tips.
Currently, nim 1.4x and all its dependencies (i.e. libc6) are in a not stable version. Correct me if I'm wrong, it means the user should install testing dependencies one by one with the risk to break something. I tried and I was asked of a big amount of unstable version of dependencies to install.
Sorry if I point on this, I would like to address the issue by using less as possible not stable version of packages for the average users. And also because security updates for testing packages are not often managed by the security team. So, testing does not get security updates in a timely manner.
Anyway, the current "stable" version of dwz is the 0.12-3. This version causes our issue. To solve it, I updated only dwz to unstable version 0.14-1 and it works.
After this, the process continued correctly until I received some warnings and errors (E?) that don't affect the process:
Now running lintian parrot-menu_2021.05.10_amd64.changes ... E: parrot-menu changes: bad-distribution-in-changes-file rolling W: parrot-menu source: package-depends-on-hardcoded-libc parrot-menu depends E: parrot-menu source: source-is-missing update-launchers E: parrot-menu source: source-contains-unsafe-symlink menu-icons/parrot-menu.png E: parrot-menu source: source-contains-unsafe-symlink menu-icons/hicolor/16x16/apps/parrot-menu.png E: parrot-menu source: source-contains-unsafe-symlink menu-icons/hicolor/24x24/apps/parrot-menu.png E: parrot-menu source: source-contains-unsafe-symlink menu-icons/hicolor/256x256/apps/parrot-menu.png E: parrot-menu source: source-contains-unsafe-symlink menu-icons/hicolor/32x32/apps/parrot-menu.png E: parrot-menu source: source-contains-unsafe-symlink menu-icons/hicolor/48x48/apps/parrot-menu.png W: parrot-menu source: missing-field-in-dep5-copyright license (paragraph at line 9) W: parrot-menu source: missing-field-in-dep5-copyright copyright (paragraph at line 9) W: parrot-menu source: ambiguous-paragraph-in-dep5-copyright paragraph at line 14 W: parrot-menu source: missing-license-text-in-dep5-copyright GPL-3+ (paragraph at line 14) W: parrot-menu source: newer-standards-version 4.5.0 (current is 4.3.0) W: parrot-menu-dbgsym: debug-file-with-no-debug-symbols usr/lib/debug/.build-id/04/5b71d56ca45e1e5ce637f1061ec5cbbc26b6af.debug E: parrot-menu: arch-dependent-file-in-usr-share usr/share/parrot-menu/update-launchers W: parrot-menu: icon-size-and-directory-name-mismatch usr/share/icons/hicolor/16x16/apps/parrot-rizin.png 11x11 W: parrot-menu: binary-without-manpage usr/bin/faraday-gtk W: parrot-menu: binary-without-manpage usr/bin/menuexec W: parrot-menu: binary-without-manpage usr/bin/menuexecg W: parrot-menu: binary-without-manpage usr/bin/nishang W: parrot-menu: binary-without-manpage usr/bin/pentestexec W: parrot-menu: binary-without-manpage usr/bin/pentestls W: parrot-menu: binary-without-manpage usr/bin/servicexc W: parrot-menu: executable-not-elf-or-script usr/bin/servicexc Finished running lintian.
(maybe could be useful for you for future small fixes) and then the following error messages related to gpg:
Now signing changes and any dsc files... signfile dsc parrot-menu_2021.05.10.dsc Lorenzo "Palinuro" Faletra palinuro@parrotsec.org gpg: skipped "Lorenzo "Palinuro" Faletra palinuro@parrotsec.org": No secret key gpg: /tmp/debsign.U9paibmz/parrot-menu_2021.05.10.dsc: clear-sign failed: No secret key debsign: gpg error occurred! Aborting.... debuild: fatal error at line 1112: running debsign failed
I thought could be the secret key associated to my machine used for signing files. I tried to generate a key by using gpg --full-generate-key
but the error still there. I tried also to import with success the parrot key by following the following url https://docs.parrotlinux.org/info/verify-keys/ but the error is still there. How can I solve this issue related to the secret key?
Thank you for your support.
Correct me if I'm wrong, it means the user should install testing dependencies one by one with the risk to break something.
Parrot is Debian-testing based :)
I thought could be the secret key associated to my machine used for signing files.
Please try debuild -us -uc -b
Thank you @dmknght it works.
The process produced the following .deb files: parrot-menu_2021.05.10_amd64.deb, parrot-menu-dbgsym_2021.05.10_amd64.deb
I guess I should install only the first one.
When I try to install it by dpkg, it says me that the "package gksu" is not installed.
I solved it by:
sudo apt-get install multiarch-support gconf-service libgconf-2-4 gconf2 libgtop2-common
Got several useful .deb packages:
sudo dpkg -i libgnome-keyring-common_3.12.0-1_all.deb
sudo dpkg -i libgnome-keyring0_3.12.0-1+b1_amd64.deb
sudo dpkg -i libgtop2-7_2.28.5-2+b1_amd64.deb
sudo dpkg -i libgksu2-0_2.0.13~pre1-8_amd64.deb
sudo dpkg -i gksu_2.0.2-9_amd64.deb
At the end I executed:
sudo dpkg -i parrot-menu_2021.05.10_amd64.deb
ended with no error.
I can see the icons. The only issue is that I get always the same issue of the beginning (persistent pentesting icon in the subfolders of the menu):
Should I also install the parrot-menu-dbgsym_2021.05.10_amd64.deb package or I need to perform another step? If I remember, gksu should be now deprecated. In the future, it will be substituted with another package?
Thank you again ^^
Hello again.
After my tests, I can confirm you that the issue was caused by the Whisker Menu plugin (v. 2.3.1-1) that produces that bug. If I remove/disable that plugin and on XFCE I work only with the default application menu, we don't have the issue anymore.
For information: I opened an issue ticket on XFCE project for this bug: https://gitlab.xfce.org/panel-plugins/xfce4-whiskermenu-plugin/-/issues/52
The only last question before closing the issue: debuild command will produce two .deb files:
What is the difference between them? Are both of them needed?
When I try to install it by dpkg, it says me that the "package gksu" is not installed.
Yes some tools need gksu
to run as root (GUI apps)
After my tests, I can confirm you that the issue was caused by the Whisker Menu plugin (v. 2.3.1-1) that produces that bug. If I remove/disable that plugin and on XFCE I work only with the default application menu, we don't have the issue anymore.
Seems like old version of XFCE Whisker Menu - XFCE plugin is a problem.
parrot-menu-dbgsym_2021.05.10_amd64.deb
This package was generated because there are some issues during package compiling problem. Mostly because of Debian standards which can't be followed sometimes (for example: distro name is rolling
instead of stable
testing
,...) and it is perfectly okay. You don't need to install any dbgsym
. And the part is stand for debug-symbols
i believe.
Thank you for the answers @dmknght
I'm going to close this issue.
Hello, I'm testing the import of Parrot Menu in other Linux environments, in this case, on a Debian 10 with XFCE 4.12 environment, by following the file parrot-menu.install
I imported files and icons from the latest Parrot OS release (Parrot-security-4.11.1_amd64) on this test environment with the same permissions, and the "Pentesting" voice appears correctly as also the subfolders (i.e. Information Gathering, Vulnerability Analysis, and so on) in the XFCE panel/Whisker menu.
The only issue is related to the icons: the subfolders show the "Pentesting" icon instead of their icons. For example, if I go in the
/usr/share/desktop-directories/01-info-gathering.directory
the "Icon" variable is set correctly as:Icon=/usr/share/icons/parrot-common/info-gathering-trans.png
and this file is actually in that folder:
The result is: (for being simple, I'm showing only some subfolder voices)
So the "Pentesting" icon located in /usr/share/icons/parrot-common/pentesting.png is overriding the info-gathering-trans.png icon path.
If I consider the
/etc/xdg/menus/applications-merged/parrot-applications.menu
file that shows the hierarchy of these voices in the XFCE panel, and I try to remove the root voice (Pentesting, related to the Parrot.directory file) the subfolder voices icons are shown correctly:I noted also that, if in the *.directory file, in the variable "Icon=" I set an icon contained in the folders
/usr/share/icons/hicolor/NxN/apps
(where NxN is the size of the icon folder), it works correctly (i.e.Icon=parrot-info-gathering-trans
(without using an absolute path)) works correctly.Why in the case of the importing parrot menu in other environments, the icon of the root folder in the panel (Pentesting) overrides all the icons of the subfolders specified in the related
/usr/share/desktop-directories/*.directory
files?Thank you in advance.