Bug 267093 - [NEW PORT] devel/android-studio: Official IDE for Android
Summary: [NEW PORT] devel/android-studio: Official IDE for Android
Status: Closed Feedback Timeout
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Fernando Apesteguía
URL: https://developer.android.com/studio/
Keywords: feature, needs-patch, needs-qa
Depends on:
Blocks:
 
Reported: 2022-10-15 17:47 UTC by Martin Filla
Modified: 2023-05-05 12:06 UTC (History)
4 users (show)

See Also:
koobs: maintainer-feedback? (freebsd)


Attachments
android-studio.shar (332.38 KB, text/plain)
2022-10-15 17:47 UTC, Martin Filla
no flags Details
android-studio.shar (332.44 KB, text/plain)
2022-10-16 08:58 UTC, Martin Filla
freebsd: maintainer-approval+
Details
android-studio.shar (332.44 KB, text/plain)
2023-03-16 11:11 UTC, Martin Filla
no flags Details
Diff between OP pkg-plist and the one that is actually installed (427.37 KB, text/plain)
2023-04-18 07:02 UTC, Fernando Apesteguía
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Martin Filla 2022-10-15 17:47:16 UTC
Created attachment 237346 [details]
android-studio.shar

Hi,
i ported linux android-studio
Comment 1 Kubilay Kocak freebsd_committer freebsd_triage 2022-10-15 23:53:48 UTC
Thanks for creating this Wanted Port Martin.

  * Can you confirm it passes QA (portlint and poudriere in particular)

Also suggest a shorter COMMENT, proposing:

  * COMMENT=Official IDE for Android ($branch)

See also: https://repology.org/project/android-studio/information
Comment 2 Martin Filla 2022-10-16 08:58:11 UTC
Created attachment 237374 [details]
android-studio.shar
Comment 3 Martin Filla 2022-10-16 09:20:05 UTC
====> Compressing man pages (compress-man)
===========================================================================
====> Running Q/A tests (stage-qa)
Warning: '/wrkdirs/usr/ports/devel/android-studio/work/stage/compat/linux/android-studio/plugins/android-ndk/resources/lldb/bin/LLDBFrontend' is not stripped consider trying INSTALL_TARGET=install-strip or using ${STRIP_CMD}
Warning: '/wrkdirs/usr/ports/devel/android-studio/work/stage/compat/linux/android-studio/plugins/android-ndk/resources/lldb/android/x86_64/lldb-server' is not stripped consider trying INSTALL_TARGET=install-strip or using ${STRIP_CMD}
Warning: '/wrkdirs/usr/ports/devel/android-studio/work/stage/compat/linux/android-studio/plugins/android-ndk/resources/lldb/android/x86/lldb-server' is not stripped consider trying INSTALL_TARGET=install-strip or using ${STRIP_CMD}
Warning: '/wrkdirs/usr/ports/devel/android-studio/work/stage/compat/linux/android-studio/plugins/android-ndk/resources/lldb/android/arm64-v8a/lldb-server' is not stripped consider trying INSTALL_TARGET=install-strip or using ${STRIP_CMD}
Warning: '/wrkdirs/usr/ports/devel/android-studio/work/stage/compat/linux/android-studio/plugins/android-ndk/resources/lldb/android/armeabi/lldb-server' is not stripped consider trying INSTALL_TARGET=install-strip or using ${STRIP_CMD}
Warning: '/wrkdirs/usr/ports/devel/android-studio/work/stage/compat/linux/android-studio/plugins/android-ndk/resources/lldb/lib64/libedit.so.0' is not stripped consider trying INSTALL_TARGET=install-strip or using ${STRIP_CMD}
Warning: '/wrkdirs/usr/ports/devel/android-studio/work/stage/compat/linux/android-studio/plugins/android-ndk/resources/lldb/lib64/liblldb.so.11git' is not stripped consider trying INSTALL_TARGET=install-strip or using ${STRIP_CMD}
Warning: you need USES=ssl
====> Checking for pkg-plist issues (check-plist)
===> Parsing plist
===> Checking for items in STAGEDIR missing from pkg-plist
===> Checking for items in pkg-plist which are not in STAGEDIR
===> No pkg-plist issues found (check-plist)
=>> Checking for staging violations... done
=======================<phase: package        >============================
===>  Building package for linux-android-studio-2020.3.1.24
===========================================================================
=>> Recording filesystem state for preinst... done
=======================<phase: install        >============================
===>  Installing for linux-android-studio-2020.3.1.24
===>  Checking if linux-android-studio is already installed
===>   Registering installation for linux-android-studio-2020.3.1.24
(linux-android-studio-2020.3.1.24) /wrkdirs/usr/ports/devel/android-studio/work/stage//compat/linux/android-studio/plugins/android/resources/installer/armeabi-v7a/installer - required shared library liblog.so not found
(linux-android-studio-2020.3.1.24) /wrkdirs/usr/ports/devel/android-studio/work/stage//compat/linux/android-studio/plugins/android/resources/perfetto/armeabi-v7a/perfetto - required shared library liblog.so not found
(linux-android-studio-2020.3.1.24) /wrkdirs/usr/ports/devel/android-studio/work/stage//compat/linux/android-studio/plugins/android/resources/perfetto/armeabi-v7a/perfetto - required shared library libstdc++.so not found
(linux-android-studio-2020.3.1.24) /wrkdirs/usr/ports/devel/android-studio/work/stage//compat/linux/android-studio/plugins/android/resources/perfetto/armeabi-v7a/traced - required shared library liblog.so not found
(linux-android-studio-2020.3.1.24) /wrkdirs/usr/ports/devel/android-studio/work/stage//compat/linux/android-studio/plugins/android/resources/perfetto/armeabi-v7a/traced - required shared library libstdc++.so not found
(linux-android-studio-2020.3.1.24) /wrkdirs/usr/ports/devel/android-studio/work/stage//compat/linux/android-studio/plugins/android/resources/perfetto/armeabi-v7a/traced_probes - required shared library liblog.so not found
(linux-android-studio-2020.3.1.24) /wrkdirs/usr/ports/devel/android-studio/work/stage//compat/linux/android-studio/plugins/android/resources/perfetto/armeabi-v7a/traced_probes - required shared library libstdc++.so not found
(linux-android-studio-2020.3.1.24) /wrkdirs/usr/ports/devel/android-studio/work/stage//compat/linux/android-studio/plugins/android/resources/transport/armeabi-v7a/transport - required shared library liblog.so not found
(linux-android-studio-2020.3.1.24) /wrkdirs/usr/ports/devel/android-studio/work/stage//compat/linux/android-studio/plugins/android/resources/transport/native/agent/armeabi-v7a/libjvmtiagent.so - required shared library liblog.so not found
[freebsd13x64-default] Installing linux-android-studio-2020.3.1.24...
===> SECURITY REPORT: 
      This port has installed the following files which may act as network
      servers and may therefore pose a remote security risk to the system.
/compat/linux/android-studio/plugins/android/resources/transport/native/agent/x86_64/libjvmtiagent.so
/compat/linux/android-studio/plugins/android/resources/perfetto/x86/perfetto
/compat/linux/android-studio/plugins/android/resources/perfetto/x86/libperfetto.so
/compat/linux/android-studio/plugins/android/resources/perfetto/x86_64/perfetto
/compat/linux/android-studio/plugins/android/resources/simpleperf/linux-x86_64/simpleperf
/compat/linux/android-studio/jre/lib/libnio.so
/compat/linux/android-studio/plugins/android/resources/perfetto/arm64-v8a/libperfetto.so
/compat/linux/android-studio/plugins/android/resources/perfetto/arm64-v8a/perfetto
/compat/linux/android-studio/plugins/android/resources/transport/native/agent/arm64-v8a/libjvmtiagent.so
/compat/linux/android-studio/plugins/android/resources/transport/x86/transport
/compat/linux/android-studio/plugins/android/resources/transport/arm64-v8a/transport
/compat/linux/android-studio/plugins/android-ndk/resources/lldb/lib64/liblldb.so.11git
/compat/linux/android-studio/plugins/android/resources/perfetto/armeabi-v7a/libperfetto.so
/compat/linux/android-studio/jre/lib/server/libjvm.so
/compat/linux/android-studio/plugins/android/resources/transport/native/agent/armeabi-v7a/libjvmtiagent.so
/compat/linux/android-studio/jre/lib/libnet.so
/compat/linux/android-studio/plugins/android/resources/perfetto/x86_64/libperfetto.so
/compat/linux/android-studio/plugins/android/resources/perfetto/armeabi-v7a/perfetto
/compat/linux/android-studio/jre/lib/libdt_socket.so
/compat/linux/android-studio/plugins/android/resources/transport/armeabi-v7a/transport
/compat/linux/android-studio/plugins/android/resources/transport/x86_64/transport
/compat/linux/android-studio/plugins/android/resources/transport/native/agent/x86/libjvmtiagent.so
/compat/linux/android-studio/plugins/android-ndk/resources/lldb/lib/python3.8/lib-dynload/_socket.cpython-38-x86_64-linux-gnu.so
/compat/linux/android-studio/plugins/android/resources/simpleperf/linux-x86_64/libsimpleperf_report.so

      If there are vulnerabilities in these programs there may be a security
      risk to the system. FreeBSD makes no guarantee about the security of
      ports included in the Ports Collection. Please type 'make deinstall'
      to deinstall the port if this is a concern.
===========================================================================
=======================<phase: deinstall      >============================
===>  Deinstalling for linux-android-studio
===>   Deinstalling linux-android-studio-2020.3.1.24
Updating database digests format: .......... done
Checking integrity... done (0 conflicting)
Deinstallation has been requested for the following 1 packages (of 0 packages in the universe):

Installed packages to be REMOVED:
	linux-android-studio: 2020.3.1.24

Number of packages to be removed: 1

The operation will free 2 GiB.
[freebsd13x64-default] [1/1] Deinstalling linux-android-studio-2020.3.1.24...
[freebsd13x64-default] [1/1] Deleting files for linux-android-studio-2020.3.1.24: .......... done
===========================================================================
=>> Checking for extra files and directories
[00:19:02] Installing from package
[freebsd13x64-default] Installing linux-android-studio-2020.3.1.24...
[freebsd13x64-default] Extracting linux-android-studio-2020.3.1.24: ......... done
[00:20:24] Cleaning up
===>  Cleaning for linux-android-studio-2020.3.1.24
[00:20:25] Deinstalling package
Updating database digests format: . done
Checking integrity... done (0 conflicting)
Deinstallation has been requested for the following 1 packages (of 0 packages in the universe):

Installed packages to be REMOVED:
	linux-android-studio: 2020.3.1.24

Number of packages to be removed: 1

The operation will free 2 GiB.
[freebsd13x64-default] [1/1] Deinstalling linux-android-studio-2020.3.1.24...
[freebsd13x64-default] [1/1] Deleting files for linux-android-studio-2020.3.1.24: .......... done
build of devel/android-studio | linux-android-studio-2020.3.1.24 ended at Sun Oct 16 11:19:15 CEST 2022
build time: 00:19:41
[00:20:26] Logs: /usr/local/poudriere/data/logs/bulk/freebsd13x64-default/2022-10-16_10h58m49s
[00:20:26] Cleaning up
[00:20:26] Unmounting file systems
Comment 4 Lars Engels freebsd_committer freebsd_triage 2023-03-16 09:47:54 UTC
Is there anything missing that prevents the port being added to the tree?
Comment 5 Martin Filla 2023-03-16 11:11:37 UTC
Created attachment 240898 [details]
android-studio.shar

Bump to 2022.1.1.21. I don't see any problem.
Comment 6 Fernando Apesteguía freebsd_committer freebsd_triage 2023-04-17 10:04:49 UTC
There are some issues with this patch.

First:

Warning: '/wrkdirs/usr/ports/devel/android-studio/work/stage/compat/linux/android-studio/plugins/android-ndk/resources/lldb/bin/LLDBFrontend' is not stripped co
nsider trying INSTALL_TARGET=install-strip or using ${STRIP_CMD}
Warning: '/wrkdirs/usr/ports/devel/android-studio/work/stage/compat/linux/android-studio/plugins/android-ndk/resources/lldb/lib64/liblldb.so.14git' is not strip
ped consider trying INSTALL_TARGET=install-strip or using ${STRIP_CMD}
Warning: '/wrkdirs/usr/ports/devel/android-studio/work/stage/compat/linux/android-studio/plugins/android-ndk/resources/lldb/lib64/libedit.so.0' is not stripped 
consider trying INSTALL_TARGET=install-strip or using ${STRIP_CMD}
Warning: '/wrkdirs/usr/ports/devel/android-studio/work/stage/compat/linux/android-studio/plugins/android-ndk/resources/lldb/android/x86/lldb-server' is not stripped consider trying INSTALL_TARGET=install-strip or using ${STRIP_CMD}
Warning: '/wrkdirs/usr/ports/devel/android-studio/work/stage/compat/linux/android-studio/plugins/android-ndk/resources/lldb/android/arm64-v8a/lldb-server' is not stripped consider trying INSTALL_TARGET=install-strip or using ${STRIP_CMD}
Warning: '/wrkdirs/usr/ports/devel/android-studio/work/stage/compat/linux/android-studio/plugins/android-ndk/resources/lldb/android/x86_64/lldb-server' is not stripped consider trying INSTALL_TARGET=install-strip or using ${STRIP_CMD}
Warning: '/wrkdirs/usr/ports/devel/android-studio/work/stage/compat/linux/android-studio/plugins/android-ndk/resources/lldb/android/armeabi/lldb-server' is not stripped consider trying INSTALL_TARGET=install-strip or using ${STRIP_CMD}
Warning: '/wrkdirs/usr/ports/devel/android-studio/work/stage/compat/linux/android-studio/bin/libdbm64.so' is not stripped consider trying INSTALL_TARGET=install-strip or using ${STRIP_CMD}

Second: In my poudriere test run, there are multiple pkg-plist issues including > 2k files Orphaned from stage dir and > 2k files Missing.

===> Checking for items in STAGEDIR missing from pkg-plist
Error: Orphaned: %%LINUXBASE%%/android-studio/bin/brokenPlugins.db
Error: Orphaned: %%LINUXBASE%%/android-studio/bin/icons/icons-v1-1.0-d.db
Error: Orphaned: %%LINUXBASE%%/android-studio/bin/icons/icons-v1-1.0.db
Error: Orphaned: %%LINUXBASE%%/android-studio/bin/icons/icons-v1-1.25-d.db
Error: Orphaned: %%LINUXBASE%%/android-studio/bin/icons/icons-v1-1.25.db
Error: Orphaned: %%LINUXBASE%%/android-studio/bin/icons/icons-v1-1.5-d.db
Error: Orphaned: %%LINUXBASE%%/android-studio/bin/icons/icons-v1-1.5.db
Error: Orphaned: %%LINUXBASE%%/android-studio/bin/icons/icons-v1-2.0-d.db
Error: Orphaned: %%LINUXBASE%%/android-studio/bin/icons/icons-v1-2.0.db
Error: Orphaned: %%LINUXBASE%%/android-studio/bin/icons/icons-v1-2.5-d.db
Error: Orphaned: %%LINUXBASE%%/android-studio/bin/icons/icons-v1-2.5.db
Error: Orphaned: %%LINUXBASE%%/android-studio/bin/lldb/helpers/renderers/jb_lldb_builtin_formatters.py
Error: Orphaned: %%LINUXBASE%%/android-studio/bin/lldb/helpers/renderers/jb_lldb_format_specs.py
Error: Orphaned: %%LINUXBASE%%/android-studio/bin/lldb/helpers/renderers/jb_lldb_natvis_formatters.py
Error: Orphaned: %%LINUXBASE%%/android-studio/bin/lldb/helpers/renderers/jb_lldb_string_utils.py
Error: Orphaned: %%LINUXBASE%%/android-studio/bin/remote-dev-server.sh
Error: Orphaned: %%LINUXBASE%%/android-studio/jbr/bin/jaotc
Error: Orphaned: %%LINUXBASE%%/android-studio/jbr/bin/jar
...
...

===> Checking for items in pkg-plist which are not in STAGEDIR
Error: Missing: %%LINUXBASE%%/android-studio/bin/fsnotifier64
Error: Missing: %%LINUXBASE%%/android-studio/bin/log.xml
Error: Missing: %%LINUXBASE%%/android-studio/bin/printenv.py
Error: Missing: %%LINUXBASE%%/android-studio/bin/studio.vmoptions
Error: Missing: %%LINUXBASE%%/android-studio/icons.db
Error: Missing: %%LINUXBASE%%/android-studio/jre/bin/jaotc
Error: Missing: %%LINUXBASE%%/android-studio/jre/bin/jar
Error: Missing: %%LINUXBASE%%/android-studio/jre/bin/jarsigner
Error: Missing: %%LINUXBASE%%/android-studio/jre/bin/java
Error: Missing: %%LINUXBASE%%/android-studio/jre/bin/javac
Error: Missing: %%LINUXBASE%%/android-studio/jre/bin/javadoc
Error: Missing: %%LINUXBASE%%/android-studio/jre/bin/javap
Error: Missing: %%LINUXBASE%%/android-studio/jre/bin/jdb
Error: Missing: %%LINUXBASE%%/android-studio/jre/bin/jdeprscan
Error: Missing: %%LINUXBASE%%/android-studio/jre/bin/jdeps
Error: Missing: %%LINUXBASE%%/android-studio/jre/bin/jfr
Error: Missing: %%LINUXBASE%%/android-studio/jre/bin/jhsdb
...
...
Comment 7 Fernando Apesteguía freebsd_committer freebsd_triage 2023-04-18 07:02:01 UTC
Created attachment 241554 [details]
Diff between OP pkg-plist and the one that is actually installed

Just for reference, the diff between the original pkg-plist and the one that gets actually installed.
Comment 8 Fernando Apesteguía freebsd_committer freebsd_triage 2023-04-18 07:06:37 UTC
After changing the pkg-plist, I was able to build and run the program.

On startup, it complains about "SDK emulation directory not present". Also, when trying a simple project (one activity project), it fails with a java.lang.NullPointerException when it tries to build the project.

Apart from that, I have a couple of questions:

First is why do we need to give executable permissions to everything.
Second, COPYTREE_SHARE is basically the same as INSTALL_DATA but acting on a tree hierarchy. Why is the INSTALL_DATA of studio.png necessary then?

Cheers.
Comment 9 Fernando Apesteguía freebsd_committer freebsd_triage 2023-04-29 17:27:29 UTC
Ping!