انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید

نویسنده موضوع: کامپایل jwm (حل شد)  (دفعات بازدید: 1118 بار)

0 کاربر و 1 مهمان درحال مشاهده موضوع.

آفلاین norouzi90

  • Hero Member
  • *
  • ارسال: 784
  • جنسیت : پسر
  • Debian + Mate
کامپایل jwm (حل شد)
« : 29 خرداد 1401، 04:48 ب‌ظ »
با سلام و احترام،

می خواستم آخرین ورژن jwm را که از github دانلود کرده ام بر روی سیستمم نصب کنم.
در موارد زیر اگر مرا راهنمایی بفرمایید ، ممنون خواهم شد.منبع:

https://github.com/joewing/jwm

۱-
نقل‌قول
To build JWM you will need a C compiler (gcc works), X11, and the
"development headers" for X11 and Xlib.
برای اینکار تنها نصب بسته build-essential کفایت می کند؟ یا بسته دیگری هم بایستی نصب کنم؟

۲-
نقل‌قول
If available and not disabled at compile time, JWM will also use
the following libraries:

 - cairo and librsvg2 for SVG icons and backgrounds.
 - pango (with the xft backend) for text layout.
 - libjpeg for JPEG icons and backgrounds.
 - libpng for PNG icons and backgrounds.
 - libXext for the shape extension.
 - libXrender for the render extension.
 - libXmu for rounded corners.
 - libXinerama for multiple head support.
 - libXpm for XPM icons and backgrounds.

مفهومش چیه؟ کامپایل کرنل لینوکس یا کامپایل jwm ؟ اگر منظور در زمان کامپایل کرنل لینوکس ، از کجا می توانم بفهم کدامیک از اینها disable شده یا نه؟

۳-
نقل‌قول
0. For building from the git repository, run "./autogen.sh".

یعنی چکار کنم؟
« آخرین ویرایش: 02 تیر 1401، 08:51 ب‌ظ توسط norouzi90 »

آفلاین mskf1383

  • Sr. Member
  • *
  • ارسال: 407
  • جنسیت : پسر
پاسخ : کامپایل jwm
« پاسخ #1 : 29 خرداد 1401، 06:06 ب‌ظ »
سلام
توی مخازن هست که!

۱. نمی‌دونم
۲. برای کامپایل برنامه لازمن. با مدیر بسته نصب‌شون کنید.
۳. داخل پوشه‌ای که بارگیری کردید، از فهرست راست‌کلیک، پایانه رو باز کنید (یا پایانه رو باز کنید و با cd به شاخه‌ی jwm برید) و بعد اون دستور رو اجرا کنید. یه اسکریپته. «‎./‎‏» اولش می‌گه که یه پرونده داخل همین شاخه‌ست.

آفلاین norouzi90

  • Hero Member
  • *
  • ارسال: 784
  • جنسیت : پسر
  • Debian + Mate
پاسخ : کامپایل jwm
« پاسخ #2 : 29 خرداد 1401، 08:29 ب‌ظ »
توی مخازن هست که!
بله ، در مخازن هست ولی من دوست دارم آخرین ورژنش را بررسی کنم.البته بک آپ های لازم هم از سیستمم دارم که هر موقع خواستم به حالت قبل برگردانم. مشکلی از این بابت ندارم.


۲
. برای کامپایل برنامه لازمن. با مدیر بسته نصب‌شون کنید.
مثلا برای :
نقل‌قول
libjpeg for JPEG icons and backgrounds
برنامه ای بانام اختصاصی libjpeg وجود ندارد. در سیناپتیک هم که می زنم چندین برنامه در رابطه با این اسم وجود دارد.( عکس 1)


۳. داخل پوشه‌ای که بارگیری کردید، از فهرست راست‌کلیک، پایانه رو باز کنید (یا پایانه رو باز کنید و با cd به شاخه‌ی jwm برید) و بعد اون دستور رو اجرا کنید. یه اسکریپته. «‎./‎‏» اولش می‌گه که یه پرونده داخل همین شاخه‌ست.
نمی شود. (عکس های 2 و 3)

آفلاین Dragon-

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 5124
  • جنسیت : پسر
پاسخ : کامپایل jwm
« پاسخ #3 : 30 خرداد 1401، 05:09 ب‌ظ »
۱- نه کافی نیست. باید علاوه بر build-essential، بسته libx11-dev رو هم نصب کنید.

۲- میگه اگه این چیز‌ها رو موقع کامپایل jwm غیرفعال نکنید، باید یه سری چیز‌های دیگه هم داشته باشید تا jwm بتونه کامپایل بشه.

۳- برای کامپایل jwm اول وارد دایرکتوری بشید که کد منبع jwm قرار داره.
اونجا اسکریپت autogen.sh رو اجرا کنید تا اسکریپت configure از فایل configure.ac ساخته بشه.

بعد اسکریپت configure رو اجرا کنید تا Makefile از فایل Makefile.in ایجاد بشه.
اگه آپشن help-- رو به اسکریپت configure بدید، یه راهنما درباره خودش نشون میده.

بعد از اینکه Makefile ایجاد شد، دستور make رو بزنید تا کامپایل شروع بشه. شاید بخواهید تعداد پردازش‌های make رو بالا ببرید تا زمان کامپایل کم بشه. برای اینکار، آپشن j- رو به make بدید و جلوی آپشن، تعداد پردازش‌ها رو مشخص کنید. مثلا اینجوری، کار کامپایل با  ۶ تا پردازش انجام میشه:
make -j6معمولا تعداد پردازش‌ها رو برابر با تعداد هسته‌های فعال پردازنده در نظر میگیرن. با دستور nproc می‌تونید اون تعداد رو بدست بیارید.
پس با این حساب، این دستور باید توی سیستم‌های مختلف مناسب باشه
make -j$(nproc)ممکنه یه برنامه درست با چندین پردازش جدا کامپایل نشه. مطمئن نیستم که jwm اینجوری هست یا نه. ولی بعید می‌دونم اینجوری باشه.


در آخر بعد از اینکه کامپایل انجام شد، jwm رو روی سیستم نصب کنید.
make installاحتمالا برای اینکه نصب انجام بشه، لازم هست تا دستور بالا رو با دسترسی روت اجرا کنید. در این حالت می‌تونید از sudo استفاده کنید.


به احتمال زیاد، شما توی همون مرحله اجرای اسکریپت autogen.sh به مشکل می‌خورید چون فکر کنم یه سری از چیز‌هایی که برای کامپایل لازم هست رو ندارید.
میدونید که زکات علم نشر آن است

آفلاین norouzi90

  • Hero Member
  • *
  • ارسال: 784
  • جنسیت : پسر
  • Debian + Mate
پاسخ : کامپایل jwm
« پاسخ #4 : 30 خرداد 1401، 05:34 ب‌ظ »
؟!

آفلاین norouzi90

  • Hero Member
  • *
  • ارسال: 784
  • جنسیت : پسر
  • Debian + Mate
پاسخ : کامپایل jwm
« پاسخ #5 : 02 تیر 1401، 08:50 ب‌ظ »
با تشکر فراوان از آقایان  Dragon- و mskf1383

آفلاین Dragon-

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 5124
  • جنسیت : پسر
پاسخ : کامپایل jwm (حل شد)
« پاسخ #6 : 03 تیر 1401، 12:48 ق‌ظ »
چیکار کردید؟
میدونید که زکات علم نشر آن است

آفلاین norouzi90

  • Hero Member
  • *
  • ارسال: 784
  • جنسیت : پسر
  • Debian + Mate
پاسخ : کامپایل jwm (حل شد)
« پاسخ #7 : 03 تیر 1401، 09:22 ق‌ظ »
در برخی از source code ها که می خواهیم ،آنها را کامپایل نماییم، کار خیلی راحت است ،تنها با سه دستور configure/. و make و sudo make install کار تمام است.چون:
۱- بسته هایی که برای خود سازوکار کامپایل کردن لازم است مانند automake , libx11-dev و... (این بسته ها چون می شود گفت تنها مختص کامپایل کردن هستند و به ندرت در توزیع ها بصورت پیش فرض نصب می گردند.) در سیستممان نصب کرده ایم.
مثلا برای کامپایل  source code  موردنظرمان، تنها کامپایل گر  gcc کفایت می کند و یا اینکه به کامپایل گر ++g نیازمندیم؟ و سوالاتی از این دست....

۲-آیا وابستگی های نرم افزاری مربوط به خود پکیجی که می خواهیم نصب بکنیم در سیستممان وجود دارد؟ و یا آنها را می شناسیم تا نصب بکنیم؟
مثلا احتمال دارد نرم افزاری بنام gettext در سیستم شما ورژنش  0.19  باشد ولی لازم است که برای نصب این پکیج موردنظرمان ، ورژن gettext را ارتقا بدهیم به 0.20

۳- آیا برنامه نویس کارش را تا حد ممکن بدرستی انجام داده؟
آیا برنامه نویس در فایل README ، که معمولا در داخل همان پکیجی که دانلود کرده ایم هست، توضیحات لازم و کافی در رابطه با نصب برنامه و وابستگی های برنامه داده است؟
آیا برنامه نویس اسکریپتی در خود برنامه گنجانده که در قبال خطاهای پیش آمده و همچنین کمبود وابستگی ها در سیستم کاربر نصب کننده، راهنمایی های لازم را به کاربر بدهد؟

گاهی علاوه بر سه فرمان بالایی به یک فرمان دیگری هم نیازمندیم و آن هم زمانی است که برنامه نویس فایلی بنام autogen.sh در پکیج برنامه اش گنجاده باشد.
در اینجا ما قبل از اجرای سه تا فرمان بالایی ، دستور autogen.sh/. را اجرا می کنیم. همینطور که از نام این فایل پیداست ،این یک اسکریپت است و کارش این است که مجموعه دستوراتی که در داخلش است را اجرا بکند.( نمونه عکس autogen.sh.png )
ولی بهتر است بجای فرمان autogen.sh/. از فرمان autoreconf --install  یا همان  autoreconf  -i  استفاده شود.

مطالب بالایی ، مطالب کلی بود ، برویم سراغ نصب پکیج موردنظر من و مشکلاتی که با آن دست بگریبان بودم.البته با عکس می خواهم هم مشکلات و هم مراحلی را که طی کردم تا به نتیجه برسم را به شما نشان بدهم.

عکس ۱: چون بسته هایی برای نصاب پکیج موردنظرم نداشتم این خطا را داد. حداقل بایستی یک چیزهایی را نصب می کردم تا سیستم حداقل یک تکونی بخودش بده!
عکس۲:بسته dh-autoreconf را نصب کردم که با نصب آن کلی ابزار در رابطه با کامپایل به سیستمم اضافه می شود.
عکس ۳: نصاب برنامه به من می گوید که نیازمند gettext با ورژن 0.20 می باشم.
عکس ۴: ورژن gettext در سیستم من 0.19.18.1 است. یعنی چی؟ یعنی کارم دراومد. حالا خر پیدا کن و باقالی بار کن !!
عکس ۵: در پایین پنجره محاوره ای چیزی در رابطه با Force Version نوشته. بروم ببینم با آن یک کاری می توانم بکنم؟
عکس ۶: نامرد Force Version  ، کمرنگ است. ای وای حالا چیکار کنم؟!
عکس ۷: بروم سراغ Unstable packages .
عکس ۸: یک update ای بکنم.
عکس ۹:یک upgrade ای بکنم تا با همه پکیج های Unstable در سیستمم جشن ترخیص بگیریم.
عکس ۱۰:با همه این کارها ورژن gettext فرقی نکرد،بروم سراغ گزینه Make for Reinstallition ، شاید دل آن برایم بسوزه؟
 آقا نشد. بروم اینبار سراغ همان گزینه source code و یک بسته با ورژن بالاتر از gettext از اینترنت دانلود کنم، بلکه ، آره بلکه !
عکس ۱۱: خدا خیرش بده، نصب gettext توسط source code اش اذیتم نکرد، پسر خوبی بود. ولی اما....
می فرمایند هر چند که زحمت کشیدید و gettext را ارتقا دادید به ورژن بالاتر همونی که ما می خواستیم اما
gettext version 0.20 but the autoconf macros are from gettext version 0.19
حالا چکار بکنم؟! خوب اینبار می روم سر وقت source code برای autoconf ، ولی پیدا کردن این بسته به این راحتی ها نیست. خسته برمی گردم جای اولم و دوباره سیستمم ام
را restore را می نمایم تا فکر دیگری بکنم.

ورژن لینوکس mint ام 20.2 است ارتقا می دهم به 20.3 ( احتمالا حاوی مخازن unstable) ، ولی ورژن gettext پایین است. دوباره restore کردن سیستم.
در دبیان ما چهار تا حالت دارم :
stable - unstable - testing - experimental

شاید به نحوی بتوانم لینوکس مینت را هم به حالت experimental ارتقا بدهم. می روم در اینترنت تحقیق می کنم، انگار ورژن 21 برای اینکار گذاشته اند. خلاصه یک چیزی پیدا کردم و نصب کردم :

1. sudo apt update; sudo apt upgrade
2. sudo sed -i 's/una/vanessa/' /etc/apt/sources.list
3. sudo sed -i 's/una/vanessa/' /etc/apt/sources.list.d/official-package-repositories.list
2. sudo sed -i 's/focal/jammy/' /etc/apt/sources.list
3. sudo sed -i 's/focal/jammy/' /etc/apt/sources.list.d/official-package-repositories.list
sudo apt update;

sudo apt-get dist-upgrade

ولی حسابی پدرم را درآورد، تو این زمان طولانی که این نصب می شود باور کنید می توانستم حداقل سه تا خود لینوکس را نصب کنم!
بعد از نصب این چیز ، هر چند که سیستم آدم را به هم می زنه و همه چیز ریخته بهم مثلا صفحه لاگین نداری ، آیکن صدا نداری و الی ماشاا... ، ولی حداقل ورژن این gettext ،
درست شد و دیگه autoconf macros هم پسر خوبی شده بودند.

عکس ۱۲: ورژن gettext در سیستم نصب شده جدید.
عکس ۱۳: در رابطه با عکس ۱۳ یک نکته بسیار مهمی وجود دارد، آنهم در رابطه با خطای Makefile.am است. تا جایی که من فهمیدم فایل Makefile.am یک فایل تعریف شده توسط برنامه نویس است و توسط automake برای تولید فایل Makefile.in  ( حروف am مخفف automake) استفاده می شود.
در ضمن اسکریپت پیکربندی از Makefile.in برای تولید Makefile استفاده می کند.
اینجا خطا داده که این فایل داخل فایل های منبع اتان نیست ، یعنی این فایل را برنامه نویس نساخته ، بهمین علت خطا داده است. از این خطا چشم پوشی کنید. برنامه نویس لزومی ندیده که این فایل را داخل پکیج source code نگذاشته است. مشکلی از این بایت پیش نمی آید و در ضمن شما در این رابطه نمی توانید کاری بکنید این فایل به برنامه نویس مربوط است نه شما.

 پس بطور کلی این دستورات را بکار می بریم، البته بعد از نصب و ارتقا بسته های لازم:

 autoreconf  --install
 configure/.
  make
 sudo make install

  پاورقی: همچنین در مورد خطای config.rpath ، که ممکن است با آن مواجه بشویدکه می گوید چنین فایلی وجود ندارد ، مشکل این قضیه در این است که شما از دستور  autogen.sh/. استفاده کرده اید.از این دستور استفاده نکنید و از دستور autoreconf  --install استفاده کنید.
 


آفلاین norouzi90

  • Hero Member
  • *
  • ارسال: 784
  • جنسیت : پسر
  • Debian + Mate
پاسخ : کامپایل jwm (حل شد)
« پاسخ #8 : 03 تیر 1401، 09:27 ق‌ظ »
ادامه عکس ها:

آفلاین norouzi90

  • Hero Member
  • *
  • ارسال: 784
  • جنسیت : پسر
  • Debian + Mate
پاسخ : کامپایل jwm (حل شد)
« پاسخ #9 : 03 تیر 1401، 09:28 ق‌ظ »
ادامه عکس ها:

آفلاین norouzi90

  • Hero Member
  • *
  • ارسال: 784
  • جنسیت : پسر
  • Debian + Mate
پاسخ : کامپایل jwm (حل شد)
« پاسخ #10 : 03 تیر 1401، 09:29 ق‌ظ »
ادامه عکس ها:

آفلاین norouzi90

  • Hero Member
  • *
  • ارسال: 784
  • جنسیت : پسر
  • Debian + Mate
پاسخ : کامپایل jwm (حل شد)
« پاسخ #11 : 03 تیر 1401، 06:00 ب‌ظ »
در ضمن این بسته ها را نصب کردم ( و یا اینکه نصب بودند.)، البته بطور دقیق نمی توان بگویم کدامیک برای کاری که انجام می خواستم بدهم، لازم و کدامیک ضرورتی نداشت:

automake   -   autopoint   -   libx11-dev   -  libtool  -  gnulib   -  build-essential  -   autogen  -   shtool  -   dh-autoreconf   - libssl-dev  -  libcurl4-gnutls-dev   -   libexpat1-dev   -   gettext  -  cmake   -   gcc   -   curl

البته بالشخصه ترجیح می دهم وقتی با موردی در زمینه کامپایل می خواهم کار بکنم، همگی اینها بر روی سیستمم باشد ، اینطوری کمتر توی دردسرهای بی خودی می افتم.

آفلاین Dragon-

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 5124
  • جنسیت : پسر
پاسخ : کامپایل jwm (حل شد)
« پاسخ #12 : 05 تیر 1401، 09:32 ب‌ظ »
اون نسخه لینوکس مینت یکم قدیمیه. اون نسخه مبتنی بر اوبونتو ۲۰.۰۴ هست که دو سال پیش منتشر شده، پس برنامه‌های اون هم مال حدود ۲ سال پیش هست.

اینکه گفتید autoreconf رو به جای اسکریپت autogen.sh اجرا کنید، درست نیست. ممکنه فایل‌های configure.ac و بقیه چیز‌های مرتبط با نسخه autoreconf شما سازگار نباشه (مثل همین الان که دید) و اون اسکریپت autogen.sh این رو به شما بگه و کاری انجام نده.
ولی این مسئولیت برنامه‌نویس هست که اسکریپت رو به شکلی بنویسه که اون بررسی‌ها رو انجام بده. توی مورد jwm، برنامه‌نویس اینکار رو نکرده بوده و شما موقع کامپایل به مشکل خوردید.

در ضمن ممکنه اسکریپت autogen.sh کار‌های دیگه‌ای هم انجام بده.
اینکه همینجوری مستقیم autoreconf رو به جای اسکریپت autogen.sh اجرا کنید، ممکنه نتایج غیرمنتظره‌ای داشته باشه.
اگه می‌خواهید اون اسکریپت رو اجرا نکنید، باید اول بررسیش کنید که چیکار می‌کنه و با توجه به اون، دستورات مورد نیاز رو خودتون به طور دستی اجرا کنید.
میدونید که زکات علم نشر آن است

آفلاین norouzi90

  • Hero Member
  • *
  • ارسال: 784
  • جنسیت : پسر
  • Debian + Mate
پاسخ : کامپایل jwm (حل شد)
« پاسخ #13 : 06 تیر 1401، 04:03 ب‌ظ »
 چون اقای Dragon- لطف نمودند و ارسالی دیگری داشتند ، هر چند که بسته jwm را  نصب کرده بودم و مراحل نصب آن را در ارسالی قبل توضیح داده بودم، دلم خواست کمی بیشتر به این مورد بپردازم و با هم کمی با جزییات بیشتر به این موضوع بپردازیم.

 سازنده و توسعه دهنده (JWM (Joe's Window Manager  ، آقای  Joe Wingbermuehle   ( بصورت مخفف آقای joewing )می باشد.
در جستجوی مجددی که در اینترنت داشتم، توانستم به صفحه وبی در اینترنت دست پیدا کنم که پرسشگری می شود گفت که همین سوال مرا مطرح کرده بود
 و جالب اینکه خود آقای  Joe Wingbermuehle ، به این سوال پرسشگر پاسخ داده بودند.( عکس 1 و 2 )

https://bytemeta.vip/repo/joewing/jwm/issues/533

پرسشگر از ubuntu 20.04 استفاده می کرد و من هم فعلا از Linux Mint 20.2  استفاده می کنم. هر دو تایمان برای نصب این برنامه یک مشکل داریم، gettext ای که در سیستم عاملمان داریم پایین تر از ورژن 0.20 می باشد و این برنامه به ورژن 0.20 یا بالاتر از gettext نیازمند است.
 جواب آقای  Joe Wingbermuehle  :

نقل‌قول
There are a few options:

    Probably the easiest is to download the latest release tarball for 2.4.0 (it should be pretty up-to-date), and not bother with autogen.sh.
    You could instead update configure.ac to request the version of gettext for your system (the AM_GNU_GETTEXT_VERSION line).
    You could try updating your system's gettext (rather than installing in /usr/local). I'd be careful doing that though

با هم این موارد را تک به تک بر روی سیستم من امتحان می کنیم:

نقل‌قول
Probably the easiest is to download the latest release tarball for 2.4.0 (it should be pretty up-to-date), and not bother with autogen.sh.
در اینجا آقای Wingbermuehle می گویند : احتمالاً ساده‌ترین راه این است که آخرین نسخه tarball را برای نسخه 2.4.0 دانلود کنید (باید کاملاً به روز باشد) و با autogen.sh خود را خسته نکنید.

در اینجا من  طبق این توصیه ، فعلا آخرین نسخه این JWM v2.4.3 را کنار می گذرم و نسخه پایین تر یعنی  نسخه 2.4.0 از jwm را دانلود و می خواهم نصب نمایم.
در اینجا تنها همین سه فرمان  configure/. و make  و  sudo make install  کفایت می کند و همچنان که آقای Wingbermuehle  برای این روش گفته اند ، اصلا نیازی
به استفاده از  فرمان autogen.sh نیست. ( عکس های 3 تا 7 )



نقل‌قول
You could instead update configure.ac to request the version of gettext for your system (the AM_GNU_GETTEXT_VERSION line).
در اینجا دوباره بر می گردیم سراغ آخرین ورژن JWM v2.4.3 و اینبار می خواهیم آنرا نصب نماییم.
  اینبار می رویم در داخل فایل  configure.ac ، ورژن gettext  را از 0.20 به 0.19  بصورت دستی تغییر می دهیم. ( عکس 8 )

با اجرای فرمان configure/. برخلاف نتایجی که از آن در آپشن قبلی گرفتیم، هیچ چیزی رخ نمی دهد.( عکس 9) بنابراین بنظر می رسد که علاوه بر دو بسته  build-essential  و libx11-dev ، نیازمندم ،بسته دیگری بنام dh-autoreconf را نصب کنم.

اینبار دستور  autogen.sh/. را اجرا می کنم. این دستور عمل می کند و در ادامه مراحل نصب با این دستور مشکلی ندارم. ( عکس 10  )
 دلم می خواهد از دستور autoreconf  --install  را هم اجرا  کنم تا ببینم بجای دستور autogen.sh/. می توان این دستور را بکار ببرم. . ( عکس 11 ) ، چون فایل configure.ac برای ویرایش ورژن gettext سیستممان ویرایش کرده ایم ، این متن خطا می گوید که چون این فایل  configure.ac بصورت محلی ویرایش شده است ، آنها را رونویسی نمی کند ،زیرا force-- مشخص نشده است.
اینبار از دستور autoreconf -vsi --force بجای دستور  autoreconf  --install  استفاده می کنم.( عکس 12)
 ( همچنانکه قبلا هم گفته بودم به خطای  no Make.file.am found هم توجه نمی کنیم.)
و ادامه مراحل در عکس های 13 الی 17  .
پس بطور خلاصه:
۱- نصب build-essential  و libx11-dev و dh-autoreconf .
۲- ویرایش فایل configure.ac .
۳-  دستور  autogen.sh/.  یا  دستور   autoreconf -vsi --force
۴- دستور configure/.
۵- دستور  make
۶- دستور sudo make install



نقل‌قول
You could try updating your system's gettext (rather than installing in /usr/local). I'd be careful doing that though.
می شود گفت که این همان روشی است که من در ارسالی قبلی ام آنرا توضیح داده ام.

« آخرین ویرایش: 06 تیر 1401، 04:47 ب‌ظ توسط norouzi90 »

آفلاین norouzi90

  • Hero Member
  • *
  • ارسال: 784
  • جنسیت : پسر
  • Debian + Mate
پاسخ : کامپایل jwm (حل شد)
« پاسخ #14 : 06 تیر 1401، 04:04 ب‌ظ »
ادامه عکسها:
« آخرین ویرایش: 06 تیر 1401، 04:38 ب‌ظ توسط norouzi90 »